Merge remote-tracking branch 'aosp/upstream-master' into incr-dex

 - Brings up smali to 2.1.2 with support for creating version 37 dex
   files and other miscellaneous fixes.

Bug: 27809626

Change-Id: Iff12b1e384355bcb261b55afd16af3bcac6ef1a0
diff --git a/MODULE_LICENSE_BSD b/MODULE_LICENSE_BSD
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/MODULE_LICENSE_BSD
diff --git a/baksmali/Android.mk b/baksmali/Android.mk
new file mode 100644
index 0000000..a5ee9ab
--- /dev/null
+++ b/baksmali/Android.mk
@@ -0,0 +1,67 @@
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+LOCAL_PATH := $(call my-dir)
+
+# build baksmali jar
+# ============================================================
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := baksmalilib
+
+LOCAL_MODULE_TAGS := optional
+
+#LOCAL_MODULE_CLASS and LOCAL_IS_HOST_MODULE must be defined before calling $(local-intermediates-dir)
+LOCAL_MODULE_CLASS := JAVA_LIBRARIES
+LOCAL_IS_HOST_MODULE := true
+
+intermediates := $(call local-intermediates-dir,COMMON)
+
+LOCAL_SRC_FILES := \
+	$(call all-java-files-under, src/main/java) \
+	$(call all-java-files-under, ../util/src/main/java)
+
+LOCAL_JAR_MANIFEST := manifest.txt
+
+LOCAL_STATIC_JAVA_LIBRARIES := \
+	dexlib2
+
+#read in the version number
+BAKSMALI_VERSION := $(shell cat $(LOCAL_PATH)/../build.gradle | \
+    grep -o -e "^version = '\(.*\)'" | grep -o -e "[0-9.]\+")
+
+BAKSMALI_VERSION := $(BAKSMALI_VERSION)-aosp
+
+#create a new baksmali.properties file using the correct version
+$(intermediates)/resources/baksmali.properties:
+	$(hide) mkdir -p $(dir $@)
+	$(hide) echo "application.version=$(BAKSMALI_VERSION)" > $@
+
+LOCAL_JAVA_RESOURCE_FILES := $(intermediates)/resources/baksmali.properties
+
+include $(BUILD_HOST_JAVA_LIBRARY)
+
+
+
+# copy baksmali script
+# ============================================================
+
+include $(CLEAR_VARS)
+LOCAL_IS_HOST_MODULE := true
+LOCAL_MODULE_CLASS := EXECUTABLES
+LOCAL_MODULE := baksmali
+LOCAL_SRC_FILES := ../scripts/baksmali
+LOCAL_REQUIRED_MODULES := baksmalilib
+include $(BUILD_PREBUILT)
diff --git a/baksmali/manifest.txt b/baksmali/manifest.txt
new file mode 100644
index 0000000..ac02629
--- /dev/null
+++ b/baksmali/manifest.txt
@@ -0,0 +1 @@
+Main-Class: org.jf.baksmali.main
diff --git a/dexlib2/Android.mk b/dexlib2/Android.mk
new file mode 100644
index 0000000..437ee37
--- /dev/null
+++ b/dexlib2/Android.mk
@@ -0,0 +1,39 @@
+# Copyright (C) 2014 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+LOCAL_PATH := $(call my-dir)
+
+# build dexlib2 jar
+# ============================================================
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := dexlib2
+
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_MODULE_CLASS := JAVA_LIBRARIES
+LOCAL_IS_HOST_MODULE := true
+
+LOCAL_SRC_FILES := \
+	$(call all-java-files-under, src/main/java) \
+	$(call all-java-files-under, ../util/src/main/java)
+
+LOCAL_STATIC_JAVA_LIBRARIES := \
+	commons-cli-1.2 \
+	guavalib \
+	jsr305lib
+
+
+include $(BUILD_HOST_JAVA_LIBRARY)
\ No newline at end of file
diff --git a/dexlib2/src/main/java/org/jf/dexlib2/analysis/ClassProto.java b/dexlib2/src/main/java/org/jf/dexlib2/analysis/ClassProto.java
index 57aae11..e407de7 100644
--- a/dexlib2/src/main/java/org/jf/dexlib2/analysis/ClassProto.java
+++ b/dexlib2/src/main/java/org/jf/dexlib2/analysis/ClassProto.java
@@ -34,7 +34,6 @@
 import com.google.common.base.Predicates;
 import com.google.common.base.Supplier;
 import com.google.common.base.Suppliers;
-import com.google.common.collect.FluentIterable;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
@@ -198,7 +197,7 @@
     @Nonnull
     protected Iterable<ClassDef> getDirectInterfaces() {
         Iterable<ClassDef> directInterfaces =
-                FluentIterable.from(getInterfaces().values()).filter(Predicates.notNull());
+                Iterables.filter(getInterfaces().values(), Predicates.notNull());
 
         if (!interfacesFullyResolved) {
             throw new UnresolvedClassException("Interfaces for class %s not fully resolved", getType());
diff --git a/dexlib2/src/main/java/org/jf/dexlib2/writer/builder/BuilderClassPool.java b/dexlib2/src/main/java/org/jf/dexlib2/writer/builder/BuilderClassPool.java
index 695109f..29980f3 100644
--- a/dexlib2/src/main/java/org/jf/dexlib2/writer/builder/BuilderClassPool.java
+++ b/dexlib2/src/main/java/org/jf/dexlib2/writer/builder/BuilderClassPool.java
@@ -158,9 +158,8 @@
         if (lastIndex > -1) {
             return new AbstractCollection<BuilderEncodedValue>() {
                 @Nonnull @Override public Iterator<BuilderEncodedValue> iterator() {
-                    return FluentIterable.from(sortedStaticFields)
-                            .limit(lastIndex+1)
-                            .transform(GET_INITIAL_VALUE).iterator();
+                    Iterable<BuilderField> fields = Iterables.limit(sortedStaticFields, lastIndex + 1);
+                    return Iterables.transform(fields, GET_INITIAL_VALUE).iterator();
                 }
 
                 @Override public int size() {
@@ -254,8 +253,7 @@
         if (hasParameterAnnotations) {
             return new AbstractForwardSequentialList<BuilderAnnotationSet>() {
                 @Nonnull @Override public Iterator<BuilderAnnotationSet> iterator() {
-                    return FluentIterable.from(parameters)
-                            .transform(PARAMETER_ANNOTATIONS).iterator();
+                    return Iterables.transform(parameters, PARAMETER_ANNOTATIONS).iterator();
                 }
 
                 @Override public int size() {
diff --git a/dexlib2/src/main/java/org/jf/dexlib2/writer/pool/ClassPool.java b/dexlib2/src/main/java/org/jf/dexlib2/writer/pool/ClassPool.java
index 25cf4da..0389973 100644
--- a/dexlib2/src/main/java/org/jf/dexlib2/writer/pool/ClassPool.java
+++ b/dexlib2/src/main/java/org/jf/dexlib2/writer/pool/ClassPool.java
@@ -285,9 +285,8 @@
         if (lastIndex > -1) {
             return new AbstractCollection<EncodedValue>() {
                 @Nonnull @Override public Iterator<EncodedValue> iterator() {
-                    return FluentIterable.from(sortedStaticFields)
-                            .limit(lastIndex+1)
-                            .transform(GET_INITIAL_VALUE).iterator();
+                    Iterable<Field> fields = Iterables.limit(sortedStaticFields, lastIndex + 1);
+                    return Iterables.transform(fields, GET_INITIAL_VALUE).iterator();
                 }
 
                 @Override public int size() {
@@ -377,8 +376,7 @@
         if (hasParameterAnnotations) {
             return new AbstractForwardSequentialList<Set<? extends Annotation>>() {
                 @Nonnull @Override public Iterator<Set<? extends Annotation>> iterator() {
-                    return FluentIterable.from(parameters)
-                            .transform(PARAMETER_ANNOTATIONS).iterator();
+                    return Iterables.transform(parameters, PARAMETER_ANNOTATIONS).iterator();
                 }
 
                 @Override public int size() {
diff --git a/extract-property.xslt b/extract-property.xslt
new file mode 100644
index 0000000..51b0668
--- /dev/null
+++ b/extract-property.xslt
@@ -0,0 +1,4 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:pom="http://maven.apache.org/POM/4.0.0" version="1.0">
+  <xsl:output method="text"/>
+  <xsl:template match="/"><xsl:value-of select="//pom:aversion"/></xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/scripts/baksmali b/scripts/baksmali
index bd3f820..2e8addc 100755
--- a/scripts/baksmali
+++ b/scripts/baksmali
@@ -14,24 +14,11 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# As per the Apache license requirements, this file has been modified
-# from its original state.
-#
-# Such modifications are Copyright (C) 2010 Ben Gruver, and are released
-# under the original license
-
-# This script is a wrapper around baksmali.jar, so you can simply call
-# "baksmali", instead of java -jar baksmali.jar. It is heavily based on
-# the "dx" script from the Android SDK
-
 # Set up prog to be the path of this script, including following symlinks,
 # and set up progdir to be the fully-qualified pathname of its directory.
 prog="$0"
 while [ -h "${prog}" ]; do
     newProg=`/bin/ls -ld "${prog}"`
-    echo ${newProg}
-
-
     newProg=`expr "${newProg}" : ".* -> \(.*\)$"`
     if expr "x${newProg}" : 'x/' >/dev/null; then
         prog="${newProg}"
@@ -48,36 +35,51 @@
 cd "${oldwd}"
 
 
-jarfile=baksmali.jar
+jarfile=baksmalilib.jar
 libdir="$progdir"
-if [ ! -r "$libdir/$jarfile" ]
-then
+
+if [ ! -r "$libdir/$jarfile" ]; then
+    # set dx.jar location for the Android tree case
+    libdir=`dirname "$progdir"`/framework
+fi
+
+if [ ! -r "$libdir/$jarfile" ]; then
     echo `basename "$prog"`": can't find $jarfile"
     exit 1
 fi
 
+
+# By default, give baksmali a max heap size of 256 mb. This can be overridden
+# by using a "-J" option (see below).
+defaultMx="-Xmx256M"
+
+# The following will extract any initial parameters of the form
+# "-J<stuff>" from the command line and pass them to the Java
+# invocation (instead of to dx). This makes it possible for you to add
+# a command-line parameter such as "-JXmx256M" in your scripts, for
+# example. "java" (with no args) and "java -X" give a summary of
+# available options.
+
 javaOpts=""
 
-# If you want DX to have more memory when executing, uncomment the following
-# line and adjust the value accordingly. Use "java -X" for a list of options
-# you can pass here.
-#
-javaOpts="-Xmx256M"
-
-# Alternatively, this will extract any parameter "-Jxxx" from the command line
-# and pass them to Java (instead of to dx). This makes it possible for you to
-# add a command-line parameter such as "-JXmx256M" in your ant scripts, for
-# example.
 while expr "x$1" : 'x-J' >/dev/null; do
-    opt=`expr "$1" : '-J\(.*\)'`
+    opt=`expr "x$1" : 'x-J\(.*\)'`
     javaOpts="${javaOpts} -${opt}"
+    if expr "x${opt}" : "xXmx[0-9]" >/dev/null; then
+        defaultMx="no"
+    fi
     shift
 done
 
-if [ "$OSTYPE" = "cygwin" ] ; then
-	jarpath=`cygpath -w  "$libdir/$jarfile"`
+if [ "${defaultMx}" != "no" ]; then
+    javaOpts="${javaOpts} ${defaultMx}"
+fi
+
+if [ "$OSTYPE" = "cygwin" ]; then
+    # For Cygwin, convert the jarfile path into native Windows style.
+    jarpath=`cygpath -w "$libdir/$jarfile"`
 else
-	jarpath="$libdir/$jarfile"
+    jarpath="$libdir/$jarfile"
 fi
 
 exec java $javaOpts -jar "$jarpath" "$@"
diff --git a/scripts/smali b/scripts/smali
index 9ede675..a55d112 100755
--- a/scripts/smali
+++ b/scripts/smali
@@ -14,24 +14,11 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# As per the Apache license requirements, this file has been modified
-# from its original state.
-#
-# Such modifications are Copyright (C) 2010 Ben Gruver, and are released
-# under the original license
-
-# This script is a wrapper for smali.jar, so you can simply call "smali",
-# instead of java -jar smali.jar. It is heavily based on the "dx" script
-# from the Android SDK
-
 # Set up prog to be the path of this script, including following symlinks,
 # and set up progdir to be the fully-qualified pathname of its directory.
 prog="$0"
 while [ -h "${prog}" ]; do
     newProg=`/bin/ls -ld "${prog}"`
-    echo ${newProg}
-
-
     newProg=`expr "${newProg}" : ".* -> \(.*\)$"`
     if expr "x${newProg}" : 'x/' >/dev/null; then
         prog="${newProg}"
@@ -48,34 +35,49 @@
 cd "${oldwd}"
 
 
-jarfile=smali.jar
+jarfile=smalilib.jar
 libdir="$progdir"
-if [ ! -r "$libdir/$jarfile" ]
-then
+
+if [ ! -r "$libdir/$jarfile" ]; then
+    # set dx.jar location for the Android tree case
+    libdir=`dirname "$progdir"`/framework
+fi
+
+if [ ! -r "$libdir/$jarfile" ]; then
     echo `basename "$prog"`": can't find $jarfile"
     exit 1
 fi
 
+
+# By default, give smali a max heap size of 256 mb. This can be overridden
+# by using a "-J" option (see below).
+defaultMx="-Xmx256M"
+
+# The following will extract any initial parameters of the form
+# "-J<stuff>" from the command line and pass them to the Java
+# invocation (instead of to dx). This makes it possible for you to add
+# a command-line parameter such as "-JXmx256M" in your scripts, for
+# example. "java" (with no args) and "java -X" give a summary of
+# available options.
+
 javaOpts=""
 
-# If you want DX to have more memory when executing, uncomment the following
-# line and adjust the value accordingly. Use "java -X" for a list of options
-# you can pass here.
-#
-javaOpts="-Xmx512M"
-
-# Alternatively, this will extract any parameter "-Jxxx" from the command line
-# and pass them to Java (instead of to dx). This makes it possible for you to
-# add a command-line parameter such as "-JXmx256M" in your ant scripts, for
-# example.
 while expr "x$1" : 'x-J' >/dev/null; do
-    opt=`expr "$1" : '-J\(.*\)'`
+    opt=`expr "x$1" : 'x-J\(.*\)'`
     javaOpts="${javaOpts} -${opt}"
+    if expr "x${opt}" : "xXmx[0-9]" >/dev/null; then
+        defaultMx="no"
+    fi
     shift
 done
 
-if [ "$OSTYPE" = "cygwin" ] ; then
-    jarpath=`cygpath -w  "$libdir/$jarfile"`
+if [ "${defaultMx}" != "no" ]; then
+    javaOpts="${javaOpts} ${defaultMx}"
+fi
+
+if [ "$OSTYPE" = "cygwin" ]; then
+    # For Cygwin, convert the jarfile path into native Windows style.
+    jarpath=`cygpath -w "$libdir/$jarfile"`
 else
     jarpath="$libdir/$jarfile"
 fi
diff --git a/smali/Android.mk b/smali/Android.mk
new file mode 100644
index 0000000..40bd640
--- /dev/null
+++ b/smali/Android.mk
@@ -0,0 +1,73 @@
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+LOCAL_PATH := $(call my-dir)
+
+# build smali jar
+# ============================================================
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := smalilib
+
+LOCAL_MODULE_TAGS := optional
+
+#LOCAL_MODULE_CLASS and LOCAL_IS_HOST_MODULE must be defined before calling $(local-intermediates-dir)
+LOCAL_MODULE_CLASS := JAVA_LIBRARIES
+LOCAL_IS_HOST_MODULE := true
+
+intermediates := $(call local-intermediates-dir,COMMON)
+
+GEN := $(addprefix $(intermediates)/, \
+			smaliParser.java \
+			smaliTreeWalker.java \
+        )
+
+LOCAL_SRC_FILES := \
+	$(call all-java-files-under, src/main/java) \
+	$(call all-java-files-under, ../util/src/main/java)
+
+LOCAL_JAR_MANIFEST := manifest.txt
+
+LOCAL_STATIC_JAVA_LIBRARIES := \
+	antlr-runtime \
+	dexlib2
+
+#read in the version number
+SMALI_VERSION := $(shell cat $(LOCAL_PATH)/../build.gradle | \
+    grep -o -e "^version = '\(.*\)'" | grep -o -e "[0-9.]\+")
+
+SMALI_VERSION := $(SMALI_VERSION)-aosp
+
+#create a new smali.properties file using the correct version
+$(intermediates)/resources/smali.properties:
+	$(hide) mkdir -p $(dir $@)
+	$(hide) echo "application.version=$(SMALI_VERSION)" > $@
+
+LOCAL_JAVA_RESOURCE_FILES := $(intermediates)/resources/smali.properties
+
+include $(BUILD_HOST_JAVA_LIBRARY)
+
+
+
+# copy smali script
+# ============================================================
+
+include $(CLEAR_VARS)
+LOCAL_IS_HOST_MODULE := true
+LOCAL_MODULE_CLASS := EXECUTABLES
+LOCAL_MODULE := smali
+LOCAL_SRC_FILES := ../scripts/smali
+LOCAL_REQUIRED_MODULES := smalilib
+include $(BUILD_PREBUILT)
diff --git a/smali/manifest.txt b/smali/manifest.txt
new file mode 100644
index 0000000..b673fc8
--- /dev/null
+++ b/smali/manifest.txt
@@ -0,0 +1 @@
+Main-Class: org.jf.smali.main
diff --git a/smali/runantlr.sh b/smali/runantlr.sh
new file mode 100755
index 0000000..dc37de0
--- /dev/null
+++ b/smali/runantlr.sh
@@ -0,0 +1,111 @@
+#!/bin/bash
+#
+# This script runs antlr3 generating java code based on .g (ANLTR3) files.
+# antlr3 tool itself can be downloaded by running the gradle build.
+#
+# The script can be run from anywhere (it does not depend on current working directory)
+# Set $ANTLR to overwrite antlr location, if desired
+#
+# After making any changes to the lexer, the update source file(s) generated by
+# this script should be checked in to the repository
+
+# Update when switching to a different version of antlr
+EXPECTED_ANTLR_VERSION_STR="ANTLR Parser Generator  Version 3.5"
+
+# Get the location of this script used to find locations of other things in the tree.
+SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+
+# Point to the directory which contains the ANTLR jars.
+if [[ -z  "$ANTLR" ]]
+then
+  # Best effort to find it inside of the gradle cache
+  ANTLR="$(find $HOME/.gradle/caches/artifacts-* -name 'org.antlr' | head -n 1)"
+fi
+
+# Class that contains the static main function.
+ANTLR_MAIN="org.antlr.Tool"
+
+if ! [[ -d "$ANTLR" ]]; then
+  echo >&2 "ERROR: Could not find ANTLR jars directory"
+  exit 1
+fi
+
+# Build up the classpath by finding all the JARs
+ANTLR_JARS=""
+
+for jar_file_name in $(find "$ANTLR" -name '*.jar'); do
+  if ! [[ -z "$ANTLR_JARS" ]]; then
+    ANTLR_JARS+=":"
+  fi
+  ANTLR_JARS+="$jar_file_name"
+done
+
+if [[ -z "$ANTLR_JARS" ]]; then
+  echo >&2 "Could not find any JARs in the ANTLR directory"
+  echo >&2 "Is '"$ANTLR"' the correct path to the JARs?"
+  exit 1
+fi
+
+function run_antlr() {
+  CLASSPATH="$ANTLR_JARS" java 2>&1 "$ANTLR_MAIN" "$@"
+}
+
+ANTLR_VERSION="$(run_antlr -version)"
+
+if [[ -z "$ANTLR_VERSION" ]]
+then
+  echo >&2 "ERROR: Failed to execute antlr at \"$ANTLR\""
+  exit 1
+fi
+
+if [[ "$EXPECTED_ANTLR_VERSION_STR" != "$ANTLR_VERSION" ]]
+then
+  echo >&2 "ERROR: Wrong version of jflex: \"$ANTLR_VERSION\". Expected: \"$EXPECTED_ANTLR_VERSION_STR\""
+  exit 1
+fi
+
+
+function generate_file {
+  local JAVA_FILE="$1"
+  local G_FILE="$2"
+
+  if ! [[ -f "$JAVA_FILE" ]]; then
+    echo >&2 "ERROR: File \"$JAVA_FILE\" not found"
+    exit 1
+  fi
+
+  echo "Re-generating \"$JAVA_FILE\"..."
+
+  [[ -f "$JAVA_FILE" ]] && rm -f "$JAVA_FILE"
+
+  local JAVA_DIR="$(dirname "$JAVA_FILE")"
+  # Generate the java file from the antlr file
+  run_antlr -verbose -fo "$JAVA_DIR" "$G_FILE"
+
+  # delete trailing space from end of each line to make gerrit happy
+  sed 's/[ ]*$//' "$JAVA_FILE" > "$JAVA_FILE.tmp"
+  [[ -f "$JAVA_FILE" ]] && rm "$JAVA_FILE"
+  mv "$JAVA_FILE.tmp" "$JAVA_FILE"
+
+  echo "DONE"
+  echo ""
+  echo ""
+}
+
+function cleanup_tokens {
+  local JAVA_FILE="$1"
+
+  # delete the tokens file, they are not necessary to actually build from Android.mk
+  local TOKEN_FILE="${JAVA_FILE%%\.java}.tokens"
+  [[ -f "$TOKEN_FILE" ]] && rm "$TOKEN_FILE"
+}
+
+generate_file "$SCRIPT_DIR/src/main/java/org/jf/smali/smaliParser.java" "$SCRIPT_DIR/src/main/antlr/smaliParser.g"
+generate_file "$SCRIPT_DIR/src/main/java/org/jf/smali/smaliTreeWalker.java" "$SCRIPT_DIR/src/main/antlr/smaliTreeWalker.g"
+
+# Clean up the tokens, no longer necessary once the tree walker is generated
+cleanup_tokens "$SCRIPT_DIR/src/main/java/org/jf/smali/smaliParser.java"
+cleanup_tokens "$SCRIPT_DIR/src/main/java/org/jf/smali/smaliTreeWalker.java"
+
+# Uncomment to run interactively
+#run_antlr "$@"
diff --git a/smali/runjflex.sh b/smali/runjflex.sh
new file mode 100755
index 0000000..70c0624
--- /dev/null
+++ b/smali/runjflex.sh
@@ -0,0 +1,63 @@
+#!/bin/bash
+#
+# This script runs jflex generating java code based on .jflex files.
+# jflex tool itself resides in external/jflex. At the time of this writing
+# it's not a part of jflex manifest and needs to be checked out manually.
+#
+# The script can be run from anywhere (it does not depend on current working directory)
+# Set $JFLEX to overwrite jflex location, if desired
+#
+# After making any changes to the lexer, the update source file(s) generated by
+# this script should be checked in to the repository
+
+# Update when switching to a different version of jflex
+EXPECTED_JFLEX_VERSION="1.4.3"
+EXPECTED_JFLEX_VERSION_STR="This is JFlex $EXPECTED_JFLEX_VERSION"
+
+# Get the location of this script used to find locations of other things in the tree.
+SCRIPT_DIR=`dirname $0`
+echo $SCRIPT_DIR
+
+TOP_PATH="$SCRIPT_DIR/../../.."
+
+# Run the java jar when 'JFLEX' is not in the environment
+function exec_jar_jflex {
+  java -jar "$jflex_location" "$@"
+}
+
+# All specifying jflex but fallback to default location
+if [ -z  "$JFLEX" ]
+then
+  # Best effort to find it inside of the gradle cache
+  jflex_jar_name="jflex-${EXPECTED_JFLEX_VERSION}.jar"
+  jflex_location="$(find $HOME/.gradle/caches/artifacts-* -name "$jflex_jar_name" | head -n 1)"
+  if [ -z $jflex_location ]; then
+    echo "ERROR: Could not find jflex location, consider setting the \$JFLEX variable to point to it"
+    exit 1
+  fi
+  JFLEX=exec_jar_jflex
+fi
+
+JFLEX_VERSION=`"$JFLEX" --version`
+
+if [ "$JFLEX_VERSION" = "" ]
+then
+  echo "ERROR: Failed to execute jflex at \"$JFLEX\""
+  exit 1
+fi
+
+if [ "$EXPECTED_JFLEX_VERSION_STR" != "$JFLEX_VERSION" ]
+then
+  echo "ERROR: Wrong version of jflex: \"$JFLEX_VERSION\". Expected: \"$EXPECTED_JFLEX_VERSION_STR\""
+  exit 1
+fi
+
+JAVA_FILE=$SCRIPT_DIR/src/main/java/org/jf/smali/smaliFlexLexer.java
+rm -f "$JAVA_FILE"
+
+"$JFLEX" --nobak -d "$SCRIPT_DIR/src/main/java/org/jf/smali" "$SCRIPT_DIR/src/main/jflex/smaliLexer.jflex"
+
+# delete trailing space from end of each line to make gerrit happy
+sed 's/[ ]*$//' "$JAVA_FILE" > "$JAVA_FILE.tmp"
+rm "$JAVA_FILE"
+mv "$JAVA_FILE.tmp" "$JAVA_FILE"
diff --git a/smali/src/main/java/org/jf/smali/smaliFlexLexer.java b/smali/src/main/java/org/jf/smali/smaliFlexLexer.java
new file mode 100644
index 0000000..6008fe4
--- /dev/null
+++ b/smali/src/main/java/org/jf/smali/smaliFlexLexer.java
@@ -0,0 +1,4131 @@
+/* The following code was generated by JFlex 1.4.3 on 4/23/15 12:35 PM */
+
+package org.jf.smali;
+
+import java.io.*;
+import org.antlr.runtime.*;
+import org.jf.util.*;
+import static org.jf.smali.smaliParser.*;
+
+
+/**
+ * This class is a scanner generated by
+ * <a href="http://www.jflex.de/">JFlex</a> 1.4.3
+ * on 4/23/15 12:35 PM from the specification file
+ * <tt>./src/main/jflex/smaliLexer.jflex</tt>
+ */
+public class smaliFlexLexer implements TokenSource, LexerErrorInterface {
+
+  /** This character denotes the end of file */
+  public static final int YYEOF = -1;
+
+  /** initial size of the lookahead buffer */
+  private static final int ZZ_BUFFERSIZE = 16384;
+
+  /** lexical states */
+  public static final int STRING = 6;
+  public static final int PARAM_LIST_OR_ID = 2;
+  public static final int YYINITIAL = 0;
+  public static final int CHAR = 8;
+  public static final int PARAM_LIST = 4;
+
+  /**
+   * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
+   * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l
+   *                  at the beginning of a line
+   * l is of the form l = 2*k, k a non negative integer
+   */
+  private static final int ZZ_LEXSTATE[] = {
+     0,  0,  1,  1,  2,  2,  3,  3,  4, 4
+  };
+
+  /**
+   * Translates characters to character classes
+   */
+  private static final String ZZ_CMAP_PACKED =
+    "\11\0\1\115\1\64\2\0\1\64\22\0\1\50\1\0\1\62\1\72"+
+    "\1\22\2\0\1\63\1\113\1\114\2\0\1\110\1\7\1\17\1\30"+
+    "\1\1\1\76\1\75\1\102\1\73\1\5\1\77\1\5\1\101\1\4"+
+    "\1\107\1\31\1\104\1\106\1\105\1\0\1\70\1\16\2\23\1\61"+
+    "\1\6\1\25\2\57\1\24\1\26\1\57\1\27\1\57\1\12\1\57"+
+    "\1\10\2\57\1\60\1\14\1\57\1\103\1\57\1\2\1\15\1\26"+
+    "\1\32\1\65\2\56\1\57\1\56\1\35\1\3\1\33\1\47\1\41"+
+    "\1\13\1\52\1\51\1\11\1\74\1\54\1\34\1\43\1\44\1\46"+
+    "\1\40\1\100\1\42\1\36\1\45\1\37\1\66\1\55\1\71\1\53"+
+    "\1\67\1\111\1\0\1\112\43\0\u1f5f\22\20\0\30\22\10\0\ub7d0\22"+
+    "\u0400\20\u0400\21\u1ff0\22\20\0";
+
+  /**
+   * Translates characters to character classes
+   */
+  private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
+
+  /**
+   * Translates DFA states to action switch labels.
+   */
+  private static final int [] ZZ_ACTION = zzUnpackAction();
+
+  private static final String ZZ_ACTION_PACKED_0 =
+    "\5\0\1\1\1\2\2\3\1\2\4\3\1\4\1\1"+
+    "\2\5\1\3\1\1\15\3\1\6\1\3\1\7\1\10"+
+    "\2\3\1\11\1\12\1\1\1\13\1\14\1\15\1\16"+
+    "\1\17\1\20\1\21\1\22\1\5\3\23\1\24\1\25"+
+    "\1\26\1\0\1\24\1\27\1\30\1\0\1\2\3\3"+
+    "\1\31\1\32\1\33\1\0\1\34\1\35\1\36\3\3"+
+    "\2\37\1\3\1\0\1\40\12\3\3\4\1\41\10\4"+
+    "\1\42\1\3\1\0\1\3\1\0\1\43\2\0\26\3"+
+    "\1\44\31\3\4\0\1\43\2\0\1\45\1\46\1\47"+
+    "\1\50\1\51\1\52\1\53\1\54\1\55\1\56\1\57"+
+    "\1\2\1\0\1\36\1\3\1\0\1\60\1\33\3\3"+
+    "\1\37\11\3\1\36\5\3\21\4\1\3\1\0\1\61"+
+    "\2\0\1\62\2\0\47\3\1\63\14\3\1\64\1\0"+
+    "\1\62\2\0\1\50\1\57\1\0\1\33\1\0\3\3"+
+    "\1\37\5\3\1\65\11\3\25\4\4\0\12\3\1\66"+
+    "\5\3\1\67\12\3\1\70\5\3\1\71\1\3\1\72"+
+    "\6\3\1\73\6\3\1\74\3\3\1\50\1\57\1\75"+
+    "\3\3\1\76\13\3\4\4\1\77\13\4\1\100\1\0"+
+    "\3\4\5\3\1\101\34\3\1\0\11\3\1\102\5\3"+
+    "\1\0\3\3\1\50\1\57\2\3\1\103\17\3\1\0"+
+    "\1\3\1\4\1\104\1\105\1\106\1\107\3\4\1\110"+
+    "\3\4\1\111\13\4\7\3\1\0\36\3\1\102\5\3"+
+    "\2\0\12\3\1\66\4\3\2\0\3\3\2\112\13\3"+
+    "\1\0\7\3\1\0\1\3\2\4\1\113\4\4\1\114"+
+    "\15\4\1\115\11\3\1\0\1\116\1\0\17\3\1\66"+
+    "\11\3\1\66\13\3\1\0\1\117\1\71\11\3\1\0"+
+    "\3\3\1\120\1\121\1\0\1\57\12\3\1\0\15\3"+
+    "\1\0\1\3\24\4\3\3\1\66\5\3\1\0\1\122"+
+    "\14\3\1\0\10\3\1\0\4\3\1\123\10\3\1\0"+
+    "\4\3\1\124\1\3\2\0\3\3\1\0\5\3\1\65"+
+    "\2\3\1\65\2\3\1\0\16\3\1\125\1\3\1\4"+
+    "\1\126\5\4\1\127\1\130\11\4\1\0\1\4\10\3"+
+    "\1\0\12\3\1\67\2\3\1\67\1\3\1\0\3\3"+
+    "\1\0\7\3\1\71\1\0\2\3\1\131\4\3\2\0"+
+    "\2\3\1\0\1\132\7\3\1\133\1\134\15\3\6\4"+
+    "\1\135\1\136\5\4\1\137\2\4\1\140\5\3\1\141"+
+    "\1\0\1\3\1\142\10\3\1\0\12\3\1\0\5\3"+
+    "\2\0\2\3\1\143\17\3\1\144\1\145\1\146\10\4"+
+    "\1\147\1\4\4\3\2\0\6\3\1\0\3\3\1\102"+
+    "\1\63\3\3\1\102\1\132\5\3\1\0\1\150\1\0"+
+    "\10\3\1\151\6\3\11\4\2\3\1\152\2\0\1\153"+
+    "\14\3\1\154\1\155\2\3\1\156\1\3\1\157\1\3"+
+    "\1\0\1\151\1\3\1\151\3\3\11\4\1\3\1\160"+
+    "\2\0\1\161\1\3\1\162\1\163\7\3\1\0\4\3"+
+    "\1\164\1\165\1\166\5\4\1\167\1\3\2\0\1\3"+
+    "\1\170\5\3\1\0\3\3\1\171\1\172\3\4\1\3"+
+    "\2\0\1\3\1\0\4\3\1\0\2\3\1\173\3\4"+
+    "\1\174\2\0\1\3\1\0\4\3\1\0\2\3\1\0"+
+    "\3\4\1\0\1\175\1\176\1\0\2\3\1\177\1\200"+
+    "\2\3\1\0\1\201\1\202\1\203\1\204\1\0\2\3"+
+    "\2\0\1\205\2\0\1\206\1\3\3\0\1\207\1\3"+
+    "\3\0\1\3\2\0\1\210\1\3\2\0\1\3\1\211"+
+    "\1\212\1\213";
+
+  private static int [] zzUnpackAction() {
+    int [] result = new int[1237];
+    int offset = 0;
+    offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
+    return result;
+  }
+
+  private static int zzUnpackAction(String packed, int offset, int [] result) {
+    int i = 0;       /* index in packed string  */
+    int j = offset;  /* index in unpacked array */
+    int l = packed.length();
+    while (i < l) {
+      int count = packed.charAt(i++);
+      int value = packed.charAt(i++);
+      do result[j++] = value; while (--count > 0);
+    }
+    return j;
+  }
+
+
+  /**
+   * Translates a state to a row index in the transition table
+   */
+  private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
+
+  private static final String ZZ_ROWMAP_PACKED_0 =
+    "\0\0\0\116\0\234\0\352\0\u0138\0\u0186\0\u01d4\0\u0222"+
+    "\0\u0270\0\u02be\0\u030c\0\u035a\0\u03a8\0\u03f6\0\u0444\0\u0492"+
+    "\0\u04e0\0\u052e\0\u057c\0\u05ca\0\u0618\0\u0666\0\u06b4\0\u0702"+
+    "\0\u0750\0\u079e\0\u07ec\0\u083a\0\u0888\0\u08d6\0\u0924\0\u0972"+
+    "\0\u09c0\0\u0a0e\0\u0a5c\0\u0186\0\u0186\0\u0aaa\0\u0af8\0\u0b46"+
+    "\0\u0222\0\u0b94\0\u0186\0\u0186\0\u0186\0\u0186\0\u0186\0\u0186"+
+    "\0\u0186\0\u0186\0\u0186\0\u0186\0\u0be2\0\u0c30\0\u0c7e\0\u0186"+
+    "\0\u0186\0\u0ccc\0\u0d1a\0\u0186\0\u0186\0\u0d68\0\u0db6\0\u0e04"+
+    "\0\u0e52\0\u0ea0\0\u0222\0\u0222\0\u0eee\0\u0492\0\u0222\0\u0222"+
+    "\0\u0222\0\u0f3c\0\u0f8a\0\u0fd8\0\u1026\0\u1074\0\u10c2\0\u1110"+
+    "\0\u0186\0\u115e\0\u11ac\0\u11fa\0\u1248\0\u1296\0\u12e4\0\u1332"+
+    "\0\u1380\0\u13ce\0\u141c\0\u146a\0\u14b8\0\u1506\0\u0186\0\u1554"+
+    "\0\u15a2\0\u15f0\0\u163e\0\u168c\0\u16da\0\u1728\0\u1776\0\u04e0"+
+    "\0\u17c4\0\u1812\0\u1860\0\u18ae\0\u1812\0\u18fc\0\u05ca\0\u194a"+
+    "\0\u1998\0\u19e6\0\u1a34\0\u1a82\0\u1ad0\0\u1b1e\0\u1b6c\0\u1bba"+
+    "\0\u1c08\0\u1c56\0\u1ca4\0\u1cf2\0\u1d40\0\u1d8e\0\u1ddc\0\u1e2a"+
+    "\0\u1e78\0\u1ec6\0\u1f14\0\u1f62\0\u1fb0\0\u1ffe\0\u204c\0\u209a"+
+    "\0\u20e8\0\u2136\0\u2184\0\u21d2\0\u2220\0\u226e\0\u22bc\0\u230a"+
+    "\0\u2358\0\u23a6\0\u23f4\0\u2442\0\u2490\0\u24de\0\u252c\0\u257a"+
+    "\0\u25c8\0\u2616\0\u2664\0\u26b2\0\u2700\0\u274e\0\u279c\0\u27ea"+
+    "\0\u2838\0\u2886\0\u28d4\0\u0186\0\u2922\0\u0c30\0\u0186\0\u0186"+
+    "\0\u0186\0\u2970\0\u0186\0\u0186\0\u0186\0\u0186\0\u0186\0\u0186"+
+    "\0\u29be\0\u2a0c\0\u2a5a\0\u2aa8\0\u2af6\0\u2b44\0\u0186\0\u0186"+
+    "\0\u2b92\0\u2be0\0\u2c2e\0\u2c7c\0\u2cca\0\u2d18\0\u2d66\0\u2db4"+
+    "\0\u2e02\0\u2e50\0\u2e9e\0\u2eec\0\u2f3a\0\u2f88\0\u2fd6\0\u3024"+
+    "\0\u3072\0\u30c0\0\u310e\0\u315c\0\u31aa\0\u31f8\0\u3246\0\u3294"+
+    "\0\u32e2\0\u3330\0\u337e\0\u33cc\0\u341a\0\u3468\0\u34b6\0\u3504"+
+    "\0\u3552\0\u35a0\0\u35ee\0\u363c\0\u368a\0\u36d8\0\u1812\0\u3726"+
+    "\0\u3774\0\u1812\0\u37c2\0\u3810\0\u385e\0\u38ac\0\u38fa\0\u3948"+
+    "\0\u3996\0\u39e4\0\u3a32\0\u3a80\0\u3ace\0\u3b1c\0\u3b6a\0\u3bb8"+
+    "\0\u3c06\0\u3c54\0\u3ca2\0\u3cf0\0\u3d3e\0\u3d8c\0\u3dda\0\u3e28"+
+    "\0\u3e76\0\u3ec4\0\u3f12\0\u3f60\0\u3fae\0\u3ffc\0\u404a\0\u4098"+
+    "\0\u40e6\0\u4134\0\u4182\0\u41d0\0\u421e\0\u426c\0\u42ba\0\u4308"+
+    "\0\u4356\0\u43a4\0\u43f2\0\u0222\0\u4440\0\u448e\0\u44dc\0\u452a"+
+    "\0\u4578\0\u45c6\0\u4614\0\u4662\0\u46b0\0\u46fe\0\u474c\0\u479a"+
+    "\0\u0186\0\u0be2\0\u0186\0\u47e8\0\u4836\0\u4884\0\u48d2\0\u4920"+
+    "\0\u496e\0\u49bc\0\u4a0a\0\u4a58\0\u4aa6\0\u4af4\0\u4b42\0\u4b90"+
+    "\0\u4bde\0\u4c2c\0\u4c7a\0\u4cc8\0\u4d16\0\u4d64\0\u4db2\0\u4e00"+
+    "\0\u4e4e\0\u4e9c\0\u4eea\0\u4f38\0\u4f86\0\u4fd4\0\u5022\0\u5070"+
+    "\0\u50be\0\u510c\0\u515a\0\u51a8\0\u51f6\0\u5244\0\u5292\0\u52e0"+
+    "\0\u532e\0\u537c\0\u53ca\0\u5418\0\u5466\0\u54b4\0\u5502\0\u5550"+
+    "\0\u559e\0\u55ec\0\u563a\0\u5688\0\u56d6\0\u5724\0\u5772\0\u57c0"+
+    "\0\u580e\0\u585c\0\u58aa\0\u58f8\0\u5946\0\u5994\0\u59e2\0\u5a30"+
+    "\0\u5a7e\0\u5acc\0\u5b1a\0\u5b68\0\u5bb6\0\u5c04\0\u5c52\0\u5ca0"+
+    "\0\u5cee\0\u5d3c\0\u5d8a\0\u5dd8\0\u5e26\0\u5e74\0\u5ec2\0\u5f10"+
+    "\0\u5f5e\0\u0222\0\u5fac\0\u5ffa\0\u6048\0\u6096\0\u60e4\0\u6132"+
+    "\0\u6180\0\u0222\0\u61ce\0\u621c\0\u626a\0\u62b8\0\u6306\0\u6354"+
+    "\0\u0222\0\u63a2\0\u63f0\0\u643e\0\u648c\0\u64da\0\u6528\0\u6576"+
+    "\0\u65c4\0\u6612\0\u6660\0\u66ae\0\u66fc\0\u0222\0\u674a\0\u6798"+
+    "\0\u67e6\0\u6834\0\u6882\0\u68d0\0\u691e\0\u696c\0\u69ba\0\u6a08"+
+    "\0\u6a56\0\u6aa4\0\u6af2\0\u6b40\0\u6b8e\0\u6bdc\0\u6c2a\0\u6c78"+
+    "\0\u6cc6\0\u146a\0\u6d14\0\u6d62\0\u6db0\0\u6dfe\0\u6e4c\0\u6e9a"+
+    "\0\u6ee8\0\u6f36\0\u6f84\0\u6fd2\0\u7020\0\u146a\0\u706e\0\u70bc"+
+    "\0\u710a\0\u7158\0\u71a6\0\u71f4\0\u7242\0\u7290\0\u72de\0\u732c"+
+    "\0\u737a\0\u73c8\0\u7416\0\u7464\0\u74b2\0\u7500\0\u754e\0\u759c"+
+    "\0\u75ea\0\u7638\0\u7686\0\u76d4\0\u7722\0\u7770\0\u77be\0\u780c"+
+    "\0\u785a\0\u78a8\0\u78f6\0\u7944\0\u7992\0\u79e0\0\u7a2e\0\u7a7c"+
+    "\0\u7aca\0\u7b18\0\u7b66\0\u7bb4\0\u7c02\0\u7c50\0\u7c9e\0\u7cec"+
+    "\0\u7d3a\0\u7d88\0\u7dd6\0\u7e24\0\u7e72\0\u7ec0\0\u7f0e\0\u7f5c"+
+    "\0\u7faa\0\u7ff8\0\u8046\0\u8094\0\u80e2\0\u8130\0\u817e\0\u81cc"+
+    "\0\u821a\0\u8268\0\u82b6\0\u8304\0\u0222\0\u8352\0\u83a0\0\u83ee"+
+    "\0\u843c\0\u848a\0\u84d8\0\u8526\0\u8574\0\u85c2\0\u8610\0\u865e"+
+    "\0\u86ac\0\u86fa\0\u8748\0\u8796\0\u87e4\0\u8832\0\u8880\0\u146a"+
+    "\0\u146a\0\u88ce\0\u891c\0\u896a\0\u89b8\0\u8a06\0\u146a\0\u8a54"+
+    "\0\u8aa2\0\u8af0\0\u146a\0\u8b3e\0\u8b8c\0\u8bda\0\u8c28\0\u8c76"+
+    "\0\u8cc4\0\u8d12\0\u8d60\0\u8dae\0\u8dfc\0\u8e4a\0\u8e98\0\u8ee6"+
+    "\0\u8f34\0\u8f82\0\u8fd0\0\u901e\0\u906c\0\u90ba\0\u9108\0\u9156"+
+    "\0\u91a4\0\u91f2\0\u9240\0\u928e\0\u92dc\0\u932a\0\u9378\0\u93c6"+
+    "\0\u9414\0\u9462\0\u94b0\0\u94fe\0\u954c\0\u959a\0\u95e8\0\u9636"+
+    "\0\u9684\0\u96d2\0\u9720\0\u976e\0\u97bc\0\u980a\0\u9858\0\u98a6"+
+    "\0\u98f4\0\u9942\0\u9990\0\u99de\0\u9a2c\0\u9a7a\0\u9ac8\0\u9b16"+
+    "\0\u9b64\0\u9bb2\0\u9c00\0\u9c4e\0\u9c9c\0\u9cea\0\u9d38\0\u9d86"+
+    "\0\u9dd4\0\u9e22\0\u9e70\0\u9ebe\0\u9f0c\0\u9f5a\0\u9fa8\0\u9ff6"+
+    "\0\ua044\0\ua092\0\ua0e0\0\ua12e\0\ua17c\0\ua1ca\0\ua218\0\ua266"+
+    "\0\u0186\0\ua2b4\0\ua302\0\ua350\0\ua39e\0\ua3ec\0\ua43a\0\ua488"+
+    "\0\ua4d6\0\ua524\0\ua572\0\ua5c0\0\ua60e\0\ua65c\0\ua6aa\0\ua6f8"+
+    "\0\ua746\0\ua794\0\ua7e2\0\ua830\0\ua87e\0\ua8cc\0\ua91a\0\ua968"+
+    "\0\ua9b6\0\u146a\0\uaa04\0\uaa52\0\uaaa0\0\uaaee\0\u146a\0\uab3c"+
+    "\0\uab8a\0\uabd8\0\uac26\0\uac74\0\uacc2\0\uad10\0\uad5e\0\uadac"+
+    "\0\uadfa\0\uae48\0\uae96\0\uaee4\0\u146a\0\uaf32\0\uaf80\0\uafce"+
+    "\0\ub01c\0\ub06a\0\ub0b8\0\ub106\0\ub154\0\ub1a2\0\ub1f0\0\u0186"+
+    "\0\ub23e\0\ub28c\0\ub2da\0\ub328\0\ub376\0\ub3c4\0\ub412\0\ub460"+
+    "\0\ub4ae\0\ub4fc\0\ub54a\0\ub598\0\ub5e6\0\ub634\0\ub682\0\ub6d0"+
+    "\0\ub71e\0\ub76c\0\ub7ba\0\ub808\0\ub856\0\ub8a4\0\ub8f2\0\ub940"+
+    "\0\ub98e\0\ub9dc\0\uba2a\0\uba78\0\ubac6\0\ubb14\0\ubb62\0\ubbb0"+
+    "\0\ubbfe\0\ubc4c\0\ubc9a\0\ubce8\0\ubd36\0\ubd84\0\ubdd2\0\u0186"+
+    "\0\u0222\0\ube20\0\ube6e\0\ubebc\0\ubf0a\0\ubf58\0\ubfa6\0\ubff4"+
+    "\0\uc042\0\uc090\0\uc0de\0\uc12c\0\uc17a\0\uc1c8\0\u0186\0\u0186"+
+    "\0\uc216\0\ua2b4\0\uc264\0\uc2b2\0\uc300\0\uc34e\0\uc39c\0\uc3ea"+
+    "\0\uc438\0\uc486\0\uc4d4\0\uc522\0\uc570\0\uc5be\0\uc60c\0\uc65a"+
+    "\0\uc6a8\0\uc6f6\0\uc744\0\uc792\0\uc7e0\0\uc82e\0\uc87c\0\uc8ca"+
+    "\0\uc918\0\uc966\0\uc9b4\0\uca02\0\uca50\0\uca9e\0\ucaec\0\ucb3a"+
+    "\0\ucb88\0\ucbd6\0\ucc24\0\ucc72\0\uccc0\0\ucd0e\0\ucd5c\0\ucdaa"+
+    "\0\ucdf8\0\uce46\0\uce94\0\ucee2\0\ucf30\0\ucf7e\0\ucfcc\0\ud01a"+
+    "\0\ud068\0\ud0b6\0\ud104\0\u0222\0\ud152\0\ud1a0\0\ud1ee\0\ud23c"+
+    "\0\ud28a\0\ud2d8\0\u0186\0\ud326\0\ud374\0\ud3c2\0\ud410\0\ud45e"+
+    "\0\ud4ac\0\ud4fa\0\ud548\0\ud596\0\ud5e4\0\ud632\0\ud680\0\ud6ce"+
+    "\0\ud71c\0\ud76a\0\ud7b8\0\ud806\0\ud854\0\ud8a2\0\ud8f0\0\ud93e"+
+    "\0\ud98c\0\ud9da\0\uda28\0\uda76\0\udac4\0\udb12\0\udb60\0\udbae"+
+    "\0\udbfc\0\udc4a\0\udc98\0\udce6\0\udd34\0\udd82\0\uddd0\0\ude1e"+
+    "\0\ude6c\0\udeba\0\udf08\0\u0222\0\udf56\0\udfa4\0\udff2\0\ue040"+
+    "\0\ue08e\0\ue0dc\0\ue12a\0\ue178\0\ue1c6\0\ue214\0\ue262\0\ue2b0"+
+    "\0\u0222\0\ue2fe\0\ue34c\0\ue39a\0\ue3e8\0\ue436\0\ue484\0\ue4d2"+
+    "\0\ue520\0\ue56e\0\ue5bc\0\ue60a\0\ue658\0\ue6a6\0\ue6f4\0\ue742"+
+    "\0\ue790\0\ue7de\0\ue82c\0\ue87a\0\ue8c8\0\uc9b4\0\ue916\0\ue964"+
+    "\0\u146a\0\ue9b2\0\uea00\0\uea4e\0\uea9c\0\ueaea\0\u146a\0\u146a"+
+    "\0\ueb38\0\ueb86\0\uebd4\0\uec22\0\uec70\0\uecbe\0\ued0c\0\ued5a"+
+    "\0\ueda8\0\uedf6\0\uee44\0\uee92\0\ueee0\0\uef2e\0\uef7c\0\uefca"+
+    "\0\uf018\0\uf066\0\uf0b4\0\uf102\0\uf150\0\uf19e\0\uf1ec\0\uf23a"+
+    "\0\uf288\0\uf2d6\0\uf324\0\uf372\0\uf3c0\0\uf40e\0\u0222\0\uf45c"+
+    "\0\uf4aa\0\uf4f8\0\uf546\0\uf594\0\uf5e2\0\uf630\0\uf67e\0\uf6cc"+
+    "\0\uf71a\0\uf768\0\uf7b6\0\uf804\0\uf852\0\uf8a0\0\uf8ee\0\uf93c"+
+    "\0\uf98a\0\uf9d8\0\ufa26\0\u0222\0\ufa74\0\ufac2\0\ufb10\0\ufb5e"+
+    "\0\ufbac\0\ufbfa\0\ufc48\0\ufc96\0\ufce4\0\u0222\0\ufd32\0\ufd80"+
+    "\0\ufdce\0\ufe1c\0\ufe6a\0\ufeb8\0\uff06\0\u0222\0\ue484\0\uff54"+
+    "\0\uffa2\0\ufff0\1\76\1\214\1\332\1\u0128\1\u0176\1\u01c4"+
+    "\1\u0212\1\u0260\1\u02ae\1\u02fc\1\u034a\1\u0398\1\u03e6\1\u0434"+
+    "\1\u0482\1\u04d0\0\u146a\0\u146a\1\u051e\1\u056c\1\u05ba\1\u0608"+
+    "\1\u0656\0\u146a\1\u06a4\1\u06f2\0\u146a\1\u0740\1\u078e\1\u07dc"+
+    "\1\u082a\1\u0878\1\u08c6\1\u0914\1\u0962\0\u0222\1\u09b0\1\u09fe"+
+    "\1\u0a4c\1\u0a9a\1\u0ae8\1\u0b36\1\u0b84\1\u0bd2\1\u0c20\1\u0c6e"+
+    "\1\u0cbc\1\u0d0a\1\u0d58\1\u0da6\1\u0df4\1\u0e42\1\u0e90\1\u0ede"+
+    "\1\u0f2c\1\u0f7a\1\u0fc8\1\u1016\1\u1064\1\u10b2\1\u1100\1\u114e"+
+    "\1\u119c\1\u11ea\1\u1238\0\ufce4\1\u1286\1\u12d4\1\u1322\1\u1370"+
+    "\1\u13be\1\u140c\1\u145a\1\u14a8\1\u14f6\1\u1544\1\u1592\1\u15e0"+
+    "\1\u162e\1\u167c\1\u16ca\0\u146a\0\u146a\0\u146a\1\u1718\1\u1766"+
+    "\1\u17b4\1\u1802\1\u1850\1\u189e\1\u18ec\1\u193a\0\u146a\1\u1988"+
+    "\1\u19d6\1\u1a24\1\u1a72\1\u1ac0\1\u1b0e\1\u1b5c\1\u1baa\1\u1bf8"+
+    "\1\u1c46\1\u1c94\1\u1ce2\1\u1d30\1\u1d7e\1\u1dcc\1\u1e1a\1\u1e68"+
+    "\0\u0222\1\u1eb6\1\u1f04\1\u1f52\1\u1fa0\1\u1fee\0\u0186\1\u203c"+
+    "\1\u208a\1\u20d8\1\u2126\1\u2174\1\u21c2\0\u0186\1\u2210\1\u225e"+
+    "\1\u22ac\1\u22fa\1\u2348\1\u2396\1\u23e4\1\u2432\1\u2480\1\u24ce"+
+    "\1\u251c\1\u256a\1\u25b8\1\u2606\1\u2654\1\u26a2\1\u26f0\1\u273e"+
+    "\1\u278c\1\u27da\1\u2828\1\u2876\1\u28c4\1\u2912\1\u2960\1\u29ae"+
+    "\1\u29fc\1\u2a4a\1\u2a98\1\u2ae6\0\u0186\1\u2b34\1\u2b82\1\u2bd0"+
+    "\1\u2c1e\1\u2c6c\1\u2cba\1\u2d08\1\u2d56\1\u2da4\1\u2df2\1\u2e40"+
+    "\1\u2e8e\0\u0186\0\u0186\1\u2edc\1\u2f2a\0\u0222\1\u2f78\0\u0222"+
+    "\1\u2fc6\1\u3014\1\u3062\1\u30b0\1\u30fe\1\u314c\1\u319a\1\u31e8"+
+    "\1\u3236\1\u3284\1\u32d2\1\u3320\1\u336e\1\u33bc\1\u340a\1\u3458"+
+    "\1\u34a6\1\u34f4\0\u0222\1\u3542\1\u3590\0\u0186\1\u35de\0\u0222"+
+    "\0\u0222\1\u362c\1\u367a\1\u36c8\1\u3716\1\u3764\1\u37b2\1\u3800"+
+    "\1\u384e\1\u389c\1\u38ea\1\u3938\1\u3986\0\u146a\0\u146a\0\u146a"+
+    "\1\u39d4\1\u3a22\1\u3a70\1\u3abe\1\u3b0c\0\u146a\1\u3b5a\1\u3ba8"+
+    "\1\u3bf6\1\u3c44\1\u3c92\1\u3ce0\1\u3d2e\1\u3d7c\1\u3dca\1\u3e18"+
+    "\1\u3e66\1\u3eb4\1\u3f02\1\u3f50\0\u146a\0\u146a\1\u3f9e\1\u3fec"+
+    "\1\u403a\1\u4088\1\u40d6\1\u4124\1\u4172\1\u41c0\1\u420e\1\u425c"+
+    "\1\u42aa\1\u42f8\1\u4346\1\u4394\1\u43e2\1\u4430\1\u447e\1\u44cc"+
+    "\1\u451a\0\u0222\1\u4568\1\u45b6\1\u4604\1\u4652\1\u46a0\1\u46ee"+
+    "\1\u473c\1\u478a\1\u47d8\1\u4826\1\u4874\1\u48c2\1\u4910\1\u495e"+
+    "\1\u49ac\1\u49fa\0\u0186\0\u0222\1\u4a48\1\u4a96\1\u4ae4\1\u4b32"+
+    "\0\u0186\1\u4b80\1\u4bce\1\u4c1c\0\u146a\0\u146a\0\u146a\0\u0186"+
+    "\1\u4c6a\1\u4cb8\1\u4d06\1\u4d54\1\u4da2\0\u0222\1\u4df0\1\u4e3e"+
+    "\0\u0222\1\u4e8c\1\u4eda\1\u4f28\1\u4f76\0\u0186\1\u4fc4\1\u5012"+
+    "\1\u5060\1\u50ae\1\u50fc\1\u514a\1\u5198\0\u0186\1\u51e6\1\u5234"+
+    "\1\u5282\1\u52d0\0\u0186\0\u0186\0\u0222";
+
+  private static int [] zzUnpackRowMap() {
+    int [] result = new int[1237];
+    int offset = 0;
+    offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
+    return result;
+  }
+
+  private static int zzUnpackRowMap(String packed, int offset, int [] result) {
+    int i = 0;  /* index in packed string  */
+    int j = offset;  /* index in unpacked array */
+    int l = packed.length();
+    while (i < l) {
+      int high = packed.charAt(i++) << 16;
+      result[j++] = high | packed.charAt(i++);
+    }
+    return j;
+  }
+
+  /**
+   * The transition table of the DFA
+   */
+  private static final int [] ZZ_TRANS = zzUnpackTrans();
+
+  private static final String ZZ_TRANS_PACKED_0 =
+    "\1\6\1\7\1\10\1\11\2\12\1\10\1\13\1\10"+
+    "\1\14\1\15\1\16\3\10\1\17\1\20\1\6\1\10"+
+    "\1\21\1\22\2\21\1\23\2\6\1\24\1\25\1\26"+
+    "\1\27\1\30\1\31\1\32\1\33\1\34\1\35\1\36"+
+    "\1\37\1\40\1\41\1\42\1\10\1\43\3\10\1\6"+
+    "\1\10\2\21\1\44\1\45\1\42\1\6\1\46\1\10"+
+    "\1\6\1\47\1\50\1\12\1\10\3\12\1\10\2\12"+
+    "\1\51\1\52\1\6\1\53\1\54\1\55\1\56\1\57"+
+    "\1\60\1\61\1\42\23\62\4\63\31\62\2\63\34\62"+
+    "\23\64\4\63\1\65\2\64\1\66\25\64\2\63\34\64"+
+    "\62\67\1\70\1\67\1\71\1\72\30\67\63\73\1\74"+
+    "\1\75\1\76\30\73\117\0\1\77\1\100\1\10\1\101"+
+    "\1\77\1\102\4\10\1\103\1\104\2\10\1\105\1\106"+
+    "\1\0\3\10\1\103\1\10\1\107\3\0\1\10\1\107"+
+    "\1\10\1\110\2\10\1\102\3\10\1\104\1\10\1\111"+
+    "\1\0\5\10\1\0\1\10\1\110\1\111\4\0\2\10"+
+    "\1\0\1\100\1\0\1\77\1\10\3\77\1\10\1\101"+
+    "\1\77\1\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\15\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\4\10\1\112\2\10\1\113\3\10"+
+    "\1\114\1\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\1\12\2\10\2\12"+
+    "\1\102\4\10\1\103\1\104\2\10\1\105\1\106\1\0"+
+    "\3\10\1\103\1\10\1\107\3\0\1\10\1\107\1\10"+
+    "\1\110\2\10\1\102\3\10\1\104\1\10\1\111\1\0"+
+    "\5\10\1\0\1\10\1\110\1\111\4\0\2\10\1\0"+
+    "\1\10\1\0\1\12\1\10\3\12\1\10\2\12\1\10"+
+    "\13\0\1\115\2\10\2\116\3\10\1\117\5\10\1\120"+
+    "\1\106\1\0\2\10\1\117\3\10\3\0\15\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\1\116\1\10\3\116\1\10\2\116\1\10\1\0\1\121"+
+    "\11\0\11\10\1\122\1\123\3\10\1\0\1\106\1\0"+
+    "\6\10\3\0\1\10\1\124\3\10\1\125\3\10\1\126"+
+    "\3\10\1\0\1\10\1\127\3\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\15\10\1\130"+
+    "\1\0\1\106\1\0\6\10\3\0\2\10\1\130\12\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\10\10\1\131\5\10\1\0\1\106"+
+    "\1\0\6\10\3\0\1\10\1\132\1\133\12\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\1\105\2\134\2\105\3\134\1\135\1\134"+
+    "\1\136\3\134\1\137\3\0\5\134\2\0\1\134\1\140"+
+    "\1\141\1\142\1\143\1\134\1\144\1\145\1\146\1\147"+
+    "\4\134\1\0\11\134\3\0\3\134\1\0\1\134\1\0"+
+    "\1\105\1\134\3\105\1\134\2\105\1\134\33\0\1\10"+
+    "\75\0\16\10\1\0\1\106\1\0\1\10\4\150\1\151"+
+    "\2\0\1\152\15\10\1\0\5\10\1\0\1\10\2\150"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\11\10"+
+    "\1\122\4\10\1\0\1\106\1\0\1\10\4\150\1\151"+
+    "\2\0\1\152\11\10\1\122\3\10\1\0\5\10\1\0"+
+    "\1\10\2\150\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\153\1\0\1\154\1\0\6\153\3\0\15\153"+
+    "\1\0\5\153\1\0\3\153\4\0\2\153\1\0\1\153"+
+    "\1\0\11\153\35\0\4\155\1\156\2\0\1\157\25\0"+
+    "\2\155\35\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\1\10\1\160\1\161\4\10\1\162\1\163\2\10\1\164"+
+    "\1\10\1\0\1\165\4\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\10\10\1\166\5\10"+
+    "\1\0\1\106\1\0\6\10\3\0\13\10\1\167\1\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\2\10\1\170\13\10\1\0\1\106"+
+    "\1\0\6\10\3\0\5\10\1\171\1\10\1\172\1\10"+
+    "\1\173\2\10\1\174\1\0\1\10\1\175\3\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\4\10\1\176"+
+    "\1\177\4\10\1\200\2\10\1\0\1\201\1\202\1\203"+
+    "\2\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\3\10\1\204\5\10\1\205\3\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\1\206\2\10\2\206\11\10\1\0\1\106\1\0\6\10"+
+    "\3\0\2\10\1\207\1\10\1\210\2\10\1\211\5\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\1\206\1\10\3\206\1\10\2\206\1\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\11\10\1\212"+
+    "\3\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\213\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\3\10\1\214\1\215\1\10\1\216\6\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\4\10\1\217\6\10\1\220\1\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\15\10\1\130\1\0\1\106\1\0\6\10\3\0"+
+    "\2\10\1\221\1\10\1\222\1\10\1\223\4\10\1\224"+
+    "\1\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\7\10\1\225\5\10\1\0\1\226\4\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\7\10"+
+    "\1\227\5\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\10\10\1\230\5\10"+
+    "\1\0\1\106\1\0\6\10\3\0\6\10\1\231\4\10"+
+    "\1\232\1\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\62\0\1\42\13\0\1\42"+
+    "\30\0\1\42\1\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\6\10\1\233\4\10\1\234\1\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\1\206\2\10\2\206\11\10\1\0\1\106\1\0"+
+    "\6\10\3\0\2\10\1\235\7\10\1\236\1\237\1\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\1\206\1\10\3\206\1\10\2\206\1\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\13\10\1\40"+
+    "\1\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\12\0\64\50\1\0\31\50\1\0"+
+    "\16\240\1\0\1\241\1\0\6\240\3\0\15\240\1\0"+
+    "\5\240\1\0\3\240\4\0\2\240\1\0\1\240\1\0"+
+    "\11\240\13\0\16\242\1\0\1\243\1\0\6\242\3\0"+
+    "\15\242\1\0\5\242\1\0\3\242\4\0\2\242\1\0"+
+    "\1\242\1\0\11\242\35\0\4\244\1\245\2\0\1\246"+
+    "\25\0\2\244\34\0\62\67\1\0\1\67\2\0\30\67"+
+    "\3\247\1\250\7\247\1\251\23\247\1\252\2\247\1\253"+
+    "\1\247\1\254\1\255\14\247\1\256\1\257\1\247\1\260"+
+    "\30\247\63\73\3\0\30\73\3\247\1\250\7\247\1\251"+
+    "\23\247\1\261\2\247\1\253\1\247\1\254\1\255\14\247"+
+    "\1\256\1\257\1\247\1\260\30\247\1\0\1\77\2\10"+
+    "\1\101\1\77\1\102\4\10\1\103\1\104\2\10\1\105"+
+    "\1\106\1\0\3\10\1\103\1\10\1\107\3\0\1\10"+
+    "\1\107\1\10\1\110\2\10\1\102\3\10\1\104\1\10"+
+    "\1\111\1\0\5\10\1\0\1\10\1\110\1\111\4\0"+
+    "\2\10\1\0\1\10\1\0\1\77\1\10\3\77\1\10"+
+    "\1\101\1\77\1\10\13\0\1\262\1\10\4\262\4\10"+
+    "\1\262\2\10\1\262\1\263\1\106\1\0\1\10\1\262"+
+    "\1\10\1\262\2\10\3\0\1\262\1\10\1\262\3\10"+
+    "\1\262\5\10\1\262\1\0\5\10\1\0\2\10\1\262"+
+    "\4\0\2\10\1\0\1\10\1\0\1\262\1\10\3\262"+
+    "\1\10\2\262\1\10\13\0\1\101\2\10\2\101\1\102"+
+    "\4\10\1\103\3\10\1\105\1\106\1\0\3\10\1\103"+
+    "\2\10\3\0\6\10\1\102\5\10\1\111\1\0\5\10"+
+    "\1\0\2\10\1\111\4\0\2\10\1\0\1\10\1\0"+
+    "\1\101\1\10\3\101\1\10\2\101\1\10\13\0\1\264"+
+    "\2\10\2\264\1\10\1\265\7\10\1\0\1\106\1\0"+
+    "\6\10\3\0\15\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\1\264\1\10\3\264\1\10"+
+    "\2\264\1\10\13\0\1\105\2\0\2\105\1\266\4\0"+
+    "\1\267\11\0\1\267\13\0\1\266\5\0\1\270\11\0"+
+    "\1\270\11\0\1\105\1\0\3\105\1\0\2\105\14\0"+
+    "\10\10\1\271\5\10\1\0\1\106\1\0\6\10\3\0"+
+    "\15\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\10\10\1\272\5\10\1\0"+
+    "\1\106\1\0\6\10\3\0\15\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\15\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\273\1\0"+
+    "\11\10\13\0\1\274\1\275\1\10\1\101\1\274\1\102"+
+    "\4\10\1\103\1\104\2\10\1\105\1\106\1\0\3\10"+
+    "\1\103\1\10\1\107\3\0\1\10\1\107\1\10\1\110"+
+    "\2\10\1\102\3\10\1\104\1\10\1\111\1\0\5\10"+
+    "\1\0\1\10\1\110\1\111\4\0\2\10\1\0\1\275"+
+    "\1\0\1\274\1\10\3\274\1\10\1\101\1\274\1\10"+
+    "\13\0\1\116\2\10\2\116\1\102\4\10\1\103\1\104"+
+    "\2\10\1\105\1\106\1\0\3\10\1\103\1\10\1\107"+
+    "\3\0\1\10\1\107\1\10\1\110\2\10\1\102\3\10"+
+    "\1\104\1\10\1\111\1\0\5\10\1\0\1\10\1\110"+
+    "\1\111\4\0\2\10\1\0\1\10\1\0\1\116\1\10"+
+    "\3\116\1\10\2\116\1\10\13\0\11\10\1\122\4\10"+
+    "\1\0\1\106\1\0\6\10\3\0\11\10\1\122\3\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\1\105\2\0\2\105\65\0\1\105"+
+    "\1\0\3\105\1\0\2\105\14\0\12\10\1\276\3\10"+
+    "\1\0\1\106\1\0\3\10\1\276\2\10\3\0\15\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\6\10\1\277\7\10\1\0\1\106"+
+    "\1\0\6\10\3\0\15\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\1\10\1\300\13\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\4\10\1\301\10\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\12\10"+
+    "\1\276\3\10\1\0\1\106\1\0\3\10\1\276\2\10"+
+    "\3\0\1\10\1\302\1\10\1\303\6\10\1\304\2\10"+
+    "\1\0\5\10\1\0\3\10\4\0\1\305\1\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\6\10\1\301\6\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\11\10\1\306\4\10\1\0\1\106\1\0\6\10\3\0"+
+    "\11\10\1\306\3\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\1\10\1\307\4\10\1\310"+
+    "\2\10\1\311\3\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\13\10\1\312\1\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\1\10\1\313\13\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\134\4\0"+
+    "\5\134\2\0\16\134\1\0\11\134\3\0\3\134\1\0"+
+    "\1\134\1\0\11\134\13\0\16\134\4\0\5\134\2\0"+
+    "\11\134\1\314\4\134\1\0\11\134\3\0\3\134\1\0"+
+    "\1\134\1\0\11\134\13\0\10\134\1\315\5\134\4\0"+
+    "\5\134\2\0\16\134\1\0\11\134\3\0\3\134\1\0"+
+    "\1\134\1\0\11\134\13\0\16\134\4\0\5\134\2\0"+
+    "\2\134\1\316\1\317\12\134\1\0\11\134\3\0\3\134"+
+    "\1\0\1\134\1\0\11\134\13\0\10\134\1\320\5\134"+
+    "\4\0\5\134\2\0\14\134\1\321\1\134\1\0\11\134"+
+    "\3\0\3\134\1\0\1\134\1\0\11\134\13\0\16\134"+
+    "\4\0\5\134\2\0\10\134\1\322\1\134\1\323\3\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\5\134\1\324\1\325"+
+    "\5\134\1\326\1\134\1\0\11\134\3\0\3\134\1\0"+
+    "\1\134\1\0\11\134\13\0\16\134\4\0\5\134\2\0"+
+    "\3\134\1\327\4\134\1\330\5\134\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\16\134\4\0"+
+    "\5\134\2\0\6\134\1\331\3\134\1\332\3\134\1\0"+
+    "\11\134\3\0\3\134\1\0\1\134\1\0\11\134\13\0"+
+    "\16\134\4\0\5\134\2\0\7\134\1\333\6\134\1\0"+
+    "\11\134\3\0\3\134\1\0\1\134\1\0\11\134\13\0"+
+    "\16\134\4\0\5\134\2\0\7\134\1\334\6\134\1\0"+
+    "\11\134\3\0\3\134\1\0\1\134\1\0\11\134\13\0"+
+    "\16\335\1\0\1\336\1\0\6\335\3\0\15\335\1\0"+
+    "\5\335\1\0\3\335\4\0\2\335\1\0\1\335\1\0"+
+    "\11\335\35\0\4\337\1\340\2\0\1\152\25\0\2\337"+
+    "\35\0\16\153\1\0\1\154\1\0\6\153\1\341\1\342"+
+    "\1\0\15\153\1\0\5\153\1\0\3\153\4\0\2\153"+
+    "\1\0\1\153\1\0\11\153\33\0\1\153\75\0\16\343"+
+    "\1\0\1\344\1\0\6\343\3\0\15\343\1\0\5\343"+
+    "\1\0\3\343\4\0\2\343\1\0\1\343\1\0\11\343"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\2\10"+
+    "\1\345\12\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\5\10\1\346\7\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\6\10"+
+    "\1\347\6\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\5\10\1\350\7\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\11\10"+
+    "\1\351\3\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\6\10\1\352\6\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\2\10\1\353\13\10\1\0\1\106\1\0\6\10"+
+    "\3\0\15\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\11\10\1\354\3\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\3\10"+
+    "\1\355\11\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\4\10\1\356\10\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\7\10"+
+    "\1\357\5\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\11\10\1\360\2\10\1\227\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\14\10\1\361\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\6\10\1\356\6\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\2\10\1\362\13\10\1\0\1\106\1\0\6\10"+
+    "\3\0\15\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\2\10\1\363\1\10\1\364\10\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\2\10\1\365\4\10\1\366\5\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\1\10"+
+    "\1\367\5\10\1\367\5\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\6\10\1\364\6\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\3\10\1\370\5\10\1\371\3\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\15\10"+
+    "\1\0\1\372\4\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\2\10\1\373\13\10\1\0"+
+    "\1\106\1\0\6\10\3\0\15\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\1\206\2\10\2\206\11\10\1\0\1\106\1\0\6\10"+
+    "\3\0\15\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\1\206\1\10\3\206\1\10\2\206"+
+    "\1\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\1\374\14\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\2\10\1\375\13\10"+
+    "\1\0\1\106\1\0\6\10\3\0\15\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\10\10\1\376\5\10\1\0\1\106\1\0\6\10"+
+    "\3\0\13\10\1\377\1\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\4\10\1\u0100\10\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\6\10\1\u0101\6\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\4\10\1\u0102\10\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\11\10\1\u0103\3\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\10\10\1\361\1\10"+
+    "\1\u0104\2\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\1\10\1\361\13\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\11\10"+
+    "\1\u0105\3\10\1\0\5\10\1\0\3\10\4\0\1\u0106"+
+    "\1\10\1\0\1\10\1\0\11\10\13\0\11\10\1\306"+
+    "\4\10\1\0\1\106\1\0\6\10\3\0\11\10\1\306"+
+    "\1\u0107\2\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\1\10\1\u0108\13\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\15\10"+
+    "\1\0\1\10\1\u0109\2\10\1\u010a\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\6\10\1\u010b"+
+    "\7\10\1\0\1\106\1\0\6\10\3\0\5\10\1\u010c"+
+    "\4\10\1\u010d\2\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\2\10\1\u010e\1\10\1\u010f"+
+    "\10\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\7\10\1\u0110\5\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\6\10\1\u0111\7\10\1\0\1\106\1\0\6\10\3\0"+
+    "\15\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\15\10\1\0\5\10\1\0\3\10\4\0"+
+    "\1\361\1\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\1\u0112\14\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\4\10\1\u0113\10\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\11\10\1\u0114\3\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\12\10\1\u0115\2\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\7\10\1\u0116\5\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\2\10\1\u0117\12\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\1\10\1\u0118\13\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\240\1\0\1\241\1\0\6\240\3\0"+
+    "\15\240\1\0\5\240\1\0\3\240\4\0\2\240\1\0"+
+    "\1\240\1\0\11\240\1\0\1\u0119\31\0\1\240\75\0"+
+    "\16\242\1\0\1\243\1\0\6\242\1\u011a\1\u011b\1\0"+
+    "\15\242\1\0\5\242\1\0\3\242\4\0\2\242\1\0"+
+    "\1\242\1\0\11\242\33\0\1\242\75\0\16\u011c\1\0"+
+    "\1\u011d\1\0\6\u011c\3\0\15\u011c\1\0\5\u011c\1\0"+
+    "\3\u011c\4\0\2\u011c\1\0\1\u011c\1\0\11\u011c\13\0"+
+    "\1\u011e\1\0\4\u011e\4\0\1\u011e\2\0\1\u011e\4\0"+
+    "\1\u011e\1\0\1\u011e\5\0\1\u011e\1\0\1\u011e\3\0"+
+    "\1\u011e\5\0\1\u011e\11\0\1\u011e\11\0\1\u011e\1\0"+
+    "\3\u011e\1\0\2\u011e\14\0\1\u011f\1\0\4\u011f\4\0"+
+    "\1\u011f\2\0\1\u011f\4\0\1\u011f\1\0\1\u011f\5\0"+
+    "\1\u011f\1\0\1\u011f\3\0\1\u011f\5\0\1\u011f\11\0"+
+    "\1\u011f\11\0\1\u011f\1\0\3\u011f\1\0\2\u011f\14\0"+
+    "\1\262\1\10\4\262\1\10\1\102\2\10\1\262\1\104"+
+    "\1\10\1\262\1\u0120\1\106\1\0\1\10\1\262\1\10"+
+    "\1\262\1\10\1\107\3\0\1\262\1\107\1\262\1\110"+
+    "\1\10\1\102\1\262\3\10\1\104\1\10\1\262\1\0"+
+    "\5\10\1\0\1\10\1\110\1\262\4\0\2\10\1\0"+
+    "\1\10\1\0\1\262\1\10\3\262\1\10\2\262\1\10"+
+    "\13\0\1\u0120\1\0\4\u0120\4\0\1\u0120\2\0\1\u0120"+
+    "\4\0\1\u0120\1\0\1\u0120\5\0\1\u0120\1\0\1\u0120"+
+    "\3\0\1\u0120\5\0\1\u0120\11\0\1\u0120\11\0\1\u0120"+
+    "\1\0\3\u0120\1\0\2\u0120\14\0\1\264\2\10\2\264"+
+    "\5\10\1\103\3\10\1\0\1\106\1\0\3\10\1\103"+
+    "\2\10\3\0\14\10\1\111\1\0\5\10\1\0\2\10"+
+    "\1\111\4\0\2\10\1\0\1\10\1\0\1\264\1\10"+
+    "\3\264\1\10\2\264\1\10\13\0\1\264\2\10\2\264"+
+    "\11\10\1\0\1\106\1\0\6\10\3\0\15\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\1\264\1\10\3\264\1\10\2\264\1\10\13\0\1\u0121"+
+    "\2\0\2\u0121\1\0\1\u0122\63\0\1\u0121\1\0\3\u0121"+
+    "\1\0\2\u0121\14\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\1\10\1\u0123\13\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\14\10\1\u0124\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\6\10\1\u0125\7\10\1\0\1\106\1\0"+
+    "\6\10\3\0\15\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\1\274\2\10"+
+    "\1\101\1\274\1\102\4\10\1\103\1\104\2\10\1\105"+
+    "\1\106\1\0\3\10\1\103\1\10\1\107\3\0\1\10"+
+    "\1\107\1\10\1\110\2\10\1\102\3\10\1\104\1\10"+
+    "\1\111\1\0\5\10\1\0\1\10\1\110\1\111\4\0"+
+    "\2\10\1\0\1\10\1\0\1\274\1\10\3\274\1\10"+
+    "\1\101\1\274\1\10\13\0\1\u0126\1\10\4\u0126\4\10"+
+    "\1\u0126\2\10\1\u0126\1\263\1\106\1\0\1\10\1\u0126"+
+    "\1\10\1\u0126\2\10\3\0\1\u0126\1\10\1\u0126\3\10"+
+    "\1\u0126\5\10\1\u0126\1\0\5\10\1\0\2\10\1\u0126"+
+    "\4\0\2\10\1\0\1\10\1\0\1\u0126\1\10\3\u0126"+
+    "\1\10\2\u0126\1\10\13\0\10\10\1\u0127\5\10\1\0"+
+    "\1\106\1\0\2\10\1\u0127\3\10\3\0\15\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\1\10\1\u0128\4\10\1\u0129\2\10\1\u012a\3\10\1\0"+
+    "\1\10\1\u0128\3\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\6\10\1\u012b\6\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\12\10\1\u012c"+
+    "\2\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\10\10\1\u012d\5\10\1\0"+
+    "\1\106\1\0\6\10\3\0\15\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\12\10\1\u012e"+
+    "\2\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\6\10\1\u012f\7\10\1\0"+
+    "\1\106\1\0\6\10\3\0\6\10\1\u0130\6\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\13\10\1\u0131\1\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\12\10\1\103"+
+    "\3\10\1\0\1\106\1\0\3\10\1\103\2\10\3\0"+
+    "\14\10\1\111\1\0\5\10\1\0\2\10\1\111\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\1\10\1\u0132\13\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\1\10\1\u0133\13\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\2\10\1\u0134\12\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\2\10\1\u0135\12\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\3\10\1\u010f\11\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\134\4\0\5\134\2\0\6\134\1\u0136"+
+    "\7\134\1\0\11\134\3\0\3\134\1\0\1\134\1\0"+
+    "\11\134\13\0\16\134\4\0\5\134\2\0\7\134\1\u0137"+
+    "\6\134\1\0\11\134\3\0\3\134\1\0\1\134\1\0"+
+    "\11\134\13\0\16\134\4\0\5\134\2\0\3\134\1\u0138"+
+    "\12\134\1\0\11\134\3\0\3\134\1\0\1\134\1\0"+
+    "\11\134\13\0\16\134\4\0\5\134\2\0\13\134\1\u0139"+
+    "\2\134\1\0\11\134\3\0\3\134\1\0\1\134\1\0"+
+    "\11\134\13\0\16\134\4\0\5\134\2\0\12\134\1\u013a"+
+    "\3\134\1\0\11\134\3\0\3\134\1\0\1\134\1\0"+
+    "\11\134\13\0\16\134\4\0\5\134\2\0\1\134\1\u013b"+
+    "\14\134\1\0\11\134\3\0\3\134\1\0\1\134\1\0"+
+    "\11\134\13\0\16\134\4\0\5\134\2\0\10\134\1\u013c"+
+    "\5\134\1\0\11\134\3\0\3\134\1\0\1\134\1\0"+
+    "\11\134\13\0\16\134\4\0\5\134\2\0\12\134\1\u013d"+
+    "\3\134\1\0\11\134\3\0\3\134\1\0\1\134\1\0"+
+    "\11\134\13\0\2\134\1\u013e\13\134\4\0\5\134\2\0"+
+    "\6\134\1\u013f\7\134\1\0\11\134\3\0\3\134\1\0"+
+    "\1\134\1\0\11\134\13\0\16\134\4\0\5\134\2\0"+
+    "\3\134\1\u0140\12\134\1\0\11\134\3\0\3\134\1\0"+
+    "\1\134\1\0\11\134\13\0\16\134\4\0\5\134\2\0"+
+    "\5\134\1\u0141\10\134\1\0\11\134\3\0\3\134\1\0"+
+    "\1\134\1\0\11\134\13\0\16\134\4\0\5\134\2\0"+
+    "\1\134\1\u0142\6\134\1\u0143\5\134\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\16\134\4\0"+
+    "\5\134\2\0\14\134\1\u0144\1\134\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\10\134\1\u0145"+
+    "\5\134\4\0\5\134\2\0\16\134\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\16\134\4\0"+
+    "\5\134\2\0\5\134\1\u0146\7\134\1\u0147\1\0\11\134"+
+    "\3\0\3\134\1\0\1\134\1\0\11\134\13\0\16\134"+
+    "\4\0\5\134\2\0\4\134\1\u0148\11\134\1\0\1\134"+
+    "\1\u0149\7\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\13\134\1\u014a\2\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\335\1\0\1\336\1\0\6\335\1\340\1\337"+
+    "\1\0\15\335\1\0\5\335\1\0\3\335\4\0\2\335"+
+    "\1\0\1\335\1\0\11\335\33\0\1\335\75\0\16\u014b"+
+    "\1\0\1\u014c\1\0\6\u014b\3\0\15\u014b\1\0\5\u014b"+
+    "\1\0\3\u014b\4\0\2\u014b\1\0\1\u014b\1\0\11\u014b"+
+    "\13\0\16\u014d\1\0\1\u014e\1\0\6\u014d\3\0\15\u014d"+
+    "\1\0\5\u014d\1\0\3\u014d\4\0\2\u014d\1\0\1\u014d"+
+    "\1\0\11\u014d\13\0\16\343\1\0\1\344\1\0\6\343"+
+    "\1\156\1\155\1\0\15\343\1\0\5\343\1\0\3\343"+
+    "\4\0\2\343\1\0\1\343\1\0\11\343\33\0\1\343"+
+    "\75\0\16\10\1\0\1\106\1\0\6\10\3\0\3\10"+
+    "\1\u014f\11\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\12\10\1\u0150\2\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\2\10"+
+    "\1\u0151\12\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\6\10\1\u0152\7\10"+
+    "\1\0\1\106\1\0\6\10\3\0\1\10\1\u0153\13\10"+
+    "\1\0\1\10\1\u0153\3\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\3\10\1\u0154\11\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\1\u0155"+
+    "\14\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\6\10\1\u0156\6\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\15\10\1\0"+
+    "\1\10\1\u0157\3\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\12\10\1\u0158\2\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\12\10\1\u0159"+
+    "\2\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\2\10\1\u015a\12\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\13\10\1\u015b"+
+    "\1\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\6\10\1\u015c\7\10\1\0"+
+    "\1\106\1\0\6\10\3\0\15\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\6\10\1\u015d\7\10\1\0\1\106\1\0\6\10\3\0"+
+    "\15\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\7\10\1\u015e\5\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\12\10\1\u015f"+
+    "\2\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\12\10\1\u0160\2\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\10\10\1\u0161\5\10\1\0\1\106\1\0\6\10\3\0"+
+    "\15\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\6\10\1\u0162\7\10\1\0"+
+    "\1\106\1\0\6\10\3\0\15\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\12\10\1\u0163"+
+    "\2\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\1\u0164\11\10\1\u0165\2\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\7\10"+
+    "\1\367\5\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\13\10\1\u0166\1\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\15\10"+
+    "\1\0\3\10\1\u0167\1\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\1\10\1\u0160\13\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\15\10"+
+    "\1\0\5\10\1\0\3\10\4\0\1\u0168\1\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\12\10\1\u0169\2\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\10\10\1\u016a"+
+    "\4\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\1\u016b\14\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\2\10"+
+    "\1\u016c\13\10\1\0\1\106\1\0\6\10\3\0\15\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\12\10\1\u016d\2\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\4\10\1\u016e\10\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\10\10\1\u016f\5\10\1\0\1\106"+
+    "\1\0\6\10\3\0\15\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\6\10\1\u0170\6\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\10\10\1\u0171\5\10\1\0\1\106"+
+    "\1\0\6\10\3\0\15\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\1\10\1\u0172\13\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\6\10\1\u0173\7\10\1\0\1\106"+
+    "\1\0\6\10\3\0\15\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\6\10"+
+    "\1\u0174\7\10\1\0\1\106\1\0\6\10\3\0\15\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\3\10\1\u0175\2\10\1\u0176\6\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\6\10\1\u0177\7\10\1\0\1\106\1\0\6\10"+
+    "\3\0\15\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\11\10\1\u0178\3\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\6\10"+
+    "\1\u0179\6\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\13\10\1\u017a\1\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\10\10\1\u017b\5\10\1\0\1\106\1\0\6\10"+
+    "\3\0\1\10\1\u017c\13\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\1\10\1\u017d\13\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\2\10\1\u017e\13\10\1\0\1\106"+
+    "\1\0\6\10\3\0\15\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\6\10\1\u017f\6\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\13\10\1\u0180\1\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\2\10\1\u0181\12\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\2\10\1\u0182\13\10\1\0\1\106"+
+    "\1\0\6\10\3\0\15\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\2\10\1\u0183\12\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\u011c\1\0\1\u011d\1\0\6\u011c"+
+    "\1\245\1\244\1\0\15\u011c\1\0\5\u011c\1\0\3\u011c"+
+    "\4\0\2\u011c\1\0\1\u011c\1\0\11\u011c\33\0\1\u011c"+
+    "\75\0\1\u0184\1\0\4\u0184\4\0\1\u0184\2\0\1\u0184"+
+    "\4\0\1\u0184\1\0\1\u0184\5\0\1\u0184\1\0\1\u0184"+
+    "\3\0\1\u0184\5\0\1\u0184\11\0\1\u0184\11\0\1\u0184"+
+    "\1\0\3\u0184\1\0\2\u0184\14\0\1\u0185\1\0\4\u0185"+
+    "\4\0\1\u0185\2\0\1\u0185\4\0\1\u0185\1\0\1\u0185"+
+    "\5\0\1\u0185\1\0\1\u0185\3\0\1\u0185\5\0\1\u0185"+
+    "\11\0\1\u0185\11\0\1\u0185\1\0\3\u0185\1\0\2\u0185"+
+    "\14\0\1\u0120\1\0\4\u0120\1\0\1\266\2\0\1\u0120"+
+    "\2\0\1\u0120\4\0\1\u0120\1\0\1\u0120\5\0\1\u0120"+
+    "\1\0\1\u0120\2\0\1\266\1\u0120\5\0\1\u0120\11\0"+
+    "\1\u0120\11\0\1\u0120\1\0\3\u0120\1\0\2\u0120\14\0"+
+    "\1\u0121\2\0\2\u0121\5\0\1\267\11\0\1\267\21\0"+
+    "\1\270\11\0\1\270\11\0\1\u0121\1\0\3\u0121\1\0"+
+    "\2\u0121\14\0\1\u0121\2\0\2\u0121\65\0\1\u0121\1\0"+
+    "\3\u0121\1\0\2\u0121\14\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\14\10\1\u0186\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\15\10\1\0\1\10"+
+    "\1\u0187\3\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\1\10\1\u0188\13\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\1\u0126"+
+    "\1\10\4\u0126\1\10\1\102\2\10\1\u0126\1\104\1\10"+
+    "\1\u0126\1\u0120\1\106\1\0\1\10\1\u0126\1\10\1\u0126"+
+    "\1\10\1\107\3\0\1\u0126\1\107\1\u0126\1\110\1\10"+
+    "\1\102\1\u0126\3\10\1\104\1\10\1\u0126\1\0\5\10"+
+    "\1\0\1\10\1\110\1\u0126\4\0\2\10\1\0\1\10"+
+    "\1\0\1\u0126\1\10\3\u0126\1\10\2\u0126\1\10\13\0"+
+    "\11\10\1\u0189\4\10\1\0\1\106\1\0\6\10\3\0"+
+    "\11\10\1\u0189\3\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\6\10\1\u018a\3\10\1\u018a"+
+    "\2\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\15\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\5\10\1\u018a\3\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\6\10\1\u018a"+
+    "\6\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\15\10\1\0\1\10\1\u018b\3\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\6\10\1\u018c\7\10\1\0\1\106\1\0\6\10\3\0"+
+    "\15\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\11\10\1\u018d\3\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\2\10\1\u018e"+
+    "\12\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\12\10\1\u018f\2\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\7\10\1\u0190"+
+    "\5\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\15\10\1\0\3\10\1\u0191\1\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\6\10\1\u0192\7\10\1\0\1\106\1\0\6\10\3\0"+
+    "\6\10\1\u0193\6\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\14\10\1\u0194\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\1\10"+
+    "\1\u016a\13\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\12\10\1\u0195\2\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\134\4\0\5\134\2\0\2\134\1\u0196\13\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\2\134\1\u0197\13\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\4\134\1\u0198\11\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\1\134\1\u0199\14\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\7\134\1\u019a\6\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\3\134\1\u019b\12\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\3\134\1\u019c\12\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\14\134\1\u019d\1\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\3\134\1\u019e\12\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\7\134\1\u019f\6\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\10\134\1\u01a0\5\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\10\134\1\u01a1\5\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\16\134\1\0\3\134"+
+    "\1\u01a2\5\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\3\134\1\u01a3\12\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\2\134\1\u01a4\13\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\2\134\1\u01a5\13\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\11\134\1\u01a6\4\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\16\134\1\u01a7\11\134"+
+    "\3\0\3\134\1\0\1\134\1\0\11\134\13\0\16\134"+
+    "\4\0\5\134\2\0\13\134\1\u01a8\2\134\1\0\11\134"+
+    "\3\0\3\134\1\0\1\134\1\0\11\134\13\0\10\134"+
+    "\1\u01a9\5\134\4\0\5\134\2\0\16\134\1\0\11\134"+
+    "\3\0\3\134\1\0\1\134\1\0\11\134\13\0\16\134"+
+    "\4\0\5\134\2\0\16\134\1\0\1\u01aa\10\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\16\u014b\1\0"+
+    "\1\u014c\1\0\6\u014b\1\340\1\337\1\0\15\u014b\1\0"+
+    "\5\u014b\1\0\3\u014b\4\0\2\u014b\1\0\1\u014b\1\0"+
+    "\11\u014b\33\0\1\u014b\75\0\16\u014d\1\0\1\u014e\1\0"+
+    "\6\u014d\1\341\1\342\1\0\15\u014d\1\0\5\u014d\1\0"+
+    "\3\u014d\4\0\2\u014d\1\0\1\u014d\1\0\11\u014d\33\0"+
+    "\1\u014d\75\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\3\10\1\u01ab\11\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\4\10\1\u01ac\10\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\12\10\1\u01ad\2\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\1\10\1\u01ae\13\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\6\10\1\u01af\7\10\1\0\1\106\1\0"+
+    "\6\10\3\0\15\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\12\10\1\u01b0\2\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\15\10\1\0\3\10\1\u01b1\1\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\7\10\1\u01b2\5\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\6\10\1\u01b3\7\10\1\0\1\106\1\0"+
+    "\6\10\3\0\15\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\7\10\1\u01b4\5\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\6\10\1\u01b5\7\10\1\0\1\106\1\0"+
+    "\6\10\3\0\15\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\15\10\1\0\2\10\1\u01b6"+
+    "\2\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\12\10\1\u01b7\2\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\10\10\1\u017b"+
+    "\1\10\1\u01b8\3\10\1\0\1\106\1\0\6\10\3\0"+
+    "\1\10\1\u017c\12\10\1\u01b9\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\10\10"+
+    "\1\u01ba\1\10\1\u01b8\3\10\1\0\1\106\1\0\6\10"+
+    "\3\0\1\10\1\u017c\12\10\1\u01b9\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\3\10\1\u01bb"+
+    "\11\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\6\10\1\u01bc\7\10\1\0"+
+    "\1\106\1\0\6\10\3\0\15\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\10\10\1\u01bd\5\10\1\0\1\106\1\0\6\10\3\0"+
+    "\15\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\1\u01be\14\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\10\10"+
+    "\1\u01bf\5\10\1\0\1\106\1\0\6\10\3\0\1\10"+
+    "\1\u017c\13\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\6\10\1\u01c0\6\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\15\10"+
+    "\1\0\1\u01c1\4\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\15\10\1\0\1\u01c2\4\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\15\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\u01c3\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\6\10"+
+    "\1\u01c4\6\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\2\10\1\u01c5\12\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\6\10"+
+    "\1\u01c6\6\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\4\10\1\u01c7\10\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\6\10\1\u01c8\7\10\1\0\1\106\1\0\6\10"+
+    "\3\0\15\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\10\10\1\u01c9\5\10"+
+    "\1\0\1\106\1\0\6\10\3\0\15\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\7\10"+
+    "\1\u01ca\5\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\12\10\1\u01cb\2\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\6\10\1\u01cc\7\10\1\0\1\106\1\0\6\10"+
+    "\1\u01cd\2\0\15\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\15\10\1\0\5\10\1\0"+
+    "\3\10\4\0\1\u0187\1\10\1\0\1\10\1\0\11\10"+
+    "\13\0\10\10\1\u01ce\1\10\1\u01cf\3\10\1\0\1\106"+
+    "\1\0\6\10\3\0\1\10\1\u01d0\12\10\1\u01d1\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\10\10\1\u01d2\5\10\1\0\1\106\1\0"+
+    "\6\10\3\0\2\10\1\u01d3\12\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\4\10\1\u01d4"+
+    "\10\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\7\10\1\u01d5\5\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\10\10\1\u01ce\5\10\1\0\1\106\1\0\6\10\3\0"+
+    "\1\10\1\u01d0\13\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\3\10\1\u01d6\11\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\15\10\1\0\4\10\1\u01d7\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\11\10\1\u01d8\3\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\13\10"+
+    "\1\u01d9\1\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\2\10\1\u01da\12\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\1\10"+
+    "\1\u01db\13\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\7\10\1\u01dc\5\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\1\u01dd\2\0"+
+    "\15\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\7\10\1\u01de\5\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\1\10\1\u01df"+
+    "\13\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\12\10\1\u01e0\2\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\1\u01e1\1\0\4\u01e1\4\0\1\u01e1\2\0\1\u01e1\4\0"+
+    "\1\u01e1\1\0\1\u01e1\5\0\1\u01e1\1\0\1\u01e1\3\0"+
+    "\1\u01e1\5\0\1\u01e1\11\0\1\u01e1\11\0\1\u01e1\1\0"+
+    "\3\u01e1\1\0\2\u01e1\14\0\1\u01e2\1\0\4\u01e2\4\0"+
+    "\1\u01e2\2\0\1\u01e2\4\0\1\u01e2\1\0\1\u01e2\5\0"+
+    "\1\u01e2\1\0\1\u01e2\3\0\1\u01e2\5\0\1\u01e2\11\0"+
+    "\1\u01e2\11\0\1\u01e2\1\0\3\u01e2\1\0\2\u01e2\14\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\6\10\1\u016a"+
+    "\6\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\2\10\1\u01e3\12\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\10\10\1\u01e4\5\10\1\0\1\106\1\0\2\10\1\u01e4"+
+    "\3\10\3\0\15\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\15\10\1\0\5\10\1\0"+
+    "\3\10\4\0\1\10\1\u01e5\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\2\10"+
+    "\1\u01e6\12\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\2\10\1\u01e7\13\10"+
+    "\1\0\1\106\1\0\6\10\3\0\1\u01e8\2\10\1\u01e9"+
+    "\7\10\1\u01ea\1\10\1\0\4\10\1\u01eb\1\0\3\10"+
+    "\4\0\1\u01ec\1\10\1\0\1\10\1\0\5\10\1\u01ed"+
+    "\3\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\6\10\1\u01ee\6\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\11\10\1\u01ef\3\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\13\10\1\u01f0\1\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\12\10\1\u01f1"+
+    "\3\10\1\0\1\106\1\0\6\10\3\0\15\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\6\10\1\u01f2\6\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\2\10\1\u01f3\12\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\14\10\1\u01f4\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\15\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\u01f5\1\10\1\0\11\10\13\0\6\10"+
+    "\1\u01f6\7\10\1\0\1\106\1\0\6\10\3\0\15\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\134\4\0\5\134\2\0\7\134"+
+    "\1\u01f7\6\134\1\0\11\134\3\0\3\134\1\0\1\134"+
+    "\1\0\11\134\13\0\16\134\4\0\5\134\2\0\15\134"+
+    "\1\u01f8\1\0\11\134\3\0\3\134\1\0\1\134\1\0"+
+    "\11\134\13\0\16\134\4\0\5\134\2\0\4\134\1\u01f9"+
+    "\11\134\1\0\11\134\3\0\3\134\1\0\1\134\1\0"+
+    "\11\134\13\0\16\134\4\0\5\134\2\0\16\134\1\0"+
+    "\1\u01fa\10\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\2\134\1\u01fb\13\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\16\134\1\0\2\134"+
+    "\1\u01fc\6\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\13\134\1\u01fd\2\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\12\134\1\u01fe\3\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\10\134\1\u01ff\5\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\4\134\1\u0200\11\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\1\134\1\u0201\14\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\7\134\1\u0202\6\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\11\134\1\u0203\4\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\14\134\1\u0204\1\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\14\134\1\u0205\1\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\12\134\1\u0206\3\134\4\0\5\134\2\0\2\134"+
+    "\1\u0207\1\u0208\1\u0209\1\134\1\u020a\2\134\1\u020b\4\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\3\134\1\u020c\12\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\4\134\1\u020d\11\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\14\134\1\u020e\1\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\6\10\1\u020f\7\10\1\0\1\106\1\0\6\10"+
+    "\3\0\15\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\7\10\1\u0210\5\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\6\10"+
+    "\1\u0211\6\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\13\10\1\u0212\1\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\12\10\1\u0213\3\10\1\0\1\106\1\0\6\10"+
+    "\3\0\14\10\1\u0214\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\6\10\1\u0215"+
+    "\7\10\1\0\1\106\1\0\6\10\1\u0216\2\0\7\10"+
+    "\1\u0217\5\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\6\10\1\u0218\7\10"+
+    "\1\0\1\106\1\0\6\10\3\0\15\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\2\10"+
+    "\1\u0219\12\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\12\10\1\u021a\2\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\2\10"+
+    "\1\u021b\12\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\2\10\1\u021c\13\10"+
+    "\1\0\1\106\1\0\6\10\3\0\1\u021d\2\10\1\u021e"+
+    "\7\10\1\u021f\1\10\1\0\4\10\1\u0220\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\6\10"+
+    "\1\u0221\7\10\1\0\1\106\1\0\6\10\3\0\15\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\2\10\1\u0222\12\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\1\10\1\u0223\13\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\13\10\1\u0224\1\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\11\10\1\u0225\3\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\6\10\1\u0226\6\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\2\10"+
+    "\1\u0227\13\10\1\0\1\106\1\0\6\10\3\0\1\u0228"+
+    "\2\10\1\u0229\7\10\1\u022a\1\10\1\0\4\10\1\u022b"+
+    "\1\0\3\10\4\0\1\u022c\1\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\1\u016a\14\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\12\10\1\u022d\2\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\11\10"+
+    "\1\u022e\3\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\10\10\1\u0186\4\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\7\10"+
+    "\1\u022f\5\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\6\10\1\365\6\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\6\10\1\u0230\7\10\1\0\1\106\1\0\6\10"+
+    "\3\0\15\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\14\10\1\u0226\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\12\10\1\u0187"+
+    "\2\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\1\u0231\14\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\12\10\1\u0232\2\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\10\10\1\u0233\5\10\1\0\1\106"+
+    "\1\0\6\10\3\0\15\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\10\10\1\u0234\4\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\11\10\1\u0235\3\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\13\10\1\u0236\1\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\6\10\1\u0237\1\u0238\3\10\1\u0239\1\10\1\0"+
+    "\4\10\1\u023a\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\25\0\1\u023b\62\0\1\u023c\20\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\11\10\1\u023d\3\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\1\10\1\u023e\13\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\13\10\1\u023f\1\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\13\10\1\u0240\1\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\11\10\1\u0241\3\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\7\10\1\u0242\5\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\1\u0243\14\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\7\10\1\u0244\5\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\10\10\1\u0245"+
+    "\5\10\1\0\1\106\1\0\6\10\3\0\15\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\6\10\1\u0246\7\10\1\0\1\106\1\0"+
+    "\6\10\3\0\15\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\12\10\1\u0247\2\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\11\10\1\u0248\3\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\7\10\1\u0249\5\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\6\10\1\u024a\6\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\10\10\1\u024b"+
+    "\5\10\1\0\1\106\1\0\6\10\3\0\15\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\110\0\1\u024c\3\0\1\u024d\14\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\15\10\1\0\1\10\1\u024e"+
+    "\3\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\6\10\1\u024f\6\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\10\10\1\u0250"+
+    "\5\10\1\0\1\106\1\0\6\10\3\0\15\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\1\u0251\1\0\4\u0251\4\0\1\u0251\2\0"+
+    "\1\u0251\4\0\1\u0251\1\0\1\u0251\5\0\1\u0251\1\0"+
+    "\1\u0251\3\0\1\u0251\5\0\1\u0251\11\0\1\u0251\11\0"+
+    "\1\u0251\1\0\3\u0251\1\0\2\u0251\14\0\1\u0252\1\0"+
+    "\4\u0252\4\0\1\u0252\2\0\1\u0252\4\0\1\u0252\1\0"+
+    "\1\u0252\5\0\1\u0252\1\0\1\u0252\3\0\1\u0252\5\0"+
+    "\1\u0252\11\0\1\u0252\11\0\1\u0252\1\0\3\u0252\1\0"+
+    "\2\u0252\14\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\10\10\1\u0253\4\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\13\10\1\u0254"+
+    "\2\10\1\0\1\106\1\0\6\10\3\0\12\10\1\u0254"+
+    "\2\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\1\10\1\u0255\13\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\13\10\1\u0256"+
+    "\1\10\1\0\2\10\1\u0257\2\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\15\10\1\0\1\u0258\4\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\15\10"+
+    "\1\0\1\u0259\4\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\2\10\1\u025a\13\10\1\0"+
+    "\1\106\1\0\6\10\3\0\15\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\10\10\1\u025b\5\10\1\0\1\106\1\0\6\10\3\0"+
+    "\15\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\13\10\1\u025c\1\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\4\10\1\u025d"+
+    "\10\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\15\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\u025e\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\1\u025f\11\10\1\u0260\2\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\6\10\1\u0261\7\10\1\0\1\106"+
+    "\1\0\6\10\3\0\15\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\2\10\1\u0262\12\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\6\10\1\u0263\7\10\1\0\1\106"+
+    "\1\0\6\10\3\0\15\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\7\10\1\u0264\5\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\6\10\1\u0265\7\10\1\0\1\106"+
+    "\1\0\6\10\3\0\15\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\1\u0266"+
+    "\115\0\16\10\1\0\1\106\1\0\6\10\3\0\12\10"+
+    "\1\u0267\2\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\134\4\0\5\134"+
+    "\2\0\11\134\1\u0268\4\134\1\0\11\134\3\0\3\134"+
+    "\1\0\1\134\1\0\11\134\13\0\16\134\4\0\5\134"+
+    "\2\0\3\134\1\u0269\12\134\1\0\11\134\3\0\3\134"+
+    "\1\0\1\134\1\0\11\134\13\0\16\134\4\0\5\134"+
+    "\2\0\4\134\1\u026a\11\134\1\0\11\134\3\0\3\134"+
+    "\1\0\1\134\1\0\11\134\13\0\6\134\1\u026b\7\134"+
+    "\4\0\5\134\2\0\16\134\1\0\11\134\3\0\3\134"+
+    "\1\0\1\134\1\0\11\134\13\0\16\134\4\0\5\134"+
+    "\2\0\3\134\1\u026c\12\134\1\0\11\134\3\0\3\134"+
+    "\1\0\1\134\1\0\11\134\13\0\16\134\4\0\5\134"+
+    "\2\0\12\134\1\u026d\3\134\1\0\11\134\3\0\3\134"+
+    "\1\0\1\134\1\0\11\134\13\0\16\134\4\0\5\134"+
+    "\2\0\7\134\1\u026e\6\134\1\0\11\134\3\0\3\134"+
+    "\1\0\1\134\1\0\11\134\13\0\16\134\4\0\5\134"+
+    "\2\0\7\134\1\u026f\6\134\1\0\11\134\3\0\3\134"+
+    "\1\0\1\134\1\0\11\134\13\0\16\134\4\0\5\134"+
+    "\2\0\15\134\1\u0270\1\0\11\134\3\0\3\134\1\0"+
+    "\1\134\1\0\11\134\13\0\16\134\4\0\5\134\2\0"+
+    "\16\134\1\0\1\134\1\u0271\7\134\3\0\3\134\1\0"+
+    "\1\134\1\0\11\134\13\0\16\134\4\0\5\134\2\0"+
+    "\16\134\1\0\1\134\1\u0272\7\134\3\0\3\134\1\0"+
+    "\1\134\1\0\11\134\13\0\10\134\1\u0273\5\134\4\0"+
+    "\5\134\2\0\16\134\1\0\11\134\3\0\3\134\1\0"+
+    "\1\134\1\0\11\134\13\0\16\134\4\0\5\134\2\0"+
+    "\14\134\1\u0274\1\134\1\0\11\134\3\0\3\134\1\0"+
+    "\1\134\1\0\11\134\13\0\16\134\4\0\5\134\2\0"+
+    "\10\134\1\u0275\1\134\1\u0276\3\134\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\16\134\4\0"+
+    "\5\134\2\0\5\134\1\u0277\1\u0278\7\134\1\0\11\134"+
+    "\3\0\3\134\1\0\1\134\1\0\11\134\13\0\16\134"+
+    "\4\0\5\134\2\0\3\134\1\u0279\12\134\1\0\11\134"+
+    "\3\0\3\134\1\0\1\134\1\0\11\134\13\0\16\134"+
+    "\4\0\5\134\2\0\7\134\1\u027a\6\134\1\0\11\134"+
+    "\3\0\3\134\1\0\1\134\1\0\11\134\13\0\16\134"+
+    "\4\0\5\134\2\0\10\134\1\u027b\5\134\1\0\11\134"+
+    "\3\0\3\134\1\0\1\134\1\0\11\134\13\0\16\134"+
+    "\4\0\5\134\2\0\13\134\1\u027c\2\134\1\0\11\134"+
+    "\3\0\3\134\1\0\1\134\1\0\11\134\13\0\16\134"+
+    "\4\0\5\134\2\0\15\134\1\u027d\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\1\u027e\14\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\6\10"+
+    "\1\u027f\6\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\6\10\1\u0280\7\10"+
+    "\1\0\1\106\1\0\6\10\3\0\15\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\11\10"+
+    "\1\u0281\3\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\1\10\1\u0282\13\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\13\10"+
+    "\1\u0283\1\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\1\u0284\2\10\1\u0285\11\10\1\0"+
+    "\4\10\1\u0286\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\63\0\1\u0287\21\0\1\u0288\2\0\1\u0289"+
+    "\20\0\16\10\1\0\1\106\1\0\6\10\3\0\4\10"+
+    "\1\u028a\10\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\1\u028b\14\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\12\10\1\u028c"+
+    "\2\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\13\10\1\u028d\1\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\1\u028e\14\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\13\10\1\u028f\1\10\1\0\2\10\1\u0290\2\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\15\10"+
+    "\1\0\1\u0291\4\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\15\10\1\0\1\u0292\4\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\2\10"+
+    "\1\u0293\13\10\1\0\1\106\1\0\6\10\3\0\15\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\10\10\1\u0294\5\10\1\0\1\106"+
+    "\1\0\6\10\3\0\15\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\1\10\1\u0295\13\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\12\10\1\u0296\2\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\13\10\1\u0297\1\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\4\10\1\u0298\10\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\12\10\1\u0299\2\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\6\10\1\u029a\7\10\1\0\1\106"+
+    "\1\0\6\10\3\0\15\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\13\10\1\u029b\1\10"+
+    "\1\0\2\10\1\u029c\2\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\15\10\1\0\1\u029d\4\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\15\10\1\0"+
+    "\1\u029e\4\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\2\10\1\u029f\13\10\1\0\1\106"+
+    "\1\0\6\10\3\0\15\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\10\10"+
+    "\1\u02a0\5\10\1\0\1\106\1\0\6\10\3\0\15\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\13\10\1\u02a1\1\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\12\10"+
+    "\1\u02a2\3\10\1\0\1\106\1\0\6\10\3\0\15\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\12\10\1\u02a3\2\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\13\10\1\u02a4\1\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\1\10\1\u02a5\13\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\12\10\1\u02a6\2\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\6\10\1\u02a7\6\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\11\10\1\u02a8\3\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\6\10\1\u0186\6\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\6\10"+
+    "\1\u02a9\7\10\1\0\1\106\1\0\6\10\3\0\15\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\7\10\1\u02aa\5\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\15\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\u02ab\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\6\10"+
+    "\1\u02ac\6\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\2\10\1\u02ad\13\10"+
+    "\1\0\1\106\1\0\6\10\3\0\15\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\10\10\1\u02ae\5\10\1\0\1\106\1\0\6\10"+
+    "\3\0\15\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\54\0\1\u02af\152\0\1\u02b0"+
+    "\17\0\16\10\1\0\1\106\1\0\6\10\3\0\12\10"+
+    "\1\u02b1\2\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\13\10\1\u02b2\1\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\11\10"+
+    "\1\u02b3\3\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\4\10\1\u02b4\10\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\3\10"+
+    "\1\u02b5\11\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\7\10\1\u02b6\5\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\15\10"+
+    "\1\0\1\u02b7\4\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\13\10\1\u02b8\1\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\6\10\1\u02b9"+
+    "\6\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\15\10\1\0\5\10\1\0\3\10\4\0"+
+    "\1\u02ba\1\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\1\u02bb\2\0\15\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\15\10\1\0\1\10\1\u0299\3\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\6\10\1\u02bc\6\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\6\10\1\u02bd\7\10\1\0\1\106\1\0"+
+    "\6\10\3\0\15\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\1\u02be\14\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\111\0\1\u02bf\113\0\1\u02c0\21\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\3\10\1\u016a\11\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\15\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\u02c1\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\1\10\1\u0187\13\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\1\u02c2"+
+    "\1\0\4\u02c2\4\0\1\u02c2\2\0\1\u02c2\4\0\1\u02c2"+
+    "\1\0\1\u02c2\5\0\1\u02c2\1\0\1\u02c2\3\0\1\u02c2"+
+    "\5\0\1\u02c2\11\0\1\u02c2\11\0\1\u02c2\1\0\3\u02c2"+
+    "\1\0\2\u02c2\14\0\2\10\1\u02c3\13\10\1\0\1\106"+
+    "\1\0\6\10\3\0\15\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\14\10"+
+    "\1\306\1\10\1\0\1\106\1\0\6\10\3\0\15\10"+
+    "\1\0\2\10\1\306\2\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\6\10\1\u02c4\7\10"+
+    "\1\0\1\106\1\0\6\10\3\0\15\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\13\10"+
+    "\1\u02c5\1\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\12\10\1\u02c6\2\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\2\10"+
+    "\1\u02c7\12\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\13\10\1\u02c8\1\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\15\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\1\10\1\u02c9\7\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\14\10\1\u02ca\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\1\10\1\u02cb"+
+    "\13\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\10\10\1\u02cc\5\10\1\0"+
+    "\1\106\1\0\6\10\3\0\15\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\1\u02cd\115\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\6\10\1\u02ce\6\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\10\10\1\u02cf"+
+    "\5\10\1\0\1\106\1\0\6\10\3\0\15\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\2\10\1\u02d0\7\10\1\u01cf\3\10\1\0"+
+    "\1\106\1\0\6\10\3\0\1\u02d1\1\u01d0\1\10\1\u02d2"+
+    "\10\10\1\u01d1\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\1\u0187\14\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\10\10\1\u02d3\5\10\1\0\1\106\1\0\6\10\3\0"+
+    "\1\10\1\u02d4\1\10\1\u02d5\7\10\1\u02d6\1\u02d7\1\0"+
+    "\5\10\1\0\3\10\4\0\1\u02d8\1\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\7\10\1\u02d9\5\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\11\10\1\u02da\3\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\103\0\1\u02db\25\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\13\10\1\u02dc\1\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\134\4\0\5\134\2\0\7\134\1\u02dd\6\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\2\134\1\u02de\13\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\15\134\1\u02df\1\0"+
+    "\11\134\3\0\3\134\1\0\1\134\1\0\11\134\13\0"+
+    "\16\134\4\0\5\134\2\0\13\134\1\u02e0\2\134\1\0"+
+    "\11\134\3\0\3\134\1\0\1\134\1\0\11\134\13\0"+
+    "\16\134\4\0\5\134\2\0\14\134\1\u02e1\1\134\1\0"+
+    "\11\134\3\0\3\134\1\0\1\134\1\0\11\134\13\0"+
+    "\6\134\1\u02e2\7\134\4\0\5\134\2\0\16\134\1\0"+
+    "\11\134\3\0\3\134\1\0\1\134\1\0\11\134\13\0"+
+    "\6\134\1\u02e3\7\134\4\0\5\134\2\0\16\134\1\0"+
+    "\11\134\3\0\3\134\1\0\1\134\1\0\11\134\13\0"+
+    "\16\134\4\0\5\134\2\0\5\134\1\u02e4\10\134\1\0"+
+    "\11\134\3\0\3\134\1\0\1\134\1\0\11\134\13\0"+
+    "\16\134\4\0\5\134\2\0\5\134\1\u02e5\10\134\1\0"+
+    "\11\134\3\0\3\134\1\0\1\134\1\0\11\134\13\0"+
+    "\16\134\4\0\5\134\2\0\7\134\1\u02e6\6\134\1\0"+
+    "\11\134\3\0\3\134\1\0\1\134\1\0\11\134\13\0"+
+    "\16\134\4\0\5\134\2\0\1\134\1\u02e7\14\134\1\0"+
+    "\11\134\3\0\3\134\1\0\1\134\1\0\11\134\13\0"+
+    "\16\134\4\0\5\134\2\0\10\134\1\u02e8\5\134\1\0"+
+    "\11\134\3\0\3\134\1\0\1\134\1\0\11\134\13\0"+
+    "\16\134\4\0\5\134\2\0\12\134\1\u02e9\3\134\1\0"+
+    "\11\134\3\0\3\134\1\0\1\134\1\0\11\134\13\0"+
+    "\2\134\1\u02ea\13\134\4\0\5\134\2\0\16\134\1\0"+
+    "\11\134\3\0\3\134\1\0\1\134\1\0\11\134\13\0"+
+    "\16\134\4\0\5\134\2\0\3\134\1\u02eb\12\134\1\0"+
+    "\11\134\3\0\3\134\1\0\1\134\1\0\11\134\13\0"+
+    "\16\134\4\0\5\134\2\0\1\134\1\u02ec\6\134\1\u02ed"+
+    "\5\134\1\0\11\134\3\0\3\134\1\0\1\134\1\0"+
+    "\11\134\13\0\16\134\4\0\5\134\2\0\13\134\1\u02ee"+
+    "\2\134\1\0\11\134\3\0\3\134\1\0\1\134\1\0"+
+    "\11\134\13\0\16\134\4\0\5\134\2\0\13\134\1\u02ef"+
+    "\2\134\1\0\11\134\3\0\3\134\1\0\1\134\1\0"+
+    "\11\134\13\0\16\134\4\0\5\134\2\0\7\134\1\u02f0"+
+    "\6\134\1\0\11\134\3\0\3\134\1\0\1\134\1\0"+
+    "\11\134\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\15\10\1\0\1\u02f1\4\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\6\10\1\u02f2\7\10"+
+    "\1\0\1\106\1\0\6\10\3\0\15\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\1\10"+
+    "\1\u02f3\13\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\15\10\1\0\1\10\1\u02f4\3\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\13\10"+
+    "\1\u02f5\1\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\4\10\1\u02f6\10\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\1\10"+
+    "\1\u02f7\13\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\12\10\1\u02f8\2\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\10\10\1\u02f9\5\10\1\0\1\106\1\0\6\10"+
+    "\3\0\15\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\23\0\1\u02fa\203\0\1\u02fb"+
+    "\17\0\16\10\1\0\1\106\1\0\6\10\3\0\1\u02fc"+
+    "\14\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\2\10\1\u02fd\12\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\6\10\1\u02fe"+
+    "\6\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\6\10\1\u02ff\7\10\1\0"+
+    "\1\106\1\0\6\10\3\0\15\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\12\10\1\u016a"+
+    "\2\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\13\10\1\u0300\1\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\12\10\1\u0301"+
+    "\2\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\2\10\1\u0302\12\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\13\10\1\u0303"+
+    "\1\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\15\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\1\10\1\u0304\7\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\14\10\1\u0301"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\6\10\1\u0305\6\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\10\10"+
+    "\1\u0306\5\10\1\0\1\106\1\0\6\10\3\0\15\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\2\10\1\u0225\12\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\2\10"+
+    "\1\u0307\13\10\1\0\1\106\1\0\6\10\3\0\15\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\1\u0308\2\0\15\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\3\10\1\u0309\11\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\13\10\1\u030a\1\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\12\10\1\u030b\2\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\2\10\1\u030c\12\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\13\10\1\u030d\1\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\15\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\1\10\1\u030e\7\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\14\10\1\u030f\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\1\10"+
+    "\1\u0310\13\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\5\10\1\u016a\7\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\1\u0311\2\0"+
+    "\15\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\11\10\1\u0312\3\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\2\10\1\u0313"+
+    "\12\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\6\10\1\u0314\6\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\6\10\1\u0315\7\10\1\0\1\106\1\0\6\10\3\0"+
+    "\15\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\12\10\1\u0316\2\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\13\10\1\u0317"+
+    "\1\10\1\0\4\10\1\u0318\1\0\3\10\4\0\1\u0319"+
+    "\1\10\1\0\1\10\1\0\11\10\13\0\6\10\1\u031a"+
+    "\7\10\1\0\1\106\1\0\6\10\3\0\15\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\1\u031b\14\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\3\10\1\u031c\11\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\15\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\1\10\1\u031d\7\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\14\10\1\u031e\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\60\0"+
+    "\1\u031f\50\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\2\10\1\u023d\12\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\15\10\1\0\1\10\1\u02b1"+
+    "\3\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\2\10\1\u0320\13\10\1\0\1\106\1\0"+
+    "\6\10\3\0\15\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\12\10\1\u0321\2\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\2\10\1\u0322\12\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\6\10\1\u0323"+
+    "\7\10\1\0\1\106\1\0\6\10\3\0\15\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\7\10\1\u0324\5\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\11\10\1\u028e\3\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\6\10\1\u0325\6\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\46\0\1\u0326\40\0"+
+    "\1\u0327\21\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\14\10\1\u0328\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\12\10\1\u0329\2\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\6\10\1\u032a\7\10\1\0\1\106\1\0\6\10"+
+    "\3\0\15\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\1\u032b\115\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\14\10\1\u032c\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\12\10\1\u032d\3\10\1\0\1\106\1\0"+
+    "\6\10\3\0\1\u032e\7\10\1\u032f\4\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\1\10"+
+    "\1\u0330\13\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\6\10\1\u0331\6\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\7\10"+
+    "\1\u0331\5\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\7\10\1\u0332\5\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\6\10"+
+    "\1\u0333\6\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\6\10\1\u0334\6\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\2\10"+
+    "\1\u0335\12\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\1\u0336\14\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\103\0"+
+    "\1\u0337\25\0\6\10\1\u0338\7\10\1\0\1\106\1\0"+
+    "\6\10\3\0\15\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\2\10\1\u0339\12\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\15\10\1\0\2\10\1\u033a\2\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\15\10\1\0\1\u033b\4\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\15\10"+
+    "\1\0\1\u033c\4\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\11\10\1\u033d\3\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\2\10\1\u033e"+
+    "\12\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\4\10\1\u033f\5\10\1\u0340\2\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\2\10\1\u0341\13\10\1\0\1\106\1\0"+
+    "\6\10\3\0\15\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\10\10\1\u0342"+
+    "\5\10\1\0\1\106\1\0\6\10\3\0\15\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\10\10\1\u0343\5\10\1\0\1\106\1\0"+
+    "\6\10\3\0\15\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\2\10\1\u0344\12\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\6\10\1\u0345\6\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\1\u0346\1\0"+
+    "\4\u0346\4\0\1\u0346\2\0\1\u0346\4\0\1\u0346\1\0"+
+    "\1\u0346\5\0\1\u0346\1\0\1\u0346\3\0\1\u0346\5\0"+
+    "\1\u0346\11\0\1\u0346\11\0\1\u0346\1\0\3\u0346\1\0"+
+    "\2\u0346\14\0\6\10\1\u0347\7\10\1\0\1\106\1\0"+
+    "\6\10\3\0\15\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\134\4\0"+
+    "\5\134\2\0\12\134\1\u0348\3\134\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\16\134\4\0"+
+    "\5\134\2\0\2\134\1\u0349\13\134\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\16\134\4\0"+
+    "\5\134\2\0\3\134\1\u034a\12\134\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\10\134\1\u034b"+
+    "\5\134\4\0\5\134\2\0\16\134\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\16\134\4\0"+
+    "\5\134\2\0\13\134\1\u034c\2\134\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\16\134\4\0"+
+    "\5\134\2\0\4\134\1\u034d\11\134\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\16\134\4\0"+
+    "\5\134\2\0\4\134\1\u034e\11\134\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\16\134\4\0"+
+    "\5\134\2\0\7\134\1\u034f\6\134\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\16\134\4\0"+
+    "\5\134\2\0\7\134\1\u0350\6\134\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\16\134\4\0"+
+    "\5\134\2\0\2\134\1\u0351\13\134\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\16\134\4\0"+
+    "\5\134\2\0\3\134\1\u0352\12\134\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\16\134\4\0"+
+    "\5\134\2\0\3\134\1\u0353\12\134\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\16\134\4\0"+
+    "\5\134\2\0\14\134\1\u0354\1\134\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\16\134\4\0"+
+    "\5\134\2\0\3\134\1\u0355\12\134\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\16\134\4\0"+
+    "\5\134\2\0\10\134\1\u0356\5\134\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\16\134\4\0"+
+    "\5\134\2\0\16\134\1\0\3\134\1\u0357\5\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\16\134\4\0"+
+    "\5\134\2\0\3\134\1\u0358\12\134\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\16\134\4\0"+
+    "\5\134\2\0\16\134\1\0\1\u0359\10\134\3\0\3\134"+
+    "\1\0\1\134\1\0\11\134\13\0\16\134\4\0\5\134"+
+    "\2\0\16\134\1\u035a\11\134\3\0\3\134\1\0\1\134"+
+    "\1\0\11\134\13\0\16\134\4\0\5\134\2\0\10\134"+
+    "\1\u035b\5\134\1\0\11\134\3\0\3\134\1\0\1\134"+
+    "\1\0\11\134\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\2\10\1\u035c\12\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\15\10\1\0\5\10"+
+    "\1\0\3\10\4\0\1\u035d\1\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\2\10\1\u035e\12\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\2\10\1\u035f\12\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\2\10\1\u0360\13\10\1\0\1\106\1\0"+
+    "\6\10\3\0\15\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\2\10\1\u0361\12\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\7\10\1\u0362\5\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\14\10\1\u0363\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\64\0\1\u0364\44\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\12\10\1\u0365\2\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\3\10\1\u0366\11\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\6\10\1\u0367\7\10\1\0\1\106"+
+    "\1\0\6\10\3\0\15\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\10\10"+
+    "\1\u01ce\1\10\1\u01cf\3\10\1\0\1\106\1\0\6\10"+
+    "\3\0\14\10\1\u01d1\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\1\10\1\u0368\13\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\6\10\1\u02f4\6\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\7\10\1\u02f4\5\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\7\10\1\u035f\5\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\6\10\1\u0369\6\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\11\10\1\u036a\3\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\13\10\1\u036b\1\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\1\10\1\u036c\13\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\107\0\1\u0327\21\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\15\10\1\0"+
+    "\4\10\1\u036d\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\1\10\1\u036e\13\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\6\10\1\u036f\6\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\7\10\1\u036f\5\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\7\10\1\u0370\5\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\6\10\1\u0371\6\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\6\10\1\u0372\6\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\2\10\1\u0373\12\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\46\0\1\u0374"+
+    "\40\0\1\u0327\21\0\10\10\1\u0375\5\10\1\0\1\106"+
+    "\1\0\6\10\3\0\15\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\10\10\1\u0376\4\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\14\10\1\u016a\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\10\10\1\u0377"+
+    "\5\10\1\0\1\106\1\0\6\10\3\0\15\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\1\u0378"+
+    "\2\0\15\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\2\10\1\u0379\13\10"+
+    "\1\0\1\106\1\0\6\10\3\0\15\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\10\10\1\u037a\5\10\1\0\1\106\1\0\6\10"+
+    "\3\0\15\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\13\10\1\u037b\1\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\6\10"+
+    "\1\u037c\6\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\6\10\1\u037d\6\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\4\10"+
+    "\1\u037e\10\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\6\10\1\u037f\6\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\6\10"+
+    "\1\u0380\6\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\55\0\1\u0381\53\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\1\10\1\u0382\13\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\2\10\1\u0383\12\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\15\10\1\0\2\10"+
+    "\1\u0384\2\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\12\10\1\u0385\3\10\1\0\1\106"+
+    "\1\0\6\10\3\0\1\u0386\7\10\1\u0387\4\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\7\10\1\u0388\5\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\23\0\1\u0389\141\0"+
+    "\1\u038a\61\0\6\10\1\u038b\7\10\1\0\1\106\1\0"+
+    "\6\10\3\0\15\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\13\10\1\u038c\1\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\6\10\1\u0176\6\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\103\0\1\u038d\25\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\2\10\1\u038e"+
+    "\12\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\10\10\1\u038f\5\10\1\0"+
+    "\1\106\1\0\6\10\3\0\15\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\1\10\1\u0390"+
+    "\13\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\6\10\1\u0391\6\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\6\10\1\u0392"+
+    "\6\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\12\10\1\u0331\2\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\1\u0393\14\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\6\10\1\u0394\7\10\1\0\1\106"+
+    "\1\0\6\10\3\0\15\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\12\10\1\u0395\2\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\15\10\1\0\3\10\1\u0396\1\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\1\u0397"+
+    "\1\0\4\u0397\4\0\1\u0397\2\0\1\u0397\4\0\1\u0397"+
+    "\1\0\1\u0397\5\0\1\u0397\1\0\1\u0397\3\0\1\u0397"+
+    "\5\0\1\u0397\11\0\1\u0397\11\0\1\u0397\1\0\3\u0397"+
+    "\1\0\2\u0397\14\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\13\10\1\u0398\1\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\12\10\1\u0399\2\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\12\10\1\u0382\2\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\2\10\1\u039a\12\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\13\10\1\u039b\1\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\12\10\1\u039c\2\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\10\10\1\u039d\4\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\5\10\1\u039e\7\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\2\10\1\u039f\12\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\15\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\1\10"+
+    "\1\u03a0\7\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\7\10\1\u03a1\5\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\7\10\1\u03a2\5\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\15\10\1\0\2\10\1\u03a3\2\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\15\10\1\0\4\10"+
+    "\1\u03a4\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\10\10\1\u01ce\5\10\1\0\1\106\1\0"+
+    "\6\10\3\0\1\10\1\u01d0\12\10\1\u01d1\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\134\4\0\5\134\2\0\13\134\1\u03a5\2\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\13\134\1\u03a6\2\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\14\134\1\u03a7\1\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\3\134\1\u03a8\12\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\16\134\1\0\4\134"+
+    "\1\u03a9\4\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\16\134\1\0\4\134"+
+    "\1\u03aa\4\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\15\134\1\u03ab\1\0"+
+    "\11\134\3\0\3\134\1\0\1\134\1\0\11\134\13\0"+
+    "\16\134\4\0\5\134\2\0\2\134\1\u03ac\13\134\1\0"+
+    "\11\134\3\0\3\134\1\0\1\134\1\0\11\134\13\0"+
+    "\16\134\4\0\5\134\2\0\16\134\1\0\2\134\1\u03ad"+
+    "\6\134\3\0\3\134\1\0\1\134\1\0\11\134\13\0"+
+    "\16\134\4\0\5\134\2\0\13\134\1\u03ae\2\134\1\0"+
+    "\11\134\3\0\3\134\1\0\1\134\1\0\11\134\13\0"+
+    "\16\134\4\0\5\134\2\0\12\134\1\u03af\3\134\1\0"+
+    "\11\134\3\0\3\134\1\0\1\134\1\0\11\134\13\0"+
+    "\16\134\4\0\5\134\2\0\4\134\1\u03b0\11\134\1\0"+
+    "\11\134\3\0\3\134\1\0\1\134\1\0\11\134\13\0"+
+    "\16\134\4\0\5\134\2\0\7\134\1\u03b1\6\134\1\0"+
+    "\11\134\3\0\3\134\1\0\1\134\1\0\11\134\13\0"+
+    "\16\134\4\0\5\134\2\0\11\134\1\u03b2\4\134\1\0"+
+    "\11\134\3\0\3\134\1\0\1\134\1\0\11\134\13\0"+
+    "\16\134\4\0\5\134\2\0\14\134\1\u03b3\1\134\1\0"+
+    "\11\134\3\0\3\134\1\0\1\134\1\0\11\134\13\0"+
+    "\16\134\4\0\5\134\2\0\2\134\1\u03b4\13\134\1\0"+
+    "\11\134\3\0\3\134\1\0\1\134\1\0\11\134\13\0"+
+    "\16\134\4\0\5\134\2\0\4\134\1\u03b5\11\134\1\0"+
+    "\11\134\3\0\3\134\1\0\1\134\1\0\11\134\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\11\10\1\u03b6"+
+    "\3\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\2\10\1\u03b7\12\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\10\10\1\u03b8"+
+    "\4\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\12\10\1\u02f4\2\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\1\10\1\u0301"+
+    "\13\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\3\10\1\u03b9\11\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\10\10\1\u03ba\5\10\1\0\1\106\1\0\6\10\3\0"+
+    "\15\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\6\10\1\u03bb\6\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\63\0"+
+    "\1\u03bc\45\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\13\10\1\u03bd\1\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\12\10\1\u03be\2\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\15\10\1\0\5\10\1\0\3\10\4\0\1\u03bf\1\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\6\10\1\u03c0\6\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\1\u035f"+
+    "\14\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\15\10\1\0\1\10\1\u03c1\3\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\11\10\1\u016a"+
+    "\3\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\6\10\1\u0299\6\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\10\10\1\u03c2\5\10\1\0\1\106\1\0\6\10\3\0"+
+    "\15\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\6\10\1\u03c3\6\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\12\10\1\u036f"+
+    "\2\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\1\u03c4\14\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\6\10"+
+    "\1\u03c5\7\10\1\0\1\106\1\0\6\10\3\0\15\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\12\10\1\u03c6\2\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\23\0\1\u03c7"+
+    "\105\0\16\10\1\0\1\106\1\0\6\10\3\0\15\10"+
+    "\1\0\5\10\1\0\3\10\4\0\1\10\1\u02a6\1\0"+
+    "\1\10\1\0\11\10\13\0\2\10\1\u03c8\13\10\1\0"+
+    "\1\106\1\0\6\10\3\0\15\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\11\10\1\u03c9"+
+    "\3\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\46\0\1\u0374\62\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\15\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\1\10\1\u03ca"+
+    "\7\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\14\10\1\u03cb\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\10\10\1\u03cc\5\10"+
+    "\1\0\1\106\1\0\6\10\3\0\15\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\11\10"+
+    "\1\u03cd\3\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\u03ce\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\5\10\1\u03cf\7\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\1\10"+
+    "\1\u03d0\13\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\1\u03d1\14\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\1\u01cd\2\0\15\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\110\0\1\u03d2\20\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\6\10\1\u02b1\6\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\11\10"+
+    "\1\u03d3\3\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\10\10\1\u03d4\5\10"+
+    "\1\0\1\106\1\0\6\10\3\0\15\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\1\10"+
+    "\1\u03d5\13\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\6\10\1\u03d6\6\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\10\10\1\u03d7\5\10\1\0\1\106\1\0\6\10"+
+    "\3\0\15\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\57\0\1\u03d8\117\0\1\u03d9"+
+    "\47\0\16\10\1\0\1\106\1\0\6\10\3\0\3\10"+
+    "\1\u03da\11\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\6\10\1\u03db\7\10"+
+    "\1\0\1\106\1\0\6\10\3\0\15\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\1\u03dc\1\0\4\u03dc\4\0\1\u03dc\2\0\1\u03dc"+
+    "\4\0\1\u03dc\1\0\1\u03dc\5\0\1\u03dc\1\0\1\u03dc"+
+    "\3\0\1\u03dc\5\0\1\u03dc\11\0\1\u03dc\11\0\1\u03dc"+
+    "\1\0\3\u03dc\1\0\2\u03dc\14\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\6\10\1\u03dd\6\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\2\10"+
+    "\1\u03de\12\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\12\10\1\u03df\2\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\2\10"+
+    "\1\u03e0\12\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\12\10\1\u0334\2\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\15\10"+
+    "\1\0\5\10\1\0\3\10\4\0\1\u01ec\1\10\1\0"+
+    "\1\10\1\0\5\10\1\u01ed\3\10\13\0\10\10\1\u03e1"+
+    "\5\10\1\0\1\106\1\0\6\10\3\0\15\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\12\10\1\u0384\3\10\1\0\1\106\1\0"+
+    "\6\10\3\0\15\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\10\10\1\u03e2"+
+    "\5\10\1\0\1\106\1\0\6\10\3\0\15\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\7\10\1\u02b1\5\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\7\10\1\u023d\5\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\6\10\1\u03e3\6\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\2\10\1\u03e4"+
+    "\13\10\1\0\1\106\1\0\6\10\3\0\15\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\6\10\1\u03e5\6\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\12\10\1\u03e6\2\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\6\10\1\u03e7\6\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\6\10\1\u03e8\6\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\12\10\1\u03e9\2\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\6\10\1\u03ea"+
+    "\7\10\1\0\1\106\1\0\6\10\3\0\15\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\6\10\1\u03eb\7\10\1\0\1\106\1\0"+
+    "\6\10\3\0\15\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\134\4\0"+
+    "\5\134\2\0\4\134\1\u03ec\11\134\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\16\134\4\0"+
+    "\5\134\2\0\3\134\1\u03ed\12\134\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\16\134\4\0"+
+    "\5\134\2\0\12\134\1\u03ee\3\134\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\16\134\4\0"+
+    "\5\134\2\0\13\134\1\u03ef\2\134\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\10\134\1\u03f0"+
+    "\5\134\4\0\5\134\2\0\16\134\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\10\134\1\u03f1"+
+    "\5\134\4\0\5\134\2\0\16\134\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\6\134\1\u03f2"+
+    "\7\134\4\0\5\134\2\0\16\134\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\16\134\4\0"+
+    "\5\134\2\0\3\134\1\u03f3\12\134\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\16\134\4\0"+
+    "\5\134\2\0\12\134\1\u03f4\3\134\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\16\134\4\0"+
+    "\5\134\2\0\7\134\1\u03f5\6\134\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\16\134\4\0"+
+    "\5\134\2\0\15\134\1\u03f6\1\0\11\134\3\0\3\134"+
+    "\1\0\1\134\1\0\11\134\13\0\16\134\4\0\5\134"+
+    "\2\0\15\134\1\u03f7\1\0\11\134\3\0\3\134\1\0"+
+    "\1\134\1\0\11\134\13\0\16\134\4\0\5\134\2\0"+
+    "\14\134\1\u03f8\1\134\1\0\11\134\3\0\3\134\1\0"+
+    "\1\134\1\0\11\134\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\15\10\1\0\1\10\1\u03f9\3\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\7\10\1\u03fa"+
+    "\5\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\2\10\1\u03fb\13\10\1\0"+
+    "\1\106\1\0\6\10\3\0\15\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\3\10\1\u03be"+
+    "\11\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\11\10\1\u03fc\3\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\1\u03fd\2\0\15\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\110\0\1\u03fe\20\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\7\10\1\u016a\5\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\2\10"+
+    "\1\u03ff\12\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\2\10\1\u0400\12\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\12\10"+
+    "\1\u0401\2\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\12\10\1\u0402\2\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\2\10"+
+    "\1\u0403\12\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\12\10\1\u0372\2\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\15\10"+
+    "\1\0\5\10\1\0\3\10\4\0\1\u022c\1\10\1\0"+
+    "\1\10\1\0\11\10\13\0\10\10\1\u0404\5\10\1\0"+
+    "\1\106\1\0\6\10\3\0\15\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\57\0"+
+    "\1\u0405\51\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\14\10\1\u0406\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\1\10\1\u0407\13\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\6\10"+
+    "\1\u0408\6\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\6\10\1\u0409\6\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\14\10"+
+    "\1\u040a\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\12\10\1\u040b\2\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\10\10\1\u040c\5\10\1\0\1\106\1\0\6\10\3\0"+
+    "\15\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\12\10\1\u040d\2\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\12\10\1\u040e"+
+    "\2\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\12\10\1\u0380\2\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\111\0"+
+    "\1\u040f\17\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\1\u0410\14\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\6\10\1\u0411\6\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\2\10"+
+    "\1\u0412\12\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\12\10\1\u0413\2\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\12\10\1\u0414\3\10\1\0\1\106\1\0\6\10"+
+    "\3\0\15\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\110\0\1\u0415\2\0\1\u0416"+
+    "\63\0\1\u0417\47\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\15\10\1\0\2\10\1\u0418\2\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\10\10"+
+    "\1\u01ce\1\10\1\u01cf\3\10\1\0\1\106\1\0\6\10"+
+    "\3\0\1\10\1\u01d0\13\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\1\10\1\u0419\13\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\3\10\1\u041a\11\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\15\10\1\0\1\u041b"+
+    "\4\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\11\10\1\u0331\3\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\1\10\1\u041c\13\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\13\10\1\u041d\1\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\7\10\1\u041e\5\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\14\10\1\u041f\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\7\10\1\u0420\5\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\10\10\1\u0421\5\10\1\0\1\106\1\0\6\10"+
+    "\3\0\15\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\1\u0422\14\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\1\u0423\14\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\4\10\1\u0424\10\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\14\10\1\u0425\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\2\10\1\u0426\12\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\10\134\1\u0427"+
+    "\5\134\4\0\5\134\2\0\16\134\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\16\134\4\0"+
+    "\5\134\2\0\13\134\1\u0428\2\134\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\16\134\4\0"+
+    "\5\134\2\0\13\134\1\u0429\2\134\1\0\11\134\3\0"+
+    "\3\134\1\0\1\134\1\0\11\134\13\0\16\134\4\0"+
+    "\5\134\2\0\15\134\1\u042a\1\0\11\134\3\0\3\134"+
+    "\1\0\1\134\1\0\11\134\13\0\16\134\4\0\5\134"+
+    "\2\0\13\134\1\u042b\2\134\1\0\11\134\3\0\3\134"+
+    "\1\0\1\134\1\0\11\134\13\0\16\134\4\0\5\134"+
+    "\2\0\14\134\1\u042c\1\134\1\0\11\134\3\0\3\134"+
+    "\1\0\1\134\1\0\11\134\13\0\6\134\1\u042d\7\134"+
+    "\4\0\5\134\2\0\16\134\1\0\11\134\3\0\3\134"+
+    "\1\0\1\134\1\0\11\134\13\0\6\134\1\u042e\7\134"+
+    "\4\0\5\134\2\0\16\134\1\0\11\134\3\0\3\134"+
+    "\1\0\1\134\1\0\11\134\13\0\16\134\4\0\5\134"+
+    "\2\0\1\134\1\u042f\14\134\1\0\11\134\3\0\3\134"+
+    "\1\0\1\134\1\0\11\134\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\6\10\1\u02be\6\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\10\10\1\u0430\5\10\1\0\1\106\1\0\6\10"+
+    "\3\0\15\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\14\10\1\u0431\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\15\10\1\0"+
+    "\1\10\1\u0432\3\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\63\0\1\u0433\24\0\1\u0289\3\0"+
+    "\1\u0434\112\0\1\u0435\17\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\7\10\1\u0436\5\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\11\10\1\u02f4"+
+    "\3\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\15\10\1\0\1\u02b1\4\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\1\u0437\14\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\11\10\1\u036f\3\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\1\10\1\u0438\13\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\113\0\1\u0416\15\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\2\10\1\u0384\12\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\10\10\1\u0439\5\10\1\0\1\106\1\0\6\10\3\0"+
+    "\15\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\1\u040c\14\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\6\10"+
+    "\1\u043a\7\10\1\0\1\106\1\0\6\10\3\0\15\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\6\10\1\u043b\6\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\12\10\1\u0409\2\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\10\10\1\u043c\5\10\1\0\1\106"+
+    "\1\0\6\10\3\0\15\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\6\10"+
+    "\1\u043d\7\10\1\0\1\106\1\0\6\10\3\0\15\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\6\10\1\u03be\6\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\1\10\1\u043e\13\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\3\10\1\u043f\11\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\15\10\1\0\1\u0440"+
+    "\4\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\10\10\1\u0441\5\10\1\0\1\106\1\0"+
+    "\6\10\3\0\15\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\111\0\1\u0442\60\0"+
+    "\1\u0443\54\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\11\10\1\u0444\3\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\14\10\1\u0445\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\3\10"+
+    "\1\u0445\11\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\13\10\1\u0419\1\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\6\10"+
+    "\1\u0446\6\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\11\10\1\u02be\3\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\12\10\1\u0447\3\10\1\0\1\106\1\0\6\10"+
+    "\3\0\15\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\2\10\1\u0448\12\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\6\10\1\u0449\7\10\1\0\1\106\1\0\6\10"+
+    "\1\u044a\2\0\15\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\1\u044b\14\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\12\10"+
+    "\1\u044c\2\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\12\10\1\u044d\2\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\2\10"+
+    "\1\u044e\12\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\2\10\1\u044f\12\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\7\10"+
+    "\1\u0450\5\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\134\4\0\5\134"+
+    "\2\0\14\134\1\u0451\1\134\1\0\11\134\3\0\3\134"+
+    "\1\0\1\134\1\0\11\134\13\0\16\134\4\0\5\134"+
+    "\2\0\1\134\1\u0452\14\134\1\0\11\134\3\0\3\134"+
+    "\1\0\1\134\1\0\11\134\13\0\16\134\4\0\5\134"+
+    "\2\0\1\134\1\u0453\14\134\1\0\11\134\3\0\3\134"+
+    "\1\0\1\134\1\0\11\134\13\0\16\134\4\0\5\134"+
+    "\2\0\3\134\1\u0454\12\134\1\0\11\134\3\0\3\134"+
+    "\1\0\1\134\1\0\11\134\13\0\10\134\1\u0455\5\134"+
+    "\4\0\5\134\2\0\16\134\1\0\11\134\3\0\3\134"+
+    "\1\0\1\134\1\0\11\134\13\0\16\134\4\0\5\134"+
+    "\2\0\13\134\1\u0456\2\134\1\0\11\134\3\0\3\134"+
+    "\1\0\1\134\1\0\11\134\13\0\16\134\4\0\5\134"+
+    "\2\0\4\134\1\u0457\11\134\1\0\11\134\3\0\3\134"+
+    "\1\0\1\134\1\0\11\134\13\0\16\134\4\0\5\134"+
+    "\2\0\4\134\1\u0458\11\134\1\0\11\134\3\0\3\134"+
+    "\1\0\1\134\1\0\11\134\13\0\16\134\4\0\5\134"+
+    "\2\0\3\134\1\u0459\12\134\1\0\11\134\3\0\3\134"+
+    "\1\0\1\134\1\0\11\134\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\2\10\1\u045a\12\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\2\10"+
+    "\1\u045b\12\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\1\u045c\2\0\15\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\23\0"+
+    "\1\u045d\201\0\1\u045e\21\0\10\10\1\u045f\5\10\1\0"+
+    "\1\106\1\0\6\10\3\0\15\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\15\10\1\0"+
+    "\1\u0460\4\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\6\10\1\u0461\6\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\11\10\1\u0462\3\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\2\10\1\u0463\13\10\1\0\1\106"+
+    "\1\0\6\10\3\0\15\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\7\10\1\u0409\5\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\13\10\1\u0464\1\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\13\10\1\u0317\1\10"+
+    "\1\0\4\10\1\u0318\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\14\10\1\u0324\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\3\10\1\u0324\11\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\13\10\1\u043e\1\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\1\u0465\14\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\1\u0164\14\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\6\10\1\u0466\7\10"+
+    "\1\0\1\106\1\0\6\10\3\0\15\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\2\10"+
+    "\1\u0467\12\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\15\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\5\10\1\u0468\3\10"+
+    "\54\0\1\u0469\54\0\16\10\1\0\1\106\1\0\6\10"+
+    "\1\u044a\2\0\15\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\6\10\1\u046a"+
+    "\7\10\1\0\1\106\1\0\6\10\3\0\15\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\6\10\1\u046b\7\10\1\0\1\106\1\0"+
+    "\6\10\1\u044a\2\0\15\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\1\10\1\u0420\13\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\12\10\1\u046c\2\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\7\10\1\u046d\5\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\134\4\0\5\134\2\0\12\134"+
+    "\1\u046e\3\134\1\0\11\134\3\0\3\134\1\0\1\134"+
+    "\1\0\11\134\13\0\16\134\4\0\5\134\2\0\16\134"+
+    "\1\0\1\u046f\10\134\3\0\3\134\1\0\1\134\1\0"+
+    "\11\134\13\0\16\134\4\0\5\134\2\0\16\134\1\0"+
+    "\1\u0470\10\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\13\134\1\u0471\2\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\14\134\1\u0472\1\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\3\134\1\u0473\12\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\16\134\1\0\4\134"+
+    "\1\u0474\4\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\16\134\1\0\4\134"+
+    "\1\u0475\4\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\2\134\1\u0476\13\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\2\10\1\u0477\13\10\1\0\1\106\1\0\6\10"+
+    "\3\0\15\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\106\0\1\u0478\73\0\1\u0479"+
+    "\44\0\16\10\1\0\1\106\1\0\6\10\3\0\2\10"+
+    "\1\u047a\12\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\6\10\1\u047b\6\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\2\10"+
+    "\1\u047c\12\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\11\10\1\u0409\3\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\2\10"+
+    "\1\u047d\12\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\2\10\1\u047e\12\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\1\u047f"+
+    "\14\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\4\10\1\u0480\10\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\47\0"+
+    "\1\u0481\61\0\10\10\1\u0482\5\10\1\0\1\106\1\0"+
+    "\6\10\3\0\15\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\6\10\1\u0483\6\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\2\10\1\u0460\12\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\2\10\1\u0484\12\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\134\4\0\5\134\2\0\3\134\1\u0485"+
+    "\12\134\1\0\11\134\3\0\3\134\1\0\1\134\1\0"+
+    "\11\134\13\0\16\134\4\0\5\134\2\0\12\134\1\u0486"+
+    "\3\134\1\0\11\134\3\0\3\134\1\0\1\134\1\0"+
+    "\11\134\13\0\16\134\4\0\5\134\2\0\13\134\1\u0487"+
+    "\2\134\1\0\11\134\3\0\3\134\1\0\1\134\1\0"+
+    "\11\134\13\0\10\134\1\u0488\5\134\4\0\5\134\2\0"+
+    "\16\134\1\0\11\134\3\0\3\134\1\0\1\134\1\0"+
+    "\11\134\13\0\10\134\1\u0489\5\134\4\0\5\134\2\0"+
+    "\16\134\1\0\11\134\3\0\3\134\1\0\1\134\1\0"+
+    "\11\134\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\1\10\1\u048a\13\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\51\0\1\u048b\127\0"+
+    "\1\u048c\45\0\2\10\1\u048d\13\10\1\0\1\106\1\0"+
+    "\6\10\3\0\15\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\1\u048e\2\0\15\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\7\10"+
+    "\1\u048f\5\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\12\10\1\u0490\2\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\1\u0491"+
+    "\14\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\6\10\1\u044b\6\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\10\10\1\u0492\5\10\1\0\1\106\1\0\6\10\3\0"+
+    "\15\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\56\0\1\u0493\52\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\11\10\1\u0494\3\10\1\0"+
+    "\5\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\10\10\1\u0495\4\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\3\0\15\10\1\0\2\10\1\u0496"+
+    "\2\10\1\0\3\10\4\0\2\10\1\0\1\10\1\0"+
+    "\11\10\13\0\10\134\1\u0497\5\134\4\0\5\134\2\0"+
+    "\16\134\1\0\11\134\3\0\3\134\1\0\1\134\1\0"+
+    "\11\134\13\0\16\134\4\0\5\134\2\0\13\134\1\u0498"+
+    "\2\134\1\0\11\134\3\0\3\134\1\0\1\134\1\0"+
+    "\11\134\13\0\16\134\4\0\5\134\2\0\13\134\1\u0499"+
+    "\2\134\1\0\11\134\3\0\3\134\1\0\1\134\1\0"+
+    "\11\134\13\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\6\10\1\u049a\6\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\55\0\1\u049b\150\0"+
+    "\1\u049c\20\0\16\10\1\0\1\106\1\0\6\10\3\0"+
+    "\1\10\1\u049d\13\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\54\0\1\u049e\54\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\7\10\1\u049f"+
+    "\5\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\10\10\1\u04a0\5\10\1\0"+
+    "\1\106\1\0\6\10\3\0\15\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\3\0\1\u04a1\14\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\1\u04a2\14\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\64\0\1\u04a3\44\0"+
+    "\10\10\1\u04a4\5\10\1\0\1\106\1\0\6\10\3\0"+
+    "\15\10\1\0\5\10\1\0\3\10\4\0\2\10\1\0"+
+    "\1\10\1\0\11\10\13\0\16\10\1\0\1\106\1\0"+
+    "\6\10\3\0\5\10\1\u04a5\7\10\1\0\5\10\1\0"+
+    "\3\10\4\0\2\10\1\0\1\10\1\0\11\10\13\0"+
+    "\16\10\1\0\1\106\1\0\6\10\1\u04a6\2\0\15\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\134\4\0\5\134\2\0\14\134"+
+    "\1\u04a7\1\134\1\0\11\134\3\0\3\134\1\0\1\134"+
+    "\1\0\11\134\13\0\16\134\4\0\5\134\2\0\1\134"+
+    "\1\u04a8\14\134\1\0\11\134\3\0\3\134\1\0\1\134"+
+    "\1\0\11\134\13\0\16\134\4\0\5\134\2\0\1\134"+
+    "\1\u04a9\14\134\1\0\11\134\3\0\3\134\1\0\1\134"+
+    "\1\0\11\134\15\0\1\u04aa\211\0\1\u04ab\17\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\6\10\1\u04ac\6\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\47\0\1\u04ad\61\0\10\10\1\u04ae\5\10"+
+    "\1\0\1\106\1\0\6\10\3\0\15\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\13\10"+
+    "\1\u04af\1\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\6\10\1\u0412\6\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\15\10"+
+    "\1\0\3\10\1\u04b0\1\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\53\0\1\u04b1\55\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\12\10\1\u04b2\2\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\12\10\1\u04b3\2\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\54\0\1\u04b4"+
+    "\54\0\16\134\4\0\5\134\2\0\12\134\1\u04b5\3\134"+
+    "\1\0\11\134\3\0\3\134\1\0\1\134\1\0\11\134"+
+    "\13\0\16\134\4\0\5\134\2\0\16\134\1\0\1\u04b6"+
+    "\10\134\3\0\3\134\1\0\1\134\1\0\11\134\13\0"+
+    "\16\134\4\0\5\134\2\0\16\134\1\0\1\u04b7\10\134"+
+    "\3\0\3\134\1\0\1\134\1\0\11\134\60\0\1\u04b8"+
+    "\113\0\1\u04b9\52\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\6\10\1\u04ba\6\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\13\0\16\10"+
+    "\1\0\1\106\1\0\6\10\3\0\11\10\1\u04bb\3\10"+
+    "\1\0\5\10\1\0\3\10\4\0\2\10\1\0\1\10"+
+    "\1\0\11\10\13\0\16\10\1\0\1\106\1\0\6\10"+
+    "\1\u04bc\2\0\15\10\1\0\5\10\1\0\3\10\4\0"+
+    "\2\10\1\0\1\10\1\0\11\10\13\0\16\10\1\0"+
+    "\1\106\1\0\6\10\1\u04bd\2\0\15\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\13\0\16\10\1\0\1\106\1\0\6\10\3\0\15\10"+
+    "\1\0\2\10\1\u04be\2\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\47\0\1\u04bf\132\0\1\u04c0"+
+    "\44\0\16\10\1\0\1\106\1\0\6\10\3\0\7\10"+
+    "\1\u04c1\5\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\13\0\6\10\1\u04c2\7\10"+
+    "\1\0\1\106\1\0\6\10\3\0\15\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\54\0\1\u04c3\115\0\1\u04c4\117\0\1\u04c5\112\0\1\u04c6"+
+    "\55\0\16\10\1\0\1\106\1\0\6\10\3\0\6\10"+
+    "\1\u04c7\6\10\1\0\5\10\1\0\3\10\4\0\2\10"+
+    "\1\0\1\10\1\0\11\10\47\0\1\u04c8\115\0\1\u04c9"+
+    "\132\0\1\u04ca\44\0\16\10\1\0\1\106\1\0\6\10"+
+    "\3\0\7\10\1\u04cb\5\10\1\0\5\10\1\0\3\10"+
+    "\4\0\2\10\1\0\1\10\1\0\11\10\56\0\1\u04cc"+
+    "\115\0\1\u04cd\112\0\1\u04ce\55\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\7\10\1\u04cf\5\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\64\0\1\u04d0\115\0\1\u04d1\44\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\13\10\1\u04d2\1\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\53\0\1\u04d3\115\0\1\u04d4\55\0\16\10\1\0\1\106"+
+    "\1\0\6\10\3\0\7\10\1\u04d5\5\10\1\0\5\10"+
+    "\1\0\3\10\4\0\2\10\1\0\1\10\1\0\11\10"+
+    "\12\0";
+
+  private static int [] zzUnpackTrans() {
+    int [] result = new int[86814];
+    int offset = 0;
+    offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
+    return result;
+  }
+
+  private static int zzUnpackTrans(String packed, int offset, int [] result) {
+    int i = 0;       /* index in packed string  */
+    int j = offset;  /* index in unpacked array */
+    int l = packed.length();
+    while (i < l) {
+      int count = packed.charAt(i++);
+      int value = packed.charAt(i++);
+      value--;
+      do result[j++] = value; while (--count > 0);
+    }
+    return j;
+  }
+
+
+  /* error codes */
+  private static final int ZZ_UNKNOWN_ERROR = 0;
+  private static final int ZZ_NO_MATCH = 1;
+  private static final int ZZ_PUSHBACK_2BIG = 2;
+
+  /* error messages for the codes above */
+  private static final String ZZ_ERROR_MSG[] = {
+    "Unkown internal scanner error",
+    "Error: could not match input",
+    "Error: pushback value was too large"
+  };
+
+  /**
+   * ZZ_ATTRIBUTE[aState] contains the attributes of state <code>aState</code>
+   */
+  private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
+
+  private static final String ZZ_ATTRIBUTE_PACKED_0 =
+    "\5\0\1\11\35\1\2\11\5\1\12\11\3\1\2\11"+
+    "\1\0\1\1\2\11\1\0\7\1\1\0\11\1\1\0"+
+    "\1\11\15\1\1\11\12\1\1\0\1\1\1\0\1\1"+
+    "\2\0\60\1\4\0\1\11\2\0\3\11\1\1\6\11"+
+    "\2\1\1\0\2\1\1\0\2\11\45\1\1\0\1\1"+
+    "\2\0\1\1\2\0\64\1\1\11\1\0\1\11\2\0"+
+    "\2\1\1\0\1\1\1\0\50\1\4\0\130\1\1\0"+
+    "\45\1\1\0\17\1\1\0\27\1\1\0\40\1\1\0"+
+    "\44\1\2\0\17\1\2\0\3\1\1\11\14\1\1\0"+
+    "\7\1\1\0\40\1\1\0\1\11\1\0\45\1\1\0"+
+    "\1\11\12\1\1\0\3\1\2\11\1\0\13\1\1\0"+
+    "\15\1\1\0\36\1\1\0\1\11\14\1\1\0\10\1"+
+    "\1\0\15\1\1\0\6\1\2\0\3\1\1\0\13\1"+
+    "\1\0\42\1\1\0\11\1\1\0\17\1\1\0\3\1"+
+    "\1\0\10\1\1\0\7\1\2\0\2\1\1\0\56\1"+
+    "\1\0\12\1\1\0\12\1\1\0\5\1\2\0\43\1"+
+    "\2\0\6\1\1\0\11\1\1\11\5\1\1\0\1\11"+
+    "\1\0\33\1\2\0\1\11\14\1\2\11\6\1\1\0"+
+    "\21\1\2\0\1\11\12\1\1\0\16\1\2\0\7\1"+
+    "\1\0\11\1\2\0\1\1\1\0\4\1\1\0\7\1"+
+    "\2\0\1\1\1\0\4\1\1\0\2\1\1\0\3\1"+
+    "\1\0\1\11\1\1\1\0\3\1\1\11\2\1\1\0"+
+    "\3\1\1\11\1\0\2\1\2\0\1\1\2\0\2\1"+
+    "\3\0\1\11\1\1\3\0\1\1\2\0\1\11\1\1"+
+    "\2\0\1\1\2\11\1\1";
+
+  private static int [] zzUnpackAttribute() {
+    int [] result = new int[1237];
+    int offset = 0;
+    offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
+    return result;
+  }
+
+  private static int zzUnpackAttribute(String packed, int offset, int [] result) {
+    int i = 0;       /* index in packed string  */
+    int j = offset;  /* index in unpacked array */
+    int l = packed.length();
+    while (i < l) {
+      int count = packed.charAt(i++);
+      int value = packed.charAt(i++);
+      do result[j++] = value; while (--count > 0);
+    }
+    return j;
+  }
+
+  /** the input device */
+  private java.io.Reader zzReader;
+
+  /** the current state of the DFA */
+  private int zzState;
+
+  /** the current lexical state */
+  private int zzLexicalState = YYINITIAL;
+
+  /** this buffer contains the current text to be matched and is
+      the source of the yytext() string */
+  private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
+
+  /** the textposition at the last accepting state */
+  private int zzMarkedPos;
+
+  /** the current text position in the buffer */
+  private int zzCurrentPos;
+
+  /** startRead marks the beginning of the yytext() string in the buffer */
+  private int zzStartRead;
+
+  /** endRead marks the last character in the buffer, that has been read
+      from input */
+  private int zzEndRead;
+
+  /** number of newlines encountered up to the start of the matched text */
+  private int yyline;
+
+  /** the number of characters up to the start of the matched text */
+  private int yychar;
+
+  /**
+   * the number of characters from the last newline up to the start of the
+   * matched text
+   */
+  private int yycolumn;
+
+  /**
+   * zzAtBOL == true <=> the scanner is currently at the beginning of a line
+   */
+  private boolean zzAtBOL = true;
+
+  /** zzAtEOF == true <=> the scanner is at the EOF */
+  private boolean zzAtEOF;
+
+  /** denotes if the user-EOF-code has already been executed */
+  private boolean zzEOFDone;
+
+  /* user code: */
+    private StringBuffer sb = new StringBuffer();
+    private String stringOrCharError = null;
+    private int stringStartLine;
+    private int stringStartCol;
+    private int stringStartChar;
+
+    private int lexerErrors = 0;
+
+    private File sourceFile;
+
+    private boolean suppressErrors;
+
+    public Token nextToken() {
+        try {
+            Token token = yylex();
+            if (token instanceof InvalidToken) {
+                InvalidToken invalidToken = (InvalidToken)token;
+                if (!suppressErrors) {
+                    System.err.println(getErrorHeader(invalidToken) + " Error for input '" +
+                        invalidToken.getText() + "': " + invalidToken.getMessage());
+                }
+                lexerErrors++;
+            }
+            return token;
+        }
+        catch (java.io.IOException e) {
+            System.err.println("shouldn't happen: " + e.getMessage());
+            return newToken(EOF);
+        }
+    }
+
+    public void setLine(int line) {
+        this.yyline = line-1;
+    }
+
+    public void setColumn(int column) {
+        this.yycolumn = column;
+    }
+
+    public int getLine() {
+        return this.yyline+1;
+    }
+
+    public int getColumn() {
+        return this.yycolumn;
+    }
+
+    public void setSuppressErrors(boolean suppressErrors) {
+        this.suppressErrors = suppressErrors;
+    }
+
+    public void setSourceFile(File sourceFile) {
+        this.sourceFile = sourceFile;
+    }
+
+    public String getSourceName() {
+        if (sourceFile == null) {
+            return "";
+        }
+        try {
+            return  PathUtil.getRelativeFile(new File("."), sourceFile).getPath();
+        } catch (IOException ex) {
+            return sourceFile.getAbsolutePath();
+        }
+    }
+
+    public int getNumberOfSyntaxErrors() {
+        return lexerErrors;
+    }
+
+    private Token newToken(int type, String text, boolean hidden) {
+        CommonToken token = new CommonToken(type, text);
+        if (hidden) {
+            token.setChannel(Token.HIDDEN_CHANNEL);
+        }
+
+        token.setStartIndex(yychar);
+        token.setStopIndex(yychar + yylength() - 1);
+        token.setLine(getLine());
+        token.setCharPositionInLine(getColumn());
+        return token;
+    }
+
+    private Token newToken(int type, String text) {
+        return newToken(type, text, false);
+    }
+
+    private Token newToken(int type, boolean hidden) {
+        return newToken(type, yytext(), hidden);
+    }
+
+    private Token newToken(int type) {
+        return newToken(type, yytext(), false);
+    }
+
+    private Token invalidToken(String message, String text) {
+        InvalidToken token = new InvalidToken(message, text);
+
+        token.setStartIndex(yychar);
+        token.setStopIndex(yychar + yylength() - 1);
+        token.setLine(getLine());
+        token.setCharPositionInLine(getColumn());
+
+        return token;
+    }
+
+    private Token invalidToken(String message) {
+        return invalidToken(message, yytext());
+    }
+
+    private void beginStringOrChar(int state) {
+        yybegin(state);
+        sb.setLength(0);
+        stringStartLine = getLine();
+        stringStartCol = getColumn();
+        stringStartChar = yychar;
+        stringOrCharError = null;
+    }
+
+    private Token endStringOrChar(int type) {
+        yybegin(YYINITIAL);
+
+        if (stringOrCharError != null) {
+            return invalidStringOrChar(stringOrCharError);
+        }
+
+        CommonToken token = new CommonToken(type, sb.toString());
+        token.setStartIndex(stringStartChar);
+        token.setStopIndex(yychar + yylength() - 1);
+        token.setLine(stringStartLine);
+        token.setCharPositionInLine(stringStartCol);
+        return token;
+    }
+
+    private void setStringOrCharError(String message) {
+        if (stringOrCharError == null) {
+            stringOrCharError = message;
+        }
+    }
+
+    private Token invalidStringOrChar(String message) {
+        yybegin(YYINITIAL);
+
+        InvalidToken token = new InvalidToken(message, sb.toString());
+        token.setStartIndex(stringStartChar);
+        token.setStopIndex(yychar + yylength() - 1);
+        token.setLine(stringStartLine);
+        token.setCharPositionInLine(stringStartCol);
+        return token;
+    }
+
+    public String getErrorHeader(InvalidToken token) {
+        return getSourceName()+"["+ token.getLine()+","+token.getCharPositionInLine()+"]";
+    }
+
+
+  /**
+   * Creates a new scanner
+   * There is also a java.io.InputStream version of this constructor.
+   *
+   * @param   in  the java.io.Reader to read input from.
+   */
+  public smaliFlexLexer(java.io.Reader in) {
+    this.zzReader = in;
+  }
+
+  /**
+   * Creates a new scanner.
+   * There is also java.io.Reader version of this constructor.
+   *
+   * @param   in  the java.io.Inputstream to read input from.
+   */
+  public smaliFlexLexer(java.io.InputStream in) {
+    this(new java.io.InputStreamReader(in));
+  }
+
+  /**
+   * Unpacks the compressed character translation table.
+   *
+   * @param packed   the packed character translation table
+   * @return         the unpacked character translation table
+   */
+  private static char [] zzUnpackCMap(String packed) {
+    char [] map = new char[0x10000];
+    int i = 0;  /* index in packed string  */
+    int j = 0;  /* index in unpacked array */
+    while (i < 208) {
+      int  count = packed.charAt(i++);
+      char value = packed.charAt(i++);
+      do map[j++] = value; while (--count > 0);
+    }
+    return map;
+  }
+
+
+  /**
+   * Refills the input buffer.
+   *
+   * @return      <code>false</code>, iff there was new input.
+   *
+   * @exception   java.io.IOException  if any I/O-Error occurs
+   */
+  private boolean zzRefill() throws java.io.IOException {
+
+    /* first: make room (if you can) */
+    if (zzStartRead > 0) {
+      System.arraycopy(zzBuffer, zzStartRead,
+                       zzBuffer, 0,
+                       zzEndRead-zzStartRead);
+
+      /* translate stored positions */
+      zzEndRead-= zzStartRead;
+      zzCurrentPos-= zzStartRead;
+      zzMarkedPos-= zzStartRead;
+      zzStartRead = 0;
+    }
+
+    /* is the buffer big enough? */
+    if (zzCurrentPos >= zzBuffer.length) {
+      /* if not: blow it up */
+      char newBuffer[] = new char[zzCurrentPos*2];
+      System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
+      zzBuffer = newBuffer;
+    }
+
+    /* finally: fill the buffer with new input */
+    int numRead = zzReader.read(zzBuffer, zzEndRead,
+                                            zzBuffer.length-zzEndRead);
+
+    if (numRead > 0) {
+      zzEndRead+= numRead;
+      return false;
+    }
+    // unlikely but not impossible: read 0 characters, but not at end of stream
+    if (numRead == 0) {
+      int c = zzReader.read();
+      if (c == -1) {
+        return true;
+      } else {
+        zzBuffer[zzEndRead++] = (char) c;
+        return false;
+      }
+    }
+
+	// numRead < 0
+    return true;
+  }
+
+
+  /**
+   * Closes the input stream.
+   */
+  public final void yyclose() throws java.io.IOException {
+    zzAtEOF = true;            /* indicate end of file */
+    zzEndRead = zzStartRead;  /* invalidate buffer    */
+
+    if (zzReader != null)
+      zzReader.close();
+  }
+
+
+  /**
+   * Resets the scanner to read from a new input stream.
+   * Does not close the old reader.
+   *
+   * All internal variables are reset, the old input stream
+   * <b>cannot</b> be reused (internal buffer is discarded and lost).
+   * Lexical state is set to <tt>ZZ_INITIAL</tt>.
+   *
+   * @param reader   the new input stream
+   */
+  public final void yyreset(java.io.Reader reader) {
+    zzReader = reader;
+    zzAtBOL  = true;
+    zzAtEOF  = false;
+    zzEOFDone = false;
+    zzEndRead = zzStartRead = 0;
+    zzCurrentPos = zzMarkedPos = 0;
+    yyline = yychar = yycolumn = 0;
+    zzLexicalState = YYINITIAL;
+  }
+
+
+  /**
+   * Returns the current lexical state.
+   */
+  public final int yystate() {
+    return zzLexicalState;
+  }
+
+
+  /**
+   * Enters a new lexical state
+   *
+   * @param newState the new lexical state
+   */
+  public final void yybegin(int newState) {
+    zzLexicalState = newState;
+  }
+
+
+  /**
+   * Returns the text matched by the current regular expression.
+   */
+  public final String yytext() {
+    return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead );
+  }
+
+
+  /**
+   * Returns the character at position <tt>pos</tt> from the
+   * matched text.
+   *
+   * It is equivalent to yytext().charAt(pos), but faster
+   *
+   * @param pos the position of the character to fetch.
+   *            A value from 0 to yylength()-1.
+   *
+   * @return the character at position pos
+   */
+  public final char yycharat(int pos) {
+    return zzBuffer[zzStartRead+pos];
+  }
+
+
+  /**
+   * Returns the length of the matched text region.
+   */
+  public final int yylength() {
+    return zzMarkedPos-zzStartRead;
+  }
+
+
+  /**
+   * Reports an error that occured while scanning.
+   *
+   * In a wellformed scanner (no or only correct usage of
+   * yypushback(int) and a match-all fallback rule) this method
+   * will only be called with things that "Can't Possibly Happen".
+   * If this method is called, something is seriously wrong
+   * (e.g. a JFlex bug producing a faulty scanner etc.).
+   *
+   * Usual syntax/scanner level error handling should be done
+   * in error fallback rules.
+   *
+   * @param   errorCode  the code of the errormessage to display
+   */
+  private void zzScanError(int errorCode) {
+    String message;
+    try {
+      message = ZZ_ERROR_MSG[errorCode];
+    }
+    catch (ArrayIndexOutOfBoundsException e) {
+      message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
+    }
+
+    throw new Error(message);
+  }
+
+
+  /**
+   * Pushes the specified amount of characters back into the input stream.
+   *
+   * They will be read again by then next call of the scanning method
+   *
+   * @param number  the number of characters to be read again.
+   *                This number must not be greater than yylength()!
+   */
+  public void yypushback(int number)  {
+    if ( number > yylength() )
+      zzScanError(ZZ_PUSHBACK_2BIG);
+
+    zzMarkedPos -= number;
+  }
+
+
+  /**
+   * Resumes scanning until the next regular expression is matched,
+   * the end of input is encountered or an I/O-Error occurs.
+   *
+   * @return      the next token
+   * @exception   java.io.IOException  if any I/O-Error occurs
+   */
+  public Token yylex() throws java.io.IOException {
+    int zzInput;
+    int zzAction;
+
+    // cached fields:
+    int zzCurrentPosL;
+    int zzMarkedPosL;
+    int zzEndReadL = zzEndRead;
+    char [] zzBufferL = zzBuffer;
+    char [] zzCMapL = ZZ_CMAP;
+
+    int [] zzTransL = ZZ_TRANS;
+    int [] zzRowMapL = ZZ_ROWMAP;
+    int [] zzAttrL = ZZ_ATTRIBUTE;
+
+    while (true) {
+      zzMarkedPosL = zzMarkedPos;
+
+      yychar+= zzMarkedPosL-zzStartRead;
+
+      boolean zzR = false;
+      for (zzCurrentPosL = zzStartRead; zzCurrentPosL < zzMarkedPosL;
+                                                             zzCurrentPosL++) {
+        switch (zzBufferL[zzCurrentPosL]) {
+        case '\u000B':
+        case '\u000C':
+        case '\u0085':
+        case '\u2028':
+        case '\u2029':
+          yyline++;
+          yycolumn = 0;
+          zzR = false;
+          break;
+        case '\r':
+          yyline++;
+          yycolumn = 0;
+          zzR = true;
+          break;
+        case '\n':
+          if (zzR)
+            zzR = false;
+          else {
+            yyline++;
+            yycolumn = 0;
+          }
+          break;
+        default:
+          zzR = false;
+          yycolumn++;
+        }
+      }
+
+      if (zzR) {
+        // peek one character ahead if it is \n (if we have counted one line too much)
+        boolean zzPeek;
+        if (zzMarkedPosL < zzEndReadL)
+          zzPeek = zzBufferL[zzMarkedPosL] == '\n';
+        else if (zzAtEOF)
+          zzPeek = false;
+        else {
+          boolean eof = zzRefill();
+          zzEndReadL = zzEndRead;
+          zzMarkedPosL = zzMarkedPos;
+          zzBufferL = zzBuffer;
+          if (eof)
+            zzPeek = false;
+          else
+            zzPeek = zzBufferL[zzMarkedPosL] == '\n';
+        }
+        if (zzPeek) yyline--;
+      }
+      zzAction = -1;
+
+      zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
+
+      zzState = ZZ_LEXSTATE[zzLexicalState];
+
+
+      zzForAction: {
+        while (true) {
+
+          if (zzCurrentPosL < zzEndReadL)
+            zzInput = zzBufferL[zzCurrentPosL++];
+          else if (zzAtEOF) {
+            zzInput = YYEOF;
+            break zzForAction;
+          }
+          else {
+            // store back cached positions
+            zzCurrentPos  = zzCurrentPosL;
+            zzMarkedPos   = zzMarkedPosL;
+            boolean eof = zzRefill();
+            // get translated positions and possibly new buffer
+            zzCurrentPosL  = zzCurrentPos;
+            zzMarkedPosL   = zzMarkedPos;
+            zzBufferL      = zzBuffer;
+            zzEndReadL     = zzEndRead;
+            if (eof) {
+              zzInput = YYEOF;
+              break zzForAction;
+            }
+            else {
+              zzInput = zzBufferL[zzCurrentPosL++];
+            }
+          }
+          int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
+          if (zzNext == -1) break zzForAction;
+          zzState = zzNext;
+
+          int zzAttributes = zzAttrL[zzState];
+          if ( (zzAttributes & 1) == 1 ) {
+            zzAction = zzState;
+            zzMarkedPosL = zzCurrentPosL;
+            if ( (zzAttributes & 8) == 8 ) break zzForAction;
+          }
+
+        }
+      }
+
+      // store back cached position
+      zzMarkedPos = zzMarkedPosL;
+
+      switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
+        case 104:
+          { return newToken(INSTRUCTION_FORMAT22b);
+          }
+        case 140: break;
+        case 99:
+          { return newToken(VTABLE_INDEX);
+          }
+        case 141: break;
+        case 87:
+          { return newToken(PROLOGUE_DIRECTIVE);
+          }
+        case 142: break;
+        case 41:
+          { sb.append('\r');
+          }
+        case 143: break;
+        case 100:
+          { return newToken(IMPLEMENTS_DIRECTIVE);
+          }
+        case 144: break;
+        case 115:
+          { return newToken(INSTRUCTION_FORMAT21c_FIELD_ODEX);
+          }
+        case 145: break;
+        case 103:
+          { return newToken(END_METHOD_DIRECTIVE);
+          }
+        case 146: break;
+        case 123:
+          { return newToken(INSTRUCTION_FORMAT35c_TYPE);
+          }
+        case 147: break;
+        case 45:
+          { sb.append('\'');
+          }
+        case 148: break;
+        case 8:
+          { beginStringOrChar(CHAR); sb.append('\'');
+          }
+        case 149: break;
+        case 43:
+          { sb.append('\t');
+          }
+        case 150: break;
+        case 59:
+          { return newToken(BOOL_LITERAL);
+          }
+        case 151: break;
+        case 127:
+          { return newToken(INSTRUCTION_FORMAT35ms_METHOD);
+          }
+        case 152: break;
+        case 97:
+          { return newToken(INSTRUCTION_FORMAT51l);
+          }
+        case 153: break;
+        case 61:
+          { return newToken(ANNOTATION_VISIBILITY);
+          }
+        case 154: break;
+        case 74:
+          { sb.append((char)Integer.parseInt(yytext().substring(2,6), 16));
+          }
+        case 155: break;
+        case 36:
+          { return newToken(REGISTER);
+          }
+        case 156: break;
+        case 79:
+          { return newToken(INSTRUCTION_FORMAT32x);
+          }
+        case 157: break;
+        case 122:
+          { return newToken(END_ANNOTATION_DIRECTIVE);
+          }
+        case 158: break;
+        case 50:
+          { return newToken(CLASS_DESCRIPTOR);
+          }
+        case 159: break;
+        case 2:
+          { return newToken(POSITIVE_INTEGER_LITERAL);
+          }
+        case 160: break;
+        case 124:
+          { // e.g. 'capture-variable vB, <string id>'
+        return newToken(INSTRUCTION_FORMAT21c_LAMBDA);
+          }
+        case 161: break;
+        case 11:
+          { return newToken(EQUAL);
+          }
+        case 162: break;
+        case 28:
+          { return newToken(LONG_LITERAL);
+          }
+        case 163: break;
+        case 89:
+          { return newToken(INSTRUCTION_FORMAT22c_TYPE);
+          }
+        case 164: break;
+        case 1:
+          { return invalidToken("Invalid text");
+          }
+        case 165: break;
+        case 81:
+          { return newToken(INSTRUCTION_FORMAT30t);
+          }
+        case 166: break;
+        case 19:
+          { yypushback(1); yybegin(YYINITIAL); return newToken(PARAM_LIST_END);
+          }
+        case 167: break;
+        case 114:
+          { return newToken(INSTRUCTION_FORMAT31t);
+          }
+        case 168: break;
+        case 27:
+          { return newToken(DOUBLE_LITERAL);
+          }
+        case 169: break;
+        case 93:
+          { return newToken(END_FIELD_DIRECTIVE);
+          }
+        case 170: break;
+        case 17:
+          { return newToken(CLOSE_PAREN);
+          }
+        case 171: break;
+        case 73:
+          { return newToken(PARAMETER_DIRECTIVE);
+          }
+        case 172: break;
+        case 29:
+          { return newToken(SHORT_LITERAL);
+          }
+        case 173: break;
+        case 12:
+          { return newToken(COLON);
+          }
+        case 174: break;
+        case 72:
+          { return newToken(SUPER_DIRECTIVE);
+          }
+        case 175: break;
+        case 86:
+          { return newToken(CATCHALL_DIRECTIVE);
+          }
+        case 176: break;
+        case 70:
+          { return newToken(CATCH_DIRECTIVE);
+          }
+        case 177: break;
+        case 31:
+          { return newToken(NEGATIVE_INTEGER_LITERAL);
+          }
+        case 178: break;
+        case 119:
+          { return newToken(RESTART_LOCAL_DIRECTIVE);
+          }
+        case 179: break;
+        case 37:
+          { sb.append(yytext());
+        setStringOrCharError("Invalid escape sequence " + yytext());
+          }
+        case 180: break;
+        case 138:
+          { return newToken(INSTRUCTION_FORMAT3rc_METHOD_ODEX);
+          }
+        case 181: break;
+        case 112:
+          { // e.g. 'create-lambda vClosure, <method id>'
+        return newToken(INSTRUCTION_FORMAT21c_METHOD);
+          }
+        case 182: break;
+        case 90:
+          { return newToken(INSTRUCTION_FORMAT22x);
+          }
+        case 183: break;
+        case 40:
+          { sb.append(yytext());
+        setStringOrCharError("Invalid \\u sequence. \\u must be followed by 4 hex digits");
+          }
+        case 184: break;
+        case 92:
+          { return newToken(INLINE_INDEX);
+          }
+        case 185: break;
+        case 21:
+          { sb.append('"'); return endStringOrChar(STRING_LITERAL);
+          }
+        case 186: break;
+        case 135:
+          { return newToken(INSTRUCTION_FORMAT3rmi_METHOD);
+          }
+        case 187: break;
+        case 54:
+          { return newToken(INSTRUCTION_FORMAT23x);
+          }
+        case 188: break;
+        case 85:
+          { return newToken(FIELD_OFFSET);
+          }
+        case 189: break;
+        case 111:
+          { // e.g. invoke-lambda vClosure, {vD, vE, vF, vG} -- at most 4 params
+        return newToken(INSTRUCTION_FORMAT25x);
+          }
+        case 190: break;
+        case 33:
+          { return newToken(DOTDOT);
+          }
+        case 191: break;
+        case 9:
+          { return newToken(LINE_COMMENT, true);
+          }
+        case 192: break;
+        case 18:
+          { yypushback(1); yybegin(YYINITIAL); return newToken(PARAM_LIST_OR_ID_END);
+          }
+        case 193: break;
+        case 80:
+          { return newToken(INSTRUCTION_FORMAT20t);
+          }
+        case 194: break;
+        case 30:
+          { return newToken(DOUBLE_LITERAL_OR_ID);
+          }
+        case 195: break;
+        case 84:
+          { return newToken(VERIFICATION_ERROR_TYPE);
+          }
+        case 196: break;
+        case 67:
+          { return newToken(INSTRUCTION_FORMAT21t);
+          }
+        case 197: break;
+        case 6:
+          { return newToken(WHITE_SPACE, true);
+          }
+        case 198: break;
+        case 34:
+          { yypushback(yylength());
+        yybegin(PARAM_LIST_OR_ID);
+        return newToken(PARAM_LIST_OR_ID_START);
+          }
+        case 199: break;
+        case 13:
+          { return newToken(COMMA);
+          }
+        case 200: break;
+        case 69:
+          { return newToken(CLASS_DIRECTIVE);
+          }
+        case 201: break;
+        case 106:
+          { return newToken(INSTRUCTION_FORMAT21c_STRING);
+          }
+        case 202: break;
+        case 62:
+          { return newToken(INSTRUCTION_FORMAT22t);
+          }
+        case 203: break;
+        case 82:
+          { return newToken(INSTRUCTION_FORMAT21s);
+          }
+        case 204: break;
+        case 64:
+          { return newToken(ENUM_DIRECTIVE);
+          }
+        case 205: break;
+        case 46:
+          { sb.append('\\');
+          }
+        case 206: break;
+        case 51:
+          { return newToken(INSTRUCTION_FORMAT10x);
+          }
+        case 207: break;
+        case 16:
+          { return newToken(OPEN_PAREN);
+          }
+        case 208: break;
+        case 76:
+          { return newToken(SOURCE_DIRECTIVE);
+          }
+        case 209: break;
+        case 108:
+          { return newToken(INSTRUCTION_FORMAT22s);
+          }
+        case 210: break;
+        case 66:
+          { return newToken(INSTRUCTION_FORMAT11x);
+          }
+        case 211: break;
+        case 133:
+          { return newToken(INSTRUCTION_FORMAT35c_METHOD_ODEX);
+          }
+        case 212: break;
+        case 5:
+          { return newToken(PRIMITIVE_TYPE);
+          }
+        case 213: break;
+        case 109:
+          { return newToken(INSTRUCTION_FORMAT12x);
+          }
+        case 214: break;
+        case 53:
+          { return newToken(INSTRUCTION_FORMAT22c_FIELD);
+          }
+        case 215: break;
+        case 44:
+          { sb.append('"');
+          }
+        case 216: break;
+        case 10:
+          { return newToken(VOID_TYPE);
+          }
+        case 217: break;
+        case 110:
+          { return newToken(INSTRUCTION_FORMAT22c_FIELD_ODEX);
+          }
+        case 218: break;
+        case 129:
+          { return newToken(END_SUBANNOTATION_DIRECTIVE);
+          }
+        case 219: break;
+        case 68:
+          { return newToken(FIELD_DIRECTIVE);
+          }
+        case 220: break;
+        case 4:
+          { return invalidToken("Invalid directive");
+          }
+        case 221: break;
+        case 113:
+          { return newToken(INSTRUCTION_FORMAT31i);
+          }
+        case 222: break;
+        case 116:
+          { return newToken(SUBANNOTATION_DIRECTIVE);
+          }
+        case 223: break;
+        case 60:
+          { return newToken(INSTRUCTION_FORMAT10t);
+          }
+        case 224: break;
+        case 94:
+          { return newToken(END_LOCAL_DIRECTIVE);
+          }
+        case 225: break;
+        case 38:
+          { sb.append('\b');
+          }
+        case 226: break;
+        case 47:
+          { sb.append(yytext());
+        setStringOrCharError("Invalid \\u sequence. \\u must be followed by exactly 4 hex digits");
+          }
+        case 227: break;
+        case 63:
+          { return newToken(LINE_DIRECTIVE);
+          }
+        case 228: break;
+        case 77:
+          { return newToken(METHOD_DIRECTIVE);
+          }
+        case 229: break;
+        case 137:
+          { return newToken(INSTRUCTION_FORMAT3rms_METHOD);
+          }
+        case 230: break;
+        case 117:
+          { return newToken(SPARSE_SWITCH_DIRECTIVE);
+          }
+        case 231: break;
+        case 96:
+          { return newToken(REGISTERS_DIRECTIVE);
+          }
+        case 232: break;
+        case 49:
+          { yypushback(yylength());
+        yybegin(PARAM_LIST);
+        return newToken(PARAM_LIST_START);
+          }
+        case 233: break;
+        case 32:
+          { return newToken(ARROW);
+          }
+        case 234: break;
+        case 23:
+          { sb.append('\'');
+        if (sb.length() == 2) {
+            return invalidStringOrChar("Empty character literal");
+        } else if (sb.length() > 3) {
+            return invalidStringOrChar("Character literal with multiple chars");
+        }
+
+        return endStringOrChar(CHAR_LITERAL);
+          }
+        case 235: break;
+        case 95:
+          { return newToken(END_PARAMETER_DIRECTIVE);
+          }
+        case 236: break;
+        case 98:
+          { return newToken(INSTRUCTION_FORMAT21c_TYPE);
+          }
+        case 237: break;
+        case 39:
+          { sb.append('\f');
+          }
+        case 238: break;
+        case 130:
+          { return newToken(END_SPARSE_SWITCH_DIRECTIVE);
+          }
+        case 239: break;
+        case 101:
+          { return newToken(ARRAY_DATA_DIRECTIVE);
+          }
+        case 240: break;
+        case 136:
+          { return newToken(INSTRUCTION_FORMAT3rc_TYPE);
+          }
+        case 241: break;
+        case 91:
+          { return newToken(INSTRUCTION_FORMAT22cs_FIELD);
+          }
+        case 242: break;
+        case 26:
+          { return newToken(BYTE_LITERAL);
+          }
+        case 243: break;
+        case 58:
+          { return newToken(NULL_LITERAL);
+          }
+        case 244: break;
+        case 107:
+          { return newToken(INSTRUCTION_FORMAT21ih);
+          }
+        case 245: break;
+        case 132:
+          { return newToken(INSTRUCTION_FORMAT31c);
+          }
+        case 246: break;
+        case 35:
+          { return newToken(ARRAY_DESCRIPTOR);
+          }
+        case 247: break;
+        case 57:
+          { return newToken(INSTRUCTION_FORMAT12x_OR_ID);
+          }
+        case 248: break;
+        case 120:
+          { return newToken(INSTRUCTION_FORMAT35mi_METHOD);
+          }
+        case 249: break;
+        case 78:
+          { return newToken(INSTRUCTION_FORMAT11n);
+          }
+        case 250: break;
+        case 134:
+          { return newToken(INSTRUCTION_FORMAT10x_ODEX);
+          }
+        case 251: break;
+        case 88:
+          { return newToken(EPILOGUE_DIRECTIVE);
+          }
+        case 252: break;
+        case 118:
+          { return newToken(PACKED_SWITCH_DIRECTIVE);
+          }
+        case 253: break;
+        case 22:
+          { return invalidStringOrChar("Unterminated string literal");
+          }
+        case 254: break;
+        case 125:
+          { return newToken(INSTRUCTION_FORMAT21lh);
+          }
+        case 255: break;
+        case 48:
+          { return newToken(FLOAT_LITERAL);
+          }
+        case 256: break;
+        case 105:
+          { return newToken(INSTRUCTION_FORMAT35c_METHOD);
+          }
+        case 257: break;
+        case 20:
+          { sb.append(yytext());
+          }
+        case 258: break;
+        case 75:
+          { return newToken(LOCALS_DIRECTIVE);
+          }
+        case 259: break;
+        case 126:
+          { return newToken(INSTRUCTION_FORMAT22c_STRING);
+          }
+        case 260: break;
+        case 83:
+          { return newToken(INSTRUCTION_FORMAT22s_OR_ID);
+          }
+        case 261: break;
+        case 24:
+          { return invalidStringOrChar("Unterminated character literal");
+          }
+        case 262: break;
+        case 121:
+          { return newToken(END_ARRAY_DATA_DIRECTIVE);
+          }
+        case 263: break;
+        case 102:
+          { return newToken(ANNOTATION_DIRECTIVE);
+          }
+        case 264: break;
+        case 15:
+          { return newToken(CLOSE_BRACE);
+          }
+        case 265: break;
+        case 131:
+          { return newToken(END_PACKED_SWITCH_DIRECTIVE);
+          }
+        case 266: break;
+        case 71:
+          { return newToken(LOCAL_DIRECTIVE);
+          }
+        case 267: break;
+        case 139:
+          { return newToken(INSTRUCTION_FORMAT20bc);
+          }
+        case 268: break;
+        case 128:
+          { return newToken(INSTRUCTION_FORMAT3rc_METHOD);
+          }
+        case 269: break;
+        case 42:
+          { sb.append('\n');
+          }
+        case 270: break;
+        case 56:
+          { return newToken(ACCESS_SPEC);
+          }
+        case 271: break;
+        case 52:
+          { return newToken(MEMBER_NAME);
+          }
+        case 272: break;
+        case 3:
+          { return newToken(SIMPLE_NAME);
+          }
+        case 273: break;
+        case 7:
+          { beginStringOrChar(STRING); sb.append('"');
+          }
+        case 274: break;
+        case 14:
+          { return newToken(OPEN_BRACE);
+          }
+        case 275: break;
+        case 25:
+          { return newToken(FLOAT_LITERAL_OR_ID);
+          }
+        case 276: break;
+        case 55:
+          { return newToken(INSTRUCTION_FORMAT21c_FIELD);
+          }
+        case 277: break;
+        case 65:
+          { return newToken(INSTRUCTION_FORMAT31i_OR_ID);
+          }
+        case 278: break;
+        default:
+          if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
+            zzAtEOF = true;
+            switch (zzLexicalState) {
+            case STRING: {
+              return invalidStringOrChar("Unterminated string literal");
+            }
+            case 1238: break;
+            case PARAM_LIST_OR_ID: {
+              yybegin(YYINITIAL); return newToken(PARAM_LIST_OR_ID_END);
+            }
+            case 1239: break;
+            case YYINITIAL: {
+              return newToken(EOF);
+            }
+            case 1240: break;
+            case CHAR: {
+              return invalidStringOrChar("Unterminated character literal");
+            }
+            case 1241: break;
+            case PARAM_LIST: {
+              yybegin(YYINITIAL); return newToken(PARAM_LIST_END);
+            }
+            case 1242: break;
+            default:
+            return null;
+            }
+          }
+          else {
+            zzScanError(ZZ_NO_MATCH);
+          }
+      }
+    }
+  }
+
+
+}
diff --git a/smali/src/main/java/org/jf/smali/smaliParser.java b/smali/src/main/java/org/jf/smali/smaliParser.java
new file mode 100644
index 0000000..f59f35a
--- /dev/null
+++ b/smali/src/main/java/org/jf/smali/smaliParser.java
@@ -0,0 +1,15829 @@
+// $ANTLR 3.5 /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g 2015-04-23 12:35:16
+
+package org.jf.smali;
+
+import org.jf.dexlib2.Format;
+import org.jf.dexlib2.Opcode;
+import org.jf.dexlib2.Opcodes;
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+import org.antlr.runtime.tree.*;
+
+
+@SuppressWarnings("all")
+public class smaliParser extends Parser {
+	public static final String[] tokenNames = new String[] {
+		"<invalid>", "<EOR>", "<DOWN>", "<UP>", "ACCESS_SPEC", "ANNOTATION_DIRECTIVE",
+		"ANNOTATION_VISIBILITY", "ARRAY_DATA_DIRECTIVE", "ARRAY_DESCRIPTOR", "ARROW",
+		"BOOL_LITERAL", "BYTE_LITERAL", "CATCHALL_DIRECTIVE", "CATCH_DIRECTIVE",
+		"CHAR_LITERAL", "CLASS_DESCRIPTOR", "CLASS_DIRECTIVE", "CLOSE_BRACE",
+		"CLOSE_PAREN", "COLON", "COMMA", "DOTDOT", "DOUBLE_LITERAL", "DOUBLE_LITERAL_OR_ID",
+		"END_ANNOTATION_DIRECTIVE", "END_ARRAY_DATA_DIRECTIVE", "END_FIELD_DIRECTIVE",
+		"END_LOCAL_DIRECTIVE", "END_METHOD_DIRECTIVE", "END_PACKED_SWITCH_DIRECTIVE",
+		"END_PARAMETER_DIRECTIVE", "END_SPARSE_SWITCH_DIRECTIVE", "END_SUBANNOTATION_DIRECTIVE",
+		"ENUM_DIRECTIVE", "EPILOGUE_DIRECTIVE", "EQUAL", "FIELD_DIRECTIVE", "FIELD_OFFSET",
+		"FLOAT_LITERAL", "FLOAT_LITERAL_OR_ID", "IMPLEMENTS_DIRECTIVE", "INLINE_INDEX",
+		"INSTRUCTION_FORMAT10t", "INSTRUCTION_FORMAT10x", "INSTRUCTION_FORMAT10x_ODEX",
+		"INSTRUCTION_FORMAT11n", "INSTRUCTION_FORMAT11x", "INSTRUCTION_FORMAT12x",
+		"INSTRUCTION_FORMAT12x_OR_ID", "INSTRUCTION_FORMAT20bc", "INSTRUCTION_FORMAT20t",
+		"INSTRUCTION_FORMAT21c_FIELD", "INSTRUCTION_FORMAT21c_FIELD_ODEX", "INSTRUCTION_FORMAT21c_LAMBDA",
+		"INSTRUCTION_FORMAT21c_METHOD", "INSTRUCTION_FORMAT21c_STRING", "INSTRUCTION_FORMAT21c_TYPE",
+		"INSTRUCTION_FORMAT21ih", "INSTRUCTION_FORMAT21lh", "INSTRUCTION_FORMAT21s",
+		"INSTRUCTION_FORMAT21t", "INSTRUCTION_FORMAT22b", "INSTRUCTION_FORMAT22c_FIELD",
+		"INSTRUCTION_FORMAT22c_FIELD_ODEX", "INSTRUCTION_FORMAT22c_STRING", "INSTRUCTION_FORMAT22c_TYPE",
+		"INSTRUCTION_FORMAT22cs_FIELD", "INSTRUCTION_FORMAT22s", "INSTRUCTION_FORMAT22s_OR_ID",
+		"INSTRUCTION_FORMAT22t", "INSTRUCTION_FORMAT22x", "INSTRUCTION_FORMAT23x",
+		"INSTRUCTION_FORMAT25x", "INSTRUCTION_FORMAT30t", "INSTRUCTION_FORMAT31c",
+		"INSTRUCTION_FORMAT31i", "INSTRUCTION_FORMAT31i_OR_ID", "INSTRUCTION_FORMAT31t",
+		"INSTRUCTION_FORMAT32x", "INSTRUCTION_FORMAT35c_METHOD", "INSTRUCTION_FORMAT35c_METHOD_ODEX",
+		"INSTRUCTION_FORMAT35c_TYPE", "INSTRUCTION_FORMAT35mi_METHOD", "INSTRUCTION_FORMAT35ms_METHOD",
+		"INSTRUCTION_FORMAT3rc_METHOD", "INSTRUCTION_FORMAT3rc_METHOD_ODEX", "INSTRUCTION_FORMAT3rc_TYPE",
+		"INSTRUCTION_FORMAT3rmi_METHOD", "INSTRUCTION_FORMAT3rms_METHOD", "INSTRUCTION_FORMAT51l",
+		"INTEGER_LITERAL", "INVALID_TOKEN", "I_ACCESS_LIST", "I_ANNOTATION", "I_ANNOTATIONS",
+		"I_ANNOTATION_ELEMENT", "I_ARRAY_ELEMENTS", "I_ARRAY_ELEMENT_SIZE", "I_CATCH",
+		"I_CATCHALL", "I_CATCHES", "I_CLASS_DEF", "I_ENCODED_ARRAY", "I_ENCODED_ENUM",
+		"I_ENCODED_FIELD", "I_ENCODED_METHOD", "I_END_LOCAL", "I_EPILOGUE", "I_FIELD",
+		"I_FIELDS", "I_FIELD_INITIAL_VALUE", "I_FIELD_TYPE", "I_IMPLEMENTS", "I_LABEL",
+		"I_LINE", "I_LOCAL", "I_LOCALS", "I_METHOD", "I_METHODS", "I_METHOD_PROTOTYPE",
+		"I_METHOD_RETURN_TYPE", "I_ORDERED_METHOD_ITEMS", "I_PACKED_SWITCH_ELEMENTS",
+		"I_PACKED_SWITCH_START_KEY", "I_PARAMETER", "I_PARAMETERS", "I_PARAMETER_NOT_SPECIFIED",
+		"I_PROLOGUE", "I_REGISTERS", "I_REGISTER_LIST", "I_REGISTER_RANGE", "I_RESTART_LOCAL",
+		"I_SOURCE", "I_SPARSE_SWITCH_ELEMENTS", "I_STATEMENT_ARRAY_DATA", "I_STATEMENT_FORMAT10t",
+		"I_STATEMENT_FORMAT10x", "I_STATEMENT_FORMAT11n", "I_STATEMENT_FORMAT11x",
+		"I_STATEMENT_FORMAT12x", "I_STATEMENT_FORMAT20bc", "I_STATEMENT_FORMAT20t",
+		"I_STATEMENT_FORMAT21c_FIELD", "I_STATEMENT_FORMAT21c_LAMBDA", "I_STATEMENT_FORMAT21c_METHOD",
+		"I_STATEMENT_FORMAT21c_STRING", "I_STATEMENT_FORMAT21c_TYPE", "I_STATEMENT_FORMAT21ih",
+		"I_STATEMENT_FORMAT21lh", "I_STATEMENT_FORMAT21s", "I_STATEMENT_FORMAT21t",
+		"I_STATEMENT_FORMAT22b", "I_STATEMENT_FORMAT22c_FIELD", "I_STATEMENT_FORMAT22c_STRING",
+		"I_STATEMENT_FORMAT22c_TYPE", "I_STATEMENT_FORMAT22s", "I_STATEMENT_FORMAT22t",
+		"I_STATEMENT_FORMAT22x", "I_STATEMENT_FORMAT23x", "I_STATEMENT_FORMAT25x",
+		"I_STATEMENT_FORMAT30t", "I_STATEMENT_FORMAT31c", "I_STATEMENT_FORMAT31i",
+		"I_STATEMENT_FORMAT31t", "I_STATEMENT_FORMAT32x", "I_STATEMENT_FORMAT35c_METHOD",
+		"I_STATEMENT_FORMAT35c_TYPE", "I_STATEMENT_FORMAT3rc_METHOD", "I_STATEMENT_FORMAT3rc_TYPE",
+		"I_STATEMENT_FORMAT51l", "I_STATEMENT_PACKED_SWITCH", "I_STATEMENT_SPARSE_SWITCH",
+		"I_SUBANNOTATION", "I_SUPER", "LINE_COMMENT", "LINE_DIRECTIVE", "LOCALS_DIRECTIVE",
+		"LOCAL_DIRECTIVE", "LONG_LITERAL", "MEMBER_NAME", "METHOD_DIRECTIVE",
+		"NEGATIVE_INTEGER_LITERAL", "NULL_LITERAL", "OPEN_BRACE", "OPEN_PAREN",
+		"PACKED_SWITCH_DIRECTIVE", "PARAMETER_DIRECTIVE", "PARAM_LIST_END", "PARAM_LIST_OR_ID_END",
+		"PARAM_LIST_OR_ID_START", "PARAM_LIST_START", "POSITIVE_INTEGER_LITERAL",
+		"PRIMITIVE_TYPE", "PROLOGUE_DIRECTIVE", "REGISTER", "REGISTERS_DIRECTIVE",
+		"RESTART_LOCAL_DIRECTIVE", "SHORT_LITERAL", "SIMPLE_NAME", "SOURCE_DIRECTIVE",
+		"SPARSE_SWITCH_DIRECTIVE", "STRING_LITERAL", "SUBANNOTATION_DIRECTIVE",
+		"SUPER_DIRECTIVE", "VERIFICATION_ERROR_TYPE", "VOID_TYPE", "VTABLE_INDEX",
+		"WHITE_SPACE"
+	};
+	public static final int EOF=-1;
+	public static final int ACCESS_SPEC=4;
+	public static final int ANNOTATION_DIRECTIVE=5;
+	public static final int ANNOTATION_VISIBILITY=6;
+	public static final int ARRAY_DATA_DIRECTIVE=7;
+	public static final int ARRAY_DESCRIPTOR=8;
+	public static final int ARROW=9;
+	public static final int BOOL_LITERAL=10;
+	public static final int BYTE_LITERAL=11;
+	public static final int CATCHALL_DIRECTIVE=12;
+	public static final int CATCH_DIRECTIVE=13;
+	public static final int CHAR_LITERAL=14;
+	public static final int CLASS_DESCRIPTOR=15;
+	public static final int CLASS_DIRECTIVE=16;
+	public static final int CLOSE_BRACE=17;
+	public static final int CLOSE_PAREN=18;
+	public static final int COLON=19;
+	public static final int COMMA=20;
+	public static final int DOTDOT=21;
+	public static final int DOUBLE_LITERAL=22;
+	public static final int DOUBLE_LITERAL_OR_ID=23;
+	public static final int END_ANNOTATION_DIRECTIVE=24;
+	public static final int END_ARRAY_DATA_DIRECTIVE=25;
+	public static final int END_FIELD_DIRECTIVE=26;
+	public static final int END_LOCAL_DIRECTIVE=27;
+	public static final int END_METHOD_DIRECTIVE=28;
+	public static final int END_PACKED_SWITCH_DIRECTIVE=29;
+	public static final int END_PARAMETER_DIRECTIVE=30;
+	public static final int END_SPARSE_SWITCH_DIRECTIVE=31;
+	public static final int END_SUBANNOTATION_DIRECTIVE=32;
+	public static final int ENUM_DIRECTIVE=33;
+	public static final int EPILOGUE_DIRECTIVE=34;
+	public static final int EQUAL=35;
+	public static final int FIELD_DIRECTIVE=36;
+	public static final int FIELD_OFFSET=37;
+	public static final int FLOAT_LITERAL=38;
+	public static final int FLOAT_LITERAL_OR_ID=39;
+	public static final int IMPLEMENTS_DIRECTIVE=40;
+	public static final int INLINE_INDEX=41;
+	public static final int INSTRUCTION_FORMAT10t=42;
+	public static final int INSTRUCTION_FORMAT10x=43;
+	public static final int INSTRUCTION_FORMAT10x_ODEX=44;
+	public static final int INSTRUCTION_FORMAT11n=45;
+	public static final int INSTRUCTION_FORMAT11x=46;
+	public static final int INSTRUCTION_FORMAT12x=47;
+	public static final int INSTRUCTION_FORMAT12x_OR_ID=48;
+	public static final int INSTRUCTION_FORMAT20bc=49;
+	public static final int INSTRUCTION_FORMAT20t=50;
+	public static final int INSTRUCTION_FORMAT21c_FIELD=51;
+	public static final int INSTRUCTION_FORMAT21c_FIELD_ODEX=52;
+	public static final int INSTRUCTION_FORMAT21c_LAMBDA=53;
+	public static final int INSTRUCTION_FORMAT21c_METHOD=54;
+	public static final int INSTRUCTION_FORMAT21c_STRING=55;
+	public static final int INSTRUCTION_FORMAT21c_TYPE=56;
+	public static final int INSTRUCTION_FORMAT21ih=57;
+	public static final int INSTRUCTION_FORMAT21lh=58;
+	public static final int INSTRUCTION_FORMAT21s=59;
+	public static final int INSTRUCTION_FORMAT21t=60;
+	public static final int INSTRUCTION_FORMAT22b=61;
+	public static final int INSTRUCTION_FORMAT22c_FIELD=62;
+	public static final int INSTRUCTION_FORMAT22c_FIELD_ODEX=63;
+	public static final int INSTRUCTION_FORMAT22c_STRING=64;
+	public static final int INSTRUCTION_FORMAT22c_TYPE=65;
+	public static final int INSTRUCTION_FORMAT22cs_FIELD=66;
+	public static final int INSTRUCTION_FORMAT22s=67;
+	public static final int INSTRUCTION_FORMAT22s_OR_ID=68;
+	public static final int INSTRUCTION_FORMAT22t=69;
+	public static final int INSTRUCTION_FORMAT22x=70;
+	public static final int INSTRUCTION_FORMAT23x=71;
+	public static final int INSTRUCTION_FORMAT25x=72;
+	public static final int INSTRUCTION_FORMAT30t=73;
+	public static final int INSTRUCTION_FORMAT31c=74;
+	public static final int INSTRUCTION_FORMAT31i=75;
+	public static final int INSTRUCTION_FORMAT31i_OR_ID=76;
+	public static final int INSTRUCTION_FORMAT31t=77;
+	public static final int INSTRUCTION_FORMAT32x=78;
+	public static final int INSTRUCTION_FORMAT35c_METHOD=79;
+	public static final int INSTRUCTION_FORMAT35c_METHOD_ODEX=80;
+	public static final int INSTRUCTION_FORMAT35c_TYPE=81;
+	public static final int INSTRUCTION_FORMAT35mi_METHOD=82;
+	public static final int INSTRUCTION_FORMAT35ms_METHOD=83;
+	public static final int INSTRUCTION_FORMAT3rc_METHOD=84;
+	public static final int INSTRUCTION_FORMAT3rc_METHOD_ODEX=85;
+	public static final int INSTRUCTION_FORMAT3rc_TYPE=86;
+	public static final int INSTRUCTION_FORMAT3rmi_METHOD=87;
+	public static final int INSTRUCTION_FORMAT3rms_METHOD=88;
+	public static final int INSTRUCTION_FORMAT51l=89;
+	public static final int INTEGER_LITERAL=90;
+	public static final int INVALID_TOKEN=91;
+	public static final int I_ACCESS_LIST=92;
+	public static final int I_ANNOTATION=93;
+	public static final int I_ANNOTATIONS=94;
+	public static final int I_ANNOTATION_ELEMENT=95;
+	public static final int I_ARRAY_ELEMENTS=96;
+	public static final int I_ARRAY_ELEMENT_SIZE=97;
+	public static final int I_CATCH=98;
+	public static final int I_CATCHALL=99;
+	public static final int I_CATCHES=100;
+	public static final int I_CLASS_DEF=101;
+	public static final int I_ENCODED_ARRAY=102;
+	public static final int I_ENCODED_ENUM=103;
+	public static final int I_ENCODED_FIELD=104;
+	public static final int I_ENCODED_METHOD=105;
+	public static final int I_END_LOCAL=106;
+	public static final int I_EPILOGUE=107;
+	public static final int I_FIELD=108;
+	public static final int I_FIELDS=109;
+	public static final int I_FIELD_INITIAL_VALUE=110;
+	public static final int I_FIELD_TYPE=111;
+	public static final int I_IMPLEMENTS=112;
+	public static final int I_LABEL=113;
+	public static final int I_LINE=114;
+	public static final int I_LOCAL=115;
+	public static final int I_LOCALS=116;
+	public static final int I_METHOD=117;
+	public static final int I_METHODS=118;
+	public static final int I_METHOD_PROTOTYPE=119;
+	public static final int I_METHOD_RETURN_TYPE=120;
+	public static final int I_ORDERED_METHOD_ITEMS=121;
+	public static final int I_PACKED_SWITCH_ELEMENTS=122;
+	public static final int I_PACKED_SWITCH_START_KEY=123;
+	public static final int I_PARAMETER=124;
+	public static final int I_PARAMETERS=125;
+	public static final int I_PARAMETER_NOT_SPECIFIED=126;
+	public static final int I_PROLOGUE=127;
+	public static final int I_REGISTERS=128;
+	public static final int I_REGISTER_LIST=129;
+	public static final int I_REGISTER_RANGE=130;
+	public static final int I_RESTART_LOCAL=131;
+	public static final int I_SOURCE=132;
+	public static final int I_SPARSE_SWITCH_ELEMENTS=133;
+	public static final int I_STATEMENT_ARRAY_DATA=134;
+	public static final int I_STATEMENT_FORMAT10t=135;
+	public static final int I_STATEMENT_FORMAT10x=136;
+	public static final int I_STATEMENT_FORMAT11n=137;
+	public static final int I_STATEMENT_FORMAT11x=138;
+	public static final int I_STATEMENT_FORMAT12x=139;
+	public static final int I_STATEMENT_FORMAT20bc=140;
+	public static final int I_STATEMENT_FORMAT20t=141;
+	public static final int I_STATEMENT_FORMAT21c_FIELD=142;
+	public static final int I_STATEMENT_FORMAT21c_LAMBDA=143;
+	public static final int I_STATEMENT_FORMAT21c_METHOD=144;
+	public static final int I_STATEMENT_FORMAT21c_STRING=145;
+	public static final int I_STATEMENT_FORMAT21c_TYPE=146;
+	public static final int I_STATEMENT_FORMAT21ih=147;
+	public static final int I_STATEMENT_FORMAT21lh=148;
+	public static final int I_STATEMENT_FORMAT21s=149;
+	public static final int I_STATEMENT_FORMAT21t=150;
+	public static final int I_STATEMENT_FORMAT22b=151;
+	public static final int I_STATEMENT_FORMAT22c_FIELD=152;
+	public static final int I_STATEMENT_FORMAT22c_STRING=153;
+	public static final int I_STATEMENT_FORMAT22c_TYPE=154;
+	public static final int I_STATEMENT_FORMAT22s=155;
+	public static final int I_STATEMENT_FORMAT22t=156;
+	public static final int I_STATEMENT_FORMAT22x=157;
+	public static final int I_STATEMENT_FORMAT23x=158;
+	public static final int I_STATEMENT_FORMAT25x=159;
+	public static final int I_STATEMENT_FORMAT30t=160;
+	public static final int I_STATEMENT_FORMAT31c=161;
+	public static final int I_STATEMENT_FORMAT31i=162;
+	public static final int I_STATEMENT_FORMAT31t=163;
+	public static final int I_STATEMENT_FORMAT32x=164;
+	public static final int I_STATEMENT_FORMAT35c_METHOD=165;
+	public static final int I_STATEMENT_FORMAT35c_TYPE=166;
+	public static final int I_STATEMENT_FORMAT3rc_METHOD=167;
+	public static final int I_STATEMENT_FORMAT3rc_TYPE=168;
+	public static final int I_STATEMENT_FORMAT51l=169;
+	public static final int I_STATEMENT_PACKED_SWITCH=170;
+	public static final int I_STATEMENT_SPARSE_SWITCH=171;
+	public static final int I_SUBANNOTATION=172;
+	public static final int I_SUPER=173;
+	public static final int LINE_COMMENT=174;
+	public static final int LINE_DIRECTIVE=175;
+	public static final int LOCALS_DIRECTIVE=176;
+	public static final int LOCAL_DIRECTIVE=177;
+	public static final int LONG_LITERAL=178;
+	public static final int MEMBER_NAME=179;
+	public static final int METHOD_DIRECTIVE=180;
+	public static final int NEGATIVE_INTEGER_LITERAL=181;
+	public static final int NULL_LITERAL=182;
+	public static final int OPEN_BRACE=183;
+	public static final int OPEN_PAREN=184;
+	public static final int PACKED_SWITCH_DIRECTIVE=185;
+	public static final int PARAMETER_DIRECTIVE=186;
+	public static final int PARAM_LIST_END=187;
+	public static final int PARAM_LIST_OR_ID_END=188;
+	public static final int PARAM_LIST_OR_ID_START=189;
+	public static final int PARAM_LIST_START=190;
+	public static final int POSITIVE_INTEGER_LITERAL=191;
+	public static final int PRIMITIVE_TYPE=192;
+	public static final int PROLOGUE_DIRECTIVE=193;
+	public static final int REGISTER=194;
+	public static final int REGISTERS_DIRECTIVE=195;
+	public static final int RESTART_LOCAL_DIRECTIVE=196;
+	public static final int SHORT_LITERAL=197;
+	public static final int SIMPLE_NAME=198;
+	public static final int SOURCE_DIRECTIVE=199;
+	public static final int SPARSE_SWITCH_DIRECTIVE=200;
+	public static final int STRING_LITERAL=201;
+	public static final int SUBANNOTATION_DIRECTIVE=202;
+	public static final int SUPER_DIRECTIVE=203;
+	public static final int VERIFICATION_ERROR_TYPE=204;
+	public static final int VOID_TYPE=205;
+	public static final int VTABLE_INDEX=206;
+	public static final int WHITE_SPACE=207;
+
+	// delegates
+	public Parser[] getDelegates() {
+		return new Parser[] {};
+	}
+
+	// delegators
+
+
+	public smaliParser(TokenStream input) {
+		this(input, new RecognizerSharedState());
+	}
+	public smaliParser(TokenStream input, RecognizerSharedState state) {
+		super(input, state);
+	}
+
+	protected TreeAdaptor adaptor = new CommonTreeAdaptor();
+
+	public void setTreeAdaptor(TreeAdaptor adaptor) {
+		this.adaptor = adaptor;
+	}
+	public TreeAdaptor getTreeAdaptor() {
+		return adaptor;
+	}
+	@Override public String[] getTokenNames() { return smaliParser.tokenNames; }
+	@Override public String getGrammarFileName() { return "/mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g"; }
+
+
+	  public static final int ERROR_CHANNEL = 100;
+
+	  private boolean verboseErrors = false;
+	  private boolean allowOdex = false;
+	  private int apiLevel = 15;
+	  private Opcodes opcodes = new Opcodes(apiLevel, false);
+
+	  public void setVerboseErrors(boolean verboseErrors) {
+	    this.verboseErrors = verboseErrors;
+	  }
+
+	  public void setAllowOdex(boolean allowOdex) {
+	      this.allowOdex = allowOdex;
+	  }
+
+	  public void setApiLevel(int apiLevel, boolean experimental) {
+	      this.opcodes = new Opcodes(apiLevel, experimental);
+	      this.apiLevel = apiLevel;
+	  }
+
+	  public String getErrorMessage(RecognitionException e,
+	    String[] tokenNames) {
+
+	    if (verboseErrors) {
+	      List stack = getRuleInvocationStack(e, this.getClass().getName());
+	      String msg = null;
+
+	      if (e instanceof NoViableAltException) {
+	        NoViableAltException nvae = (NoViableAltException)e;
+	        msg = " no viable alt; token="+getTokenErrorDisplay(e.token)+
+	        " (decision="+nvae.decisionNumber+
+	        " state "+nvae.stateNumber+")"+
+	        " decision=<<"+nvae.grammarDecisionDescription+">>";
+	      } else {
+	        msg = super.getErrorMessage(e, tokenNames);
+	      }
+
+	      return stack + " " + msg;
+	    } else {
+	      return super.getErrorMessage(e, tokenNames);
+	    }
+	  }
+
+	  public String getTokenErrorDisplay(Token t) {
+	    if (!verboseErrors) {
+	      String s = t.getText();
+	      if ( s==null ) {
+	        if ( t.getType()==Token.EOF ) {
+	          s = "<EOF>";
+	        }
+	        else {
+	          s = "<"+tokenNames[t.getType()]+">";
+	        }
+	      }
+	      s = s.replaceAll("\n","\\\\n");
+	      s = s.replaceAll("\r","\\\\r");
+	      s = s.replaceAll("\t","\\\\t");
+	      return "'"+s+"'";
+	    }
+
+	    CommonToken ct = (CommonToken)t;
+
+	    String channelStr = "";
+	    if (t.getChannel()>0) {
+	      channelStr=",channel="+t.getChannel();
+	    }
+	    String txt = t.getText();
+	    if ( txt!=null ) {
+	      txt = txt.replaceAll("\n","\\\\n");
+	      txt = txt.replaceAll("\r","\\\\r");
+	      txt = txt.replaceAll("\t","\\\\t");
+	    }
+	    else {
+	      txt = "<no text>";
+	    }
+	    return "[@"+t.getTokenIndex()+","+ct.getStartIndex()+":"+ct.getStopIndex()+"='"+txt+"',<"+tokenNames[t.getType()]+">"+channelStr+","+t.getLine()+":"+t.getCharPositionInLine()+"]";
+	  }
+
+	  public String getErrorHeader(RecognitionException e) {
+	    return getSourceName()+"["+ e.line+","+e.charPositionInLine+"]";
+	  }
+
+	  private CommonTree buildTree(int type, String text, List<CommonTree> children) {
+	    CommonTree root = new CommonTree(new CommonToken(type, text));
+	    for (CommonTree child: children) {
+	      root.addChild(child);
+	    }
+	    return root;
+	  }
+
+	  private CommonToken getParamListSubToken(CommonToken baseToken, String str, int typeStartIndex) {
+	    CommonToken token = new CommonToken(baseToken);
+	    token.setStartIndex(baseToken.getStartIndex() + typeStartIndex);
+
+	    switch (str.charAt(typeStartIndex)) {
+	      case 'Z':
+	      case 'B':
+	      case 'S':
+	      case 'C':
+	      case 'I':
+	      case 'J':
+	      case 'F':
+	      case 'D':
+	      {
+	        token.setType(PRIMITIVE_TYPE);
+	        token.setText(str.substring(typeStartIndex, typeStartIndex+1));
+	        token.setStopIndex(baseToken.getStartIndex() + typeStartIndex);
+	        break;
+	      }
+	      case 'L':
+	      {
+	        int i = typeStartIndex;
+	        while (str.charAt(++i) != ';');
+
+	        token.setType(CLASS_DESCRIPTOR);
+	        token.setText(str.substring(typeStartIndex, i + 1));
+	        token.setStopIndex(baseToken.getStartIndex() + i);
+	        break;
+	      }
+	      case '[':
+	      {
+	        int i = typeStartIndex;
+	            while (str.charAt(++i) == '[');
+
+	            if (str.charAt(i++) == 'L') {
+	                while (str.charAt(i++) != ';');
+	        }
+
+	            token.setType(ARRAY_DESCRIPTOR);
+	            token.setText(str.substring(typeStartIndex, i));
+	            token.setStopIndex(baseToken.getStartIndex() + i - 1);
+	            break;
+	      }
+	      default:
+	        throw new RuntimeException(String.format("Invalid character '%c' in param list \"%s\" at position %d", str.charAt(typeStartIndex), str, typeStartIndex));
+	    }
+
+	    return token;
+	  }
+
+	  private CommonTree parseParamList(CommonToken paramListToken) {
+	    String paramList = paramListToken.getText();
+	    CommonTree root = new CommonTree();
+
+	    int startIndex = paramListToken.getStartIndex();
+
+	    int i=0;
+	    while (i<paramList.length()) {
+	      CommonToken token = getParamListSubToken(paramListToken, paramList, i);
+	      root.addChild(new CommonTree(token));
+	      i += token.getText().length();
+	    }
+
+	    if (root.getChildCount() == 0) {
+	      return null;
+	    }
+	    return root;
+	  }
+
+	  private void throwOdexedInstructionException(IntStream input, String odexedInstruction)
+	      throws OdexedInstructionException {
+	    /*this has to be done in a separate method, otherwise java will complain about the
+	    auto-generated code in the rule after the throw not being reachable*/
+	    throw new OdexedInstructionException(input, odexedInstruction);
+	  }
+
+
+	protected static class smali_file_scope {
+		boolean hasClassSpec;
+		boolean hasSuperSpec;
+		boolean hasSourceSpec;
+		List<CommonTree> classAnnotations;
+	}
+	protected Stack<smali_file_scope> smali_file_stack = new Stack<smali_file_scope>();
+
+	public static class smali_file_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "smali_file"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:426:1: smali_file : ({...}? => class_spec |{...}? => super_spec | implements_spec |{...}? => source_spec | method | field | annotation )+ EOF -> ^( I_CLASS_DEF class_spec ( super_spec )? ( implements_spec )* ( source_spec )? ^( I_METHODS ( method )* ) ^( I_FIELDS ( field )* ) ) ;
+	public final smaliParser.smali_file_return smali_file() throws RecognitionException {
+		smali_file_stack.push(new smali_file_scope());
+		smaliParser.smali_file_return retval = new smaliParser.smali_file_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token EOF8=null;
+		ParserRuleReturnScope class_spec1 =null;
+		ParserRuleReturnScope super_spec2 =null;
+		ParserRuleReturnScope implements_spec3 =null;
+		ParserRuleReturnScope source_spec4 =null;
+		ParserRuleReturnScope method5 =null;
+		ParserRuleReturnScope field6 =null;
+		ParserRuleReturnScope annotation7 =null;
+
+		CommonTree EOF8_tree=null;
+		RewriteRuleTokenStream stream_EOF=new RewriteRuleTokenStream(adaptor,"token EOF");
+		RewriteRuleSubtreeStream stream_field=new RewriteRuleSubtreeStream(adaptor,"rule field");
+		RewriteRuleSubtreeStream stream_annotation=new RewriteRuleSubtreeStream(adaptor,"rule annotation");
+		RewriteRuleSubtreeStream stream_super_spec=new RewriteRuleSubtreeStream(adaptor,"rule super_spec");
+		RewriteRuleSubtreeStream stream_implements_spec=new RewriteRuleSubtreeStream(adaptor,"rule implements_spec");
+		RewriteRuleSubtreeStream stream_source_spec=new RewriteRuleSubtreeStream(adaptor,"rule source_spec");
+		RewriteRuleSubtreeStream stream_method=new RewriteRuleSubtreeStream(adaptor,"rule method");
+		RewriteRuleSubtreeStream stream_class_spec=new RewriteRuleSubtreeStream(adaptor,"rule class_spec");
+
+		 smali_file_stack.peek().hasClassSpec = smali_file_stack.peek().hasSuperSpec = smali_file_stack.peek().hasSourceSpec = false;
+		    smali_file_stack.peek().classAnnotations = new ArrayList<CommonTree>();
+		
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:438:3: ( ({...}? => class_spec |{...}? => super_spec | implements_spec |{...}? => source_spec | method | field | annotation )+ EOF -> ^( I_CLASS_DEF class_spec ( super_spec )? ( implements_spec )* ( source_spec )? ^( I_METHODS ( method )* ) ^( I_FIELDS ( field )* ) ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:439:3: ({...}? => class_spec |{...}? => super_spec | implements_spec |{...}? => source_spec | method | field | annotation )+ EOF
+			{
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:439:3: ({...}? => class_spec |{...}? => super_spec | implements_spec |{...}? => source_spec | method | field | annotation )+
+			int cnt1=0;
+			loop1:
+			while (true) {
+				int alt1=8;
+				int LA1_0 = input.LA(1);
+				if ( (LA1_0==CLASS_DIRECTIVE) && ((!smali_file_stack.peek().hasClassSpec))) {
+					alt1=1;
+				}
+				else if ( (LA1_0==SUPER_DIRECTIVE) && ((!smali_file_stack.peek().hasSuperSpec))) {
+					alt1=2;
+				}
+				else if ( (LA1_0==IMPLEMENTS_DIRECTIVE) ) {
+					alt1=3;
+				}
+				else if ( (LA1_0==SOURCE_DIRECTIVE) && ((!smali_file_stack.peek().hasSourceSpec))) {
+					alt1=4;
+				}
+				else if ( (LA1_0==METHOD_DIRECTIVE) ) {
+					alt1=5;
+				}
+				else if ( (LA1_0==FIELD_DIRECTIVE) ) {
+					alt1=6;
+				}
+				else if ( (LA1_0==ANNOTATION_DIRECTIVE) ) {
+					alt1=7;
+				}
+
+				switch (alt1) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:439:5: {...}? => class_spec
+					{
+					if ( !((!smali_file_stack.peek().hasClassSpec)) ) {
+						throw new FailedPredicateException(input, "smali_file", "!$smali_file::hasClassSpec");
+					}
+					pushFollow(FOLLOW_class_spec_in_smali_file1110);
+					class_spec1=class_spec();
+					state._fsp--;
+
+					stream_class_spec.add(class_spec1.getTree());
+					smali_file_stack.peek().hasClassSpec = true;
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:440:5: {...}? => super_spec
+					{
+					if ( !((!smali_file_stack.peek().hasSuperSpec)) ) {
+						throw new FailedPredicateException(input, "smali_file", "!$smali_file::hasSuperSpec");
+					}
+					pushFollow(FOLLOW_super_spec_in_smali_file1121);
+					super_spec2=super_spec();
+					state._fsp--;
+
+					stream_super_spec.add(super_spec2.getTree());
+					smali_file_stack.peek().hasSuperSpec = true;
+					}
+					break;
+				case 3 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:441:5: implements_spec
+					{
+					pushFollow(FOLLOW_implements_spec_in_smali_file1129);
+					implements_spec3=implements_spec();
+					state._fsp--;
+
+					stream_implements_spec.add(implements_spec3.getTree());
+					}
+					break;
+				case 4 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:442:5: {...}? => source_spec
+					{
+					if ( !((!smali_file_stack.peek().hasSourceSpec)) ) {
+						throw new FailedPredicateException(input, "smali_file", "!$smali_file::hasSourceSpec");
+					}
+					pushFollow(FOLLOW_source_spec_in_smali_file1138);
+					source_spec4=source_spec();
+					state._fsp--;
+
+					stream_source_spec.add(source_spec4.getTree());
+					smali_file_stack.peek().hasSourceSpec = true;
+					}
+					break;
+				case 5 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:443:5: method
+					{
+					pushFollow(FOLLOW_method_in_smali_file1146);
+					method5=method();
+					state._fsp--;
+
+					stream_method.add(method5.getTree());
+					}
+					break;
+				case 6 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:444:5: field
+					{
+					pushFollow(FOLLOW_field_in_smali_file1152);
+					field6=field();
+					state._fsp--;
+
+					stream_field.add(field6.getTree());
+					}
+					break;
+				case 7 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:445:5: annotation
+					{
+					pushFollow(FOLLOW_annotation_in_smali_file1158);
+					annotation7=annotation();
+					state._fsp--;
+
+					stream_annotation.add(annotation7.getTree());
+					smali_file_stack.peek().classAnnotations.add((annotation7!=null?((CommonTree)annotation7.getTree()):null));
+					}
+					break;
+
+				default :
+					if ( cnt1 >= 1 ) break loop1;
+					EarlyExitException eee = new EarlyExitException(1, input);
+					throw eee;
+				}
+				cnt1++;
+			}
+
+			EOF8=(Token)match(input,EOF,FOLLOW_EOF_in_smali_file1169);
+			stream_EOF.add(EOF8);
+
+
+			    if (!smali_file_stack.peek().hasClassSpec) {
+			      throw new SemanticException(input, "The file must contain a .class directive");
+			    }
+
+			    if (!smali_file_stack.peek().hasSuperSpec) {
+			      if (!(class_spec1!=null?((smaliParser.class_spec_return)class_spec1).className:null).equals("Ljava/lang/Object;")) {
+			        throw new SemanticException(input, "The file must contain a .super directive");
+			      }
+			    }
+			
+			// AST REWRITE
+			// elements: field, source_spec, method, implements_spec, class_spec, super_spec
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 459:3: -> ^( I_CLASS_DEF class_spec ( super_spec )? ( implements_spec )* ( source_spec )? ^( I_METHODS ( method )* ) ^( I_FIELDS ( field )* ) )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:459:6: ^( I_CLASS_DEF class_spec ( super_spec )? ( implements_spec )* ( source_spec )? ^( I_METHODS ( method )* ) ^( I_FIELDS ( field )* ) )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_CLASS_DEF, "I_CLASS_DEF"), root_1);
+				adaptor.addChild(root_1, stream_class_spec.nextTree());
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:461:8: ( super_spec )?
+				if ( stream_super_spec.hasNext() ) {
+					adaptor.addChild(root_1, stream_super_spec.nextTree());
+				}
+				stream_super_spec.reset();
+
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:462:8: ( implements_spec )*
+				while ( stream_implements_spec.hasNext() ) {
+					adaptor.addChild(root_1, stream_implements_spec.nextTree());
+				}
+				stream_implements_spec.reset();
+
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:463:8: ( source_spec )?
+				if ( stream_source_spec.hasNext() ) {
+					adaptor.addChild(root_1, stream_source_spec.nextTree());
+				}
+				stream_source_spec.reset();
+
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:464:8: ^( I_METHODS ( method )* )
+				{
+				CommonTree root_2 = (CommonTree)adaptor.nil();
+				root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_METHODS, "I_METHODS"), root_2);
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:464:20: ( method )*
+				while ( stream_method.hasNext() ) {
+					adaptor.addChild(root_2, stream_method.nextTree());
+				}
+				stream_method.reset();
+
+				adaptor.addChild(root_1, root_2);
+				}
+
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:464:29: ^( I_FIELDS ( field )* )
+				{
+				CommonTree root_2 = (CommonTree)adaptor.nil();
+				root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_FIELDS, "I_FIELDS"), root_2);
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:464:40: ( field )*
+				while ( stream_field.hasNext() ) {
+					adaptor.addChild(root_2, stream_field.nextTree());
+				}
+				stream_field.reset();
+
+				adaptor.addChild(root_1, root_2);
+				}
+
+				adaptor.addChild(root_1, buildTree(I_ANNOTATIONS, "I_ANNOTATIONS", smali_file_stack.peek().classAnnotations));
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+			smali_file_stack.pop();
+		}
+		return retval;
+	}
+	// $ANTLR end "smali_file"
+
+
+	public static class class_spec_return extends ParserRuleReturnScope {
+		public String className;
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "class_spec"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:466:1: class_spec returns [String className] : CLASS_DIRECTIVE access_list CLASS_DESCRIPTOR -> CLASS_DESCRIPTOR access_list ;
+	public final smaliParser.class_spec_return class_spec() throws RecognitionException {
+		smaliParser.class_spec_return retval = new smaliParser.class_spec_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token CLASS_DIRECTIVE9=null;
+		Token CLASS_DESCRIPTOR11=null;
+		ParserRuleReturnScope access_list10 =null;
+
+		CommonTree CLASS_DIRECTIVE9_tree=null;
+		CommonTree CLASS_DESCRIPTOR11_tree=null;
+		RewriteRuleTokenStream stream_CLASS_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token CLASS_DIRECTIVE");
+		RewriteRuleTokenStream stream_CLASS_DESCRIPTOR=new RewriteRuleTokenStream(adaptor,"token CLASS_DESCRIPTOR");
+		RewriteRuleSubtreeStream stream_access_list=new RewriteRuleSubtreeStream(adaptor,"rule access_list");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:467:3: ( CLASS_DIRECTIVE access_list CLASS_DESCRIPTOR -> CLASS_DESCRIPTOR access_list )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:467:5: CLASS_DIRECTIVE access_list CLASS_DESCRIPTOR
+			{
+			CLASS_DIRECTIVE9=(Token)match(input,CLASS_DIRECTIVE,FOLLOW_CLASS_DIRECTIVE_in_class_spec1256);
+			stream_CLASS_DIRECTIVE.add(CLASS_DIRECTIVE9);
+
+			pushFollow(FOLLOW_access_list_in_class_spec1258);
+			access_list10=access_list();
+			state._fsp--;
+
+			stream_access_list.add(access_list10.getTree());
+			CLASS_DESCRIPTOR11=(Token)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_class_spec1260);
+			stream_CLASS_DESCRIPTOR.add(CLASS_DESCRIPTOR11);
+
+			retval.className = (CLASS_DESCRIPTOR11!=null?CLASS_DESCRIPTOR11.getText():null);
+			// AST REWRITE
+			// elements: CLASS_DESCRIPTOR, access_list
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 467:89: -> CLASS_DESCRIPTOR access_list
+			{
+				adaptor.addChild(root_0, stream_CLASS_DESCRIPTOR.nextNode());
+				adaptor.addChild(root_0, stream_access_list.nextTree());
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "class_spec"
+
+
+	public static class super_spec_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "super_spec"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:469:1: super_spec : SUPER_DIRECTIVE CLASS_DESCRIPTOR -> ^( I_SUPER[$start, \"I_SUPER\"] CLASS_DESCRIPTOR ) ;
+	public final smaliParser.super_spec_return super_spec() throws RecognitionException {
+		smaliParser.super_spec_return retval = new smaliParser.super_spec_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token SUPER_DIRECTIVE12=null;
+		Token CLASS_DESCRIPTOR13=null;
+
+		CommonTree SUPER_DIRECTIVE12_tree=null;
+		CommonTree CLASS_DESCRIPTOR13_tree=null;
+		RewriteRuleTokenStream stream_SUPER_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token SUPER_DIRECTIVE");
+		RewriteRuleTokenStream stream_CLASS_DESCRIPTOR=new RewriteRuleTokenStream(adaptor,"token CLASS_DESCRIPTOR");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:470:3: ( SUPER_DIRECTIVE CLASS_DESCRIPTOR -> ^( I_SUPER[$start, \"I_SUPER\"] CLASS_DESCRIPTOR ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:470:5: SUPER_DIRECTIVE CLASS_DESCRIPTOR
+			{
+			SUPER_DIRECTIVE12=(Token)match(input,SUPER_DIRECTIVE,FOLLOW_SUPER_DIRECTIVE_in_super_spec1278);
+			stream_SUPER_DIRECTIVE.add(SUPER_DIRECTIVE12);
+
+			CLASS_DESCRIPTOR13=(Token)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_super_spec1280);
+			stream_CLASS_DESCRIPTOR.add(CLASS_DESCRIPTOR13);
+
+			// AST REWRITE
+			// elements: CLASS_DESCRIPTOR
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 470:38: -> ^( I_SUPER[$start, \"I_SUPER\"] CLASS_DESCRIPTOR )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:470:41: ^( I_SUPER[$start, \"I_SUPER\"] CLASS_DESCRIPTOR )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_SUPER, (retval.start), "I_SUPER"), root_1);
+				adaptor.addChild(root_1, stream_CLASS_DESCRIPTOR.nextNode());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "super_spec"
+
+
+	public static class implements_spec_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "implements_spec"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:472:1: implements_spec : IMPLEMENTS_DIRECTIVE CLASS_DESCRIPTOR -> ^( I_IMPLEMENTS[$start, \"I_IMPLEMENTS\"] CLASS_DESCRIPTOR ) ;
+	public final smaliParser.implements_spec_return implements_spec() throws RecognitionException {
+		smaliParser.implements_spec_return retval = new smaliParser.implements_spec_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token IMPLEMENTS_DIRECTIVE14=null;
+		Token CLASS_DESCRIPTOR15=null;
+
+		CommonTree IMPLEMENTS_DIRECTIVE14_tree=null;
+		CommonTree CLASS_DESCRIPTOR15_tree=null;
+		RewriteRuleTokenStream stream_IMPLEMENTS_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token IMPLEMENTS_DIRECTIVE");
+		RewriteRuleTokenStream stream_CLASS_DESCRIPTOR=new RewriteRuleTokenStream(adaptor,"token CLASS_DESCRIPTOR");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:473:3: ( IMPLEMENTS_DIRECTIVE CLASS_DESCRIPTOR -> ^( I_IMPLEMENTS[$start, \"I_IMPLEMENTS\"] CLASS_DESCRIPTOR ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:473:5: IMPLEMENTS_DIRECTIVE CLASS_DESCRIPTOR
+			{
+			IMPLEMENTS_DIRECTIVE14=(Token)match(input,IMPLEMENTS_DIRECTIVE,FOLLOW_IMPLEMENTS_DIRECTIVE_in_implements_spec1299);
+			stream_IMPLEMENTS_DIRECTIVE.add(IMPLEMENTS_DIRECTIVE14);
+
+			CLASS_DESCRIPTOR15=(Token)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_implements_spec1301);
+			stream_CLASS_DESCRIPTOR.add(CLASS_DESCRIPTOR15);
+
+			// AST REWRITE
+			// elements: CLASS_DESCRIPTOR
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 473:43: -> ^( I_IMPLEMENTS[$start, \"I_IMPLEMENTS\"] CLASS_DESCRIPTOR )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:473:46: ^( I_IMPLEMENTS[$start, \"I_IMPLEMENTS\"] CLASS_DESCRIPTOR )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_IMPLEMENTS, (retval.start), "I_IMPLEMENTS"), root_1);
+				adaptor.addChild(root_1, stream_CLASS_DESCRIPTOR.nextNode());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "implements_spec"
+
+
+	public static class source_spec_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "source_spec"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:475:1: source_spec : SOURCE_DIRECTIVE STRING_LITERAL -> ^( I_SOURCE[$start, \"I_SOURCE\"] STRING_LITERAL ) ;
+	public final smaliParser.source_spec_return source_spec() throws RecognitionException {
+		smaliParser.source_spec_return retval = new smaliParser.source_spec_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token SOURCE_DIRECTIVE16=null;
+		Token STRING_LITERAL17=null;
+
+		CommonTree SOURCE_DIRECTIVE16_tree=null;
+		CommonTree STRING_LITERAL17_tree=null;
+		RewriteRuleTokenStream stream_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token STRING_LITERAL");
+		RewriteRuleTokenStream stream_SOURCE_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token SOURCE_DIRECTIVE");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:476:3: ( SOURCE_DIRECTIVE STRING_LITERAL -> ^( I_SOURCE[$start, \"I_SOURCE\"] STRING_LITERAL ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:476:5: SOURCE_DIRECTIVE STRING_LITERAL
+			{
+			SOURCE_DIRECTIVE16=(Token)match(input,SOURCE_DIRECTIVE,FOLLOW_SOURCE_DIRECTIVE_in_source_spec1320);
+			stream_SOURCE_DIRECTIVE.add(SOURCE_DIRECTIVE16);
+
+			STRING_LITERAL17=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_source_spec1322);
+			stream_STRING_LITERAL.add(STRING_LITERAL17);
+
+			// AST REWRITE
+			// elements: STRING_LITERAL
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 476:37: -> ^( I_SOURCE[$start, \"I_SOURCE\"] STRING_LITERAL )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:476:40: ^( I_SOURCE[$start, \"I_SOURCE\"] STRING_LITERAL )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_SOURCE, (retval.start), "I_SOURCE"), root_1);
+				adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "source_spec"
+
+
+	public static class access_list_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "access_list"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:478:1: access_list : ( ACCESS_SPEC )* -> ^( I_ACCESS_LIST[$start,\"I_ACCESS_LIST\"] ( ACCESS_SPEC )* ) ;
+	public final smaliParser.access_list_return access_list() throws RecognitionException {
+		smaliParser.access_list_return retval = new smaliParser.access_list_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token ACCESS_SPEC18=null;
+
+		CommonTree ACCESS_SPEC18_tree=null;
+		RewriteRuleTokenStream stream_ACCESS_SPEC=new RewriteRuleTokenStream(adaptor,"token ACCESS_SPEC");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:479:3: ( ( ACCESS_SPEC )* -> ^( I_ACCESS_LIST[$start,\"I_ACCESS_LIST\"] ( ACCESS_SPEC )* ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:479:5: ( ACCESS_SPEC )*
+			{
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:479:5: ( ACCESS_SPEC )*
+			loop2:
+			while (true) {
+				int alt2=2;
+				int LA2_0 = input.LA(1);
+				if ( (LA2_0==ACCESS_SPEC) ) {
+					int LA2_2 = input.LA(2);
+					if ( (LA2_2==ACCESS_SPEC||LA2_2==ANNOTATION_VISIBILITY||LA2_2==BOOL_LITERAL||LA2_2==CLASS_DESCRIPTOR||LA2_2==DOUBLE_LITERAL_OR_ID||LA2_2==FLOAT_LITERAL_OR_ID||(LA2_2 >= INSTRUCTION_FORMAT10t && LA2_2 <= INSTRUCTION_FORMAT10x_ODEX)||LA2_2==INSTRUCTION_FORMAT11x||LA2_2==INSTRUCTION_FORMAT12x_OR_ID||(LA2_2 >= INSTRUCTION_FORMAT21c_FIELD && LA2_2 <= INSTRUCTION_FORMAT21c_TYPE)||LA2_2==INSTRUCTION_FORMAT21t||(LA2_2 >= INSTRUCTION_FORMAT22c_FIELD && LA2_2 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA2_2 >= INSTRUCTION_FORMAT22s_OR_ID && LA2_2 <= INSTRUCTION_FORMAT22t)||(LA2_2 >= INSTRUCTION_FORMAT23x && LA2_2 <= INSTRUCTION_FORMAT25x)||(LA2_2 >= INSTRUCTION_FORMAT31i_OR_ID && LA2_2 <= INSTRUCTION_FORMAT31t)||(LA2_2 >= INSTRUCTION_FORMAT35c_METHOD && LA2_2 <= INSTRUCTION_FORMAT35ms_METHOD)||LA2_2==INSTRUCTION_FORMAT51l||LA2_2==MEMBER_NAME||(LA2_2 >= NEGATIVE_INTEGER_LITERAL && LA2_2 <= NULL_LITERAL)||LA2_2==PARAM_LIST_OR_ID_START||(LA2_2 >= POSITIVE_INTEGER_LITERAL && LA2_2 <= PRIMITIVE_TYPE)||LA2_2==REGISTER||LA2_2==SIMPLE_NAME||(LA2_2 >= VERIFICATION_ERROR_TYPE && LA2_2 <= VOID_TYPE)) ) {
+						alt2=1;
+					}
+
+				}
+
+				switch (alt2) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:479:5: ACCESS_SPEC
+					{
+					ACCESS_SPEC18=(Token)match(input,ACCESS_SPEC,FOLLOW_ACCESS_SPEC_in_access_list1341);
+					stream_ACCESS_SPEC.add(ACCESS_SPEC18);
+
+					}
+					break;
+
+				default :
+					break loop2;
+				}
+			}
+
+			// AST REWRITE
+			// elements: ACCESS_SPEC
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 479:18: -> ^( I_ACCESS_LIST[$start,\"I_ACCESS_LIST\"] ( ACCESS_SPEC )* )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:479:21: ^( I_ACCESS_LIST[$start,\"I_ACCESS_LIST\"] ( ACCESS_SPEC )* )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ACCESS_LIST, (retval.start), "I_ACCESS_LIST"), root_1);
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:479:61: ( ACCESS_SPEC )*
+				while ( stream_ACCESS_SPEC.hasNext() ) {
+					adaptor.addChild(root_1, stream_ACCESS_SPEC.nextNode());
+				}
+				stream_ACCESS_SPEC.reset();
+
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "access_list"
+
+
+	public static class field_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "field"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:486:1: field : FIELD_DIRECTIVE access_list member_name COLON nonvoid_type_descriptor ( EQUAL literal )? ( ({...}? annotation )* ( END_FIELD_DIRECTIVE -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ) ) ) ) ;
+	public final smaliParser.field_return field() throws RecognitionException {
+		smaliParser.field_return retval = new smaliParser.field_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token FIELD_DIRECTIVE19=null;
+		Token COLON22=null;
+		Token EQUAL24=null;
+		Token END_FIELD_DIRECTIVE27=null;
+		ParserRuleReturnScope access_list20 =null;
+		ParserRuleReturnScope member_name21 =null;
+		ParserRuleReturnScope nonvoid_type_descriptor23 =null;
+		ParserRuleReturnScope literal25 =null;
+		ParserRuleReturnScope annotation26 =null;
+
+		CommonTree FIELD_DIRECTIVE19_tree=null;
+		CommonTree COLON22_tree=null;
+		CommonTree EQUAL24_tree=null;
+		CommonTree END_FIELD_DIRECTIVE27_tree=null;
+		RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
+		RewriteRuleTokenStream stream_FIELD_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token FIELD_DIRECTIVE");
+		RewriteRuleTokenStream stream_EQUAL=new RewriteRuleTokenStream(adaptor,"token EQUAL");
+		RewriteRuleTokenStream stream_END_FIELD_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_FIELD_DIRECTIVE");
+		RewriteRuleSubtreeStream stream_annotation=new RewriteRuleSubtreeStream(adaptor,"rule annotation");
+		RewriteRuleSubtreeStream stream_nonvoid_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule nonvoid_type_descriptor");
+		RewriteRuleSubtreeStream stream_access_list=new RewriteRuleSubtreeStream(adaptor,"rule access_list");
+		RewriteRuleSubtreeStream stream_member_name=new RewriteRuleSubtreeStream(adaptor,"rule member_name");
+		RewriteRuleSubtreeStream stream_literal=new RewriteRuleSubtreeStream(adaptor,"rule literal");
+
+		List<CommonTree> annotations = new ArrayList<CommonTree>();
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:488:3: ( FIELD_DIRECTIVE access_list member_name COLON nonvoid_type_descriptor ( EQUAL literal )? ( ({...}? annotation )* ( END_FIELD_DIRECTIVE -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ) ) ) ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:488:5: FIELD_DIRECTIVE access_list member_name COLON nonvoid_type_descriptor ( EQUAL literal )? ( ({...}? annotation )* ( END_FIELD_DIRECTIVE -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ) ) ) )
+			{
+			FIELD_DIRECTIVE19=(Token)match(input,FIELD_DIRECTIVE,FOLLOW_FIELD_DIRECTIVE_in_field1372);
+			stream_FIELD_DIRECTIVE.add(FIELD_DIRECTIVE19);
+
+			pushFollow(FOLLOW_access_list_in_field1374);
+			access_list20=access_list();
+			state._fsp--;
+
+			stream_access_list.add(access_list20.getTree());
+			pushFollow(FOLLOW_member_name_in_field1376);
+			member_name21=member_name();
+			state._fsp--;
+
+			stream_member_name.add(member_name21.getTree());
+			COLON22=(Token)match(input,COLON,FOLLOW_COLON_in_field1378);
+			stream_COLON.add(COLON22);
+
+			pushFollow(FOLLOW_nonvoid_type_descriptor_in_field1380);
+			nonvoid_type_descriptor23=nonvoid_type_descriptor();
+			state._fsp--;
+
+			stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor23.getTree());
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:488:75: ( EQUAL literal )?
+			int alt3=2;
+			int LA3_0 = input.LA(1);
+			if ( (LA3_0==EQUAL) ) {
+				alt3=1;
+			}
+			switch (alt3) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:488:76: EQUAL literal
+					{
+					EQUAL24=(Token)match(input,EQUAL,FOLLOW_EQUAL_in_field1383);
+					stream_EQUAL.add(EQUAL24);
+
+					pushFollow(FOLLOW_literal_in_field1385);
+					literal25=literal();
+					state._fsp--;
+
+					stream_literal.add(literal25.getTree());
+					}
+					break;
+
+			}
+
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:489:5: ( ({...}? annotation )* ( END_FIELD_DIRECTIVE -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ) ) ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:489:7: ({...}? annotation )* ( END_FIELD_DIRECTIVE -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ) ) )
+			{
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:489:7: ({...}? annotation )*
+			loop4:
+			while (true) {
+				int alt4=2;
+				int LA4_0 = input.LA(1);
+				if ( (LA4_0==ANNOTATION_DIRECTIVE) ) {
+					int LA4_9 = input.LA(2);
+					if ( ((input.LA(1) == ANNOTATION_DIRECTIVE)) ) {
+						alt4=1;
+					}
+
+				}
+
+				switch (alt4) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:489:8: {...}? annotation
+					{
+					if ( !((input.LA(1) == ANNOTATION_DIRECTIVE)) ) {
+						throw new FailedPredicateException(input, "field", "input.LA(1) == ANNOTATION_DIRECTIVE");
+					}
+					pushFollow(FOLLOW_annotation_in_field1398);
+					annotation26=annotation();
+					state._fsp--;
+
+					stream_annotation.add(annotation26.getTree());
+					annotations.add((annotation26!=null?((CommonTree)annotation26.getTree()):null));
+					}
+					break;
+
+				default :
+					break loop4;
+				}
+			}
+
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:490:7: ( END_FIELD_DIRECTIVE -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ) ) )
+			int alt5=2;
+			int LA5_0 = input.LA(1);
+			if ( (LA5_0==END_FIELD_DIRECTIVE) ) {
+				alt5=1;
+			}
+			else if ( (LA5_0==EOF||LA5_0==ANNOTATION_DIRECTIVE||LA5_0==CLASS_DIRECTIVE||LA5_0==FIELD_DIRECTIVE||LA5_0==IMPLEMENTS_DIRECTIVE||LA5_0==METHOD_DIRECTIVE||LA5_0==SOURCE_DIRECTIVE||LA5_0==SUPER_DIRECTIVE) ) {
+				alt5=2;
+			}
+
+			else {
+				NoViableAltException nvae =
+					new NoViableAltException("", 5, 0, input);
+				throw nvae;
+			}
+
+			switch (alt5) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:490:9: END_FIELD_DIRECTIVE
+					{
+					END_FIELD_DIRECTIVE27=(Token)match(input,END_FIELD_DIRECTIVE,FOLLOW_END_FIELD_DIRECTIVE_in_field1412);
+					stream_END_FIELD_DIRECTIVE.add(END_FIELD_DIRECTIVE27);
+
+					// AST REWRITE
+					// elements: nonvoid_type_descriptor, annotation, member_name, literal, access_list
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 491:9: -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ( annotation )* ) )
+					{
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:491:12: ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ( annotation )* ) )
+						{
+						CommonTree root_1 = (CommonTree)adaptor.nil();
+						root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_FIELD, (retval.start), "I_FIELD"), root_1);
+						adaptor.addChild(root_1, stream_member_name.nextTree());
+						adaptor.addChild(root_1, stream_access_list.nextTree());
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:491:65: ^( I_FIELD_TYPE nonvoid_type_descriptor )
+						{
+						CommonTree root_2 = (CommonTree)adaptor.nil();
+						root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_FIELD_TYPE, "I_FIELD_TYPE"), root_2);
+						adaptor.addChild(root_2, stream_nonvoid_type_descriptor.nextTree());
+						adaptor.addChild(root_1, root_2);
+						}
+
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:491:105: ( ^( I_FIELD_INITIAL_VALUE literal ) )?
+						if ( stream_literal.hasNext() ) {
+							// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:491:105: ^( I_FIELD_INITIAL_VALUE literal )
+							{
+							CommonTree root_2 = (CommonTree)adaptor.nil();
+							root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_FIELD_INITIAL_VALUE, "I_FIELD_INITIAL_VALUE"), root_2);
+							adaptor.addChild(root_2, stream_literal.nextTree());
+							adaptor.addChild(root_1, root_2);
+							}
+
+						}
+						stream_literal.reset();
+
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:491:139: ^( I_ANNOTATIONS ( annotation )* )
+						{
+						CommonTree root_2 = (CommonTree)adaptor.nil();
+						root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ANNOTATIONS, "I_ANNOTATIONS"), root_2);
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:491:155: ( annotation )*
+						while ( stream_annotation.hasNext() ) {
+							adaptor.addChild(root_2, stream_annotation.nextTree());
+						}
+						stream_annotation.reset();
+
+						adaptor.addChild(root_1, root_2);
+						}
+
+						adaptor.addChild(root_0, root_1);
+						}
+
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:492:21:
+					{
+					smali_file_stack.peek().classAnnotations.addAll(annotations);
+					// AST REWRITE
+					// elements: access_list, nonvoid_type_descriptor, literal, member_name
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 493:9: -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ) )
+					{
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:493:12: ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ) )
+						{
+						CommonTree root_1 = (CommonTree)adaptor.nil();
+						root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_FIELD, (retval.start), "I_FIELD"), root_1);
+						adaptor.addChild(root_1, stream_member_name.nextTree());
+						adaptor.addChild(root_1, stream_access_list.nextTree());
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:493:65: ^( I_FIELD_TYPE nonvoid_type_descriptor )
+						{
+						CommonTree root_2 = (CommonTree)adaptor.nil();
+						root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_FIELD_TYPE, "I_FIELD_TYPE"), root_2);
+						adaptor.addChild(root_2, stream_nonvoid_type_descriptor.nextTree());
+						adaptor.addChild(root_1, root_2);
+						}
+
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:493:105: ( ^( I_FIELD_INITIAL_VALUE literal ) )?
+						if ( stream_literal.hasNext() ) {
+							// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:493:105: ^( I_FIELD_INITIAL_VALUE literal )
+							{
+							CommonTree root_2 = (CommonTree)adaptor.nil();
+							root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_FIELD_INITIAL_VALUE, "I_FIELD_INITIAL_VALUE"), root_2);
+							adaptor.addChild(root_2, stream_literal.nextTree());
+							adaptor.addChild(root_1, root_2);
+							}
+
+						}
+						stream_literal.reset();
+
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:493:139: ^( I_ANNOTATIONS )
+						{
+						CommonTree root_2 = (CommonTree)adaptor.nil();
+						root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ANNOTATIONS, "I_ANNOTATIONS"), root_2);
+						adaptor.addChild(root_1, root_2);
+						}
+
+						adaptor.addChild(root_0, root_1);
+						}
+
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+
+			}
+
+			}
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "field"
+
+
+	public static class method_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "method"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:497:1: method : METHOD_DIRECTIVE access_list member_name method_prototype statements_and_directives END_METHOD_DIRECTIVE -> ^( I_METHOD[$start, \"I_METHOD\"] member_name method_prototype access_list statements_and_directives ) ;
+	public final smaliParser.method_return method() throws RecognitionException {
+		smaliParser.method_return retval = new smaliParser.method_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token METHOD_DIRECTIVE28=null;
+		Token END_METHOD_DIRECTIVE33=null;
+		ParserRuleReturnScope access_list29 =null;
+		ParserRuleReturnScope member_name30 =null;
+		ParserRuleReturnScope method_prototype31 =null;
+		ParserRuleReturnScope statements_and_directives32 =null;
+
+		CommonTree METHOD_DIRECTIVE28_tree=null;
+		CommonTree END_METHOD_DIRECTIVE33_tree=null;
+		RewriteRuleTokenStream stream_END_METHOD_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_METHOD_DIRECTIVE");
+		RewriteRuleTokenStream stream_METHOD_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token METHOD_DIRECTIVE");
+		RewriteRuleSubtreeStream stream_access_list=new RewriteRuleSubtreeStream(adaptor,"rule access_list");
+		RewriteRuleSubtreeStream stream_method_prototype=new RewriteRuleSubtreeStream(adaptor,"rule method_prototype");
+		RewriteRuleSubtreeStream stream_statements_and_directives=new RewriteRuleSubtreeStream(adaptor,"rule statements_and_directives");
+		RewriteRuleSubtreeStream stream_member_name=new RewriteRuleSubtreeStream(adaptor,"rule member_name");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:498:3: ( METHOD_DIRECTIVE access_list member_name method_prototype statements_and_directives END_METHOD_DIRECTIVE -> ^( I_METHOD[$start, \"I_METHOD\"] member_name method_prototype access_list statements_and_directives ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:498:5: METHOD_DIRECTIVE access_list member_name method_prototype statements_and_directives END_METHOD_DIRECTIVE
+			{
+			METHOD_DIRECTIVE28=(Token)match(input,METHOD_DIRECTIVE,FOLLOW_METHOD_DIRECTIVE_in_method1523);
+			stream_METHOD_DIRECTIVE.add(METHOD_DIRECTIVE28);
+
+			pushFollow(FOLLOW_access_list_in_method1525);
+			access_list29=access_list();
+			state._fsp--;
+
+			stream_access_list.add(access_list29.getTree());
+			pushFollow(FOLLOW_member_name_in_method1527);
+			member_name30=member_name();
+			state._fsp--;
+
+			stream_member_name.add(member_name30.getTree());
+			pushFollow(FOLLOW_method_prototype_in_method1529);
+			method_prototype31=method_prototype();
+			state._fsp--;
+
+			stream_method_prototype.add(method_prototype31.getTree());
+			pushFollow(FOLLOW_statements_and_directives_in_method1531);
+			statements_and_directives32=statements_and_directives();
+			state._fsp--;
+
+			stream_statements_and_directives.add(statements_and_directives32.getTree());
+			END_METHOD_DIRECTIVE33=(Token)match(input,END_METHOD_DIRECTIVE,FOLLOW_END_METHOD_DIRECTIVE_in_method1537);
+			stream_END_METHOD_DIRECTIVE.add(END_METHOD_DIRECTIVE33);
+
+			// AST REWRITE
+			// elements: access_list, method_prototype, statements_and_directives, member_name
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 500:5: -> ^( I_METHOD[$start, \"I_METHOD\"] member_name method_prototype access_list statements_and_directives )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:500:8: ^( I_METHOD[$start, \"I_METHOD\"] member_name method_prototype access_list statements_and_directives )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_METHOD, (retval.start), "I_METHOD"), root_1);
+				adaptor.addChild(root_1, stream_member_name.nextTree());
+				adaptor.addChild(root_1, stream_method_prototype.nextTree());
+				adaptor.addChild(root_1, stream_access_list.nextTree());
+				adaptor.addChild(root_1, stream_statements_and_directives.nextTree());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "method"
+
+
+	protected static class statements_and_directives_scope {
+		boolean hasRegistersDirective;
+		List<CommonTree> methodAnnotations;
+	}
+	protected Stack<statements_and_directives_scope> statements_and_directives_stack = new Stack<statements_and_directives_scope>();
+
+	public static class statements_and_directives_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "statements_and_directives"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:502:1: statements_and_directives : ( ordered_method_item | registers_directive | catch_directive | catchall_directive | parameter_directive | annotation )* -> ( registers_directive )? ^( I_ORDERED_METHOD_ITEMS ( ordered_method_item )* ) ^( I_CATCHES ( catch_directive )* ( catchall_directive )* ) ^( I_PARAMETERS ( parameter_directive )* ) ;
+	public final smaliParser.statements_and_directives_return statements_and_directives() throws RecognitionException {
+		statements_and_directives_stack.push(new statements_and_directives_scope());
+		smaliParser.statements_and_directives_return retval = new smaliParser.statements_and_directives_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		ParserRuleReturnScope ordered_method_item34 =null;
+		ParserRuleReturnScope registers_directive35 =null;
+		ParserRuleReturnScope catch_directive36 =null;
+		ParserRuleReturnScope catchall_directive37 =null;
+		ParserRuleReturnScope parameter_directive38 =null;
+		ParserRuleReturnScope annotation39 =null;
+
+		RewriteRuleSubtreeStream stream_catchall_directive=new RewriteRuleSubtreeStream(adaptor,"rule catchall_directive");
+		RewriteRuleSubtreeStream stream_annotation=new RewriteRuleSubtreeStream(adaptor,"rule annotation");
+		RewriteRuleSubtreeStream stream_ordered_method_item=new RewriteRuleSubtreeStream(adaptor,"rule ordered_method_item");
+		RewriteRuleSubtreeStream stream_catch_directive=new RewriteRuleSubtreeStream(adaptor,"rule catch_directive");
+		RewriteRuleSubtreeStream stream_registers_directive=new RewriteRuleSubtreeStream(adaptor,"rule registers_directive");
+		RewriteRuleSubtreeStream stream_parameter_directive=new RewriteRuleSubtreeStream(adaptor,"rule parameter_directive");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:508:3: ( ( ordered_method_item | registers_directive | catch_directive | catchall_directive | parameter_directive | annotation )* -> ( registers_directive )? ^( I_ORDERED_METHOD_ITEMS ( ordered_method_item )* ) ^( I_CATCHES ( catch_directive )* ( catchall_directive )* ) ^( I_PARAMETERS ( parameter_directive )* ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:508:5: ( ordered_method_item | registers_directive | catch_directive | catchall_directive | parameter_directive | annotation )*
+			{
+
+			      statements_and_directives_stack.peek().hasRegistersDirective = false;
+			      statements_and_directives_stack.peek().methodAnnotations = new ArrayList<CommonTree>();
+			
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:512:5: ( ordered_method_item | registers_directive | catch_directive | catchall_directive | parameter_directive | annotation )*
+			loop6:
+			while (true) {
+				int alt6=7;
+				switch ( input.LA(1) ) {
+				case ARRAY_DATA_DIRECTIVE:
+				case COLON:
+				case END_LOCAL_DIRECTIVE:
+				case EPILOGUE_DIRECTIVE:
+				case INSTRUCTION_FORMAT10t:
+				case INSTRUCTION_FORMAT10x:
+				case INSTRUCTION_FORMAT10x_ODEX:
+				case INSTRUCTION_FORMAT11n:
+				case INSTRUCTION_FORMAT11x:
+				case INSTRUCTION_FORMAT12x:
+				case INSTRUCTION_FORMAT12x_OR_ID:
+				case INSTRUCTION_FORMAT20bc:
+				case INSTRUCTION_FORMAT20t:
+				case INSTRUCTION_FORMAT21c_FIELD:
+				case INSTRUCTION_FORMAT21c_FIELD_ODEX:
+				case INSTRUCTION_FORMAT21c_LAMBDA:
+				case INSTRUCTION_FORMAT21c_METHOD:
+				case INSTRUCTION_FORMAT21c_STRING:
+				case INSTRUCTION_FORMAT21c_TYPE:
+				case INSTRUCTION_FORMAT21ih:
+				case INSTRUCTION_FORMAT21lh:
+				case INSTRUCTION_FORMAT21s:
+				case INSTRUCTION_FORMAT21t:
+				case INSTRUCTION_FORMAT22b:
+				case INSTRUCTION_FORMAT22c_FIELD:
+				case INSTRUCTION_FORMAT22c_FIELD_ODEX:
+				case INSTRUCTION_FORMAT22c_STRING:
+				case INSTRUCTION_FORMAT22c_TYPE:
+				case INSTRUCTION_FORMAT22cs_FIELD:
+				case INSTRUCTION_FORMAT22s:
+				case INSTRUCTION_FORMAT22s_OR_ID:
+				case INSTRUCTION_FORMAT22t:
+				case INSTRUCTION_FORMAT22x:
+				case INSTRUCTION_FORMAT23x:
+				case INSTRUCTION_FORMAT25x:
+				case INSTRUCTION_FORMAT30t:
+				case INSTRUCTION_FORMAT31c:
+				case INSTRUCTION_FORMAT31i:
+				case INSTRUCTION_FORMAT31i_OR_ID:
+				case INSTRUCTION_FORMAT31t:
+				case INSTRUCTION_FORMAT32x:
+				case INSTRUCTION_FORMAT35c_METHOD:
+				case INSTRUCTION_FORMAT35c_METHOD_ODEX:
+				case INSTRUCTION_FORMAT35c_TYPE:
+				case INSTRUCTION_FORMAT35mi_METHOD:
+				case INSTRUCTION_FORMAT35ms_METHOD:
+				case INSTRUCTION_FORMAT3rc_METHOD:
+				case INSTRUCTION_FORMAT3rc_METHOD_ODEX:
+				case INSTRUCTION_FORMAT3rc_TYPE:
+				case INSTRUCTION_FORMAT3rmi_METHOD:
+				case INSTRUCTION_FORMAT3rms_METHOD:
+				case INSTRUCTION_FORMAT51l:
+				case LINE_DIRECTIVE:
+				case LOCAL_DIRECTIVE:
+				case PACKED_SWITCH_DIRECTIVE:
+				case PROLOGUE_DIRECTIVE:
+				case RESTART_LOCAL_DIRECTIVE:
+				case SOURCE_DIRECTIVE:
+				case SPARSE_SWITCH_DIRECTIVE:
+					{
+					alt6=1;
+					}
+					break;
+				case LOCALS_DIRECTIVE:
+				case REGISTERS_DIRECTIVE:
+					{
+					alt6=2;
+					}
+					break;
+				case CATCH_DIRECTIVE:
+					{
+					alt6=3;
+					}
+					break;
+				case CATCHALL_DIRECTIVE:
+					{
+					alt6=4;
+					}
+					break;
+				case PARAMETER_DIRECTIVE:
+					{
+					alt6=5;
+					}
+					break;
+				case ANNOTATION_DIRECTIVE:
+					{
+					alt6=6;
+					}
+					break;
+				}
+				switch (alt6) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:512:7: ordered_method_item
+					{
+					pushFollow(FOLLOW_ordered_method_item_in_statements_and_directives1582);
+					ordered_method_item34=ordered_method_item();
+					state._fsp--;
+
+					stream_ordered_method_item.add(ordered_method_item34.getTree());
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:513:7: registers_directive
+					{
+					pushFollow(FOLLOW_registers_directive_in_statements_and_directives1590);
+					registers_directive35=registers_directive();
+					state._fsp--;
+
+					stream_registers_directive.add(registers_directive35.getTree());
+					}
+					break;
+				case 3 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:514:7: catch_directive
+					{
+					pushFollow(FOLLOW_catch_directive_in_statements_and_directives1598);
+					catch_directive36=catch_directive();
+					state._fsp--;
+
+					stream_catch_directive.add(catch_directive36.getTree());
+					}
+					break;
+				case 4 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:515:7: catchall_directive
+					{
+					pushFollow(FOLLOW_catchall_directive_in_statements_and_directives1606);
+					catchall_directive37=catchall_directive();
+					state._fsp--;
+
+					stream_catchall_directive.add(catchall_directive37.getTree());
+					}
+					break;
+				case 5 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:516:7: parameter_directive
+					{
+					pushFollow(FOLLOW_parameter_directive_in_statements_and_directives1614);
+					parameter_directive38=parameter_directive();
+					state._fsp--;
+
+					stream_parameter_directive.add(parameter_directive38.getTree());
+					}
+					break;
+				case 6 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:517:7: annotation
+					{
+					pushFollow(FOLLOW_annotation_in_statements_and_directives1622);
+					annotation39=annotation();
+					state._fsp--;
+
+					stream_annotation.add(annotation39.getTree());
+					statements_and_directives_stack.peek().methodAnnotations.add((annotation39!=null?((CommonTree)annotation39.getTree()):null));
+					}
+					break;
+
+				default :
+					break loop6;
+				}
+			}
+
+			// AST REWRITE
+			// elements: parameter_directive, catch_directive, catchall_directive, ordered_method_item, registers_directive
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 519:5: -> ( registers_directive )? ^( I_ORDERED_METHOD_ITEMS ( ordered_method_item )* ) ^( I_CATCHES ( catch_directive )* ( catchall_directive )* ) ^( I_PARAMETERS ( parameter_directive )* )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:519:8: ( registers_directive )?
+				if ( stream_registers_directive.hasNext() ) {
+					adaptor.addChild(root_0, stream_registers_directive.nextTree());
+				}
+				stream_registers_directive.reset();
+
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:520:8: ^( I_ORDERED_METHOD_ITEMS ( ordered_method_item )* )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ORDERED_METHOD_ITEMS, "I_ORDERED_METHOD_ITEMS"), root_1);
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:520:33: ( ordered_method_item )*
+				while ( stream_ordered_method_item.hasNext() ) {
+					adaptor.addChild(root_1, stream_ordered_method_item.nextTree());
+				}
+				stream_ordered_method_item.reset();
+
+				adaptor.addChild(root_0, root_1);
+				}
+
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:521:8: ^( I_CATCHES ( catch_directive )* ( catchall_directive )* )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_CATCHES, "I_CATCHES"), root_1);
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:521:20: ( catch_directive )*
+				while ( stream_catch_directive.hasNext() ) {
+					adaptor.addChild(root_1, stream_catch_directive.nextTree());
+				}
+				stream_catch_directive.reset();
+
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:521:37: ( catchall_directive )*
+				while ( stream_catchall_directive.hasNext() ) {
+					adaptor.addChild(root_1, stream_catchall_directive.nextTree());
+				}
+				stream_catchall_directive.reset();
+
+				adaptor.addChild(root_0, root_1);
+				}
+
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:522:8: ^( I_PARAMETERS ( parameter_directive )* )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_PARAMETERS, "I_PARAMETERS"), root_1);
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:522:23: ( parameter_directive )*
+				while ( stream_parameter_directive.hasNext() ) {
+					adaptor.addChild(root_1, stream_parameter_directive.nextTree());
+				}
+				stream_parameter_directive.reset();
+
+				adaptor.addChild(root_0, root_1);
+				}
+
+				adaptor.addChild(root_0, buildTree(I_ANNOTATIONS, "I_ANNOTATIONS", statements_and_directives_stack.peek().methodAnnotations));
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+			statements_and_directives_stack.pop();
+		}
+		return retval;
+	}
+	// $ANTLR end "statements_and_directives"
+
+
+	public static class ordered_method_item_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "ordered_method_item"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:526:1: ordered_method_item : ( label | instruction | debug_directive );
+	public final smaliParser.ordered_method_item_return ordered_method_item() throws RecognitionException {
+		smaliParser.ordered_method_item_return retval = new smaliParser.ordered_method_item_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		ParserRuleReturnScope label40 =null;
+		ParserRuleReturnScope instruction41 =null;
+		ParserRuleReturnScope debug_directive42 =null;
+
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:527:3: ( label | instruction | debug_directive )
+			int alt7=3;
+			switch ( input.LA(1) ) {
+			case COLON:
+				{
+				alt7=1;
+				}
+				break;
+			case ARRAY_DATA_DIRECTIVE:
+			case INSTRUCTION_FORMAT10t:
+			case INSTRUCTION_FORMAT10x:
+			case INSTRUCTION_FORMAT10x_ODEX:
+			case INSTRUCTION_FORMAT11n:
+			case INSTRUCTION_FORMAT11x:
+			case INSTRUCTION_FORMAT12x:
+			case INSTRUCTION_FORMAT12x_OR_ID:
+			case INSTRUCTION_FORMAT20bc:
+			case INSTRUCTION_FORMAT20t:
+			case INSTRUCTION_FORMAT21c_FIELD:
+			case INSTRUCTION_FORMAT21c_FIELD_ODEX:
+			case INSTRUCTION_FORMAT21c_LAMBDA:
+			case INSTRUCTION_FORMAT21c_METHOD:
+			case INSTRUCTION_FORMAT21c_STRING:
+			case INSTRUCTION_FORMAT21c_TYPE:
+			case INSTRUCTION_FORMAT21ih:
+			case INSTRUCTION_FORMAT21lh:
+			case INSTRUCTION_FORMAT21s:
+			case INSTRUCTION_FORMAT21t:
+			case INSTRUCTION_FORMAT22b:
+			case INSTRUCTION_FORMAT22c_FIELD:
+			case INSTRUCTION_FORMAT22c_FIELD_ODEX:
+			case INSTRUCTION_FORMAT22c_STRING:
+			case INSTRUCTION_FORMAT22c_TYPE:
+			case INSTRUCTION_FORMAT22cs_FIELD:
+			case INSTRUCTION_FORMAT22s:
+			case INSTRUCTION_FORMAT22s_OR_ID:
+			case INSTRUCTION_FORMAT22t:
+			case INSTRUCTION_FORMAT22x:
+			case INSTRUCTION_FORMAT23x:
+			case INSTRUCTION_FORMAT25x:
+			case INSTRUCTION_FORMAT30t:
+			case INSTRUCTION_FORMAT31c:
+			case INSTRUCTION_FORMAT31i:
+			case INSTRUCTION_FORMAT31i_OR_ID:
+			case INSTRUCTION_FORMAT31t:
+			case INSTRUCTION_FORMAT32x:
+			case INSTRUCTION_FORMAT35c_METHOD:
+			case INSTRUCTION_FORMAT35c_METHOD_ODEX:
+			case INSTRUCTION_FORMAT35c_TYPE:
+			case INSTRUCTION_FORMAT35mi_METHOD:
+			case INSTRUCTION_FORMAT35ms_METHOD:
+			case INSTRUCTION_FORMAT3rc_METHOD:
+			case INSTRUCTION_FORMAT3rc_METHOD_ODEX:
+			case INSTRUCTION_FORMAT3rc_TYPE:
+			case INSTRUCTION_FORMAT3rmi_METHOD:
+			case INSTRUCTION_FORMAT3rms_METHOD:
+			case INSTRUCTION_FORMAT51l:
+			case PACKED_SWITCH_DIRECTIVE:
+			case SPARSE_SWITCH_DIRECTIVE:
+				{
+				alt7=2;
+				}
+				break;
+			case END_LOCAL_DIRECTIVE:
+			case EPILOGUE_DIRECTIVE:
+			case LINE_DIRECTIVE:
+			case LOCAL_DIRECTIVE:
+			case PROLOGUE_DIRECTIVE:
+			case RESTART_LOCAL_DIRECTIVE:
+			case SOURCE_DIRECTIVE:
+				{
+				alt7=3;
+				}
+				break;
+			default:
+				NoViableAltException nvae =
+					new NoViableAltException("", 7, 0, input);
+				throw nvae;
+			}
+			switch (alt7) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:527:5: label
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_label_in_ordered_method_item1707);
+					label40=label();
+					state._fsp--;
+
+					adaptor.addChild(root_0, label40.getTree());
+
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:528:5: instruction
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_instruction_in_ordered_method_item1713);
+					instruction41=instruction();
+					state._fsp--;
+
+					adaptor.addChild(root_0, instruction41.getTree());
+
+					}
+					break;
+				case 3 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:529:5: debug_directive
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_debug_directive_in_ordered_method_item1719);
+					debug_directive42=debug_directive();
+					state._fsp--;
+
+					adaptor.addChild(root_0, debug_directive42.getTree());
+
+					}
+					break;
+
+			}
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "ordered_method_item"
+
+
+	public static class registers_directive_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "registers_directive"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:531:1: registers_directive : (directive= REGISTERS_DIRECTIVE regCount= integral_literal -> ^( I_REGISTERS[$REGISTERS_DIRECTIVE, \"I_REGISTERS\"] $regCount) |directive= LOCALS_DIRECTIVE regCount2= integral_literal -> ^( I_LOCALS[$LOCALS_DIRECTIVE, \"I_LOCALS\"] $regCount2) ) ;
+	public final smaliParser.registers_directive_return registers_directive() throws RecognitionException {
+		smaliParser.registers_directive_return retval = new smaliParser.registers_directive_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token directive=null;
+		ParserRuleReturnScope regCount =null;
+		ParserRuleReturnScope regCount2 =null;
+
+		CommonTree directive_tree=null;
+		RewriteRuleTokenStream stream_REGISTERS_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token REGISTERS_DIRECTIVE");
+		RewriteRuleTokenStream stream_LOCALS_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token LOCALS_DIRECTIVE");
+		RewriteRuleSubtreeStream stream_integral_literal=new RewriteRuleSubtreeStream(adaptor,"rule integral_literal");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:532:3: ( (directive= REGISTERS_DIRECTIVE regCount= integral_literal -> ^( I_REGISTERS[$REGISTERS_DIRECTIVE, \"I_REGISTERS\"] $regCount) |directive= LOCALS_DIRECTIVE regCount2= integral_literal -> ^( I_LOCALS[$LOCALS_DIRECTIVE, \"I_LOCALS\"] $regCount2) ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:532:5: (directive= REGISTERS_DIRECTIVE regCount= integral_literal -> ^( I_REGISTERS[$REGISTERS_DIRECTIVE, \"I_REGISTERS\"] $regCount) |directive= LOCALS_DIRECTIVE regCount2= integral_literal -> ^( I_LOCALS[$LOCALS_DIRECTIVE, \"I_LOCALS\"] $regCount2) )
+			{
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:532:5: (directive= REGISTERS_DIRECTIVE regCount= integral_literal -> ^( I_REGISTERS[$REGISTERS_DIRECTIVE, \"I_REGISTERS\"] $regCount) |directive= LOCALS_DIRECTIVE regCount2= integral_literal -> ^( I_LOCALS[$LOCALS_DIRECTIVE, \"I_LOCALS\"] $regCount2) )
+			int alt8=2;
+			int LA8_0 = input.LA(1);
+			if ( (LA8_0==REGISTERS_DIRECTIVE) ) {
+				alt8=1;
+			}
+			else if ( (LA8_0==LOCALS_DIRECTIVE) ) {
+				alt8=2;
+			}
+
+			else {
+				NoViableAltException nvae =
+					new NoViableAltException("", 8, 0, input);
+				throw nvae;
+			}
+
+			switch (alt8) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:533:7: directive= REGISTERS_DIRECTIVE regCount= integral_literal
+					{
+					directive=(Token)match(input,REGISTERS_DIRECTIVE,FOLLOW_REGISTERS_DIRECTIVE_in_registers_directive1739);
+					stream_REGISTERS_DIRECTIVE.add(directive);
+
+					pushFollow(FOLLOW_integral_literal_in_registers_directive1743);
+					regCount=integral_literal();
+					state._fsp--;
+
+					stream_integral_literal.add(regCount.getTree());
+					// AST REWRITE
+					// elements: regCount
+					// token labels:
+					// rule labels: retval, regCount
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+					RewriteRuleSubtreeStream stream_regCount=new RewriteRuleSubtreeStream(adaptor,"rule regCount",regCount!=null?regCount.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 533:63: -> ^( I_REGISTERS[$REGISTERS_DIRECTIVE, \"I_REGISTERS\"] $regCount)
+					{
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:533:66: ^( I_REGISTERS[$REGISTERS_DIRECTIVE, \"I_REGISTERS\"] $regCount)
+						{
+						CommonTree root_1 = (CommonTree)adaptor.nil();
+						root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_REGISTERS, directive, "I_REGISTERS"), root_1);
+						adaptor.addChild(root_1, stream_regCount.nextTree());
+						adaptor.addChild(root_0, root_1);
+						}
+
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:534:7: directive= LOCALS_DIRECTIVE regCount2= integral_literal
+					{
+					directive=(Token)match(input,LOCALS_DIRECTIVE,FOLLOW_LOCALS_DIRECTIVE_in_registers_directive1763);
+					stream_LOCALS_DIRECTIVE.add(directive);
+
+					pushFollow(FOLLOW_integral_literal_in_registers_directive1767);
+					regCount2=integral_literal();
+					state._fsp--;
+
+					stream_integral_literal.add(regCount2.getTree());
+					// AST REWRITE
+					// elements: regCount2
+					// token labels:
+					// rule labels: retval, regCount2
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+					RewriteRuleSubtreeStream stream_regCount2=new RewriteRuleSubtreeStream(adaptor,"rule regCount2",regCount2!=null?regCount2.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 534:61: -> ^( I_LOCALS[$LOCALS_DIRECTIVE, \"I_LOCALS\"] $regCount2)
+					{
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:534:64: ^( I_LOCALS[$LOCALS_DIRECTIVE, \"I_LOCALS\"] $regCount2)
+						{
+						CommonTree root_1 = (CommonTree)adaptor.nil();
+						root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_LOCALS, directive, "I_LOCALS"), root_1);
+						adaptor.addChild(root_1, stream_regCount2.nextTree());
+						adaptor.addChild(root_0, root_1);
+						}
+
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+
+			}
+
+
+			      if (statements_and_directives_stack.peek().hasRegistersDirective) {
+			        throw new SemanticException(input, directive, "There can only be a single .registers or .locals directive in a method");
+			      }
+			      statements_and_directives_stack.peek().hasRegistersDirective =true;
+			
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "registers_directive"
+
+
+	public static class param_list_or_id_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "param_list_or_id"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:543:1: param_list_or_id : PARAM_LIST_OR_ID_START ( PRIMITIVE_TYPE )+ PARAM_LIST_OR_ID_END ;
+	public final smaliParser.param_list_or_id_return param_list_or_id() throws RecognitionException {
+		smaliParser.param_list_or_id_return retval = new smaliParser.param_list_or_id_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token PARAM_LIST_OR_ID_START43=null;
+		Token PRIMITIVE_TYPE44=null;
+		Token PARAM_LIST_OR_ID_END45=null;
+
+		CommonTree PARAM_LIST_OR_ID_START43_tree=null;
+		CommonTree PRIMITIVE_TYPE44_tree=null;
+		CommonTree PARAM_LIST_OR_ID_END45_tree=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:544:3: ( PARAM_LIST_OR_ID_START ( PRIMITIVE_TYPE )+ PARAM_LIST_OR_ID_END )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:544:5: PARAM_LIST_OR_ID_START ( PRIMITIVE_TYPE )+ PARAM_LIST_OR_ID_END
+			{
+			root_0 = (CommonTree)adaptor.nil();
+
+
+			PARAM_LIST_OR_ID_START43=(Token)match(input,PARAM_LIST_OR_ID_START,FOLLOW_PARAM_LIST_OR_ID_START_in_param_list_or_id1799);
+			PARAM_LIST_OR_ID_START43_tree = (CommonTree)adaptor.create(PARAM_LIST_OR_ID_START43);
+			adaptor.addChild(root_0, PARAM_LIST_OR_ID_START43_tree);
+
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:544:28: ( PRIMITIVE_TYPE )+
+			int cnt9=0;
+			loop9:
+			while (true) {
+				int alt9=2;
+				int LA9_0 = input.LA(1);
+				if ( (LA9_0==PRIMITIVE_TYPE) ) {
+					alt9=1;
+				}
+
+				switch (alt9) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:544:28: PRIMITIVE_TYPE
+					{
+					PRIMITIVE_TYPE44=(Token)match(input,PRIMITIVE_TYPE,FOLLOW_PRIMITIVE_TYPE_in_param_list_or_id1801);
+					PRIMITIVE_TYPE44_tree = (CommonTree)adaptor.create(PRIMITIVE_TYPE44);
+					adaptor.addChild(root_0, PRIMITIVE_TYPE44_tree);
+
+					}
+					break;
+
+				default :
+					if ( cnt9 >= 1 ) break loop9;
+					EarlyExitException eee = new EarlyExitException(9, input);
+					throw eee;
+				}
+				cnt9++;
+			}
+
+			PARAM_LIST_OR_ID_END45=(Token)match(input,PARAM_LIST_OR_ID_END,FOLLOW_PARAM_LIST_OR_ID_END_in_param_list_or_id1804);
+			PARAM_LIST_OR_ID_END45_tree = (CommonTree)adaptor.create(PARAM_LIST_OR_ID_END45);
+			adaptor.addChild(root_0, PARAM_LIST_OR_ID_END45_tree);
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "param_list_or_id"
+
+
+	public static class simple_name_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "simple_name"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:548:1: simple_name : ( SIMPLE_NAME | ACCESS_SPEC -> SIMPLE_NAME[$ACCESS_SPEC] | VERIFICATION_ERROR_TYPE -> SIMPLE_NAME[$VERIFICATION_ERROR_TYPE] | POSITIVE_INTEGER_LITERAL -> SIMPLE_NAME[$POSITIVE_INTEGER_LITERAL] | NEGATIVE_INTEGER_LITERAL -> SIMPLE_NAME[$NEGATIVE_INTEGER_LITERAL] | FLOAT_LITERAL_OR_ID -> SIMPLE_NAME[$FLOAT_LITERAL_OR_ID] | DOUBLE_LITERAL_OR_ID -> SIMPLE_NAME[$DOUBLE_LITERAL_OR_ID] | BOOL_LITERAL -> SIMPLE_NAME[$BOOL_LITERAL] | NULL_LITERAL -> SIMPLE_NAME[$NULL_LITERAL] | REGISTER -> SIMPLE_NAME[$REGISTER] | param_list_or_id ->| PRIMITIVE_TYPE -> SIMPLE_NAME[$PRIMITIVE_TYPE] | VOID_TYPE -> SIMPLE_NAME[$VOID_TYPE] | ANNOTATION_VISIBILITY -> SIMPLE_NAME[$ANNOTATION_VISIBILITY] | INSTRUCTION_FORMAT10t -> SIMPLE_NAME[$INSTRUCTION_FORMAT10t] | INSTRUCTION_FORMAT10x -> SIMPLE_NAME[$INSTRUCTION_FORMAT10x] | INSTRUCTION_FORMAT10x_ODEX -> SIMPLE_NAME[$INSTRUCTION_FORMAT10x_ODEX] | INSTRUCTION_FORMAT11x -> SIMPLE_NAME[$INSTRUCTION_FORMAT11x] | INSTRUCTION_FORMAT12x_OR_ID -> SIMPLE_NAME[$INSTRUCTION_FORMAT12x_OR_ID] | INSTRUCTION_FORMAT21c_FIELD -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_FIELD] | INSTRUCTION_FORMAT21c_FIELD_ODEX -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_FIELD_ODEX] | INSTRUCTION_FORMAT21c_STRING -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_STRING] | INSTRUCTION_FORMAT21c_TYPE -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_TYPE] | INSTRUCTION_FORMAT21c_LAMBDA -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_LAMBDA] | INSTRUCTION_FORMAT21c_METHOD -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_METHOD] | INSTRUCTION_FORMAT21t -> SIMPLE_NAME[$INSTRUCTION_FORMAT21t] | INSTRUCTION_FORMAT22c_FIELD -> SIMPLE_NAME[$INSTRUCTION_FORMAT22c_FIELD] | INSTRUCTION_FORMAT22c_FIELD_ODEX -> SIMPLE_NAME[$INSTRUCTION_FORMAT22c_FIELD_ODEX] | INSTRUCTION_FORMAT22c_TYPE -> SIMPLE_NAME[$INSTRUCTION_FORMAT22c_TYPE] | INSTRUCTION_FORMAT22c_STRING -> SIMPLE_NAME[$INSTRUCTION_FORMAT22c_STRING] | INSTRUCTION_FORMAT22cs_FIELD -> SIMPLE_NAME[$INSTRUCTION_FORMAT22cs_FIELD] | INSTRUCTION_FORMAT22s_OR_ID -> SIMPLE_NAME[$INSTRUCTION_FORMAT22s_OR_ID] | INSTRUCTION_FORMAT22t -> SIMPLE_NAME[$INSTRUCTION_FORMAT22t] | INSTRUCTION_FORMAT23x -> SIMPLE_NAME[$INSTRUCTION_FORMAT23x] | INSTRUCTION_FORMAT25x -> SIMPLE_NAME[$INSTRUCTION_FORMAT25x] | INSTRUCTION_FORMAT31i_OR_ID -> SIMPLE_NAME[$INSTRUCTION_FORMAT31i_OR_ID] | INSTRUCTION_FORMAT31t -> SIMPLE_NAME[$INSTRUCTION_FORMAT31t] | INSTRUCTION_FORMAT35c_METHOD -> SIMPLE_NAME[$INSTRUCTION_FORMAT35c_METHOD] | INSTRUCTION_FORMAT35c_METHOD_ODEX -> SIMPLE_NAME[$INSTRUCTION_FORMAT35c_METHOD_ODEX] | INSTRUCTION_FORMAT35c_TYPE -> SIMPLE_NAME[$INSTRUCTION_FORMAT35c_TYPE] | INSTRUCTION_FORMAT35mi_METHOD -> SIMPLE_NAME[$INSTRUCTION_FORMAT35mi_METHOD] | INSTRUCTION_FORMAT35ms_METHOD -> SIMPLE_NAME[$INSTRUCTION_FORMAT35ms_METHOD] | INSTRUCTION_FORMAT51l -> SIMPLE_NAME[$INSTRUCTION_FORMAT51l] );
+	public final smaliParser.simple_name_return simple_name() throws RecognitionException {
+		smaliParser.simple_name_return retval = new smaliParser.simple_name_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token SIMPLE_NAME46=null;
+		Token ACCESS_SPEC47=null;
+		Token VERIFICATION_ERROR_TYPE48=null;
+		Token POSITIVE_INTEGER_LITERAL49=null;
+		Token NEGATIVE_INTEGER_LITERAL50=null;
+		Token FLOAT_LITERAL_OR_ID51=null;
+		Token DOUBLE_LITERAL_OR_ID52=null;
+		Token BOOL_LITERAL53=null;
+		Token NULL_LITERAL54=null;
+		Token REGISTER55=null;
+		Token PRIMITIVE_TYPE57=null;
+		Token VOID_TYPE58=null;
+		Token ANNOTATION_VISIBILITY59=null;
+		Token INSTRUCTION_FORMAT10t60=null;
+		Token INSTRUCTION_FORMAT10x61=null;
+		Token INSTRUCTION_FORMAT10x_ODEX62=null;
+		Token INSTRUCTION_FORMAT11x63=null;
+		Token INSTRUCTION_FORMAT12x_OR_ID64=null;
+		Token INSTRUCTION_FORMAT21c_FIELD65=null;
+		Token INSTRUCTION_FORMAT21c_FIELD_ODEX66=null;
+		Token INSTRUCTION_FORMAT21c_STRING67=null;
+		Token INSTRUCTION_FORMAT21c_TYPE68=null;
+		Token INSTRUCTION_FORMAT21c_LAMBDA69=null;
+		Token INSTRUCTION_FORMAT21c_METHOD70=null;
+		Token INSTRUCTION_FORMAT21t71=null;
+		Token INSTRUCTION_FORMAT22c_FIELD72=null;
+		Token INSTRUCTION_FORMAT22c_FIELD_ODEX73=null;
+		Token INSTRUCTION_FORMAT22c_TYPE74=null;
+		Token INSTRUCTION_FORMAT22c_STRING75=null;
+		Token INSTRUCTION_FORMAT22cs_FIELD76=null;
+		Token INSTRUCTION_FORMAT22s_OR_ID77=null;
+		Token INSTRUCTION_FORMAT22t78=null;
+		Token INSTRUCTION_FORMAT23x79=null;
+		Token INSTRUCTION_FORMAT25x80=null;
+		Token INSTRUCTION_FORMAT31i_OR_ID81=null;
+		Token INSTRUCTION_FORMAT31t82=null;
+		Token INSTRUCTION_FORMAT35c_METHOD83=null;
+		Token INSTRUCTION_FORMAT35c_METHOD_ODEX84=null;
+		Token INSTRUCTION_FORMAT35c_TYPE85=null;
+		Token INSTRUCTION_FORMAT35mi_METHOD86=null;
+		Token INSTRUCTION_FORMAT35ms_METHOD87=null;
+		Token INSTRUCTION_FORMAT51l88=null;
+		ParserRuleReturnScope param_list_or_id56 =null;
+
+		CommonTree SIMPLE_NAME46_tree=null;
+		CommonTree ACCESS_SPEC47_tree=null;
+		CommonTree VERIFICATION_ERROR_TYPE48_tree=null;
+		CommonTree POSITIVE_INTEGER_LITERAL49_tree=null;
+		CommonTree NEGATIVE_INTEGER_LITERAL50_tree=null;
+		CommonTree FLOAT_LITERAL_OR_ID51_tree=null;
+		CommonTree DOUBLE_LITERAL_OR_ID52_tree=null;
+		CommonTree BOOL_LITERAL53_tree=null;
+		CommonTree NULL_LITERAL54_tree=null;
+		CommonTree REGISTER55_tree=null;
+		CommonTree PRIMITIVE_TYPE57_tree=null;
+		CommonTree VOID_TYPE58_tree=null;
+		CommonTree ANNOTATION_VISIBILITY59_tree=null;
+		CommonTree INSTRUCTION_FORMAT10t60_tree=null;
+		CommonTree INSTRUCTION_FORMAT10x61_tree=null;
+		CommonTree INSTRUCTION_FORMAT10x_ODEX62_tree=null;
+		CommonTree INSTRUCTION_FORMAT11x63_tree=null;
+		CommonTree INSTRUCTION_FORMAT12x_OR_ID64_tree=null;
+		CommonTree INSTRUCTION_FORMAT21c_FIELD65_tree=null;
+		CommonTree INSTRUCTION_FORMAT21c_FIELD_ODEX66_tree=null;
+		CommonTree INSTRUCTION_FORMAT21c_STRING67_tree=null;
+		CommonTree INSTRUCTION_FORMAT21c_TYPE68_tree=null;
+		CommonTree INSTRUCTION_FORMAT21c_LAMBDA69_tree=null;
+		CommonTree INSTRUCTION_FORMAT21c_METHOD70_tree=null;
+		CommonTree INSTRUCTION_FORMAT21t71_tree=null;
+		CommonTree INSTRUCTION_FORMAT22c_FIELD72_tree=null;
+		CommonTree INSTRUCTION_FORMAT22c_FIELD_ODEX73_tree=null;
+		CommonTree INSTRUCTION_FORMAT22c_TYPE74_tree=null;
+		CommonTree INSTRUCTION_FORMAT22c_STRING75_tree=null;
+		CommonTree INSTRUCTION_FORMAT22cs_FIELD76_tree=null;
+		CommonTree INSTRUCTION_FORMAT22s_OR_ID77_tree=null;
+		CommonTree INSTRUCTION_FORMAT22t78_tree=null;
+		CommonTree INSTRUCTION_FORMAT23x79_tree=null;
+		CommonTree INSTRUCTION_FORMAT25x80_tree=null;
+		CommonTree INSTRUCTION_FORMAT31i_OR_ID81_tree=null;
+		CommonTree INSTRUCTION_FORMAT31t82_tree=null;
+		CommonTree INSTRUCTION_FORMAT35c_METHOD83_tree=null;
+		CommonTree INSTRUCTION_FORMAT35c_METHOD_ODEX84_tree=null;
+		CommonTree INSTRUCTION_FORMAT35c_TYPE85_tree=null;
+		CommonTree INSTRUCTION_FORMAT35mi_METHOD86_tree=null;
+		CommonTree INSTRUCTION_FORMAT35ms_METHOD87_tree=null;
+		CommonTree INSTRUCTION_FORMAT51l88_tree=null;
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT25x=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT25x");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22c_TYPE=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22c_TYPE");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35c_METHOD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT35c_METHOD");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT11x=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT11x");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21t");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35c_TYPE=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT35c_TYPE");
+		RewriteRuleTokenStream stream_ANNOTATION_VISIBILITY=new RewriteRuleTokenStream(adaptor,"token ANNOTATION_VISIBILITY");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT31i_OR_ID=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT31i_OR_ID");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_METHOD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21c_METHOD");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22s_OR_ID=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22s_OR_ID");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT51l=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT51l");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT23x=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT23x");
+		RewriteRuleTokenStream stream_NULL_LITERAL=new RewriteRuleTokenStream(adaptor,"token NULL_LITERAL");
+		RewriteRuleTokenStream stream_BOOL_LITERAL=new RewriteRuleTokenStream(adaptor,"token BOOL_LITERAL");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_LAMBDA=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21c_LAMBDA");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_FIELD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21c_FIELD");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35c_METHOD_ODEX=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT35c_METHOD_ODEX");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22c_FIELD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22c_FIELD");
+		RewriteRuleTokenStream stream_ACCESS_SPEC=new RewriteRuleTokenStream(adaptor,"token ACCESS_SPEC");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_STRING=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21c_STRING");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT12x_OR_ID=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT12x_OR_ID");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35ms_METHOD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT35ms_METHOD");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35mi_METHOD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT35mi_METHOD");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22cs_FIELD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22cs_FIELD");
+		RewriteRuleTokenStream stream_VOID_TYPE=new RewriteRuleTokenStream(adaptor,"token VOID_TYPE");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT10x=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT10x");
+		RewriteRuleTokenStream stream_FLOAT_LITERAL_OR_ID=new RewriteRuleTokenStream(adaptor,"token FLOAT_LITERAL_OR_ID");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22t");
+		RewriteRuleTokenStream stream_PRIMITIVE_TYPE=new RewriteRuleTokenStream(adaptor,"token PRIMITIVE_TYPE");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT10x_ODEX=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT10x_ODEX");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT31t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT31t");
+		RewriteRuleTokenStream stream_DOUBLE_LITERAL_OR_ID=new RewriteRuleTokenStream(adaptor,"token DOUBLE_LITERAL_OR_ID");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22c_FIELD_ODEX=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22c_FIELD_ODEX");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT10t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT10t");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22c_STRING=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22c_STRING");
+		RewriteRuleTokenStream stream_NEGATIVE_INTEGER_LITERAL=new RewriteRuleTokenStream(adaptor,"token NEGATIVE_INTEGER_LITERAL");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+		RewriteRuleTokenStream stream_VERIFICATION_ERROR_TYPE=new RewriteRuleTokenStream(adaptor,"token VERIFICATION_ERROR_TYPE");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_TYPE=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21c_TYPE");
+		RewriteRuleTokenStream stream_POSITIVE_INTEGER_LITERAL=new RewriteRuleTokenStream(adaptor,"token POSITIVE_INTEGER_LITERAL");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_FIELD_ODEX=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21c_FIELD_ODEX");
+		RewriteRuleSubtreeStream stream_param_list_or_id=new RewriteRuleSubtreeStream(adaptor,"rule param_list_or_id");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:549:3: ( SIMPLE_NAME | ACCESS_SPEC -> SIMPLE_NAME[$ACCESS_SPEC] | VERIFICATION_ERROR_TYPE -> SIMPLE_NAME[$VERIFICATION_ERROR_TYPE] | POSITIVE_INTEGER_LITERAL -> SIMPLE_NAME[$POSITIVE_INTEGER_LITERAL] | NEGATIVE_INTEGER_LITERAL -> SIMPLE_NAME[$NEGATIVE_INTEGER_LITERAL] | FLOAT_LITERAL_OR_ID -> SIMPLE_NAME[$FLOAT_LITERAL_OR_ID] | DOUBLE_LITERAL_OR_ID -> SIMPLE_NAME[$DOUBLE_LITERAL_OR_ID] | BOOL_LITERAL -> SIMPLE_NAME[$BOOL_LITERAL] | NULL_LITERAL -> SIMPLE_NAME[$NULL_LITERAL] | REGISTER -> SIMPLE_NAME[$REGISTER] | param_list_or_id ->| PRIMITIVE_TYPE -> SIMPLE_NAME[$PRIMITIVE_TYPE] | VOID_TYPE -> SIMPLE_NAME[$VOID_TYPE] | ANNOTATION_VISIBILITY -> SIMPLE_NAME[$ANNOTATION_VISIBILITY] | INSTRUCTION_FORMAT10t -> SIMPLE_NAME[$INSTRUCTION_FORMAT10t] | INSTRUCTION_FORMAT10x -> SIMPLE_NAME[$INSTRUCTION_FORMAT10x] | INSTRUCTION_FORMAT10x_ODEX -> SIMPLE_NAME[$INSTRUCTION_FORMAT10x_ODEX] | INSTRUCTION_FORMAT11x -> SIMPLE_NAME[$INSTRUCTION_FORMAT11x] | INSTRUCTION_FORMAT12x_OR_ID -> SIMPLE_NAME[$INSTRUCTION_FORMAT12x_OR_ID] | INSTRUCTION_FORMAT21c_FIELD -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_FIELD] | INSTRUCTION_FORMAT21c_FIELD_ODEX -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_FIELD_ODEX] | INSTRUCTION_FORMAT21c_STRING -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_STRING] | INSTRUCTION_FORMAT21c_TYPE -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_TYPE] | INSTRUCTION_FORMAT21c_LAMBDA -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_LAMBDA] | INSTRUCTION_FORMAT21c_METHOD -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_METHOD] | INSTRUCTION_FORMAT21t -> SIMPLE_NAME[$INSTRUCTION_FORMAT21t] | INSTRUCTION_FORMAT22c_FIELD -> SIMPLE_NAME[$INSTRUCTION_FORMAT22c_FIELD] | INSTRUCTION_FORMAT22c_FIELD_ODEX -> SIMPLE_NAME[$INSTRUCTION_FORMAT22c_FIELD_ODEX] | INSTRUCTION_FORMAT22c_TYPE -> SIMPLE_NAME[$INSTRUCTION_FORMAT22c_TYPE] | INSTRUCTION_FORMAT22c_STRING -> SIMPLE_NAME[$INSTRUCTION_FORMAT22c_STRING] | INSTRUCTION_FORMAT22cs_FIELD -> SIMPLE_NAME[$INSTRUCTION_FORMAT22cs_FIELD] | INSTRUCTION_FORMAT22s_OR_ID -> SIMPLE_NAME[$INSTRUCTION_FORMAT22s_OR_ID] | INSTRUCTION_FORMAT22t -> SIMPLE_NAME[$INSTRUCTION_FORMAT22t] | INSTRUCTION_FORMAT23x -> SIMPLE_NAME[$INSTRUCTION_FORMAT23x] | INSTRUCTION_FORMAT25x -> SIMPLE_NAME[$INSTRUCTION_FORMAT25x] | INSTRUCTION_FORMAT31i_OR_ID -> SIMPLE_NAME[$INSTRUCTION_FORMAT31i_OR_ID] | INSTRUCTION_FORMAT31t -> SIMPLE_NAME[$INSTRUCTION_FORMAT31t] | INSTRUCTION_FORMAT35c_METHOD -> SIMPLE_NAME[$INSTRUCTION_FORMAT35c_METHOD] | INSTRUCTION_FORMAT35c_METHOD_ODEX -> SIMPLE_NAME[$INSTRUCTION_FORMAT35c_METHOD_ODEX] | INSTRUCTION_FORMAT35c_TYPE -> SIMPLE_NAME[$INSTRUCTION_FORMAT35c_TYPE] | INSTRUCTION_FORMAT35mi_METHOD -> SIMPLE_NAME[$INSTRUCTION_FORMAT35mi_METHOD] | INSTRUCTION_FORMAT35ms_METHOD -> SIMPLE_NAME[$INSTRUCTION_FORMAT35ms_METHOD] | INSTRUCTION_FORMAT51l -> SIMPLE_NAME[$INSTRUCTION_FORMAT51l] )
+			int alt10=43;
+			switch ( input.LA(1) ) {
+			case SIMPLE_NAME:
+				{
+				alt10=1;
+				}
+				break;
+			case ACCESS_SPEC:
+				{
+				alt10=2;
+				}
+				break;
+			case VERIFICATION_ERROR_TYPE:
+				{
+				alt10=3;
+				}
+				break;
+			case POSITIVE_INTEGER_LITERAL:
+				{
+				alt10=4;
+				}
+				break;
+			case NEGATIVE_INTEGER_LITERAL:
+				{
+				alt10=5;
+				}
+				break;
+			case FLOAT_LITERAL_OR_ID:
+				{
+				alt10=6;
+				}
+				break;
+			case DOUBLE_LITERAL_OR_ID:
+				{
+				alt10=7;
+				}
+				break;
+			case BOOL_LITERAL:
+				{
+				alt10=8;
+				}
+				break;
+			case NULL_LITERAL:
+				{
+				alt10=9;
+				}
+				break;
+			case REGISTER:
+				{
+				alt10=10;
+				}
+				break;
+			case PARAM_LIST_OR_ID_START:
+				{
+				alt10=11;
+				}
+				break;
+			case PRIMITIVE_TYPE:
+				{
+				alt10=12;
+				}
+				break;
+			case VOID_TYPE:
+				{
+				alt10=13;
+				}
+				break;
+			case ANNOTATION_VISIBILITY:
+				{
+				alt10=14;
+				}
+				break;
+			case INSTRUCTION_FORMAT10t:
+				{
+				alt10=15;
+				}
+				break;
+			case INSTRUCTION_FORMAT10x:
+				{
+				alt10=16;
+				}
+				break;
+			case INSTRUCTION_FORMAT10x_ODEX:
+				{
+				alt10=17;
+				}
+				break;
+			case INSTRUCTION_FORMAT11x:
+				{
+				alt10=18;
+				}
+				break;
+			case INSTRUCTION_FORMAT12x_OR_ID:
+				{
+				alt10=19;
+				}
+				break;
+			case INSTRUCTION_FORMAT21c_FIELD:
+				{
+				alt10=20;
+				}
+				break;
+			case INSTRUCTION_FORMAT21c_FIELD_ODEX:
+				{
+				alt10=21;
+				}
+				break;
+			case INSTRUCTION_FORMAT21c_STRING:
+				{
+				alt10=22;
+				}
+				break;
+			case INSTRUCTION_FORMAT21c_TYPE:
+				{
+				alt10=23;
+				}
+				break;
+			case INSTRUCTION_FORMAT21c_LAMBDA:
+				{
+				alt10=24;
+				}
+				break;
+			case INSTRUCTION_FORMAT21c_METHOD:
+				{
+				alt10=25;
+				}
+				break;
+			case INSTRUCTION_FORMAT21t:
+				{
+				alt10=26;
+				}
+				break;
+			case INSTRUCTION_FORMAT22c_FIELD:
+				{
+				alt10=27;
+				}
+				break;
+			case INSTRUCTION_FORMAT22c_FIELD_ODEX:
+				{
+				alt10=28;
+				}
+				break;
+			case INSTRUCTION_FORMAT22c_TYPE:
+				{
+				alt10=29;
+				}
+				break;
+			case INSTRUCTION_FORMAT22c_STRING:
+				{
+				alt10=30;
+				}
+				break;
+			case INSTRUCTION_FORMAT22cs_FIELD:
+				{
+				alt10=31;
+				}
+				break;
+			case INSTRUCTION_FORMAT22s_OR_ID:
+				{
+				alt10=32;
+				}
+				break;
+			case INSTRUCTION_FORMAT22t:
+				{
+				alt10=33;
+				}
+				break;
+			case INSTRUCTION_FORMAT23x:
+				{
+				alt10=34;
+				}
+				break;
+			case INSTRUCTION_FORMAT25x:
+				{
+				alt10=35;
+				}
+				break;
+			case INSTRUCTION_FORMAT31i_OR_ID:
+				{
+				alt10=36;
+				}
+				break;
+			case INSTRUCTION_FORMAT31t:
+				{
+				alt10=37;
+				}
+				break;
+			case INSTRUCTION_FORMAT35c_METHOD:
+				{
+				alt10=38;
+				}
+				break;
+			case INSTRUCTION_FORMAT35c_METHOD_ODEX:
+				{
+				alt10=39;
+				}
+				break;
+			case INSTRUCTION_FORMAT35c_TYPE:
+				{
+				alt10=40;
+				}
+				break;
+			case INSTRUCTION_FORMAT35mi_METHOD:
+				{
+				alt10=41;
+				}
+				break;
+			case INSTRUCTION_FORMAT35ms_METHOD:
+				{
+				alt10=42;
+				}
+				break;
+			case INSTRUCTION_FORMAT51l:
+				{
+				alt10=43;
+				}
+				break;
+			default:
+				NoViableAltException nvae =
+					new NoViableAltException("", 10, 0, input);
+				throw nvae;
+			}
+			switch (alt10) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:549:5: SIMPLE_NAME
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					SIMPLE_NAME46=(Token)match(input,SIMPLE_NAME,FOLLOW_SIMPLE_NAME_in_simple_name1816);
+					SIMPLE_NAME46_tree = (CommonTree)adaptor.create(SIMPLE_NAME46);
+					adaptor.addChild(root_0, SIMPLE_NAME46_tree);
+
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:550:5: ACCESS_SPEC
+					{
+					ACCESS_SPEC47=(Token)match(input,ACCESS_SPEC,FOLLOW_ACCESS_SPEC_in_simple_name1822);
+					stream_ACCESS_SPEC.add(ACCESS_SPEC47);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 550:17: -> SIMPLE_NAME[$ACCESS_SPEC]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, ACCESS_SPEC47));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 3 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:551:5: VERIFICATION_ERROR_TYPE
+					{
+					VERIFICATION_ERROR_TYPE48=(Token)match(input,VERIFICATION_ERROR_TYPE,FOLLOW_VERIFICATION_ERROR_TYPE_in_simple_name1833);
+					stream_VERIFICATION_ERROR_TYPE.add(VERIFICATION_ERROR_TYPE48);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 551:29: -> SIMPLE_NAME[$VERIFICATION_ERROR_TYPE]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, VERIFICATION_ERROR_TYPE48));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 4 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:552:5: POSITIVE_INTEGER_LITERAL
+					{
+					POSITIVE_INTEGER_LITERAL49=(Token)match(input,POSITIVE_INTEGER_LITERAL,FOLLOW_POSITIVE_INTEGER_LITERAL_in_simple_name1844);
+					stream_POSITIVE_INTEGER_LITERAL.add(POSITIVE_INTEGER_LITERAL49);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 552:30: -> SIMPLE_NAME[$POSITIVE_INTEGER_LITERAL]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, POSITIVE_INTEGER_LITERAL49));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 5 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:553:5: NEGATIVE_INTEGER_LITERAL
+					{
+					NEGATIVE_INTEGER_LITERAL50=(Token)match(input,NEGATIVE_INTEGER_LITERAL,FOLLOW_NEGATIVE_INTEGER_LITERAL_in_simple_name1855);
+					stream_NEGATIVE_INTEGER_LITERAL.add(NEGATIVE_INTEGER_LITERAL50);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 553:30: -> SIMPLE_NAME[$NEGATIVE_INTEGER_LITERAL]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, NEGATIVE_INTEGER_LITERAL50));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 6 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:554:5: FLOAT_LITERAL_OR_ID
+					{
+					FLOAT_LITERAL_OR_ID51=(Token)match(input,FLOAT_LITERAL_OR_ID,FOLLOW_FLOAT_LITERAL_OR_ID_in_simple_name1866);
+					stream_FLOAT_LITERAL_OR_ID.add(FLOAT_LITERAL_OR_ID51);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 554:25: -> SIMPLE_NAME[$FLOAT_LITERAL_OR_ID]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, FLOAT_LITERAL_OR_ID51));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 7 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:555:5: DOUBLE_LITERAL_OR_ID
+					{
+					DOUBLE_LITERAL_OR_ID52=(Token)match(input,DOUBLE_LITERAL_OR_ID,FOLLOW_DOUBLE_LITERAL_OR_ID_in_simple_name1877);
+					stream_DOUBLE_LITERAL_OR_ID.add(DOUBLE_LITERAL_OR_ID52);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 555:26: -> SIMPLE_NAME[$DOUBLE_LITERAL_OR_ID]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, DOUBLE_LITERAL_OR_ID52));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 8 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:556:5: BOOL_LITERAL
+					{
+					BOOL_LITERAL53=(Token)match(input,BOOL_LITERAL,FOLLOW_BOOL_LITERAL_in_simple_name1888);
+					stream_BOOL_LITERAL.add(BOOL_LITERAL53);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 556:18: -> SIMPLE_NAME[$BOOL_LITERAL]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, BOOL_LITERAL53));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 9 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:557:5: NULL_LITERAL
+					{
+					NULL_LITERAL54=(Token)match(input,NULL_LITERAL,FOLLOW_NULL_LITERAL_in_simple_name1899);
+					stream_NULL_LITERAL.add(NULL_LITERAL54);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 557:18: -> SIMPLE_NAME[$NULL_LITERAL]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, NULL_LITERAL54));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 10 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:558:5: REGISTER
+					{
+					REGISTER55=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_simple_name1910);
+					stream_REGISTER.add(REGISTER55);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 558:14: -> SIMPLE_NAME[$REGISTER]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, REGISTER55));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 11 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:559:5: param_list_or_id
+					{
+					pushFollow(FOLLOW_param_list_or_id_in_simple_name1921);
+					param_list_or_id56=param_list_or_id();
+					state._fsp--;
+
+					stream_param_list_or_id.add(param_list_or_id56.getTree());
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 559:22: ->
+					{
+						adaptor.addChild(root_0,  adaptor.create(SIMPLE_NAME, (param_list_or_id56!=null?input.toString(param_list_or_id56.start,param_list_or_id56.stop):null)) );
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 12 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:560:5: PRIMITIVE_TYPE
+					{
+					PRIMITIVE_TYPE57=(Token)match(input,PRIMITIVE_TYPE,FOLLOW_PRIMITIVE_TYPE_in_simple_name1931);
+					stream_PRIMITIVE_TYPE.add(PRIMITIVE_TYPE57);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 560:20: -> SIMPLE_NAME[$PRIMITIVE_TYPE]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, PRIMITIVE_TYPE57));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 13 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:561:5: VOID_TYPE
+					{
+					VOID_TYPE58=(Token)match(input,VOID_TYPE,FOLLOW_VOID_TYPE_in_simple_name1942);
+					stream_VOID_TYPE.add(VOID_TYPE58);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 561:15: -> SIMPLE_NAME[$VOID_TYPE]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, VOID_TYPE58));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 14 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:562:5: ANNOTATION_VISIBILITY
+					{
+					ANNOTATION_VISIBILITY59=(Token)match(input,ANNOTATION_VISIBILITY,FOLLOW_ANNOTATION_VISIBILITY_in_simple_name1953);
+					stream_ANNOTATION_VISIBILITY.add(ANNOTATION_VISIBILITY59);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 562:27: -> SIMPLE_NAME[$ANNOTATION_VISIBILITY]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, ANNOTATION_VISIBILITY59));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 15 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:563:5: INSTRUCTION_FORMAT10t
+					{
+					INSTRUCTION_FORMAT10t60=(Token)match(input,INSTRUCTION_FORMAT10t,FOLLOW_INSTRUCTION_FORMAT10t_in_simple_name1964);
+					stream_INSTRUCTION_FORMAT10t.add(INSTRUCTION_FORMAT10t60);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 563:27: -> SIMPLE_NAME[$INSTRUCTION_FORMAT10t]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT10t60));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 16 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:564:5: INSTRUCTION_FORMAT10x
+					{
+					INSTRUCTION_FORMAT10x61=(Token)match(input,INSTRUCTION_FORMAT10x,FOLLOW_INSTRUCTION_FORMAT10x_in_simple_name1975);
+					stream_INSTRUCTION_FORMAT10x.add(INSTRUCTION_FORMAT10x61);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 564:27: -> SIMPLE_NAME[$INSTRUCTION_FORMAT10x]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT10x61));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 17 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:565:5: INSTRUCTION_FORMAT10x_ODEX
+					{
+					INSTRUCTION_FORMAT10x_ODEX62=(Token)match(input,INSTRUCTION_FORMAT10x_ODEX,FOLLOW_INSTRUCTION_FORMAT10x_ODEX_in_simple_name1986);
+					stream_INSTRUCTION_FORMAT10x_ODEX.add(INSTRUCTION_FORMAT10x_ODEX62);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 565:32: -> SIMPLE_NAME[$INSTRUCTION_FORMAT10x_ODEX]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT10x_ODEX62));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 18 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:566:5: INSTRUCTION_FORMAT11x
+					{
+					INSTRUCTION_FORMAT11x63=(Token)match(input,INSTRUCTION_FORMAT11x,FOLLOW_INSTRUCTION_FORMAT11x_in_simple_name1997);
+					stream_INSTRUCTION_FORMAT11x.add(INSTRUCTION_FORMAT11x63);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 566:27: -> SIMPLE_NAME[$INSTRUCTION_FORMAT11x]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT11x63));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 19 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:567:5: INSTRUCTION_FORMAT12x_OR_ID
+					{
+					INSTRUCTION_FORMAT12x_OR_ID64=(Token)match(input,INSTRUCTION_FORMAT12x_OR_ID,FOLLOW_INSTRUCTION_FORMAT12x_OR_ID_in_simple_name2008);
+					stream_INSTRUCTION_FORMAT12x_OR_ID.add(INSTRUCTION_FORMAT12x_OR_ID64);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 567:33: -> SIMPLE_NAME[$INSTRUCTION_FORMAT12x_OR_ID]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT12x_OR_ID64));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 20 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:568:5: INSTRUCTION_FORMAT21c_FIELD
+					{
+					INSTRUCTION_FORMAT21c_FIELD65=(Token)match(input,INSTRUCTION_FORMAT21c_FIELD,FOLLOW_INSTRUCTION_FORMAT21c_FIELD_in_simple_name2019);
+					stream_INSTRUCTION_FORMAT21c_FIELD.add(INSTRUCTION_FORMAT21c_FIELD65);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 568:33: -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_FIELD]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT21c_FIELD65));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 21 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:569:5: INSTRUCTION_FORMAT21c_FIELD_ODEX
+					{
+					INSTRUCTION_FORMAT21c_FIELD_ODEX66=(Token)match(input,INSTRUCTION_FORMAT21c_FIELD_ODEX,FOLLOW_INSTRUCTION_FORMAT21c_FIELD_ODEX_in_simple_name2030);
+					stream_INSTRUCTION_FORMAT21c_FIELD_ODEX.add(INSTRUCTION_FORMAT21c_FIELD_ODEX66);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 569:38: -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_FIELD_ODEX]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT21c_FIELD_ODEX66));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 22 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:570:5: INSTRUCTION_FORMAT21c_STRING
+					{
+					INSTRUCTION_FORMAT21c_STRING67=(Token)match(input,INSTRUCTION_FORMAT21c_STRING,FOLLOW_INSTRUCTION_FORMAT21c_STRING_in_simple_name2041);
+					stream_INSTRUCTION_FORMAT21c_STRING.add(INSTRUCTION_FORMAT21c_STRING67);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 570:34: -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_STRING]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT21c_STRING67));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 23 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:571:5: INSTRUCTION_FORMAT21c_TYPE
+					{
+					INSTRUCTION_FORMAT21c_TYPE68=(Token)match(input,INSTRUCTION_FORMAT21c_TYPE,FOLLOW_INSTRUCTION_FORMAT21c_TYPE_in_simple_name2052);
+					stream_INSTRUCTION_FORMAT21c_TYPE.add(INSTRUCTION_FORMAT21c_TYPE68);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 571:32: -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_TYPE]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT21c_TYPE68));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 24 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:572:5: INSTRUCTION_FORMAT21c_LAMBDA
+					{
+					INSTRUCTION_FORMAT21c_LAMBDA69=(Token)match(input,INSTRUCTION_FORMAT21c_LAMBDA,FOLLOW_INSTRUCTION_FORMAT21c_LAMBDA_in_simple_name2063);
+					stream_INSTRUCTION_FORMAT21c_LAMBDA.add(INSTRUCTION_FORMAT21c_LAMBDA69);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 572:34: -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_LAMBDA]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT21c_LAMBDA69));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 25 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:573:5: INSTRUCTION_FORMAT21c_METHOD
+					{
+					INSTRUCTION_FORMAT21c_METHOD70=(Token)match(input,INSTRUCTION_FORMAT21c_METHOD,FOLLOW_INSTRUCTION_FORMAT21c_METHOD_in_simple_name2074);
+					stream_INSTRUCTION_FORMAT21c_METHOD.add(INSTRUCTION_FORMAT21c_METHOD70);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 573:34: -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_METHOD]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT21c_METHOD70));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 26 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:574:5: INSTRUCTION_FORMAT21t
+					{
+					INSTRUCTION_FORMAT21t71=(Token)match(input,INSTRUCTION_FORMAT21t,FOLLOW_INSTRUCTION_FORMAT21t_in_simple_name2085);
+					stream_INSTRUCTION_FORMAT21t.add(INSTRUCTION_FORMAT21t71);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 574:27: -> SIMPLE_NAME[$INSTRUCTION_FORMAT21t]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT21t71));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 27 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:575:5: INSTRUCTION_FORMAT22c_FIELD
+					{
+					INSTRUCTION_FORMAT22c_FIELD72=(Token)match(input,INSTRUCTION_FORMAT22c_FIELD,FOLLOW_INSTRUCTION_FORMAT22c_FIELD_in_simple_name2096);
+					stream_INSTRUCTION_FORMAT22c_FIELD.add(INSTRUCTION_FORMAT22c_FIELD72);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 575:33: -> SIMPLE_NAME[$INSTRUCTION_FORMAT22c_FIELD]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT22c_FIELD72));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 28 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:576:5: INSTRUCTION_FORMAT22c_FIELD_ODEX
+					{
+					INSTRUCTION_FORMAT22c_FIELD_ODEX73=(Token)match(input,INSTRUCTION_FORMAT22c_FIELD_ODEX,FOLLOW_INSTRUCTION_FORMAT22c_FIELD_ODEX_in_simple_name2107);
+					stream_INSTRUCTION_FORMAT22c_FIELD_ODEX.add(INSTRUCTION_FORMAT22c_FIELD_ODEX73);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 576:38: -> SIMPLE_NAME[$INSTRUCTION_FORMAT22c_FIELD_ODEX]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT22c_FIELD_ODEX73));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 29 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:577:5: INSTRUCTION_FORMAT22c_TYPE
+					{
+					INSTRUCTION_FORMAT22c_TYPE74=(Token)match(input,INSTRUCTION_FORMAT22c_TYPE,FOLLOW_INSTRUCTION_FORMAT22c_TYPE_in_simple_name2118);
+					stream_INSTRUCTION_FORMAT22c_TYPE.add(INSTRUCTION_FORMAT22c_TYPE74);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 577:32: -> SIMPLE_NAME[$INSTRUCTION_FORMAT22c_TYPE]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT22c_TYPE74));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 30 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:578:5: INSTRUCTION_FORMAT22c_STRING
+					{
+					INSTRUCTION_FORMAT22c_STRING75=(Token)match(input,INSTRUCTION_FORMAT22c_STRING,FOLLOW_INSTRUCTION_FORMAT22c_STRING_in_simple_name2129);
+					stream_INSTRUCTION_FORMAT22c_STRING.add(INSTRUCTION_FORMAT22c_STRING75);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 578:34: -> SIMPLE_NAME[$INSTRUCTION_FORMAT22c_STRING]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT22c_STRING75));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 31 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:579:5: INSTRUCTION_FORMAT22cs_FIELD
+					{
+					INSTRUCTION_FORMAT22cs_FIELD76=(Token)match(input,INSTRUCTION_FORMAT22cs_FIELD,FOLLOW_INSTRUCTION_FORMAT22cs_FIELD_in_simple_name2140);
+					stream_INSTRUCTION_FORMAT22cs_FIELD.add(INSTRUCTION_FORMAT22cs_FIELD76);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 579:34: -> SIMPLE_NAME[$INSTRUCTION_FORMAT22cs_FIELD]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT22cs_FIELD76));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 32 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:580:5: INSTRUCTION_FORMAT22s_OR_ID
+					{
+					INSTRUCTION_FORMAT22s_OR_ID77=(Token)match(input,INSTRUCTION_FORMAT22s_OR_ID,FOLLOW_INSTRUCTION_FORMAT22s_OR_ID_in_simple_name2151);
+					stream_INSTRUCTION_FORMAT22s_OR_ID.add(INSTRUCTION_FORMAT22s_OR_ID77);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 580:33: -> SIMPLE_NAME[$INSTRUCTION_FORMAT22s_OR_ID]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT22s_OR_ID77));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 33 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:581:5: INSTRUCTION_FORMAT22t
+					{
+					INSTRUCTION_FORMAT22t78=(Token)match(input,INSTRUCTION_FORMAT22t,FOLLOW_INSTRUCTION_FORMAT22t_in_simple_name2162);
+					stream_INSTRUCTION_FORMAT22t.add(INSTRUCTION_FORMAT22t78);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 581:27: -> SIMPLE_NAME[$INSTRUCTION_FORMAT22t]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT22t78));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 34 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:582:5: INSTRUCTION_FORMAT23x
+					{
+					INSTRUCTION_FORMAT23x79=(Token)match(input,INSTRUCTION_FORMAT23x,FOLLOW_INSTRUCTION_FORMAT23x_in_simple_name2173);
+					stream_INSTRUCTION_FORMAT23x.add(INSTRUCTION_FORMAT23x79);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 582:27: -> SIMPLE_NAME[$INSTRUCTION_FORMAT23x]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT23x79));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 35 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:583:5: INSTRUCTION_FORMAT25x
+					{
+					INSTRUCTION_FORMAT25x80=(Token)match(input,INSTRUCTION_FORMAT25x,FOLLOW_INSTRUCTION_FORMAT25x_in_simple_name2184);
+					stream_INSTRUCTION_FORMAT25x.add(INSTRUCTION_FORMAT25x80);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 583:27: -> SIMPLE_NAME[$INSTRUCTION_FORMAT25x]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT25x80));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 36 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:584:5: INSTRUCTION_FORMAT31i_OR_ID
+					{
+					INSTRUCTION_FORMAT31i_OR_ID81=(Token)match(input,INSTRUCTION_FORMAT31i_OR_ID,FOLLOW_INSTRUCTION_FORMAT31i_OR_ID_in_simple_name2195);
+					stream_INSTRUCTION_FORMAT31i_OR_ID.add(INSTRUCTION_FORMAT31i_OR_ID81);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 584:33: -> SIMPLE_NAME[$INSTRUCTION_FORMAT31i_OR_ID]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT31i_OR_ID81));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 37 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:585:5: INSTRUCTION_FORMAT31t
+					{
+					INSTRUCTION_FORMAT31t82=(Token)match(input,INSTRUCTION_FORMAT31t,FOLLOW_INSTRUCTION_FORMAT31t_in_simple_name2206);
+					stream_INSTRUCTION_FORMAT31t.add(INSTRUCTION_FORMAT31t82);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 585:27: -> SIMPLE_NAME[$INSTRUCTION_FORMAT31t]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT31t82));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 38 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:586:5: INSTRUCTION_FORMAT35c_METHOD
+					{
+					INSTRUCTION_FORMAT35c_METHOD83=(Token)match(input,INSTRUCTION_FORMAT35c_METHOD,FOLLOW_INSTRUCTION_FORMAT35c_METHOD_in_simple_name2217);
+					stream_INSTRUCTION_FORMAT35c_METHOD.add(INSTRUCTION_FORMAT35c_METHOD83);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 586:34: -> SIMPLE_NAME[$INSTRUCTION_FORMAT35c_METHOD]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT35c_METHOD83));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 39 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:587:5: INSTRUCTION_FORMAT35c_METHOD_ODEX
+					{
+					INSTRUCTION_FORMAT35c_METHOD_ODEX84=(Token)match(input,INSTRUCTION_FORMAT35c_METHOD_ODEX,FOLLOW_INSTRUCTION_FORMAT35c_METHOD_ODEX_in_simple_name2228);
+					stream_INSTRUCTION_FORMAT35c_METHOD_ODEX.add(INSTRUCTION_FORMAT35c_METHOD_ODEX84);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 587:39: -> SIMPLE_NAME[$INSTRUCTION_FORMAT35c_METHOD_ODEX]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT35c_METHOD_ODEX84));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 40 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:588:5: INSTRUCTION_FORMAT35c_TYPE
+					{
+					INSTRUCTION_FORMAT35c_TYPE85=(Token)match(input,INSTRUCTION_FORMAT35c_TYPE,FOLLOW_INSTRUCTION_FORMAT35c_TYPE_in_simple_name2239);
+					stream_INSTRUCTION_FORMAT35c_TYPE.add(INSTRUCTION_FORMAT35c_TYPE85);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 588:32: -> SIMPLE_NAME[$INSTRUCTION_FORMAT35c_TYPE]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT35c_TYPE85));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 41 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:589:5: INSTRUCTION_FORMAT35mi_METHOD
+					{
+					INSTRUCTION_FORMAT35mi_METHOD86=(Token)match(input,INSTRUCTION_FORMAT35mi_METHOD,FOLLOW_INSTRUCTION_FORMAT35mi_METHOD_in_simple_name2250);
+					stream_INSTRUCTION_FORMAT35mi_METHOD.add(INSTRUCTION_FORMAT35mi_METHOD86);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 589:35: -> SIMPLE_NAME[$INSTRUCTION_FORMAT35mi_METHOD]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT35mi_METHOD86));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 42 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:590:5: INSTRUCTION_FORMAT35ms_METHOD
+					{
+					INSTRUCTION_FORMAT35ms_METHOD87=(Token)match(input,INSTRUCTION_FORMAT35ms_METHOD,FOLLOW_INSTRUCTION_FORMAT35ms_METHOD_in_simple_name2261);
+					stream_INSTRUCTION_FORMAT35ms_METHOD.add(INSTRUCTION_FORMAT35ms_METHOD87);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 590:35: -> SIMPLE_NAME[$INSTRUCTION_FORMAT35ms_METHOD]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT35ms_METHOD87));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 43 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:591:5: INSTRUCTION_FORMAT51l
+					{
+					INSTRUCTION_FORMAT51l88=(Token)match(input,INSTRUCTION_FORMAT51l,FOLLOW_INSTRUCTION_FORMAT51l_in_simple_name2272);
+					stream_INSTRUCTION_FORMAT51l.add(INSTRUCTION_FORMAT51l88);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 591:27: -> SIMPLE_NAME[$INSTRUCTION_FORMAT51l]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT51l88));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+
+			}
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "simple_name"
+
+
+	public static class member_name_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "member_name"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:593:1: member_name : ( simple_name | MEMBER_NAME -> SIMPLE_NAME[$MEMBER_NAME] );
+	public final smaliParser.member_name_return member_name() throws RecognitionException {
+		smaliParser.member_name_return retval = new smaliParser.member_name_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token MEMBER_NAME90=null;
+		ParserRuleReturnScope simple_name89 =null;
+
+		CommonTree MEMBER_NAME90_tree=null;
+		RewriteRuleTokenStream stream_MEMBER_NAME=new RewriteRuleTokenStream(adaptor,"token MEMBER_NAME");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:594:3: ( simple_name | MEMBER_NAME -> SIMPLE_NAME[$MEMBER_NAME] )
+			int alt11=2;
+			int LA11_0 = input.LA(1);
+			if ( (LA11_0==ACCESS_SPEC||LA11_0==ANNOTATION_VISIBILITY||LA11_0==BOOL_LITERAL||LA11_0==DOUBLE_LITERAL_OR_ID||LA11_0==FLOAT_LITERAL_OR_ID||(LA11_0 >= INSTRUCTION_FORMAT10t && LA11_0 <= INSTRUCTION_FORMAT10x_ODEX)||LA11_0==INSTRUCTION_FORMAT11x||LA11_0==INSTRUCTION_FORMAT12x_OR_ID||(LA11_0 >= INSTRUCTION_FORMAT21c_FIELD && LA11_0 <= INSTRUCTION_FORMAT21c_TYPE)||LA11_0==INSTRUCTION_FORMAT21t||(LA11_0 >= INSTRUCTION_FORMAT22c_FIELD && LA11_0 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA11_0 >= INSTRUCTION_FORMAT22s_OR_ID && LA11_0 <= INSTRUCTION_FORMAT22t)||(LA11_0 >= INSTRUCTION_FORMAT23x && LA11_0 <= INSTRUCTION_FORMAT25x)||(LA11_0 >= INSTRUCTION_FORMAT31i_OR_ID && LA11_0 <= INSTRUCTION_FORMAT31t)||(LA11_0 >= INSTRUCTION_FORMAT35c_METHOD && LA11_0 <= INSTRUCTION_FORMAT35ms_METHOD)||LA11_0==INSTRUCTION_FORMAT51l||(LA11_0 >= NEGATIVE_INTEGER_LITERAL && LA11_0 <= NULL_LITERAL)||LA11_0==PARAM_LIST_OR_ID_START||(LA11_0 >= POSITIVE_INTEGER_LITERAL && LA11_0 <= PRIMITIVE_TYPE)||LA11_0==REGISTER||LA11_0==SIMPLE_NAME||(LA11_0 >= VERIFICATION_ERROR_TYPE && LA11_0 <= VOID_TYPE)) ) {
+				alt11=1;
+			}
+			else if ( (LA11_0==MEMBER_NAME) ) {
+				alt11=2;
+			}
+
+			else {
+				NoViableAltException nvae =
+					new NoViableAltException("", 11, 0, input);
+				throw nvae;
+			}
+
+			switch (alt11) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:594:5: simple_name
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_simple_name_in_member_name2287);
+					simple_name89=simple_name();
+					state._fsp--;
+
+					adaptor.addChild(root_0, simple_name89.getTree());
+
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:595:5: MEMBER_NAME
+					{
+					MEMBER_NAME90=(Token)match(input,MEMBER_NAME,FOLLOW_MEMBER_NAME_in_member_name2293);
+					stream_MEMBER_NAME.add(MEMBER_NAME90);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 595:17: -> SIMPLE_NAME[$MEMBER_NAME]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, MEMBER_NAME90));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+
+			}
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "member_name"
+
+
+	public static class method_prototype_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "method_prototype"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:597:1: method_prototype : OPEN_PAREN param_list CLOSE_PAREN type_descriptor -> ^( I_METHOD_PROTOTYPE[$start, \"I_METHOD_PROTOTYPE\"] ^( I_METHOD_RETURN_TYPE type_descriptor ) ( param_list )? ) ;
+	public final smaliParser.method_prototype_return method_prototype() throws RecognitionException {
+		smaliParser.method_prototype_return retval = new smaliParser.method_prototype_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token OPEN_PAREN91=null;
+		Token CLOSE_PAREN93=null;
+		ParserRuleReturnScope param_list92 =null;
+		ParserRuleReturnScope type_descriptor94 =null;
+
+		CommonTree OPEN_PAREN91_tree=null;
+		CommonTree CLOSE_PAREN93_tree=null;
+		RewriteRuleTokenStream stream_OPEN_PAREN=new RewriteRuleTokenStream(adaptor,"token OPEN_PAREN");
+		RewriteRuleTokenStream stream_CLOSE_PAREN=new RewriteRuleTokenStream(adaptor,"token CLOSE_PAREN");
+		RewriteRuleSubtreeStream stream_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule type_descriptor");
+		RewriteRuleSubtreeStream stream_param_list=new RewriteRuleSubtreeStream(adaptor,"rule param_list");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:598:3: ( OPEN_PAREN param_list CLOSE_PAREN type_descriptor -> ^( I_METHOD_PROTOTYPE[$start, \"I_METHOD_PROTOTYPE\"] ^( I_METHOD_RETURN_TYPE type_descriptor ) ( param_list )? ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:598:5: OPEN_PAREN param_list CLOSE_PAREN type_descriptor
+			{
+			OPEN_PAREN91=(Token)match(input,OPEN_PAREN,FOLLOW_OPEN_PAREN_in_method_prototype2308);
+			stream_OPEN_PAREN.add(OPEN_PAREN91);
+
+			pushFollow(FOLLOW_param_list_in_method_prototype2310);
+			param_list92=param_list();
+			state._fsp--;
+
+			stream_param_list.add(param_list92.getTree());
+			CLOSE_PAREN93=(Token)match(input,CLOSE_PAREN,FOLLOW_CLOSE_PAREN_in_method_prototype2312);
+			stream_CLOSE_PAREN.add(CLOSE_PAREN93);
+
+			pushFollow(FOLLOW_type_descriptor_in_method_prototype2314);
+			type_descriptor94=type_descriptor();
+			state._fsp--;
+
+			stream_type_descriptor.add(type_descriptor94.getTree());
+			// AST REWRITE
+			// elements: type_descriptor, param_list
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 599:5: -> ^( I_METHOD_PROTOTYPE[$start, \"I_METHOD_PROTOTYPE\"] ^( I_METHOD_RETURN_TYPE type_descriptor ) ( param_list )? )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:599:8: ^( I_METHOD_PROTOTYPE[$start, \"I_METHOD_PROTOTYPE\"] ^( I_METHOD_RETURN_TYPE type_descriptor ) ( param_list )? )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_METHOD_PROTOTYPE, (retval.start), "I_METHOD_PROTOTYPE"), root_1);
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:599:59: ^( I_METHOD_RETURN_TYPE type_descriptor )
+				{
+				CommonTree root_2 = (CommonTree)adaptor.nil();
+				root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_METHOD_RETURN_TYPE, "I_METHOD_RETURN_TYPE"), root_2);
+				adaptor.addChild(root_2, stream_type_descriptor.nextTree());
+				adaptor.addChild(root_1, root_2);
+				}
+
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:599:99: ( param_list )?
+				if ( stream_param_list.hasNext() ) {
+					adaptor.addChild(root_1, stream_param_list.nextTree());
+				}
+				stream_param_list.reset();
+
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "method_prototype"
+
+
+	public static class param_list_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "param_list"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:601:1: param_list : ( PARAM_LIST_START ( nonvoid_type_descriptor )* PARAM_LIST_END -> ( nonvoid_type_descriptor )* | PARAM_LIST_OR_ID_START ( PRIMITIVE_TYPE )* PARAM_LIST_OR_ID_END -> ( PRIMITIVE_TYPE )* | ( nonvoid_type_descriptor )* );
+	public final smaliParser.param_list_return param_list() throws RecognitionException {
+		smaliParser.param_list_return retval = new smaliParser.param_list_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token PARAM_LIST_START95=null;
+		Token PARAM_LIST_END97=null;
+		Token PARAM_LIST_OR_ID_START98=null;
+		Token PRIMITIVE_TYPE99=null;
+		Token PARAM_LIST_OR_ID_END100=null;
+		ParserRuleReturnScope nonvoid_type_descriptor96 =null;
+		ParserRuleReturnScope nonvoid_type_descriptor101 =null;
+
+		CommonTree PARAM_LIST_START95_tree=null;
+		CommonTree PARAM_LIST_END97_tree=null;
+		CommonTree PARAM_LIST_OR_ID_START98_tree=null;
+		CommonTree PRIMITIVE_TYPE99_tree=null;
+		CommonTree PARAM_LIST_OR_ID_END100_tree=null;
+		RewriteRuleTokenStream stream_PARAM_LIST_OR_ID_START=new RewriteRuleTokenStream(adaptor,"token PARAM_LIST_OR_ID_START");
+		RewriteRuleTokenStream stream_PARAM_LIST_OR_ID_END=new RewriteRuleTokenStream(adaptor,"token PARAM_LIST_OR_ID_END");
+		RewriteRuleTokenStream stream_PARAM_LIST_START=new RewriteRuleTokenStream(adaptor,"token PARAM_LIST_START");
+		RewriteRuleTokenStream stream_PARAM_LIST_END=new RewriteRuleTokenStream(adaptor,"token PARAM_LIST_END");
+		RewriteRuleTokenStream stream_PRIMITIVE_TYPE=new RewriteRuleTokenStream(adaptor,"token PRIMITIVE_TYPE");
+		RewriteRuleSubtreeStream stream_nonvoid_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule nonvoid_type_descriptor");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:602:3: ( PARAM_LIST_START ( nonvoid_type_descriptor )* PARAM_LIST_END -> ( nonvoid_type_descriptor )* | PARAM_LIST_OR_ID_START ( PRIMITIVE_TYPE )* PARAM_LIST_OR_ID_END -> ( PRIMITIVE_TYPE )* | ( nonvoid_type_descriptor )* )
+			int alt15=3;
+			switch ( input.LA(1) ) {
+			case PARAM_LIST_START:
+				{
+				alt15=1;
+				}
+				break;
+			case PARAM_LIST_OR_ID_START:
+				{
+				alt15=2;
+				}
+				break;
+			case ARRAY_DESCRIPTOR:
+			case CLASS_DESCRIPTOR:
+			case CLOSE_PAREN:
+			case PRIMITIVE_TYPE:
+				{
+				alt15=3;
+				}
+				break;
+			default:
+				NoViableAltException nvae =
+					new NoViableAltException("", 15, 0, input);
+				throw nvae;
+			}
+			switch (alt15) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:602:5: PARAM_LIST_START ( nonvoid_type_descriptor )* PARAM_LIST_END
+					{
+					PARAM_LIST_START95=(Token)match(input,PARAM_LIST_START,FOLLOW_PARAM_LIST_START_in_param_list2344);
+					stream_PARAM_LIST_START.add(PARAM_LIST_START95);
+
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:602:22: ( nonvoid_type_descriptor )*
+					loop12:
+					while (true) {
+						int alt12=2;
+						int LA12_0 = input.LA(1);
+						if ( (LA12_0==ARRAY_DESCRIPTOR||LA12_0==CLASS_DESCRIPTOR||LA12_0==PRIMITIVE_TYPE) ) {
+							alt12=1;
+						}
+
+						switch (alt12) {
+						case 1 :
+							// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:602:22: nonvoid_type_descriptor
+							{
+							pushFollow(FOLLOW_nonvoid_type_descriptor_in_param_list2346);
+							nonvoid_type_descriptor96=nonvoid_type_descriptor();
+							state._fsp--;
+
+							stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor96.getTree());
+							}
+							break;
+
+						default :
+							break loop12;
+						}
+					}
+
+					PARAM_LIST_END97=(Token)match(input,PARAM_LIST_END,FOLLOW_PARAM_LIST_END_in_param_list2349);
+					stream_PARAM_LIST_END.add(PARAM_LIST_END97);
+
+					// AST REWRITE
+					// elements: nonvoid_type_descriptor
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 602:62: -> ( nonvoid_type_descriptor )*
+					{
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:602:65: ( nonvoid_type_descriptor )*
+						while ( stream_nonvoid_type_descriptor.hasNext() ) {
+							adaptor.addChild(root_0, stream_nonvoid_type_descriptor.nextTree());
+						}
+						stream_nonvoid_type_descriptor.reset();
+
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:603:5: PARAM_LIST_OR_ID_START ( PRIMITIVE_TYPE )* PARAM_LIST_OR_ID_END
+					{
+					PARAM_LIST_OR_ID_START98=(Token)match(input,PARAM_LIST_OR_ID_START,FOLLOW_PARAM_LIST_OR_ID_START_in_param_list2360);
+					stream_PARAM_LIST_OR_ID_START.add(PARAM_LIST_OR_ID_START98);
+
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:603:28: ( PRIMITIVE_TYPE )*
+					loop13:
+					while (true) {
+						int alt13=2;
+						int LA13_0 = input.LA(1);
+						if ( (LA13_0==PRIMITIVE_TYPE) ) {
+							alt13=1;
+						}
+
+						switch (alt13) {
+						case 1 :
+							// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:603:28: PRIMITIVE_TYPE
+							{
+							PRIMITIVE_TYPE99=(Token)match(input,PRIMITIVE_TYPE,FOLLOW_PRIMITIVE_TYPE_in_param_list2362);
+							stream_PRIMITIVE_TYPE.add(PRIMITIVE_TYPE99);
+
+							}
+							break;
+
+						default :
+							break loop13;
+						}
+					}
+
+					PARAM_LIST_OR_ID_END100=(Token)match(input,PARAM_LIST_OR_ID_END,FOLLOW_PARAM_LIST_OR_ID_END_in_param_list2365);
+					stream_PARAM_LIST_OR_ID_END.add(PARAM_LIST_OR_ID_END100);
+
+					// AST REWRITE
+					// elements: PRIMITIVE_TYPE
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 603:65: -> ( PRIMITIVE_TYPE )*
+					{
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:603:68: ( PRIMITIVE_TYPE )*
+						while ( stream_PRIMITIVE_TYPE.hasNext() ) {
+							adaptor.addChild(root_0, stream_PRIMITIVE_TYPE.nextNode());
+						}
+						stream_PRIMITIVE_TYPE.reset();
+
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 3 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:604:5: ( nonvoid_type_descriptor )*
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:604:5: ( nonvoid_type_descriptor )*
+					loop14:
+					while (true) {
+						int alt14=2;
+						int LA14_0 = input.LA(1);
+						if ( (LA14_0==ARRAY_DESCRIPTOR||LA14_0==CLASS_DESCRIPTOR||LA14_0==PRIMITIVE_TYPE) ) {
+							alt14=1;
+						}
+
+						switch (alt14) {
+						case 1 :
+							// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:604:5: nonvoid_type_descriptor
+							{
+							pushFollow(FOLLOW_nonvoid_type_descriptor_in_param_list2376);
+							nonvoid_type_descriptor101=nonvoid_type_descriptor();
+							state._fsp--;
+
+							adaptor.addChild(root_0, nonvoid_type_descriptor101.getTree());
+
+							}
+							break;
+
+						default :
+							break loop14;
+						}
+					}
+
+					}
+					break;
+
+			}
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "param_list"
+
+
+	public static class type_descriptor_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "type_descriptor"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:606:1: type_descriptor : ( VOID_TYPE | PRIMITIVE_TYPE | CLASS_DESCRIPTOR | ARRAY_DESCRIPTOR );
+	public final smaliParser.type_descriptor_return type_descriptor() throws RecognitionException {
+		smaliParser.type_descriptor_return retval = new smaliParser.type_descriptor_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token set102=null;
+
+		CommonTree set102_tree=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:607:3: ( VOID_TYPE | PRIMITIVE_TYPE | CLASS_DESCRIPTOR | ARRAY_DESCRIPTOR )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:
+			{
+			root_0 = (CommonTree)adaptor.nil();
+
+
+			set102=input.LT(1);
+			if ( input.LA(1)==ARRAY_DESCRIPTOR||input.LA(1)==CLASS_DESCRIPTOR||input.LA(1)==PRIMITIVE_TYPE||input.LA(1)==VOID_TYPE ) {
+				input.consume();
+				adaptor.addChild(root_0, (CommonTree)adaptor.create(set102));
+				state.errorRecovery=false;
+			}
+			else {
+				MismatchedSetException mse = new MismatchedSetException(null,input);
+				throw mse;
+			}
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "type_descriptor"
+
+
+	public static class nonvoid_type_descriptor_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "nonvoid_type_descriptor"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:612:1: nonvoid_type_descriptor : ( PRIMITIVE_TYPE | CLASS_DESCRIPTOR | ARRAY_DESCRIPTOR );
+	public final smaliParser.nonvoid_type_descriptor_return nonvoid_type_descriptor() throws RecognitionException {
+		smaliParser.nonvoid_type_descriptor_return retval = new smaliParser.nonvoid_type_descriptor_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token set103=null;
+
+		CommonTree set103_tree=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:613:3: ( PRIMITIVE_TYPE | CLASS_DESCRIPTOR | ARRAY_DESCRIPTOR )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:
+			{
+			root_0 = (CommonTree)adaptor.nil();
+
+
+			set103=input.LT(1);
+			if ( input.LA(1)==ARRAY_DESCRIPTOR||input.LA(1)==CLASS_DESCRIPTOR||input.LA(1)==PRIMITIVE_TYPE ) {
+				input.consume();
+				adaptor.addChild(root_0, (CommonTree)adaptor.create(set103));
+				state.errorRecovery=false;
+			}
+			else {
+				MismatchedSetException mse = new MismatchedSetException(null,input);
+				throw mse;
+			}
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "nonvoid_type_descriptor"
+
+
+	public static class reference_type_descriptor_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "reference_type_descriptor"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:617:1: reference_type_descriptor : ( CLASS_DESCRIPTOR | ARRAY_DESCRIPTOR );
+	public final smaliParser.reference_type_descriptor_return reference_type_descriptor() throws RecognitionException {
+		smaliParser.reference_type_descriptor_return retval = new smaliParser.reference_type_descriptor_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token set104=null;
+
+		CommonTree set104_tree=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:618:3: ( CLASS_DESCRIPTOR | ARRAY_DESCRIPTOR )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:
+			{
+			root_0 = (CommonTree)adaptor.nil();
+
+
+			set104=input.LT(1);
+			if ( input.LA(1)==ARRAY_DESCRIPTOR||input.LA(1)==CLASS_DESCRIPTOR ) {
+				input.consume();
+				adaptor.addChild(root_0, (CommonTree)adaptor.create(set104));
+				state.errorRecovery=false;
+			}
+			else {
+				MismatchedSetException mse = new MismatchedSetException(null,input);
+				throw mse;
+			}
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "reference_type_descriptor"
+
+
+	public static class integer_literal_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "integer_literal"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:621:1: integer_literal : ( POSITIVE_INTEGER_LITERAL -> INTEGER_LITERAL[$POSITIVE_INTEGER_LITERAL] | NEGATIVE_INTEGER_LITERAL -> INTEGER_LITERAL[$NEGATIVE_INTEGER_LITERAL] );
+	public final smaliParser.integer_literal_return integer_literal() throws RecognitionException {
+		smaliParser.integer_literal_return retval = new smaliParser.integer_literal_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token POSITIVE_INTEGER_LITERAL105=null;
+		Token NEGATIVE_INTEGER_LITERAL106=null;
+
+		CommonTree POSITIVE_INTEGER_LITERAL105_tree=null;
+		CommonTree NEGATIVE_INTEGER_LITERAL106_tree=null;
+		RewriteRuleTokenStream stream_NEGATIVE_INTEGER_LITERAL=new RewriteRuleTokenStream(adaptor,"token NEGATIVE_INTEGER_LITERAL");
+		RewriteRuleTokenStream stream_POSITIVE_INTEGER_LITERAL=new RewriteRuleTokenStream(adaptor,"token POSITIVE_INTEGER_LITERAL");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:622:3: ( POSITIVE_INTEGER_LITERAL -> INTEGER_LITERAL[$POSITIVE_INTEGER_LITERAL] | NEGATIVE_INTEGER_LITERAL -> INTEGER_LITERAL[$NEGATIVE_INTEGER_LITERAL] )
+			int alt16=2;
+			int LA16_0 = input.LA(1);
+			if ( (LA16_0==POSITIVE_INTEGER_LITERAL) ) {
+				alt16=1;
+			}
+			else if ( (LA16_0==NEGATIVE_INTEGER_LITERAL) ) {
+				alt16=2;
+			}
+
+			else {
+				NoViableAltException nvae =
+					new NoViableAltException("", 16, 0, input);
+				throw nvae;
+			}
+
+			switch (alt16) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:622:5: POSITIVE_INTEGER_LITERAL
+					{
+					POSITIVE_INTEGER_LITERAL105=(Token)match(input,POSITIVE_INTEGER_LITERAL,FOLLOW_POSITIVE_INTEGER_LITERAL_in_integer_literal2453);
+					stream_POSITIVE_INTEGER_LITERAL.add(POSITIVE_INTEGER_LITERAL105);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 622:30: -> INTEGER_LITERAL[$POSITIVE_INTEGER_LITERAL]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(INTEGER_LITERAL, POSITIVE_INTEGER_LITERAL105));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:623:5: NEGATIVE_INTEGER_LITERAL
+					{
+					NEGATIVE_INTEGER_LITERAL106=(Token)match(input,NEGATIVE_INTEGER_LITERAL,FOLLOW_NEGATIVE_INTEGER_LITERAL_in_integer_literal2464);
+					stream_NEGATIVE_INTEGER_LITERAL.add(NEGATIVE_INTEGER_LITERAL106);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 623:30: -> INTEGER_LITERAL[$NEGATIVE_INTEGER_LITERAL]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(INTEGER_LITERAL, NEGATIVE_INTEGER_LITERAL106));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+
+			}
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "integer_literal"
+
+
+	public static class float_literal_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "float_literal"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:625:1: float_literal : ( FLOAT_LITERAL_OR_ID -> FLOAT_LITERAL[$FLOAT_LITERAL_OR_ID] | FLOAT_LITERAL );
+	public final smaliParser.float_literal_return float_literal() throws RecognitionException {
+		smaliParser.float_literal_return retval = new smaliParser.float_literal_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token FLOAT_LITERAL_OR_ID107=null;
+		Token FLOAT_LITERAL108=null;
+
+		CommonTree FLOAT_LITERAL_OR_ID107_tree=null;
+		CommonTree FLOAT_LITERAL108_tree=null;
+		RewriteRuleTokenStream stream_FLOAT_LITERAL_OR_ID=new RewriteRuleTokenStream(adaptor,"token FLOAT_LITERAL_OR_ID");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:626:3: ( FLOAT_LITERAL_OR_ID -> FLOAT_LITERAL[$FLOAT_LITERAL_OR_ID] | FLOAT_LITERAL )
+			int alt17=2;
+			int LA17_0 = input.LA(1);
+			if ( (LA17_0==FLOAT_LITERAL_OR_ID) ) {
+				alt17=1;
+			}
+			else if ( (LA17_0==FLOAT_LITERAL) ) {
+				alt17=2;
+			}
+
+			else {
+				NoViableAltException nvae =
+					new NoViableAltException("", 17, 0, input);
+				throw nvae;
+			}
+
+			switch (alt17) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:626:5: FLOAT_LITERAL_OR_ID
+					{
+					FLOAT_LITERAL_OR_ID107=(Token)match(input,FLOAT_LITERAL_OR_ID,FOLLOW_FLOAT_LITERAL_OR_ID_in_float_literal2479);
+					stream_FLOAT_LITERAL_OR_ID.add(FLOAT_LITERAL_OR_ID107);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 626:25: -> FLOAT_LITERAL[$FLOAT_LITERAL_OR_ID]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(FLOAT_LITERAL, FLOAT_LITERAL_OR_ID107));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:627:5: FLOAT_LITERAL
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					FLOAT_LITERAL108=(Token)match(input,FLOAT_LITERAL,FOLLOW_FLOAT_LITERAL_in_float_literal2490);
+					FLOAT_LITERAL108_tree = (CommonTree)adaptor.create(FLOAT_LITERAL108);
+					adaptor.addChild(root_0, FLOAT_LITERAL108_tree);
+
+					}
+					break;
+
+			}
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "float_literal"
+
+
+	public static class double_literal_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "double_literal"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:629:1: double_literal : ( DOUBLE_LITERAL_OR_ID -> DOUBLE_LITERAL[$DOUBLE_LITERAL_OR_ID] | DOUBLE_LITERAL );
+	public final smaliParser.double_literal_return double_literal() throws RecognitionException {
+		smaliParser.double_literal_return retval = new smaliParser.double_literal_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token DOUBLE_LITERAL_OR_ID109=null;
+		Token DOUBLE_LITERAL110=null;
+
+		CommonTree DOUBLE_LITERAL_OR_ID109_tree=null;
+		CommonTree DOUBLE_LITERAL110_tree=null;
+		RewriteRuleTokenStream stream_DOUBLE_LITERAL_OR_ID=new RewriteRuleTokenStream(adaptor,"token DOUBLE_LITERAL_OR_ID");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:630:3: ( DOUBLE_LITERAL_OR_ID -> DOUBLE_LITERAL[$DOUBLE_LITERAL_OR_ID] | DOUBLE_LITERAL )
+			int alt18=2;
+			int LA18_0 = input.LA(1);
+			if ( (LA18_0==DOUBLE_LITERAL_OR_ID) ) {
+				alt18=1;
+			}
+			else if ( (LA18_0==DOUBLE_LITERAL) ) {
+				alt18=2;
+			}
+
+			else {
+				NoViableAltException nvae =
+					new NoViableAltException("", 18, 0, input);
+				throw nvae;
+			}
+
+			switch (alt18) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:630:5: DOUBLE_LITERAL_OR_ID
+					{
+					DOUBLE_LITERAL_OR_ID109=(Token)match(input,DOUBLE_LITERAL_OR_ID,FOLLOW_DOUBLE_LITERAL_OR_ID_in_double_literal2500);
+					stream_DOUBLE_LITERAL_OR_ID.add(DOUBLE_LITERAL_OR_ID109);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 630:26: -> DOUBLE_LITERAL[$DOUBLE_LITERAL_OR_ID]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(DOUBLE_LITERAL, DOUBLE_LITERAL_OR_ID109));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:631:5: DOUBLE_LITERAL
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					DOUBLE_LITERAL110=(Token)match(input,DOUBLE_LITERAL,FOLLOW_DOUBLE_LITERAL_in_double_literal2511);
+					DOUBLE_LITERAL110_tree = (CommonTree)adaptor.create(DOUBLE_LITERAL110);
+					adaptor.addChild(root_0, DOUBLE_LITERAL110_tree);
+
+					}
+					break;
+
+			}
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "double_literal"
+
+
+	public static class literal_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "literal"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:633:1: literal : ( LONG_LITERAL | integer_literal | SHORT_LITERAL | BYTE_LITERAL | float_literal | double_literal | CHAR_LITERAL | STRING_LITERAL | BOOL_LITERAL | NULL_LITERAL | array_literal | subannotation | type_field_method_literal | enum_literal );
+	public final smaliParser.literal_return literal() throws RecognitionException {
+		smaliParser.literal_return retval = new smaliParser.literal_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token LONG_LITERAL111=null;
+		Token SHORT_LITERAL113=null;
+		Token BYTE_LITERAL114=null;
+		Token CHAR_LITERAL117=null;
+		Token STRING_LITERAL118=null;
+		Token BOOL_LITERAL119=null;
+		Token NULL_LITERAL120=null;
+		ParserRuleReturnScope integer_literal112 =null;
+		ParserRuleReturnScope float_literal115 =null;
+		ParserRuleReturnScope double_literal116 =null;
+		ParserRuleReturnScope array_literal121 =null;
+		ParserRuleReturnScope subannotation122 =null;
+		ParserRuleReturnScope type_field_method_literal123 =null;
+		ParserRuleReturnScope enum_literal124 =null;
+
+		CommonTree LONG_LITERAL111_tree=null;
+		CommonTree SHORT_LITERAL113_tree=null;
+		CommonTree BYTE_LITERAL114_tree=null;
+		CommonTree CHAR_LITERAL117_tree=null;
+		CommonTree STRING_LITERAL118_tree=null;
+		CommonTree BOOL_LITERAL119_tree=null;
+		CommonTree NULL_LITERAL120_tree=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:634:3: ( LONG_LITERAL | integer_literal | SHORT_LITERAL | BYTE_LITERAL | float_literal | double_literal | CHAR_LITERAL | STRING_LITERAL | BOOL_LITERAL | NULL_LITERAL | array_literal | subannotation | type_field_method_literal | enum_literal )
+			int alt19=14;
+			switch ( input.LA(1) ) {
+			case LONG_LITERAL:
+				{
+				alt19=1;
+				}
+				break;
+			case POSITIVE_INTEGER_LITERAL:
+				{
+				int LA19_2 = input.LA(2);
+				if ( (LA19_2==EOF||(LA19_2 >= ACCESS_SPEC && LA19_2 <= ANNOTATION_VISIBILITY)||LA19_2==BOOL_LITERAL||(LA19_2 >= CLASS_DIRECTIVE && LA19_2 <= CLOSE_BRACE)||LA19_2==COMMA||(LA19_2 >= DOUBLE_LITERAL_OR_ID && LA19_2 <= END_ANNOTATION_DIRECTIVE)||LA19_2==END_FIELD_DIRECTIVE||LA19_2==END_SUBANNOTATION_DIRECTIVE||LA19_2==FIELD_DIRECTIVE||(LA19_2 >= FLOAT_LITERAL_OR_ID && LA19_2 <= IMPLEMENTS_DIRECTIVE)||(LA19_2 >= INSTRUCTION_FORMAT10t && LA19_2 <= INSTRUCTION_FORMAT10x_ODEX)||LA19_2==INSTRUCTION_FORMAT11x||LA19_2==INSTRUCTION_FORMAT12x_OR_ID||(LA19_2 >= INSTRUCTION_FORMAT21c_FIELD && LA19_2 <= INSTRUCTION_FORMAT21c_TYPE)||LA19_2==INSTRUCTION_FORMAT21t||(LA19_2 >= INSTRUCTION_FORMAT22c_FIELD && LA19_2 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA19_2 >= INSTRUCTION_FORMAT22s_OR_ID && LA19_2 <= INSTRUCTION_FORMAT22t)||(LA19_2 >= INSTRUCTION_FORMAT23x && LA19_2 <= INSTRUCTION_FORMAT25x)||(LA19_2 >= INSTRUCTION_FORMAT31i_OR_ID && LA19_2 <= INSTRUCTION_FORMAT31t)||(LA19_2 >= INSTRUCTION_FORMAT35c_METHOD && LA19_2 <= INSTRUCTION_FORMAT35ms_METHOD)||LA19_2==INSTRUCTION_FORMAT51l||(LA19_2 >= METHOD_DIRECTIVE && LA19_2 <= NULL_LITERAL)||LA19_2==PARAM_LIST_OR_ID_START||(LA19_2 >= POSITIVE_INTEGER_LITERAL && LA19_2 <= PRIMITIVE_TYPE)||LA19_2==REGISTER||(LA19_2 >= SIMPLE_NAME && LA19_2 <= SOURCE_DIRECTIVE)||(LA19_2 >= SUPER_DIRECTIVE && LA19_2 <= VOID_TYPE)) ) {
+					alt19=2;
+				}
+				else if ( (LA19_2==COLON||LA19_2==OPEN_PAREN) ) {
+					alt19=13;
+				}
+
+				else {
+					int nvaeMark = input.mark();
+					try {
+						input.consume();
+						NoViableAltException nvae =
+							new NoViableAltException("", 19, 2, input);
+						throw nvae;
+					} finally {
+						input.rewind(nvaeMark);
+					}
+				}
+
+				}
+				break;
+			case NEGATIVE_INTEGER_LITERAL:
+				{
+				int LA19_3 = input.LA(2);
+				if ( (LA19_3==EOF||(LA19_3 >= ACCESS_SPEC && LA19_3 <= ANNOTATION_VISIBILITY)||LA19_3==BOOL_LITERAL||(LA19_3 >= CLASS_DIRECTIVE && LA19_3 <= CLOSE_BRACE)||LA19_3==COMMA||(LA19_3 >= DOUBLE_LITERAL_OR_ID && LA19_3 <= END_ANNOTATION_DIRECTIVE)||LA19_3==END_FIELD_DIRECTIVE||LA19_3==END_SUBANNOTATION_DIRECTIVE||LA19_3==FIELD_DIRECTIVE||(LA19_3 >= FLOAT_LITERAL_OR_ID && LA19_3 <= IMPLEMENTS_DIRECTIVE)||(LA19_3 >= INSTRUCTION_FORMAT10t && LA19_3 <= INSTRUCTION_FORMAT10x_ODEX)||LA19_3==INSTRUCTION_FORMAT11x||LA19_3==INSTRUCTION_FORMAT12x_OR_ID||(LA19_3 >= INSTRUCTION_FORMAT21c_FIELD && LA19_3 <= INSTRUCTION_FORMAT21c_TYPE)||LA19_3==INSTRUCTION_FORMAT21t||(LA19_3 >= INSTRUCTION_FORMAT22c_FIELD && LA19_3 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA19_3 >= INSTRUCTION_FORMAT22s_OR_ID && LA19_3 <= INSTRUCTION_FORMAT22t)||(LA19_3 >= INSTRUCTION_FORMAT23x && LA19_3 <= INSTRUCTION_FORMAT25x)||(LA19_3 >= INSTRUCTION_FORMAT31i_OR_ID && LA19_3 <= INSTRUCTION_FORMAT31t)||(LA19_3 >= INSTRUCTION_FORMAT35c_METHOD && LA19_3 <= INSTRUCTION_FORMAT35ms_METHOD)||LA19_3==INSTRUCTION_FORMAT51l||(LA19_3 >= METHOD_DIRECTIVE && LA19_3 <= NULL_LITERAL)||LA19_3==PARAM_LIST_OR_ID_START||(LA19_3 >= POSITIVE_INTEGER_LITERAL && LA19_3 <= PRIMITIVE_TYPE)||LA19_3==REGISTER||(LA19_3 >= SIMPLE_NAME && LA19_3 <= SOURCE_DIRECTIVE)||(LA19_3 >= SUPER_DIRECTIVE && LA19_3 <= VOID_TYPE)) ) {
+					alt19=2;
+				}
+				else if ( (LA19_3==COLON||LA19_3==OPEN_PAREN) ) {
+					alt19=13;
+				}
+
+				else {
+					int nvaeMark = input.mark();
+					try {
+						input.consume();
+						NoViableAltException nvae =
+							new NoViableAltException("", 19, 3, input);
+						throw nvae;
+					} finally {
+						input.rewind(nvaeMark);
+					}
+				}
+
+				}
+				break;
+			case SHORT_LITERAL:
+				{
+				alt19=3;
+				}
+				break;
+			case BYTE_LITERAL:
+				{
+				alt19=4;
+				}
+				break;
+			case FLOAT_LITERAL_OR_ID:
+				{
+				int LA19_6 = input.LA(2);
+				if ( (LA19_6==EOF||(LA19_6 >= ACCESS_SPEC && LA19_6 <= ANNOTATION_VISIBILITY)||LA19_6==BOOL_LITERAL||(LA19_6 >= CLASS_DIRECTIVE && LA19_6 <= CLOSE_BRACE)||LA19_6==COMMA||(LA19_6 >= DOUBLE_LITERAL_OR_ID && LA19_6 <= END_ANNOTATION_DIRECTIVE)||LA19_6==END_FIELD_DIRECTIVE||LA19_6==END_SUBANNOTATION_DIRECTIVE||LA19_6==FIELD_DIRECTIVE||(LA19_6 >= FLOAT_LITERAL_OR_ID && LA19_6 <= IMPLEMENTS_DIRECTIVE)||(LA19_6 >= INSTRUCTION_FORMAT10t && LA19_6 <= INSTRUCTION_FORMAT10x_ODEX)||LA19_6==INSTRUCTION_FORMAT11x||LA19_6==INSTRUCTION_FORMAT12x_OR_ID||(LA19_6 >= INSTRUCTION_FORMAT21c_FIELD && LA19_6 <= INSTRUCTION_FORMAT21c_TYPE)||LA19_6==INSTRUCTION_FORMAT21t||(LA19_6 >= INSTRUCTION_FORMAT22c_FIELD && LA19_6 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA19_6 >= INSTRUCTION_FORMAT22s_OR_ID && LA19_6 <= INSTRUCTION_FORMAT22t)||(LA19_6 >= INSTRUCTION_FORMAT23x && LA19_6 <= INSTRUCTION_FORMAT25x)||(LA19_6 >= INSTRUCTION_FORMAT31i_OR_ID && LA19_6 <= INSTRUCTION_FORMAT31t)||(LA19_6 >= INSTRUCTION_FORMAT35c_METHOD && LA19_6 <= INSTRUCTION_FORMAT35ms_METHOD)||LA19_6==INSTRUCTION_FORMAT51l||(LA19_6 >= METHOD_DIRECTIVE && LA19_6 <= NULL_LITERAL)||LA19_6==PARAM_LIST_OR_ID_START||(LA19_6 >= POSITIVE_INTEGER_LITERAL && LA19_6 <= PRIMITIVE_TYPE)||LA19_6==REGISTER||(LA19_6 >= SIMPLE_NAME && LA19_6 <= SOURCE_DIRECTIVE)||(LA19_6 >= SUPER_DIRECTIVE && LA19_6 <= VOID_TYPE)) ) {
+					alt19=5;
+				}
+				else if ( (LA19_6==COLON||LA19_6==OPEN_PAREN) ) {
+					alt19=13;
+				}
+
+				else {
+					int nvaeMark = input.mark();
+					try {
+						input.consume();
+						NoViableAltException nvae =
+							new NoViableAltException("", 19, 6, input);
+						throw nvae;
+					} finally {
+						input.rewind(nvaeMark);
+					}
+				}
+
+				}
+				break;
+			case FLOAT_LITERAL:
+				{
+				alt19=5;
+				}
+				break;
+			case DOUBLE_LITERAL_OR_ID:
+				{
+				int LA19_8 = input.LA(2);
+				if ( (LA19_8==EOF||(LA19_8 >= ACCESS_SPEC && LA19_8 <= ANNOTATION_VISIBILITY)||LA19_8==BOOL_LITERAL||(LA19_8 >= CLASS_DIRECTIVE && LA19_8 <= CLOSE_BRACE)||LA19_8==COMMA||(LA19_8 >= DOUBLE_LITERAL_OR_ID && LA19_8 <= END_ANNOTATION_DIRECTIVE)||LA19_8==END_FIELD_DIRECTIVE||LA19_8==END_SUBANNOTATION_DIRECTIVE||LA19_8==FIELD_DIRECTIVE||(LA19_8 >= FLOAT_LITERAL_OR_ID && LA19_8 <= IMPLEMENTS_DIRECTIVE)||(LA19_8 >= INSTRUCTION_FORMAT10t && LA19_8 <= INSTRUCTION_FORMAT10x_ODEX)||LA19_8==INSTRUCTION_FORMAT11x||LA19_8==INSTRUCTION_FORMAT12x_OR_ID||(LA19_8 >= INSTRUCTION_FORMAT21c_FIELD && LA19_8 <= INSTRUCTION_FORMAT21c_TYPE)||LA19_8==INSTRUCTION_FORMAT21t||(LA19_8 >= INSTRUCTION_FORMAT22c_FIELD && LA19_8 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA19_8 >= INSTRUCTION_FORMAT22s_OR_ID && LA19_8 <= INSTRUCTION_FORMAT22t)||(LA19_8 >= INSTRUCTION_FORMAT23x && LA19_8 <= INSTRUCTION_FORMAT25x)||(LA19_8 >= INSTRUCTION_FORMAT31i_OR_ID && LA19_8 <= INSTRUCTION_FORMAT31t)||(LA19_8 >= INSTRUCTION_FORMAT35c_METHOD && LA19_8 <= INSTRUCTION_FORMAT35ms_METHOD)||LA19_8==INSTRUCTION_FORMAT51l||(LA19_8 >= METHOD_DIRECTIVE && LA19_8 <= NULL_LITERAL)||LA19_8==PARAM_LIST_OR_ID_START||(LA19_8 >= POSITIVE_INTEGER_LITERAL && LA19_8 <= PRIMITIVE_TYPE)||LA19_8==REGISTER||(LA19_8 >= SIMPLE_NAME && LA19_8 <= SOURCE_DIRECTIVE)||(LA19_8 >= SUPER_DIRECTIVE && LA19_8 <= VOID_TYPE)) ) {
+					alt19=6;
+				}
+				else if ( (LA19_8==COLON||LA19_8==OPEN_PAREN) ) {
+					alt19=13;
+				}
+
+				else {
+					int nvaeMark = input.mark();
+					try {
+						input.consume();
+						NoViableAltException nvae =
+							new NoViableAltException("", 19, 8, input);
+						throw nvae;
+					} finally {
+						input.rewind(nvaeMark);
+					}
+				}
+
+				}
+				break;
+			case DOUBLE_LITERAL:
+				{
+				alt19=6;
+				}
+				break;
+			case CHAR_LITERAL:
+				{
+				alt19=7;
+				}
+				break;
+			case STRING_LITERAL:
+				{
+				alt19=8;
+				}
+				break;
+			case BOOL_LITERAL:
+				{
+				int LA19_12 = input.LA(2);
+				if ( (LA19_12==EOF||(LA19_12 >= ACCESS_SPEC && LA19_12 <= ANNOTATION_VISIBILITY)||LA19_12==BOOL_LITERAL||(LA19_12 >= CLASS_DIRECTIVE && LA19_12 <= CLOSE_BRACE)||LA19_12==COMMA||(LA19_12 >= DOUBLE_LITERAL_OR_ID && LA19_12 <= END_ANNOTATION_DIRECTIVE)||LA19_12==END_FIELD_DIRECTIVE||LA19_12==END_SUBANNOTATION_DIRECTIVE||LA19_12==FIELD_DIRECTIVE||(LA19_12 >= FLOAT_LITERAL_OR_ID && LA19_12 <= IMPLEMENTS_DIRECTIVE)||(LA19_12 >= INSTRUCTION_FORMAT10t && LA19_12 <= INSTRUCTION_FORMAT10x_ODEX)||LA19_12==INSTRUCTION_FORMAT11x||LA19_12==INSTRUCTION_FORMAT12x_OR_ID||(LA19_12 >= INSTRUCTION_FORMAT21c_FIELD && LA19_12 <= INSTRUCTION_FORMAT21c_TYPE)||LA19_12==INSTRUCTION_FORMAT21t||(LA19_12 >= INSTRUCTION_FORMAT22c_FIELD && LA19_12 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA19_12 >= INSTRUCTION_FORMAT22s_OR_ID && LA19_12 <= INSTRUCTION_FORMAT22t)||(LA19_12 >= INSTRUCTION_FORMAT23x && LA19_12 <= INSTRUCTION_FORMAT25x)||(LA19_12 >= INSTRUCTION_FORMAT31i_OR_ID && LA19_12 <= INSTRUCTION_FORMAT31t)||(LA19_12 >= INSTRUCTION_FORMAT35c_METHOD && LA19_12 <= INSTRUCTION_FORMAT35ms_METHOD)||LA19_12==INSTRUCTION_FORMAT51l||(LA19_12 >= METHOD_DIRECTIVE && LA19_12 <= NULL_LITERAL)||LA19_12==PARAM_LIST_OR_ID_START||(LA19_12 >= POSITIVE_INTEGER_LITERAL && LA19_12 <= PRIMITIVE_TYPE)||LA19_12==REGISTER||(LA19_12 >= SIMPLE_NAME && LA19_12 <= SOURCE_DIRECTIVE)||(LA19_12 >= SUPER_DIRECTIVE && LA19_12 <= VOID_TYPE)) ) {
+					alt19=9;
+				}
+				else if ( (LA19_12==COLON||LA19_12==OPEN_PAREN) ) {
+					alt19=13;
+				}
+
+				else {
+					int nvaeMark = input.mark();
+					try {
+						input.consume();
+						NoViableAltException nvae =
+							new NoViableAltException("", 19, 12, input);
+						throw nvae;
+					} finally {
+						input.rewind(nvaeMark);
+					}
+				}
+
+				}
+				break;
+			case NULL_LITERAL:
+				{
+				int LA19_13 = input.LA(2);
+				if ( (LA19_13==EOF||(LA19_13 >= ACCESS_SPEC && LA19_13 <= ANNOTATION_VISIBILITY)||LA19_13==BOOL_LITERAL||(LA19_13 >= CLASS_DIRECTIVE && LA19_13 <= CLOSE_BRACE)||LA19_13==COMMA||(LA19_13 >= DOUBLE_LITERAL_OR_ID && LA19_13 <= END_ANNOTATION_DIRECTIVE)||LA19_13==END_FIELD_DIRECTIVE||LA19_13==END_SUBANNOTATION_DIRECTIVE||LA19_13==FIELD_DIRECTIVE||(LA19_13 >= FLOAT_LITERAL_OR_ID && LA19_13 <= IMPLEMENTS_DIRECTIVE)||(LA19_13 >= INSTRUCTION_FORMAT10t && LA19_13 <= INSTRUCTION_FORMAT10x_ODEX)||LA19_13==INSTRUCTION_FORMAT11x||LA19_13==INSTRUCTION_FORMAT12x_OR_ID||(LA19_13 >= INSTRUCTION_FORMAT21c_FIELD && LA19_13 <= INSTRUCTION_FORMAT21c_TYPE)||LA19_13==INSTRUCTION_FORMAT21t||(LA19_13 >= INSTRUCTION_FORMAT22c_FIELD && LA19_13 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA19_13 >= INSTRUCTION_FORMAT22s_OR_ID && LA19_13 <= INSTRUCTION_FORMAT22t)||(LA19_13 >= INSTRUCTION_FORMAT23x && LA19_13 <= INSTRUCTION_FORMAT25x)||(LA19_13 >= INSTRUCTION_FORMAT31i_OR_ID && LA19_13 <= INSTRUCTION_FORMAT31t)||(LA19_13 >= INSTRUCTION_FORMAT35c_METHOD && LA19_13 <= INSTRUCTION_FORMAT35ms_METHOD)||LA19_13==INSTRUCTION_FORMAT51l||(LA19_13 >= METHOD_DIRECTIVE && LA19_13 <= NULL_LITERAL)||LA19_13==PARAM_LIST_OR_ID_START||(LA19_13 >= POSITIVE_INTEGER_LITERAL && LA19_13 <= PRIMITIVE_TYPE)||LA19_13==REGISTER||(LA19_13 >= SIMPLE_NAME && LA19_13 <= SOURCE_DIRECTIVE)||(LA19_13 >= SUPER_DIRECTIVE && LA19_13 <= VOID_TYPE)) ) {
+					alt19=10;
+				}
+				else if ( (LA19_13==COLON||LA19_13==OPEN_PAREN) ) {
+					alt19=13;
+				}
+
+				else {
+					int nvaeMark = input.mark();
+					try {
+						input.consume();
+						NoViableAltException nvae =
+							new NoViableAltException("", 19, 13, input);
+						throw nvae;
+					} finally {
+						input.rewind(nvaeMark);
+					}
+				}
+
+				}
+				break;
+			case OPEN_BRACE:
+				{
+				alt19=11;
+				}
+				break;
+			case SUBANNOTATION_DIRECTIVE:
+				{
+				alt19=12;
+				}
+				break;
+			case ACCESS_SPEC:
+			case ANNOTATION_VISIBILITY:
+			case ARRAY_DESCRIPTOR:
+			case CLASS_DESCRIPTOR:
+			case INSTRUCTION_FORMAT10t:
+			case INSTRUCTION_FORMAT10x:
+			case INSTRUCTION_FORMAT10x_ODEX:
+			case INSTRUCTION_FORMAT11x:
+			case INSTRUCTION_FORMAT12x_OR_ID:
+			case INSTRUCTION_FORMAT21c_FIELD:
+			case INSTRUCTION_FORMAT21c_FIELD_ODEX:
+			case INSTRUCTION_FORMAT21c_LAMBDA:
+			case INSTRUCTION_FORMAT21c_METHOD:
+			case INSTRUCTION_FORMAT21c_STRING:
+			case INSTRUCTION_FORMAT21c_TYPE:
+			case INSTRUCTION_FORMAT21t:
+			case INSTRUCTION_FORMAT22c_FIELD:
+			case INSTRUCTION_FORMAT22c_FIELD_ODEX:
+			case INSTRUCTION_FORMAT22c_STRING:
+			case INSTRUCTION_FORMAT22c_TYPE:
+			case INSTRUCTION_FORMAT22cs_FIELD:
+			case INSTRUCTION_FORMAT22s_OR_ID:
+			case INSTRUCTION_FORMAT22t:
+			case INSTRUCTION_FORMAT23x:
+			case INSTRUCTION_FORMAT25x:
+			case INSTRUCTION_FORMAT31i_OR_ID:
+			case INSTRUCTION_FORMAT31t:
+			case INSTRUCTION_FORMAT35c_METHOD:
+			case INSTRUCTION_FORMAT35c_METHOD_ODEX:
+			case INSTRUCTION_FORMAT35c_TYPE:
+			case INSTRUCTION_FORMAT35mi_METHOD:
+			case INSTRUCTION_FORMAT35ms_METHOD:
+			case INSTRUCTION_FORMAT51l:
+			case MEMBER_NAME:
+			case PARAM_LIST_OR_ID_START:
+			case PRIMITIVE_TYPE:
+			case REGISTER:
+			case SIMPLE_NAME:
+			case VERIFICATION_ERROR_TYPE:
+			case VOID_TYPE:
+				{
+				alt19=13;
+				}
+				break;
+			case ENUM_DIRECTIVE:
+				{
+				alt19=14;
+				}
+				break;
+			default:
+				NoViableAltException nvae =
+					new NoViableAltException("", 19, 0, input);
+				throw nvae;
+			}
+			switch (alt19) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:634:5: LONG_LITERAL
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					LONG_LITERAL111=(Token)match(input,LONG_LITERAL,FOLLOW_LONG_LITERAL_in_literal2521);
+					LONG_LITERAL111_tree = (CommonTree)adaptor.create(LONG_LITERAL111);
+					adaptor.addChild(root_0, LONG_LITERAL111_tree);
+
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:635:5: integer_literal
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_integer_literal_in_literal2527);
+					integer_literal112=integer_literal();
+					state._fsp--;
+
+					adaptor.addChild(root_0, integer_literal112.getTree());
+
+					}
+					break;
+				case 3 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:636:5: SHORT_LITERAL
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					SHORT_LITERAL113=(Token)match(input,SHORT_LITERAL,FOLLOW_SHORT_LITERAL_in_literal2533);
+					SHORT_LITERAL113_tree = (CommonTree)adaptor.create(SHORT_LITERAL113);
+					adaptor.addChild(root_0, SHORT_LITERAL113_tree);
+
+					}
+					break;
+				case 4 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:637:5: BYTE_LITERAL
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					BYTE_LITERAL114=(Token)match(input,BYTE_LITERAL,FOLLOW_BYTE_LITERAL_in_literal2539);
+					BYTE_LITERAL114_tree = (CommonTree)adaptor.create(BYTE_LITERAL114);
+					adaptor.addChild(root_0, BYTE_LITERAL114_tree);
+
+					}
+					break;
+				case 5 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:638:5: float_literal
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_float_literal_in_literal2545);
+					float_literal115=float_literal();
+					state._fsp--;
+
+					adaptor.addChild(root_0, float_literal115.getTree());
+
+					}
+					break;
+				case 6 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:639:5: double_literal
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_double_literal_in_literal2551);
+					double_literal116=double_literal();
+					state._fsp--;
+
+					adaptor.addChild(root_0, double_literal116.getTree());
+
+					}
+					break;
+				case 7 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:640:5: CHAR_LITERAL
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					CHAR_LITERAL117=(Token)match(input,CHAR_LITERAL,FOLLOW_CHAR_LITERAL_in_literal2557);
+					CHAR_LITERAL117_tree = (CommonTree)adaptor.create(CHAR_LITERAL117);
+					adaptor.addChild(root_0, CHAR_LITERAL117_tree);
+
+					}
+					break;
+				case 8 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:641:5: STRING_LITERAL
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					STRING_LITERAL118=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_literal2563);
+					STRING_LITERAL118_tree = (CommonTree)adaptor.create(STRING_LITERAL118);
+					adaptor.addChild(root_0, STRING_LITERAL118_tree);
+
+					}
+					break;
+				case 9 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:642:5: BOOL_LITERAL
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					BOOL_LITERAL119=(Token)match(input,BOOL_LITERAL,FOLLOW_BOOL_LITERAL_in_literal2569);
+					BOOL_LITERAL119_tree = (CommonTree)adaptor.create(BOOL_LITERAL119);
+					adaptor.addChild(root_0, BOOL_LITERAL119_tree);
+
+					}
+					break;
+				case 10 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:643:5: NULL_LITERAL
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					NULL_LITERAL120=(Token)match(input,NULL_LITERAL,FOLLOW_NULL_LITERAL_in_literal2575);
+					NULL_LITERAL120_tree = (CommonTree)adaptor.create(NULL_LITERAL120);
+					adaptor.addChild(root_0, NULL_LITERAL120_tree);
+
+					}
+					break;
+				case 11 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:644:5: array_literal
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_array_literal_in_literal2581);
+					array_literal121=array_literal();
+					state._fsp--;
+
+					adaptor.addChild(root_0, array_literal121.getTree());
+
+					}
+					break;
+				case 12 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:645:5: subannotation
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_subannotation_in_literal2587);
+					subannotation122=subannotation();
+					state._fsp--;
+
+					adaptor.addChild(root_0, subannotation122.getTree());
+
+					}
+					break;
+				case 13 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:646:5: type_field_method_literal
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_type_field_method_literal_in_literal2593);
+					type_field_method_literal123=type_field_method_literal();
+					state._fsp--;
+
+					adaptor.addChild(root_0, type_field_method_literal123.getTree());
+
+					}
+					break;
+				case 14 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:647:5: enum_literal
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_enum_literal_in_literal2599);
+					enum_literal124=enum_literal();
+					state._fsp--;
+
+					adaptor.addChild(root_0, enum_literal124.getTree());
+
+					}
+					break;
+
+			}
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "literal"
+
+
+	public static class parsed_integer_literal_return extends ParserRuleReturnScope {
+		public int value;
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "parsed_integer_literal"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:649:1: parsed_integer_literal returns [int value] : integer_literal ;
+	public final smaliParser.parsed_integer_literal_return parsed_integer_literal() throws RecognitionException {
+		smaliParser.parsed_integer_literal_return retval = new smaliParser.parsed_integer_literal_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		ParserRuleReturnScope integer_literal125 =null;
+
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:650:3: ( integer_literal )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:650:5: integer_literal
+			{
+			root_0 = (CommonTree)adaptor.nil();
+
+
+			pushFollow(FOLLOW_integer_literal_in_parsed_integer_literal2612);
+			integer_literal125=integer_literal();
+			state._fsp--;
+
+			adaptor.addChild(root_0, integer_literal125.getTree());
+
+			 retval.value = LiteralTools.parseInt((integer_literal125!=null?input.toString(integer_literal125.start,integer_literal125.stop):null));
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "parsed_integer_literal"
+
+
+	public static class integral_literal_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "integral_literal"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:652:1: integral_literal : ( LONG_LITERAL | integer_literal | SHORT_LITERAL | CHAR_LITERAL | BYTE_LITERAL );
+	public final smaliParser.integral_literal_return integral_literal() throws RecognitionException {
+		smaliParser.integral_literal_return retval = new smaliParser.integral_literal_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token LONG_LITERAL126=null;
+		Token SHORT_LITERAL128=null;
+		Token CHAR_LITERAL129=null;
+		Token BYTE_LITERAL130=null;
+		ParserRuleReturnScope integer_literal127 =null;
+
+		CommonTree LONG_LITERAL126_tree=null;
+		CommonTree SHORT_LITERAL128_tree=null;
+		CommonTree CHAR_LITERAL129_tree=null;
+		CommonTree BYTE_LITERAL130_tree=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:653:3: ( LONG_LITERAL | integer_literal | SHORT_LITERAL | CHAR_LITERAL | BYTE_LITERAL )
+			int alt20=5;
+			switch ( input.LA(1) ) {
+			case LONG_LITERAL:
+				{
+				alt20=1;
+				}
+				break;
+			case NEGATIVE_INTEGER_LITERAL:
+			case POSITIVE_INTEGER_LITERAL:
+				{
+				alt20=2;
+				}
+				break;
+			case SHORT_LITERAL:
+				{
+				alt20=3;
+				}
+				break;
+			case CHAR_LITERAL:
+				{
+				alt20=4;
+				}
+				break;
+			case BYTE_LITERAL:
+				{
+				alt20=5;
+				}
+				break;
+			default:
+				NoViableAltException nvae =
+					new NoViableAltException("", 20, 0, input);
+				throw nvae;
+			}
+			switch (alt20) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:653:5: LONG_LITERAL
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					LONG_LITERAL126=(Token)match(input,LONG_LITERAL,FOLLOW_LONG_LITERAL_in_integral_literal2624);
+					LONG_LITERAL126_tree = (CommonTree)adaptor.create(LONG_LITERAL126);
+					adaptor.addChild(root_0, LONG_LITERAL126_tree);
+
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:654:5: integer_literal
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_integer_literal_in_integral_literal2630);
+					integer_literal127=integer_literal();
+					state._fsp--;
+
+					adaptor.addChild(root_0, integer_literal127.getTree());
+
+					}
+					break;
+				case 3 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:655:5: SHORT_LITERAL
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					SHORT_LITERAL128=(Token)match(input,SHORT_LITERAL,FOLLOW_SHORT_LITERAL_in_integral_literal2636);
+					SHORT_LITERAL128_tree = (CommonTree)adaptor.create(SHORT_LITERAL128);
+					adaptor.addChild(root_0, SHORT_LITERAL128_tree);
+
+					}
+					break;
+				case 4 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:656:5: CHAR_LITERAL
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					CHAR_LITERAL129=(Token)match(input,CHAR_LITERAL,FOLLOW_CHAR_LITERAL_in_integral_literal2642);
+					CHAR_LITERAL129_tree = (CommonTree)adaptor.create(CHAR_LITERAL129);
+					adaptor.addChild(root_0, CHAR_LITERAL129_tree);
+
+					}
+					break;
+				case 5 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:657:5: BYTE_LITERAL
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					BYTE_LITERAL130=(Token)match(input,BYTE_LITERAL,FOLLOW_BYTE_LITERAL_in_integral_literal2648);
+					BYTE_LITERAL130_tree = (CommonTree)adaptor.create(BYTE_LITERAL130);
+					adaptor.addChild(root_0, BYTE_LITERAL130_tree);
+
+					}
+					break;
+
+			}
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "integral_literal"
+
+
+	public static class fixed_32bit_literal_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "fixed_32bit_literal"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:659:1: fixed_32bit_literal : ( LONG_LITERAL | integer_literal | SHORT_LITERAL | BYTE_LITERAL | float_literal | CHAR_LITERAL | BOOL_LITERAL );
+	public final smaliParser.fixed_32bit_literal_return fixed_32bit_literal() throws RecognitionException {
+		smaliParser.fixed_32bit_literal_return retval = new smaliParser.fixed_32bit_literal_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token LONG_LITERAL131=null;
+		Token SHORT_LITERAL133=null;
+		Token BYTE_LITERAL134=null;
+		Token CHAR_LITERAL136=null;
+		Token BOOL_LITERAL137=null;
+		ParserRuleReturnScope integer_literal132 =null;
+		ParserRuleReturnScope float_literal135 =null;
+
+		CommonTree LONG_LITERAL131_tree=null;
+		CommonTree SHORT_LITERAL133_tree=null;
+		CommonTree BYTE_LITERAL134_tree=null;
+		CommonTree CHAR_LITERAL136_tree=null;
+		CommonTree BOOL_LITERAL137_tree=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:660:3: ( LONG_LITERAL | integer_literal | SHORT_LITERAL | BYTE_LITERAL | float_literal | CHAR_LITERAL | BOOL_LITERAL )
+			int alt21=7;
+			switch ( input.LA(1) ) {
+			case LONG_LITERAL:
+				{
+				alt21=1;
+				}
+				break;
+			case NEGATIVE_INTEGER_LITERAL:
+			case POSITIVE_INTEGER_LITERAL:
+				{
+				alt21=2;
+				}
+				break;
+			case SHORT_LITERAL:
+				{
+				alt21=3;
+				}
+				break;
+			case BYTE_LITERAL:
+				{
+				alt21=4;
+				}
+				break;
+			case FLOAT_LITERAL:
+			case FLOAT_LITERAL_OR_ID:
+				{
+				alt21=5;
+				}
+				break;
+			case CHAR_LITERAL:
+				{
+				alt21=6;
+				}
+				break;
+			case BOOL_LITERAL:
+				{
+				alt21=7;
+				}
+				break;
+			default:
+				NoViableAltException nvae =
+					new NoViableAltException("", 21, 0, input);
+				throw nvae;
+			}
+			switch (alt21) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:660:5: LONG_LITERAL
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					LONG_LITERAL131=(Token)match(input,LONG_LITERAL,FOLLOW_LONG_LITERAL_in_fixed_32bit_literal2658);
+					LONG_LITERAL131_tree = (CommonTree)adaptor.create(LONG_LITERAL131);
+					adaptor.addChild(root_0, LONG_LITERAL131_tree);
+
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:661:5: integer_literal
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_integer_literal_in_fixed_32bit_literal2664);
+					integer_literal132=integer_literal();
+					state._fsp--;
+
+					adaptor.addChild(root_0, integer_literal132.getTree());
+
+					}
+					break;
+				case 3 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:662:5: SHORT_LITERAL
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					SHORT_LITERAL133=(Token)match(input,SHORT_LITERAL,FOLLOW_SHORT_LITERAL_in_fixed_32bit_literal2670);
+					SHORT_LITERAL133_tree = (CommonTree)adaptor.create(SHORT_LITERAL133);
+					adaptor.addChild(root_0, SHORT_LITERAL133_tree);
+
+					}
+					break;
+				case 4 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:663:5: BYTE_LITERAL
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					BYTE_LITERAL134=(Token)match(input,BYTE_LITERAL,FOLLOW_BYTE_LITERAL_in_fixed_32bit_literal2676);
+					BYTE_LITERAL134_tree = (CommonTree)adaptor.create(BYTE_LITERAL134);
+					adaptor.addChild(root_0, BYTE_LITERAL134_tree);
+
+					}
+					break;
+				case 5 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:664:5: float_literal
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_float_literal_in_fixed_32bit_literal2682);
+					float_literal135=float_literal();
+					state._fsp--;
+
+					adaptor.addChild(root_0, float_literal135.getTree());
+
+					}
+					break;
+				case 6 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:665:5: CHAR_LITERAL
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					CHAR_LITERAL136=(Token)match(input,CHAR_LITERAL,FOLLOW_CHAR_LITERAL_in_fixed_32bit_literal2688);
+					CHAR_LITERAL136_tree = (CommonTree)adaptor.create(CHAR_LITERAL136);
+					adaptor.addChild(root_0, CHAR_LITERAL136_tree);
+
+					}
+					break;
+				case 7 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:666:5: BOOL_LITERAL
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					BOOL_LITERAL137=(Token)match(input,BOOL_LITERAL,FOLLOW_BOOL_LITERAL_in_fixed_32bit_literal2694);
+					BOOL_LITERAL137_tree = (CommonTree)adaptor.create(BOOL_LITERAL137);
+					adaptor.addChild(root_0, BOOL_LITERAL137_tree);
+
+					}
+					break;
+
+			}
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "fixed_32bit_literal"
+
+
+	public static class fixed_literal_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "fixed_literal"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:668:1: fixed_literal : ( integer_literal | LONG_LITERAL | SHORT_LITERAL | BYTE_LITERAL | float_literal | double_literal | CHAR_LITERAL | BOOL_LITERAL );
+	public final smaliParser.fixed_literal_return fixed_literal() throws RecognitionException {
+		smaliParser.fixed_literal_return retval = new smaliParser.fixed_literal_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token LONG_LITERAL139=null;
+		Token SHORT_LITERAL140=null;
+		Token BYTE_LITERAL141=null;
+		Token CHAR_LITERAL144=null;
+		Token BOOL_LITERAL145=null;
+		ParserRuleReturnScope integer_literal138 =null;
+		ParserRuleReturnScope float_literal142 =null;
+		ParserRuleReturnScope double_literal143 =null;
+
+		CommonTree LONG_LITERAL139_tree=null;
+		CommonTree SHORT_LITERAL140_tree=null;
+		CommonTree BYTE_LITERAL141_tree=null;
+		CommonTree CHAR_LITERAL144_tree=null;
+		CommonTree BOOL_LITERAL145_tree=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:669:3: ( integer_literal | LONG_LITERAL | SHORT_LITERAL | BYTE_LITERAL | float_literal | double_literal | CHAR_LITERAL | BOOL_LITERAL )
+			int alt22=8;
+			switch ( input.LA(1) ) {
+			case NEGATIVE_INTEGER_LITERAL:
+			case POSITIVE_INTEGER_LITERAL:
+				{
+				alt22=1;
+				}
+				break;
+			case LONG_LITERAL:
+				{
+				alt22=2;
+				}
+				break;
+			case SHORT_LITERAL:
+				{
+				alt22=3;
+				}
+				break;
+			case BYTE_LITERAL:
+				{
+				alt22=4;
+				}
+				break;
+			case FLOAT_LITERAL:
+			case FLOAT_LITERAL_OR_ID:
+				{
+				alt22=5;
+				}
+				break;
+			case DOUBLE_LITERAL:
+			case DOUBLE_LITERAL_OR_ID:
+				{
+				alt22=6;
+				}
+				break;
+			case CHAR_LITERAL:
+				{
+				alt22=7;
+				}
+				break;
+			case BOOL_LITERAL:
+				{
+				alt22=8;
+				}
+				break;
+			default:
+				NoViableAltException nvae =
+					new NoViableAltException("", 22, 0, input);
+				throw nvae;
+			}
+			switch (alt22) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:669:5: integer_literal
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_integer_literal_in_fixed_literal2704);
+					integer_literal138=integer_literal();
+					state._fsp--;
+
+					adaptor.addChild(root_0, integer_literal138.getTree());
+
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:670:5: LONG_LITERAL
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					LONG_LITERAL139=(Token)match(input,LONG_LITERAL,FOLLOW_LONG_LITERAL_in_fixed_literal2710);
+					LONG_LITERAL139_tree = (CommonTree)adaptor.create(LONG_LITERAL139);
+					adaptor.addChild(root_0, LONG_LITERAL139_tree);
+
+					}
+					break;
+				case 3 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:671:5: SHORT_LITERAL
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					SHORT_LITERAL140=(Token)match(input,SHORT_LITERAL,FOLLOW_SHORT_LITERAL_in_fixed_literal2716);
+					SHORT_LITERAL140_tree = (CommonTree)adaptor.create(SHORT_LITERAL140);
+					adaptor.addChild(root_0, SHORT_LITERAL140_tree);
+
+					}
+					break;
+				case 4 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:672:5: BYTE_LITERAL
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					BYTE_LITERAL141=(Token)match(input,BYTE_LITERAL,FOLLOW_BYTE_LITERAL_in_fixed_literal2722);
+					BYTE_LITERAL141_tree = (CommonTree)adaptor.create(BYTE_LITERAL141);
+					adaptor.addChild(root_0, BYTE_LITERAL141_tree);
+
+					}
+					break;
+				case 5 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:673:5: float_literal
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_float_literal_in_fixed_literal2728);
+					float_literal142=float_literal();
+					state._fsp--;
+
+					adaptor.addChild(root_0, float_literal142.getTree());
+
+					}
+					break;
+				case 6 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:674:5: double_literal
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_double_literal_in_fixed_literal2734);
+					double_literal143=double_literal();
+					state._fsp--;
+
+					adaptor.addChild(root_0, double_literal143.getTree());
+
+					}
+					break;
+				case 7 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:675:5: CHAR_LITERAL
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					CHAR_LITERAL144=(Token)match(input,CHAR_LITERAL,FOLLOW_CHAR_LITERAL_in_fixed_literal2740);
+					CHAR_LITERAL144_tree = (CommonTree)adaptor.create(CHAR_LITERAL144);
+					adaptor.addChild(root_0, CHAR_LITERAL144_tree);
+
+					}
+					break;
+				case 8 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:676:5: BOOL_LITERAL
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					BOOL_LITERAL145=(Token)match(input,BOOL_LITERAL,FOLLOW_BOOL_LITERAL_in_fixed_literal2746);
+					BOOL_LITERAL145_tree = (CommonTree)adaptor.create(BOOL_LITERAL145);
+					adaptor.addChild(root_0, BOOL_LITERAL145_tree);
+
+					}
+					break;
+
+			}
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "fixed_literal"
+
+
+	public static class array_literal_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "array_literal"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:678:1: array_literal : OPEN_BRACE ( literal ( COMMA literal )* |) CLOSE_BRACE -> ^( I_ENCODED_ARRAY[$start, \"I_ENCODED_ARRAY\"] ( literal )* ) ;
+	public final smaliParser.array_literal_return array_literal() throws RecognitionException {
+		smaliParser.array_literal_return retval = new smaliParser.array_literal_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token OPEN_BRACE146=null;
+		Token COMMA148=null;
+		Token CLOSE_BRACE150=null;
+		ParserRuleReturnScope literal147 =null;
+		ParserRuleReturnScope literal149 =null;
+
+		CommonTree OPEN_BRACE146_tree=null;
+		CommonTree COMMA148_tree=null;
+		CommonTree CLOSE_BRACE150_tree=null;
+		RewriteRuleTokenStream stream_CLOSE_BRACE=new RewriteRuleTokenStream(adaptor,"token CLOSE_BRACE");
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_OPEN_BRACE=new RewriteRuleTokenStream(adaptor,"token OPEN_BRACE");
+		RewriteRuleSubtreeStream stream_literal=new RewriteRuleSubtreeStream(adaptor,"rule literal");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:679:3: ( OPEN_BRACE ( literal ( COMMA literal )* |) CLOSE_BRACE -> ^( I_ENCODED_ARRAY[$start, \"I_ENCODED_ARRAY\"] ( literal )* ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:679:5: OPEN_BRACE ( literal ( COMMA literal )* |) CLOSE_BRACE
+			{
+			OPEN_BRACE146=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_array_literal2756);
+			stream_OPEN_BRACE.add(OPEN_BRACE146);
+
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:679:16: ( literal ( COMMA literal )* |)
+			int alt24=2;
+			int LA24_0 = input.LA(1);
+			if ( (LA24_0==ACCESS_SPEC||LA24_0==ANNOTATION_VISIBILITY||LA24_0==ARRAY_DESCRIPTOR||(LA24_0 >= BOOL_LITERAL && LA24_0 <= BYTE_LITERAL)||(LA24_0 >= CHAR_LITERAL && LA24_0 <= CLASS_DESCRIPTOR)||(LA24_0 >= DOUBLE_LITERAL && LA24_0 <= DOUBLE_LITERAL_OR_ID)||LA24_0==ENUM_DIRECTIVE||(LA24_0 >= FLOAT_LITERAL && LA24_0 <= FLOAT_LITERAL_OR_ID)||(LA24_0 >= INSTRUCTION_FORMAT10t && LA24_0 <= INSTRUCTION_FORMAT10x_ODEX)||LA24_0==INSTRUCTION_FORMAT11x||LA24_0==INSTRUCTION_FORMAT12x_OR_ID||(LA24_0 >= INSTRUCTION_FORMAT21c_FIELD && LA24_0 <= INSTRUCTION_FORMAT21c_TYPE)||LA24_0==INSTRUCTION_FORMAT21t||(LA24_0 >= INSTRUCTION_FORMAT22c_FIELD && LA24_0 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA24_0 >= INSTRUCTION_FORMAT22s_OR_ID && LA24_0 <= INSTRUCTION_FORMAT22t)||(LA24_0 >= INSTRUCTION_FORMAT23x && LA24_0 <= INSTRUCTION_FORMAT25x)||(LA24_0 >= INSTRUCTION_FORMAT31i_OR_ID && LA24_0 <= INSTRUCTION_FORMAT31t)||(LA24_0 >= INSTRUCTION_FORMAT35c_METHOD && LA24_0 <= INSTRUCTION_FORMAT35ms_METHOD)||LA24_0==INSTRUCTION_FORMAT51l||(LA24_0 >= LONG_LITERAL && LA24_0 <= MEMBER_NAME)||(LA24_0 >= NEGATIVE_INTEGER_LITERAL && LA24_0 <= OPEN_BRACE)||LA24_0==PARAM_LIST_OR_ID_START||(LA24_0 >= POSITIVE_INTEGER_LITERAL && LA24_0 <= PRIMITIVE_TYPE)||LA24_0==REGISTER||(LA24_0 >= SHORT_LITERAL && LA24_0 <= SIMPLE_NAME)||(LA24_0 >= STRING_LITERAL && LA24_0 <= SUBANNOTATION_DIRECTIVE)||(LA24_0 >= VERIFICATION_ERROR_TYPE && LA24_0 <= VOID_TYPE)) ) {
+				alt24=1;
+			}
+			else if ( (LA24_0==CLOSE_BRACE) ) {
+				alt24=2;
+			}
+
+			else {
+				NoViableAltException nvae =
+					new NoViableAltException("", 24, 0, input);
+				throw nvae;
+			}
+
+			switch (alt24) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:679:17: literal ( COMMA literal )*
+					{
+					pushFollow(FOLLOW_literal_in_array_literal2759);
+					literal147=literal();
+					state._fsp--;
+
+					stream_literal.add(literal147.getTree());
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:679:25: ( COMMA literal )*
+					loop23:
+					while (true) {
+						int alt23=2;
+						int LA23_0 = input.LA(1);
+						if ( (LA23_0==COMMA) ) {
+							alt23=1;
+						}
+
+						switch (alt23) {
+						case 1 :
+							// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:679:26: COMMA literal
+							{
+							COMMA148=(Token)match(input,COMMA,FOLLOW_COMMA_in_array_literal2762);
+							stream_COMMA.add(COMMA148);
+
+							pushFollow(FOLLOW_literal_in_array_literal2764);
+							literal149=literal();
+							state._fsp--;
+
+							stream_literal.add(literal149.getTree());
+							}
+							break;
+
+						default :
+							break loop23;
+						}
+					}
+
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:679:44:
+					{
+					}
+					break;
+
+			}
+
+			CLOSE_BRACE150=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_array_literal2772);
+			stream_CLOSE_BRACE.add(CLOSE_BRACE150);
+
+			// AST REWRITE
+			// elements: literal
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 680:5: -> ^( I_ENCODED_ARRAY[$start, \"I_ENCODED_ARRAY\"] ( literal )* )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:680:8: ^( I_ENCODED_ARRAY[$start, \"I_ENCODED_ARRAY\"] ( literal )* )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ENCODED_ARRAY, (retval.start), "I_ENCODED_ARRAY"), root_1);
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:680:53: ( literal )*
+				while ( stream_literal.hasNext() ) {
+					adaptor.addChild(root_1, stream_literal.nextTree());
+				}
+				stream_literal.reset();
+
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "array_literal"
+
+
+	public static class annotation_element_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "annotation_element"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:682:1: annotation_element : simple_name EQUAL literal -> ^( I_ANNOTATION_ELEMENT[$start, \"I_ANNOTATION_ELEMENT\"] simple_name literal ) ;
+	public final smaliParser.annotation_element_return annotation_element() throws RecognitionException {
+		smaliParser.annotation_element_return retval = new smaliParser.annotation_element_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token EQUAL152=null;
+		ParserRuleReturnScope simple_name151 =null;
+		ParserRuleReturnScope literal153 =null;
+
+		CommonTree EQUAL152_tree=null;
+		RewriteRuleTokenStream stream_EQUAL=new RewriteRuleTokenStream(adaptor,"token EQUAL");
+		RewriteRuleSubtreeStream stream_simple_name=new RewriteRuleSubtreeStream(adaptor,"rule simple_name");
+		RewriteRuleSubtreeStream stream_literal=new RewriteRuleSubtreeStream(adaptor,"rule literal");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:683:3: ( simple_name EQUAL literal -> ^( I_ANNOTATION_ELEMENT[$start, \"I_ANNOTATION_ELEMENT\"] simple_name literal ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:683:5: simple_name EQUAL literal
+			{
+			pushFollow(FOLLOW_simple_name_in_annotation_element2796);
+			simple_name151=simple_name();
+			state._fsp--;
+
+			stream_simple_name.add(simple_name151.getTree());
+			EQUAL152=(Token)match(input,EQUAL,FOLLOW_EQUAL_in_annotation_element2798);
+			stream_EQUAL.add(EQUAL152);
+
+			pushFollow(FOLLOW_literal_in_annotation_element2800);
+			literal153=literal();
+			state._fsp--;
+
+			stream_literal.add(literal153.getTree());
+			// AST REWRITE
+			// elements: simple_name, literal
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 684:5: -> ^( I_ANNOTATION_ELEMENT[$start, \"I_ANNOTATION_ELEMENT\"] simple_name literal )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:684:8: ^( I_ANNOTATION_ELEMENT[$start, \"I_ANNOTATION_ELEMENT\"] simple_name literal )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ANNOTATION_ELEMENT, (retval.start), "I_ANNOTATION_ELEMENT"), root_1);
+				adaptor.addChild(root_1, stream_simple_name.nextTree());
+				adaptor.addChild(root_1, stream_literal.nextTree());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "annotation_element"
+
+
+	public static class annotation_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "annotation"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:686:1: annotation : ANNOTATION_DIRECTIVE ANNOTATION_VISIBILITY CLASS_DESCRIPTOR ( annotation_element )* END_ANNOTATION_DIRECTIVE -> ^( I_ANNOTATION[$start, \"I_ANNOTATION\"] ANNOTATION_VISIBILITY ^( I_SUBANNOTATION[$start, \"I_SUBANNOTATION\"] CLASS_DESCRIPTOR ( annotation_element )* ) ) ;
+	public final smaliParser.annotation_return annotation() throws RecognitionException {
+		smaliParser.annotation_return retval = new smaliParser.annotation_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token ANNOTATION_DIRECTIVE154=null;
+		Token ANNOTATION_VISIBILITY155=null;
+		Token CLASS_DESCRIPTOR156=null;
+		Token END_ANNOTATION_DIRECTIVE158=null;
+		ParserRuleReturnScope annotation_element157 =null;
+
+		CommonTree ANNOTATION_DIRECTIVE154_tree=null;
+		CommonTree ANNOTATION_VISIBILITY155_tree=null;
+		CommonTree CLASS_DESCRIPTOR156_tree=null;
+		CommonTree END_ANNOTATION_DIRECTIVE158_tree=null;
+		RewriteRuleTokenStream stream_ANNOTATION_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token ANNOTATION_DIRECTIVE");
+		RewriteRuleTokenStream stream_END_ANNOTATION_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_ANNOTATION_DIRECTIVE");
+		RewriteRuleTokenStream stream_ANNOTATION_VISIBILITY=new RewriteRuleTokenStream(adaptor,"token ANNOTATION_VISIBILITY");
+		RewriteRuleTokenStream stream_CLASS_DESCRIPTOR=new RewriteRuleTokenStream(adaptor,"token CLASS_DESCRIPTOR");
+		RewriteRuleSubtreeStream stream_annotation_element=new RewriteRuleSubtreeStream(adaptor,"rule annotation_element");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:687:3: ( ANNOTATION_DIRECTIVE ANNOTATION_VISIBILITY CLASS_DESCRIPTOR ( annotation_element )* END_ANNOTATION_DIRECTIVE -> ^( I_ANNOTATION[$start, \"I_ANNOTATION\"] ANNOTATION_VISIBILITY ^( I_SUBANNOTATION[$start, \"I_SUBANNOTATION\"] CLASS_DESCRIPTOR ( annotation_element )* ) ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:687:5: ANNOTATION_DIRECTIVE ANNOTATION_VISIBILITY CLASS_DESCRIPTOR ( annotation_element )* END_ANNOTATION_DIRECTIVE
+			{
+			ANNOTATION_DIRECTIVE154=(Token)match(input,ANNOTATION_DIRECTIVE,FOLLOW_ANNOTATION_DIRECTIVE_in_annotation2825);
+			stream_ANNOTATION_DIRECTIVE.add(ANNOTATION_DIRECTIVE154);
+
+			ANNOTATION_VISIBILITY155=(Token)match(input,ANNOTATION_VISIBILITY,FOLLOW_ANNOTATION_VISIBILITY_in_annotation2827);
+			stream_ANNOTATION_VISIBILITY.add(ANNOTATION_VISIBILITY155);
+
+			CLASS_DESCRIPTOR156=(Token)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_annotation2829);
+			stream_CLASS_DESCRIPTOR.add(CLASS_DESCRIPTOR156);
+
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:688:5: ( annotation_element )*
+			loop25:
+			while (true) {
+				int alt25=2;
+				int LA25_0 = input.LA(1);
+				if ( (LA25_0==ACCESS_SPEC||LA25_0==ANNOTATION_VISIBILITY||LA25_0==BOOL_LITERAL||LA25_0==DOUBLE_LITERAL_OR_ID||LA25_0==FLOAT_LITERAL_OR_ID||(LA25_0 >= INSTRUCTION_FORMAT10t && LA25_0 <= INSTRUCTION_FORMAT10x_ODEX)||LA25_0==INSTRUCTION_FORMAT11x||LA25_0==INSTRUCTION_FORMAT12x_OR_ID||(LA25_0 >= INSTRUCTION_FORMAT21c_FIELD && LA25_0 <= INSTRUCTION_FORMAT21c_TYPE)||LA25_0==INSTRUCTION_FORMAT21t||(LA25_0 >= INSTRUCTION_FORMAT22c_FIELD && LA25_0 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA25_0 >= INSTRUCTION_FORMAT22s_OR_ID && LA25_0 <= INSTRUCTION_FORMAT22t)||(LA25_0 >= INSTRUCTION_FORMAT23x && LA25_0 <= INSTRUCTION_FORMAT25x)||(LA25_0 >= INSTRUCTION_FORMAT31i_OR_ID && LA25_0 <= INSTRUCTION_FORMAT31t)||(LA25_0 >= INSTRUCTION_FORMAT35c_METHOD && LA25_0 <= INSTRUCTION_FORMAT35ms_METHOD)||LA25_0==INSTRUCTION_FORMAT51l||(LA25_0 >= NEGATIVE_INTEGER_LITERAL && LA25_0 <= NULL_LITERAL)||LA25_0==PARAM_LIST_OR_ID_START||(LA25_0 >= POSITIVE_INTEGER_LITERAL && LA25_0 <= PRIMITIVE_TYPE)||LA25_0==REGISTER||LA25_0==SIMPLE_NAME||(LA25_0 >= VERIFICATION_ERROR_TYPE && LA25_0 <= VOID_TYPE)) ) {
+					alt25=1;
+				}
+
+				switch (alt25) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:688:5: annotation_element
+					{
+					pushFollow(FOLLOW_annotation_element_in_annotation2835);
+					annotation_element157=annotation_element();
+					state._fsp--;
+
+					stream_annotation_element.add(annotation_element157.getTree());
+					}
+					break;
+
+				default :
+					break loop25;
+				}
+			}
+
+			END_ANNOTATION_DIRECTIVE158=(Token)match(input,END_ANNOTATION_DIRECTIVE,FOLLOW_END_ANNOTATION_DIRECTIVE_in_annotation2838);
+			stream_END_ANNOTATION_DIRECTIVE.add(END_ANNOTATION_DIRECTIVE158);
+
+			// AST REWRITE
+			// elements: CLASS_DESCRIPTOR, ANNOTATION_VISIBILITY, annotation_element
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 689:5: -> ^( I_ANNOTATION[$start, \"I_ANNOTATION\"] ANNOTATION_VISIBILITY ^( I_SUBANNOTATION[$start, \"I_SUBANNOTATION\"] CLASS_DESCRIPTOR ( annotation_element )* ) )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:689:8: ^( I_ANNOTATION[$start, \"I_ANNOTATION\"] ANNOTATION_VISIBILITY ^( I_SUBANNOTATION[$start, \"I_SUBANNOTATION\"] CLASS_DESCRIPTOR ( annotation_element )* ) )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ANNOTATION, (retval.start), "I_ANNOTATION"), root_1);
+				adaptor.addChild(root_1, stream_ANNOTATION_VISIBILITY.nextNode());
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:689:69: ^( I_SUBANNOTATION[$start, \"I_SUBANNOTATION\"] CLASS_DESCRIPTOR ( annotation_element )* )
+				{
+				CommonTree root_2 = (CommonTree)adaptor.nil();
+				root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_SUBANNOTATION, (retval.start), "I_SUBANNOTATION"), root_2);
+				adaptor.addChild(root_2, stream_CLASS_DESCRIPTOR.nextNode());
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:689:131: ( annotation_element )*
+				while ( stream_annotation_element.hasNext() ) {
+					adaptor.addChild(root_2, stream_annotation_element.nextTree());
+				}
+				stream_annotation_element.reset();
+
+				adaptor.addChild(root_1, root_2);
+				}
+
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "annotation"
+
+
+	public static class subannotation_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "subannotation"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:691:1: subannotation : SUBANNOTATION_DIRECTIVE CLASS_DESCRIPTOR ( annotation_element )* END_SUBANNOTATION_DIRECTIVE -> ^( I_SUBANNOTATION[$start, \"I_SUBANNOTATION\"] CLASS_DESCRIPTOR ( annotation_element )* ) ;
+	public final smaliParser.subannotation_return subannotation() throws RecognitionException {
+		smaliParser.subannotation_return retval = new smaliParser.subannotation_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token SUBANNOTATION_DIRECTIVE159=null;
+		Token CLASS_DESCRIPTOR160=null;
+		Token END_SUBANNOTATION_DIRECTIVE162=null;
+		ParserRuleReturnScope annotation_element161 =null;
+
+		CommonTree SUBANNOTATION_DIRECTIVE159_tree=null;
+		CommonTree CLASS_DESCRIPTOR160_tree=null;
+		CommonTree END_SUBANNOTATION_DIRECTIVE162_tree=null;
+		RewriteRuleTokenStream stream_SUBANNOTATION_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token SUBANNOTATION_DIRECTIVE");
+		RewriteRuleTokenStream stream_END_SUBANNOTATION_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_SUBANNOTATION_DIRECTIVE");
+		RewriteRuleTokenStream stream_CLASS_DESCRIPTOR=new RewriteRuleTokenStream(adaptor,"token CLASS_DESCRIPTOR");
+		RewriteRuleSubtreeStream stream_annotation_element=new RewriteRuleSubtreeStream(adaptor,"rule annotation_element");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:692:3: ( SUBANNOTATION_DIRECTIVE CLASS_DESCRIPTOR ( annotation_element )* END_SUBANNOTATION_DIRECTIVE -> ^( I_SUBANNOTATION[$start, \"I_SUBANNOTATION\"] CLASS_DESCRIPTOR ( annotation_element )* ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:692:5: SUBANNOTATION_DIRECTIVE CLASS_DESCRIPTOR ( annotation_element )* END_SUBANNOTATION_DIRECTIVE
+			{
+			SUBANNOTATION_DIRECTIVE159=(Token)match(input,SUBANNOTATION_DIRECTIVE,FOLLOW_SUBANNOTATION_DIRECTIVE_in_subannotation2871);
+			stream_SUBANNOTATION_DIRECTIVE.add(SUBANNOTATION_DIRECTIVE159);
+
+			CLASS_DESCRIPTOR160=(Token)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_subannotation2873);
+			stream_CLASS_DESCRIPTOR.add(CLASS_DESCRIPTOR160);
+
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:692:46: ( annotation_element )*
+			loop26:
+			while (true) {
+				int alt26=2;
+				int LA26_0 = input.LA(1);
+				if ( (LA26_0==ACCESS_SPEC||LA26_0==ANNOTATION_VISIBILITY||LA26_0==BOOL_LITERAL||LA26_0==DOUBLE_LITERAL_OR_ID||LA26_0==FLOAT_LITERAL_OR_ID||(LA26_0 >= INSTRUCTION_FORMAT10t && LA26_0 <= INSTRUCTION_FORMAT10x_ODEX)||LA26_0==INSTRUCTION_FORMAT11x||LA26_0==INSTRUCTION_FORMAT12x_OR_ID||(LA26_0 >= INSTRUCTION_FORMAT21c_FIELD && LA26_0 <= INSTRUCTION_FORMAT21c_TYPE)||LA26_0==INSTRUCTION_FORMAT21t||(LA26_0 >= INSTRUCTION_FORMAT22c_FIELD && LA26_0 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA26_0 >= INSTRUCTION_FORMAT22s_OR_ID && LA26_0 <= INSTRUCTION_FORMAT22t)||(LA26_0 >= INSTRUCTION_FORMAT23x && LA26_0 <= INSTRUCTION_FORMAT25x)||(LA26_0 >= INSTRUCTION_FORMAT31i_OR_ID && LA26_0 <= INSTRUCTION_FORMAT31t)||(LA26_0 >= INSTRUCTION_FORMAT35c_METHOD && LA26_0 <= INSTRUCTION_FORMAT35ms_METHOD)||LA26_0==INSTRUCTION_FORMAT51l||(LA26_0 >= NEGATIVE_INTEGER_LITERAL && LA26_0 <= NULL_LITERAL)||LA26_0==PARAM_LIST_OR_ID_START||(LA26_0 >= POSITIVE_INTEGER_LITERAL && LA26_0 <= PRIMITIVE_TYPE)||LA26_0==REGISTER||LA26_0==SIMPLE_NAME||(LA26_0 >= VERIFICATION_ERROR_TYPE && LA26_0 <= VOID_TYPE)) ) {
+					alt26=1;
+				}
+
+				switch (alt26) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:692:46: annotation_element
+					{
+					pushFollow(FOLLOW_annotation_element_in_subannotation2875);
+					annotation_element161=annotation_element();
+					state._fsp--;
+
+					stream_annotation_element.add(annotation_element161.getTree());
+					}
+					break;
+
+				default :
+					break loop26;
+				}
+			}
+
+			END_SUBANNOTATION_DIRECTIVE162=(Token)match(input,END_SUBANNOTATION_DIRECTIVE,FOLLOW_END_SUBANNOTATION_DIRECTIVE_in_subannotation2878);
+			stream_END_SUBANNOTATION_DIRECTIVE.add(END_SUBANNOTATION_DIRECTIVE162);
+
+			// AST REWRITE
+			// elements: annotation_element, CLASS_DESCRIPTOR
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 693:5: -> ^( I_SUBANNOTATION[$start, \"I_SUBANNOTATION\"] CLASS_DESCRIPTOR ( annotation_element )* )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:693:8: ^( I_SUBANNOTATION[$start, \"I_SUBANNOTATION\"] CLASS_DESCRIPTOR ( annotation_element )* )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_SUBANNOTATION, (retval.start), "I_SUBANNOTATION"), root_1);
+				adaptor.addChild(root_1, stream_CLASS_DESCRIPTOR.nextNode());
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:693:70: ( annotation_element )*
+				while ( stream_annotation_element.hasNext() ) {
+					adaptor.addChild(root_1, stream_annotation_element.nextTree());
+				}
+				stream_annotation_element.reset();
+
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "subannotation"
+
+
+	public static class enum_literal_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "enum_literal"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:695:1: enum_literal : ENUM_DIRECTIVE reference_type_descriptor ARROW simple_name COLON reference_type_descriptor -> ^( I_ENCODED_ENUM reference_type_descriptor simple_name reference_type_descriptor ) ;
+	public final smaliParser.enum_literal_return enum_literal() throws RecognitionException {
+		smaliParser.enum_literal_return retval = new smaliParser.enum_literal_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token ENUM_DIRECTIVE163=null;
+		Token ARROW165=null;
+		Token COLON167=null;
+		ParserRuleReturnScope reference_type_descriptor164 =null;
+		ParserRuleReturnScope simple_name166 =null;
+		ParserRuleReturnScope reference_type_descriptor168 =null;
+
+		CommonTree ENUM_DIRECTIVE163_tree=null;
+		CommonTree ARROW165_tree=null;
+		CommonTree COLON167_tree=null;
+		RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
+		RewriteRuleTokenStream stream_ENUM_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token ENUM_DIRECTIVE");
+		RewriteRuleTokenStream stream_ARROW=new RewriteRuleTokenStream(adaptor,"token ARROW");
+		RewriteRuleSubtreeStream stream_reference_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule reference_type_descriptor");
+		RewriteRuleSubtreeStream stream_simple_name=new RewriteRuleSubtreeStream(adaptor,"rule simple_name");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:696:3: ( ENUM_DIRECTIVE reference_type_descriptor ARROW simple_name COLON reference_type_descriptor -> ^( I_ENCODED_ENUM reference_type_descriptor simple_name reference_type_descriptor ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:696:5: ENUM_DIRECTIVE reference_type_descriptor ARROW simple_name COLON reference_type_descriptor
+			{
+			ENUM_DIRECTIVE163=(Token)match(input,ENUM_DIRECTIVE,FOLLOW_ENUM_DIRECTIVE_in_enum_literal2904);
+			stream_ENUM_DIRECTIVE.add(ENUM_DIRECTIVE163);
+
+			pushFollow(FOLLOW_reference_type_descriptor_in_enum_literal2906);
+			reference_type_descriptor164=reference_type_descriptor();
+			state._fsp--;
+
+			stream_reference_type_descriptor.add(reference_type_descriptor164.getTree());
+			ARROW165=(Token)match(input,ARROW,FOLLOW_ARROW_in_enum_literal2908);
+			stream_ARROW.add(ARROW165);
+
+			pushFollow(FOLLOW_simple_name_in_enum_literal2910);
+			simple_name166=simple_name();
+			state._fsp--;
+
+			stream_simple_name.add(simple_name166.getTree());
+			COLON167=(Token)match(input,COLON,FOLLOW_COLON_in_enum_literal2912);
+			stream_COLON.add(COLON167);
+
+			pushFollow(FOLLOW_reference_type_descriptor_in_enum_literal2914);
+			reference_type_descriptor168=reference_type_descriptor();
+			state._fsp--;
+
+			stream_reference_type_descriptor.add(reference_type_descriptor168.getTree());
+			// AST REWRITE
+			// elements: reference_type_descriptor, simple_name, reference_type_descriptor
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 697:3: -> ^( I_ENCODED_ENUM reference_type_descriptor simple_name reference_type_descriptor )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:697:6: ^( I_ENCODED_ENUM reference_type_descriptor simple_name reference_type_descriptor )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ENCODED_ENUM, "I_ENCODED_ENUM"), root_1);
+				adaptor.addChild(root_1, stream_reference_type_descriptor.nextTree());
+				adaptor.addChild(root_1, stream_simple_name.nextTree());
+				adaptor.addChild(root_1, stream_reference_type_descriptor.nextTree());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "enum_literal"
+
+
+	public static class type_field_method_literal_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "type_field_method_literal"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:699:1: type_field_method_literal : ( reference_type_descriptor | ( ( reference_type_descriptor ARROW )? ( member_name COLON nonvoid_type_descriptor -> ^( I_ENCODED_FIELD ( reference_type_descriptor )? member_name nonvoid_type_descriptor ) | member_name method_prototype -> ^( I_ENCODED_METHOD ( reference_type_descriptor )? member_name method_prototype ) ) ) | PRIMITIVE_TYPE | VOID_TYPE );
+	public final smaliParser.type_field_method_literal_return type_field_method_literal() throws RecognitionException {
+		smaliParser.type_field_method_literal_return retval = new smaliParser.type_field_method_literal_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token ARROW171=null;
+		Token COLON173=null;
+		Token PRIMITIVE_TYPE177=null;
+		Token VOID_TYPE178=null;
+		ParserRuleReturnScope reference_type_descriptor169 =null;
+		ParserRuleReturnScope reference_type_descriptor170 =null;
+		ParserRuleReturnScope member_name172 =null;
+		ParserRuleReturnScope nonvoid_type_descriptor174 =null;
+		ParserRuleReturnScope member_name175 =null;
+		ParserRuleReturnScope method_prototype176 =null;
+
+		CommonTree ARROW171_tree=null;
+		CommonTree COLON173_tree=null;
+		CommonTree PRIMITIVE_TYPE177_tree=null;
+		CommonTree VOID_TYPE178_tree=null;
+		RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
+		RewriteRuleTokenStream stream_ARROW=new RewriteRuleTokenStream(adaptor,"token ARROW");
+		RewriteRuleSubtreeStream stream_nonvoid_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule nonvoid_type_descriptor");
+		RewriteRuleSubtreeStream stream_method_prototype=new RewriteRuleSubtreeStream(adaptor,"rule method_prototype");
+		RewriteRuleSubtreeStream stream_reference_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule reference_type_descriptor");
+		RewriteRuleSubtreeStream stream_member_name=new RewriteRuleSubtreeStream(adaptor,"rule member_name");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:700:3: ( reference_type_descriptor | ( ( reference_type_descriptor ARROW )? ( member_name COLON nonvoid_type_descriptor -> ^( I_ENCODED_FIELD ( reference_type_descriptor )? member_name nonvoid_type_descriptor ) | member_name method_prototype -> ^( I_ENCODED_METHOD ( reference_type_descriptor )? member_name method_prototype ) ) ) | PRIMITIVE_TYPE | VOID_TYPE )
+			int alt29=4;
+			switch ( input.LA(1) ) {
+			case ARRAY_DESCRIPTOR:
+			case CLASS_DESCRIPTOR:
+				{
+				int LA29_1 = input.LA(2);
+				if ( (LA29_1==EOF||(LA29_1 >= ACCESS_SPEC && LA29_1 <= ANNOTATION_VISIBILITY)||LA29_1==BOOL_LITERAL||(LA29_1 >= CLASS_DIRECTIVE && LA29_1 <= CLOSE_BRACE)||LA29_1==COMMA||(LA29_1 >= DOUBLE_LITERAL_OR_ID && LA29_1 <= END_ANNOTATION_DIRECTIVE)||LA29_1==END_FIELD_DIRECTIVE||LA29_1==END_SUBANNOTATION_DIRECTIVE||LA29_1==FIELD_DIRECTIVE||(LA29_1 >= FLOAT_LITERAL_OR_ID && LA29_1 <= IMPLEMENTS_DIRECTIVE)||(LA29_1 >= INSTRUCTION_FORMAT10t && LA29_1 <= INSTRUCTION_FORMAT10x_ODEX)||LA29_1==INSTRUCTION_FORMAT11x||LA29_1==INSTRUCTION_FORMAT12x_OR_ID||(LA29_1 >= INSTRUCTION_FORMAT21c_FIELD && LA29_1 <= INSTRUCTION_FORMAT21c_TYPE)||LA29_1==INSTRUCTION_FORMAT21t||(LA29_1 >= INSTRUCTION_FORMAT22c_FIELD && LA29_1 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA29_1 >= INSTRUCTION_FORMAT22s_OR_ID && LA29_1 <= INSTRUCTION_FORMAT22t)||(LA29_1 >= INSTRUCTION_FORMAT23x && LA29_1 <= INSTRUCTION_FORMAT25x)||(LA29_1 >= INSTRUCTION_FORMAT31i_OR_ID && LA29_1 <= INSTRUCTION_FORMAT31t)||(LA29_1 >= INSTRUCTION_FORMAT35c_METHOD && LA29_1 <= INSTRUCTION_FORMAT35ms_METHOD)||LA29_1==INSTRUCTION_FORMAT51l||(LA29_1 >= METHOD_DIRECTIVE && LA29_1 <= NULL_LITERAL)||LA29_1==PARAM_LIST_OR_ID_START||(LA29_1 >= POSITIVE_INTEGER_LITERAL && LA29_1 <= PRIMITIVE_TYPE)||LA29_1==REGISTER||(LA29_1 >= SIMPLE_NAME && LA29_1 <= SOURCE_DIRECTIVE)||(LA29_1 >= SUPER_DIRECTIVE && LA29_1 <= VOID_TYPE)) ) {
+					alt29=1;
+				}
+				else if ( (LA29_1==ARROW) ) {
+					alt29=2;
+				}
+
+				else {
+					int nvaeMark = input.mark();
+					try {
+						input.consume();
+						NoViableAltException nvae =
+							new NoViableAltException("", 29, 1, input);
+						throw nvae;
+					} finally {
+						input.rewind(nvaeMark);
+					}
+				}
+
+				}
+				break;
+			case ACCESS_SPEC:
+			case ANNOTATION_VISIBILITY:
+			case BOOL_LITERAL:
+			case DOUBLE_LITERAL_OR_ID:
+			case FLOAT_LITERAL_OR_ID:
+			case INSTRUCTION_FORMAT10t:
+			case INSTRUCTION_FORMAT10x:
+			case INSTRUCTION_FORMAT10x_ODEX:
+			case INSTRUCTION_FORMAT11x:
+			case INSTRUCTION_FORMAT12x_OR_ID:
+			case INSTRUCTION_FORMAT21c_FIELD:
+			case INSTRUCTION_FORMAT21c_FIELD_ODEX:
+			case INSTRUCTION_FORMAT21c_LAMBDA:
+			case INSTRUCTION_FORMAT21c_METHOD:
+			case INSTRUCTION_FORMAT21c_STRING:
+			case INSTRUCTION_FORMAT21c_TYPE:
+			case INSTRUCTION_FORMAT21t:
+			case INSTRUCTION_FORMAT22c_FIELD:
+			case INSTRUCTION_FORMAT22c_FIELD_ODEX:
+			case INSTRUCTION_FORMAT22c_STRING:
+			case INSTRUCTION_FORMAT22c_TYPE:
+			case INSTRUCTION_FORMAT22cs_FIELD:
+			case INSTRUCTION_FORMAT22s_OR_ID:
+			case INSTRUCTION_FORMAT22t:
+			case INSTRUCTION_FORMAT23x:
+			case INSTRUCTION_FORMAT25x:
+			case INSTRUCTION_FORMAT31i_OR_ID:
+			case INSTRUCTION_FORMAT31t:
+			case INSTRUCTION_FORMAT35c_METHOD:
+			case INSTRUCTION_FORMAT35c_METHOD_ODEX:
+			case INSTRUCTION_FORMAT35c_TYPE:
+			case INSTRUCTION_FORMAT35mi_METHOD:
+			case INSTRUCTION_FORMAT35ms_METHOD:
+			case INSTRUCTION_FORMAT51l:
+			case MEMBER_NAME:
+			case NEGATIVE_INTEGER_LITERAL:
+			case NULL_LITERAL:
+			case PARAM_LIST_OR_ID_START:
+			case POSITIVE_INTEGER_LITERAL:
+			case REGISTER:
+			case SIMPLE_NAME:
+			case VERIFICATION_ERROR_TYPE:
+				{
+				alt29=2;
+				}
+				break;
+			case PRIMITIVE_TYPE:
+				{
+				int LA29_3 = input.LA(2);
+				if ( (LA29_3==COLON||LA29_3==OPEN_PAREN) ) {
+					alt29=2;
+				}
+				else if ( (LA29_3==EOF||(LA29_3 >= ACCESS_SPEC && LA29_3 <= ANNOTATION_VISIBILITY)||LA29_3==BOOL_LITERAL||(LA29_3 >= CLASS_DIRECTIVE && LA29_3 <= CLOSE_BRACE)||LA29_3==COMMA||(LA29_3 >= DOUBLE_LITERAL_OR_ID && LA29_3 <= END_ANNOTATION_DIRECTIVE)||LA29_3==END_FIELD_DIRECTIVE||LA29_3==END_SUBANNOTATION_DIRECTIVE||LA29_3==FIELD_DIRECTIVE||(LA29_3 >= FLOAT_LITERAL_OR_ID && LA29_3 <= IMPLEMENTS_DIRECTIVE)||(LA29_3 >= INSTRUCTION_FORMAT10t && LA29_3 <= INSTRUCTION_FORMAT10x_ODEX)||LA29_3==INSTRUCTION_FORMAT11x||LA29_3==INSTRUCTION_FORMAT12x_OR_ID||(LA29_3 >= INSTRUCTION_FORMAT21c_FIELD && LA29_3 <= INSTRUCTION_FORMAT21c_TYPE)||LA29_3==INSTRUCTION_FORMAT21t||(LA29_3 >= INSTRUCTION_FORMAT22c_FIELD && LA29_3 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA29_3 >= INSTRUCTION_FORMAT22s_OR_ID && LA29_3 <= INSTRUCTION_FORMAT22t)||(LA29_3 >= INSTRUCTION_FORMAT23x && LA29_3 <= INSTRUCTION_FORMAT25x)||(LA29_3 >= INSTRUCTION_FORMAT31i_OR_ID && LA29_3 <= INSTRUCTION_FORMAT31t)||(LA29_3 >= INSTRUCTION_FORMAT35c_METHOD && LA29_3 <= INSTRUCTION_FORMAT35ms_METHOD)||LA29_3==INSTRUCTION_FORMAT51l||(LA29_3 >= METHOD_DIRECTIVE && LA29_3 <= NULL_LITERAL)||LA29_3==PARAM_LIST_OR_ID_START||(LA29_3 >= POSITIVE_INTEGER_LITERAL && LA29_3 <= PRIMITIVE_TYPE)||LA29_3==REGISTER||(LA29_3 >= SIMPLE_NAME && LA29_3 <= SOURCE_DIRECTIVE)||(LA29_3 >= SUPER_DIRECTIVE && LA29_3 <= VOID_TYPE)) ) {
+					alt29=3;
+				}
+
+				else {
+					int nvaeMark = input.mark();
+					try {
+						input.consume();
+						NoViableAltException nvae =
+							new NoViableAltException("", 29, 3, input);
+						throw nvae;
+					} finally {
+						input.rewind(nvaeMark);
+					}
+				}
+
+				}
+				break;
+			case VOID_TYPE:
+				{
+				int LA29_4 = input.LA(2);
+				if ( (LA29_4==COLON||LA29_4==OPEN_PAREN) ) {
+					alt29=2;
+				}
+				else if ( (LA29_4==EOF||(LA29_4 >= ACCESS_SPEC && LA29_4 <= ANNOTATION_VISIBILITY)||LA29_4==BOOL_LITERAL||(LA29_4 >= CLASS_DIRECTIVE && LA29_4 <= CLOSE_BRACE)||LA29_4==COMMA||(LA29_4 >= DOUBLE_LITERAL_OR_ID && LA29_4 <= END_ANNOTATION_DIRECTIVE)||LA29_4==END_FIELD_DIRECTIVE||LA29_4==END_SUBANNOTATION_DIRECTIVE||LA29_4==FIELD_DIRECTIVE||(LA29_4 >= FLOAT_LITERAL_OR_ID && LA29_4 <= IMPLEMENTS_DIRECTIVE)||(LA29_4 >= INSTRUCTION_FORMAT10t && LA29_4 <= INSTRUCTION_FORMAT10x_ODEX)||LA29_4==INSTRUCTION_FORMAT11x||LA29_4==INSTRUCTION_FORMAT12x_OR_ID||(LA29_4 >= INSTRUCTION_FORMAT21c_FIELD && LA29_4 <= INSTRUCTION_FORMAT21c_TYPE)||LA29_4==INSTRUCTION_FORMAT21t||(LA29_4 >= INSTRUCTION_FORMAT22c_FIELD && LA29_4 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA29_4 >= INSTRUCTION_FORMAT22s_OR_ID && LA29_4 <= INSTRUCTION_FORMAT22t)||(LA29_4 >= INSTRUCTION_FORMAT23x && LA29_4 <= INSTRUCTION_FORMAT25x)||(LA29_4 >= INSTRUCTION_FORMAT31i_OR_ID && LA29_4 <= INSTRUCTION_FORMAT31t)||(LA29_4 >= INSTRUCTION_FORMAT35c_METHOD && LA29_4 <= INSTRUCTION_FORMAT35ms_METHOD)||LA29_4==INSTRUCTION_FORMAT51l||(LA29_4 >= METHOD_DIRECTIVE && LA29_4 <= NULL_LITERAL)||LA29_4==PARAM_LIST_OR_ID_START||(LA29_4 >= POSITIVE_INTEGER_LITERAL && LA29_4 <= PRIMITIVE_TYPE)||LA29_4==REGISTER||(LA29_4 >= SIMPLE_NAME && LA29_4 <= SOURCE_DIRECTIVE)||(LA29_4 >= SUPER_DIRECTIVE && LA29_4 <= VOID_TYPE)) ) {
+					alt29=4;
+				}
+
+				else {
+					int nvaeMark = input.mark();
+					try {
+						input.consume();
+						NoViableAltException nvae =
+							new NoViableAltException("", 29, 4, input);
+						throw nvae;
+					} finally {
+						input.rewind(nvaeMark);
+					}
+				}
+
+				}
+				break;
+			default:
+				NoViableAltException nvae =
+					new NoViableAltException("", 29, 0, input);
+				throw nvae;
+			}
+			switch (alt29) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:700:5: reference_type_descriptor
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_reference_type_descriptor_in_type_field_method_literal2938);
+					reference_type_descriptor169=reference_type_descriptor();
+					state._fsp--;
+
+					adaptor.addChild(root_0, reference_type_descriptor169.getTree());
+
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:701:5: ( ( reference_type_descriptor ARROW )? ( member_name COLON nonvoid_type_descriptor -> ^( I_ENCODED_FIELD ( reference_type_descriptor )? member_name nonvoid_type_descriptor ) | member_name method_prototype -> ^( I_ENCODED_METHOD ( reference_type_descriptor )? member_name method_prototype ) ) )
+					{
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:701:5: ( ( reference_type_descriptor ARROW )? ( member_name COLON nonvoid_type_descriptor -> ^( I_ENCODED_FIELD ( reference_type_descriptor )? member_name nonvoid_type_descriptor ) | member_name method_prototype -> ^( I_ENCODED_METHOD ( reference_type_descriptor )? member_name method_prototype ) ) )
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:701:7: ( reference_type_descriptor ARROW )? ( member_name COLON nonvoid_type_descriptor -> ^( I_ENCODED_FIELD ( reference_type_descriptor )? member_name nonvoid_type_descriptor ) | member_name method_prototype -> ^( I_ENCODED_METHOD ( reference_type_descriptor )? member_name method_prototype ) )
+					{
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:701:7: ( reference_type_descriptor ARROW )?
+					int alt27=2;
+					int LA27_0 = input.LA(1);
+					if ( (LA27_0==ARRAY_DESCRIPTOR||LA27_0==CLASS_DESCRIPTOR) ) {
+						alt27=1;
+					}
+					switch (alt27) {
+						case 1 :
+							// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:701:8: reference_type_descriptor ARROW
+							{
+							pushFollow(FOLLOW_reference_type_descriptor_in_type_field_method_literal2947);
+							reference_type_descriptor170=reference_type_descriptor();
+							state._fsp--;
+
+							stream_reference_type_descriptor.add(reference_type_descriptor170.getTree());
+							ARROW171=(Token)match(input,ARROW,FOLLOW_ARROW_in_type_field_method_literal2949);
+							stream_ARROW.add(ARROW171);
+
+							}
+							break;
+
+					}
+
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:702:7: ( member_name COLON nonvoid_type_descriptor -> ^( I_ENCODED_FIELD ( reference_type_descriptor )? member_name nonvoid_type_descriptor ) | member_name method_prototype -> ^( I_ENCODED_METHOD ( reference_type_descriptor )? member_name method_prototype ) )
+					int alt28=2;
+					alt28 = dfa28.predict(input);
+					switch (alt28) {
+						case 1 :
+							// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:702:9: member_name COLON nonvoid_type_descriptor
+							{
+							pushFollow(FOLLOW_member_name_in_type_field_method_literal2961);
+							member_name172=member_name();
+							state._fsp--;
+
+							stream_member_name.add(member_name172.getTree());
+							COLON173=(Token)match(input,COLON,FOLLOW_COLON_in_type_field_method_literal2963);
+							stream_COLON.add(COLON173);
+
+							pushFollow(FOLLOW_nonvoid_type_descriptor_in_type_field_method_literal2965);
+							nonvoid_type_descriptor174=nonvoid_type_descriptor();
+							state._fsp--;
+
+							stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor174.getTree());
+							// AST REWRITE
+							// elements: member_name, nonvoid_type_descriptor, reference_type_descriptor
+							// token labels:
+							// rule labels: retval
+							// token list labels:
+							// rule list labels:
+							// wildcard labels:
+							retval.tree = root_0;
+							RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+							root_0 = (CommonTree)adaptor.nil();
+							// 702:51: -> ^( I_ENCODED_FIELD ( reference_type_descriptor )? member_name nonvoid_type_descriptor )
+							{
+								// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:702:54: ^( I_ENCODED_FIELD ( reference_type_descriptor )? member_name nonvoid_type_descriptor )
+								{
+								CommonTree root_1 = (CommonTree)adaptor.nil();
+								root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ENCODED_FIELD, "I_ENCODED_FIELD"), root_1);
+								// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:702:72: ( reference_type_descriptor )?
+								if ( stream_reference_type_descriptor.hasNext() ) {
+									adaptor.addChild(root_1, stream_reference_type_descriptor.nextTree());
+								}
+								stream_reference_type_descriptor.reset();
+
+								adaptor.addChild(root_1, stream_member_name.nextTree());
+								adaptor.addChild(root_1, stream_nonvoid_type_descriptor.nextTree());
+								adaptor.addChild(root_0, root_1);
+								}
+
+							}
+
+
+							retval.tree = root_0;
+
+							}
+							break;
+						case 2 :
+							// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:703:9: member_name method_prototype
+							{
+							pushFollow(FOLLOW_member_name_in_type_field_method_literal2988);
+							member_name175=member_name();
+							state._fsp--;
+
+							stream_member_name.add(member_name175.getTree());
+							pushFollow(FOLLOW_method_prototype_in_type_field_method_literal2990);
+							method_prototype176=method_prototype();
+							state._fsp--;
+
+							stream_method_prototype.add(method_prototype176.getTree());
+							// AST REWRITE
+							// elements: reference_type_descriptor, method_prototype, member_name
+							// token labels:
+							// rule labels: retval
+							// token list labels:
+							// rule list labels:
+							// wildcard labels:
+							retval.tree = root_0;
+							RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+							root_0 = (CommonTree)adaptor.nil();
+							// 703:38: -> ^( I_ENCODED_METHOD ( reference_type_descriptor )? member_name method_prototype )
+							{
+								// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:703:41: ^( I_ENCODED_METHOD ( reference_type_descriptor )? member_name method_prototype )
+								{
+								CommonTree root_1 = (CommonTree)adaptor.nil();
+								root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ENCODED_METHOD, "I_ENCODED_METHOD"), root_1);
+								// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:703:60: ( reference_type_descriptor )?
+								if ( stream_reference_type_descriptor.hasNext() ) {
+									adaptor.addChild(root_1, stream_reference_type_descriptor.nextTree());
+								}
+								stream_reference_type_descriptor.reset();
+
+								adaptor.addChild(root_1, stream_member_name.nextTree());
+								adaptor.addChild(root_1, stream_method_prototype.nextTree());
+								adaptor.addChild(root_0, root_1);
+								}
+
+							}
+
+
+							retval.tree = root_0;
+
+							}
+							break;
+
+					}
+
+					}
+
+					}
+					break;
+				case 3 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:706:5: PRIMITIVE_TYPE
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					PRIMITIVE_TYPE177=(Token)match(input,PRIMITIVE_TYPE,FOLLOW_PRIMITIVE_TYPE_in_type_field_method_literal3023);
+					PRIMITIVE_TYPE177_tree = (CommonTree)adaptor.create(PRIMITIVE_TYPE177);
+					adaptor.addChild(root_0, PRIMITIVE_TYPE177_tree);
+
+					}
+					break;
+				case 4 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:707:5: VOID_TYPE
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					VOID_TYPE178=(Token)match(input,VOID_TYPE,FOLLOW_VOID_TYPE_in_type_field_method_literal3029);
+					VOID_TYPE178_tree = (CommonTree)adaptor.create(VOID_TYPE178);
+					adaptor.addChild(root_0, VOID_TYPE178_tree);
+
+					}
+					break;
+
+			}
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "type_field_method_literal"
+
+
+	public static class method_reference_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "method_reference"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:709:1: method_reference : ( reference_type_descriptor ARROW )? member_name method_prototype -> ( reference_type_descriptor )? member_name method_prototype ;
+	public final smaliParser.method_reference_return method_reference() throws RecognitionException {
+		smaliParser.method_reference_return retval = new smaliParser.method_reference_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token ARROW180=null;
+		ParserRuleReturnScope reference_type_descriptor179 =null;
+		ParserRuleReturnScope member_name181 =null;
+		ParserRuleReturnScope method_prototype182 =null;
+
+		CommonTree ARROW180_tree=null;
+		RewriteRuleTokenStream stream_ARROW=new RewriteRuleTokenStream(adaptor,"token ARROW");
+		RewriteRuleSubtreeStream stream_method_prototype=new RewriteRuleSubtreeStream(adaptor,"rule method_prototype");
+		RewriteRuleSubtreeStream stream_reference_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule reference_type_descriptor");
+		RewriteRuleSubtreeStream stream_member_name=new RewriteRuleSubtreeStream(adaptor,"rule member_name");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:710:3: ( ( reference_type_descriptor ARROW )? member_name method_prototype -> ( reference_type_descriptor )? member_name method_prototype )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:710:5: ( reference_type_descriptor ARROW )? member_name method_prototype
+			{
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:710:5: ( reference_type_descriptor ARROW )?
+			int alt30=2;
+			int LA30_0 = input.LA(1);
+			if ( (LA30_0==ARRAY_DESCRIPTOR||LA30_0==CLASS_DESCRIPTOR) ) {
+				alt30=1;
+			}
+			switch (alt30) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:710:6: reference_type_descriptor ARROW
+					{
+					pushFollow(FOLLOW_reference_type_descriptor_in_method_reference3040);
+					reference_type_descriptor179=reference_type_descriptor();
+					state._fsp--;
+
+					stream_reference_type_descriptor.add(reference_type_descriptor179.getTree());
+					ARROW180=(Token)match(input,ARROW,FOLLOW_ARROW_in_method_reference3042);
+					stream_ARROW.add(ARROW180);
+
+					}
+					break;
+
+			}
+
+			pushFollow(FOLLOW_member_name_in_method_reference3046);
+			member_name181=member_name();
+			state._fsp--;
+
+			stream_member_name.add(member_name181.getTree());
+			pushFollow(FOLLOW_method_prototype_in_method_reference3048);
+			method_prototype182=method_prototype();
+			state._fsp--;
+
+			stream_method_prototype.add(method_prototype182.getTree());
+			// AST REWRITE
+			// elements: method_prototype, reference_type_descriptor, member_name
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 711:3: -> ( reference_type_descriptor )? member_name method_prototype
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:711:6: ( reference_type_descriptor )?
+				if ( stream_reference_type_descriptor.hasNext() ) {
+					adaptor.addChild(root_0, stream_reference_type_descriptor.nextTree());
+				}
+				stream_reference_type_descriptor.reset();
+
+				adaptor.addChild(root_0, stream_member_name.nextTree());
+				adaptor.addChild(root_0, stream_method_prototype.nextTree());
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "method_reference"
+
+
+	public static class field_reference_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "field_reference"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:713:1: field_reference : ( reference_type_descriptor ARROW )? member_name COLON nonvoid_type_descriptor -> ( reference_type_descriptor )? member_name nonvoid_type_descriptor ;
+	public final smaliParser.field_reference_return field_reference() throws RecognitionException {
+		smaliParser.field_reference_return retval = new smaliParser.field_reference_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token ARROW184=null;
+		Token COLON186=null;
+		ParserRuleReturnScope reference_type_descriptor183 =null;
+		ParserRuleReturnScope member_name185 =null;
+		ParserRuleReturnScope nonvoid_type_descriptor187 =null;
+
+		CommonTree ARROW184_tree=null;
+		CommonTree COLON186_tree=null;
+		RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
+		RewriteRuleTokenStream stream_ARROW=new RewriteRuleTokenStream(adaptor,"token ARROW");
+		RewriteRuleSubtreeStream stream_nonvoid_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule nonvoid_type_descriptor");
+		RewriteRuleSubtreeStream stream_reference_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule reference_type_descriptor");
+		RewriteRuleSubtreeStream stream_member_name=new RewriteRuleSubtreeStream(adaptor,"rule member_name");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:714:3: ( ( reference_type_descriptor ARROW )? member_name COLON nonvoid_type_descriptor -> ( reference_type_descriptor )? member_name nonvoid_type_descriptor )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:714:5: ( reference_type_descriptor ARROW )? member_name COLON nonvoid_type_descriptor
+			{
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:714:5: ( reference_type_descriptor ARROW )?
+			int alt31=2;
+			int LA31_0 = input.LA(1);
+			if ( (LA31_0==ARRAY_DESCRIPTOR||LA31_0==CLASS_DESCRIPTOR) ) {
+				alt31=1;
+			}
+			switch (alt31) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:714:6: reference_type_descriptor ARROW
+					{
+					pushFollow(FOLLOW_reference_type_descriptor_in_field_reference3070);
+					reference_type_descriptor183=reference_type_descriptor();
+					state._fsp--;
+
+					stream_reference_type_descriptor.add(reference_type_descriptor183.getTree());
+					ARROW184=(Token)match(input,ARROW,FOLLOW_ARROW_in_field_reference3072);
+					stream_ARROW.add(ARROW184);
+
+					}
+					break;
+
+			}
+
+			pushFollow(FOLLOW_member_name_in_field_reference3076);
+			member_name185=member_name();
+			state._fsp--;
+
+			stream_member_name.add(member_name185.getTree());
+			COLON186=(Token)match(input,COLON,FOLLOW_COLON_in_field_reference3078);
+			stream_COLON.add(COLON186);
+
+			pushFollow(FOLLOW_nonvoid_type_descriptor_in_field_reference3080);
+			nonvoid_type_descriptor187=nonvoid_type_descriptor();
+			state._fsp--;
+
+			stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor187.getTree());
+			// AST REWRITE
+			// elements: member_name, reference_type_descriptor, nonvoid_type_descriptor
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 715:3: -> ( reference_type_descriptor )? member_name nonvoid_type_descriptor
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:715:6: ( reference_type_descriptor )?
+				if ( stream_reference_type_descriptor.hasNext() ) {
+					adaptor.addChild(root_0, stream_reference_type_descriptor.nextTree());
+				}
+				stream_reference_type_descriptor.reset();
+
+				adaptor.addChild(root_0, stream_member_name.nextTree());
+				adaptor.addChild(root_0, stream_nonvoid_type_descriptor.nextTree());
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "field_reference"
+
+
+	public static class label_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "label"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:717:1: label : COLON simple_name -> ^( I_LABEL[$COLON, \"I_LABEL\"] simple_name ) ;
+	public final smaliParser.label_return label() throws RecognitionException {
+		smaliParser.label_return retval = new smaliParser.label_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token COLON188=null;
+		ParserRuleReturnScope simple_name189 =null;
+
+		CommonTree COLON188_tree=null;
+		RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
+		RewriteRuleSubtreeStream stream_simple_name=new RewriteRuleSubtreeStream(adaptor,"rule simple_name");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:718:3: ( COLON simple_name -> ^( I_LABEL[$COLON, \"I_LABEL\"] simple_name ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:718:5: COLON simple_name
+			{
+			COLON188=(Token)match(input,COLON,FOLLOW_COLON_in_label3101);
+			stream_COLON.add(COLON188);
+
+			pushFollow(FOLLOW_simple_name_in_label3103);
+			simple_name189=simple_name();
+			state._fsp--;
+
+			stream_simple_name.add(simple_name189.getTree());
+			// AST REWRITE
+			// elements: simple_name
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 718:23: -> ^( I_LABEL[$COLON, \"I_LABEL\"] simple_name )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:718:26: ^( I_LABEL[$COLON, \"I_LABEL\"] simple_name )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_LABEL, COLON188, "I_LABEL"), root_1);
+				adaptor.addChild(root_1, stream_simple_name.nextTree());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "label"
+
+
+	public static class label_ref_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "label_ref"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:720:1: label_ref : COLON simple_name -> simple_name ;
+	public final smaliParser.label_ref_return label_ref() throws RecognitionException {
+		smaliParser.label_ref_return retval = new smaliParser.label_ref_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token COLON190=null;
+		ParserRuleReturnScope simple_name191 =null;
+
+		CommonTree COLON190_tree=null;
+		RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
+		RewriteRuleSubtreeStream stream_simple_name=new RewriteRuleSubtreeStream(adaptor,"rule simple_name");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:721:3: ( COLON simple_name -> simple_name )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:721:5: COLON simple_name
+			{
+			COLON190=(Token)match(input,COLON,FOLLOW_COLON_in_label_ref3122);
+			stream_COLON.add(COLON190);
+
+			pushFollow(FOLLOW_simple_name_in_label_ref3124);
+			simple_name191=simple_name();
+			state._fsp--;
+
+			stream_simple_name.add(simple_name191.getTree());
+			// AST REWRITE
+			// elements: simple_name
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 721:23: -> simple_name
+			{
+				adaptor.addChild(root_0, stream_simple_name.nextTree());
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "label_ref"
+
+
+	public static class register_list_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "register_list"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:723:1: register_list : ( REGISTER ( COMMA REGISTER )* -> ^( I_REGISTER_LIST[$start, \"I_REGISTER_LIST\"] ( REGISTER )* ) | -> ^( I_REGISTER_LIST[$start, \"I_REGISTER_LIST\"] ) );
+	public final smaliParser.register_list_return register_list() throws RecognitionException {
+		smaliParser.register_list_return retval = new smaliParser.register_list_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token REGISTER192=null;
+		Token COMMA193=null;
+		Token REGISTER194=null;
+
+		CommonTree REGISTER192_tree=null;
+		CommonTree COMMA193_tree=null;
+		CommonTree REGISTER194_tree=null;
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:724:3: ( REGISTER ( COMMA REGISTER )* -> ^( I_REGISTER_LIST[$start, \"I_REGISTER_LIST\"] ( REGISTER )* ) | -> ^( I_REGISTER_LIST[$start, \"I_REGISTER_LIST\"] ) )
+			int alt33=2;
+			int LA33_0 = input.LA(1);
+			if ( (LA33_0==REGISTER) ) {
+				alt33=1;
+			}
+			else if ( (LA33_0==CLOSE_BRACE) ) {
+				alt33=2;
+			}
+
+			else {
+				NoViableAltException nvae =
+					new NoViableAltException("", 33, 0, input);
+				throw nvae;
+			}
+
+			switch (alt33) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:724:5: REGISTER ( COMMA REGISTER )*
+					{
+					REGISTER192=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_register_list3138);
+					stream_REGISTER.add(REGISTER192);
+
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:724:14: ( COMMA REGISTER )*
+					loop32:
+					while (true) {
+						int alt32=2;
+						int LA32_0 = input.LA(1);
+						if ( (LA32_0==COMMA) ) {
+							alt32=1;
+						}
+
+						switch (alt32) {
+						case 1 :
+							// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:724:15: COMMA REGISTER
+							{
+							COMMA193=(Token)match(input,COMMA,FOLLOW_COMMA_in_register_list3141);
+							stream_COMMA.add(COMMA193);
+
+							REGISTER194=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_register_list3143);
+							stream_REGISTER.add(REGISTER194);
+
+							}
+							break;
+
+						default :
+							break loop32;
+						}
+					}
+
+					// AST REWRITE
+					// elements: REGISTER
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 724:32: -> ^( I_REGISTER_LIST[$start, \"I_REGISTER_LIST\"] ( REGISTER )* )
+					{
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:724:35: ^( I_REGISTER_LIST[$start, \"I_REGISTER_LIST\"] ( REGISTER )* )
+						{
+						CommonTree root_1 = (CommonTree)adaptor.nil();
+						root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_REGISTER_LIST, (retval.start), "I_REGISTER_LIST"), root_1);
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:724:80: ( REGISTER )*
+						while ( stream_REGISTER.hasNext() ) {
+							adaptor.addChild(root_1, stream_REGISTER.nextNode());
+						}
+						stream_REGISTER.reset();
+
+						adaptor.addChild(root_0, root_1);
+						}
+
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:725:5:
+					{
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 725:5: -> ^( I_REGISTER_LIST[$start, \"I_REGISTER_LIST\"] )
+					{
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:725:7: ^( I_REGISTER_LIST[$start, \"I_REGISTER_LIST\"] )
+						{
+						CommonTree root_1 = (CommonTree)adaptor.nil();
+						root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_REGISTER_LIST, (retval.start), "I_REGISTER_LIST"), root_1);
+						adaptor.addChild(root_0, root_1);
+						}
+
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+
+			}
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "register_list"
+
+
+	public static class register_range_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "register_range"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:727:1: register_range : (startreg= REGISTER ( DOTDOT endreg= REGISTER )? )? -> ^( I_REGISTER_RANGE[$start, \"I_REGISTER_RANGE\"] ( $startreg)? ( $endreg)? ) ;
+	public final smaliParser.register_range_return register_range() throws RecognitionException {
+		smaliParser.register_range_return retval = new smaliParser.register_range_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token startreg=null;
+		Token endreg=null;
+		Token DOTDOT195=null;
+
+		CommonTree startreg_tree=null;
+		CommonTree endreg_tree=null;
+		CommonTree DOTDOT195_tree=null;
+		RewriteRuleTokenStream stream_DOTDOT=new RewriteRuleTokenStream(adaptor,"token DOTDOT");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:728:3: ( (startreg= REGISTER ( DOTDOT endreg= REGISTER )? )? -> ^( I_REGISTER_RANGE[$start, \"I_REGISTER_RANGE\"] ( $startreg)? ( $endreg)? ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:728:5: (startreg= REGISTER ( DOTDOT endreg= REGISTER )? )?
+			{
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:728:5: (startreg= REGISTER ( DOTDOT endreg= REGISTER )? )?
+			int alt35=2;
+			int LA35_0 = input.LA(1);
+			if ( (LA35_0==REGISTER) ) {
+				alt35=1;
+			}
+			switch (alt35) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:728:6: startreg= REGISTER ( DOTDOT endreg= REGISTER )?
+					{
+					startreg=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_register_range3178);
+					stream_REGISTER.add(startreg);
+
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:728:24: ( DOTDOT endreg= REGISTER )?
+					int alt34=2;
+					int LA34_0 = input.LA(1);
+					if ( (LA34_0==DOTDOT) ) {
+						alt34=1;
+					}
+					switch (alt34) {
+						case 1 :
+							// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:728:25: DOTDOT endreg= REGISTER
+							{
+							DOTDOT195=(Token)match(input,DOTDOT,FOLLOW_DOTDOT_in_register_range3181);
+							stream_DOTDOT.add(DOTDOT195);
+
+							endreg=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_register_range3185);
+							stream_REGISTER.add(endreg);
+
+							}
+							break;
+
+					}
+
+					}
+					break;
+
+			}
+
+			// AST REWRITE
+			// elements: endreg, startreg
+			// token labels: endreg, startreg
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleTokenStream stream_endreg=new RewriteRuleTokenStream(adaptor,"token endreg",endreg);
+			RewriteRuleTokenStream stream_startreg=new RewriteRuleTokenStream(adaptor,"token startreg",startreg);
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 728:52: -> ^( I_REGISTER_RANGE[$start, \"I_REGISTER_RANGE\"] ( $startreg)? ( $endreg)? )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:728:55: ^( I_REGISTER_RANGE[$start, \"I_REGISTER_RANGE\"] ( $startreg)? ( $endreg)? )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_REGISTER_RANGE, (retval.start), "I_REGISTER_RANGE"), root_1);
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:728:103: ( $startreg)?
+				if ( stream_startreg.hasNext() ) {
+					adaptor.addChild(root_1, stream_startreg.nextNode());
+				}
+				stream_startreg.reset();
+
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:728:114: ( $endreg)?
+				if ( stream_endreg.hasNext() ) {
+					adaptor.addChild(root_1, stream_endreg.nextNode());
+				}
+				stream_endreg.reset();
+
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "register_range"
+
+
+	public static class verification_error_reference_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "verification_error_reference"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:730:1: verification_error_reference : ( CLASS_DESCRIPTOR | field_reference | method_reference );
+	public final smaliParser.verification_error_reference_return verification_error_reference() throws RecognitionException {
+		smaliParser.verification_error_reference_return retval = new smaliParser.verification_error_reference_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token CLASS_DESCRIPTOR196=null;
+		ParserRuleReturnScope field_reference197 =null;
+		ParserRuleReturnScope method_reference198 =null;
+
+		CommonTree CLASS_DESCRIPTOR196_tree=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:731:3: ( CLASS_DESCRIPTOR | field_reference | method_reference )
+			int alt36=3;
+			alt36 = dfa36.predict(input);
+			switch (alt36) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:731:5: CLASS_DESCRIPTOR
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					CLASS_DESCRIPTOR196=(Token)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_verification_error_reference3214);
+					CLASS_DESCRIPTOR196_tree = (CommonTree)adaptor.create(CLASS_DESCRIPTOR196);
+					adaptor.addChild(root_0, CLASS_DESCRIPTOR196_tree);
+
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:731:24: field_reference
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_field_reference_in_verification_error_reference3218);
+					field_reference197=field_reference();
+					state._fsp--;
+
+					adaptor.addChild(root_0, field_reference197.getTree());
+
+					}
+					break;
+				case 3 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:731:42: method_reference
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_method_reference_in_verification_error_reference3222);
+					method_reference198=method_reference();
+					state._fsp--;
+
+					adaptor.addChild(root_0, method_reference198.getTree());
+
+					}
+					break;
+
+			}
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "verification_error_reference"
+
+
+	public static class catch_directive_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "catch_directive"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:733:1: catch_directive : CATCH_DIRECTIVE nonvoid_type_descriptor OPEN_BRACE from= label_ref DOTDOT to= label_ref CLOSE_BRACE using= label_ref -> ^( I_CATCH[$start, \"I_CATCH\"] nonvoid_type_descriptor $from $to $using) ;
+	public final smaliParser.catch_directive_return catch_directive() throws RecognitionException {
+		smaliParser.catch_directive_return retval = new smaliParser.catch_directive_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token CATCH_DIRECTIVE199=null;
+		Token OPEN_BRACE201=null;
+		Token DOTDOT202=null;
+		Token CLOSE_BRACE203=null;
+		ParserRuleReturnScope from =null;
+		ParserRuleReturnScope to =null;
+		ParserRuleReturnScope using =null;
+		ParserRuleReturnScope nonvoid_type_descriptor200 =null;
+
+		CommonTree CATCH_DIRECTIVE199_tree=null;
+		CommonTree OPEN_BRACE201_tree=null;
+		CommonTree DOTDOT202_tree=null;
+		CommonTree CLOSE_BRACE203_tree=null;
+		RewriteRuleTokenStream stream_DOTDOT=new RewriteRuleTokenStream(adaptor,"token DOTDOT");
+		RewriteRuleTokenStream stream_CLOSE_BRACE=new RewriteRuleTokenStream(adaptor,"token CLOSE_BRACE");
+		RewriteRuleTokenStream stream_OPEN_BRACE=new RewriteRuleTokenStream(adaptor,"token OPEN_BRACE");
+		RewriteRuleTokenStream stream_CATCH_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token CATCH_DIRECTIVE");
+		RewriteRuleSubtreeStream stream_nonvoid_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule nonvoid_type_descriptor");
+		RewriteRuleSubtreeStream stream_label_ref=new RewriteRuleSubtreeStream(adaptor,"rule label_ref");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:734:3: ( CATCH_DIRECTIVE nonvoid_type_descriptor OPEN_BRACE from= label_ref DOTDOT to= label_ref CLOSE_BRACE using= label_ref -> ^( I_CATCH[$start, \"I_CATCH\"] nonvoid_type_descriptor $from $to $using) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:734:5: CATCH_DIRECTIVE nonvoid_type_descriptor OPEN_BRACE from= label_ref DOTDOT to= label_ref CLOSE_BRACE using= label_ref
+			{
+			CATCH_DIRECTIVE199=(Token)match(input,CATCH_DIRECTIVE,FOLLOW_CATCH_DIRECTIVE_in_catch_directive3232);
+			stream_CATCH_DIRECTIVE.add(CATCH_DIRECTIVE199);
+
+			pushFollow(FOLLOW_nonvoid_type_descriptor_in_catch_directive3234);
+			nonvoid_type_descriptor200=nonvoid_type_descriptor();
+			state._fsp--;
+
+			stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor200.getTree());
+			OPEN_BRACE201=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_catch_directive3236);
+			stream_OPEN_BRACE.add(OPEN_BRACE201);
+
+			pushFollow(FOLLOW_label_ref_in_catch_directive3240);
+			from=label_ref();
+			state._fsp--;
+
+			stream_label_ref.add(from.getTree());
+			DOTDOT202=(Token)match(input,DOTDOT,FOLLOW_DOTDOT_in_catch_directive3242);
+			stream_DOTDOT.add(DOTDOT202);
+
+			pushFollow(FOLLOW_label_ref_in_catch_directive3246);
+			to=label_ref();
+			state._fsp--;
+
+			stream_label_ref.add(to.getTree());
+			CLOSE_BRACE203=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_catch_directive3248);
+			stream_CLOSE_BRACE.add(CLOSE_BRACE203);
+
+			pushFollow(FOLLOW_label_ref_in_catch_directive3252);
+			using=label_ref();
+			state._fsp--;
+
+			stream_label_ref.add(using.getTree());
+			// AST REWRITE
+			// elements: from, using, nonvoid_type_descriptor, to
+			// token labels:
+			// rule labels: to, retval, using, from
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_to=new RewriteRuleSubtreeStream(adaptor,"rule to",to!=null?to.getTree():null);
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+			RewriteRuleSubtreeStream stream_using=new RewriteRuleSubtreeStream(adaptor,"rule using",using!=null?using.getTree():null);
+			RewriteRuleSubtreeStream stream_from=new RewriteRuleSubtreeStream(adaptor,"rule from",from!=null?from.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 735:5: -> ^( I_CATCH[$start, \"I_CATCH\"] nonvoid_type_descriptor $from $to $using)
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:735:8: ^( I_CATCH[$start, \"I_CATCH\"] nonvoid_type_descriptor $from $to $using)
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_CATCH, (retval.start), "I_CATCH"), root_1);
+				adaptor.addChild(root_1, stream_nonvoid_type_descriptor.nextTree());
+				adaptor.addChild(root_1, stream_from.nextTree());
+				adaptor.addChild(root_1, stream_to.nextTree());
+				adaptor.addChild(root_1, stream_using.nextTree());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "catch_directive"
+
+
+	public static class catchall_directive_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "catchall_directive"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:737:1: catchall_directive : CATCHALL_DIRECTIVE OPEN_BRACE from= label_ref DOTDOT to= label_ref CLOSE_BRACE using= label_ref -> ^( I_CATCHALL[$start, \"I_CATCHALL\"] $from $to $using) ;
+	public final smaliParser.catchall_directive_return catchall_directive() throws RecognitionException {
+		smaliParser.catchall_directive_return retval = new smaliParser.catchall_directive_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token CATCHALL_DIRECTIVE204=null;
+		Token OPEN_BRACE205=null;
+		Token DOTDOT206=null;
+		Token CLOSE_BRACE207=null;
+		ParserRuleReturnScope from =null;
+		ParserRuleReturnScope to =null;
+		ParserRuleReturnScope using =null;
+
+		CommonTree CATCHALL_DIRECTIVE204_tree=null;
+		CommonTree OPEN_BRACE205_tree=null;
+		CommonTree DOTDOT206_tree=null;
+		CommonTree CLOSE_BRACE207_tree=null;
+		RewriteRuleTokenStream stream_DOTDOT=new RewriteRuleTokenStream(adaptor,"token DOTDOT");
+		RewriteRuleTokenStream stream_CLOSE_BRACE=new RewriteRuleTokenStream(adaptor,"token CLOSE_BRACE");
+		RewriteRuleTokenStream stream_OPEN_BRACE=new RewriteRuleTokenStream(adaptor,"token OPEN_BRACE");
+		RewriteRuleTokenStream stream_CATCHALL_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token CATCHALL_DIRECTIVE");
+		RewriteRuleSubtreeStream stream_label_ref=new RewriteRuleSubtreeStream(adaptor,"rule label_ref");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:738:3: ( CATCHALL_DIRECTIVE OPEN_BRACE from= label_ref DOTDOT to= label_ref CLOSE_BRACE using= label_ref -> ^( I_CATCHALL[$start, \"I_CATCHALL\"] $from $to $using) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:738:5: CATCHALL_DIRECTIVE OPEN_BRACE from= label_ref DOTDOT to= label_ref CLOSE_BRACE using= label_ref
+			{
+			CATCHALL_DIRECTIVE204=(Token)match(input,CATCHALL_DIRECTIVE,FOLLOW_CATCHALL_DIRECTIVE_in_catchall_directive3284);
+			stream_CATCHALL_DIRECTIVE.add(CATCHALL_DIRECTIVE204);
+
+			OPEN_BRACE205=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_catchall_directive3286);
+			stream_OPEN_BRACE.add(OPEN_BRACE205);
+
+			pushFollow(FOLLOW_label_ref_in_catchall_directive3290);
+			from=label_ref();
+			state._fsp--;
+
+			stream_label_ref.add(from.getTree());
+			DOTDOT206=(Token)match(input,DOTDOT,FOLLOW_DOTDOT_in_catchall_directive3292);
+			stream_DOTDOT.add(DOTDOT206);
+
+			pushFollow(FOLLOW_label_ref_in_catchall_directive3296);
+			to=label_ref();
+			state._fsp--;
+
+			stream_label_ref.add(to.getTree());
+			CLOSE_BRACE207=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_catchall_directive3298);
+			stream_CLOSE_BRACE.add(CLOSE_BRACE207);
+
+			pushFollow(FOLLOW_label_ref_in_catchall_directive3302);
+			using=label_ref();
+			state._fsp--;
+
+			stream_label_ref.add(using.getTree());
+			// AST REWRITE
+			// elements: using, to, from
+			// token labels:
+			// rule labels: to, retval, using, from
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_to=new RewriteRuleSubtreeStream(adaptor,"rule to",to!=null?to.getTree():null);
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+			RewriteRuleSubtreeStream stream_using=new RewriteRuleSubtreeStream(adaptor,"rule using",using!=null?using.getTree():null);
+			RewriteRuleSubtreeStream stream_from=new RewriteRuleSubtreeStream(adaptor,"rule from",from!=null?from.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 739:5: -> ^( I_CATCHALL[$start, \"I_CATCHALL\"] $from $to $using)
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:739:8: ^( I_CATCHALL[$start, \"I_CATCHALL\"] $from $to $using)
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_CATCHALL, (retval.start), "I_CATCHALL"), root_1);
+				adaptor.addChild(root_1, stream_from.nextTree());
+				adaptor.addChild(root_1, stream_to.nextTree());
+				adaptor.addChild(root_1, stream_using.nextTree());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "catchall_directive"
+
+
+	public static class parameter_directive_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "parameter_directive"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:745:1: parameter_directive : PARAMETER_DIRECTIVE REGISTER ( COMMA STRING_LITERAL )? ({...}? annotation )* ( END_PARAMETER_DIRECTIVE -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ) ) ) ;
+	public final smaliParser.parameter_directive_return parameter_directive() throws RecognitionException {
+		smaliParser.parameter_directive_return retval = new smaliParser.parameter_directive_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token PARAMETER_DIRECTIVE208=null;
+		Token REGISTER209=null;
+		Token COMMA210=null;
+		Token STRING_LITERAL211=null;
+		Token END_PARAMETER_DIRECTIVE213=null;
+		ParserRuleReturnScope annotation212 =null;
+
+		CommonTree PARAMETER_DIRECTIVE208_tree=null;
+		CommonTree REGISTER209_tree=null;
+		CommonTree COMMA210_tree=null;
+		CommonTree STRING_LITERAL211_tree=null;
+		CommonTree END_PARAMETER_DIRECTIVE213_tree=null;
+		RewriteRuleTokenStream stream_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token STRING_LITERAL");
+		RewriteRuleTokenStream stream_END_PARAMETER_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_PARAMETER_DIRECTIVE");
+		RewriteRuleTokenStream stream_PARAMETER_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token PARAMETER_DIRECTIVE");
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+		RewriteRuleSubtreeStream stream_annotation=new RewriteRuleSubtreeStream(adaptor,"rule annotation");
+
+		List<CommonTree> annotations = new ArrayList<CommonTree>();
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:747:3: ( PARAMETER_DIRECTIVE REGISTER ( COMMA STRING_LITERAL )? ({...}? annotation )* ( END_PARAMETER_DIRECTIVE -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ) ) ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:747:5: PARAMETER_DIRECTIVE REGISTER ( COMMA STRING_LITERAL )? ({...}? annotation )* ( END_PARAMETER_DIRECTIVE -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ) ) )
+			{
+			PARAMETER_DIRECTIVE208=(Token)match(input,PARAMETER_DIRECTIVE,FOLLOW_PARAMETER_DIRECTIVE_in_parameter_directive3341);
+			stream_PARAMETER_DIRECTIVE.add(PARAMETER_DIRECTIVE208);
+
+			REGISTER209=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_parameter_directive3343);
+			stream_REGISTER.add(REGISTER209);
+
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:747:34: ( COMMA STRING_LITERAL )?
+			int alt37=2;
+			int LA37_0 = input.LA(1);
+			if ( (LA37_0==COMMA) ) {
+				alt37=1;
+			}
+			switch (alt37) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:747:35: COMMA STRING_LITERAL
+					{
+					COMMA210=(Token)match(input,COMMA,FOLLOW_COMMA_in_parameter_directive3346);
+					stream_COMMA.add(COMMA210);
+
+					STRING_LITERAL211=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_parameter_directive3348);
+					stream_STRING_LITERAL.add(STRING_LITERAL211);
+
+					}
+					break;
+
+			}
+
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:748:5: ({...}? annotation )*
+			loop38:
+			while (true) {
+				int alt38=2;
+				alt38 = dfa38.predict(input);
+				switch (alt38) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:748:6: {...}? annotation
+					{
+					if ( !((input.LA(1) == ANNOTATION_DIRECTIVE)) ) {
+						throw new FailedPredicateException(input, "parameter_directive", "input.LA(1) == ANNOTATION_DIRECTIVE");
+					}
+					pushFollow(FOLLOW_annotation_in_parameter_directive3359);
+					annotation212=annotation();
+					state._fsp--;
+
+					stream_annotation.add(annotation212.getTree());
+					annotations.add((annotation212!=null?((CommonTree)annotation212.getTree()):null));
+					}
+					break;
+
+				default :
+					break loop38;
+				}
+			}
+
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:750:5: ( END_PARAMETER_DIRECTIVE -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ) ) )
+			int alt39=2;
+			int LA39_0 = input.LA(1);
+			if ( (LA39_0==END_PARAMETER_DIRECTIVE) ) {
+				alt39=1;
+			}
+			else if ( (LA39_0==ANNOTATION_DIRECTIVE||LA39_0==ARRAY_DATA_DIRECTIVE||(LA39_0 >= CATCHALL_DIRECTIVE && LA39_0 <= CATCH_DIRECTIVE)||LA39_0==COLON||(LA39_0 >= END_LOCAL_DIRECTIVE && LA39_0 <= END_METHOD_DIRECTIVE)||LA39_0==EPILOGUE_DIRECTIVE||(LA39_0 >= INSTRUCTION_FORMAT10t && LA39_0 <= INSTRUCTION_FORMAT51l)||(LA39_0 >= LINE_DIRECTIVE && LA39_0 <= LOCAL_DIRECTIVE)||(LA39_0 >= PACKED_SWITCH_DIRECTIVE && LA39_0 <= PARAMETER_DIRECTIVE)||LA39_0==PROLOGUE_DIRECTIVE||(LA39_0 >= REGISTERS_DIRECTIVE && LA39_0 <= RESTART_LOCAL_DIRECTIVE)||(LA39_0 >= SOURCE_DIRECTIVE && LA39_0 <= SPARSE_SWITCH_DIRECTIVE)) ) {
+				alt39=2;
+			}
+
+			else {
+				NoViableAltException nvae =
+					new NoViableAltException("", 39, 0, input);
+				throw nvae;
+			}
+
+			switch (alt39) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:750:7: END_PARAMETER_DIRECTIVE
+					{
+					END_PARAMETER_DIRECTIVE213=(Token)match(input,END_PARAMETER_DIRECTIVE,FOLLOW_END_PARAMETER_DIRECTIVE_in_parameter_directive3372);
+					stream_END_PARAMETER_DIRECTIVE.add(END_PARAMETER_DIRECTIVE213);
+
+					// AST REWRITE
+					// elements: STRING_LITERAL, REGISTER, annotation
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 751:7: -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ( annotation )* ) )
+					{
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:751:10: ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ( annotation )* ) )
+						{
+						CommonTree root_1 = (CommonTree)adaptor.nil();
+						root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_PARAMETER, (retval.start), "I_PARAMETER"), root_1);
+						adaptor.addChild(root_1, stream_REGISTER.nextNode());
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:751:56: ( STRING_LITERAL )?
+						if ( stream_STRING_LITERAL.hasNext() ) {
+							adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode());
+						}
+						stream_STRING_LITERAL.reset();
+
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:751:72: ^( I_ANNOTATIONS ( annotation )* )
+						{
+						CommonTree root_2 = (CommonTree)adaptor.nil();
+						root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ANNOTATIONS, "I_ANNOTATIONS"), root_2);
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:751:88: ( annotation )*
+						while ( stream_annotation.hasNext() ) {
+							adaptor.addChild(root_2, stream_annotation.nextTree());
+						}
+						stream_annotation.reset();
+
+						adaptor.addChild(root_1, root_2);
+						}
+
+						adaptor.addChild(root_0, root_1);
+						}
+
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:752:19:
+					{
+					statements_and_directives_stack.peek().methodAnnotations.addAll(annotations);
+					// AST REWRITE
+					// elements: STRING_LITERAL, REGISTER
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 753:7: -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ) )
+					{
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:753:10: ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ) )
+						{
+						CommonTree root_1 = (CommonTree)adaptor.nil();
+						root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_PARAMETER, (retval.start), "I_PARAMETER"), root_1);
+						adaptor.addChild(root_1, stream_REGISTER.nextNode());
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:753:56: ( STRING_LITERAL )?
+						if ( stream_STRING_LITERAL.hasNext() ) {
+							adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode());
+						}
+						stream_STRING_LITERAL.reset();
+
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:753:72: ^( I_ANNOTATIONS )
+						{
+						CommonTree root_2 = (CommonTree)adaptor.nil();
+						root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ANNOTATIONS, "I_ANNOTATIONS"), root_2);
+						adaptor.addChild(root_1, root_2);
+						}
+
+						adaptor.addChild(root_0, root_1);
+						}
+
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+
+			}
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "parameter_directive"
+
+
+	public static class debug_directive_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "debug_directive"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:756:1: debug_directive : ( line_directive | local_directive | end_local_directive | restart_local_directive | prologue_directive | epilogue_directive | source_directive );
+	public final smaliParser.debug_directive_return debug_directive() throws RecognitionException {
+		smaliParser.debug_directive_return retval = new smaliParser.debug_directive_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		ParserRuleReturnScope line_directive214 =null;
+		ParserRuleReturnScope local_directive215 =null;
+		ParserRuleReturnScope end_local_directive216 =null;
+		ParserRuleReturnScope restart_local_directive217 =null;
+		ParserRuleReturnScope prologue_directive218 =null;
+		ParserRuleReturnScope epilogue_directive219 =null;
+		ParserRuleReturnScope source_directive220 =null;
+
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:757:3: ( line_directive | local_directive | end_local_directive | restart_local_directive | prologue_directive | epilogue_directive | source_directive )
+			int alt40=7;
+			switch ( input.LA(1) ) {
+			case LINE_DIRECTIVE:
+				{
+				alt40=1;
+				}
+				break;
+			case LOCAL_DIRECTIVE:
+				{
+				alt40=2;
+				}
+				break;
+			case END_LOCAL_DIRECTIVE:
+				{
+				alt40=3;
+				}
+				break;
+			case RESTART_LOCAL_DIRECTIVE:
+				{
+				alt40=4;
+				}
+				break;
+			case PROLOGUE_DIRECTIVE:
+				{
+				alt40=5;
+				}
+				break;
+			case EPILOGUE_DIRECTIVE:
+				{
+				alt40=6;
+				}
+				break;
+			case SOURCE_DIRECTIVE:
+				{
+				alt40=7;
+				}
+				break;
+			default:
+				NoViableAltException nvae =
+					new NoViableAltException("", 40, 0, input);
+				throw nvae;
+			}
+			switch (alt40) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:757:5: line_directive
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_line_directive_in_debug_directive3445);
+					line_directive214=line_directive();
+					state._fsp--;
+
+					adaptor.addChild(root_0, line_directive214.getTree());
+
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:758:5: local_directive
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_local_directive_in_debug_directive3451);
+					local_directive215=local_directive();
+					state._fsp--;
+
+					adaptor.addChild(root_0, local_directive215.getTree());
+
+					}
+					break;
+				case 3 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:759:5: end_local_directive
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_end_local_directive_in_debug_directive3457);
+					end_local_directive216=end_local_directive();
+					state._fsp--;
+
+					adaptor.addChild(root_0, end_local_directive216.getTree());
+
+					}
+					break;
+				case 4 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:760:5: restart_local_directive
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_restart_local_directive_in_debug_directive3463);
+					restart_local_directive217=restart_local_directive();
+					state._fsp--;
+
+					adaptor.addChild(root_0, restart_local_directive217.getTree());
+
+					}
+					break;
+				case 5 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:761:5: prologue_directive
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_prologue_directive_in_debug_directive3469);
+					prologue_directive218=prologue_directive();
+					state._fsp--;
+
+					adaptor.addChild(root_0, prologue_directive218.getTree());
+
+					}
+					break;
+				case 6 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:762:5: epilogue_directive
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_epilogue_directive_in_debug_directive3475);
+					epilogue_directive219=epilogue_directive();
+					state._fsp--;
+
+					adaptor.addChild(root_0, epilogue_directive219.getTree());
+
+					}
+					break;
+				case 7 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:763:5: source_directive
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_source_directive_in_debug_directive3481);
+					source_directive220=source_directive();
+					state._fsp--;
+
+					adaptor.addChild(root_0, source_directive220.getTree());
+
+					}
+					break;
+
+			}
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "debug_directive"
+
+
+	public static class line_directive_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "line_directive"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:765:1: line_directive : LINE_DIRECTIVE integral_literal -> ^( I_LINE[$start, \"I_LINE\"] integral_literal ) ;
+	public final smaliParser.line_directive_return line_directive() throws RecognitionException {
+		smaliParser.line_directive_return retval = new smaliParser.line_directive_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token LINE_DIRECTIVE221=null;
+		ParserRuleReturnScope integral_literal222 =null;
+
+		CommonTree LINE_DIRECTIVE221_tree=null;
+		RewriteRuleTokenStream stream_LINE_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token LINE_DIRECTIVE");
+		RewriteRuleSubtreeStream stream_integral_literal=new RewriteRuleSubtreeStream(adaptor,"rule integral_literal");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:766:3: ( LINE_DIRECTIVE integral_literal -> ^( I_LINE[$start, \"I_LINE\"] integral_literal ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:766:5: LINE_DIRECTIVE integral_literal
+			{
+			LINE_DIRECTIVE221=(Token)match(input,LINE_DIRECTIVE,FOLLOW_LINE_DIRECTIVE_in_line_directive3491);
+			stream_LINE_DIRECTIVE.add(LINE_DIRECTIVE221);
+
+			pushFollow(FOLLOW_integral_literal_in_line_directive3493);
+			integral_literal222=integral_literal();
+			state._fsp--;
+
+			stream_integral_literal.add(integral_literal222.getTree());
+			// AST REWRITE
+			// elements: integral_literal
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 767:5: -> ^( I_LINE[$start, \"I_LINE\"] integral_literal )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:767:8: ^( I_LINE[$start, \"I_LINE\"] integral_literal )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_LINE, (retval.start), "I_LINE"), root_1);
+				adaptor.addChild(root_1, stream_integral_literal.nextTree());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "line_directive"
+
+
+	public static class local_directive_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "local_directive"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:769:1: local_directive : LOCAL_DIRECTIVE REGISTER ( COMMA ( NULL_LITERAL |name= STRING_LITERAL ) COLON ( VOID_TYPE | nonvoid_type_descriptor ) ( COMMA signature= STRING_LITERAL )? )? -> ^( I_LOCAL[$start, \"I_LOCAL\"] REGISTER ( NULL_LITERAL )? ( $name)? ( nonvoid_type_descriptor )? ( $signature)? ) ;
+	public final smaliParser.local_directive_return local_directive() throws RecognitionException {
+		smaliParser.local_directive_return retval = new smaliParser.local_directive_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token name=null;
+		Token signature=null;
+		Token LOCAL_DIRECTIVE223=null;
+		Token REGISTER224=null;
+		Token COMMA225=null;
+		Token NULL_LITERAL226=null;
+		Token COLON227=null;
+		Token VOID_TYPE228=null;
+		Token COMMA230=null;
+		ParserRuleReturnScope nonvoid_type_descriptor229 =null;
+
+		CommonTree name_tree=null;
+		CommonTree signature_tree=null;
+		CommonTree LOCAL_DIRECTIVE223_tree=null;
+		CommonTree REGISTER224_tree=null;
+		CommonTree COMMA225_tree=null;
+		CommonTree NULL_LITERAL226_tree=null;
+		CommonTree COLON227_tree=null;
+		CommonTree VOID_TYPE228_tree=null;
+		CommonTree COMMA230_tree=null;
+		RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
+		RewriteRuleTokenStream stream_NULL_LITERAL=new RewriteRuleTokenStream(adaptor,"token NULL_LITERAL");
+		RewriteRuleTokenStream stream_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token STRING_LITERAL");
+		RewriteRuleTokenStream stream_LOCAL_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token LOCAL_DIRECTIVE");
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+		RewriteRuleTokenStream stream_VOID_TYPE=new RewriteRuleTokenStream(adaptor,"token VOID_TYPE");
+		RewriteRuleSubtreeStream stream_nonvoid_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule nonvoid_type_descriptor");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:770:3: ( LOCAL_DIRECTIVE REGISTER ( COMMA ( NULL_LITERAL |name= STRING_LITERAL ) COLON ( VOID_TYPE | nonvoid_type_descriptor ) ( COMMA signature= STRING_LITERAL )? )? -> ^( I_LOCAL[$start, \"I_LOCAL\"] REGISTER ( NULL_LITERAL )? ( $name)? ( nonvoid_type_descriptor )? ( $signature)? ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:770:5: LOCAL_DIRECTIVE REGISTER ( COMMA ( NULL_LITERAL |name= STRING_LITERAL ) COLON ( VOID_TYPE | nonvoid_type_descriptor ) ( COMMA signature= STRING_LITERAL )? )?
+			{
+			LOCAL_DIRECTIVE223=(Token)match(input,LOCAL_DIRECTIVE,FOLLOW_LOCAL_DIRECTIVE_in_local_directive3516);
+			stream_LOCAL_DIRECTIVE.add(LOCAL_DIRECTIVE223);
+
+			REGISTER224=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_local_directive3518);
+			stream_REGISTER.add(REGISTER224);
+
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:770:30: ( COMMA ( NULL_LITERAL |name= STRING_LITERAL ) COLON ( VOID_TYPE | nonvoid_type_descriptor ) ( COMMA signature= STRING_LITERAL )? )?
+			int alt44=2;
+			int LA44_0 = input.LA(1);
+			if ( (LA44_0==COMMA) ) {
+				alt44=1;
+			}
+			switch (alt44) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:770:31: COMMA ( NULL_LITERAL |name= STRING_LITERAL ) COLON ( VOID_TYPE | nonvoid_type_descriptor ) ( COMMA signature= STRING_LITERAL )?
+					{
+					COMMA225=(Token)match(input,COMMA,FOLLOW_COMMA_in_local_directive3521);
+					stream_COMMA.add(COMMA225);
+
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:770:37: ( NULL_LITERAL |name= STRING_LITERAL )
+					int alt41=2;
+					int LA41_0 = input.LA(1);
+					if ( (LA41_0==NULL_LITERAL) ) {
+						alt41=1;
+					}
+					else if ( (LA41_0==STRING_LITERAL) ) {
+						alt41=2;
+					}
+
+					else {
+						NoViableAltException nvae =
+							new NoViableAltException("", 41, 0, input);
+						throw nvae;
+					}
+
+					switch (alt41) {
+						case 1 :
+							// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:770:38: NULL_LITERAL
+							{
+							NULL_LITERAL226=(Token)match(input,NULL_LITERAL,FOLLOW_NULL_LITERAL_in_local_directive3524);
+							stream_NULL_LITERAL.add(NULL_LITERAL226);
+
+							}
+							break;
+						case 2 :
+							// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:770:53: name= STRING_LITERAL
+							{
+							name=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_local_directive3530);
+							stream_STRING_LITERAL.add(name);
+
+							}
+							break;
+
+					}
+
+					COLON227=(Token)match(input,COLON,FOLLOW_COLON_in_local_directive3533);
+					stream_COLON.add(COLON227);
+
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:770:80: ( VOID_TYPE | nonvoid_type_descriptor )
+					int alt42=2;
+					int LA42_0 = input.LA(1);
+					if ( (LA42_0==VOID_TYPE) ) {
+						alt42=1;
+					}
+					else if ( (LA42_0==ARRAY_DESCRIPTOR||LA42_0==CLASS_DESCRIPTOR||LA42_0==PRIMITIVE_TYPE) ) {
+						alt42=2;
+					}
+
+					else {
+						NoViableAltException nvae =
+							new NoViableAltException("", 42, 0, input);
+						throw nvae;
+					}
+
+					switch (alt42) {
+						case 1 :
+							// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:770:81: VOID_TYPE
+							{
+							VOID_TYPE228=(Token)match(input,VOID_TYPE,FOLLOW_VOID_TYPE_in_local_directive3536);
+							stream_VOID_TYPE.add(VOID_TYPE228);
+
+							}
+							break;
+						case 2 :
+							// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:770:93: nonvoid_type_descriptor
+							{
+							pushFollow(FOLLOW_nonvoid_type_descriptor_in_local_directive3540);
+							nonvoid_type_descriptor229=nonvoid_type_descriptor();
+							state._fsp--;
+
+							stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor229.getTree());
+							}
+							break;
+
+					}
+
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:771:31: ( COMMA signature= STRING_LITERAL )?
+					int alt43=2;
+					int LA43_0 = input.LA(1);
+					if ( (LA43_0==COMMA) ) {
+						alt43=1;
+					}
+					switch (alt43) {
+						case 1 :
+							// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:771:32: COMMA signature= STRING_LITERAL
+							{
+							COMMA230=(Token)match(input,COMMA,FOLLOW_COMMA_in_local_directive3574);
+							stream_COMMA.add(COMMA230);
+
+							signature=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_local_directive3578);
+							stream_STRING_LITERAL.add(signature);
+
+							}
+							break;
+
+					}
+
+					}
+					break;
+
+			}
+
+			// AST REWRITE
+			// elements: nonvoid_type_descriptor, name, signature, REGISTER, NULL_LITERAL
+			// token labels: name, signature
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleTokenStream stream_name=new RewriteRuleTokenStream(adaptor,"token name",name);
+			RewriteRuleTokenStream stream_signature=new RewriteRuleTokenStream(adaptor,"token signature",signature);
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 772:5: -> ^( I_LOCAL[$start, \"I_LOCAL\"] REGISTER ( NULL_LITERAL )? ( $name)? ( nonvoid_type_descriptor )? ( $signature)? )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:772:8: ^( I_LOCAL[$start, \"I_LOCAL\"] REGISTER ( NULL_LITERAL )? ( $name)? ( nonvoid_type_descriptor )? ( $signature)? )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_LOCAL, (retval.start), "I_LOCAL"), root_1);
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:772:46: ( NULL_LITERAL )?
+				if ( stream_NULL_LITERAL.hasNext() ) {
+					adaptor.addChild(root_1, stream_NULL_LITERAL.nextNode());
+				}
+				stream_NULL_LITERAL.reset();
+
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:772:61: ( $name)?
+				if ( stream_name.hasNext() ) {
+					adaptor.addChild(root_1, stream_name.nextNode());
+				}
+				stream_name.reset();
+
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:772:67: ( nonvoid_type_descriptor )?
+				if ( stream_nonvoid_type_descriptor.hasNext() ) {
+					adaptor.addChild(root_1, stream_nonvoid_type_descriptor.nextTree());
+				}
+				stream_nonvoid_type_descriptor.reset();
+
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:772:93: ( $signature)?
+				if ( stream_signature.hasNext() ) {
+					adaptor.addChild(root_1, stream_signature.nextNode());
+				}
+				stream_signature.reset();
+
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "local_directive"
+
+
+	public static class end_local_directive_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "end_local_directive"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:774:1: end_local_directive : END_LOCAL_DIRECTIVE REGISTER -> ^( I_END_LOCAL[$start, \"I_END_LOCAL\"] REGISTER ) ;
+	public final smaliParser.end_local_directive_return end_local_directive() throws RecognitionException {
+		smaliParser.end_local_directive_return retval = new smaliParser.end_local_directive_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token END_LOCAL_DIRECTIVE231=null;
+		Token REGISTER232=null;
+
+		CommonTree END_LOCAL_DIRECTIVE231_tree=null;
+		CommonTree REGISTER232_tree=null;
+		RewriteRuleTokenStream stream_END_LOCAL_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_LOCAL_DIRECTIVE");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:775:3: ( END_LOCAL_DIRECTIVE REGISTER -> ^( I_END_LOCAL[$start, \"I_END_LOCAL\"] REGISTER ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:775:5: END_LOCAL_DIRECTIVE REGISTER
+			{
+			END_LOCAL_DIRECTIVE231=(Token)match(input,END_LOCAL_DIRECTIVE,FOLLOW_END_LOCAL_DIRECTIVE_in_end_local_directive3620);
+			stream_END_LOCAL_DIRECTIVE.add(END_LOCAL_DIRECTIVE231);
+
+			REGISTER232=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_end_local_directive3622);
+			stream_REGISTER.add(REGISTER232);
+
+			// AST REWRITE
+			// elements: REGISTER
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 776:5: -> ^( I_END_LOCAL[$start, \"I_END_LOCAL\"] REGISTER )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:776:8: ^( I_END_LOCAL[$start, \"I_END_LOCAL\"] REGISTER )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_END_LOCAL, (retval.start), "I_END_LOCAL"), root_1);
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "end_local_directive"
+
+
+	public static class restart_local_directive_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "restart_local_directive"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:778:1: restart_local_directive : RESTART_LOCAL_DIRECTIVE REGISTER -> ^( I_RESTART_LOCAL[$start, \"I_RESTART_LOCAL\"] REGISTER ) ;
+	public final smaliParser.restart_local_directive_return restart_local_directive() throws RecognitionException {
+		smaliParser.restart_local_directive_return retval = new smaliParser.restart_local_directive_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token RESTART_LOCAL_DIRECTIVE233=null;
+		Token REGISTER234=null;
+
+		CommonTree RESTART_LOCAL_DIRECTIVE233_tree=null;
+		CommonTree REGISTER234_tree=null;
+		RewriteRuleTokenStream stream_RESTART_LOCAL_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token RESTART_LOCAL_DIRECTIVE");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:779:3: ( RESTART_LOCAL_DIRECTIVE REGISTER -> ^( I_RESTART_LOCAL[$start, \"I_RESTART_LOCAL\"] REGISTER ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:779:5: RESTART_LOCAL_DIRECTIVE REGISTER
+			{
+			RESTART_LOCAL_DIRECTIVE233=(Token)match(input,RESTART_LOCAL_DIRECTIVE,FOLLOW_RESTART_LOCAL_DIRECTIVE_in_restart_local_directive3645);
+			stream_RESTART_LOCAL_DIRECTIVE.add(RESTART_LOCAL_DIRECTIVE233);
+
+			REGISTER234=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_restart_local_directive3647);
+			stream_REGISTER.add(REGISTER234);
+
+			// AST REWRITE
+			// elements: REGISTER
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 780:5: -> ^( I_RESTART_LOCAL[$start, \"I_RESTART_LOCAL\"] REGISTER )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:780:8: ^( I_RESTART_LOCAL[$start, \"I_RESTART_LOCAL\"] REGISTER )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_RESTART_LOCAL, (retval.start), "I_RESTART_LOCAL"), root_1);
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "restart_local_directive"
+
+
+	public static class prologue_directive_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "prologue_directive"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:782:1: prologue_directive : PROLOGUE_DIRECTIVE -> ^( I_PROLOGUE[$start, \"I_PROLOGUE\"] ) ;
+	public final smaliParser.prologue_directive_return prologue_directive() throws RecognitionException {
+		smaliParser.prologue_directive_return retval = new smaliParser.prologue_directive_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token PROLOGUE_DIRECTIVE235=null;
+
+		CommonTree PROLOGUE_DIRECTIVE235_tree=null;
+		RewriteRuleTokenStream stream_PROLOGUE_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token PROLOGUE_DIRECTIVE");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:783:3: ( PROLOGUE_DIRECTIVE -> ^( I_PROLOGUE[$start, \"I_PROLOGUE\"] ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:783:5: PROLOGUE_DIRECTIVE
+			{
+			PROLOGUE_DIRECTIVE235=(Token)match(input,PROLOGUE_DIRECTIVE,FOLLOW_PROLOGUE_DIRECTIVE_in_prologue_directive3670);
+			stream_PROLOGUE_DIRECTIVE.add(PROLOGUE_DIRECTIVE235);
+
+			// AST REWRITE
+			// elements:
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 784:5: -> ^( I_PROLOGUE[$start, \"I_PROLOGUE\"] )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:784:8: ^( I_PROLOGUE[$start, \"I_PROLOGUE\"] )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_PROLOGUE, (retval.start), "I_PROLOGUE"), root_1);
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "prologue_directive"
+
+
+	public static class epilogue_directive_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "epilogue_directive"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:786:1: epilogue_directive : EPILOGUE_DIRECTIVE -> ^( I_EPILOGUE[$start, \"I_EPILOGUE\"] ) ;
+	public final smaliParser.epilogue_directive_return epilogue_directive() throws RecognitionException {
+		smaliParser.epilogue_directive_return retval = new smaliParser.epilogue_directive_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token EPILOGUE_DIRECTIVE236=null;
+
+		CommonTree EPILOGUE_DIRECTIVE236_tree=null;
+		RewriteRuleTokenStream stream_EPILOGUE_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token EPILOGUE_DIRECTIVE");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:787:3: ( EPILOGUE_DIRECTIVE -> ^( I_EPILOGUE[$start, \"I_EPILOGUE\"] ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:787:5: EPILOGUE_DIRECTIVE
+			{
+			EPILOGUE_DIRECTIVE236=(Token)match(input,EPILOGUE_DIRECTIVE,FOLLOW_EPILOGUE_DIRECTIVE_in_epilogue_directive3691);
+			stream_EPILOGUE_DIRECTIVE.add(EPILOGUE_DIRECTIVE236);
+
+			// AST REWRITE
+			// elements:
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 788:5: -> ^( I_EPILOGUE[$start, \"I_EPILOGUE\"] )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:788:8: ^( I_EPILOGUE[$start, \"I_EPILOGUE\"] )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_EPILOGUE, (retval.start), "I_EPILOGUE"), root_1);
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "epilogue_directive"
+
+
+	public static class source_directive_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "source_directive"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:790:1: source_directive : SOURCE_DIRECTIVE ( STRING_LITERAL )? -> ^( I_SOURCE[$start, \"I_SOURCE\"] ( STRING_LITERAL )? ) ;
+	public final smaliParser.source_directive_return source_directive() throws RecognitionException {
+		smaliParser.source_directive_return retval = new smaliParser.source_directive_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token SOURCE_DIRECTIVE237=null;
+		Token STRING_LITERAL238=null;
+
+		CommonTree SOURCE_DIRECTIVE237_tree=null;
+		CommonTree STRING_LITERAL238_tree=null;
+		RewriteRuleTokenStream stream_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token STRING_LITERAL");
+		RewriteRuleTokenStream stream_SOURCE_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token SOURCE_DIRECTIVE");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:791:3: ( SOURCE_DIRECTIVE ( STRING_LITERAL )? -> ^( I_SOURCE[$start, \"I_SOURCE\"] ( STRING_LITERAL )? ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:791:5: SOURCE_DIRECTIVE ( STRING_LITERAL )?
+			{
+			SOURCE_DIRECTIVE237=(Token)match(input,SOURCE_DIRECTIVE,FOLLOW_SOURCE_DIRECTIVE_in_source_directive3712);
+			stream_SOURCE_DIRECTIVE.add(SOURCE_DIRECTIVE237);
+
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:791:22: ( STRING_LITERAL )?
+			int alt45=2;
+			int LA45_0 = input.LA(1);
+			if ( (LA45_0==STRING_LITERAL) ) {
+				alt45=1;
+			}
+			switch (alt45) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:791:22: STRING_LITERAL
+					{
+					STRING_LITERAL238=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_source_directive3714);
+					stream_STRING_LITERAL.add(STRING_LITERAL238);
+
+					}
+					break;
+
+			}
+
+			// AST REWRITE
+			// elements: STRING_LITERAL
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 792:5: -> ^( I_SOURCE[$start, \"I_SOURCE\"] ( STRING_LITERAL )? )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:792:8: ^( I_SOURCE[$start, \"I_SOURCE\"] ( STRING_LITERAL )? )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_SOURCE, (retval.start), "I_SOURCE"), root_1);
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:792:39: ( STRING_LITERAL )?
+				if ( stream_STRING_LITERAL.hasNext() ) {
+					adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode());
+				}
+				stream_STRING_LITERAL.reset();
+
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "source_directive"
+
+
+	public static class instruction_format12x_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "instruction_format12x"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:794:1: instruction_format12x : ( INSTRUCTION_FORMAT12x | INSTRUCTION_FORMAT12x_OR_ID -> INSTRUCTION_FORMAT12x[$INSTRUCTION_FORMAT12x_OR_ID] );
+	public final smaliParser.instruction_format12x_return instruction_format12x() throws RecognitionException {
+		smaliParser.instruction_format12x_return retval = new smaliParser.instruction_format12x_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT12x239=null;
+		Token INSTRUCTION_FORMAT12x_OR_ID240=null;
+
+		CommonTree INSTRUCTION_FORMAT12x239_tree=null;
+		CommonTree INSTRUCTION_FORMAT12x_OR_ID240_tree=null;
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT12x_OR_ID=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT12x_OR_ID");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:795:3: ( INSTRUCTION_FORMAT12x | INSTRUCTION_FORMAT12x_OR_ID -> INSTRUCTION_FORMAT12x[$INSTRUCTION_FORMAT12x_OR_ID] )
+			int alt46=2;
+			int LA46_0 = input.LA(1);
+			if ( (LA46_0==INSTRUCTION_FORMAT12x) ) {
+				alt46=1;
+			}
+			else if ( (LA46_0==INSTRUCTION_FORMAT12x_OR_ID) ) {
+				alt46=2;
+			}
+
+			else {
+				NoViableAltException nvae =
+					new NoViableAltException("", 46, 0, input);
+				throw nvae;
+			}
+
+			switch (alt46) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:795:5: INSTRUCTION_FORMAT12x
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					INSTRUCTION_FORMAT12x239=(Token)match(input,INSTRUCTION_FORMAT12x,FOLLOW_INSTRUCTION_FORMAT12x_in_instruction_format12x3739);
+					INSTRUCTION_FORMAT12x239_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT12x239);
+					adaptor.addChild(root_0, INSTRUCTION_FORMAT12x239_tree);
+
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:796:5: INSTRUCTION_FORMAT12x_OR_ID
+					{
+					INSTRUCTION_FORMAT12x_OR_ID240=(Token)match(input,INSTRUCTION_FORMAT12x_OR_ID,FOLLOW_INSTRUCTION_FORMAT12x_OR_ID_in_instruction_format12x3745);
+					stream_INSTRUCTION_FORMAT12x_OR_ID.add(INSTRUCTION_FORMAT12x_OR_ID240);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 796:33: -> INSTRUCTION_FORMAT12x[$INSTRUCTION_FORMAT12x_OR_ID]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(INSTRUCTION_FORMAT12x, INSTRUCTION_FORMAT12x_OR_ID240));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+
+			}
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "instruction_format12x"
+
+
+	public static class instruction_format22s_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "instruction_format22s"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:798:1: instruction_format22s : ( INSTRUCTION_FORMAT22s | INSTRUCTION_FORMAT22s_OR_ID -> INSTRUCTION_FORMAT22s[$INSTRUCTION_FORMAT22s_OR_ID] );
+	public final smaliParser.instruction_format22s_return instruction_format22s() throws RecognitionException {
+		smaliParser.instruction_format22s_return retval = new smaliParser.instruction_format22s_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT22s241=null;
+		Token INSTRUCTION_FORMAT22s_OR_ID242=null;
+
+		CommonTree INSTRUCTION_FORMAT22s241_tree=null;
+		CommonTree INSTRUCTION_FORMAT22s_OR_ID242_tree=null;
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22s_OR_ID=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22s_OR_ID");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:799:3: ( INSTRUCTION_FORMAT22s | INSTRUCTION_FORMAT22s_OR_ID -> INSTRUCTION_FORMAT22s[$INSTRUCTION_FORMAT22s_OR_ID] )
+			int alt47=2;
+			int LA47_0 = input.LA(1);
+			if ( (LA47_0==INSTRUCTION_FORMAT22s) ) {
+				alt47=1;
+			}
+			else if ( (LA47_0==INSTRUCTION_FORMAT22s_OR_ID) ) {
+				alt47=2;
+			}
+
+			else {
+				NoViableAltException nvae =
+					new NoViableAltException("", 47, 0, input);
+				throw nvae;
+			}
+
+			switch (alt47) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:799:5: INSTRUCTION_FORMAT22s
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					INSTRUCTION_FORMAT22s241=(Token)match(input,INSTRUCTION_FORMAT22s,FOLLOW_INSTRUCTION_FORMAT22s_in_instruction_format22s3760);
+					INSTRUCTION_FORMAT22s241_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT22s241);
+					adaptor.addChild(root_0, INSTRUCTION_FORMAT22s241_tree);
+
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:800:5: INSTRUCTION_FORMAT22s_OR_ID
+					{
+					INSTRUCTION_FORMAT22s_OR_ID242=(Token)match(input,INSTRUCTION_FORMAT22s_OR_ID,FOLLOW_INSTRUCTION_FORMAT22s_OR_ID_in_instruction_format22s3766);
+					stream_INSTRUCTION_FORMAT22s_OR_ID.add(INSTRUCTION_FORMAT22s_OR_ID242);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 800:33: -> INSTRUCTION_FORMAT22s[$INSTRUCTION_FORMAT22s_OR_ID]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(INSTRUCTION_FORMAT22s, INSTRUCTION_FORMAT22s_OR_ID242));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+
+			}
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "instruction_format22s"
+
+
+	public static class instruction_format31i_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "instruction_format31i"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:802:1: instruction_format31i : ( INSTRUCTION_FORMAT31i | INSTRUCTION_FORMAT31i_OR_ID -> INSTRUCTION_FORMAT31i[$INSTRUCTION_FORMAT31i_OR_ID] );
+	public final smaliParser.instruction_format31i_return instruction_format31i() throws RecognitionException {
+		smaliParser.instruction_format31i_return retval = new smaliParser.instruction_format31i_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT31i243=null;
+		Token INSTRUCTION_FORMAT31i_OR_ID244=null;
+
+		CommonTree INSTRUCTION_FORMAT31i243_tree=null;
+		CommonTree INSTRUCTION_FORMAT31i_OR_ID244_tree=null;
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT31i_OR_ID=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT31i_OR_ID");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:803:3: ( INSTRUCTION_FORMAT31i | INSTRUCTION_FORMAT31i_OR_ID -> INSTRUCTION_FORMAT31i[$INSTRUCTION_FORMAT31i_OR_ID] )
+			int alt48=2;
+			int LA48_0 = input.LA(1);
+			if ( (LA48_0==INSTRUCTION_FORMAT31i) ) {
+				alt48=1;
+			}
+			else if ( (LA48_0==INSTRUCTION_FORMAT31i_OR_ID) ) {
+				alt48=2;
+			}
+
+			else {
+				NoViableAltException nvae =
+					new NoViableAltException("", 48, 0, input);
+				throw nvae;
+			}
+
+			switch (alt48) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:803:5: INSTRUCTION_FORMAT31i
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					INSTRUCTION_FORMAT31i243=(Token)match(input,INSTRUCTION_FORMAT31i,FOLLOW_INSTRUCTION_FORMAT31i_in_instruction_format31i3781);
+					INSTRUCTION_FORMAT31i243_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT31i243);
+					adaptor.addChild(root_0, INSTRUCTION_FORMAT31i243_tree);
+
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:804:5: INSTRUCTION_FORMAT31i_OR_ID
+					{
+					INSTRUCTION_FORMAT31i_OR_ID244=(Token)match(input,INSTRUCTION_FORMAT31i_OR_ID,FOLLOW_INSTRUCTION_FORMAT31i_OR_ID_in_instruction_format31i3787);
+					stream_INSTRUCTION_FORMAT31i_OR_ID.add(INSTRUCTION_FORMAT31i_OR_ID244);
+
+					// AST REWRITE
+					// elements:
+					// token labels:
+					// rule labels: retval
+					// token list labels:
+					// rule list labels:
+					// wildcard labels:
+					retval.tree = root_0;
+					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+					root_0 = (CommonTree)adaptor.nil();
+					// 804:33: -> INSTRUCTION_FORMAT31i[$INSTRUCTION_FORMAT31i_OR_ID]
+					{
+						adaptor.addChild(root_0, (CommonTree)adaptor.create(INSTRUCTION_FORMAT31i, INSTRUCTION_FORMAT31i_OR_ID244));
+					}
+
+
+					retval.tree = root_0;
+
+					}
+					break;
+
+			}
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "instruction_format31i"
+
+
+	public static class instruction_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "instruction"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:808:1: instruction : ( insn_format10t | insn_format10x | insn_format10x_odex | insn_format11n | insn_format11x | insn_format12x | insn_format20bc | insn_format20t | insn_format21c_field | insn_format21c_field_odex | insn_format21c_string | insn_format21c_type | insn_format21c_lambda | insn_format21c_method | insn_format21ih | insn_format21lh | insn_format21s | insn_format21t | insn_format22b | insn_format22c_field | insn_format22c_field_odex | insn_format22c_type | insn_format22c_string | insn_format22cs_field | insn_format22s | insn_format22t | insn_format22x | insn_format23x | insn_format25x | insn_format30t | insn_format31c | insn_format31i | insn_format31t | insn_format32x | insn_format35c_method | insn_format35c_type | insn_format35c_method_odex | insn_format35mi_method | insn_format35ms_method | insn_format3rc_method | insn_format3rc_method_odex | insn_format3rc_type | insn_format3rmi_method | insn_format3rms_method | insn_format51l | insn_array_data_directive | insn_packed_switch_directive | insn_sparse_switch_directive );
+	public final smaliParser.instruction_return instruction() throws RecognitionException {
+		smaliParser.instruction_return retval = new smaliParser.instruction_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		ParserRuleReturnScope insn_format10t245 =null;
+		ParserRuleReturnScope insn_format10x246 =null;
+		ParserRuleReturnScope insn_format10x_odex247 =null;
+		ParserRuleReturnScope insn_format11n248 =null;
+		ParserRuleReturnScope insn_format11x249 =null;
+		ParserRuleReturnScope insn_format12x250 =null;
+		ParserRuleReturnScope insn_format20bc251 =null;
+		ParserRuleReturnScope insn_format20t252 =null;
+		ParserRuleReturnScope insn_format21c_field253 =null;
+		ParserRuleReturnScope insn_format21c_field_odex254 =null;
+		ParserRuleReturnScope insn_format21c_string255 =null;
+		ParserRuleReturnScope insn_format21c_type256 =null;
+		ParserRuleReturnScope insn_format21c_lambda257 =null;
+		ParserRuleReturnScope insn_format21c_method258 =null;
+		ParserRuleReturnScope insn_format21ih259 =null;
+		ParserRuleReturnScope insn_format21lh260 =null;
+		ParserRuleReturnScope insn_format21s261 =null;
+		ParserRuleReturnScope insn_format21t262 =null;
+		ParserRuleReturnScope insn_format22b263 =null;
+		ParserRuleReturnScope insn_format22c_field264 =null;
+		ParserRuleReturnScope insn_format22c_field_odex265 =null;
+		ParserRuleReturnScope insn_format22c_type266 =null;
+		ParserRuleReturnScope insn_format22c_string267 =null;
+		ParserRuleReturnScope insn_format22cs_field268 =null;
+		ParserRuleReturnScope insn_format22s269 =null;
+		ParserRuleReturnScope insn_format22t270 =null;
+		ParserRuleReturnScope insn_format22x271 =null;
+		ParserRuleReturnScope insn_format23x272 =null;
+		ParserRuleReturnScope insn_format25x273 =null;
+		ParserRuleReturnScope insn_format30t274 =null;
+		ParserRuleReturnScope insn_format31c275 =null;
+		ParserRuleReturnScope insn_format31i276 =null;
+		ParserRuleReturnScope insn_format31t277 =null;
+		ParserRuleReturnScope insn_format32x278 =null;
+		ParserRuleReturnScope insn_format35c_method279 =null;
+		ParserRuleReturnScope insn_format35c_type280 =null;
+		ParserRuleReturnScope insn_format35c_method_odex281 =null;
+		ParserRuleReturnScope insn_format35mi_method282 =null;
+		ParserRuleReturnScope insn_format35ms_method283 =null;
+		ParserRuleReturnScope insn_format3rc_method284 =null;
+		ParserRuleReturnScope insn_format3rc_method_odex285 =null;
+		ParserRuleReturnScope insn_format3rc_type286 =null;
+		ParserRuleReturnScope insn_format3rmi_method287 =null;
+		ParserRuleReturnScope insn_format3rms_method288 =null;
+		ParserRuleReturnScope insn_format51l289 =null;
+		ParserRuleReturnScope insn_array_data_directive290 =null;
+		ParserRuleReturnScope insn_packed_switch_directive291 =null;
+		ParserRuleReturnScope insn_sparse_switch_directive292 =null;
+
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:809:3: ( insn_format10t | insn_format10x | insn_format10x_odex | insn_format11n | insn_format11x | insn_format12x | insn_format20bc | insn_format20t | insn_format21c_field | insn_format21c_field_odex | insn_format21c_string | insn_format21c_type | insn_format21c_lambda | insn_format21c_method | insn_format21ih | insn_format21lh | insn_format21s | insn_format21t | insn_format22b | insn_format22c_field | insn_format22c_field_odex | insn_format22c_type | insn_format22c_string | insn_format22cs_field | insn_format22s | insn_format22t | insn_format22x | insn_format23x | insn_format25x | insn_format30t | insn_format31c | insn_format31i | insn_format31t | insn_format32x | insn_format35c_method | insn_format35c_type | insn_format35c_method_odex | insn_format35mi_method | insn_format35ms_method | insn_format3rc_method | insn_format3rc_method_odex | insn_format3rc_type | insn_format3rmi_method | insn_format3rms_method | insn_format51l | insn_array_data_directive | insn_packed_switch_directive | insn_sparse_switch_directive )
+			int alt49=48;
+			switch ( input.LA(1) ) {
+			case INSTRUCTION_FORMAT10t:
+				{
+				alt49=1;
+				}
+				break;
+			case INSTRUCTION_FORMAT10x:
+				{
+				alt49=2;
+				}
+				break;
+			case INSTRUCTION_FORMAT10x_ODEX:
+				{
+				alt49=3;
+				}
+				break;
+			case INSTRUCTION_FORMAT11n:
+				{
+				alt49=4;
+				}
+				break;
+			case INSTRUCTION_FORMAT11x:
+				{
+				alt49=5;
+				}
+				break;
+			case INSTRUCTION_FORMAT12x:
+			case INSTRUCTION_FORMAT12x_OR_ID:
+				{
+				alt49=6;
+				}
+				break;
+			case INSTRUCTION_FORMAT20bc:
+				{
+				alt49=7;
+				}
+				break;
+			case INSTRUCTION_FORMAT20t:
+				{
+				alt49=8;
+				}
+				break;
+			case INSTRUCTION_FORMAT21c_FIELD:
+				{
+				alt49=9;
+				}
+				break;
+			case INSTRUCTION_FORMAT21c_FIELD_ODEX:
+				{
+				alt49=10;
+				}
+				break;
+			case INSTRUCTION_FORMAT21c_STRING:
+				{
+				alt49=11;
+				}
+				break;
+			case INSTRUCTION_FORMAT21c_TYPE:
+				{
+				alt49=12;
+				}
+				break;
+			case INSTRUCTION_FORMAT21c_LAMBDA:
+				{
+				alt49=13;
+				}
+				break;
+			case INSTRUCTION_FORMAT21c_METHOD:
+				{
+				alt49=14;
+				}
+				break;
+			case INSTRUCTION_FORMAT21ih:
+				{
+				alt49=15;
+				}
+				break;
+			case INSTRUCTION_FORMAT21lh:
+				{
+				alt49=16;
+				}
+				break;
+			case INSTRUCTION_FORMAT21s:
+				{
+				alt49=17;
+				}
+				break;
+			case INSTRUCTION_FORMAT21t:
+				{
+				alt49=18;
+				}
+				break;
+			case INSTRUCTION_FORMAT22b:
+				{
+				alt49=19;
+				}
+				break;
+			case INSTRUCTION_FORMAT22c_FIELD:
+				{
+				alt49=20;
+				}
+				break;
+			case INSTRUCTION_FORMAT22c_FIELD_ODEX:
+				{
+				alt49=21;
+				}
+				break;
+			case INSTRUCTION_FORMAT22c_TYPE:
+				{
+				alt49=22;
+				}
+				break;
+			case INSTRUCTION_FORMAT22c_STRING:
+				{
+				alt49=23;
+				}
+				break;
+			case INSTRUCTION_FORMAT22cs_FIELD:
+				{
+				alt49=24;
+				}
+				break;
+			case INSTRUCTION_FORMAT22s:
+			case INSTRUCTION_FORMAT22s_OR_ID:
+				{
+				alt49=25;
+				}
+				break;
+			case INSTRUCTION_FORMAT22t:
+				{
+				alt49=26;
+				}
+				break;
+			case INSTRUCTION_FORMAT22x:
+				{
+				alt49=27;
+				}
+				break;
+			case INSTRUCTION_FORMAT23x:
+				{
+				alt49=28;
+				}
+				break;
+			case INSTRUCTION_FORMAT25x:
+				{
+				alt49=29;
+				}
+				break;
+			case INSTRUCTION_FORMAT30t:
+				{
+				alt49=30;
+				}
+				break;
+			case INSTRUCTION_FORMAT31c:
+				{
+				alt49=31;
+				}
+				break;
+			case INSTRUCTION_FORMAT31i:
+			case INSTRUCTION_FORMAT31i_OR_ID:
+				{
+				alt49=32;
+				}
+				break;
+			case INSTRUCTION_FORMAT31t:
+				{
+				alt49=33;
+				}
+				break;
+			case INSTRUCTION_FORMAT32x:
+				{
+				alt49=34;
+				}
+				break;
+			case INSTRUCTION_FORMAT35c_METHOD:
+				{
+				alt49=35;
+				}
+				break;
+			case INSTRUCTION_FORMAT35c_TYPE:
+				{
+				alt49=36;
+				}
+				break;
+			case INSTRUCTION_FORMAT35c_METHOD_ODEX:
+				{
+				alt49=37;
+				}
+				break;
+			case INSTRUCTION_FORMAT35mi_METHOD:
+				{
+				alt49=38;
+				}
+				break;
+			case INSTRUCTION_FORMAT35ms_METHOD:
+				{
+				alt49=39;
+				}
+				break;
+			case INSTRUCTION_FORMAT3rc_METHOD:
+				{
+				alt49=40;
+				}
+				break;
+			case INSTRUCTION_FORMAT3rc_METHOD_ODEX:
+				{
+				alt49=41;
+				}
+				break;
+			case INSTRUCTION_FORMAT3rc_TYPE:
+				{
+				alt49=42;
+				}
+				break;
+			case INSTRUCTION_FORMAT3rmi_METHOD:
+				{
+				alt49=43;
+				}
+				break;
+			case INSTRUCTION_FORMAT3rms_METHOD:
+				{
+				alt49=44;
+				}
+				break;
+			case INSTRUCTION_FORMAT51l:
+				{
+				alt49=45;
+				}
+				break;
+			case ARRAY_DATA_DIRECTIVE:
+				{
+				alt49=46;
+				}
+				break;
+			case PACKED_SWITCH_DIRECTIVE:
+				{
+				alt49=47;
+				}
+				break;
+			case SPARSE_SWITCH_DIRECTIVE:
+				{
+				alt49=48;
+				}
+				break;
+			default:
+				NoViableAltException nvae =
+					new NoViableAltException("", 49, 0, input);
+				throw nvae;
+			}
+			switch (alt49) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:809:5: insn_format10t
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format10t_in_instruction3804);
+					insn_format10t245=insn_format10t();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format10t245.getTree());
+
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:810:5: insn_format10x
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format10x_in_instruction3810);
+					insn_format10x246=insn_format10x();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format10x246.getTree());
+
+					}
+					break;
+				case 3 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:811:5: insn_format10x_odex
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format10x_odex_in_instruction3816);
+					insn_format10x_odex247=insn_format10x_odex();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format10x_odex247.getTree());
+
+					}
+					break;
+				case 4 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:812:5: insn_format11n
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format11n_in_instruction3822);
+					insn_format11n248=insn_format11n();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format11n248.getTree());
+
+					}
+					break;
+				case 5 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:813:5: insn_format11x
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format11x_in_instruction3828);
+					insn_format11x249=insn_format11x();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format11x249.getTree());
+
+					}
+					break;
+				case 6 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:814:5: insn_format12x
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format12x_in_instruction3834);
+					insn_format12x250=insn_format12x();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format12x250.getTree());
+
+					}
+					break;
+				case 7 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:815:5: insn_format20bc
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format20bc_in_instruction3840);
+					insn_format20bc251=insn_format20bc();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format20bc251.getTree());
+
+					}
+					break;
+				case 8 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:816:5: insn_format20t
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format20t_in_instruction3846);
+					insn_format20t252=insn_format20t();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format20t252.getTree());
+
+					}
+					break;
+				case 9 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:817:5: insn_format21c_field
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format21c_field_in_instruction3852);
+					insn_format21c_field253=insn_format21c_field();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format21c_field253.getTree());
+
+					}
+					break;
+				case 10 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:818:5: insn_format21c_field_odex
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format21c_field_odex_in_instruction3858);
+					insn_format21c_field_odex254=insn_format21c_field_odex();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format21c_field_odex254.getTree());
+
+					}
+					break;
+				case 11 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:819:5: insn_format21c_string
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format21c_string_in_instruction3864);
+					insn_format21c_string255=insn_format21c_string();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format21c_string255.getTree());
+
+					}
+					break;
+				case 12 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:820:5: insn_format21c_type
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format21c_type_in_instruction3870);
+					insn_format21c_type256=insn_format21c_type();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format21c_type256.getTree());
+
+					}
+					break;
+				case 13 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:821:5: insn_format21c_lambda
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format21c_lambda_in_instruction3876);
+					insn_format21c_lambda257=insn_format21c_lambda();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format21c_lambda257.getTree());
+
+					}
+					break;
+				case 14 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:822:5: insn_format21c_method
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format21c_method_in_instruction3882);
+					insn_format21c_method258=insn_format21c_method();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format21c_method258.getTree());
+
+					}
+					break;
+				case 15 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:823:5: insn_format21ih
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format21ih_in_instruction3888);
+					insn_format21ih259=insn_format21ih();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format21ih259.getTree());
+
+					}
+					break;
+				case 16 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:824:5: insn_format21lh
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format21lh_in_instruction3894);
+					insn_format21lh260=insn_format21lh();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format21lh260.getTree());
+
+					}
+					break;
+				case 17 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:825:5: insn_format21s
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format21s_in_instruction3900);
+					insn_format21s261=insn_format21s();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format21s261.getTree());
+
+					}
+					break;
+				case 18 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:826:5: insn_format21t
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format21t_in_instruction3906);
+					insn_format21t262=insn_format21t();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format21t262.getTree());
+
+					}
+					break;
+				case 19 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:827:5: insn_format22b
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format22b_in_instruction3912);
+					insn_format22b263=insn_format22b();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format22b263.getTree());
+
+					}
+					break;
+				case 20 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:828:5: insn_format22c_field
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format22c_field_in_instruction3918);
+					insn_format22c_field264=insn_format22c_field();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format22c_field264.getTree());
+
+					}
+					break;
+				case 21 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:829:5: insn_format22c_field_odex
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format22c_field_odex_in_instruction3924);
+					insn_format22c_field_odex265=insn_format22c_field_odex();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format22c_field_odex265.getTree());
+
+					}
+					break;
+				case 22 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:830:5: insn_format22c_type
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format22c_type_in_instruction3930);
+					insn_format22c_type266=insn_format22c_type();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format22c_type266.getTree());
+
+					}
+					break;
+				case 23 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:831:5: insn_format22c_string
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format22c_string_in_instruction3936);
+					insn_format22c_string267=insn_format22c_string();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format22c_string267.getTree());
+
+					}
+					break;
+				case 24 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:832:5: insn_format22cs_field
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format22cs_field_in_instruction3942);
+					insn_format22cs_field268=insn_format22cs_field();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format22cs_field268.getTree());
+
+					}
+					break;
+				case 25 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:833:5: insn_format22s
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format22s_in_instruction3948);
+					insn_format22s269=insn_format22s();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format22s269.getTree());
+
+					}
+					break;
+				case 26 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:834:5: insn_format22t
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format22t_in_instruction3954);
+					insn_format22t270=insn_format22t();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format22t270.getTree());
+
+					}
+					break;
+				case 27 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:835:5: insn_format22x
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format22x_in_instruction3960);
+					insn_format22x271=insn_format22x();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format22x271.getTree());
+
+					}
+					break;
+				case 28 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:836:5: insn_format23x
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format23x_in_instruction3966);
+					insn_format23x272=insn_format23x();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format23x272.getTree());
+
+					}
+					break;
+				case 29 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:837:5: insn_format25x
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format25x_in_instruction3972);
+					insn_format25x273=insn_format25x();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format25x273.getTree());
+
+					}
+					break;
+				case 30 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:838:5: insn_format30t
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format30t_in_instruction3978);
+					insn_format30t274=insn_format30t();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format30t274.getTree());
+
+					}
+					break;
+				case 31 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:839:5: insn_format31c
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format31c_in_instruction3984);
+					insn_format31c275=insn_format31c();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format31c275.getTree());
+
+					}
+					break;
+				case 32 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:840:5: insn_format31i
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format31i_in_instruction3990);
+					insn_format31i276=insn_format31i();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format31i276.getTree());
+
+					}
+					break;
+				case 33 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:841:5: insn_format31t
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format31t_in_instruction3996);
+					insn_format31t277=insn_format31t();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format31t277.getTree());
+
+					}
+					break;
+				case 34 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:842:5: insn_format32x
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format32x_in_instruction4002);
+					insn_format32x278=insn_format32x();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format32x278.getTree());
+
+					}
+					break;
+				case 35 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:843:5: insn_format35c_method
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format35c_method_in_instruction4008);
+					insn_format35c_method279=insn_format35c_method();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format35c_method279.getTree());
+
+					}
+					break;
+				case 36 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:844:5: insn_format35c_type
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format35c_type_in_instruction4014);
+					insn_format35c_type280=insn_format35c_type();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format35c_type280.getTree());
+
+					}
+					break;
+				case 37 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:845:5: insn_format35c_method_odex
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format35c_method_odex_in_instruction4020);
+					insn_format35c_method_odex281=insn_format35c_method_odex();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format35c_method_odex281.getTree());
+
+					}
+					break;
+				case 38 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:846:5: insn_format35mi_method
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format35mi_method_in_instruction4026);
+					insn_format35mi_method282=insn_format35mi_method();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format35mi_method282.getTree());
+
+					}
+					break;
+				case 39 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:847:5: insn_format35ms_method
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format35ms_method_in_instruction4032);
+					insn_format35ms_method283=insn_format35ms_method();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format35ms_method283.getTree());
+
+					}
+					break;
+				case 40 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:848:5: insn_format3rc_method
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format3rc_method_in_instruction4038);
+					insn_format3rc_method284=insn_format3rc_method();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format3rc_method284.getTree());
+
+					}
+					break;
+				case 41 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:849:5: insn_format3rc_method_odex
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format3rc_method_odex_in_instruction4044);
+					insn_format3rc_method_odex285=insn_format3rc_method_odex();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format3rc_method_odex285.getTree());
+
+					}
+					break;
+				case 42 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:850:5: insn_format3rc_type
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format3rc_type_in_instruction4050);
+					insn_format3rc_type286=insn_format3rc_type();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format3rc_type286.getTree());
+
+					}
+					break;
+				case 43 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:851:5: insn_format3rmi_method
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format3rmi_method_in_instruction4056);
+					insn_format3rmi_method287=insn_format3rmi_method();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format3rmi_method287.getTree());
+
+					}
+					break;
+				case 44 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:852:5: insn_format3rms_method
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format3rms_method_in_instruction4062);
+					insn_format3rms_method288=insn_format3rms_method();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format3rms_method288.getTree());
+
+					}
+					break;
+				case 45 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:853:5: insn_format51l
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_format51l_in_instruction4068);
+					insn_format51l289=insn_format51l();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_format51l289.getTree());
+
+					}
+					break;
+				case 46 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:854:5: insn_array_data_directive
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_array_data_directive_in_instruction4074);
+					insn_array_data_directive290=insn_array_data_directive();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_array_data_directive290.getTree());
+
+					}
+					break;
+				case 47 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:855:5: insn_packed_switch_directive
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_packed_switch_directive_in_instruction4080);
+					insn_packed_switch_directive291=insn_packed_switch_directive();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_packed_switch_directive291.getTree());
+
+					}
+					break;
+				case 48 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:856:5: insn_sparse_switch_directive
+					{
+					root_0 = (CommonTree)adaptor.nil();
+
+
+					pushFollow(FOLLOW_insn_sparse_switch_directive_in_instruction4086);
+					insn_sparse_switch_directive292=insn_sparse_switch_directive();
+					state._fsp--;
+
+					adaptor.addChild(root_0, insn_sparse_switch_directive292.getTree());
+
+					}
+					break;
+
+			}
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "instruction"
+
+
+	public static class insn_format10t_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format10t"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:858:1: insn_format10t : INSTRUCTION_FORMAT10t label_ref -> ^( I_STATEMENT_FORMAT10t[$start, \"I_STATEMENT_FORMAT10t\"] INSTRUCTION_FORMAT10t label_ref ) ;
+	public final smaliParser.insn_format10t_return insn_format10t() throws RecognitionException {
+		smaliParser.insn_format10t_return retval = new smaliParser.insn_format10t_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT10t293=null;
+		ParserRuleReturnScope label_ref294 =null;
+
+		CommonTree INSTRUCTION_FORMAT10t293_tree=null;
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT10t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT10t");
+		RewriteRuleSubtreeStream stream_label_ref=new RewriteRuleSubtreeStream(adaptor,"rule label_ref");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:859:3: ( INSTRUCTION_FORMAT10t label_ref -> ^( I_STATEMENT_FORMAT10t[$start, \"I_STATEMENT_FORMAT10t\"] INSTRUCTION_FORMAT10t label_ref ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:861:5: INSTRUCTION_FORMAT10t label_ref
+			{
+			INSTRUCTION_FORMAT10t293=(Token)match(input,INSTRUCTION_FORMAT10t,FOLLOW_INSTRUCTION_FORMAT10t_in_insn_format10t4106);
+			stream_INSTRUCTION_FORMAT10t.add(INSTRUCTION_FORMAT10t293);
+
+			pushFollow(FOLLOW_label_ref_in_insn_format10t4108);
+			label_ref294=label_ref();
+			state._fsp--;
+
+			stream_label_ref.add(label_ref294.getTree());
+			// AST REWRITE
+			// elements: label_ref, INSTRUCTION_FORMAT10t
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 862:5: -> ^( I_STATEMENT_FORMAT10t[$start, \"I_STATEMENT_FORMAT10t\"] INSTRUCTION_FORMAT10t label_ref )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:862:8: ^( I_STATEMENT_FORMAT10t[$start, \"I_STATEMENT_FORMAT10t\"] INSTRUCTION_FORMAT10t label_ref )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT10t, (retval.start), "I_STATEMENT_FORMAT10t"), root_1);
+				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT10t.nextNode());
+				adaptor.addChild(root_1, stream_label_ref.nextTree());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format10t"
+
+
+	public static class insn_format10x_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format10x"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:864:1: insn_format10x : INSTRUCTION_FORMAT10x -> ^( I_STATEMENT_FORMAT10x[$start, \"I_STATEMENT_FORMAT10x\"] INSTRUCTION_FORMAT10x ) ;
+	public final smaliParser.insn_format10x_return insn_format10x() throws RecognitionException {
+		smaliParser.insn_format10x_return retval = new smaliParser.insn_format10x_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT10x295=null;
+
+		CommonTree INSTRUCTION_FORMAT10x295_tree=null;
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT10x=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT10x");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:865:3: ( INSTRUCTION_FORMAT10x -> ^( I_STATEMENT_FORMAT10x[$start, \"I_STATEMENT_FORMAT10x\"] INSTRUCTION_FORMAT10x ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:866:5: INSTRUCTION_FORMAT10x
+			{
+			INSTRUCTION_FORMAT10x295=(Token)match(input,INSTRUCTION_FORMAT10x,FOLLOW_INSTRUCTION_FORMAT10x_in_insn_format10x4138);
+			stream_INSTRUCTION_FORMAT10x.add(INSTRUCTION_FORMAT10x295);
+
+			// AST REWRITE
+			// elements: INSTRUCTION_FORMAT10x
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 867:5: -> ^( I_STATEMENT_FORMAT10x[$start, \"I_STATEMENT_FORMAT10x\"] INSTRUCTION_FORMAT10x )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:867:8: ^( I_STATEMENT_FORMAT10x[$start, \"I_STATEMENT_FORMAT10x\"] INSTRUCTION_FORMAT10x )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT10x, (retval.start), "I_STATEMENT_FORMAT10x"), root_1);
+				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT10x.nextNode());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format10x"
+
+
+	public static class insn_format10x_odex_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format10x_odex"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:869:1: insn_format10x_odex : INSTRUCTION_FORMAT10x_ODEX ;
+	public final smaliParser.insn_format10x_odex_return insn_format10x_odex() throws RecognitionException {
+		smaliParser.insn_format10x_odex_return retval = new smaliParser.insn_format10x_odex_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT10x_ODEX296=null;
+
+		CommonTree INSTRUCTION_FORMAT10x_ODEX296_tree=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:870:3: ( INSTRUCTION_FORMAT10x_ODEX )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:871:5: INSTRUCTION_FORMAT10x_ODEX
+			{
+			root_0 = (CommonTree)adaptor.nil();
+
+
+			INSTRUCTION_FORMAT10x_ODEX296=(Token)match(input,INSTRUCTION_FORMAT10x_ODEX,FOLLOW_INSTRUCTION_FORMAT10x_ODEX_in_insn_format10x_odex4166);
+			INSTRUCTION_FORMAT10x_ODEX296_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT10x_ODEX296);
+			adaptor.addChild(root_0, INSTRUCTION_FORMAT10x_ODEX296_tree);
+
+
+			      throwOdexedInstructionException(input, (INSTRUCTION_FORMAT10x_ODEX296!=null?INSTRUCTION_FORMAT10x_ODEX296.getText():null));
+			
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format10x_odex"
+
+
+	public static class insn_format11n_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format11n"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:876:1: insn_format11n : INSTRUCTION_FORMAT11n REGISTER COMMA integral_literal -> ^( I_STATEMENT_FORMAT11n[$start, \"I_STATEMENT_FORMAT11n\"] INSTRUCTION_FORMAT11n REGISTER integral_literal ) ;
+	public final smaliParser.insn_format11n_return insn_format11n() throws RecognitionException {
+		smaliParser.insn_format11n_return retval = new smaliParser.insn_format11n_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT11n297=null;
+		Token REGISTER298=null;
+		Token COMMA299=null;
+		ParserRuleReturnScope integral_literal300 =null;
+
+		CommonTree INSTRUCTION_FORMAT11n297_tree=null;
+		CommonTree REGISTER298_tree=null;
+		CommonTree COMMA299_tree=null;
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT11n=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT11n");
+		RewriteRuleSubtreeStream stream_integral_literal=new RewriteRuleSubtreeStream(adaptor,"rule integral_literal");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:877:3: ( INSTRUCTION_FORMAT11n REGISTER COMMA integral_literal -> ^( I_STATEMENT_FORMAT11n[$start, \"I_STATEMENT_FORMAT11n\"] INSTRUCTION_FORMAT11n REGISTER integral_literal ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:878:5: INSTRUCTION_FORMAT11n REGISTER COMMA integral_literal
+			{
+			INSTRUCTION_FORMAT11n297=(Token)match(input,INSTRUCTION_FORMAT11n,FOLLOW_INSTRUCTION_FORMAT11n_in_insn_format11n4187);
+			stream_INSTRUCTION_FORMAT11n.add(INSTRUCTION_FORMAT11n297);
+
+			REGISTER298=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format11n4189);
+			stream_REGISTER.add(REGISTER298);
+
+			COMMA299=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format11n4191);
+			stream_COMMA.add(COMMA299);
+
+			pushFollow(FOLLOW_integral_literal_in_insn_format11n4193);
+			integral_literal300=integral_literal();
+			state._fsp--;
+
+			stream_integral_literal.add(integral_literal300.getTree());
+			// AST REWRITE
+			// elements: integral_literal, REGISTER, INSTRUCTION_FORMAT11n
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 879:5: -> ^( I_STATEMENT_FORMAT11n[$start, \"I_STATEMENT_FORMAT11n\"] INSTRUCTION_FORMAT11n REGISTER integral_literal )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:879:8: ^( I_STATEMENT_FORMAT11n[$start, \"I_STATEMENT_FORMAT11n\"] INSTRUCTION_FORMAT11n REGISTER integral_literal )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT11n, (retval.start), "I_STATEMENT_FORMAT11n"), root_1);
+				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT11n.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_integral_literal.nextTree());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format11n"
+
+
+	public static class insn_format11x_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format11x"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:881:1: insn_format11x : INSTRUCTION_FORMAT11x REGISTER -> ^( I_STATEMENT_FORMAT11x[$start, \"I_STATEMENT_FORMAT11x\"] INSTRUCTION_FORMAT11x REGISTER ) ;
+	public final smaliParser.insn_format11x_return insn_format11x() throws RecognitionException {
+		smaliParser.insn_format11x_return retval = new smaliParser.insn_format11x_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT11x301=null;
+		Token REGISTER302=null;
+
+		CommonTree INSTRUCTION_FORMAT11x301_tree=null;
+		CommonTree REGISTER302_tree=null;
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT11x=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT11x");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:882:3: ( INSTRUCTION_FORMAT11x REGISTER -> ^( I_STATEMENT_FORMAT11x[$start, \"I_STATEMENT_FORMAT11x\"] INSTRUCTION_FORMAT11x REGISTER ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:883:5: INSTRUCTION_FORMAT11x REGISTER
+			{
+			INSTRUCTION_FORMAT11x301=(Token)match(input,INSTRUCTION_FORMAT11x,FOLLOW_INSTRUCTION_FORMAT11x_in_insn_format11x4225);
+			stream_INSTRUCTION_FORMAT11x.add(INSTRUCTION_FORMAT11x301);
+
+			REGISTER302=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format11x4227);
+			stream_REGISTER.add(REGISTER302);
+
+			// AST REWRITE
+			// elements: INSTRUCTION_FORMAT11x, REGISTER
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 884:5: -> ^( I_STATEMENT_FORMAT11x[$start, \"I_STATEMENT_FORMAT11x\"] INSTRUCTION_FORMAT11x REGISTER )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:884:8: ^( I_STATEMENT_FORMAT11x[$start, \"I_STATEMENT_FORMAT11x\"] INSTRUCTION_FORMAT11x REGISTER )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT11x, (retval.start), "I_STATEMENT_FORMAT11x"), root_1);
+				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT11x.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format11x"
+
+
+	public static class insn_format12x_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format12x"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:886:1: insn_format12x : instruction_format12x REGISTER COMMA REGISTER -> ^( I_STATEMENT_FORMAT12x[$start, \"I_STATEMENT_FORMAT12x\"] instruction_format12x REGISTER REGISTER ) ;
+	public final smaliParser.insn_format12x_return insn_format12x() throws RecognitionException {
+		smaliParser.insn_format12x_return retval = new smaliParser.insn_format12x_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token REGISTER304=null;
+		Token COMMA305=null;
+		Token REGISTER306=null;
+		ParserRuleReturnScope instruction_format12x303 =null;
+
+		CommonTree REGISTER304_tree=null;
+		CommonTree COMMA305_tree=null;
+		CommonTree REGISTER306_tree=null;
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+		RewriteRuleSubtreeStream stream_instruction_format12x=new RewriteRuleSubtreeStream(adaptor,"rule instruction_format12x");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:887:3: ( instruction_format12x REGISTER COMMA REGISTER -> ^( I_STATEMENT_FORMAT12x[$start, \"I_STATEMENT_FORMAT12x\"] instruction_format12x REGISTER REGISTER ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:888:5: instruction_format12x REGISTER COMMA REGISTER
+			{
+			pushFollow(FOLLOW_instruction_format12x_in_insn_format12x4257);
+			instruction_format12x303=instruction_format12x();
+			state._fsp--;
+
+			stream_instruction_format12x.add(instruction_format12x303.getTree());
+			REGISTER304=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format12x4259);
+			stream_REGISTER.add(REGISTER304);
+
+			COMMA305=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format12x4261);
+			stream_COMMA.add(COMMA305);
+
+			REGISTER306=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format12x4263);
+			stream_REGISTER.add(REGISTER306);
+
+			// AST REWRITE
+			// elements: REGISTER, instruction_format12x, REGISTER
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 889:5: -> ^( I_STATEMENT_FORMAT12x[$start, \"I_STATEMENT_FORMAT12x\"] instruction_format12x REGISTER REGISTER )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:889:8: ^( I_STATEMENT_FORMAT12x[$start, \"I_STATEMENT_FORMAT12x\"] instruction_format12x REGISTER REGISTER )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT12x, (retval.start), "I_STATEMENT_FORMAT12x"), root_1);
+				adaptor.addChild(root_1, stream_instruction_format12x.nextTree());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format12x"
+
+
+	public static class insn_format20bc_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format20bc"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:891:1: insn_format20bc : INSTRUCTION_FORMAT20bc VERIFICATION_ERROR_TYPE COMMA verification_error_reference -> ^( I_STATEMENT_FORMAT20bc INSTRUCTION_FORMAT20bc VERIFICATION_ERROR_TYPE verification_error_reference ) ;
+	public final smaliParser.insn_format20bc_return insn_format20bc() throws RecognitionException {
+		smaliParser.insn_format20bc_return retval = new smaliParser.insn_format20bc_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT20bc307=null;
+		Token VERIFICATION_ERROR_TYPE308=null;
+		Token COMMA309=null;
+		ParserRuleReturnScope verification_error_reference310 =null;
+
+		CommonTree INSTRUCTION_FORMAT20bc307_tree=null;
+		CommonTree VERIFICATION_ERROR_TYPE308_tree=null;
+		CommonTree COMMA309_tree=null;
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT20bc=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT20bc");
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_VERIFICATION_ERROR_TYPE=new RewriteRuleTokenStream(adaptor,"token VERIFICATION_ERROR_TYPE");
+		RewriteRuleSubtreeStream stream_verification_error_reference=new RewriteRuleSubtreeStream(adaptor,"rule verification_error_reference");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:892:3: ( INSTRUCTION_FORMAT20bc VERIFICATION_ERROR_TYPE COMMA verification_error_reference -> ^( I_STATEMENT_FORMAT20bc INSTRUCTION_FORMAT20bc VERIFICATION_ERROR_TYPE verification_error_reference ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:893:5: INSTRUCTION_FORMAT20bc VERIFICATION_ERROR_TYPE COMMA verification_error_reference
+			{
+			INSTRUCTION_FORMAT20bc307=(Token)match(input,INSTRUCTION_FORMAT20bc,FOLLOW_INSTRUCTION_FORMAT20bc_in_insn_format20bc4295);
+			stream_INSTRUCTION_FORMAT20bc.add(INSTRUCTION_FORMAT20bc307);
+
+			VERIFICATION_ERROR_TYPE308=(Token)match(input,VERIFICATION_ERROR_TYPE,FOLLOW_VERIFICATION_ERROR_TYPE_in_insn_format20bc4297);
+			stream_VERIFICATION_ERROR_TYPE.add(VERIFICATION_ERROR_TYPE308);
+
+			COMMA309=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format20bc4299);
+			stream_COMMA.add(COMMA309);
+
+			pushFollow(FOLLOW_verification_error_reference_in_insn_format20bc4301);
+			verification_error_reference310=verification_error_reference();
+			state._fsp--;
+
+			stream_verification_error_reference.add(verification_error_reference310.getTree());
+
+			      if (!allowOdex || opcodes.getOpcodeByName((INSTRUCTION_FORMAT20bc307!=null?INSTRUCTION_FORMAT20bc307.getText():null)) == null || apiLevel >= 14) {
+			        throwOdexedInstructionException(input, (INSTRUCTION_FORMAT20bc307!=null?INSTRUCTION_FORMAT20bc307.getText():null));
+			      }
+			
+			// AST REWRITE
+			// elements: verification_error_reference, INSTRUCTION_FORMAT20bc, VERIFICATION_ERROR_TYPE
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 899:5: -> ^( I_STATEMENT_FORMAT20bc INSTRUCTION_FORMAT20bc VERIFICATION_ERROR_TYPE verification_error_reference )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:899:8: ^( I_STATEMENT_FORMAT20bc INSTRUCTION_FORMAT20bc VERIFICATION_ERROR_TYPE verification_error_reference )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT20bc, "I_STATEMENT_FORMAT20bc"), root_1);
+				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT20bc.nextNode());
+				adaptor.addChild(root_1, stream_VERIFICATION_ERROR_TYPE.nextNode());
+				adaptor.addChild(root_1, stream_verification_error_reference.nextTree());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format20bc"
+
+
+	public static class insn_format20t_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format20t"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:901:1: insn_format20t : INSTRUCTION_FORMAT20t label_ref -> ^( I_STATEMENT_FORMAT20t[$start, \"I_STATEMENT_FORMAT20t\"] INSTRUCTION_FORMAT20t label_ref ) ;
+	public final smaliParser.insn_format20t_return insn_format20t() throws RecognitionException {
+		smaliParser.insn_format20t_return retval = new smaliParser.insn_format20t_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT20t311=null;
+		ParserRuleReturnScope label_ref312 =null;
+
+		CommonTree INSTRUCTION_FORMAT20t311_tree=null;
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT20t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT20t");
+		RewriteRuleSubtreeStream stream_label_ref=new RewriteRuleSubtreeStream(adaptor,"rule label_ref");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:902:3: ( INSTRUCTION_FORMAT20t label_ref -> ^( I_STATEMENT_FORMAT20t[$start, \"I_STATEMENT_FORMAT20t\"] INSTRUCTION_FORMAT20t label_ref ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:903:5: INSTRUCTION_FORMAT20t label_ref
+			{
+			INSTRUCTION_FORMAT20t311=(Token)match(input,INSTRUCTION_FORMAT20t,FOLLOW_INSTRUCTION_FORMAT20t_in_insn_format20t4338);
+			stream_INSTRUCTION_FORMAT20t.add(INSTRUCTION_FORMAT20t311);
+
+			pushFollow(FOLLOW_label_ref_in_insn_format20t4340);
+			label_ref312=label_ref();
+			state._fsp--;
+
+			stream_label_ref.add(label_ref312.getTree());
+			// AST REWRITE
+			// elements: INSTRUCTION_FORMAT20t, label_ref
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 904:5: -> ^( I_STATEMENT_FORMAT20t[$start, \"I_STATEMENT_FORMAT20t\"] INSTRUCTION_FORMAT20t label_ref )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:904:8: ^( I_STATEMENT_FORMAT20t[$start, \"I_STATEMENT_FORMAT20t\"] INSTRUCTION_FORMAT20t label_ref )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT20t, (retval.start), "I_STATEMENT_FORMAT20t"), root_1);
+				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT20t.nextNode());
+				adaptor.addChild(root_1, stream_label_ref.nextTree());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format20t"
+
+
+	public static class insn_format21c_field_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format21c_field"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:906:1: insn_format21c_field : INSTRUCTION_FORMAT21c_FIELD REGISTER COMMA field_reference -> ^( I_STATEMENT_FORMAT21c_FIELD[$start, \"I_STATEMENT_FORMAT21c_FIELD\"] INSTRUCTION_FORMAT21c_FIELD REGISTER field_reference ) ;
+	public final smaliParser.insn_format21c_field_return insn_format21c_field() throws RecognitionException {
+		smaliParser.insn_format21c_field_return retval = new smaliParser.insn_format21c_field_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT21c_FIELD313=null;
+		Token REGISTER314=null;
+		Token COMMA315=null;
+		ParserRuleReturnScope field_reference316 =null;
+
+		CommonTree INSTRUCTION_FORMAT21c_FIELD313_tree=null;
+		CommonTree REGISTER314_tree=null;
+		CommonTree COMMA315_tree=null;
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_FIELD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21c_FIELD");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+		RewriteRuleSubtreeStream stream_field_reference=new RewriteRuleSubtreeStream(adaptor,"rule field_reference");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:907:3: ( INSTRUCTION_FORMAT21c_FIELD REGISTER COMMA field_reference -> ^( I_STATEMENT_FORMAT21c_FIELD[$start, \"I_STATEMENT_FORMAT21c_FIELD\"] INSTRUCTION_FORMAT21c_FIELD REGISTER field_reference ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:908:5: INSTRUCTION_FORMAT21c_FIELD REGISTER COMMA field_reference
+			{
+			INSTRUCTION_FORMAT21c_FIELD313=(Token)match(input,INSTRUCTION_FORMAT21c_FIELD,FOLLOW_INSTRUCTION_FORMAT21c_FIELD_in_insn_format21c_field4370);
+			stream_INSTRUCTION_FORMAT21c_FIELD.add(INSTRUCTION_FORMAT21c_FIELD313);
+
+			REGISTER314=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21c_field4372);
+			stream_REGISTER.add(REGISTER314);
+
+			COMMA315=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format21c_field4374);
+			stream_COMMA.add(COMMA315);
+
+			pushFollow(FOLLOW_field_reference_in_insn_format21c_field4376);
+			field_reference316=field_reference();
+			state._fsp--;
+
+			stream_field_reference.add(field_reference316.getTree());
+			// AST REWRITE
+			// elements: REGISTER, field_reference, INSTRUCTION_FORMAT21c_FIELD
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 909:5: -> ^( I_STATEMENT_FORMAT21c_FIELD[$start, \"I_STATEMENT_FORMAT21c_FIELD\"] INSTRUCTION_FORMAT21c_FIELD REGISTER field_reference )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:909:8: ^( I_STATEMENT_FORMAT21c_FIELD[$start, \"I_STATEMENT_FORMAT21c_FIELD\"] INSTRUCTION_FORMAT21c_FIELD REGISTER field_reference )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT21c_FIELD, (retval.start), "I_STATEMENT_FORMAT21c_FIELD"), root_1);
+				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21c_FIELD.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_field_reference.nextTree());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format21c_field"
+
+
+	public static class insn_format21c_field_odex_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format21c_field_odex"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:911:1: insn_format21c_field_odex : INSTRUCTION_FORMAT21c_FIELD_ODEX REGISTER COMMA field_reference -> ^( I_STATEMENT_FORMAT21c_FIELD[$start, \"I_STATEMENT_FORMAT21c_FIELD\"] INSTRUCTION_FORMAT21c_FIELD_ODEX REGISTER field_reference ) ;
+	public final smaliParser.insn_format21c_field_odex_return insn_format21c_field_odex() throws RecognitionException {
+		smaliParser.insn_format21c_field_odex_return retval = new smaliParser.insn_format21c_field_odex_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT21c_FIELD_ODEX317=null;
+		Token REGISTER318=null;
+		Token COMMA319=null;
+		ParserRuleReturnScope field_reference320 =null;
+
+		CommonTree INSTRUCTION_FORMAT21c_FIELD_ODEX317_tree=null;
+		CommonTree REGISTER318_tree=null;
+		CommonTree COMMA319_tree=null;
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_FIELD_ODEX=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21c_FIELD_ODEX");
+		RewriteRuleSubtreeStream stream_field_reference=new RewriteRuleSubtreeStream(adaptor,"rule field_reference");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:912:3: ( INSTRUCTION_FORMAT21c_FIELD_ODEX REGISTER COMMA field_reference -> ^( I_STATEMENT_FORMAT21c_FIELD[$start, \"I_STATEMENT_FORMAT21c_FIELD\"] INSTRUCTION_FORMAT21c_FIELD_ODEX REGISTER field_reference ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:913:5: INSTRUCTION_FORMAT21c_FIELD_ODEX REGISTER COMMA field_reference
+			{
+			INSTRUCTION_FORMAT21c_FIELD_ODEX317=(Token)match(input,INSTRUCTION_FORMAT21c_FIELD_ODEX,FOLLOW_INSTRUCTION_FORMAT21c_FIELD_ODEX_in_insn_format21c_field_odex4408);
+			stream_INSTRUCTION_FORMAT21c_FIELD_ODEX.add(INSTRUCTION_FORMAT21c_FIELD_ODEX317);
+
+			REGISTER318=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21c_field_odex4410);
+			stream_REGISTER.add(REGISTER318);
+
+			COMMA319=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format21c_field_odex4412);
+			stream_COMMA.add(COMMA319);
+
+			pushFollow(FOLLOW_field_reference_in_insn_format21c_field_odex4414);
+			field_reference320=field_reference();
+			state._fsp--;
+
+			stream_field_reference.add(field_reference320.getTree());
+
+			      if (!allowOdex || opcodes.getOpcodeByName((INSTRUCTION_FORMAT21c_FIELD_ODEX317!=null?INSTRUCTION_FORMAT21c_FIELD_ODEX317.getText():null)) == null || apiLevel >= 14) {
+			        throwOdexedInstructionException(input, (INSTRUCTION_FORMAT21c_FIELD_ODEX317!=null?INSTRUCTION_FORMAT21c_FIELD_ODEX317.getText():null));
+			      }
+			
+			// AST REWRITE
+			// elements: field_reference, INSTRUCTION_FORMAT21c_FIELD_ODEX, REGISTER
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 919:5: -> ^( I_STATEMENT_FORMAT21c_FIELD[$start, \"I_STATEMENT_FORMAT21c_FIELD\"] INSTRUCTION_FORMAT21c_FIELD_ODEX REGISTER field_reference )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:919:8: ^( I_STATEMENT_FORMAT21c_FIELD[$start, \"I_STATEMENT_FORMAT21c_FIELD\"] INSTRUCTION_FORMAT21c_FIELD_ODEX REGISTER field_reference )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT21c_FIELD, (retval.start), "I_STATEMENT_FORMAT21c_FIELD"), root_1);
+				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21c_FIELD_ODEX.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_field_reference.nextTree());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format21c_field_odex"
+
+
+	public static class insn_format21c_string_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format21c_string"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:921:1: insn_format21c_string : INSTRUCTION_FORMAT21c_STRING REGISTER COMMA STRING_LITERAL -> ^( I_STATEMENT_FORMAT21c_STRING[$start, \"I_STATEMENT_FORMAT21c_STRING\"] INSTRUCTION_FORMAT21c_STRING REGISTER STRING_LITERAL ) ;
+	public final smaliParser.insn_format21c_string_return insn_format21c_string() throws RecognitionException {
+		smaliParser.insn_format21c_string_return retval = new smaliParser.insn_format21c_string_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT21c_STRING321=null;
+		Token REGISTER322=null;
+		Token COMMA323=null;
+		Token STRING_LITERAL324=null;
+
+		CommonTree INSTRUCTION_FORMAT21c_STRING321_tree=null;
+		CommonTree REGISTER322_tree=null;
+		CommonTree COMMA323_tree=null;
+		CommonTree STRING_LITERAL324_tree=null;
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_STRING=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21c_STRING");
+		RewriteRuleTokenStream stream_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token STRING_LITERAL");
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:922:3: ( INSTRUCTION_FORMAT21c_STRING REGISTER COMMA STRING_LITERAL -> ^( I_STATEMENT_FORMAT21c_STRING[$start, \"I_STATEMENT_FORMAT21c_STRING\"] INSTRUCTION_FORMAT21c_STRING REGISTER STRING_LITERAL ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:923:5: INSTRUCTION_FORMAT21c_STRING REGISTER COMMA STRING_LITERAL
+			{
+			INSTRUCTION_FORMAT21c_STRING321=(Token)match(input,INSTRUCTION_FORMAT21c_STRING,FOLLOW_INSTRUCTION_FORMAT21c_STRING_in_insn_format21c_string4452);
+			stream_INSTRUCTION_FORMAT21c_STRING.add(INSTRUCTION_FORMAT21c_STRING321);
+
+			REGISTER322=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21c_string4454);
+			stream_REGISTER.add(REGISTER322);
+
+			COMMA323=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format21c_string4456);
+			stream_COMMA.add(COMMA323);
+
+			STRING_LITERAL324=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_insn_format21c_string4458);
+			stream_STRING_LITERAL.add(STRING_LITERAL324);
+
+			// AST REWRITE
+			// elements: INSTRUCTION_FORMAT21c_STRING, REGISTER, STRING_LITERAL
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 924:5: -> ^( I_STATEMENT_FORMAT21c_STRING[$start, \"I_STATEMENT_FORMAT21c_STRING\"] INSTRUCTION_FORMAT21c_STRING REGISTER STRING_LITERAL )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:924:8: ^( I_STATEMENT_FORMAT21c_STRING[$start, \"I_STATEMENT_FORMAT21c_STRING\"] INSTRUCTION_FORMAT21c_STRING REGISTER STRING_LITERAL )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT21c_STRING, (retval.start), "I_STATEMENT_FORMAT21c_STRING"), root_1);
+				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21c_STRING.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format21c_string"
+
+
+	public static class insn_format21c_type_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format21c_type"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:926:1: insn_format21c_type : INSTRUCTION_FORMAT21c_TYPE REGISTER COMMA nonvoid_type_descriptor -> ^( I_STATEMENT_FORMAT21c_TYPE[$start, \"I_STATEMENT_FORMAT21c\"] INSTRUCTION_FORMAT21c_TYPE REGISTER nonvoid_type_descriptor ) ;
+	public final smaliParser.insn_format21c_type_return insn_format21c_type() throws RecognitionException {
+		smaliParser.insn_format21c_type_return retval = new smaliParser.insn_format21c_type_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT21c_TYPE325=null;
+		Token REGISTER326=null;
+		Token COMMA327=null;
+		ParserRuleReturnScope nonvoid_type_descriptor328 =null;
+
+		CommonTree INSTRUCTION_FORMAT21c_TYPE325_tree=null;
+		CommonTree REGISTER326_tree=null;
+		CommonTree COMMA327_tree=null;
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_TYPE=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21c_TYPE");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+		RewriteRuleSubtreeStream stream_nonvoid_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule nonvoid_type_descriptor");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:927:3: ( INSTRUCTION_FORMAT21c_TYPE REGISTER COMMA nonvoid_type_descriptor -> ^( I_STATEMENT_FORMAT21c_TYPE[$start, \"I_STATEMENT_FORMAT21c\"] INSTRUCTION_FORMAT21c_TYPE REGISTER nonvoid_type_descriptor ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:928:5: INSTRUCTION_FORMAT21c_TYPE REGISTER COMMA nonvoid_type_descriptor
+			{
+			INSTRUCTION_FORMAT21c_TYPE325=(Token)match(input,INSTRUCTION_FORMAT21c_TYPE,FOLLOW_INSTRUCTION_FORMAT21c_TYPE_in_insn_format21c_type4490);
+			stream_INSTRUCTION_FORMAT21c_TYPE.add(INSTRUCTION_FORMAT21c_TYPE325);
+
+			REGISTER326=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21c_type4492);
+			stream_REGISTER.add(REGISTER326);
+
+			COMMA327=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format21c_type4494);
+			stream_COMMA.add(COMMA327);
+
+			pushFollow(FOLLOW_nonvoid_type_descriptor_in_insn_format21c_type4496);
+			nonvoid_type_descriptor328=nonvoid_type_descriptor();
+			state._fsp--;
+
+			stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor328.getTree());
+			// AST REWRITE
+			// elements: REGISTER, nonvoid_type_descriptor, INSTRUCTION_FORMAT21c_TYPE
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 929:5: -> ^( I_STATEMENT_FORMAT21c_TYPE[$start, \"I_STATEMENT_FORMAT21c\"] INSTRUCTION_FORMAT21c_TYPE REGISTER nonvoid_type_descriptor )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:929:8: ^( I_STATEMENT_FORMAT21c_TYPE[$start, \"I_STATEMENT_FORMAT21c\"] INSTRUCTION_FORMAT21c_TYPE REGISTER nonvoid_type_descriptor )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT21c_TYPE, (retval.start), "I_STATEMENT_FORMAT21c"), root_1);
+				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21c_TYPE.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_nonvoid_type_descriptor.nextTree());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format21c_type"
+
+
+	public static class insn_format21c_lambda_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format21c_lambda"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:931:1: insn_format21c_lambda : INSTRUCTION_FORMAT21c_LAMBDA REGISTER COMMA STRING_LITERAL -> ^( I_STATEMENT_FORMAT21c_LAMBDA[$start, \"I_STATEMENT_FORMAT21c_LAMBDA\"] INSTRUCTION_FORMAT21c_LAMBDA REGISTER STRING_LITERAL ) ;
+	public final smaliParser.insn_format21c_lambda_return insn_format21c_lambda() throws RecognitionException {
+		smaliParser.insn_format21c_lambda_return retval = new smaliParser.insn_format21c_lambda_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT21c_LAMBDA329=null;
+		Token REGISTER330=null;
+		Token COMMA331=null;
+		Token STRING_LITERAL332=null;
+
+		CommonTree INSTRUCTION_FORMAT21c_LAMBDA329_tree=null;
+		CommonTree REGISTER330_tree=null;
+		CommonTree COMMA331_tree=null;
+		CommonTree STRING_LITERAL332_tree=null;
+		RewriteRuleTokenStream stream_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token STRING_LITERAL");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_LAMBDA=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21c_LAMBDA");
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:932:3: ( INSTRUCTION_FORMAT21c_LAMBDA REGISTER COMMA STRING_LITERAL -> ^( I_STATEMENT_FORMAT21c_LAMBDA[$start, \"I_STATEMENT_FORMAT21c_LAMBDA\"] INSTRUCTION_FORMAT21c_LAMBDA REGISTER STRING_LITERAL ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:933:5: INSTRUCTION_FORMAT21c_LAMBDA REGISTER COMMA STRING_LITERAL
+			{
+			INSTRUCTION_FORMAT21c_LAMBDA329=(Token)match(input,INSTRUCTION_FORMAT21c_LAMBDA,FOLLOW_INSTRUCTION_FORMAT21c_LAMBDA_in_insn_format21c_lambda4528);
+			stream_INSTRUCTION_FORMAT21c_LAMBDA.add(INSTRUCTION_FORMAT21c_LAMBDA329);
+
+			REGISTER330=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21c_lambda4530);
+			stream_REGISTER.add(REGISTER330);
+
+			COMMA331=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format21c_lambda4532);
+			stream_COMMA.add(COMMA331);
+
+			STRING_LITERAL332=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_insn_format21c_lambda4534);
+			stream_STRING_LITERAL.add(STRING_LITERAL332);
+
+			// AST REWRITE
+			// elements: REGISTER, STRING_LITERAL, INSTRUCTION_FORMAT21c_LAMBDA
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 934:5: -> ^( I_STATEMENT_FORMAT21c_LAMBDA[$start, \"I_STATEMENT_FORMAT21c_LAMBDA\"] INSTRUCTION_FORMAT21c_LAMBDA REGISTER STRING_LITERAL )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:934:8: ^( I_STATEMENT_FORMAT21c_LAMBDA[$start, \"I_STATEMENT_FORMAT21c_LAMBDA\"] INSTRUCTION_FORMAT21c_LAMBDA REGISTER STRING_LITERAL )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT21c_LAMBDA, (retval.start), "I_STATEMENT_FORMAT21c_LAMBDA"), root_1);
+				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21c_LAMBDA.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format21c_lambda"
+
+
+	public static class insn_format21c_method_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format21c_method"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:936:1: insn_format21c_method : INSTRUCTION_FORMAT21c_METHOD REGISTER COMMA method_reference -> ^( I_STATEMENT_FORMAT21c_METHOD[$start, \"I_STATEMENT_FORMAT21c_METHOD\"] INSTRUCTION_FORMAT21c_METHOD REGISTER method_reference ) ;
+	public final smaliParser.insn_format21c_method_return insn_format21c_method() throws RecognitionException {
+		smaliParser.insn_format21c_method_return retval = new smaliParser.insn_format21c_method_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT21c_METHOD333=null;
+		Token REGISTER334=null;
+		Token COMMA335=null;
+		ParserRuleReturnScope method_reference336 =null;
+
+		CommonTree INSTRUCTION_FORMAT21c_METHOD333_tree=null;
+		CommonTree REGISTER334_tree=null;
+		CommonTree COMMA335_tree=null;
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_METHOD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21c_METHOD");
+		RewriteRuleSubtreeStream stream_method_reference=new RewriteRuleSubtreeStream(adaptor,"rule method_reference");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:937:3: ( INSTRUCTION_FORMAT21c_METHOD REGISTER COMMA method_reference -> ^( I_STATEMENT_FORMAT21c_METHOD[$start, \"I_STATEMENT_FORMAT21c_METHOD\"] INSTRUCTION_FORMAT21c_METHOD REGISTER method_reference ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:938:5: INSTRUCTION_FORMAT21c_METHOD REGISTER COMMA method_reference
+			{
+			INSTRUCTION_FORMAT21c_METHOD333=(Token)match(input,INSTRUCTION_FORMAT21c_METHOD,FOLLOW_INSTRUCTION_FORMAT21c_METHOD_in_insn_format21c_method4566);
+			stream_INSTRUCTION_FORMAT21c_METHOD.add(INSTRUCTION_FORMAT21c_METHOD333);
+
+			REGISTER334=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21c_method4568);
+			stream_REGISTER.add(REGISTER334);
+
+			COMMA335=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format21c_method4570);
+			stream_COMMA.add(COMMA335);
+
+			pushFollow(FOLLOW_method_reference_in_insn_format21c_method4572);
+			method_reference336=method_reference();
+			state._fsp--;
+
+			stream_method_reference.add(method_reference336.getTree());
+			// AST REWRITE
+			// elements: REGISTER, INSTRUCTION_FORMAT21c_METHOD, method_reference
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 939:5: -> ^( I_STATEMENT_FORMAT21c_METHOD[$start, \"I_STATEMENT_FORMAT21c_METHOD\"] INSTRUCTION_FORMAT21c_METHOD REGISTER method_reference )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:939:8: ^( I_STATEMENT_FORMAT21c_METHOD[$start, \"I_STATEMENT_FORMAT21c_METHOD\"] INSTRUCTION_FORMAT21c_METHOD REGISTER method_reference )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT21c_METHOD, (retval.start), "I_STATEMENT_FORMAT21c_METHOD"), root_1);
+				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21c_METHOD.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_method_reference.nextTree());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format21c_method"
+
+
+	public static class insn_format21ih_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format21ih"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:941:1: insn_format21ih : INSTRUCTION_FORMAT21ih REGISTER COMMA fixed_32bit_literal -> ^( I_STATEMENT_FORMAT21ih[$start, \"I_STATEMENT_FORMAT21ih\"] INSTRUCTION_FORMAT21ih REGISTER fixed_32bit_literal ) ;
+	public final smaliParser.insn_format21ih_return insn_format21ih() throws RecognitionException {
+		smaliParser.insn_format21ih_return retval = new smaliParser.insn_format21ih_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT21ih337=null;
+		Token REGISTER338=null;
+		Token COMMA339=null;
+		ParserRuleReturnScope fixed_32bit_literal340 =null;
+
+		CommonTree INSTRUCTION_FORMAT21ih337_tree=null;
+		CommonTree REGISTER338_tree=null;
+		CommonTree COMMA339_tree=null;
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21ih=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21ih");
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+		RewriteRuleSubtreeStream stream_fixed_32bit_literal=new RewriteRuleSubtreeStream(adaptor,"rule fixed_32bit_literal");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:942:3: ( INSTRUCTION_FORMAT21ih REGISTER COMMA fixed_32bit_literal -> ^( I_STATEMENT_FORMAT21ih[$start, \"I_STATEMENT_FORMAT21ih\"] INSTRUCTION_FORMAT21ih REGISTER fixed_32bit_literal ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:943:5: INSTRUCTION_FORMAT21ih REGISTER COMMA fixed_32bit_literal
+			{
+			INSTRUCTION_FORMAT21ih337=(Token)match(input,INSTRUCTION_FORMAT21ih,FOLLOW_INSTRUCTION_FORMAT21ih_in_insn_format21ih4604);
+			stream_INSTRUCTION_FORMAT21ih.add(INSTRUCTION_FORMAT21ih337);
+
+			REGISTER338=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21ih4606);
+			stream_REGISTER.add(REGISTER338);
+
+			COMMA339=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format21ih4608);
+			stream_COMMA.add(COMMA339);
+
+			pushFollow(FOLLOW_fixed_32bit_literal_in_insn_format21ih4610);
+			fixed_32bit_literal340=fixed_32bit_literal();
+			state._fsp--;
+
+			stream_fixed_32bit_literal.add(fixed_32bit_literal340.getTree());
+			// AST REWRITE
+			// elements: INSTRUCTION_FORMAT21ih, fixed_32bit_literal, REGISTER
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 944:5: -> ^( I_STATEMENT_FORMAT21ih[$start, \"I_STATEMENT_FORMAT21ih\"] INSTRUCTION_FORMAT21ih REGISTER fixed_32bit_literal )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:944:8: ^( I_STATEMENT_FORMAT21ih[$start, \"I_STATEMENT_FORMAT21ih\"] INSTRUCTION_FORMAT21ih REGISTER fixed_32bit_literal )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT21ih, (retval.start), "I_STATEMENT_FORMAT21ih"), root_1);
+				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21ih.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_fixed_32bit_literal.nextTree());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format21ih"
+
+
+	public static class insn_format21lh_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format21lh"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:946:1: insn_format21lh : INSTRUCTION_FORMAT21lh REGISTER COMMA fixed_32bit_literal -> ^( I_STATEMENT_FORMAT21lh[$start, \"I_STATEMENT_FORMAT21lh\"] INSTRUCTION_FORMAT21lh REGISTER fixed_32bit_literal ) ;
+	public final smaliParser.insn_format21lh_return insn_format21lh() throws RecognitionException {
+		smaliParser.insn_format21lh_return retval = new smaliParser.insn_format21lh_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT21lh341=null;
+		Token REGISTER342=null;
+		Token COMMA343=null;
+		ParserRuleReturnScope fixed_32bit_literal344 =null;
+
+		CommonTree INSTRUCTION_FORMAT21lh341_tree=null;
+		CommonTree REGISTER342_tree=null;
+		CommonTree COMMA343_tree=null;
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21lh=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21lh");
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+		RewriteRuleSubtreeStream stream_fixed_32bit_literal=new RewriteRuleSubtreeStream(adaptor,"rule fixed_32bit_literal");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:947:3: ( INSTRUCTION_FORMAT21lh REGISTER COMMA fixed_32bit_literal -> ^( I_STATEMENT_FORMAT21lh[$start, \"I_STATEMENT_FORMAT21lh\"] INSTRUCTION_FORMAT21lh REGISTER fixed_32bit_literal ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:948:5: INSTRUCTION_FORMAT21lh REGISTER COMMA fixed_32bit_literal
+			{
+			INSTRUCTION_FORMAT21lh341=(Token)match(input,INSTRUCTION_FORMAT21lh,FOLLOW_INSTRUCTION_FORMAT21lh_in_insn_format21lh4642);
+			stream_INSTRUCTION_FORMAT21lh.add(INSTRUCTION_FORMAT21lh341);
+
+			REGISTER342=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21lh4644);
+			stream_REGISTER.add(REGISTER342);
+
+			COMMA343=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format21lh4646);
+			stream_COMMA.add(COMMA343);
+
+			pushFollow(FOLLOW_fixed_32bit_literal_in_insn_format21lh4648);
+			fixed_32bit_literal344=fixed_32bit_literal();
+			state._fsp--;
+
+			stream_fixed_32bit_literal.add(fixed_32bit_literal344.getTree());
+			// AST REWRITE
+			// elements: fixed_32bit_literal, INSTRUCTION_FORMAT21lh, REGISTER
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 949:5: -> ^( I_STATEMENT_FORMAT21lh[$start, \"I_STATEMENT_FORMAT21lh\"] INSTRUCTION_FORMAT21lh REGISTER fixed_32bit_literal )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:949:8: ^( I_STATEMENT_FORMAT21lh[$start, \"I_STATEMENT_FORMAT21lh\"] INSTRUCTION_FORMAT21lh REGISTER fixed_32bit_literal )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT21lh, (retval.start), "I_STATEMENT_FORMAT21lh"), root_1);
+				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21lh.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_fixed_32bit_literal.nextTree());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format21lh"
+
+
+	public static class insn_format21s_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format21s"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:951:1: insn_format21s : INSTRUCTION_FORMAT21s REGISTER COMMA integral_literal -> ^( I_STATEMENT_FORMAT21s[$start, \"I_STATEMENT_FORMAT21s\"] INSTRUCTION_FORMAT21s REGISTER integral_literal ) ;
+	public final smaliParser.insn_format21s_return insn_format21s() throws RecognitionException {
+		smaliParser.insn_format21s_return retval = new smaliParser.insn_format21s_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT21s345=null;
+		Token REGISTER346=null;
+		Token COMMA347=null;
+		ParserRuleReturnScope integral_literal348 =null;
+
+		CommonTree INSTRUCTION_FORMAT21s345_tree=null;
+		CommonTree REGISTER346_tree=null;
+		CommonTree COMMA347_tree=null;
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21s=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21s");
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+		RewriteRuleSubtreeStream stream_integral_literal=new RewriteRuleSubtreeStream(adaptor,"rule integral_literal");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:952:3: ( INSTRUCTION_FORMAT21s REGISTER COMMA integral_literal -> ^( I_STATEMENT_FORMAT21s[$start, \"I_STATEMENT_FORMAT21s\"] INSTRUCTION_FORMAT21s REGISTER integral_literal ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:953:5: INSTRUCTION_FORMAT21s REGISTER COMMA integral_literal
+			{
+			INSTRUCTION_FORMAT21s345=(Token)match(input,INSTRUCTION_FORMAT21s,FOLLOW_INSTRUCTION_FORMAT21s_in_insn_format21s4680);
+			stream_INSTRUCTION_FORMAT21s.add(INSTRUCTION_FORMAT21s345);
+
+			REGISTER346=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21s4682);
+			stream_REGISTER.add(REGISTER346);
+
+			COMMA347=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format21s4684);
+			stream_COMMA.add(COMMA347);
+
+			pushFollow(FOLLOW_integral_literal_in_insn_format21s4686);
+			integral_literal348=integral_literal();
+			state._fsp--;
+
+			stream_integral_literal.add(integral_literal348.getTree());
+			// AST REWRITE
+			// elements: INSTRUCTION_FORMAT21s, REGISTER, integral_literal
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 954:5: -> ^( I_STATEMENT_FORMAT21s[$start, \"I_STATEMENT_FORMAT21s\"] INSTRUCTION_FORMAT21s REGISTER integral_literal )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:954:8: ^( I_STATEMENT_FORMAT21s[$start, \"I_STATEMENT_FORMAT21s\"] INSTRUCTION_FORMAT21s REGISTER integral_literal )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT21s, (retval.start), "I_STATEMENT_FORMAT21s"), root_1);
+				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21s.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_integral_literal.nextTree());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format21s"
+
+
+	public static class insn_format21t_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format21t"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:956:1: insn_format21t : INSTRUCTION_FORMAT21t REGISTER COMMA label_ref -> ^( I_STATEMENT_FORMAT21t[$start, \"I_STATEMENT_FORMAT21t\"] INSTRUCTION_FORMAT21t REGISTER label_ref ) ;
+	public final smaliParser.insn_format21t_return insn_format21t() throws RecognitionException {
+		smaliParser.insn_format21t_return retval = new smaliParser.insn_format21t_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT21t349=null;
+		Token REGISTER350=null;
+		Token COMMA351=null;
+		ParserRuleReturnScope label_ref352 =null;
+
+		CommonTree INSTRUCTION_FORMAT21t349_tree=null;
+		CommonTree REGISTER350_tree=null;
+		CommonTree COMMA351_tree=null;
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21t");
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+		RewriteRuleSubtreeStream stream_label_ref=new RewriteRuleSubtreeStream(adaptor,"rule label_ref");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:957:3: ( INSTRUCTION_FORMAT21t REGISTER COMMA label_ref -> ^( I_STATEMENT_FORMAT21t[$start, \"I_STATEMENT_FORMAT21t\"] INSTRUCTION_FORMAT21t REGISTER label_ref ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:958:5: INSTRUCTION_FORMAT21t REGISTER COMMA label_ref
+			{
+			INSTRUCTION_FORMAT21t349=(Token)match(input,INSTRUCTION_FORMAT21t,FOLLOW_INSTRUCTION_FORMAT21t_in_insn_format21t4718);
+			stream_INSTRUCTION_FORMAT21t.add(INSTRUCTION_FORMAT21t349);
+
+			REGISTER350=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21t4720);
+			stream_REGISTER.add(REGISTER350);
+
+			COMMA351=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format21t4722);
+			stream_COMMA.add(COMMA351);
+
+			pushFollow(FOLLOW_label_ref_in_insn_format21t4724);
+			label_ref352=label_ref();
+			state._fsp--;
+
+			stream_label_ref.add(label_ref352.getTree());
+			// AST REWRITE
+			// elements: label_ref, INSTRUCTION_FORMAT21t, REGISTER
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 959:5: -> ^( I_STATEMENT_FORMAT21t[$start, \"I_STATEMENT_FORMAT21t\"] INSTRUCTION_FORMAT21t REGISTER label_ref )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:959:8: ^( I_STATEMENT_FORMAT21t[$start, \"I_STATEMENT_FORMAT21t\"] INSTRUCTION_FORMAT21t REGISTER label_ref )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT21t, (retval.start), "I_STATEMENT_FORMAT21t"), root_1);
+				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21t.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_label_ref.nextTree());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format21t"
+
+
+	public static class insn_format22b_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format22b"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:961:1: insn_format22b : INSTRUCTION_FORMAT22b REGISTER COMMA REGISTER COMMA integral_literal -> ^( I_STATEMENT_FORMAT22b[$start, \"I_STATEMENT_FORMAT22b\"] INSTRUCTION_FORMAT22b REGISTER REGISTER integral_literal ) ;
+	public final smaliParser.insn_format22b_return insn_format22b() throws RecognitionException {
+		smaliParser.insn_format22b_return retval = new smaliParser.insn_format22b_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT22b353=null;
+		Token REGISTER354=null;
+		Token COMMA355=null;
+		Token REGISTER356=null;
+		Token COMMA357=null;
+		ParserRuleReturnScope integral_literal358 =null;
+
+		CommonTree INSTRUCTION_FORMAT22b353_tree=null;
+		CommonTree REGISTER354_tree=null;
+		CommonTree COMMA355_tree=null;
+		CommonTree REGISTER356_tree=null;
+		CommonTree COMMA357_tree=null;
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22b=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22b");
+		RewriteRuleSubtreeStream stream_integral_literal=new RewriteRuleSubtreeStream(adaptor,"rule integral_literal");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:962:3: ( INSTRUCTION_FORMAT22b REGISTER COMMA REGISTER COMMA integral_literal -> ^( I_STATEMENT_FORMAT22b[$start, \"I_STATEMENT_FORMAT22b\"] INSTRUCTION_FORMAT22b REGISTER REGISTER integral_literal ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:963:5: INSTRUCTION_FORMAT22b REGISTER COMMA REGISTER COMMA integral_literal
+			{
+			INSTRUCTION_FORMAT22b353=(Token)match(input,INSTRUCTION_FORMAT22b,FOLLOW_INSTRUCTION_FORMAT22b_in_insn_format22b4756);
+			stream_INSTRUCTION_FORMAT22b.add(INSTRUCTION_FORMAT22b353);
+
+			REGISTER354=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22b4758);
+			stream_REGISTER.add(REGISTER354);
+
+			COMMA355=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22b4760);
+			stream_COMMA.add(COMMA355);
+
+			REGISTER356=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22b4762);
+			stream_REGISTER.add(REGISTER356);
+
+			COMMA357=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22b4764);
+			stream_COMMA.add(COMMA357);
+
+			pushFollow(FOLLOW_integral_literal_in_insn_format22b4766);
+			integral_literal358=integral_literal();
+			state._fsp--;
+
+			stream_integral_literal.add(integral_literal358.getTree());
+			// AST REWRITE
+			// elements: REGISTER, INSTRUCTION_FORMAT22b, REGISTER, integral_literal
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 964:5: -> ^( I_STATEMENT_FORMAT22b[$start, \"I_STATEMENT_FORMAT22b\"] INSTRUCTION_FORMAT22b REGISTER REGISTER integral_literal )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:964:8: ^( I_STATEMENT_FORMAT22b[$start, \"I_STATEMENT_FORMAT22b\"] INSTRUCTION_FORMAT22b REGISTER REGISTER integral_literal )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT22b, (retval.start), "I_STATEMENT_FORMAT22b"), root_1);
+				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT22b.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_integral_literal.nextTree());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format22b"
+
+
+	public static class insn_format22c_field_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format22c_field"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:966:1: insn_format22c_field : INSTRUCTION_FORMAT22c_FIELD REGISTER COMMA REGISTER COMMA field_reference -> ^( I_STATEMENT_FORMAT22c_FIELD[$start, \"I_STATEMENT_FORMAT22c_FIELD\"] INSTRUCTION_FORMAT22c_FIELD REGISTER REGISTER field_reference ) ;
+	public final smaliParser.insn_format22c_field_return insn_format22c_field() throws RecognitionException {
+		smaliParser.insn_format22c_field_return retval = new smaliParser.insn_format22c_field_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT22c_FIELD359=null;
+		Token REGISTER360=null;
+		Token COMMA361=null;
+		Token REGISTER362=null;
+		Token COMMA363=null;
+		ParserRuleReturnScope field_reference364 =null;
+
+		CommonTree INSTRUCTION_FORMAT22c_FIELD359_tree=null;
+		CommonTree REGISTER360_tree=null;
+		CommonTree COMMA361_tree=null;
+		CommonTree REGISTER362_tree=null;
+		CommonTree COMMA363_tree=null;
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22c_FIELD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22c_FIELD");
+		RewriteRuleSubtreeStream stream_field_reference=new RewriteRuleSubtreeStream(adaptor,"rule field_reference");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:967:3: ( INSTRUCTION_FORMAT22c_FIELD REGISTER COMMA REGISTER COMMA field_reference -> ^( I_STATEMENT_FORMAT22c_FIELD[$start, \"I_STATEMENT_FORMAT22c_FIELD\"] INSTRUCTION_FORMAT22c_FIELD REGISTER REGISTER field_reference ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:968:5: INSTRUCTION_FORMAT22c_FIELD REGISTER COMMA REGISTER COMMA field_reference
+			{
+			INSTRUCTION_FORMAT22c_FIELD359=(Token)match(input,INSTRUCTION_FORMAT22c_FIELD,FOLLOW_INSTRUCTION_FORMAT22c_FIELD_in_insn_format22c_field4800);
+			stream_INSTRUCTION_FORMAT22c_FIELD.add(INSTRUCTION_FORMAT22c_FIELD359);
+
+			REGISTER360=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_field4802);
+			stream_REGISTER.add(REGISTER360);
+
+			COMMA361=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22c_field4804);
+			stream_COMMA.add(COMMA361);
+
+			REGISTER362=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_field4806);
+			stream_REGISTER.add(REGISTER362);
+
+			COMMA363=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22c_field4808);
+			stream_COMMA.add(COMMA363);
+
+			pushFollow(FOLLOW_field_reference_in_insn_format22c_field4810);
+			field_reference364=field_reference();
+			state._fsp--;
+
+			stream_field_reference.add(field_reference364.getTree());
+			// AST REWRITE
+			// elements: REGISTER, REGISTER, INSTRUCTION_FORMAT22c_FIELD, field_reference
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 969:5: -> ^( I_STATEMENT_FORMAT22c_FIELD[$start, \"I_STATEMENT_FORMAT22c_FIELD\"] INSTRUCTION_FORMAT22c_FIELD REGISTER REGISTER field_reference )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:969:8: ^( I_STATEMENT_FORMAT22c_FIELD[$start, \"I_STATEMENT_FORMAT22c_FIELD\"] INSTRUCTION_FORMAT22c_FIELD REGISTER REGISTER field_reference )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT22c_FIELD, (retval.start), "I_STATEMENT_FORMAT22c_FIELD"), root_1);
+				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT22c_FIELD.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_field_reference.nextTree());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format22c_field"
+
+
+	public static class insn_format22c_field_odex_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format22c_field_odex"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:971:1: insn_format22c_field_odex : INSTRUCTION_FORMAT22c_FIELD_ODEX REGISTER COMMA REGISTER COMMA field_reference -> ^( I_STATEMENT_FORMAT22c_FIELD[$start, \"I_STATEMENT_FORMAT22c_FIELD\"] INSTRUCTION_FORMAT22c_FIELD_ODEX REGISTER REGISTER field_reference ) ;
+	public final smaliParser.insn_format22c_field_odex_return insn_format22c_field_odex() throws RecognitionException {
+		smaliParser.insn_format22c_field_odex_return retval = new smaliParser.insn_format22c_field_odex_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT22c_FIELD_ODEX365=null;
+		Token REGISTER366=null;
+		Token COMMA367=null;
+		Token REGISTER368=null;
+		Token COMMA369=null;
+		ParserRuleReturnScope field_reference370 =null;
+
+		CommonTree INSTRUCTION_FORMAT22c_FIELD_ODEX365_tree=null;
+		CommonTree REGISTER366_tree=null;
+		CommonTree COMMA367_tree=null;
+		CommonTree REGISTER368_tree=null;
+		CommonTree COMMA369_tree=null;
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22c_FIELD_ODEX=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22c_FIELD_ODEX");
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+		RewriteRuleSubtreeStream stream_field_reference=new RewriteRuleSubtreeStream(adaptor,"rule field_reference");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:972:3: ( INSTRUCTION_FORMAT22c_FIELD_ODEX REGISTER COMMA REGISTER COMMA field_reference -> ^( I_STATEMENT_FORMAT22c_FIELD[$start, \"I_STATEMENT_FORMAT22c_FIELD\"] INSTRUCTION_FORMAT22c_FIELD_ODEX REGISTER REGISTER field_reference ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:973:5: INSTRUCTION_FORMAT22c_FIELD_ODEX REGISTER COMMA REGISTER COMMA field_reference
+			{
+			INSTRUCTION_FORMAT22c_FIELD_ODEX365=(Token)match(input,INSTRUCTION_FORMAT22c_FIELD_ODEX,FOLLOW_INSTRUCTION_FORMAT22c_FIELD_ODEX_in_insn_format22c_field_odex4844);
+			stream_INSTRUCTION_FORMAT22c_FIELD_ODEX.add(INSTRUCTION_FORMAT22c_FIELD_ODEX365);
+
+			REGISTER366=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_field_odex4846);
+			stream_REGISTER.add(REGISTER366);
+
+			COMMA367=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22c_field_odex4848);
+			stream_COMMA.add(COMMA367);
+
+			REGISTER368=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_field_odex4850);
+			stream_REGISTER.add(REGISTER368);
+
+			COMMA369=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22c_field_odex4852);
+			stream_COMMA.add(COMMA369);
+
+			pushFollow(FOLLOW_field_reference_in_insn_format22c_field_odex4854);
+			field_reference370=field_reference();
+			state._fsp--;
+
+			stream_field_reference.add(field_reference370.getTree());
+
+			      if (!allowOdex || opcodes.getOpcodeByName((INSTRUCTION_FORMAT22c_FIELD_ODEX365!=null?INSTRUCTION_FORMAT22c_FIELD_ODEX365.getText():null)) == null || apiLevel >= 14) {
+			        throwOdexedInstructionException(input, (INSTRUCTION_FORMAT22c_FIELD_ODEX365!=null?INSTRUCTION_FORMAT22c_FIELD_ODEX365.getText():null));
+			      }
+			
+			// AST REWRITE
+			// elements: INSTRUCTION_FORMAT22c_FIELD_ODEX, REGISTER, field_reference, REGISTER
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 979:5: -> ^( I_STATEMENT_FORMAT22c_FIELD[$start, \"I_STATEMENT_FORMAT22c_FIELD\"] INSTRUCTION_FORMAT22c_FIELD_ODEX REGISTER REGISTER field_reference )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:979:8: ^( I_STATEMENT_FORMAT22c_FIELD[$start, \"I_STATEMENT_FORMAT22c_FIELD\"] INSTRUCTION_FORMAT22c_FIELD_ODEX REGISTER REGISTER field_reference )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT22c_FIELD, (retval.start), "I_STATEMENT_FORMAT22c_FIELD"), root_1);
+				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT22c_FIELD_ODEX.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_field_reference.nextTree());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format22c_field_odex"
+
+
+	public static class insn_format22c_type_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format22c_type"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:981:1: insn_format22c_type : INSTRUCTION_FORMAT22c_TYPE REGISTER COMMA REGISTER COMMA nonvoid_type_descriptor -> ^( I_STATEMENT_FORMAT22c_TYPE[$start, \"I_STATEMENT_FORMAT22c_TYPE\"] INSTRUCTION_FORMAT22c_TYPE REGISTER REGISTER nonvoid_type_descriptor ) ;
+	public final smaliParser.insn_format22c_type_return insn_format22c_type() throws RecognitionException {
+		smaliParser.insn_format22c_type_return retval = new smaliParser.insn_format22c_type_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT22c_TYPE371=null;
+		Token REGISTER372=null;
+		Token COMMA373=null;
+		Token REGISTER374=null;
+		Token COMMA375=null;
+		ParserRuleReturnScope nonvoid_type_descriptor376 =null;
+
+		CommonTree INSTRUCTION_FORMAT22c_TYPE371_tree=null;
+		CommonTree REGISTER372_tree=null;
+		CommonTree COMMA373_tree=null;
+		CommonTree REGISTER374_tree=null;
+		CommonTree COMMA375_tree=null;
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22c_TYPE=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22c_TYPE");
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+		RewriteRuleSubtreeStream stream_nonvoid_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule nonvoid_type_descriptor");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:982:3: ( INSTRUCTION_FORMAT22c_TYPE REGISTER COMMA REGISTER COMMA nonvoid_type_descriptor -> ^( I_STATEMENT_FORMAT22c_TYPE[$start, \"I_STATEMENT_FORMAT22c_TYPE\"] INSTRUCTION_FORMAT22c_TYPE REGISTER REGISTER nonvoid_type_descriptor ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:983:5: INSTRUCTION_FORMAT22c_TYPE REGISTER COMMA REGISTER COMMA nonvoid_type_descriptor
+			{
+			INSTRUCTION_FORMAT22c_TYPE371=(Token)match(input,INSTRUCTION_FORMAT22c_TYPE,FOLLOW_INSTRUCTION_FORMAT22c_TYPE_in_insn_format22c_type4894);
+			stream_INSTRUCTION_FORMAT22c_TYPE.add(INSTRUCTION_FORMAT22c_TYPE371);
+
+			REGISTER372=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_type4896);
+			stream_REGISTER.add(REGISTER372);
+
+			COMMA373=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22c_type4898);
+			stream_COMMA.add(COMMA373);
+
+			REGISTER374=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_type4900);
+			stream_REGISTER.add(REGISTER374);
+
+			COMMA375=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22c_type4902);
+			stream_COMMA.add(COMMA375);
+
+			pushFollow(FOLLOW_nonvoid_type_descriptor_in_insn_format22c_type4904);
+			nonvoid_type_descriptor376=nonvoid_type_descriptor();
+			state._fsp--;
+
+			stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor376.getTree());
+			// AST REWRITE
+			// elements: REGISTER, nonvoid_type_descriptor, REGISTER, INSTRUCTION_FORMAT22c_TYPE
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 984:5: -> ^( I_STATEMENT_FORMAT22c_TYPE[$start, \"I_STATEMENT_FORMAT22c_TYPE\"] INSTRUCTION_FORMAT22c_TYPE REGISTER REGISTER nonvoid_type_descriptor )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:984:8: ^( I_STATEMENT_FORMAT22c_TYPE[$start, \"I_STATEMENT_FORMAT22c_TYPE\"] INSTRUCTION_FORMAT22c_TYPE REGISTER REGISTER nonvoid_type_descriptor )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT22c_TYPE, (retval.start), "I_STATEMENT_FORMAT22c_TYPE"), root_1);
+				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT22c_TYPE.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_nonvoid_type_descriptor.nextTree());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format22c_type"
+
+
+	public static class insn_format22c_string_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format22c_string"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:986:1: insn_format22c_string : INSTRUCTION_FORMAT22c_STRING REGISTER COMMA REGISTER COMMA STRING_LITERAL -> ^( I_STATEMENT_FORMAT22c_STRING[$start, \"I_STATEMENT_FORMAT22c_STRING\"] INSTRUCTION_FORMAT22c_STRING REGISTER REGISTER STRING_LITERAL ) ;
+	public final smaliParser.insn_format22c_string_return insn_format22c_string() throws RecognitionException {
+		smaliParser.insn_format22c_string_return retval = new smaliParser.insn_format22c_string_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT22c_STRING377=null;
+		Token REGISTER378=null;
+		Token COMMA379=null;
+		Token REGISTER380=null;
+		Token COMMA381=null;
+		Token STRING_LITERAL382=null;
+
+		CommonTree INSTRUCTION_FORMAT22c_STRING377_tree=null;
+		CommonTree REGISTER378_tree=null;
+		CommonTree COMMA379_tree=null;
+		CommonTree REGISTER380_tree=null;
+		CommonTree COMMA381_tree=null;
+		CommonTree STRING_LITERAL382_tree=null;
+		RewriteRuleTokenStream stream_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token STRING_LITERAL");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22c_STRING=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22c_STRING");
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:987:3: ( INSTRUCTION_FORMAT22c_STRING REGISTER COMMA REGISTER COMMA STRING_LITERAL -> ^( I_STATEMENT_FORMAT22c_STRING[$start, \"I_STATEMENT_FORMAT22c_STRING\"] INSTRUCTION_FORMAT22c_STRING REGISTER REGISTER STRING_LITERAL ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:988:5: INSTRUCTION_FORMAT22c_STRING REGISTER COMMA REGISTER COMMA STRING_LITERAL
+			{
+			INSTRUCTION_FORMAT22c_STRING377=(Token)match(input,INSTRUCTION_FORMAT22c_STRING,FOLLOW_INSTRUCTION_FORMAT22c_STRING_in_insn_format22c_string4938);
+			stream_INSTRUCTION_FORMAT22c_STRING.add(INSTRUCTION_FORMAT22c_STRING377);
+
+			REGISTER378=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_string4940);
+			stream_REGISTER.add(REGISTER378);
+
+			COMMA379=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22c_string4942);
+			stream_COMMA.add(COMMA379);
+
+			REGISTER380=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_string4944);
+			stream_REGISTER.add(REGISTER380);
+
+			COMMA381=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22c_string4946);
+			stream_COMMA.add(COMMA381);
+
+			STRING_LITERAL382=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_insn_format22c_string4948);
+			stream_STRING_LITERAL.add(STRING_LITERAL382);
+
+			// AST REWRITE
+			// elements: STRING_LITERAL, REGISTER, REGISTER, INSTRUCTION_FORMAT22c_STRING
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 989:5: -> ^( I_STATEMENT_FORMAT22c_STRING[$start, \"I_STATEMENT_FORMAT22c_STRING\"] INSTRUCTION_FORMAT22c_STRING REGISTER REGISTER STRING_LITERAL )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:989:8: ^( I_STATEMENT_FORMAT22c_STRING[$start, \"I_STATEMENT_FORMAT22c_STRING\"] INSTRUCTION_FORMAT22c_STRING REGISTER REGISTER STRING_LITERAL )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT22c_STRING, (retval.start), "I_STATEMENT_FORMAT22c_STRING"), root_1);
+				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT22c_STRING.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format22c_string"
+
+
+	public static class insn_format22cs_field_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format22cs_field"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:991:1: insn_format22cs_field : INSTRUCTION_FORMAT22cs_FIELD REGISTER COMMA REGISTER COMMA FIELD_OFFSET ;
+	public final smaliParser.insn_format22cs_field_return insn_format22cs_field() throws RecognitionException {
+		smaliParser.insn_format22cs_field_return retval = new smaliParser.insn_format22cs_field_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT22cs_FIELD383=null;
+		Token REGISTER384=null;
+		Token COMMA385=null;
+		Token REGISTER386=null;
+		Token COMMA387=null;
+		Token FIELD_OFFSET388=null;
+
+		CommonTree INSTRUCTION_FORMAT22cs_FIELD383_tree=null;
+		CommonTree REGISTER384_tree=null;
+		CommonTree COMMA385_tree=null;
+		CommonTree REGISTER386_tree=null;
+		CommonTree COMMA387_tree=null;
+		CommonTree FIELD_OFFSET388_tree=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:992:3: ( INSTRUCTION_FORMAT22cs_FIELD REGISTER COMMA REGISTER COMMA FIELD_OFFSET )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:993:5: INSTRUCTION_FORMAT22cs_FIELD REGISTER COMMA REGISTER COMMA FIELD_OFFSET
+			{
+			root_0 = (CommonTree)adaptor.nil();
+
+
+			INSTRUCTION_FORMAT22cs_FIELD383=(Token)match(input,INSTRUCTION_FORMAT22cs_FIELD,FOLLOW_INSTRUCTION_FORMAT22cs_FIELD_in_insn_format22cs_field4982);
+			INSTRUCTION_FORMAT22cs_FIELD383_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT22cs_FIELD383);
+			adaptor.addChild(root_0, INSTRUCTION_FORMAT22cs_FIELD383_tree);
+
+			REGISTER384=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22cs_field4984);
+			REGISTER384_tree = (CommonTree)adaptor.create(REGISTER384);
+			adaptor.addChild(root_0, REGISTER384_tree);
+
+			COMMA385=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22cs_field4986);
+			COMMA385_tree = (CommonTree)adaptor.create(COMMA385);
+			adaptor.addChild(root_0, COMMA385_tree);
+
+			REGISTER386=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22cs_field4988);
+			REGISTER386_tree = (CommonTree)adaptor.create(REGISTER386);
+			adaptor.addChild(root_0, REGISTER386_tree);
+
+			COMMA387=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22cs_field4990);
+			COMMA387_tree = (CommonTree)adaptor.create(COMMA387);
+			adaptor.addChild(root_0, COMMA387_tree);
+
+			FIELD_OFFSET388=(Token)match(input,FIELD_OFFSET,FOLLOW_FIELD_OFFSET_in_insn_format22cs_field4992);
+			FIELD_OFFSET388_tree = (CommonTree)adaptor.create(FIELD_OFFSET388);
+			adaptor.addChild(root_0, FIELD_OFFSET388_tree);
+
+
+			      throwOdexedInstructionException(input, (INSTRUCTION_FORMAT22cs_FIELD383!=null?INSTRUCTION_FORMAT22cs_FIELD383.getText():null));
+			
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format22cs_field"
+
+
+	public static class insn_format22s_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format22s"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:998:1: insn_format22s : instruction_format22s REGISTER COMMA REGISTER COMMA integral_literal -> ^( I_STATEMENT_FORMAT22s[$start, \"I_STATEMENT_FORMAT22s\"] instruction_format22s REGISTER REGISTER integral_literal ) ;
+	public final smaliParser.insn_format22s_return insn_format22s() throws RecognitionException {
+		smaliParser.insn_format22s_return retval = new smaliParser.insn_format22s_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token REGISTER390=null;
+		Token COMMA391=null;
+		Token REGISTER392=null;
+		Token COMMA393=null;
+		ParserRuleReturnScope instruction_format22s389 =null;
+		ParserRuleReturnScope integral_literal394 =null;
+
+		CommonTree REGISTER390_tree=null;
+		CommonTree COMMA391_tree=null;
+		CommonTree REGISTER392_tree=null;
+		CommonTree COMMA393_tree=null;
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+		RewriteRuleSubtreeStream stream_integral_literal=new RewriteRuleSubtreeStream(adaptor,"rule integral_literal");
+		RewriteRuleSubtreeStream stream_instruction_format22s=new RewriteRuleSubtreeStream(adaptor,"rule instruction_format22s");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:999:3: ( instruction_format22s REGISTER COMMA REGISTER COMMA integral_literal -> ^( I_STATEMENT_FORMAT22s[$start, \"I_STATEMENT_FORMAT22s\"] instruction_format22s REGISTER REGISTER integral_literal ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1000:5: instruction_format22s REGISTER COMMA REGISTER COMMA integral_literal
+			{
+			pushFollow(FOLLOW_instruction_format22s_in_insn_format22s5013);
+			instruction_format22s389=instruction_format22s();
+			state._fsp--;
+
+			stream_instruction_format22s.add(instruction_format22s389.getTree());
+			REGISTER390=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22s5015);
+			stream_REGISTER.add(REGISTER390);
+
+			COMMA391=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22s5017);
+			stream_COMMA.add(COMMA391);
+
+			REGISTER392=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22s5019);
+			stream_REGISTER.add(REGISTER392);
+
+			COMMA393=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22s5021);
+			stream_COMMA.add(COMMA393);
+
+			pushFollow(FOLLOW_integral_literal_in_insn_format22s5023);
+			integral_literal394=integral_literal();
+			state._fsp--;
+
+			stream_integral_literal.add(integral_literal394.getTree());
+			// AST REWRITE
+			// elements: REGISTER, instruction_format22s, REGISTER, integral_literal
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 1001:5: -> ^( I_STATEMENT_FORMAT22s[$start, \"I_STATEMENT_FORMAT22s\"] instruction_format22s REGISTER REGISTER integral_literal )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1001:8: ^( I_STATEMENT_FORMAT22s[$start, \"I_STATEMENT_FORMAT22s\"] instruction_format22s REGISTER REGISTER integral_literal )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT22s, (retval.start), "I_STATEMENT_FORMAT22s"), root_1);
+				adaptor.addChild(root_1, stream_instruction_format22s.nextTree());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_integral_literal.nextTree());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format22s"
+
+
+	public static class insn_format22t_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format22t"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1003:1: insn_format22t : INSTRUCTION_FORMAT22t REGISTER COMMA REGISTER COMMA label_ref -> ^( I_STATEMENT_FORMAT22t[$start, \"I_STATEMENT_FFORMAT22t\"] INSTRUCTION_FORMAT22t REGISTER REGISTER label_ref ) ;
+	public final smaliParser.insn_format22t_return insn_format22t() throws RecognitionException {
+		smaliParser.insn_format22t_return retval = new smaliParser.insn_format22t_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT22t395=null;
+		Token REGISTER396=null;
+		Token COMMA397=null;
+		Token REGISTER398=null;
+		Token COMMA399=null;
+		ParserRuleReturnScope label_ref400 =null;
+
+		CommonTree INSTRUCTION_FORMAT22t395_tree=null;
+		CommonTree REGISTER396_tree=null;
+		CommonTree COMMA397_tree=null;
+		CommonTree REGISTER398_tree=null;
+		CommonTree COMMA399_tree=null;
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22t");
+		RewriteRuleSubtreeStream stream_label_ref=new RewriteRuleSubtreeStream(adaptor,"rule label_ref");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1004:3: ( INSTRUCTION_FORMAT22t REGISTER COMMA REGISTER COMMA label_ref -> ^( I_STATEMENT_FORMAT22t[$start, \"I_STATEMENT_FFORMAT22t\"] INSTRUCTION_FORMAT22t REGISTER REGISTER label_ref ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1005:5: INSTRUCTION_FORMAT22t REGISTER COMMA REGISTER COMMA label_ref
+			{
+			INSTRUCTION_FORMAT22t395=(Token)match(input,INSTRUCTION_FORMAT22t,FOLLOW_INSTRUCTION_FORMAT22t_in_insn_format22t5057);
+			stream_INSTRUCTION_FORMAT22t.add(INSTRUCTION_FORMAT22t395);
+
+			REGISTER396=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22t5059);
+			stream_REGISTER.add(REGISTER396);
+
+			COMMA397=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22t5061);
+			stream_COMMA.add(COMMA397);
+
+			REGISTER398=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22t5063);
+			stream_REGISTER.add(REGISTER398);
+
+			COMMA399=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22t5065);
+			stream_COMMA.add(COMMA399);
+
+			pushFollow(FOLLOW_label_ref_in_insn_format22t5067);
+			label_ref400=label_ref();
+			state._fsp--;
+
+			stream_label_ref.add(label_ref400.getTree());
+			// AST REWRITE
+			// elements: label_ref, REGISTER, REGISTER, INSTRUCTION_FORMAT22t
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 1006:5: -> ^( I_STATEMENT_FORMAT22t[$start, \"I_STATEMENT_FFORMAT22t\"] INSTRUCTION_FORMAT22t REGISTER REGISTER label_ref )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1006:8: ^( I_STATEMENT_FORMAT22t[$start, \"I_STATEMENT_FFORMAT22t\"] INSTRUCTION_FORMAT22t REGISTER REGISTER label_ref )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT22t, (retval.start), "I_STATEMENT_FFORMAT22t"), root_1);
+				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT22t.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_label_ref.nextTree());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format22t"
+
+
+	public static class insn_format22x_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format22x"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1008:1: insn_format22x : INSTRUCTION_FORMAT22x REGISTER COMMA REGISTER -> ^( I_STATEMENT_FORMAT22x[$start, \"I_STATEMENT_FORMAT22x\"] INSTRUCTION_FORMAT22x REGISTER REGISTER ) ;
+	public final smaliParser.insn_format22x_return insn_format22x() throws RecognitionException {
+		smaliParser.insn_format22x_return retval = new smaliParser.insn_format22x_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT22x401=null;
+		Token REGISTER402=null;
+		Token COMMA403=null;
+		Token REGISTER404=null;
+
+		CommonTree INSTRUCTION_FORMAT22x401_tree=null;
+		CommonTree REGISTER402_tree=null;
+		CommonTree COMMA403_tree=null;
+		CommonTree REGISTER404_tree=null;
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22x=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22x");
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1009:3: ( INSTRUCTION_FORMAT22x REGISTER COMMA REGISTER -> ^( I_STATEMENT_FORMAT22x[$start, \"I_STATEMENT_FORMAT22x\"] INSTRUCTION_FORMAT22x REGISTER REGISTER ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1010:5: INSTRUCTION_FORMAT22x REGISTER COMMA REGISTER
+			{
+			INSTRUCTION_FORMAT22x401=(Token)match(input,INSTRUCTION_FORMAT22x,FOLLOW_INSTRUCTION_FORMAT22x_in_insn_format22x5101);
+			stream_INSTRUCTION_FORMAT22x.add(INSTRUCTION_FORMAT22x401);
+
+			REGISTER402=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22x5103);
+			stream_REGISTER.add(REGISTER402);
+
+			COMMA403=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22x5105);
+			stream_COMMA.add(COMMA403);
+
+			REGISTER404=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22x5107);
+			stream_REGISTER.add(REGISTER404);
+
+			// AST REWRITE
+			// elements: INSTRUCTION_FORMAT22x, REGISTER, REGISTER
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 1011:5: -> ^( I_STATEMENT_FORMAT22x[$start, \"I_STATEMENT_FORMAT22x\"] INSTRUCTION_FORMAT22x REGISTER REGISTER )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1011:8: ^( I_STATEMENT_FORMAT22x[$start, \"I_STATEMENT_FORMAT22x\"] INSTRUCTION_FORMAT22x REGISTER REGISTER )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT22x, (retval.start), "I_STATEMENT_FORMAT22x"), root_1);
+				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT22x.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format22x"
+
+
+	public static class insn_format23x_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format23x"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1013:1: insn_format23x : INSTRUCTION_FORMAT23x REGISTER COMMA REGISTER COMMA REGISTER -> ^( I_STATEMENT_FORMAT23x[$start, \"I_STATEMENT_FORMAT23x\"] INSTRUCTION_FORMAT23x REGISTER REGISTER REGISTER ) ;
+	public final smaliParser.insn_format23x_return insn_format23x() throws RecognitionException {
+		smaliParser.insn_format23x_return retval = new smaliParser.insn_format23x_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT23x405=null;
+		Token REGISTER406=null;
+		Token COMMA407=null;
+		Token REGISTER408=null;
+		Token COMMA409=null;
+		Token REGISTER410=null;
+
+		CommonTree INSTRUCTION_FORMAT23x405_tree=null;
+		CommonTree REGISTER406_tree=null;
+		CommonTree COMMA407_tree=null;
+		CommonTree REGISTER408_tree=null;
+		CommonTree COMMA409_tree=null;
+		CommonTree REGISTER410_tree=null;
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT23x=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT23x");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1014:3: ( INSTRUCTION_FORMAT23x REGISTER COMMA REGISTER COMMA REGISTER -> ^( I_STATEMENT_FORMAT23x[$start, \"I_STATEMENT_FORMAT23x\"] INSTRUCTION_FORMAT23x REGISTER REGISTER REGISTER ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1015:5: INSTRUCTION_FORMAT23x REGISTER COMMA REGISTER COMMA REGISTER
+			{
+			INSTRUCTION_FORMAT23x405=(Token)match(input,INSTRUCTION_FORMAT23x,FOLLOW_INSTRUCTION_FORMAT23x_in_insn_format23x5139);
+			stream_INSTRUCTION_FORMAT23x.add(INSTRUCTION_FORMAT23x405);
+
+			REGISTER406=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format23x5141);
+			stream_REGISTER.add(REGISTER406);
+
+			COMMA407=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format23x5143);
+			stream_COMMA.add(COMMA407);
+
+			REGISTER408=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format23x5145);
+			stream_REGISTER.add(REGISTER408);
+
+			COMMA409=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format23x5147);
+			stream_COMMA.add(COMMA409);
+
+			REGISTER410=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format23x5149);
+			stream_REGISTER.add(REGISTER410);
+
+			// AST REWRITE
+			// elements: REGISTER, INSTRUCTION_FORMAT23x, REGISTER, REGISTER
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 1016:5: -> ^( I_STATEMENT_FORMAT23x[$start, \"I_STATEMENT_FORMAT23x\"] INSTRUCTION_FORMAT23x REGISTER REGISTER REGISTER )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1016:8: ^( I_STATEMENT_FORMAT23x[$start, \"I_STATEMENT_FORMAT23x\"] INSTRUCTION_FORMAT23x REGISTER REGISTER REGISTER )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT23x, (retval.start), "I_STATEMENT_FORMAT23x"), root_1);
+				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT23x.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format23x"
+
+
+	public static class insn_format25x_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format25x"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1018:1: insn_format25x : INSTRUCTION_FORMAT25x REGISTER COMMA OPEN_BRACE register_list CLOSE_BRACE -> ^( I_STATEMENT_FORMAT25x[$start, \"I_STATEMENT_FORMAT25x\"] INSTRUCTION_FORMAT25x REGISTER register_list ) ;
+	public final smaliParser.insn_format25x_return insn_format25x() throws RecognitionException {
+		smaliParser.insn_format25x_return retval = new smaliParser.insn_format25x_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT25x411=null;
+		Token REGISTER412=null;
+		Token COMMA413=null;
+		Token OPEN_BRACE414=null;
+		Token CLOSE_BRACE416=null;
+		ParserRuleReturnScope register_list415 =null;
+
+		CommonTree INSTRUCTION_FORMAT25x411_tree=null;
+		CommonTree REGISTER412_tree=null;
+		CommonTree COMMA413_tree=null;
+		CommonTree OPEN_BRACE414_tree=null;
+		CommonTree CLOSE_BRACE416_tree=null;
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT25x=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT25x");
+		RewriteRuleTokenStream stream_CLOSE_BRACE=new RewriteRuleTokenStream(adaptor,"token CLOSE_BRACE");
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+		RewriteRuleTokenStream stream_OPEN_BRACE=new RewriteRuleTokenStream(adaptor,"token OPEN_BRACE");
+		RewriteRuleSubtreeStream stream_register_list=new RewriteRuleSubtreeStream(adaptor,"rule register_list");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1019:3: ( INSTRUCTION_FORMAT25x REGISTER COMMA OPEN_BRACE register_list CLOSE_BRACE -> ^( I_STATEMENT_FORMAT25x[$start, \"I_STATEMENT_FORMAT25x\"] INSTRUCTION_FORMAT25x REGISTER register_list ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1020:5: INSTRUCTION_FORMAT25x REGISTER COMMA OPEN_BRACE register_list CLOSE_BRACE
+			{
+			INSTRUCTION_FORMAT25x411=(Token)match(input,INSTRUCTION_FORMAT25x,FOLLOW_INSTRUCTION_FORMAT25x_in_insn_format25x5183);
+			stream_INSTRUCTION_FORMAT25x.add(INSTRUCTION_FORMAT25x411);
+
+			REGISTER412=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format25x5185);
+			stream_REGISTER.add(REGISTER412);
+
+			COMMA413=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format25x5187);
+			stream_COMMA.add(COMMA413);
+
+			OPEN_BRACE414=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format25x5189);
+			stream_OPEN_BRACE.add(OPEN_BRACE414);
+
+			pushFollow(FOLLOW_register_list_in_insn_format25x5191);
+			register_list415=register_list();
+			state._fsp--;
+
+			stream_register_list.add(register_list415.getTree());
+			CLOSE_BRACE416=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format25x5193);
+			stream_CLOSE_BRACE.add(CLOSE_BRACE416);
+
+			// AST REWRITE
+			// elements: REGISTER, INSTRUCTION_FORMAT25x, register_list
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 1021:5: -> ^( I_STATEMENT_FORMAT25x[$start, \"I_STATEMENT_FORMAT25x\"] INSTRUCTION_FORMAT25x REGISTER register_list )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1021:8: ^( I_STATEMENT_FORMAT25x[$start, \"I_STATEMENT_FORMAT25x\"] INSTRUCTION_FORMAT25x REGISTER register_list )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT25x, (retval.start), "I_STATEMENT_FORMAT25x"), root_1);
+				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT25x.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_register_list.nextTree());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format25x"
+
+
+	public static class insn_format30t_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format30t"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1023:1: insn_format30t : INSTRUCTION_FORMAT30t label_ref -> ^( I_STATEMENT_FORMAT30t[$start, \"I_STATEMENT_FORMAT30t\"] INSTRUCTION_FORMAT30t label_ref ) ;
+	public final smaliParser.insn_format30t_return insn_format30t() throws RecognitionException {
+		smaliParser.insn_format30t_return retval = new smaliParser.insn_format30t_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT30t417=null;
+		ParserRuleReturnScope label_ref418 =null;
+
+		CommonTree INSTRUCTION_FORMAT30t417_tree=null;
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT30t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT30t");
+		RewriteRuleSubtreeStream stream_label_ref=new RewriteRuleSubtreeStream(adaptor,"rule label_ref");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1024:3: ( INSTRUCTION_FORMAT30t label_ref -> ^( I_STATEMENT_FORMAT30t[$start, \"I_STATEMENT_FORMAT30t\"] INSTRUCTION_FORMAT30t label_ref ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1025:5: INSTRUCTION_FORMAT30t label_ref
+			{
+			INSTRUCTION_FORMAT30t417=(Token)match(input,INSTRUCTION_FORMAT30t,FOLLOW_INSTRUCTION_FORMAT30t_in_insn_format30t5225);
+			stream_INSTRUCTION_FORMAT30t.add(INSTRUCTION_FORMAT30t417);
+
+			pushFollow(FOLLOW_label_ref_in_insn_format30t5227);
+			label_ref418=label_ref();
+			state._fsp--;
+
+			stream_label_ref.add(label_ref418.getTree());
+			// AST REWRITE
+			// elements: label_ref, INSTRUCTION_FORMAT30t
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 1026:5: -> ^( I_STATEMENT_FORMAT30t[$start, \"I_STATEMENT_FORMAT30t\"] INSTRUCTION_FORMAT30t label_ref )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1026:8: ^( I_STATEMENT_FORMAT30t[$start, \"I_STATEMENT_FORMAT30t\"] INSTRUCTION_FORMAT30t label_ref )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT30t, (retval.start), "I_STATEMENT_FORMAT30t"), root_1);
+				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT30t.nextNode());
+				adaptor.addChild(root_1, stream_label_ref.nextTree());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format30t"
+
+
+	public static class insn_format31c_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format31c"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1028:1: insn_format31c : INSTRUCTION_FORMAT31c REGISTER COMMA STRING_LITERAL -> ^( I_STATEMENT_FORMAT31c[$start, \"I_STATEMENT_FORMAT31c\"] INSTRUCTION_FORMAT31c REGISTER STRING_LITERAL ) ;
+	public final smaliParser.insn_format31c_return insn_format31c() throws RecognitionException {
+		smaliParser.insn_format31c_return retval = new smaliParser.insn_format31c_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT31c419=null;
+		Token REGISTER420=null;
+		Token COMMA421=null;
+		Token STRING_LITERAL422=null;
+
+		CommonTree INSTRUCTION_FORMAT31c419_tree=null;
+		CommonTree REGISTER420_tree=null;
+		CommonTree COMMA421_tree=null;
+		CommonTree STRING_LITERAL422_tree=null;
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT31c=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT31c");
+		RewriteRuleTokenStream stream_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token STRING_LITERAL");
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1029:3: ( INSTRUCTION_FORMAT31c REGISTER COMMA STRING_LITERAL -> ^( I_STATEMENT_FORMAT31c[$start, \"I_STATEMENT_FORMAT31c\"] INSTRUCTION_FORMAT31c REGISTER STRING_LITERAL ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1030:5: INSTRUCTION_FORMAT31c REGISTER COMMA STRING_LITERAL
+			{
+			INSTRUCTION_FORMAT31c419=(Token)match(input,INSTRUCTION_FORMAT31c,FOLLOW_INSTRUCTION_FORMAT31c_in_insn_format31c5257);
+			stream_INSTRUCTION_FORMAT31c.add(INSTRUCTION_FORMAT31c419);
+
+			REGISTER420=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format31c5259);
+			stream_REGISTER.add(REGISTER420);
+
+			COMMA421=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format31c5261);
+			stream_COMMA.add(COMMA421);
+
+			STRING_LITERAL422=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_insn_format31c5263);
+			stream_STRING_LITERAL.add(STRING_LITERAL422);
+
+			// AST REWRITE
+			// elements: STRING_LITERAL, INSTRUCTION_FORMAT31c, REGISTER
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 1031:5: -> ^( I_STATEMENT_FORMAT31c[$start, \"I_STATEMENT_FORMAT31c\"] INSTRUCTION_FORMAT31c REGISTER STRING_LITERAL )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1031:7: ^( I_STATEMENT_FORMAT31c[$start, \"I_STATEMENT_FORMAT31c\"] INSTRUCTION_FORMAT31c REGISTER STRING_LITERAL )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT31c, (retval.start), "I_STATEMENT_FORMAT31c"), root_1);
+				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT31c.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format31c"
+
+
+	public static class insn_format31i_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format31i"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1033:1: insn_format31i : instruction_format31i REGISTER COMMA fixed_32bit_literal -> ^( I_STATEMENT_FORMAT31i[$start, \"I_STATEMENT_FORMAT31i\"] instruction_format31i REGISTER fixed_32bit_literal ) ;
+	public final smaliParser.insn_format31i_return insn_format31i() throws RecognitionException {
+		smaliParser.insn_format31i_return retval = new smaliParser.insn_format31i_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token REGISTER424=null;
+		Token COMMA425=null;
+		ParserRuleReturnScope instruction_format31i423 =null;
+		ParserRuleReturnScope fixed_32bit_literal426 =null;
+
+		CommonTree REGISTER424_tree=null;
+		CommonTree COMMA425_tree=null;
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+		RewriteRuleSubtreeStream stream_instruction_format31i=new RewriteRuleSubtreeStream(adaptor,"rule instruction_format31i");
+		RewriteRuleSubtreeStream stream_fixed_32bit_literal=new RewriteRuleSubtreeStream(adaptor,"rule fixed_32bit_literal");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1034:3: ( instruction_format31i REGISTER COMMA fixed_32bit_literal -> ^( I_STATEMENT_FORMAT31i[$start, \"I_STATEMENT_FORMAT31i\"] instruction_format31i REGISTER fixed_32bit_literal ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1035:5: instruction_format31i REGISTER COMMA fixed_32bit_literal
+			{
+			pushFollow(FOLLOW_instruction_format31i_in_insn_format31i5294);
+			instruction_format31i423=instruction_format31i();
+			state._fsp--;
+
+			stream_instruction_format31i.add(instruction_format31i423.getTree());
+			REGISTER424=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format31i5296);
+			stream_REGISTER.add(REGISTER424);
+
+			COMMA425=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format31i5298);
+			stream_COMMA.add(COMMA425);
+
+			pushFollow(FOLLOW_fixed_32bit_literal_in_insn_format31i5300);
+			fixed_32bit_literal426=fixed_32bit_literal();
+			state._fsp--;
+
+			stream_fixed_32bit_literal.add(fixed_32bit_literal426.getTree());
+			// AST REWRITE
+			// elements: instruction_format31i, REGISTER, fixed_32bit_literal
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 1036:5: -> ^( I_STATEMENT_FORMAT31i[$start, \"I_STATEMENT_FORMAT31i\"] instruction_format31i REGISTER fixed_32bit_literal )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1036:8: ^( I_STATEMENT_FORMAT31i[$start, \"I_STATEMENT_FORMAT31i\"] instruction_format31i REGISTER fixed_32bit_literal )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT31i, (retval.start), "I_STATEMENT_FORMAT31i"), root_1);
+				adaptor.addChild(root_1, stream_instruction_format31i.nextTree());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_fixed_32bit_literal.nextTree());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format31i"
+
+
+	public static class insn_format31t_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format31t"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1038:1: insn_format31t : INSTRUCTION_FORMAT31t REGISTER COMMA label_ref -> ^( I_STATEMENT_FORMAT31t[$start, \"I_STATEMENT_FORMAT31t\"] INSTRUCTION_FORMAT31t REGISTER label_ref ) ;
+	public final smaliParser.insn_format31t_return insn_format31t() throws RecognitionException {
+		smaliParser.insn_format31t_return retval = new smaliParser.insn_format31t_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT31t427=null;
+		Token REGISTER428=null;
+		Token COMMA429=null;
+		ParserRuleReturnScope label_ref430 =null;
+
+		CommonTree INSTRUCTION_FORMAT31t427_tree=null;
+		CommonTree REGISTER428_tree=null;
+		CommonTree COMMA429_tree=null;
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT31t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT31t");
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+		RewriteRuleSubtreeStream stream_label_ref=new RewriteRuleSubtreeStream(adaptor,"rule label_ref");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1039:3: ( INSTRUCTION_FORMAT31t REGISTER COMMA label_ref -> ^( I_STATEMENT_FORMAT31t[$start, \"I_STATEMENT_FORMAT31t\"] INSTRUCTION_FORMAT31t REGISTER label_ref ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1040:5: INSTRUCTION_FORMAT31t REGISTER COMMA label_ref
+			{
+			INSTRUCTION_FORMAT31t427=(Token)match(input,INSTRUCTION_FORMAT31t,FOLLOW_INSTRUCTION_FORMAT31t_in_insn_format31t5332);
+			stream_INSTRUCTION_FORMAT31t.add(INSTRUCTION_FORMAT31t427);
+
+			REGISTER428=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format31t5334);
+			stream_REGISTER.add(REGISTER428);
+
+			COMMA429=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format31t5336);
+			stream_COMMA.add(COMMA429);
+
+			pushFollow(FOLLOW_label_ref_in_insn_format31t5338);
+			label_ref430=label_ref();
+			state._fsp--;
+
+			stream_label_ref.add(label_ref430.getTree());
+			// AST REWRITE
+			// elements: REGISTER, label_ref, INSTRUCTION_FORMAT31t
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 1041:5: -> ^( I_STATEMENT_FORMAT31t[$start, \"I_STATEMENT_FORMAT31t\"] INSTRUCTION_FORMAT31t REGISTER label_ref )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1041:8: ^( I_STATEMENT_FORMAT31t[$start, \"I_STATEMENT_FORMAT31t\"] INSTRUCTION_FORMAT31t REGISTER label_ref )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT31t, (retval.start), "I_STATEMENT_FORMAT31t"), root_1);
+				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT31t.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_label_ref.nextTree());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format31t"
+
+
+	public static class insn_format32x_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format32x"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1043:1: insn_format32x : INSTRUCTION_FORMAT32x REGISTER COMMA REGISTER -> ^( I_STATEMENT_FORMAT32x[$start, \"I_STATEMENT_FORMAT32x\"] INSTRUCTION_FORMAT32x REGISTER REGISTER ) ;
+	public final smaliParser.insn_format32x_return insn_format32x() throws RecognitionException {
+		smaliParser.insn_format32x_return retval = new smaliParser.insn_format32x_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT32x431=null;
+		Token REGISTER432=null;
+		Token COMMA433=null;
+		Token REGISTER434=null;
+
+		CommonTree INSTRUCTION_FORMAT32x431_tree=null;
+		CommonTree REGISTER432_tree=null;
+		CommonTree COMMA433_tree=null;
+		CommonTree REGISTER434_tree=null;
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT32x=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT32x");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1044:3: ( INSTRUCTION_FORMAT32x REGISTER COMMA REGISTER -> ^( I_STATEMENT_FORMAT32x[$start, \"I_STATEMENT_FORMAT32x\"] INSTRUCTION_FORMAT32x REGISTER REGISTER ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1045:5: INSTRUCTION_FORMAT32x REGISTER COMMA REGISTER
+			{
+			INSTRUCTION_FORMAT32x431=(Token)match(input,INSTRUCTION_FORMAT32x,FOLLOW_INSTRUCTION_FORMAT32x_in_insn_format32x5370);
+			stream_INSTRUCTION_FORMAT32x.add(INSTRUCTION_FORMAT32x431);
+
+			REGISTER432=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format32x5372);
+			stream_REGISTER.add(REGISTER432);
+
+			COMMA433=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format32x5374);
+			stream_COMMA.add(COMMA433);
+
+			REGISTER434=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format32x5376);
+			stream_REGISTER.add(REGISTER434);
+
+			// AST REWRITE
+			// elements: INSTRUCTION_FORMAT32x, REGISTER, REGISTER
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 1046:5: -> ^( I_STATEMENT_FORMAT32x[$start, \"I_STATEMENT_FORMAT32x\"] INSTRUCTION_FORMAT32x REGISTER REGISTER )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1046:8: ^( I_STATEMENT_FORMAT32x[$start, \"I_STATEMENT_FORMAT32x\"] INSTRUCTION_FORMAT32x REGISTER REGISTER )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT32x, (retval.start), "I_STATEMENT_FORMAT32x"), root_1);
+				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT32x.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format32x"
+
+
+	public static class insn_format35c_method_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format35c_method"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1048:1: insn_format35c_method : INSTRUCTION_FORMAT35c_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA method_reference -> ^( I_STATEMENT_FORMAT35c_METHOD[$start, \"I_STATEMENT_FORMAT35c_METHOD\"] INSTRUCTION_FORMAT35c_METHOD register_list method_reference ) ;
+	public final smaliParser.insn_format35c_method_return insn_format35c_method() throws RecognitionException {
+		smaliParser.insn_format35c_method_return retval = new smaliParser.insn_format35c_method_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT35c_METHOD435=null;
+		Token OPEN_BRACE436=null;
+		Token CLOSE_BRACE438=null;
+		Token COMMA439=null;
+		ParserRuleReturnScope register_list437 =null;
+		ParserRuleReturnScope method_reference440 =null;
+
+		CommonTree INSTRUCTION_FORMAT35c_METHOD435_tree=null;
+		CommonTree OPEN_BRACE436_tree=null;
+		CommonTree CLOSE_BRACE438_tree=null;
+		CommonTree COMMA439_tree=null;
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35c_METHOD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT35c_METHOD");
+		RewriteRuleTokenStream stream_CLOSE_BRACE=new RewriteRuleTokenStream(adaptor,"token CLOSE_BRACE");
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_OPEN_BRACE=new RewriteRuleTokenStream(adaptor,"token OPEN_BRACE");
+		RewriteRuleSubtreeStream stream_register_list=new RewriteRuleSubtreeStream(adaptor,"rule register_list");
+		RewriteRuleSubtreeStream stream_method_reference=new RewriteRuleSubtreeStream(adaptor,"rule method_reference");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1049:3: ( INSTRUCTION_FORMAT35c_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA method_reference -> ^( I_STATEMENT_FORMAT35c_METHOD[$start, \"I_STATEMENT_FORMAT35c_METHOD\"] INSTRUCTION_FORMAT35c_METHOD register_list method_reference ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1050:5: INSTRUCTION_FORMAT35c_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA method_reference
+			{
+			INSTRUCTION_FORMAT35c_METHOD435=(Token)match(input,INSTRUCTION_FORMAT35c_METHOD,FOLLOW_INSTRUCTION_FORMAT35c_METHOD_in_insn_format35c_method5408);
+			stream_INSTRUCTION_FORMAT35c_METHOD.add(INSTRUCTION_FORMAT35c_METHOD435);
+
+			OPEN_BRACE436=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format35c_method5410);
+			stream_OPEN_BRACE.add(OPEN_BRACE436);
+
+			pushFollow(FOLLOW_register_list_in_insn_format35c_method5412);
+			register_list437=register_list();
+			state._fsp--;
+
+			stream_register_list.add(register_list437.getTree());
+			CLOSE_BRACE438=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format35c_method5414);
+			stream_CLOSE_BRACE.add(CLOSE_BRACE438);
+
+			COMMA439=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format35c_method5416);
+			stream_COMMA.add(COMMA439);
+
+			pushFollow(FOLLOW_method_reference_in_insn_format35c_method5418);
+			method_reference440=method_reference();
+			state._fsp--;
+
+			stream_method_reference.add(method_reference440.getTree());
+			// AST REWRITE
+			// elements: INSTRUCTION_FORMAT35c_METHOD, method_reference, register_list
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 1051:5: -> ^( I_STATEMENT_FORMAT35c_METHOD[$start, \"I_STATEMENT_FORMAT35c_METHOD\"] INSTRUCTION_FORMAT35c_METHOD register_list method_reference )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1051:8: ^( I_STATEMENT_FORMAT35c_METHOD[$start, \"I_STATEMENT_FORMAT35c_METHOD\"] INSTRUCTION_FORMAT35c_METHOD register_list method_reference )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT35c_METHOD, (retval.start), "I_STATEMENT_FORMAT35c_METHOD"), root_1);
+				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT35c_METHOD.nextNode());
+				adaptor.addChild(root_1, stream_register_list.nextTree());
+				adaptor.addChild(root_1, stream_method_reference.nextTree());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format35c_method"
+
+
+	public static class insn_format35c_type_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format35c_type"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1053:1: insn_format35c_type : INSTRUCTION_FORMAT35c_TYPE OPEN_BRACE register_list CLOSE_BRACE COMMA nonvoid_type_descriptor -> ^( I_STATEMENT_FORMAT35c_TYPE[$start, \"I_STATEMENT_FORMAT35c_TYPE\"] INSTRUCTION_FORMAT35c_TYPE register_list nonvoid_type_descriptor ) ;
+	public final smaliParser.insn_format35c_type_return insn_format35c_type() throws RecognitionException {
+		smaliParser.insn_format35c_type_return retval = new smaliParser.insn_format35c_type_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT35c_TYPE441=null;
+		Token OPEN_BRACE442=null;
+		Token CLOSE_BRACE444=null;
+		Token COMMA445=null;
+		ParserRuleReturnScope register_list443 =null;
+		ParserRuleReturnScope nonvoid_type_descriptor446 =null;
+
+		CommonTree INSTRUCTION_FORMAT35c_TYPE441_tree=null;
+		CommonTree OPEN_BRACE442_tree=null;
+		CommonTree CLOSE_BRACE444_tree=null;
+		CommonTree COMMA445_tree=null;
+		RewriteRuleTokenStream stream_CLOSE_BRACE=new RewriteRuleTokenStream(adaptor,"token CLOSE_BRACE");
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_OPEN_BRACE=new RewriteRuleTokenStream(adaptor,"token OPEN_BRACE");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35c_TYPE=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT35c_TYPE");
+		RewriteRuleSubtreeStream stream_nonvoid_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule nonvoid_type_descriptor");
+		RewriteRuleSubtreeStream stream_register_list=new RewriteRuleSubtreeStream(adaptor,"rule register_list");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1054:3: ( INSTRUCTION_FORMAT35c_TYPE OPEN_BRACE register_list CLOSE_BRACE COMMA nonvoid_type_descriptor -> ^( I_STATEMENT_FORMAT35c_TYPE[$start, \"I_STATEMENT_FORMAT35c_TYPE\"] INSTRUCTION_FORMAT35c_TYPE register_list nonvoid_type_descriptor ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1055:5: INSTRUCTION_FORMAT35c_TYPE OPEN_BRACE register_list CLOSE_BRACE COMMA nonvoid_type_descriptor
+			{
+			INSTRUCTION_FORMAT35c_TYPE441=(Token)match(input,INSTRUCTION_FORMAT35c_TYPE,FOLLOW_INSTRUCTION_FORMAT35c_TYPE_in_insn_format35c_type5450);
+			stream_INSTRUCTION_FORMAT35c_TYPE.add(INSTRUCTION_FORMAT35c_TYPE441);
+
+			OPEN_BRACE442=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format35c_type5452);
+			stream_OPEN_BRACE.add(OPEN_BRACE442);
+
+			pushFollow(FOLLOW_register_list_in_insn_format35c_type5454);
+			register_list443=register_list();
+			state._fsp--;
+
+			stream_register_list.add(register_list443.getTree());
+			CLOSE_BRACE444=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format35c_type5456);
+			stream_CLOSE_BRACE.add(CLOSE_BRACE444);
+
+			COMMA445=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format35c_type5458);
+			stream_COMMA.add(COMMA445);
+
+			pushFollow(FOLLOW_nonvoid_type_descriptor_in_insn_format35c_type5460);
+			nonvoid_type_descriptor446=nonvoid_type_descriptor();
+			state._fsp--;
+
+			stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor446.getTree());
+			// AST REWRITE
+			// elements: nonvoid_type_descriptor, register_list, INSTRUCTION_FORMAT35c_TYPE
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 1056:5: -> ^( I_STATEMENT_FORMAT35c_TYPE[$start, \"I_STATEMENT_FORMAT35c_TYPE\"] INSTRUCTION_FORMAT35c_TYPE register_list nonvoid_type_descriptor )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1056:8: ^( I_STATEMENT_FORMAT35c_TYPE[$start, \"I_STATEMENT_FORMAT35c_TYPE\"] INSTRUCTION_FORMAT35c_TYPE register_list nonvoid_type_descriptor )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT35c_TYPE, (retval.start), "I_STATEMENT_FORMAT35c_TYPE"), root_1);
+				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT35c_TYPE.nextNode());
+				adaptor.addChild(root_1, stream_register_list.nextTree());
+				adaptor.addChild(root_1, stream_nonvoid_type_descriptor.nextTree());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format35c_type"
+
+
+	public static class insn_format35c_method_odex_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format35c_method_odex"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1058:1: insn_format35c_method_odex : INSTRUCTION_FORMAT35c_METHOD_ODEX OPEN_BRACE register_list CLOSE_BRACE COMMA method_reference ;
+	public final smaliParser.insn_format35c_method_odex_return insn_format35c_method_odex() throws RecognitionException {
+		smaliParser.insn_format35c_method_odex_return retval = new smaliParser.insn_format35c_method_odex_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT35c_METHOD_ODEX447=null;
+		Token OPEN_BRACE448=null;
+		Token CLOSE_BRACE450=null;
+		Token COMMA451=null;
+		ParserRuleReturnScope register_list449 =null;
+		ParserRuleReturnScope method_reference452 =null;
+
+		CommonTree INSTRUCTION_FORMAT35c_METHOD_ODEX447_tree=null;
+		CommonTree OPEN_BRACE448_tree=null;
+		CommonTree CLOSE_BRACE450_tree=null;
+		CommonTree COMMA451_tree=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1059:3: ( INSTRUCTION_FORMAT35c_METHOD_ODEX OPEN_BRACE register_list CLOSE_BRACE COMMA method_reference )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1060:5: INSTRUCTION_FORMAT35c_METHOD_ODEX OPEN_BRACE register_list CLOSE_BRACE COMMA method_reference
+			{
+			root_0 = (CommonTree)adaptor.nil();
+
+
+			INSTRUCTION_FORMAT35c_METHOD_ODEX447=(Token)match(input,INSTRUCTION_FORMAT35c_METHOD_ODEX,FOLLOW_INSTRUCTION_FORMAT35c_METHOD_ODEX_in_insn_format35c_method_odex5492);
+			INSTRUCTION_FORMAT35c_METHOD_ODEX447_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT35c_METHOD_ODEX447);
+			adaptor.addChild(root_0, INSTRUCTION_FORMAT35c_METHOD_ODEX447_tree);
+
+			OPEN_BRACE448=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format35c_method_odex5494);
+			OPEN_BRACE448_tree = (CommonTree)adaptor.create(OPEN_BRACE448);
+			adaptor.addChild(root_0, OPEN_BRACE448_tree);
+
+			pushFollow(FOLLOW_register_list_in_insn_format35c_method_odex5496);
+			register_list449=register_list();
+			state._fsp--;
+
+			adaptor.addChild(root_0, register_list449.getTree());
+
+			CLOSE_BRACE450=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format35c_method_odex5498);
+			CLOSE_BRACE450_tree = (CommonTree)adaptor.create(CLOSE_BRACE450);
+			adaptor.addChild(root_0, CLOSE_BRACE450_tree);
+
+			COMMA451=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format35c_method_odex5500);
+			COMMA451_tree = (CommonTree)adaptor.create(COMMA451);
+			adaptor.addChild(root_0, COMMA451_tree);
+
+			pushFollow(FOLLOW_method_reference_in_insn_format35c_method_odex5502);
+			method_reference452=method_reference();
+			state._fsp--;
+
+			adaptor.addChild(root_0, method_reference452.getTree());
+
+
+			      throwOdexedInstructionException(input, (INSTRUCTION_FORMAT35c_METHOD_ODEX447!=null?INSTRUCTION_FORMAT35c_METHOD_ODEX447.getText():null));
+			
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format35c_method_odex"
+
+
+	public static class insn_format35mi_method_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format35mi_method"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1065:1: insn_format35mi_method : INSTRUCTION_FORMAT35mi_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA INLINE_INDEX ;
+	public final smaliParser.insn_format35mi_method_return insn_format35mi_method() throws RecognitionException {
+		smaliParser.insn_format35mi_method_return retval = new smaliParser.insn_format35mi_method_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT35mi_METHOD453=null;
+		Token OPEN_BRACE454=null;
+		Token CLOSE_BRACE456=null;
+		Token COMMA457=null;
+		Token INLINE_INDEX458=null;
+		ParserRuleReturnScope register_list455 =null;
+
+		CommonTree INSTRUCTION_FORMAT35mi_METHOD453_tree=null;
+		CommonTree OPEN_BRACE454_tree=null;
+		CommonTree CLOSE_BRACE456_tree=null;
+		CommonTree COMMA457_tree=null;
+		CommonTree INLINE_INDEX458_tree=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1066:3: ( INSTRUCTION_FORMAT35mi_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA INLINE_INDEX )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1067:5: INSTRUCTION_FORMAT35mi_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA INLINE_INDEX
+			{
+			root_0 = (CommonTree)adaptor.nil();
+
+
+			INSTRUCTION_FORMAT35mi_METHOD453=(Token)match(input,INSTRUCTION_FORMAT35mi_METHOD,FOLLOW_INSTRUCTION_FORMAT35mi_METHOD_in_insn_format35mi_method5523);
+			INSTRUCTION_FORMAT35mi_METHOD453_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT35mi_METHOD453);
+			adaptor.addChild(root_0, INSTRUCTION_FORMAT35mi_METHOD453_tree);
+
+			OPEN_BRACE454=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format35mi_method5525);
+			OPEN_BRACE454_tree = (CommonTree)adaptor.create(OPEN_BRACE454);
+			adaptor.addChild(root_0, OPEN_BRACE454_tree);
+
+			pushFollow(FOLLOW_register_list_in_insn_format35mi_method5527);
+			register_list455=register_list();
+			state._fsp--;
+
+			adaptor.addChild(root_0, register_list455.getTree());
+
+			CLOSE_BRACE456=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format35mi_method5529);
+			CLOSE_BRACE456_tree = (CommonTree)adaptor.create(CLOSE_BRACE456);
+			adaptor.addChild(root_0, CLOSE_BRACE456_tree);
+
+			COMMA457=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format35mi_method5531);
+			COMMA457_tree = (CommonTree)adaptor.create(COMMA457);
+			adaptor.addChild(root_0, COMMA457_tree);
+
+			INLINE_INDEX458=(Token)match(input,INLINE_INDEX,FOLLOW_INLINE_INDEX_in_insn_format35mi_method5533);
+			INLINE_INDEX458_tree = (CommonTree)adaptor.create(INLINE_INDEX458);
+			adaptor.addChild(root_0, INLINE_INDEX458_tree);
+
+
+			      throwOdexedInstructionException(input, (INSTRUCTION_FORMAT35mi_METHOD453!=null?INSTRUCTION_FORMAT35mi_METHOD453.getText():null));
+			
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format35mi_method"
+
+
+	public static class insn_format35ms_method_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format35ms_method"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1072:1: insn_format35ms_method : INSTRUCTION_FORMAT35ms_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA VTABLE_INDEX ;
+	public final smaliParser.insn_format35ms_method_return insn_format35ms_method() throws RecognitionException {
+		smaliParser.insn_format35ms_method_return retval = new smaliParser.insn_format35ms_method_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT35ms_METHOD459=null;
+		Token OPEN_BRACE460=null;
+		Token CLOSE_BRACE462=null;
+		Token COMMA463=null;
+		Token VTABLE_INDEX464=null;
+		ParserRuleReturnScope register_list461 =null;
+
+		CommonTree INSTRUCTION_FORMAT35ms_METHOD459_tree=null;
+		CommonTree OPEN_BRACE460_tree=null;
+		CommonTree CLOSE_BRACE462_tree=null;
+		CommonTree COMMA463_tree=null;
+		CommonTree VTABLE_INDEX464_tree=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1073:3: ( INSTRUCTION_FORMAT35ms_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA VTABLE_INDEX )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1074:5: INSTRUCTION_FORMAT35ms_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA VTABLE_INDEX
+			{
+			root_0 = (CommonTree)adaptor.nil();
+
+
+			INSTRUCTION_FORMAT35ms_METHOD459=(Token)match(input,INSTRUCTION_FORMAT35ms_METHOD,FOLLOW_INSTRUCTION_FORMAT35ms_METHOD_in_insn_format35ms_method5554);
+			INSTRUCTION_FORMAT35ms_METHOD459_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT35ms_METHOD459);
+			adaptor.addChild(root_0, INSTRUCTION_FORMAT35ms_METHOD459_tree);
+
+			OPEN_BRACE460=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format35ms_method5556);
+			OPEN_BRACE460_tree = (CommonTree)adaptor.create(OPEN_BRACE460);
+			adaptor.addChild(root_0, OPEN_BRACE460_tree);
+
+			pushFollow(FOLLOW_register_list_in_insn_format35ms_method5558);
+			register_list461=register_list();
+			state._fsp--;
+
+			adaptor.addChild(root_0, register_list461.getTree());
+
+			CLOSE_BRACE462=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format35ms_method5560);
+			CLOSE_BRACE462_tree = (CommonTree)adaptor.create(CLOSE_BRACE462);
+			adaptor.addChild(root_0, CLOSE_BRACE462_tree);
+
+			COMMA463=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format35ms_method5562);
+			COMMA463_tree = (CommonTree)adaptor.create(COMMA463);
+			adaptor.addChild(root_0, COMMA463_tree);
+
+			VTABLE_INDEX464=(Token)match(input,VTABLE_INDEX,FOLLOW_VTABLE_INDEX_in_insn_format35ms_method5564);
+			VTABLE_INDEX464_tree = (CommonTree)adaptor.create(VTABLE_INDEX464);
+			adaptor.addChild(root_0, VTABLE_INDEX464_tree);
+
+
+			      throwOdexedInstructionException(input, (INSTRUCTION_FORMAT35ms_METHOD459!=null?INSTRUCTION_FORMAT35ms_METHOD459.getText():null));
+			
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format35ms_method"
+
+
+	public static class insn_format3rc_method_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format3rc_method"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1079:1: insn_format3rc_method : INSTRUCTION_FORMAT3rc_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA method_reference -> ^( I_STATEMENT_FORMAT3rc_METHOD[$start, \"I_STATEMENT_FORMAT3rc_METHOD\"] INSTRUCTION_FORMAT3rc_METHOD register_range method_reference ) ;
+	public final smaliParser.insn_format3rc_method_return insn_format3rc_method() throws RecognitionException {
+		smaliParser.insn_format3rc_method_return retval = new smaliParser.insn_format3rc_method_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT3rc_METHOD465=null;
+		Token OPEN_BRACE466=null;
+		Token CLOSE_BRACE468=null;
+		Token COMMA469=null;
+		ParserRuleReturnScope register_range467 =null;
+		ParserRuleReturnScope method_reference470 =null;
+
+		CommonTree INSTRUCTION_FORMAT3rc_METHOD465_tree=null;
+		CommonTree OPEN_BRACE466_tree=null;
+		CommonTree CLOSE_BRACE468_tree=null;
+		CommonTree COMMA469_tree=null;
+		RewriteRuleTokenStream stream_CLOSE_BRACE=new RewriteRuleTokenStream(adaptor,"token CLOSE_BRACE");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT3rc_METHOD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT3rc_METHOD");
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_OPEN_BRACE=new RewriteRuleTokenStream(adaptor,"token OPEN_BRACE");
+		RewriteRuleSubtreeStream stream_method_reference=new RewriteRuleSubtreeStream(adaptor,"rule method_reference");
+		RewriteRuleSubtreeStream stream_register_range=new RewriteRuleSubtreeStream(adaptor,"rule register_range");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1080:3: ( INSTRUCTION_FORMAT3rc_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA method_reference -> ^( I_STATEMENT_FORMAT3rc_METHOD[$start, \"I_STATEMENT_FORMAT3rc_METHOD\"] INSTRUCTION_FORMAT3rc_METHOD register_range method_reference ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1081:5: INSTRUCTION_FORMAT3rc_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA method_reference
+			{
+			INSTRUCTION_FORMAT3rc_METHOD465=(Token)match(input,INSTRUCTION_FORMAT3rc_METHOD,FOLLOW_INSTRUCTION_FORMAT3rc_METHOD_in_insn_format3rc_method5585);
+			stream_INSTRUCTION_FORMAT3rc_METHOD.add(INSTRUCTION_FORMAT3rc_METHOD465);
+
+			OPEN_BRACE466=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format3rc_method5587);
+			stream_OPEN_BRACE.add(OPEN_BRACE466);
+
+			pushFollow(FOLLOW_register_range_in_insn_format3rc_method5589);
+			register_range467=register_range();
+			state._fsp--;
+
+			stream_register_range.add(register_range467.getTree());
+			CLOSE_BRACE468=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format3rc_method5591);
+			stream_CLOSE_BRACE.add(CLOSE_BRACE468);
+
+			COMMA469=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format3rc_method5593);
+			stream_COMMA.add(COMMA469);
+
+			pushFollow(FOLLOW_method_reference_in_insn_format3rc_method5595);
+			method_reference470=method_reference();
+			state._fsp--;
+
+			stream_method_reference.add(method_reference470.getTree());
+			// AST REWRITE
+			// elements: INSTRUCTION_FORMAT3rc_METHOD, method_reference, register_range
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 1082:5: -> ^( I_STATEMENT_FORMAT3rc_METHOD[$start, \"I_STATEMENT_FORMAT3rc_METHOD\"] INSTRUCTION_FORMAT3rc_METHOD register_range method_reference )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1082:8: ^( I_STATEMENT_FORMAT3rc_METHOD[$start, \"I_STATEMENT_FORMAT3rc_METHOD\"] INSTRUCTION_FORMAT3rc_METHOD register_range method_reference )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT3rc_METHOD, (retval.start), "I_STATEMENT_FORMAT3rc_METHOD"), root_1);
+				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT3rc_METHOD.nextNode());
+				adaptor.addChild(root_1, stream_register_range.nextTree());
+				adaptor.addChild(root_1, stream_method_reference.nextTree());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format3rc_method"
+
+
+	public static class insn_format3rc_method_odex_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format3rc_method_odex"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1084:1: insn_format3rc_method_odex : INSTRUCTION_FORMAT3rc_METHOD_ODEX OPEN_BRACE register_list CLOSE_BRACE COMMA method_reference ;
+	public final smaliParser.insn_format3rc_method_odex_return insn_format3rc_method_odex() throws RecognitionException {
+		smaliParser.insn_format3rc_method_odex_return retval = new smaliParser.insn_format3rc_method_odex_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT3rc_METHOD_ODEX471=null;
+		Token OPEN_BRACE472=null;
+		Token CLOSE_BRACE474=null;
+		Token COMMA475=null;
+		ParserRuleReturnScope register_list473 =null;
+		ParserRuleReturnScope method_reference476 =null;
+
+		CommonTree INSTRUCTION_FORMAT3rc_METHOD_ODEX471_tree=null;
+		CommonTree OPEN_BRACE472_tree=null;
+		CommonTree CLOSE_BRACE474_tree=null;
+		CommonTree COMMA475_tree=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1085:3: ( INSTRUCTION_FORMAT3rc_METHOD_ODEX OPEN_BRACE register_list CLOSE_BRACE COMMA method_reference )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1086:5: INSTRUCTION_FORMAT3rc_METHOD_ODEX OPEN_BRACE register_list CLOSE_BRACE COMMA method_reference
+			{
+			root_0 = (CommonTree)adaptor.nil();
+
+
+			INSTRUCTION_FORMAT3rc_METHOD_ODEX471=(Token)match(input,INSTRUCTION_FORMAT3rc_METHOD_ODEX,FOLLOW_INSTRUCTION_FORMAT3rc_METHOD_ODEX_in_insn_format3rc_method_odex5627);
+			INSTRUCTION_FORMAT3rc_METHOD_ODEX471_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT3rc_METHOD_ODEX471);
+			adaptor.addChild(root_0, INSTRUCTION_FORMAT3rc_METHOD_ODEX471_tree);
+
+			OPEN_BRACE472=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format3rc_method_odex5629);
+			OPEN_BRACE472_tree = (CommonTree)adaptor.create(OPEN_BRACE472);
+			adaptor.addChild(root_0, OPEN_BRACE472_tree);
+
+			pushFollow(FOLLOW_register_list_in_insn_format3rc_method_odex5631);
+			register_list473=register_list();
+			state._fsp--;
+
+			adaptor.addChild(root_0, register_list473.getTree());
+
+			CLOSE_BRACE474=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format3rc_method_odex5633);
+			CLOSE_BRACE474_tree = (CommonTree)adaptor.create(CLOSE_BRACE474);
+			adaptor.addChild(root_0, CLOSE_BRACE474_tree);
+
+			COMMA475=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format3rc_method_odex5635);
+			COMMA475_tree = (CommonTree)adaptor.create(COMMA475);
+			adaptor.addChild(root_0, COMMA475_tree);
+
+			pushFollow(FOLLOW_method_reference_in_insn_format3rc_method_odex5637);
+			method_reference476=method_reference();
+			state._fsp--;
+
+			adaptor.addChild(root_0, method_reference476.getTree());
+
+
+			      throwOdexedInstructionException(input, (INSTRUCTION_FORMAT3rc_METHOD_ODEX471!=null?INSTRUCTION_FORMAT3rc_METHOD_ODEX471.getText():null));
+			
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format3rc_method_odex"
+
+
+	public static class insn_format3rc_type_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format3rc_type"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1091:1: insn_format3rc_type : INSTRUCTION_FORMAT3rc_TYPE OPEN_BRACE register_range CLOSE_BRACE COMMA nonvoid_type_descriptor -> ^( I_STATEMENT_FORMAT3rc_TYPE[$start, \"I_STATEMENT_FORMAT3rc_TYPE\"] INSTRUCTION_FORMAT3rc_TYPE register_range nonvoid_type_descriptor ) ;
+	public final smaliParser.insn_format3rc_type_return insn_format3rc_type() throws RecognitionException {
+		smaliParser.insn_format3rc_type_return retval = new smaliParser.insn_format3rc_type_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT3rc_TYPE477=null;
+		Token OPEN_BRACE478=null;
+		Token CLOSE_BRACE480=null;
+		Token COMMA481=null;
+		ParserRuleReturnScope register_range479 =null;
+		ParserRuleReturnScope nonvoid_type_descriptor482 =null;
+
+		CommonTree INSTRUCTION_FORMAT3rc_TYPE477_tree=null;
+		CommonTree OPEN_BRACE478_tree=null;
+		CommonTree CLOSE_BRACE480_tree=null;
+		CommonTree COMMA481_tree=null;
+		RewriteRuleTokenStream stream_CLOSE_BRACE=new RewriteRuleTokenStream(adaptor,"token CLOSE_BRACE");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT3rc_TYPE=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT3rc_TYPE");
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_OPEN_BRACE=new RewriteRuleTokenStream(adaptor,"token OPEN_BRACE");
+		RewriteRuleSubtreeStream stream_nonvoid_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule nonvoid_type_descriptor");
+		RewriteRuleSubtreeStream stream_register_range=new RewriteRuleSubtreeStream(adaptor,"rule register_range");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1092:3: ( INSTRUCTION_FORMAT3rc_TYPE OPEN_BRACE register_range CLOSE_BRACE COMMA nonvoid_type_descriptor -> ^( I_STATEMENT_FORMAT3rc_TYPE[$start, \"I_STATEMENT_FORMAT3rc_TYPE\"] INSTRUCTION_FORMAT3rc_TYPE register_range nonvoid_type_descriptor ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1093:5: INSTRUCTION_FORMAT3rc_TYPE OPEN_BRACE register_range CLOSE_BRACE COMMA nonvoid_type_descriptor
+			{
+			INSTRUCTION_FORMAT3rc_TYPE477=(Token)match(input,INSTRUCTION_FORMAT3rc_TYPE,FOLLOW_INSTRUCTION_FORMAT3rc_TYPE_in_insn_format3rc_type5658);
+			stream_INSTRUCTION_FORMAT3rc_TYPE.add(INSTRUCTION_FORMAT3rc_TYPE477);
+
+			OPEN_BRACE478=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format3rc_type5660);
+			stream_OPEN_BRACE.add(OPEN_BRACE478);
+
+			pushFollow(FOLLOW_register_range_in_insn_format3rc_type5662);
+			register_range479=register_range();
+			state._fsp--;
+
+			stream_register_range.add(register_range479.getTree());
+			CLOSE_BRACE480=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format3rc_type5664);
+			stream_CLOSE_BRACE.add(CLOSE_BRACE480);
+
+			COMMA481=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format3rc_type5666);
+			stream_COMMA.add(COMMA481);
+
+			pushFollow(FOLLOW_nonvoid_type_descriptor_in_insn_format3rc_type5668);
+			nonvoid_type_descriptor482=nonvoid_type_descriptor();
+			state._fsp--;
+
+			stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor482.getTree());
+			// AST REWRITE
+			// elements: INSTRUCTION_FORMAT3rc_TYPE, nonvoid_type_descriptor, register_range
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 1094:5: -> ^( I_STATEMENT_FORMAT3rc_TYPE[$start, \"I_STATEMENT_FORMAT3rc_TYPE\"] INSTRUCTION_FORMAT3rc_TYPE register_range nonvoid_type_descriptor )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1094:8: ^( I_STATEMENT_FORMAT3rc_TYPE[$start, \"I_STATEMENT_FORMAT3rc_TYPE\"] INSTRUCTION_FORMAT3rc_TYPE register_range nonvoid_type_descriptor )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT3rc_TYPE, (retval.start), "I_STATEMENT_FORMAT3rc_TYPE"), root_1);
+				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT3rc_TYPE.nextNode());
+				adaptor.addChild(root_1, stream_register_range.nextTree());
+				adaptor.addChild(root_1, stream_nonvoid_type_descriptor.nextTree());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format3rc_type"
+
+
+	public static class insn_format3rmi_method_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format3rmi_method"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1096:1: insn_format3rmi_method : INSTRUCTION_FORMAT3rmi_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA INLINE_INDEX ;
+	public final smaliParser.insn_format3rmi_method_return insn_format3rmi_method() throws RecognitionException {
+		smaliParser.insn_format3rmi_method_return retval = new smaliParser.insn_format3rmi_method_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT3rmi_METHOD483=null;
+		Token OPEN_BRACE484=null;
+		Token CLOSE_BRACE486=null;
+		Token COMMA487=null;
+		Token INLINE_INDEX488=null;
+		ParserRuleReturnScope register_range485 =null;
+
+		CommonTree INSTRUCTION_FORMAT3rmi_METHOD483_tree=null;
+		CommonTree OPEN_BRACE484_tree=null;
+		CommonTree CLOSE_BRACE486_tree=null;
+		CommonTree COMMA487_tree=null;
+		CommonTree INLINE_INDEX488_tree=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1097:3: ( INSTRUCTION_FORMAT3rmi_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA INLINE_INDEX )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1098:5: INSTRUCTION_FORMAT3rmi_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA INLINE_INDEX
+			{
+			root_0 = (CommonTree)adaptor.nil();
+
+
+			INSTRUCTION_FORMAT3rmi_METHOD483=(Token)match(input,INSTRUCTION_FORMAT3rmi_METHOD,FOLLOW_INSTRUCTION_FORMAT3rmi_METHOD_in_insn_format3rmi_method5700);
+			INSTRUCTION_FORMAT3rmi_METHOD483_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT3rmi_METHOD483);
+			adaptor.addChild(root_0, INSTRUCTION_FORMAT3rmi_METHOD483_tree);
+
+			OPEN_BRACE484=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format3rmi_method5702);
+			OPEN_BRACE484_tree = (CommonTree)adaptor.create(OPEN_BRACE484);
+			adaptor.addChild(root_0, OPEN_BRACE484_tree);
+
+			pushFollow(FOLLOW_register_range_in_insn_format3rmi_method5704);
+			register_range485=register_range();
+			state._fsp--;
+
+			adaptor.addChild(root_0, register_range485.getTree());
+
+			CLOSE_BRACE486=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format3rmi_method5706);
+			CLOSE_BRACE486_tree = (CommonTree)adaptor.create(CLOSE_BRACE486);
+			adaptor.addChild(root_0, CLOSE_BRACE486_tree);
+
+			COMMA487=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format3rmi_method5708);
+			COMMA487_tree = (CommonTree)adaptor.create(COMMA487);
+			adaptor.addChild(root_0, COMMA487_tree);
+
+			INLINE_INDEX488=(Token)match(input,INLINE_INDEX,FOLLOW_INLINE_INDEX_in_insn_format3rmi_method5710);
+			INLINE_INDEX488_tree = (CommonTree)adaptor.create(INLINE_INDEX488);
+			adaptor.addChild(root_0, INLINE_INDEX488_tree);
+
+
+			      throwOdexedInstructionException(input, (INSTRUCTION_FORMAT3rmi_METHOD483!=null?INSTRUCTION_FORMAT3rmi_METHOD483.getText():null));
+			
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format3rmi_method"
+
+
+	public static class insn_format3rms_method_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format3rms_method"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1103:1: insn_format3rms_method : INSTRUCTION_FORMAT3rms_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA VTABLE_INDEX ;
+	public final smaliParser.insn_format3rms_method_return insn_format3rms_method() throws RecognitionException {
+		smaliParser.insn_format3rms_method_return retval = new smaliParser.insn_format3rms_method_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT3rms_METHOD489=null;
+		Token OPEN_BRACE490=null;
+		Token CLOSE_BRACE492=null;
+		Token COMMA493=null;
+		Token VTABLE_INDEX494=null;
+		ParserRuleReturnScope register_range491 =null;
+
+		CommonTree INSTRUCTION_FORMAT3rms_METHOD489_tree=null;
+		CommonTree OPEN_BRACE490_tree=null;
+		CommonTree CLOSE_BRACE492_tree=null;
+		CommonTree COMMA493_tree=null;
+		CommonTree VTABLE_INDEX494_tree=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1104:3: ( INSTRUCTION_FORMAT3rms_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA VTABLE_INDEX )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1105:5: INSTRUCTION_FORMAT3rms_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA VTABLE_INDEX
+			{
+			root_0 = (CommonTree)adaptor.nil();
+
+
+			INSTRUCTION_FORMAT3rms_METHOD489=(Token)match(input,INSTRUCTION_FORMAT3rms_METHOD,FOLLOW_INSTRUCTION_FORMAT3rms_METHOD_in_insn_format3rms_method5731);
+			INSTRUCTION_FORMAT3rms_METHOD489_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT3rms_METHOD489);
+			adaptor.addChild(root_0, INSTRUCTION_FORMAT3rms_METHOD489_tree);
+
+			OPEN_BRACE490=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format3rms_method5733);
+			OPEN_BRACE490_tree = (CommonTree)adaptor.create(OPEN_BRACE490);
+			adaptor.addChild(root_0, OPEN_BRACE490_tree);
+
+			pushFollow(FOLLOW_register_range_in_insn_format3rms_method5735);
+			register_range491=register_range();
+			state._fsp--;
+
+			adaptor.addChild(root_0, register_range491.getTree());
+
+			CLOSE_BRACE492=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format3rms_method5737);
+			CLOSE_BRACE492_tree = (CommonTree)adaptor.create(CLOSE_BRACE492);
+			adaptor.addChild(root_0, CLOSE_BRACE492_tree);
+
+			COMMA493=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format3rms_method5739);
+			COMMA493_tree = (CommonTree)adaptor.create(COMMA493);
+			adaptor.addChild(root_0, COMMA493_tree);
+
+			VTABLE_INDEX494=(Token)match(input,VTABLE_INDEX,FOLLOW_VTABLE_INDEX_in_insn_format3rms_method5741);
+			VTABLE_INDEX494_tree = (CommonTree)adaptor.create(VTABLE_INDEX494);
+			adaptor.addChild(root_0, VTABLE_INDEX494_tree);
+
+
+			      throwOdexedInstructionException(input, (INSTRUCTION_FORMAT3rms_METHOD489!=null?INSTRUCTION_FORMAT3rms_METHOD489.getText():null));
+			
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format3rms_method"
+
+
+	public static class insn_format51l_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_format51l"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1110:1: insn_format51l : INSTRUCTION_FORMAT51l REGISTER COMMA fixed_literal -> ^( I_STATEMENT_FORMAT51l[$start, \"I_STATEMENT_FORMAT51l\"] INSTRUCTION_FORMAT51l REGISTER fixed_literal ) ;
+	public final smaliParser.insn_format51l_return insn_format51l() throws RecognitionException {
+		smaliParser.insn_format51l_return retval = new smaliParser.insn_format51l_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token INSTRUCTION_FORMAT51l495=null;
+		Token REGISTER496=null;
+		Token COMMA497=null;
+		ParserRuleReturnScope fixed_literal498 =null;
+
+		CommonTree INSTRUCTION_FORMAT51l495_tree=null;
+		CommonTree REGISTER496_tree=null;
+		CommonTree COMMA497_tree=null;
+		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT51l=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT51l");
+		RewriteRuleSubtreeStream stream_fixed_literal=new RewriteRuleSubtreeStream(adaptor,"rule fixed_literal");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1111:3: ( INSTRUCTION_FORMAT51l REGISTER COMMA fixed_literal -> ^( I_STATEMENT_FORMAT51l[$start, \"I_STATEMENT_FORMAT51l\"] INSTRUCTION_FORMAT51l REGISTER fixed_literal ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1112:5: INSTRUCTION_FORMAT51l REGISTER COMMA fixed_literal
+			{
+			INSTRUCTION_FORMAT51l495=(Token)match(input,INSTRUCTION_FORMAT51l,FOLLOW_INSTRUCTION_FORMAT51l_in_insn_format51l5762);
+			stream_INSTRUCTION_FORMAT51l.add(INSTRUCTION_FORMAT51l495);
+
+			REGISTER496=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format51l5764);
+			stream_REGISTER.add(REGISTER496);
+
+			COMMA497=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format51l5766);
+			stream_COMMA.add(COMMA497);
+
+			pushFollow(FOLLOW_fixed_literal_in_insn_format51l5768);
+			fixed_literal498=fixed_literal();
+			state._fsp--;
+
+			stream_fixed_literal.add(fixed_literal498.getTree());
+			// AST REWRITE
+			// elements: REGISTER, fixed_literal, INSTRUCTION_FORMAT51l
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 1113:5: -> ^( I_STATEMENT_FORMAT51l[$start, \"I_STATEMENT_FORMAT51l\"] INSTRUCTION_FORMAT51l REGISTER fixed_literal )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1113:8: ^( I_STATEMENT_FORMAT51l[$start, \"I_STATEMENT_FORMAT51l\"] INSTRUCTION_FORMAT51l REGISTER fixed_literal )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT51l, (retval.start), "I_STATEMENT_FORMAT51l"), root_1);
+				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT51l.nextNode());
+				adaptor.addChild(root_1, stream_REGISTER.nextNode());
+				adaptor.addChild(root_1, stream_fixed_literal.nextTree());
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_format51l"
+
+
+	public static class insn_array_data_directive_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_array_data_directive"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1115:1: insn_array_data_directive : ARRAY_DATA_DIRECTIVE parsed_integer_literal ( fixed_literal )* END_ARRAY_DATA_DIRECTIVE -> ^( I_STATEMENT_ARRAY_DATA[$start, \"I_STATEMENT_ARRAY_DATA\"] ^( I_ARRAY_ELEMENT_SIZE parsed_integer_literal ) ^( I_ARRAY_ELEMENTS ( fixed_literal )* ) ) ;
+	public final smaliParser.insn_array_data_directive_return insn_array_data_directive() throws RecognitionException {
+		smaliParser.insn_array_data_directive_return retval = new smaliParser.insn_array_data_directive_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token ARRAY_DATA_DIRECTIVE499=null;
+		Token END_ARRAY_DATA_DIRECTIVE502=null;
+		ParserRuleReturnScope parsed_integer_literal500 =null;
+		ParserRuleReturnScope fixed_literal501 =null;
+
+		CommonTree ARRAY_DATA_DIRECTIVE499_tree=null;
+		CommonTree END_ARRAY_DATA_DIRECTIVE502_tree=null;
+		RewriteRuleTokenStream stream_ARRAY_DATA_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token ARRAY_DATA_DIRECTIVE");
+		RewriteRuleTokenStream stream_END_ARRAY_DATA_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_ARRAY_DATA_DIRECTIVE");
+		RewriteRuleSubtreeStream stream_fixed_literal=new RewriteRuleSubtreeStream(adaptor,"rule fixed_literal");
+		RewriteRuleSubtreeStream stream_parsed_integer_literal=new RewriteRuleSubtreeStream(adaptor,"rule parsed_integer_literal");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1116:3: ( ARRAY_DATA_DIRECTIVE parsed_integer_literal ( fixed_literal )* END_ARRAY_DATA_DIRECTIVE -> ^( I_STATEMENT_ARRAY_DATA[$start, \"I_STATEMENT_ARRAY_DATA\"] ^( I_ARRAY_ELEMENT_SIZE parsed_integer_literal ) ^( I_ARRAY_ELEMENTS ( fixed_literal )* ) ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1116:5: ARRAY_DATA_DIRECTIVE parsed_integer_literal ( fixed_literal )* END_ARRAY_DATA_DIRECTIVE
+			{
+			ARRAY_DATA_DIRECTIVE499=(Token)match(input,ARRAY_DATA_DIRECTIVE,FOLLOW_ARRAY_DATA_DIRECTIVE_in_insn_array_data_directive5795);
+			stream_ARRAY_DATA_DIRECTIVE.add(ARRAY_DATA_DIRECTIVE499);
+
+			pushFollow(FOLLOW_parsed_integer_literal_in_insn_array_data_directive5801);
+			parsed_integer_literal500=parsed_integer_literal();
+			state._fsp--;
+
+			stream_parsed_integer_literal.add(parsed_integer_literal500.getTree());
+
+			        int elementWidth = (parsed_integer_literal500!=null?((smaliParser.parsed_integer_literal_return)parsed_integer_literal500).value:0);
+			        if (elementWidth != 4 && elementWidth != 8 && elementWidth != 1 && elementWidth != 2) {
+			            throw new SemanticException(input, (retval.start), "Invalid element width: %d. Must be 1, 2, 4 or 8", elementWidth);
+			        }
+			
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1124:5: ( fixed_literal )*
+			loop50:
+			while (true) {
+				int alt50=2;
+				int LA50_0 = input.LA(1);
+				if ( ((LA50_0 >= BOOL_LITERAL && LA50_0 <= BYTE_LITERAL)||LA50_0==CHAR_LITERAL||(LA50_0 >= DOUBLE_LITERAL && LA50_0 <= DOUBLE_LITERAL_OR_ID)||(LA50_0 >= FLOAT_LITERAL && LA50_0 <= FLOAT_LITERAL_OR_ID)||LA50_0==LONG_LITERAL||LA50_0==NEGATIVE_INTEGER_LITERAL||LA50_0==POSITIVE_INTEGER_LITERAL||LA50_0==SHORT_LITERAL) ) {
+					alt50=1;
+				}
+
+				switch (alt50) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1124:5: fixed_literal
+					{
+					pushFollow(FOLLOW_fixed_literal_in_insn_array_data_directive5813);
+					fixed_literal501=fixed_literal();
+					state._fsp--;
+
+					stream_fixed_literal.add(fixed_literal501.getTree());
+					}
+					break;
+
+				default :
+					break loop50;
+				}
+			}
+
+			END_ARRAY_DATA_DIRECTIVE502=(Token)match(input,END_ARRAY_DATA_DIRECTIVE,FOLLOW_END_ARRAY_DATA_DIRECTIVE_in_insn_array_data_directive5816);
+			stream_END_ARRAY_DATA_DIRECTIVE.add(END_ARRAY_DATA_DIRECTIVE502);
+
+			// AST REWRITE
+			// elements: fixed_literal, parsed_integer_literal
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 1126:5: -> ^( I_STATEMENT_ARRAY_DATA[$start, \"I_STATEMENT_ARRAY_DATA\"] ^( I_ARRAY_ELEMENT_SIZE parsed_integer_literal ) ^( I_ARRAY_ELEMENTS ( fixed_literal )* ) )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1126:8: ^( I_STATEMENT_ARRAY_DATA[$start, \"I_STATEMENT_ARRAY_DATA\"] ^( I_ARRAY_ELEMENT_SIZE parsed_integer_literal ) ^( I_ARRAY_ELEMENTS ( fixed_literal )* ) )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_ARRAY_DATA, (retval.start), "I_STATEMENT_ARRAY_DATA"), root_1);
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1126:67: ^( I_ARRAY_ELEMENT_SIZE parsed_integer_literal )
+				{
+				CommonTree root_2 = (CommonTree)adaptor.nil();
+				root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ARRAY_ELEMENT_SIZE, "I_ARRAY_ELEMENT_SIZE"), root_2);
+				adaptor.addChild(root_2, stream_parsed_integer_literal.nextTree());
+				adaptor.addChild(root_1, root_2);
+				}
+
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1127:8: ^( I_ARRAY_ELEMENTS ( fixed_literal )* )
+				{
+				CommonTree root_2 = (CommonTree)adaptor.nil();
+				root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ARRAY_ELEMENTS, "I_ARRAY_ELEMENTS"), root_2);
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1127:27: ( fixed_literal )*
+				while ( stream_fixed_literal.hasNext() ) {
+					adaptor.addChild(root_2, stream_fixed_literal.nextTree());
+				}
+				stream_fixed_literal.reset();
+
+				adaptor.addChild(root_1, root_2);
+				}
+
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_array_data_directive"
+
+
+	public static class insn_packed_switch_directive_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_packed_switch_directive"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1129:1: insn_packed_switch_directive : PACKED_SWITCH_DIRECTIVE fixed_32bit_literal ( label_ref )* END_PACKED_SWITCH_DIRECTIVE -> ^( I_STATEMENT_PACKED_SWITCH[$start, \"I_STATEMENT_PACKED_SWITCH\"] ^( I_PACKED_SWITCH_START_KEY[$start, \"I_PACKED_SWITCH_START_KEY\"] fixed_32bit_literal ) ^( I_PACKED_SWITCH_ELEMENTS[$start, \"I_PACKED_SWITCH_ELEMENTS\"] ( label_ref )* ) ) ;
+	public final smaliParser.insn_packed_switch_directive_return insn_packed_switch_directive() throws RecognitionException {
+		smaliParser.insn_packed_switch_directive_return retval = new smaliParser.insn_packed_switch_directive_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token PACKED_SWITCH_DIRECTIVE503=null;
+		Token END_PACKED_SWITCH_DIRECTIVE506=null;
+		ParserRuleReturnScope fixed_32bit_literal504 =null;
+		ParserRuleReturnScope label_ref505 =null;
+
+		CommonTree PACKED_SWITCH_DIRECTIVE503_tree=null;
+		CommonTree END_PACKED_SWITCH_DIRECTIVE506_tree=null;
+		RewriteRuleTokenStream stream_PACKED_SWITCH_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token PACKED_SWITCH_DIRECTIVE");
+		RewriteRuleTokenStream stream_END_PACKED_SWITCH_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_PACKED_SWITCH_DIRECTIVE");
+		RewriteRuleSubtreeStream stream_fixed_32bit_literal=new RewriteRuleSubtreeStream(adaptor,"rule fixed_32bit_literal");
+		RewriteRuleSubtreeStream stream_label_ref=new RewriteRuleSubtreeStream(adaptor,"rule label_ref");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1130:5: ( PACKED_SWITCH_DIRECTIVE fixed_32bit_literal ( label_ref )* END_PACKED_SWITCH_DIRECTIVE -> ^( I_STATEMENT_PACKED_SWITCH[$start, \"I_STATEMENT_PACKED_SWITCH\"] ^( I_PACKED_SWITCH_START_KEY[$start, \"I_PACKED_SWITCH_START_KEY\"] fixed_32bit_literal ) ^( I_PACKED_SWITCH_ELEMENTS[$start, \"I_PACKED_SWITCH_ELEMENTS\"] ( label_ref )* ) ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1130:9: PACKED_SWITCH_DIRECTIVE fixed_32bit_literal ( label_ref )* END_PACKED_SWITCH_DIRECTIVE
+			{
+			PACKED_SWITCH_DIRECTIVE503=(Token)match(input,PACKED_SWITCH_DIRECTIVE,FOLLOW_PACKED_SWITCH_DIRECTIVE_in_insn_packed_switch_directive5862);
+			stream_PACKED_SWITCH_DIRECTIVE.add(PACKED_SWITCH_DIRECTIVE503);
+
+			pushFollow(FOLLOW_fixed_32bit_literal_in_insn_packed_switch_directive5868);
+			fixed_32bit_literal504=fixed_32bit_literal();
+			state._fsp--;
+
+			stream_fixed_32bit_literal.add(fixed_32bit_literal504.getTree());
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1132:5: ( label_ref )*
+			loop51:
+			while (true) {
+				int alt51=2;
+				int LA51_0 = input.LA(1);
+				if ( (LA51_0==COLON) ) {
+					alt51=1;
+				}
+
+				switch (alt51) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1132:5: label_ref
+					{
+					pushFollow(FOLLOW_label_ref_in_insn_packed_switch_directive5874);
+					label_ref505=label_ref();
+					state._fsp--;
+
+					stream_label_ref.add(label_ref505.getTree());
+					}
+					break;
+
+				default :
+					break loop51;
+				}
+			}
+
+			END_PACKED_SWITCH_DIRECTIVE506=(Token)match(input,END_PACKED_SWITCH_DIRECTIVE,FOLLOW_END_PACKED_SWITCH_DIRECTIVE_in_insn_packed_switch_directive5881);
+			stream_END_PACKED_SWITCH_DIRECTIVE.add(END_PACKED_SWITCH_DIRECTIVE506);
+
+			// AST REWRITE
+			// elements: label_ref, fixed_32bit_literal
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 1134:5: -> ^( I_STATEMENT_PACKED_SWITCH[$start, \"I_STATEMENT_PACKED_SWITCH\"] ^( I_PACKED_SWITCH_START_KEY[$start, \"I_PACKED_SWITCH_START_KEY\"] fixed_32bit_literal ) ^( I_PACKED_SWITCH_ELEMENTS[$start, \"I_PACKED_SWITCH_ELEMENTS\"] ( label_ref )* ) )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1134:8: ^( I_STATEMENT_PACKED_SWITCH[$start, \"I_STATEMENT_PACKED_SWITCH\"] ^( I_PACKED_SWITCH_START_KEY[$start, \"I_PACKED_SWITCH_START_KEY\"] fixed_32bit_literal ) ^( I_PACKED_SWITCH_ELEMENTS[$start, \"I_PACKED_SWITCH_ELEMENTS\"] ( label_ref )* ) )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_PACKED_SWITCH, (retval.start), "I_STATEMENT_PACKED_SWITCH"), root_1);
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1135:10: ^( I_PACKED_SWITCH_START_KEY[$start, \"I_PACKED_SWITCH_START_KEY\"] fixed_32bit_literal )
+				{
+				CommonTree root_2 = (CommonTree)adaptor.nil();
+				root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_PACKED_SWITCH_START_KEY, (retval.start), "I_PACKED_SWITCH_START_KEY"), root_2);
+				adaptor.addChild(root_2, stream_fixed_32bit_literal.nextTree());
+				adaptor.addChild(root_1, root_2);
+				}
+
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1136:10: ^( I_PACKED_SWITCH_ELEMENTS[$start, \"I_PACKED_SWITCH_ELEMENTS\"] ( label_ref )* )
+				{
+				CommonTree root_2 = (CommonTree)adaptor.nil();
+				root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_PACKED_SWITCH_ELEMENTS, (retval.start), "I_PACKED_SWITCH_ELEMENTS"), root_2);
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1137:11: ( label_ref )*
+				while ( stream_label_ref.hasNext() ) {
+					adaptor.addChild(root_2, stream_label_ref.nextTree());
+				}
+				stream_label_ref.reset();
+
+				adaptor.addChild(root_1, root_2);
+				}
+
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_packed_switch_directive"
+
+
+	public static class insn_sparse_switch_directive_return extends ParserRuleReturnScope {
+		CommonTree tree;
+		@Override
+		public CommonTree getTree() { return tree; }
+	};
+
+
+	// $ANTLR start "insn_sparse_switch_directive"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1140:1: insn_sparse_switch_directive : SPARSE_SWITCH_DIRECTIVE ( fixed_32bit_literal ARROW label_ref )* END_SPARSE_SWITCH_DIRECTIVE -> ^( I_STATEMENT_SPARSE_SWITCH[$start, \"I_STATEMENT_SPARSE_SWITCH\"] ^( I_SPARSE_SWITCH_ELEMENTS[$start, \"I_SPARSE_SWITCH_ELEMENTS\"] ( fixed_32bit_literal label_ref )* ) ) ;
+	public final smaliParser.insn_sparse_switch_directive_return insn_sparse_switch_directive() throws RecognitionException {
+		smaliParser.insn_sparse_switch_directive_return retval = new smaliParser.insn_sparse_switch_directive_return();
+		retval.start = input.LT(1);
+
+		CommonTree root_0 = null;
+
+		Token SPARSE_SWITCH_DIRECTIVE507=null;
+		Token ARROW509=null;
+		Token END_SPARSE_SWITCH_DIRECTIVE511=null;
+		ParserRuleReturnScope fixed_32bit_literal508 =null;
+		ParserRuleReturnScope label_ref510 =null;
+
+		CommonTree SPARSE_SWITCH_DIRECTIVE507_tree=null;
+		CommonTree ARROW509_tree=null;
+		CommonTree END_SPARSE_SWITCH_DIRECTIVE511_tree=null;
+		RewriteRuleTokenStream stream_SPARSE_SWITCH_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token SPARSE_SWITCH_DIRECTIVE");
+		RewriteRuleTokenStream stream_ARROW=new RewriteRuleTokenStream(adaptor,"token ARROW");
+		RewriteRuleTokenStream stream_END_SPARSE_SWITCH_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_SPARSE_SWITCH_DIRECTIVE");
+		RewriteRuleSubtreeStream stream_fixed_32bit_literal=new RewriteRuleSubtreeStream(adaptor,"rule fixed_32bit_literal");
+		RewriteRuleSubtreeStream stream_label_ref=new RewriteRuleSubtreeStream(adaptor,"rule label_ref");
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1141:3: ( SPARSE_SWITCH_DIRECTIVE ( fixed_32bit_literal ARROW label_ref )* END_SPARSE_SWITCH_DIRECTIVE -> ^( I_STATEMENT_SPARSE_SWITCH[$start, \"I_STATEMENT_SPARSE_SWITCH\"] ^( I_SPARSE_SWITCH_ELEMENTS[$start, \"I_SPARSE_SWITCH_ELEMENTS\"] ( fixed_32bit_literal label_ref )* ) ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1141:7: SPARSE_SWITCH_DIRECTIVE ( fixed_32bit_literal ARROW label_ref )* END_SPARSE_SWITCH_DIRECTIVE
+			{
+			SPARSE_SWITCH_DIRECTIVE507=(Token)match(input,SPARSE_SWITCH_DIRECTIVE,FOLLOW_SPARSE_SWITCH_DIRECTIVE_in_insn_sparse_switch_directive5955);
+			stream_SPARSE_SWITCH_DIRECTIVE.add(SPARSE_SWITCH_DIRECTIVE507);
+
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1142:5: ( fixed_32bit_literal ARROW label_ref )*
+			loop52:
+			while (true) {
+				int alt52=2;
+				int LA52_0 = input.LA(1);
+				if ( ((LA52_0 >= BOOL_LITERAL && LA52_0 <= BYTE_LITERAL)||LA52_0==CHAR_LITERAL||(LA52_0 >= FLOAT_LITERAL && LA52_0 <= FLOAT_LITERAL_OR_ID)||LA52_0==LONG_LITERAL||LA52_0==NEGATIVE_INTEGER_LITERAL||LA52_0==POSITIVE_INTEGER_LITERAL||LA52_0==SHORT_LITERAL) ) {
+					alt52=1;
+				}
+
+				switch (alt52) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1142:6: fixed_32bit_literal ARROW label_ref
+					{
+					pushFollow(FOLLOW_fixed_32bit_literal_in_insn_sparse_switch_directive5962);
+					fixed_32bit_literal508=fixed_32bit_literal();
+					state._fsp--;
+
+					stream_fixed_32bit_literal.add(fixed_32bit_literal508.getTree());
+					ARROW509=(Token)match(input,ARROW,FOLLOW_ARROW_in_insn_sparse_switch_directive5964);
+					stream_ARROW.add(ARROW509);
+
+					pushFollow(FOLLOW_label_ref_in_insn_sparse_switch_directive5966);
+					label_ref510=label_ref();
+					state._fsp--;
+
+					stream_label_ref.add(label_ref510.getTree());
+					}
+					break;
+
+				default :
+					break loop52;
+				}
+			}
+
+			END_SPARSE_SWITCH_DIRECTIVE511=(Token)match(input,END_SPARSE_SWITCH_DIRECTIVE,FOLLOW_END_SPARSE_SWITCH_DIRECTIVE_in_insn_sparse_switch_directive5974);
+			stream_END_SPARSE_SWITCH_DIRECTIVE.add(END_SPARSE_SWITCH_DIRECTIVE511);
+
+			// AST REWRITE
+			// elements: fixed_32bit_literal, label_ref
+			// token labels:
+			// rule labels: retval
+			// token list labels:
+			// rule list labels:
+			// wildcard labels:
+			retval.tree = root_0;
+			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+			root_0 = (CommonTree)adaptor.nil();
+			// 1144:5: -> ^( I_STATEMENT_SPARSE_SWITCH[$start, \"I_STATEMENT_SPARSE_SWITCH\"] ^( I_SPARSE_SWITCH_ELEMENTS[$start, \"I_SPARSE_SWITCH_ELEMENTS\"] ( fixed_32bit_literal label_ref )* ) )
+			{
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1144:8: ^( I_STATEMENT_SPARSE_SWITCH[$start, \"I_STATEMENT_SPARSE_SWITCH\"] ^( I_SPARSE_SWITCH_ELEMENTS[$start, \"I_SPARSE_SWITCH_ELEMENTS\"] ( fixed_32bit_literal label_ref )* ) )
+				{
+				CommonTree root_1 = (CommonTree)adaptor.nil();
+				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_SPARSE_SWITCH, (retval.start), "I_STATEMENT_SPARSE_SWITCH"), root_1);
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1145:8: ^( I_SPARSE_SWITCH_ELEMENTS[$start, \"I_SPARSE_SWITCH_ELEMENTS\"] ( fixed_32bit_literal label_ref )* )
+				{
+				CommonTree root_2 = (CommonTree)adaptor.nil();
+				root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_SPARSE_SWITCH_ELEMENTS, (retval.start), "I_SPARSE_SWITCH_ELEMENTS"), root_2);
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliParser.g:1145:71: ( fixed_32bit_literal label_ref )*
+				while ( stream_fixed_32bit_literal.hasNext()||stream_label_ref.hasNext() ) {
+					adaptor.addChild(root_2, stream_fixed_32bit_literal.nextTree());
+					adaptor.addChild(root_2, stream_label_ref.nextTree());
+				}
+				stream_fixed_32bit_literal.reset();
+				stream_label_ref.reset();
+
+				adaptor.addChild(root_1, root_2);
+				}
+
+				adaptor.addChild(root_0, root_1);
+				}
+
+			}
+
+
+			retval.tree = root_0;
+
+			}
+
+			retval.stop = input.LT(-1);
+
+			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "insn_sparse_switch_directive"
+
+	// Delegated rules
+
+
+	protected DFA28 dfa28 = new DFA28(this);
+	protected DFA36 dfa36 = new DFA36(this);
+	protected DFA38 dfa38 = new DFA38(this);
+	static final String DFA28_eotS =
+		"\61\uffff";
+	static final String DFA28_eofS =
+		"\61\uffff";
+	static final String DFA28_minS =
+		"\1\4\12\23\1\u00c0\41\23\2\uffff\1\u00bc\1\23";
+	static final String DFA28_maxS =
+		"\1\u00cd\12\u00b8\1\u00c0\41\u00b8\2\uffff\1\u00c0\1\u00b8";
+	static final String DFA28_acceptS =
+		"\55\uffff\1\1\1\2\2\uffff";
+	static final String DFA28_specialS =
+		"\61\uffff}>";
+	static final String[] DFA28_transitionS = {
+			"\1\2\1\uffff\1\16\3\uffff\1\10\14\uffff\1\7\17\uffff\1\6\2\uffff\1\17"+
+			"\1\20\1\21\1\uffff\1\22\1\uffff\1\23\2\uffff\1\24\1\25\1\30\1\31\1\26"+
+			"\1\27\3\uffff\1\32\1\uffff\1\33\1\34\1\36\1\35\1\37\1\uffff\1\40\1\41"+
+			"\1\uffff\1\42\1\43\3\uffff\1\44\1\45\1\uffff\1\46\1\47\1\50\1\51\1\52"+
+			"\5\uffff\1\53\131\uffff\1\54\1\uffff\1\5\1\11\6\uffff\1\13\1\uffff\1"+
+			"\4\1\14\1\uffff\1\12\3\uffff\1\1\5\uffff\1\3\1\15",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\57",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"\1\55\u00a4\uffff\1\56",
+			"",
+			"",
+			"\1\60\3\uffff\1\57",
+			"\1\55\u00a4\uffff\1\56"
+	};
+
+	static final short[] DFA28_eot = DFA.unpackEncodedString(DFA28_eotS);
+	static final short[] DFA28_eof = DFA.unpackEncodedString(DFA28_eofS);
+	static final char[] DFA28_min = DFA.unpackEncodedStringToUnsignedChars(DFA28_minS);
+	static final char[] DFA28_max = DFA.unpackEncodedStringToUnsignedChars(DFA28_maxS);
+	static final short[] DFA28_accept = DFA.unpackEncodedString(DFA28_acceptS);
+	static final short[] DFA28_special = DFA.unpackEncodedString(DFA28_specialS);
+	static final short[][] DFA28_transition;
+
+	static {
+		int numStates = DFA28_transitionS.length;
+		DFA28_transition = new short[numStates][];
+		for (int i=0; i<numStates; i++) {
+			DFA28_transition[i] = DFA.unpackEncodedString(DFA28_transitionS[i]);
+		}
+	}
+
+	protected class DFA28 extends DFA {
+
+		public DFA28(BaseRecognizer recognizer) {
+			this.recognizer = recognizer;
+			this.decisionNumber = 28;
+			this.eot = DFA28_eot;
+			this.eof = DFA28_eof;
+			this.min = DFA28_min;
+			this.max = DFA28_max;
+			this.accept = DFA28_accept;
+			this.special = DFA28_special;
+			this.transition = DFA28_transition;
+		}
+		@Override
+		public String getDescription() {
+			return "702:7: ( member_name COLON nonvoid_type_descriptor -> ^( I_ENCODED_FIELD ( reference_type_descriptor )? member_name nonvoid_type_descriptor ) | member_name method_prototype -> ^( I_ENCODED_METHOD ( reference_type_descriptor )? member_name method_prototype ) )";
+		}
+	}
+
+	static final String DFA36_eotS =
+		"\65\uffff";
+	static final String DFA36_eofS =
+		"\65\uffff";
+	static final String DFA36_minS =
+		"\1\4\1\5\1\11\12\23\1\u00c0\41\23\1\uffff\1\4\2\uffff\1\u00bc\1\23";
+	static final String DFA36_maxS =
+		"\1\u00cd\1\u00c8\1\11\12\u00b8\1\u00c0\41\u00b8\1\uffff\1\u00cd\2\uffff"+
+		"\1\u00c0\1\u00b8";
+	static final String DFA36_acceptS =
+		"\57\uffff\1\1\1\uffff\1\2\1\3\2\uffff";
+	static final String DFA36_specialS =
+		"\65\uffff}>";
+	static final String[] DFA36_transitionS = {
+			"\1\4\1\uffff\1\20\1\uffff\1\2\1\uffff\1\12\4\uffff\1\1\7\uffff\1\11\17"+
+			"\uffff\1\10\2\uffff\1\21\1\22\1\23\1\uffff\1\24\1\uffff\1\25\2\uffff"+
+			"\1\26\1\27\1\32\1\33\1\30\1\31\3\uffff\1\34\1\uffff\1\35\1\36\1\40\1"+
+			"\37\1\41\1\uffff\1\42\1\43\1\uffff\1\44\1\45\3\uffff\1\46\1\47\1\uffff"+
+			"\1\50\1\51\1\52\1\53\1\54\5\uffff\1\55\131\uffff\1\56\1\uffff\1\7\1\13"+
+			"\6\uffff\1\15\1\uffff\1\6\1\16\1\uffff\1\14\3\uffff\1\3\5\uffff\1\5\1"+
+			"\17",
+			"\1\57\1\uffff\1\57\1\uffff\1\60\2\uffff\2\57\5\uffff\1\57\7\uffff\2"+
+			"\57\5\uffff\1\57\7\uffff\60\57\125\uffff\3\57\7\uffff\2\57\6\uffff\1"+
+			"\57\1\uffff\2\57\2\uffff\2\57",
+			"\1\60",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\63",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"\1\61\u00a4\uffff\1\62",
+			"",
+			"\1\4\1\uffff\1\20\3\uffff\1\12\14\uffff\1\11\17\uffff\1\10\2\uffff\1"+
+			"\21\1\22\1\23\1\uffff\1\24\1\uffff\1\25\2\uffff\1\26\1\27\1\32\1\33\1"+
+			"\30\1\31\3\uffff\1\34\1\uffff\1\35\1\36\1\40\1\37\1\41\1\uffff\1\42\1"+
+			"\43\1\uffff\1\44\1\45\3\uffff\1\46\1\47\1\uffff\1\50\1\51\1\52\1\53\1"+
+			"\54\5\uffff\1\55\131\uffff\1\56\1\uffff\1\7\1\13\6\uffff\1\15\1\uffff"+
+			"\1\6\1\16\1\uffff\1\14\3\uffff\1\3\5\uffff\1\5\1\17",
+			"",
+			"",
+			"\1\64\3\uffff\1\63",
+			"\1\61\u00a4\uffff\1\62"
+	};
+
+	static final short[] DFA36_eot = DFA.unpackEncodedString(DFA36_eotS);
+	static final short[] DFA36_eof = DFA.unpackEncodedString(DFA36_eofS);
+	static final char[] DFA36_min = DFA.unpackEncodedStringToUnsignedChars(DFA36_minS);
+	static final char[] DFA36_max = DFA.unpackEncodedStringToUnsignedChars(DFA36_maxS);
+	static final short[] DFA36_accept = DFA.unpackEncodedString(DFA36_acceptS);
+	static final short[] DFA36_special = DFA.unpackEncodedString(DFA36_specialS);
+	static final short[][] DFA36_transition;
+
+	static {
+		int numStates = DFA36_transitionS.length;
+		DFA36_transition = new short[numStates][];
+		for (int i=0; i<numStates; i++) {
+			DFA36_transition[i] = DFA.unpackEncodedString(DFA36_transitionS[i]);
+		}
+	}
+
+	protected class DFA36 extends DFA {
+
+		public DFA36(BaseRecognizer recognizer) {
+			this.recognizer = recognizer;
+			this.decisionNumber = 36;
+			this.eot = DFA36_eot;
+			this.eof = DFA36_eof;
+			this.min = DFA36_min;
+			this.max = DFA36_max;
+			this.accept = DFA36_accept;
+			this.special = DFA36_special;
+			this.transition = DFA36_transition;
+		}
+		@Override
+		public String getDescription() {
+			return "730:1: verification_error_reference : ( CLASS_DESCRIPTOR | field_reference | method_reference );";
+		}
+	}
+
+	static final String DFA38_eotS =
+		"\105\uffff";
+	static final String DFA38_eofS =
+		"\105\uffff";
+	static final String DFA38_minS =
+		"\1\5\102\uffff\1\0\1\uffff";
+	static final String DFA38_maxS =
+		"\1\u00c8\102\uffff\1\0\1\uffff";
+	static final String DFA38_acceptS =
+		"\1\uffff\1\2\102\uffff\1\1";
+	static final String DFA38_specialS =
+		"\103\uffff\1\0\1\uffff}>";
+	static final String[] DFA38_transitionS = {
+			"\1\103\1\uffff\1\1\4\uffff\2\1\5\uffff\1\1\7\uffff\2\1\1\uffff\1\1\3"+
+			"\uffff\1\1\7\uffff\60\1\125\uffff\3\1\7\uffff\2\1\6\uffff\1\1\1\uffff"+
+			"\2\1\2\uffff\2\1",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"\1\uffff",
+			""
+	};
+
+	static final short[] DFA38_eot = DFA.unpackEncodedString(DFA38_eotS);
+	static final short[] DFA38_eof = DFA.unpackEncodedString(DFA38_eofS);
+	static final char[] DFA38_min = DFA.unpackEncodedStringToUnsignedChars(DFA38_minS);
+	static final char[] DFA38_max = DFA.unpackEncodedStringToUnsignedChars(DFA38_maxS);
+	static final short[] DFA38_accept = DFA.unpackEncodedString(DFA38_acceptS);
+	static final short[] DFA38_special = DFA.unpackEncodedString(DFA38_specialS);
+	static final short[][] DFA38_transition;
+
+	static {
+		int numStates = DFA38_transitionS.length;
+		DFA38_transition = new short[numStates][];
+		for (int i=0; i<numStates; i++) {
+			DFA38_transition[i] = DFA.unpackEncodedString(DFA38_transitionS[i]);
+		}
+	}
+
+	protected class DFA38 extends DFA {
+
+		public DFA38(BaseRecognizer recognizer) {
+			this.recognizer = recognizer;
+			this.decisionNumber = 38;
+			this.eot = DFA38_eot;
+			this.eof = DFA38_eof;
+			this.min = DFA38_min;
+			this.max = DFA38_max;
+			this.accept = DFA38_accept;
+			this.special = DFA38_special;
+			this.transition = DFA38_transition;
+		}
+		@Override
+		public String getDescription() {
+			return "()* loopback of 748:5: ({...}? annotation )*";
+		}
+		@Override
+		public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+			TokenStream input = (TokenStream)_input;
+			int _s = s;
+			switch ( s ) {
+					case 0 :
+						int LA38_67 = input.LA(1);
+						
+						int index38_67 = input.index();
+						input.rewind();
+						s = -1;
+						if ( ((input.LA(1) == ANNOTATION_DIRECTIVE)) ) {s = 68;}
+						else if ( (true) ) {s = 1;}
+						
+						input.seek(index38_67);
+						if ( s>=0 ) return s;
+						break;
+			}
+			NoViableAltException nvae =
+				new NoViableAltException(getDescription(), 38, _s, input);
+			error(nvae);
+			throw nvae;
+		}
+	}
+
+	public static final BitSet FOLLOW_class_spec_in_smali_file1110 = new BitSet(new long[]{0x0000011000010020L,0x0000000000000000L,0x0010000000000000L,0x0000000000000880L});
+	public static final BitSet FOLLOW_super_spec_in_smali_file1121 = new BitSet(new long[]{0x0000011000010020L,0x0000000000000000L,0x0010000000000000L,0x0000000000000880L});
+	public static final BitSet FOLLOW_implements_spec_in_smali_file1129 = new BitSet(new long[]{0x0000011000010020L,0x0000000000000000L,0x0010000000000000L,0x0000000000000880L});
+	public static final BitSet FOLLOW_source_spec_in_smali_file1138 = new BitSet(new long[]{0x0000011000010020L,0x0000000000000000L,0x0010000000000000L,0x0000000000000880L});
+	public static final BitSet FOLLOW_method_in_smali_file1146 = new BitSet(new long[]{0x0000011000010020L,0x0000000000000000L,0x0010000000000000L,0x0000000000000880L});
+	public static final BitSet FOLLOW_field_in_smali_file1152 = new BitSet(new long[]{0x0000011000010020L,0x0000000000000000L,0x0010000000000000L,0x0000000000000880L});
+	public static final BitSet FOLLOW_annotation_in_smali_file1158 = new BitSet(new long[]{0x0000011000010020L,0x0000000000000000L,0x0010000000000000L,0x0000000000000880L});
+	public static final BitSet FOLLOW_EOF_in_smali_file1169 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_CLASS_DIRECTIVE_in_class_spec1256 = new BitSet(new long[]{0x0000000000008010L});
+	public static final BitSet FOLLOW_access_list_in_class_spec1258 = new BitSet(new long[]{0x0000000000008000L});
+	public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_class_spec1260 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_SUPER_DIRECTIVE_in_super_spec1278 = new BitSet(new long[]{0x0000000000008000L});
+	public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_super_spec1280 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_IMPLEMENTS_DIRECTIVE_in_implements_spec1299 = new BitSet(new long[]{0x0000000000008000L});
+	public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_implements_spec1301 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_SOURCE_DIRECTIVE_in_source_spec1320 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L});
+	public static final BitSet FOLLOW_STRING_LITERAL_in_source_spec1322 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_ACCESS_SPEC_in_access_list1341 = new BitSet(new long[]{0x0000000000000012L});
+	public static final BitSet FOLLOW_FIELD_DIRECTIVE_in_field1372 = new BitSet(new long[]{0xD1F95C8000800450L,0x00000000020FB1B7L,0xA068000000000000L,0x0000000000003045L});
+	public static final BitSet FOLLOW_access_list_in_field1374 = new BitSet(new long[]{0xD1F95C8000800450L,0x00000000020FB1B7L,0xA068000000000000L,0x0000000000003045L});
+	public static final BitSet FOLLOW_member_name_in_field1376 = new BitSet(new long[]{0x0000000000080000L});
+	public static final BitSet FOLLOW_COLON_in_field1378 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
+	public static final BitSet FOLLOW_nonvoid_type_descriptor_in_field1380 = new BitSet(new long[]{0x0000000804000022L});
+	public static final BitSet FOLLOW_EQUAL_in_field1383 = new BitSet(new long[]{0xD1F95CC200C0CD50L,0x00000000020FB1B7L,0xA0EC000000000000L,0x0000000000003665L});
+	public static final BitSet FOLLOW_literal_in_field1385 = new BitSet(new long[]{0x0000000004000022L});
+	public static final BitSet FOLLOW_annotation_in_field1398 = new BitSet(new long[]{0x0000000004000022L});
+	public static final BitSet FOLLOW_END_FIELD_DIRECTIVE_in_field1412 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_METHOD_DIRECTIVE_in_method1523 = new BitSet(new long[]{0xD1F95C8000800450L,0x00000000020FB1B7L,0xA068000000000000L,0x0000000000003045L});
+	public static final BitSet FOLLOW_access_list_in_method1525 = new BitSet(new long[]{0xD1F95C8000800450L,0x00000000020FB1B7L,0xA068000000000000L,0x0000000000003045L});
+	public static final BitSet FOLLOW_member_name_in_method1527 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0100000000000000L});
+	public static final BitSet FOLLOW_method_prototype_in_method1529 = new BitSet(new long[]{0xFFFFFC04180830A0L,0x0000000003FFFFFFL,0x0603800000000000L,0x000000000000019AL});
+	public static final BitSet FOLLOW_statements_and_directives_in_method1531 = new BitSet(new long[]{0x0000000010000000L});
+	public static final BitSet FOLLOW_END_METHOD_DIRECTIVE_in_method1537 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_ordered_method_item_in_statements_and_directives1582 = new BitSet(new long[]{0xFFFFFC04080830A2L,0x0000000003FFFFFFL,0x0603800000000000L,0x000000000000019AL});
+	public static final BitSet FOLLOW_registers_directive_in_statements_and_directives1590 = new BitSet(new long[]{0xFFFFFC04080830A2L,0x0000000003FFFFFFL,0x0603800000000000L,0x000000000000019AL});
+	public static final BitSet FOLLOW_catch_directive_in_statements_and_directives1598 = new BitSet(new long[]{0xFFFFFC04080830A2L,0x0000000003FFFFFFL,0x0603800000000000L,0x000000000000019AL});
+	public static final BitSet FOLLOW_catchall_directive_in_statements_and_directives1606 = new BitSet(new long[]{0xFFFFFC04080830A2L,0x0000000003FFFFFFL,0x0603800000000000L,0x000000000000019AL});
+	public static final BitSet FOLLOW_parameter_directive_in_statements_and_directives1614 = new BitSet(new long[]{0xFFFFFC04080830A2L,0x0000000003FFFFFFL,0x0603800000000000L,0x000000000000019AL});
+	public static final BitSet FOLLOW_annotation_in_statements_and_directives1622 = new BitSet(new long[]{0xFFFFFC04080830A2L,0x0000000003FFFFFFL,0x0603800000000000L,0x000000000000019AL});
+	public static final BitSet FOLLOW_label_in_ordered_method_item1707 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_instruction_in_ordered_method_item1713 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_debug_directive_in_ordered_method_item1719 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_REGISTERS_DIRECTIVE_in_registers_directive1739 = new BitSet(new long[]{0x0000000000004800L,0x0000000000000000L,0x8024000000000000L,0x0000000000000020L});
+	public static final BitSet FOLLOW_integral_literal_in_registers_directive1743 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_LOCALS_DIRECTIVE_in_registers_directive1763 = new BitSet(new long[]{0x0000000000004800L,0x0000000000000000L,0x8024000000000000L,0x0000000000000020L});
+	public static final BitSet FOLLOW_integral_literal_in_registers_directive1767 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_PARAM_LIST_OR_ID_START_in_param_list_or_id1799 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
+	public static final BitSet FOLLOW_PRIMITIVE_TYPE_in_param_list_or_id1801 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x1000000000000000L,0x0000000000000001L});
+	public static final BitSet FOLLOW_PARAM_LIST_OR_ID_END_in_param_list_or_id1804 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_SIMPLE_NAME_in_simple_name1816 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_ACCESS_SPEC_in_simple_name1822 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_VERIFICATION_ERROR_TYPE_in_simple_name1833 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_POSITIVE_INTEGER_LITERAL_in_simple_name1844 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_NEGATIVE_INTEGER_LITERAL_in_simple_name1855 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_FLOAT_LITERAL_OR_ID_in_simple_name1866 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_DOUBLE_LITERAL_OR_ID_in_simple_name1877 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_BOOL_LITERAL_in_simple_name1888 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_NULL_LITERAL_in_simple_name1899 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_REGISTER_in_simple_name1910 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_param_list_or_id_in_simple_name1921 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_PRIMITIVE_TYPE_in_simple_name1931 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_VOID_TYPE_in_simple_name1942 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_ANNOTATION_VISIBILITY_in_simple_name1953 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT10t_in_simple_name1964 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT10x_in_simple_name1975 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT10x_ODEX_in_simple_name1986 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT11x_in_simple_name1997 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT12x_OR_ID_in_simple_name2008 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_FIELD_in_simple_name2019 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_FIELD_ODEX_in_simple_name2030 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_STRING_in_simple_name2041 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_TYPE_in_simple_name2052 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_LAMBDA_in_simple_name2063 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_METHOD_in_simple_name2074 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21t_in_simple_name2085 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_FIELD_in_simple_name2096 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_FIELD_ODEX_in_simple_name2107 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_TYPE_in_simple_name2118 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_STRING_in_simple_name2129 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22cs_FIELD_in_simple_name2140 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22s_OR_ID_in_simple_name2151 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22t_in_simple_name2162 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT23x_in_simple_name2173 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT25x_in_simple_name2184 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT31i_OR_ID_in_simple_name2195 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT31t_in_simple_name2206 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_METHOD_in_simple_name2217 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_METHOD_ODEX_in_simple_name2228 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_TYPE_in_simple_name2239 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT35mi_METHOD_in_simple_name2250 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT35ms_METHOD_in_simple_name2261 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT51l_in_simple_name2272 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_simple_name_in_member_name2287 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_MEMBER_NAME_in_member_name2293 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_OPEN_PAREN_in_method_prototype2308 = new BitSet(new long[]{0x0000000000048100L,0x0000000000000000L,0x6000000000000000L,0x0000000000000001L});
+	public static final BitSet FOLLOW_param_list_in_method_prototype2310 = new BitSet(new long[]{0x0000000000040000L});
+	public static final BitSet FOLLOW_CLOSE_PAREN_in_method_prototype2312 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0000000000000000L,0x0000000000002001L});
+	public static final BitSet FOLLOW_type_descriptor_in_method_prototype2314 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_PARAM_LIST_START_in_param_list2344 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0800000000000000L,0x0000000000000001L});
+	public static final BitSet FOLLOW_nonvoid_type_descriptor_in_param_list2346 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0800000000000000L,0x0000000000000001L});
+	public static final BitSet FOLLOW_PARAM_LIST_END_in_param_list2349 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_PARAM_LIST_OR_ID_START_in_param_list2360 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x1000000000000000L,0x0000000000000001L});
+	public static final BitSet FOLLOW_PRIMITIVE_TYPE_in_param_list2362 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x1000000000000000L,0x0000000000000001L});
+	public static final BitSet FOLLOW_PARAM_LIST_OR_ID_END_in_param_list2365 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_nonvoid_type_descriptor_in_param_list2376 = new BitSet(new long[]{0x0000000000008102L,0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
+	public static final BitSet FOLLOW_POSITIVE_INTEGER_LITERAL_in_integer_literal2453 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_NEGATIVE_INTEGER_LITERAL_in_integer_literal2464 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_FLOAT_LITERAL_OR_ID_in_float_literal2479 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_FLOAT_LITERAL_in_float_literal2490 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_DOUBLE_LITERAL_OR_ID_in_double_literal2500 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_DOUBLE_LITERAL_in_double_literal2511 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_LONG_LITERAL_in_literal2521 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_integer_literal_in_literal2527 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_SHORT_LITERAL_in_literal2533 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_BYTE_LITERAL_in_literal2539 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_float_literal_in_literal2545 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_double_literal_in_literal2551 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_CHAR_LITERAL_in_literal2557 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_STRING_LITERAL_in_literal2563 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_BOOL_LITERAL_in_literal2569 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_NULL_LITERAL_in_literal2575 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_array_literal_in_literal2581 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_subannotation_in_literal2587 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_type_field_method_literal_in_literal2593 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_enum_literal_in_literal2599 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_integer_literal_in_parsed_integer_literal2612 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_LONG_LITERAL_in_integral_literal2624 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_integer_literal_in_integral_literal2630 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_SHORT_LITERAL_in_integral_literal2636 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_CHAR_LITERAL_in_integral_literal2642 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_BYTE_LITERAL_in_integral_literal2648 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_LONG_LITERAL_in_fixed_32bit_literal2658 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_integer_literal_in_fixed_32bit_literal2664 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_SHORT_LITERAL_in_fixed_32bit_literal2670 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_BYTE_LITERAL_in_fixed_32bit_literal2676 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_float_literal_in_fixed_32bit_literal2682 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_CHAR_LITERAL_in_fixed_32bit_literal2688 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_BOOL_LITERAL_in_fixed_32bit_literal2694 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_integer_literal_in_fixed_literal2704 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_LONG_LITERAL_in_fixed_literal2710 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_SHORT_LITERAL_in_fixed_literal2716 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_BYTE_LITERAL_in_fixed_literal2722 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_float_literal_in_fixed_literal2728 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_double_literal_in_fixed_literal2734 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_CHAR_LITERAL_in_fixed_literal2740 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_BOOL_LITERAL_in_fixed_literal2746 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_OPEN_BRACE_in_array_literal2756 = new BitSet(new long[]{0xD1F95CC200C2CD50L,0x00000000020FB1B7L,0xA0EC000000000000L,0x0000000000003665L});
+	public static final BitSet FOLLOW_literal_in_array_literal2759 = new BitSet(new long[]{0x0000000000120000L});
+	public static final BitSet FOLLOW_COMMA_in_array_literal2762 = new BitSet(new long[]{0xD1F95CC200C0CD50L,0x00000000020FB1B7L,0xA0EC000000000000L,0x0000000000003665L});
+	public static final BitSet FOLLOW_literal_in_array_literal2764 = new BitSet(new long[]{0x0000000000120000L});
+	public static final BitSet FOLLOW_CLOSE_BRACE_in_array_literal2772 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_simple_name_in_annotation_element2796 = new BitSet(new long[]{0x0000000800000000L});
+	public static final BitSet FOLLOW_EQUAL_in_annotation_element2798 = new BitSet(new long[]{0xD1F95CC200C0CD50L,0x00000000020FB1B7L,0xA0EC000000000000L,0x0000000000003665L});
+	public static final BitSet FOLLOW_literal_in_annotation_element2800 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_ANNOTATION_DIRECTIVE_in_annotation2825 = new BitSet(new long[]{0x0000000000000040L});
+	public static final BitSet FOLLOW_ANNOTATION_VISIBILITY_in_annotation2827 = new BitSet(new long[]{0x0000000000008000L});
+	public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_annotation2829 = new BitSet(new long[]{0xD1F95C8001800450L,0x00000000020FB1B7L,0xA060000000000000L,0x0000000000003045L});
+	public static final BitSet FOLLOW_annotation_element_in_annotation2835 = new BitSet(new long[]{0xD1F95C8001800450L,0x00000000020FB1B7L,0xA060000000000000L,0x0000000000003045L});
+	public static final BitSet FOLLOW_END_ANNOTATION_DIRECTIVE_in_annotation2838 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_SUBANNOTATION_DIRECTIVE_in_subannotation2871 = new BitSet(new long[]{0x0000000000008000L});
+	public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_subannotation2873 = new BitSet(new long[]{0xD1F95C8100800450L,0x00000000020FB1B7L,0xA060000000000000L,0x0000000000003045L});
+	public static final BitSet FOLLOW_annotation_element_in_subannotation2875 = new BitSet(new long[]{0xD1F95C8100800450L,0x00000000020FB1B7L,0xA060000000000000L,0x0000000000003045L});
+	public static final BitSet FOLLOW_END_SUBANNOTATION_DIRECTIVE_in_subannotation2878 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_ENUM_DIRECTIVE_in_enum_literal2904 = new BitSet(new long[]{0x0000000000008100L});
+	public static final BitSet FOLLOW_reference_type_descriptor_in_enum_literal2906 = new BitSet(new long[]{0x0000000000000200L});
+	public static final BitSet FOLLOW_ARROW_in_enum_literal2908 = new BitSet(new long[]{0xD1F95C8000800450L,0x00000000020FB1B7L,0xA060000000000000L,0x0000000000003045L});
+	public static final BitSet FOLLOW_simple_name_in_enum_literal2910 = new BitSet(new long[]{0x0000000000080000L});
+	public static final BitSet FOLLOW_COLON_in_enum_literal2912 = new BitSet(new long[]{0x0000000000008100L});
+	public static final BitSet FOLLOW_reference_type_descriptor_in_enum_literal2914 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_reference_type_descriptor_in_type_field_method_literal2938 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_reference_type_descriptor_in_type_field_method_literal2947 = new BitSet(new long[]{0x0000000000000200L});
+	public static final BitSet FOLLOW_ARROW_in_type_field_method_literal2949 = new BitSet(new long[]{0xD1F95C8000800450L,0x00000000020FB1B7L,0xA068000000000000L,0x0000000000003045L});
+	public static final BitSet FOLLOW_member_name_in_type_field_method_literal2961 = new BitSet(new long[]{0x0000000000080000L});
+	public static final BitSet FOLLOW_COLON_in_type_field_method_literal2963 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
+	public static final BitSet FOLLOW_nonvoid_type_descriptor_in_type_field_method_literal2965 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_member_name_in_type_field_method_literal2988 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0100000000000000L});
+	public static final BitSet FOLLOW_method_prototype_in_type_field_method_literal2990 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_PRIMITIVE_TYPE_in_type_field_method_literal3023 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_VOID_TYPE_in_type_field_method_literal3029 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_reference_type_descriptor_in_method_reference3040 = new BitSet(new long[]{0x0000000000000200L});
+	public static final BitSet FOLLOW_ARROW_in_method_reference3042 = new BitSet(new long[]{0xD1F95C8000800450L,0x00000000020FB1B7L,0xA068000000000000L,0x0000000000003045L});
+	public static final BitSet FOLLOW_member_name_in_method_reference3046 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0100000000000000L});
+	public static final BitSet FOLLOW_method_prototype_in_method_reference3048 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_reference_type_descriptor_in_field_reference3070 = new BitSet(new long[]{0x0000000000000200L});
+	public static final BitSet FOLLOW_ARROW_in_field_reference3072 = new BitSet(new long[]{0xD1F95C8000800450L,0x00000000020FB1B7L,0xA068000000000000L,0x0000000000003045L});
+	public static final BitSet FOLLOW_member_name_in_field_reference3076 = new BitSet(new long[]{0x0000000000080000L});
+	public static final BitSet FOLLOW_COLON_in_field_reference3078 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
+	public static final BitSet FOLLOW_nonvoid_type_descriptor_in_field_reference3080 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_COLON_in_label3101 = new BitSet(new long[]{0xD1F95C8000800450L,0x00000000020FB1B7L,0xA060000000000000L,0x0000000000003045L});
+	public static final BitSet FOLLOW_simple_name_in_label3103 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_COLON_in_label_ref3122 = new BitSet(new long[]{0xD1F95C8000800450L,0x00000000020FB1B7L,0xA060000000000000L,0x0000000000003045L});
+	public static final BitSet FOLLOW_simple_name_in_label_ref3124 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_REGISTER_in_register_list3138 = new BitSet(new long[]{0x0000000000100002L});
+	public static final BitSet FOLLOW_COMMA_in_register_list3141 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_register_list3143 = new BitSet(new long[]{0x0000000000100002L});
+	public static final BitSet FOLLOW_REGISTER_in_register_range3178 = new BitSet(new long[]{0x0000000000200002L});
+	public static final BitSet FOLLOW_DOTDOT_in_register_range3181 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_register_range3185 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_verification_error_reference3214 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_field_reference_in_verification_error_reference3218 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_method_reference_in_verification_error_reference3222 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_CATCH_DIRECTIVE_in_catch_directive3232 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
+	public static final BitSet FOLLOW_nonvoid_type_descriptor_in_catch_directive3234 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0080000000000000L});
+	public static final BitSet FOLLOW_OPEN_BRACE_in_catch_directive3236 = new BitSet(new long[]{0x0000000000080000L});
+	public static final BitSet FOLLOW_label_ref_in_catch_directive3240 = new BitSet(new long[]{0x0000000000200000L});
+	public static final BitSet FOLLOW_DOTDOT_in_catch_directive3242 = new BitSet(new long[]{0x0000000000080000L});
+	public static final BitSet FOLLOW_label_ref_in_catch_directive3246 = new BitSet(new long[]{0x0000000000020000L});
+	public static final BitSet FOLLOW_CLOSE_BRACE_in_catch_directive3248 = new BitSet(new long[]{0x0000000000080000L});
+	public static final BitSet FOLLOW_label_ref_in_catch_directive3252 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_CATCHALL_DIRECTIVE_in_catchall_directive3284 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0080000000000000L});
+	public static final BitSet FOLLOW_OPEN_BRACE_in_catchall_directive3286 = new BitSet(new long[]{0x0000000000080000L});
+	public static final BitSet FOLLOW_label_ref_in_catchall_directive3290 = new BitSet(new long[]{0x0000000000200000L});
+	public static final BitSet FOLLOW_DOTDOT_in_catchall_directive3292 = new BitSet(new long[]{0x0000000000080000L});
+	public static final BitSet FOLLOW_label_ref_in_catchall_directive3296 = new BitSet(new long[]{0x0000000000020000L});
+	public static final BitSet FOLLOW_CLOSE_BRACE_in_catchall_directive3298 = new BitSet(new long[]{0x0000000000080000L});
+	public static final BitSet FOLLOW_label_ref_in_catchall_directive3302 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_PARAMETER_DIRECTIVE_in_parameter_directive3341 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_parameter_directive3343 = new BitSet(new long[]{0x0000000040100022L});
+	public static final BitSet FOLLOW_COMMA_in_parameter_directive3346 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L});
+	public static final BitSet FOLLOW_STRING_LITERAL_in_parameter_directive3348 = new BitSet(new long[]{0x0000000040000022L});
+	public static final BitSet FOLLOW_annotation_in_parameter_directive3359 = new BitSet(new long[]{0x0000000040000022L});
+	public static final BitSet FOLLOW_END_PARAMETER_DIRECTIVE_in_parameter_directive3372 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_line_directive_in_debug_directive3445 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_local_directive_in_debug_directive3451 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_end_local_directive_in_debug_directive3457 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_restart_local_directive_in_debug_directive3463 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_prologue_directive_in_debug_directive3469 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_epilogue_directive_in_debug_directive3475 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_source_directive_in_debug_directive3481 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_LINE_DIRECTIVE_in_line_directive3491 = new BitSet(new long[]{0x0000000000004800L,0x0000000000000000L,0x8024000000000000L,0x0000000000000020L});
+	public static final BitSet FOLLOW_integral_literal_in_line_directive3493 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_LOCAL_DIRECTIVE_in_local_directive3516 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_local_directive3518 = new BitSet(new long[]{0x0000000000100002L});
+	public static final BitSet FOLLOW_COMMA_in_local_directive3521 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0040000000000000L,0x0000000000000200L});
+	public static final BitSet FOLLOW_NULL_LITERAL_in_local_directive3524 = new BitSet(new long[]{0x0000000000080000L});
+	public static final BitSet FOLLOW_STRING_LITERAL_in_local_directive3530 = new BitSet(new long[]{0x0000000000080000L});
+	public static final BitSet FOLLOW_COLON_in_local_directive3533 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0000000000000000L,0x0000000000002001L});
+	public static final BitSet FOLLOW_VOID_TYPE_in_local_directive3536 = new BitSet(new long[]{0x0000000000100002L});
+	public static final BitSet FOLLOW_nonvoid_type_descriptor_in_local_directive3540 = new BitSet(new long[]{0x0000000000100002L});
+	public static final BitSet FOLLOW_COMMA_in_local_directive3574 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L});
+	public static final BitSet FOLLOW_STRING_LITERAL_in_local_directive3578 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_END_LOCAL_DIRECTIVE_in_end_local_directive3620 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_end_local_directive3622 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_RESTART_LOCAL_DIRECTIVE_in_restart_local_directive3645 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_restart_local_directive3647 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_PROLOGUE_DIRECTIVE_in_prologue_directive3670 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_EPILOGUE_DIRECTIVE_in_epilogue_directive3691 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_SOURCE_DIRECTIVE_in_source_directive3712 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L});
+	public static final BitSet FOLLOW_STRING_LITERAL_in_source_directive3714 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT12x_in_instruction_format12x3739 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT12x_OR_ID_in_instruction_format12x3745 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22s_in_instruction_format22s3760 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22s_OR_ID_in_instruction_format22s3766 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT31i_in_instruction_format31i3781 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT31i_OR_ID_in_instruction_format31i3787 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format10t_in_instruction3804 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format10x_in_instruction3810 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format10x_odex_in_instruction3816 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format11n_in_instruction3822 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format11x_in_instruction3828 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format12x_in_instruction3834 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format20bc_in_instruction3840 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format20t_in_instruction3846 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format21c_field_in_instruction3852 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format21c_field_odex_in_instruction3858 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format21c_string_in_instruction3864 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format21c_type_in_instruction3870 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format21c_lambda_in_instruction3876 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format21c_method_in_instruction3882 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format21ih_in_instruction3888 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format21lh_in_instruction3894 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format21s_in_instruction3900 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format21t_in_instruction3906 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format22b_in_instruction3912 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format22c_field_in_instruction3918 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format22c_field_odex_in_instruction3924 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format22c_type_in_instruction3930 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format22c_string_in_instruction3936 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format22cs_field_in_instruction3942 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format22s_in_instruction3948 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format22t_in_instruction3954 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format22x_in_instruction3960 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format23x_in_instruction3966 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format25x_in_instruction3972 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format30t_in_instruction3978 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format31c_in_instruction3984 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format31i_in_instruction3990 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format31t_in_instruction3996 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format32x_in_instruction4002 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format35c_method_in_instruction4008 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format35c_type_in_instruction4014 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format35c_method_odex_in_instruction4020 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format35mi_method_in_instruction4026 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format35ms_method_in_instruction4032 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format3rc_method_in_instruction4038 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format3rc_method_odex_in_instruction4044 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format3rc_type_in_instruction4050 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format3rmi_method_in_instruction4056 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format3rms_method_in_instruction4062 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format51l_in_instruction4068 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_array_data_directive_in_instruction4074 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_packed_switch_directive_in_instruction4080 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_sparse_switch_directive_in_instruction4086 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT10t_in_insn_format10t4106 = new BitSet(new long[]{0x0000000000080000L});
+	public static final BitSet FOLLOW_label_ref_in_insn_format10t4108 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT10x_in_insn_format10x4138 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT10x_ODEX_in_insn_format10x_odex4166 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT11n_in_insn_format11n4187 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format11n4189 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format11n4191 = new BitSet(new long[]{0x0000000000004800L,0x0000000000000000L,0x8024000000000000L,0x0000000000000020L});
+	public static final BitSet FOLLOW_integral_literal_in_insn_format11n4193 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT11x_in_insn_format11x4225 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format11x4227 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_instruction_format12x_in_insn_format12x4257 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format12x4259 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format12x4261 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format12x4263 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT20bc_in_insn_format20bc4295 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
+	public static final BitSet FOLLOW_VERIFICATION_ERROR_TYPE_in_insn_format20bc4297 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format20bc4299 = new BitSet(new long[]{0xD1F95C8000808550L,0x00000000020FB1B7L,0xA068000000000000L,0x0000000000003045L});
+	public static final BitSet FOLLOW_verification_error_reference_in_insn_format20bc4301 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT20t_in_insn_format20t4338 = new BitSet(new long[]{0x0000000000080000L});
+	public static final BitSet FOLLOW_label_ref_in_insn_format20t4340 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_FIELD_in_insn_format21c_field4370 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format21c_field4372 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format21c_field4374 = new BitSet(new long[]{0xD1F95C8000808550L,0x00000000020FB1B7L,0xA068000000000000L,0x0000000000003045L});
+	public static final BitSet FOLLOW_field_reference_in_insn_format21c_field4376 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_FIELD_ODEX_in_insn_format21c_field_odex4408 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format21c_field_odex4410 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format21c_field_odex4412 = new BitSet(new long[]{0xD1F95C8000808550L,0x00000000020FB1B7L,0xA068000000000000L,0x0000000000003045L});
+	public static final BitSet FOLLOW_field_reference_in_insn_format21c_field_odex4414 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_STRING_in_insn_format21c_string4452 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format21c_string4454 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format21c_string4456 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L});
+	public static final BitSet FOLLOW_STRING_LITERAL_in_insn_format21c_string4458 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_TYPE_in_insn_format21c_type4490 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format21c_type4492 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format21c_type4494 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
+	public static final BitSet FOLLOW_nonvoid_type_descriptor_in_insn_format21c_type4496 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_LAMBDA_in_insn_format21c_lambda4528 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format21c_lambda4530 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format21c_lambda4532 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L});
+	public static final BitSet FOLLOW_STRING_LITERAL_in_insn_format21c_lambda4534 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_METHOD_in_insn_format21c_method4566 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format21c_method4568 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format21c_method4570 = new BitSet(new long[]{0xD1F95C8000808550L,0x00000000020FB1B7L,0xA068000000000000L,0x0000000000003045L});
+	public static final BitSet FOLLOW_method_reference_in_insn_format21c_method4572 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21ih_in_insn_format21ih4604 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format21ih4606 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format21ih4608 = new BitSet(new long[]{0x000000C000004C00L,0x0000000000000000L,0x8024000000000000L,0x0000000000000020L});
+	public static final BitSet FOLLOW_fixed_32bit_literal_in_insn_format21ih4610 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21lh_in_insn_format21lh4642 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format21lh4644 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format21lh4646 = new BitSet(new long[]{0x000000C000004C00L,0x0000000000000000L,0x8024000000000000L,0x0000000000000020L});
+	public static final BitSet FOLLOW_fixed_32bit_literal_in_insn_format21lh4648 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21s_in_insn_format21s4680 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format21s4682 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format21s4684 = new BitSet(new long[]{0x0000000000004800L,0x0000000000000000L,0x8024000000000000L,0x0000000000000020L});
+	public static final BitSet FOLLOW_integral_literal_in_insn_format21s4686 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21t_in_insn_format21t4718 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format21t4720 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format21t4722 = new BitSet(new long[]{0x0000000000080000L});
+	public static final BitSet FOLLOW_label_ref_in_insn_format21t4724 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22b_in_insn_format22b4756 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format22b4758 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format22b4760 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format22b4762 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format22b4764 = new BitSet(new long[]{0x0000000000004800L,0x0000000000000000L,0x8024000000000000L,0x0000000000000020L});
+	public static final BitSet FOLLOW_integral_literal_in_insn_format22b4766 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_FIELD_in_insn_format22c_field4800 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format22c_field4802 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format22c_field4804 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format22c_field4806 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format22c_field4808 = new BitSet(new long[]{0xD1F95C8000808550L,0x00000000020FB1B7L,0xA068000000000000L,0x0000000000003045L});
+	public static final BitSet FOLLOW_field_reference_in_insn_format22c_field4810 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_FIELD_ODEX_in_insn_format22c_field_odex4844 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format22c_field_odex4846 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format22c_field_odex4848 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format22c_field_odex4850 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format22c_field_odex4852 = new BitSet(new long[]{0xD1F95C8000808550L,0x00000000020FB1B7L,0xA068000000000000L,0x0000000000003045L});
+	public static final BitSet FOLLOW_field_reference_in_insn_format22c_field_odex4854 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_TYPE_in_insn_format22c_type4894 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format22c_type4896 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format22c_type4898 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format22c_type4900 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format22c_type4902 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
+	public static final BitSet FOLLOW_nonvoid_type_descriptor_in_insn_format22c_type4904 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_STRING_in_insn_format22c_string4938 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format22c_string4940 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format22c_string4942 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format22c_string4944 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format22c_string4946 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L});
+	public static final BitSet FOLLOW_STRING_LITERAL_in_insn_format22c_string4948 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22cs_FIELD_in_insn_format22cs_field4982 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format22cs_field4984 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format22cs_field4986 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format22cs_field4988 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format22cs_field4990 = new BitSet(new long[]{0x0000002000000000L});
+	public static final BitSet FOLLOW_FIELD_OFFSET_in_insn_format22cs_field4992 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_instruction_format22s_in_insn_format22s5013 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format22s5015 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format22s5017 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format22s5019 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format22s5021 = new BitSet(new long[]{0x0000000000004800L,0x0000000000000000L,0x8024000000000000L,0x0000000000000020L});
+	public static final BitSet FOLLOW_integral_literal_in_insn_format22s5023 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22t_in_insn_format22t5057 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format22t5059 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format22t5061 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format22t5063 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format22t5065 = new BitSet(new long[]{0x0000000000080000L});
+	public static final BitSet FOLLOW_label_ref_in_insn_format22t5067 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22x_in_insn_format22x5101 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format22x5103 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format22x5105 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format22x5107 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT23x_in_insn_format23x5139 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format23x5141 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format23x5143 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format23x5145 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format23x5147 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format23x5149 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT25x_in_insn_format25x5183 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format25x5185 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format25x5187 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0080000000000000L});
+	public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format25x5189 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_register_list_in_insn_format25x5191 = new BitSet(new long[]{0x0000000000020000L});
+	public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format25x5193 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT30t_in_insn_format30t5225 = new BitSet(new long[]{0x0000000000080000L});
+	public static final BitSet FOLLOW_label_ref_in_insn_format30t5227 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT31c_in_insn_format31c5257 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format31c5259 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format31c5261 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L});
+	public static final BitSet FOLLOW_STRING_LITERAL_in_insn_format31c5263 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_instruction_format31i_in_insn_format31i5294 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format31i5296 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format31i5298 = new BitSet(new long[]{0x000000C000004C00L,0x0000000000000000L,0x8024000000000000L,0x0000000000000020L});
+	public static final BitSet FOLLOW_fixed_32bit_literal_in_insn_format31i5300 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT31t_in_insn_format31t5332 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format31t5334 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format31t5336 = new BitSet(new long[]{0x0000000000080000L});
+	public static final BitSet FOLLOW_label_ref_in_insn_format31t5338 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT32x_in_insn_format32x5370 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format32x5372 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format32x5374 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format32x5376 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_METHOD_in_insn_format35c_method5408 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0080000000000000L});
+	public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format35c_method5410 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_register_list_in_insn_format35c_method5412 = new BitSet(new long[]{0x0000000000020000L});
+	public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format35c_method5414 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format35c_method5416 = new BitSet(new long[]{0xD1F95C8000808550L,0x00000000020FB1B7L,0xA068000000000000L,0x0000000000003045L});
+	public static final BitSet FOLLOW_method_reference_in_insn_format35c_method5418 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_TYPE_in_insn_format35c_type5450 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0080000000000000L});
+	public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format35c_type5452 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_register_list_in_insn_format35c_type5454 = new BitSet(new long[]{0x0000000000020000L});
+	public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format35c_type5456 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format35c_type5458 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
+	public static final BitSet FOLLOW_nonvoid_type_descriptor_in_insn_format35c_type5460 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_METHOD_ODEX_in_insn_format35c_method_odex5492 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0080000000000000L});
+	public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format35c_method_odex5494 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_register_list_in_insn_format35c_method_odex5496 = new BitSet(new long[]{0x0000000000020000L});
+	public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format35c_method_odex5498 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format35c_method_odex5500 = new BitSet(new long[]{0xD1F95C8000808550L,0x00000000020FB1B7L,0xA068000000000000L,0x0000000000003045L});
+	public static final BitSet FOLLOW_method_reference_in_insn_format35c_method_odex5502 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT35mi_METHOD_in_insn_format35mi_method5523 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0080000000000000L});
+	public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format35mi_method5525 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_register_list_in_insn_format35mi_method5527 = new BitSet(new long[]{0x0000000000020000L});
+	public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format35mi_method5529 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format35mi_method5531 = new BitSet(new long[]{0x0000020000000000L});
+	public static final BitSet FOLLOW_INLINE_INDEX_in_insn_format35mi_method5533 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT35ms_METHOD_in_insn_format35ms_method5554 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0080000000000000L});
+	public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format35ms_method5556 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_register_list_in_insn_format35ms_method5558 = new BitSet(new long[]{0x0000000000020000L});
+	public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format35ms_method5560 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format35ms_method5562 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
+	public static final BitSet FOLLOW_VTABLE_INDEX_in_insn_format35ms_method5564 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT3rc_METHOD_in_insn_format3rc_method5585 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0080000000000000L});
+	public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format3rc_method5587 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_register_range_in_insn_format3rc_method5589 = new BitSet(new long[]{0x0000000000020000L});
+	public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format3rc_method5591 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format3rc_method5593 = new BitSet(new long[]{0xD1F95C8000808550L,0x00000000020FB1B7L,0xA068000000000000L,0x0000000000003045L});
+	public static final BitSet FOLLOW_method_reference_in_insn_format3rc_method5595 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT3rc_METHOD_ODEX_in_insn_format3rc_method_odex5627 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0080000000000000L});
+	public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format3rc_method_odex5629 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_register_list_in_insn_format3rc_method_odex5631 = new BitSet(new long[]{0x0000000000020000L});
+	public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format3rc_method_odex5633 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format3rc_method_odex5635 = new BitSet(new long[]{0xD1F95C8000808550L,0x00000000020FB1B7L,0xA068000000000000L,0x0000000000003045L});
+	public static final BitSet FOLLOW_method_reference_in_insn_format3rc_method_odex5637 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT3rc_TYPE_in_insn_format3rc_type5658 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0080000000000000L});
+	public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format3rc_type5660 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_register_range_in_insn_format3rc_type5662 = new BitSet(new long[]{0x0000000000020000L});
+	public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format3rc_type5664 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format3rc_type5666 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
+	public static final BitSet FOLLOW_nonvoid_type_descriptor_in_insn_format3rc_type5668 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT3rmi_METHOD_in_insn_format3rmi_method5700 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0080000000000000L});
+	public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format3rmi_method5702 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_register_range_in_insn_format3rmi_method5704 = new BitSet(new long[]{0x0000000000020000L});
+	public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format3rmi_method5706 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format3rmi_method5708 = new BitSet(new long[]{0x0000020000000000L});
+	public static final BitSet FOLLOW_INLINE_INDEX_in_insn_format3rmi_method5710 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT3rms_METHOD_in_insn_format3rms_method5731 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0080000000000000L});
+	public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format3rms_method5733 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_register_range_in_insn_format3rms_method5735 = new BitSet(new long[]{0x0000000000020000L});
+	public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format3rms_method5737 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format3rms_method5739 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
+	public static final BitSet FOLLOW_VTABLE_INDEX_in_insn_format3rms_method5741 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT51l_in_insn_format51l5762 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format51l5764 = new BitSet(new long[]{0x0000000000100000L});
+	public static final BitSet FOLLOW_COMMA_in_insn_format51l5766 = new BitSet(new long[]{0x000000C000C04C00L,0x0000000000000000L,0x8024000000000000L,0x0000000000000020L});
+	public static final BitSet FOLLOW_fixed_literal_in_insn_format51l5768 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_ARRAY_DATA_DIRECTIVE_in_insn_array_data_directive5795 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x8020000000000000L});
+	public static final BitSet FOLLOW_parsed_integer_literal_in_insn_array_data_directive5801 = new BitSet(new long[]{0x000000C002C04C00L,0x0000000000000000L,0x8024000000000000L,0x0000000000000020L});
+	public static final BitSet FOLLOW_fixed_literal_in_insn_array_data_directive5813 = new BitSet(new long[]{0x000000C002C04C00L,0x0000000000000000L,0x8024000000000000L,0x0000000000000020L});
+	public static final BitSet FOLLOW_END_ARRAY_DATA_DIRECTIVE_in_insn_array_data_directive5816 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_PACKED_SWITCH_DIRECTIVE_in_insn_packed_switch_directive5862 = new BitSet(new long[]{0x000000C000004C00L,0x0000000000000000L,0x8024000000000000L,0x0000000000000020L});
+	public static final BitSet FOLLOW_fixed_32bit_literal_in_insn_packed_switch_directive5868 = new BitSet(new long[]{0x0000000020080000L});
+	public static final BitSet FOLLOW_label_ref_in_insn_packed_switch_directive5874 = new BitSet(new long[]{0x0000000020080000L});
+	public static final BitSet FOLLOW_END_PACKED_SWITCH_DIRECTIVE_in_insn_packed_switch_directive5881 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_SPARSE_SWITCH_DIRECTIVE_in_insn_sparse_switch_directive5955 = new BitSet(new long[]{0x000000C080004C00L,0x0000000000000000L,0x8024000000000000L,0x0000000000000020L});
+	public static final BitSet FOLLOW_fixed_32bit_literal_in_insn_sparse_switch_directive5962 = new BitSet(new long[]{0x0000000000000200L});
+	public static final BitSet FOLLOW_ARROW_in_insn_sparse_switch_directive5964 = new BitSet(new long[]{0x0000000000080000L});
+	public static final BitSet FOLLOW_label_ref_in_insn_sparse_switch_directive5966 = new BitSet(new long[]{0x000000C080004C00L,0x0000000000000000L,0x8024000000000000L,0x0000000000000020L});
+	public static final BitSet FOLLOW_END_SPARSE_SWITCH_DIRECTIVE_in_insn_sparse_switch_directive5974 = new BitSet(new long[]{0x0000000000000002L});
+}
diff --git a/smali/src/main/java/org/jf/smali/smaliTreeWalker.java b/smali/src/main/java/org/jf/smali/smaliTreeWalker.java
new file mode 100644
index 0000000..a1c311d
--- /dev/null
+++ b/smali/src/main/java/org/jf/smali/smaliTreeWalker.java
@@ -0,0 +1,7749 @@
+// $ANTLR 3.5 /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g 2015-04-23 12:35:17
+
+package org.jf.smali;
+
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import org.antlr.runtime.BitSet;
+import org.antlr.runtime.*;
+import org.antlr.runtime.tree.CommonTree;
+import org.antlr.runtime.tree.TreeNodeStream;
+import org.antlr.runtime.tree.TreeParser;
+import org.antlr.runtime.tree.TreeRuleReturnScope;
+import org.jf.dexlib2.*;
+import org.jf.dexlib2.builder.Label;
+import org.jf.dexlib2.builder.MethodImplementationBuilder;
+import org.jf.dexlib2.builder.SwitchLabelElement;
+import org.jf.dexlib2.builder.instruction.*;
+import org.jf.dexlib2.iface.Annotation;
+import org.jf.dexlib2.iface.AnnotationElement;
+import org.jf.dexlib2.iface.ClassDef;
+import org.jf.dexlib2.iface.MethodImplementation;
+import org.jf.dexlib2.iface.reference.FieldReference;
+import org.jf.dexlib2.iface.reference.MethodReference;
+import org.jf.dexlib2.iface.value.EncodedValue;
+import org.jf.dexlib2.immutable.ImmutableAnnotation;
+import org.jf.dexlib2.immutable.ImmutableAnnotationElement;
+import org.jf.dexlib2.immutable.reference.ImmutableFieldReference;
+import org.jf.dexlib2.immutable.reference.ImmutableMethodReference;
+import org.jf.dexlib2.immutable.reference.ImmutableReference;
+import org.jf.dexlib2.immutable.reference.ImmutableTypeReference;
+import org.jf.dexlib2.immutable.value.*;
+import org.jf.dexlib2.util.MethodUtil;
+import org.jf.dexlib2.writer.InstructionFactory;
+import org.jf.dexlib2.writer.builder.*;
+import org.jf.util.LinearSearch;
+
+import java.util.*;
+
+
+import org.antlr.runtime.*;
+import org.antlr.runtime.tree.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class smaliTreeWalker extends TreeParser {
+	public static final String[] tokenNames = new String[] {
+		"<invalid>", "<EOR>", "<DOWN>", "<UP>", "ACCESS_SPEC", "ANNOTATION_DIRECTIVE",
+		"ANNOTATION_VISIBILITY", "ARRAY_DATA_DIRECTIVE", "ARRAY_DESCRIPTOR", "ARROW",
+		"BOOL_LITERAL", "BYTE_LITERAL", "CATCHALL_DIRECTIVE", "CATCH_DIRECTIVE",
+		"CHAR_LITERAL", "CLASS_DESCRIPTOR", "CLASS_DIRECTIVE", "CLOSE_BRACE",
+		"CLOSE_PAREN", "COLON", "COMMA", "DOTDOT", "DOUBLE_LITERAL", "DOUBLE_LITERAL_OR_ID",
+		"END_ANNOTATION_DIRECTIVE", "END_ARRAY_DATA_DIRECTIVE", "END_FIELD_DIRECTIVE",
+		"END_LOCAL_DIRECTIVE", "END_METHOD_DIRECTIVE", "END_PACKED_SWITCH_DIRECTIVE",
+		"END_PARAMETER_DIRECTIVE", "END_SPARSE_SWITCH_DIRECTIVE", "END_SUBANNOTATION_DIRECTIVE",
+		"ENUM_DIRECTIVE", "EPILOGUE_DIRECTIVE", "EQUAL", "FIELD_DIRECTIVE", "FIELD_OFFSET",
+		"FLOAT_LITERAL", "FLOAT_LITERAL_OR_ID", "IMPLEMENTS_DIRECTIVE", "INLINE_INDEX",
+		"INSTRUCTION_FORMAT10t", "INSTRUCTION_FORMAT10x", "INSTRUCTION_FORMAT10x_ODEX",
+		"INSTRUCTION_FORMAT11n", "INSTRUCTION_FORMAT11x", "INSTRUCTION_FORMAT12x",
+		"INSTRUCTION_FORMAT12x_OR_ID", "INSTRUCTION_FORMAT20bc", "INSTRUCTION_FORMAT20t",
+		"INSTRUCTION_FORMAT21c_FIELD", "INSTRUCTION_FORMAT21c_FIELD_ODEX", "INSTRUCTION_FORMAT21c_LAMBDA",
+		"INSTRUCTION_FORMAT21c_METHOD", "INSTRUCTION_FORMAT21c_STRING", "INSTRUCTION_FORMAT21c_TYPE",
+		"INSTRUCTION_FORMAT21ih", "INSTRUCTION_FORMAT21lh", "INSTRUCTION_FORMAT21s",
+		"INSTRUCTION_FORMAT21t", "INSTRUCTION_FORMAT22b", "INSTRUCTION_FORMAT22c_FIELD",
+		"INSTRUCTION_FORMAT22c_FIELD_ODEX", "INSTRUCTION_FORMAT22c_STRING", "INSTRUCTION_FORMAT22c_TYPE",
+		"INSTRUCTION_FORMAT22cs_FIELD", "INSTRUCTION_FORMAT22s", "INSTRUCTION_FORMAT22s_OR_ID",
+		"INSTRUCTION_FORMAT22t", "INSTRUCTION_FORMAT22x", "INSTRUCTION_FORMAT23x",
+		"INSTRUCTION_FORMAT25x", "INSTRUCTION_FORMAT30t", "INSTRUCTION_FORMAT31c",
+		"INSTRUCTION_FORMAT31i", "INSTRUCTION_FORMAT31i_OR_ID", "INSTRUCTION_FORMAT31t",
+		"INSTRUCTION_FORMAT32x", "INSTRUCTION_FORMAT35c_METHOD", "INSTRUCTION_FORMAT35c_METHOD_ODEX",
+		"INSTRUCTION_FORMAT35c_TYPE", "INSTRUCTION_FORMAT35mi_METHOD", "INSTRUCTION_FORMAT35ms_METHOD",
+		"INSTRUCTION_FORMAT3rc_METHOD", "INSTRUCTION_FORMAT3rc_METHOD_ODEX", "INSTRUCTION_FORMAT3rc_TYPE",
+		"INSTRUCTION_FORMAT3rmi_METHOD", "INSTRUCTION_FORMAT3rms_METHOD", "INSTRUCTION_FORMAT51l",
+		"INTEGER_LITERAL", "INVALID_TOKEN", "I_ACCESS_LIST", "I_ANNOTATION", "I_ANNOTATIONS",
+		"I_ANNOTATION_ELEMENT", "I_ARRAY_ELEMENTS", "I_ARRAY_ELEMENT_SIZE", "I_CATCH",
+		"I_CATCHALL", "I_CATCHES", "I_CLASS_DEF", "I_ENCODED_ARRAY", "I_ENCODED_ENUM",
+		"I_ENCODED_FIELD", "I_ENCODED_METHOD", "I_END_LOCAL", "I_EPILOGUE", "I_FIELD",
+		"I_FIELDS", "I_FIELD_INITIAL_VALUE", "I_FIELD_TYPE", "I_IMPLEMENTS", "I_LABEL",
+		"I_LINE", "I_LOCAL", "I_LOCALS", "I_METHOD", "I_METHODS", "I_METHOD_PROTOTYPE",
+		"I_METHOD_RETURN_TYPE", "I_ORDERED_METHOD_ITEMS", "I_PACKED_SWITCH_ELEMENTS",
+		"I_PACKED_SWITCH_START_KEY", "I_PARAMETER", "I_PARAMETERS", "I_PARAMETER_NOT_SPECIFIED",
+		"I_PROLOGUE", "I_REGISTERS", "I_REGISTER_LIST", "I_REGISTER_RANGE", "I_RESTART_LOCAL",
+		"I_SOURCE", "I_SPARSE_SWITCH_ELEMENTS", "I_STATEMENT_ARRAY_DATA", "I_STATEMENT_FORMAT10t",
+		"I_STATEMENT_FORMAT10x", "I_STATEMENT_FORMAT11n", "I_STATEMENT_FORMAT11x",
+		"I_STATEMENT_FORMAT12x", "I_STATEMENT_FORMAT20bc", "I_STATEMENT_FORMAT20t",
+		"I_STATEMENT_FORMAT21c_FIELD", "I_STATEMENT_FORMAT21c_LAMBDA", "I_STATEMENT_FORMAT21c_METHOD",
+		"I_STATEMENT_FORMAT21c_STRING", "I_STATEMENT_FORMAT21c_TYPE", "I_STATEMENT_FORMAT21ih",
+		"I_STATEMENT_FORMAT21lh", "I_STATEMENT_FORMAT21s", "I_STATEMENT_FORMAT21t",
+		"I_STATEMENT_FORMAT22b", "I_STATEMENT_FORMAT22c_FIELD", "I_STATEMENT_FORMAT22c_STRING",
+		"I_STATEMENT_FORMAT22c_TYPE", "I_STATEMENT_FORMAT22s", "I_STATEMENT_FORMAT22t",
+		"I_STATEMENT_FORMAT22x", "I_STATEMENT_FORMAT23x", "I_STATEMENT_FORMAT25x",
+		"I_STATEMENT_FORMAT30t", "I_STATEMENT_FORMAT31c", "I_STATEMENT_FORMAT31i",
+		"I_STATEMENT_FORMAT31t", "I_STATEMENT_FORMAT32x", "I_STATEMENT_FORMAT35c_METHOD",
+		"I_STATEMENT_FORMAT35c_TYPE", "I_STATEMENT_FORMAT3rc_METHOD", "I_STATEMENT_FORMAT3rc_TYPE",
+		"I_STATEMENT_FORMAT51l", "I_STATEMENT_PACKED_SWITCH", "I_STATEMENT_SPARSE_SWITCH",
+		"I_SUBANNOTATION", "I_SUPER", "LINE_COMMENT", "LINE_DIRECTIVE", "LOCALS_DIRECTIVE",
+		"LOCAL_DIRECTIVE", "LONG_LITERAL", "MEMBER_NAME", "METHOD_DIRECTIVE",
+		"NEGATIVE_INTEGER_LITERAL", "NULL_LITERAL", "OPEN_BRACE", "OPEN_PAREN",
+		"PACKED_SWITCH_DIRECTIVE", "PARAMETER_DIRECTIVE", "PARAM_LIST_END", "PARAM_LIST_OR_ID_END",
+		"PARAM_LIST_OR_ID_START", "PARAM_LIST_START", "POSITIVE_INTEGER_LITERAL",
+		"PRIMITIVE_TYPE", "PROLOGUE_DIRECTIVE", "REGISTER", "REGISTERS_DIRECTIVE",
+		"RESTART_LOCAL_DIRECTIVE", "SHORT_LITERAL", "SIMPLE_NAME", "SOURCE_DIRECTIVE",
+		"SPARSE_SWITCH_DIRECTIVE", "STRING_LITERAL", "SUBANNOTATION_DIRECTIVE",
+		"SUPER_DIRECTIVE", "VERIFICATION_ERROR_TYPE", "VOID_TYPE", "VTABLE_INDEX",
+		"WHITE_SPACE"
+	};
+	public static final int EOF=-1;
+	public static final int ACCESS_SPEC=4;
+	public static final int ANNOTATION_DIRECTIVE=5;
+	public static final int ANNOTATION_VISIBILITY=6;
+	public static final int ARRAY_DATA_DIRECTIVE=7;
+	public static final int ARRAY_DESCRIPTOR=8;
+	public static final int ARROW=9;
+	public static final int BOOL_LITERAL=10;
+	public static final int BYTE_LITERAL=11;
+	public static final int CATCHALL_DIRECTIVE=12;
+	public static final int CATCH_DIRECTIVE=13;
+	public static final int CHAR_LITERAL=14;
+	public static final int CLASS_DESCRIPTOR=15;
+	public static final int CLASS_DIRECTIVE=16;
+	public static final int CLOSE_BRACE=17;
+	public static final int CLOSE_PAREN=18;
+	public static final int COLON=19;
+	public static final int COMMA=20;
+	public static final int DOTDOT=21;
+	public static final int DOUBLE_LITERAL=22;
+	public static final int DOUBLE_LITERAL_OR_ID=23;
+	public static final int END_ANNOTATION_DIRECTIVE=24;
+	public static final int END_ARRAY_DATA_DIRECTIVE=25;
+	public static final int END_FIELD_DIRECTIVE=26;
+	public static final int END_LOCAL_DIRECTIVE=27;
+	public static final int END_METHOD_DIRECTIVE=28;
+	public static final int END_PACKED_SWITCH_DIRECTIVE=29;
+	public static final int END_PARAMETER_DIRECTIVE=30;
+	public static final int END_SPARSE_SWITCH_DIRECTIVE=31;
+	public static final int END_SUBANNOTATION_DIRECTIVE=32;
+	public static final int ENUM_DIRECTIVE=33;
+	public static final int EPILOGUE_DIRECTIVE=34;
+	public static final int EQUAL=35;
+	public static final int FIELD_DIRECTIVE=36;
+	public static final int FIELD_OFFSET=37;
+	public static final int FLOAT_LITERAL=38;
+	public static final int FLOAT_LITERAL_OR_ID=39;
+	public static final int IMPLEMENTS_DIRECTIVE=40;
+	public static final int INLINE_INDEX=41;
+	public static final int INSTRUCTION_FORMAT10t=42;
+	public static final int INSTRUCTION_FORMAT10x=43;
+	public static final int INSTRUCTION_FORMAT10x_ODEX=44;
+	public static final int INSTRUCTION_FORMAT11n=45;
+	public static final int INSTRUCTION_FORMAT11x=46;
+	public static final int INSTRUCTION_FORMAT12x=47;
+	public static final int INSTRUCTION_FORMAT12x_OR_ID=48;
+	public static final int INSTRUCTION_FORMAT20bc=49;
+	public static final int INSTRUCTION_FORMAT20t=50;
+	public static final int INSTRUCTION_FORMAT21c_FIELD=51;
+	public static final int INSTRUCTION_FORMAT21c_FIELD_ODEX=52;
+	public static final int INSTRUCTION_FORMAT21c_LAMBDA=53;
+	public static final int INSTRUCTION_FORMAT21c_METHOD=54;
+	public static final int INSTRUCTION_FORMAT21c_STRING=55;
+	public static final int INSTRUCTION_FORMAT21c_TYPE=56;
+	public static final int INSTRUCTION_FORMAT21ih=57;
+	public static final int INSTRUCTION_FORMAT21lh=58;
+	public static final int INSTRUCTION_FORMAT21s=59;
+	public static final int INSTRUCTION_FORMAT21t=60;
+	public static final int INSTRUCTION_FORMAT22b=61;
+	public static final int INSTRUCTION_FORMAT22c_FIELD=62;
+	public static final int INSTRUCTION_FORMAT22c_FIELD_ODEX=63;
+	public static final int INSTRUCTION_FORMAT22c_STRING=64;
+	public static final int INSTRUCTION_FORMAT22c_TYPE=65;
+	public static final int INSTRUCTION_FORMAT22cs_FIELD=66;
+	public static final int INSTRUCTION_FORMAT22s=67;
+	public static final int INSTRUCTION_FORMAT22s_OR_ID=68;
+	public static final int INSTRUCTION_FORMAT22t=69;
+	public static final int INSTRUCTION_FORMAT22x=70;
+	public static final int INSTRUCTION_FORMAT23x=71;
+	public static final int INSTRUCTION_FORMAT25x=72;
+	public static final int INSTRUCTION_FORMAT30t=73;
+	public static final int INSTRUCTION_FORMAT31c=74;
+	public static final int INSTRUCTION_FORMAT31i=75;
+	public static final int INSTRUCTION_FORMAT31i_OR_ID=76;
+	public static final int INSTRUCTION_FORMAT31t=77;
+	public static final int INSTRUCTION_FORMAT32x=78;
+	public static final int INSTRUCTION_FORMAT35c_METHOD=79;
+	public static final int INSTRUCTION_FORMAT35c_METHOD_ODEX=80;
+	public static final int INSTRUCTION_FORMAT35c_TYPE=81;
+	public static final int INSTRUCTION_FORMAT35mi_METHOD=82;
+	public static final int INSTRUCTION_FORMAT35ms_METHOD=83;
+	public static final int INSTRUCTION_FORMAT3rc_METHOD=84;
+	public static final int INSTRUCTION_FORMAT3rc_METHOD_ODEX=85;
+	public static final int INSTRUCTION_FORMAT3rc_TYPE=86;
+	public static final int INSTRUCTION_FORMAT3rmi_METHOD=87;
+	public static final int INSTRUCTION_FORMAT3rms_METHOD=88;
+	public static final int INSTRUCTION_FORMAT51l=89;
+	public static final int INTEGER_LITERAL=90;
+	public static final int INVALID_TOKEN=91;
+	public static final int I_ACCESS_LIST=92;
+	public static final int I_ANNOTATION=93;
+	public static final int I_ANNOTATIONS=94;
+	public static final int I_ANNOTATION_ELEMENT=95;
+	public static final int I_ARRAY_ELEMENTS=96;
+	public static final int I_ARRAY_ELEMENT_SIZE=97;
+	public static final int I_CATCH=98;
+	public static final int I_CATCHALL=99;
+	public static final int I_CATCHES=100;
+	public static final int I_CLASS_DEF=101;
+	public static final int I_ENCODED_ARRAY=102;
+	public static final int I_ENCODED_ENUM=103;
+	public static final int I_ENCODED_FIELD=104;
+	public static final int I_ENCODED_METHOD=105;
+	public static final int I_END_LOCAL=106;
+	public static final int I_EPILOGUE=107;
+	public static final int I_FIELD=108;
+	public static final int I_FIELDS=109;
+	public static final int I_FIELD_INITIAL_VALUE=110;
+	public static final int I_FIELD_TYPE=111;
+	public static final int I_IMPLEMENTS=112;
+	public static final int I_LABEL=113;
+	public static final int I_LINE=114;
+	public static final int I_LOCAL=115;
+	public static final int I_LOCALS=116;
+	public static final int I_METHOD=117;
+	public static final int I_METHODS=118;
+	public static final int I_METHOD_PROTOTYPE=119;
+	public static final int I_METHOD_RETURN_TYPE=120;
+	public static final int I_ORDERED_METHOD_ITEMS=121;
+	public static final int I_PACKED_SWITCH_ELEMENTS=122;
+	public static final int I_PACKED_SWITCH_START_KEY=123;
+	public static final int I_PARAMETER=124;
+	public static final int I_PARAMETERS=125;
+	public static final int I_PARAMETER_NOT_SPECIFIED=126;
+	public static final int I_PROLOGUE=127;
+	public static final int I_REGISTERS=128;
+	public static final int I_REGISTER_LIST=129;
+	public static final int I_REGISTER_RANGE=130;
+	public static final int I_RESTART_LOCAL=131;
+	public static final int I_SOURCE=132;
+	public static final int I_SPARSE_SWITCH_ELEMENTS=133;
+	public static final int I_STATEMENT_ARRAY_DATA=134;
+	public static final int I_STATEMENT_FORMAT10t=135;
+	public static final int I_STATEMENT_FORMAT10x=136;
+	public static final int I_STATEMENT_FORMAT11n=137;
+	public static final int I_STATEMENT_FORMAT11x=138;
+	public static final int I_STATEMENT_FORMAT12x=139;
+	public static final int I_STATEMENT_FORMAT20bc=140;
+	public static final int I_STATEMENT_FORMAT20t=141;
+	public static final int I_STATEMENT_FORMAT21c_FIELD=142;
+	public static final int I_STATEMENT_FORMAT21c_LAMBDA=143;
+	public static final int I_STATEMENT_FORMAT21c_METHOD=144;
+	public static final int I_STATEMENT_FORMAT21c_STRING=145;
+	public static final int I_STATEMENT_FORMAT21c_TYPE=146;
+	public static final int I_STATEMENT_FORMAT21ih=147;
+	public static final int I_STATEMENT_FORMAT21lh=148;
+	public static final int I_STATEMENT_FORMAT21s=149;
+	public static final int I_STATEMENT_FORMAT21t=150;
+	public static final int I_STATEMENT_FORMAT22b=151;
+	public static final int I_STATEMENT_FORMAT22c_FIELD=152;
+	public static final int I_STATEMENT_FORMAT22c_STRING=153;
+	public static final int I_STATEMENT_FORMAT22c_TYPE=154;
+	public static final int I_STATEMENT_FORMAT22s=155;
+	public static final int I_STATEMENT_FORMAT22t=156;
+	public static final int I_STATEMENT_FORMAT22x=157;
+	public static final int I_STATEMENT_FORMAT23x=158;
+	public static final int I_STATEMENT_FORMAT25x=159;
+	public static final int I_STATEMENT_FORMAT30t=160;
+	public static final int I_STATEMENT_FORMAT31c=161;
+	public static final int I_STATEMENT_FORMAT31i=162;
+	public static final int I_STATEMENT_FORMAT31t=163;
+	public static final int I_STATEMENT_FORMAT32x=164;
+	public static final int I_STATEMENT_FORMAT35c_METHOD=165;
+	public static final int I_STATEMENT_FORMAT35c_TYPE=166;
+	public static final int I_STATEMENT_FORMAT3rc_METHOD=167;
+	public static final int I_STATEMENT_FORMAT3rc_TYPE=168;
+	public static final int I_STATEMENT_FORMAT51l=169;
+	public static final int I_STATEMENT_PACKED_SWITCH=170;
+	public static final int I_STATEMENT_SPARSE_SWITCH=171;
+	public static final int I_SUBANNOTATION=172;
+	public static final int I_SUPER=173;
+	public static final int LINE_COMMENT=174;
+	public static final int LINE_DIRECTIVE=175;
+	public static final int LOCALS_DIRECTIVE=176;
+	public static final int LOCAL_DIRECTIVE=177;
+	public static final int LONG_LITERAL=178;
+	public static final int MEMBER_NAME=179;
+	public static final int METHOD_DIRECTIVE=180;
+	public static final int NEGATIVE_INTEGER_LITERAL=181;
+	public static final int NULL_LITERAL=182;
+	public static final int OPEN_BRACE=183;
+	public static final int OPEN_PAREN=184;
+	public static final int PACKED_SWITCH_DIRECTIVE=185;
+	public static final int PARAMETER_DIRECTIVE=186;
+	public static final int PARAM_LIST_END=187;
+	public static final int PARAM_LIST_OR_ID_END=188;
+	public static final int PARAM_LIST_OR_ID_START=189;
+	public static final int PARAM_LIST_START=190;
+	public static final int POSITIVE_INTEGER_LITERAL=191;
+	public static final int PRIMITIVE_TYPE=192;
+	public static final int PROLOGUE_DIRECTIVE=193;
+	public static final int REGISTER=194;
+	public static final int REGISTERS_DIRECTIVE=195;
+	public static final int RESTART_LOCAL_DIRECTIVE=196;
+	public static final int SHORT_LITERAL=197;
+	public static final int SIMPLE_NAME=198;
+	public static final int SOURCE_DIRECTIVE=199;
+	public static final int SPARSE_SWITCH_DIRECTIVE=200;
+	public static final int STRING_LITERAL=201;
+	public static final int SUBANNOTATION_DIRECTIVE=202;
+	public static final int SUPER_DIRECTIVE=203;
+	public static final int VERIFICATION_ERROR_TYPE=204;
+	public static final int VOID_TYPE=205;
+	public static final int VTABLE_INDEX=206;
+	public static final int WHITE_SPACE=207;
+
+	// delegates
+	public TreeParser[] getDelegates() {
+		return new TreeParser[] {};
+	}
+
+	// delegators
+
+
+	public smaliTreeWalker(TreeNodeStream input) {
+		this(input, new RecognizerSharedState());
+	}
+	public smaliTreeWalker(TreeNodeStream input, RecognizerSharedState state) {
+		super(input, state);
+	}
+
+	@Override public String[] getTokenNames() { return smaliTreeWalker.tokenNames; }
+	@Override public String getGrammarFileName() { return "/mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g"; }
+
+
+	  public String classType;
+	  private boolean verboseErrors = false;
+	  private int apiLevel = 15;
+	  private Opcodes opcodes = new Opcodes(apiLevel, false);
+	  private DexBuilder dexBuilder;
+
+	  public void setDexBuilder(DexBuilder dexBuilder) {
+	      this.dexBuilder = dexBuilder;
+	  }
+
+	  public void setApiLevel(int apiLevel, boolean experimental) {
+	      this.opcodes = new Opcodes(apiLevel, experimental);
+	      this.apiLevel = apiLevel;
+	  }
+
+	  public void setVerboseErrors(boolean verboseErrors) {
+	    this.verboseErrors = verboseErrors;
+	  }
+
+	  private byte parseRegister_nibble(String register)
+	      throws SemanticException {
+	    int totalMethodRegisters = method_stack.peek().totalMethodRegisters;
+	    int methodParameterRegisters = method_stack.peek().methodParameterRegisters;
+
+	    //register should be in the format "v12"
+	    int val = Byte.parseByte(register.substring(1));
+	    if (register.charAt(0) == 'p') {
+	      val = totalMethodRegisters - methodParameterRegisters + val;
+	    }
+	    if (val >= 2<<4) {
+	      throw new SemanticException(input, "The maximum allowed register in this context is list of registers is v15");
+	    }
+	    //the parser wouldn't have accepted a negative register, i.e. v-1, so we don't have to check for val<0;
+	    return (byte)val;
+	  }
+
+	  //return a short, because java's byte is signed
+	  private short parseRegister_byte(String register)
+	      throws SemanticException {
+	    int totalMethodRegisters = method_stack.peek().totalMethodRegisters;
+	    int methodParameterRegisters = method_stack.peek().methodParameterRegisters;
+	    //register should be in the format "v123"
+	    int val = Short.parseShort(register.substring(1));
+	    if (register.charAt(0) == 'p') {
+	      val = totalMethodRegisters - methodParameterRegisters + val;
+	    }
+	    if (val >= 2<<8) {
+	      throw new SemanticException(input, "The maximum allowed register in this context is v255");
+	    }
+	    return (short)val;
+	  }
+
+	  //return an int because java's short is signed
+	  private int parseRegister_short(String register)
+	      throws SemanticException {
+	    int totalMethodRegisters = method_stack.peek().totalMethodRegisters;
+	    int methodParameterRegisters = method_stack.peek().methodParameterRegisters;
+	    //register should be in the format "v12345"
+	    int val = Integer.parseInt(register.substring(1));
+	    if (register.charAt(0) == 'p') {
+	      val = totalMethodRegisters - methodParameterRegisters + val;
+	    }
+	    if (val >= 2<<16) {
+	      throw new SemanticException(input, "The maximum allowed register in this context is v65535");
+	    }
+	    //the parser wouldn't accept a negative register, i.e. v-1, so we don't have to check for val<0;
+	    return val;
+	  }
+
+	  public String getErrorMessage(RecognitionException e, String[] tokenNames) {
+	    if ( e instanceof SemanticException ) {
+	      return e.getMessage();
+	    } else {
+	      return super.getErrorMessage(e, tokenNames);
+	    }
+	  }
+
+	  public String getErrorHeader(RecognitionException e) {
+	    return getSourceName()+"["+ e.line+","+e.charPositionInLine+"]";
+	  }
+
+
+
+	// $ANTLR start "smali_file"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:159:1: smali_file returns [ClassDef classDef] : ^( I_CLASS_DEF header methods fields annotations ) ;
+	public final ClassDef smali_file() throws RecognitionException {
+		ClassDef classDef = null;
+
+
+		TreeRuleReturnScope header1 =null;
+		Set<Annotation> annotations2 =null;
+		List<BuilderField> fields3 =null;
+		List<BuilderMethod> methods4 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:160:3: ( ^( I_CLASS_DEF header methods fields annotations ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:160:5: ^( I_CLASS_DEF header methods fields annotations )
+			{
+			match(input,I_CLASS_DEF,FOLLOW_I_CLASS_DEF_in_smali_file52);
+			match(input, Token.DOWN, null);
+			pushFollow(FOLLOW_header_in_smali_file54);
+			header1=header();
+			state._fsp--;
+
+			pushFollow(FOLLOW_methods_in_smali_file56);
+			methods4=methods();
+			state._fsp--;
+
+			pushFollow(FOLLOW_fields_in_smali_file58);
+			fields3=fields();
+			state._fsp--;
+
+			pushFollow(FOLLOW_annotations_in_smali_file60);
+			annotations2=annotations();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			    classDef = dexBuilder.internClassDef((header1!=null?((smaliTreeWalker.header_return)header1).classType:null), (header1!=null?((smaliTreeWalker.header_return)header1).accessFlags:0), (header1!=null?((smaliTreeWalker.header_return)header1).superType:null),
+			            (header1!=null?((smaliTreeWalker.header_return)header1).implementsList:null), (header1!=null?((smaliTreeWalker.header_return)header1).sourceSpec:null), annotations2, fields3, methods4);
+			
+			}
+
+		}
+		catch (Exception ex) {
+
+			    if (verboseErrors) {
+			      ex.printStackTrace(System.err);
+			    }
+			    reportError(new SemanticException(input, ex));
+			
+		}
+
+		finally {
+			// do for sure before leaving
+		}
+		return classDef;
+	}
+	// $ANTLR end "smali_file"
+
+
+	public static class header_return extends TreeRuleReturnScope {
+		public String classType;
+		public int accessFlags;
+		public String superType;
+		public List<String> implementsList;
+		public String sourceSpec;
+	};
+
+
+	// $ANTLR start "header"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:173:1: header returns [String classType, int accessFlags, String superType, List<String> implementsList, String sourceSpec] : class_spec ( super_spec )? implements_list source_spec ;
+	public final smaliTreeWalker.header_return header() throws RecognitionException {
+		smaliTreeWalker.header_return retval = new smaliTreeWalker.header_return();
+		retval.start = input.LT(1);
+
+		TreeRuleReturnScope class_spec5 =null;
+		String super_spec6 =null;
+		List<String> implements_list7 =null;
+		String source_spec8 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:174:3: ( class_spec ( super_spec )? implements_list source_spec )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:174:3: class_spec ( super_spec )? implements_list source_spec
+			{
+			pushFollow(FOLLOW_class_spec_in_header85);
+			class_spec5=class_spec();
+			state._fsp--;
+
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:174:14: ( super_spec )?
+			int alt1=2;
+			int LA1_0 = input.LA(1);
+			if ( (LA1_0==I_SUPER) ) {
+				alt1=1;
+			}
+			switch (alt1) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:174:14: super_spec
+					{
+					pushFollow(FOLLOW_super_spec_in_header87);
+					super_spec6=super_spec();
+					state._fsp--;
+
+					}
+					break;
+
+			}
+
+			pushFollow(FOLLOW_implements_list_in_header90);
+			implements_list7=implements_list();
+			state._fsp--;
+
+			pushFollow(FOLLOW_source_spec_in_header92);
+			source_spec8=source_spec();
+			state._fsp--;
+
+
+			    classType = (class_spec5!=null?((smaliTreeWalker.class_spec_return)class_spec5).type:null);
+			    retval.classType = classType;
+			    retval.accessFlags = (class_spec5!=null?((smaliTreeWalker.class_spec_return)class_spec5).accessFlags:0);
+			    retval.superType = super_spec6;
+			    retval.implementsList = implements_list7;
+			    retval.sourceSpec = source_spec8;
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "header"
+
+
+	public static class class_spec_return extends TreeRuleReturnScope {
+		public String type;
+		public int accessFlags;
+	};
+
+
+	// $ANTLR start "class_spec"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:185:1: class_spec returns [String type, int accessFlags] : CLASS_DESCRIPTOR access_list ;
+	public final smaliTreeWalker.class_spec_return class_spec() throws RecognitionException {
+		smaliTreeWalker.class_spec_return retval = new smaliTreeWalker.class_spec_return();
+		retval.start = input.LT(1);
+
+		CommonTree CLASS_DESCRIPTOR9=null;
+		int access_list10 =0;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:186:3: ( CLASS_DESCRIPTOR access_list )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:186:5: CLASS_DESCRIPTOR access_list
+			{
+			CLASS_DESCRIPTOR9=(CommonTree)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_class_spec110);
+			pushFollow(FOLLOW_access_list_in_class_spec112);
+			access_list10=access_list();
+			state._fsp--;
+
+
+			    retval.type = (CLASS_DESCRIPTOR9!=null?CLASS_DESCRIPTOR9.getText():null);
+			    retval.accessFlags = access_list10;
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "class_spec"
+
+
+
+	// $ANTLR start "super_spec"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:192:1: super_spec returns [String type] : ^( I_SUPER CLASS_DESCRIPTOR ) ;
+	public final String super_spec() throws RecognitionException {
+		String type = null;
+
+
+		CommonTree CLASS_DESCRIPTOR11=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:193:3: ( ^( I_SUPER CLASS_DESCRIPTOR ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:193:5: ^( I_SUPER CLASS_DESCRIPTOR )
+			{
+			match(input,I_SUPER,FOLLOW_I_SUPER_in_super_spec130);
+			match(input, Token.DOWN, null);
+			CLASS_DESCRIPTOR11=(CommonTree)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_super_spec132);
+			match(input, Token.UP, null);
+
+
+			    type = (CLASS_DESCRIPTOR11!=null?CLASS_DESCRIPTOR11.getText():null);
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return type;
+	}
+	// $ANTLR end "super_spec"
+
+
+
+	// $ANTLR start "implements_spec"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:199:1: implements_spec returns [String type] : ^( I_IMPLEMENTS CLASS_DESCRIPTOR ) ;
+	public final String implements_spec() throws RecognitionException {
+		String type = null;
+
+
+		CommonTree CLASS_DESCRIPTOR12=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:200:3: ( ^( I_IMPLEMENTS CLASS_DESCRIPTOR ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:200:5: ^( I_IMPLEMENTS CLASS_DESCRIPTOR )
+			{
+			match(input,I_IMPLEMENTS,FOLLOW_I_IMPLEMENTS_in_implements_spec152);
+			match(input, Token.DOWN, null);
+			CLASS_DESCRIPTOR12=(CommonTree)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_implements_spec154);
+			match(input, Token.UP, null);
+
+
+			    type = (CLASS_DESCRIPTOR12!=null?CLASS_DESCRIPTOR12.getText():null);
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return type;
+	}
+	// $ANTLR end "implements_spec"
+
+
+
+	// $ANTLR start "implements_list"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:205:1: implements_list returns [List<String> implementsList] : ( implements_spec )* ;
+	public final List<String> implements_list() throws RecognitionException {
+		List<String> implementsList = null;
+
+
+		String implements_spec13 =null;
+
+		 List<String> typeList;
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:207:3: ( ( implements_spec )* )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:207:5: ( implements_spec )*
+			{
+			typeList = Lists.newArrayList();
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:208:5: ( implements_spec )*
+			loop2:
+			while (true) {
+				int alt2=2;
+				int LA2_0 = input.LA(1);
+				if ( (LA2_0==I_IMPLEMENTS) ) {
+					alt2=1;
+				}
+
+				switch (alt2) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:208:6: implements_spec
+					{
+					pushFollow(FOLLOW_implements_spec_in_implements_list184);
+					implements_spec13=implements_spec();
+					state._fsp--;
+
+					typeList.add(implements_spec13);
+					}
+					break;
+
+				default :
+					break loop2;
+				}
+			}
+
+
+			    if (typeList.size() > 0) {
+			      implementsList = typeList;
+			    } else {
+			      implementsList = null;
+			    }
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return implementsList;
+	}
+	// $ANTLR end "implements_list"
+
+
+
+	// $ANTLR start "source_spec"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:217:1: source_spec returns [String source] : ( ^( I_SOURCE string_literal ) |);
+	public final String source_spec() throws RecognitionException {
+		String source = null;
+
+
+		String string_literal14 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:218:3: ( ^( I_SOURCE string_literal ) |)
+			int alt3=2;
+			int LA3_0 = input.LA(1);
+			if ( (LA3_0==I_SOURCE) ) {
+				alt3=1;
+			}
+			else if ( (LA3_0==I_METHODS) ) {
+				alt3=2;
+			}
+
+			else {
+				NoViableAltException nvae =
+					new NoViableAltException("", 3, 0, input);
+				throw nvae;
+			}
+
+			switch (alt3) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:218:5: ^( I_SOURCE string_literal )
+					{
+					source = null;
+					match(input,I_SOURCE,FOLLOW_I_SOURCE_in_source_spec213);
+					match(input, Token.DOWN, null);
+					pushFollow(FOLLOW_string_literal_in_source_spec215);
+					string_literal14=string_literal();
+					state._fsp--;
+
+					source = string_literal14;
+					match(input, Token.UP, null);
+
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:220:16:
+					{
+					}
+					break;
+
+			}
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return source;
+	}
+	// $ANTLR end "source_spec"
+
+
+
+	// $ANTLR start "access_list"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:222:1: access_list returns [int value] : ^( I_ACCESS_LIST ( ACCESS_SPEC )* ) ;
+	public final int access_list() throws RecognitionException {
+		int value = 0;
+
+
+		CommonTree ACCESS_SPEC15=null;
+
+
+		    value = 0;
+		
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:227:3: ( ^( I_ACCESS_LIST ( ACCESS_SPEC )* ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:227:5: ^( I_ACCESS_LIST ( ACCESS_SPEC )* )
+			{
+			match(input,I_ACCESS_LIST,FOLLOW_I_ACCESS_LIST_in_access_list248);
+			if ( input.LA(1)==Token.DOWN ) {
+				match(input, Token.DOWN, null);
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:228:7: ( ACCESS_SPEC )*
+				loop4:
+				while (true) {
+					int alt4=2;
+					int LA4_0 = input.LA(1);
+					if ( (LA4_0==ACCESS_SPEC) ) {
+						alt4=1;
+					}
+
+					switch (alt4) {
+					case 1 :
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:229:9: ACCESS_SPEC
+						{
+						ACCESS_SPEC15=(CommonTree)match(input,ACCESS_SPEC,FOLLOW_ACCESS_SPEC_in_access_list266);
+
+						          value |= AccessFlags.getAccessFlag(ACCESS_SPEC15.getText()).getValue();
+						
+						}
+						break;
+
+					default :
+						break loop4;
+					}
+				}
+
+				match(input, Token.UP, null);
+			}
+
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return value;
+	}
+	// $ANTLR end "access_list"
+
+
+
+	// $ANTLR start "fields"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:236:1: fields returns [List<BuilderField> fields] : ^( I_FIELDS ( field )* ) ;
+	public final List<BuilderField> fields() throws RecognitionException {
+		List<BuilderField> fields = null;
+
+
+		BuilderField field16 =null;
+
+		fields = Lists.newArrayList();
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:238:3: ( ^( I_FIELDS ( field )* ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:238:5: ^( I_FIELDS ( field )* )
+			{
+			match(input,I_FIELDS,FOLLOW_I_FIELDS_in_fields308);
+			if ( input.LA(1)==Token.DOWN ) {
+				match(input, Token.DOWN, null);
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:239:7: ( field )*
+				loop5:
+				while (true) {
+					int alt5=2;
+					int LA5_0 = input.LA(1);
+					if ( (LA5_0==I_FIELD) ) {
+						alt5=1;
+					}
+
+					switch (alt5) {
+					case 1 :
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:239:8: field
+						{
+						pushFollow(FOLLOW_field_in_fields317);
+						field16=field();
+						state._fsp--;
+
+
+						        fields.add(field16);
+						
+						}
+						break;
+
+					default :
+						break loop5;
+					}
+				}
+
+				match(input, Token.UP, null);
+			}
+
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return fields;
+	}
+	// $ANTLR end "fields"
+
+
+
+	// $ANTLR start "methods"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:244:1: methods returns [List<BuilderMethod> methods] : ^( I_METHODS ( method )* ) ;
+	public final List<BuilderMethod> methods() throws RecognitionException {
+		List<BuilderMethod> methods = null;
+
+
+		BuilderMethod method17 =null;
+
+		methods = Lists.newArrayList();
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:246:3: ( ^( I_METHODS ( method )* ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:246:5: ^( I_METHODS ( method )* )
+			{
+			match(input,I_METHODS,FOLLOW_I_METHODS_in_methods349);
+			if ( input.LA(1)==Token.DOWN ) {
+				match(input, Token.DOWN, null);
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:247:7: ( method )*
+				loop6:
+				while (true) {
+					int alt6=2;
+					int LA6_0 = input.LA(1);
+					if ( (LA6_0==I_METHOD) ) {
+						alt6=1;
+					}
+
+					switch (alt6) {
+					case 1 :
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:247:8: method
+						{
+						pushFollow(FOLLOW_method_in_methods358);
+						method17=method();
+						state._fsp--;
+
+
+						        methods.add(method17);
+						
+						}
+						break;
+
+					default :
+						break loop6;
+					}
+				}
+
+				match(input, Token.UP, null);
+			}
+
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return methods;
+	}
+	// $ANTLR end "methods"
+
+
+
+	// $ANTLR start "field"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:252:1: field returns [BuilderField field] : ^( I_FIELD SIMPLE_NAME access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) field_initial_value ( annotations )? ) ;
+	public final BuilderField field() throws RecognitionException {
+		BuilderField field = null;
+
+
+		CommonTree SIMPLE_NAME20=null;
+		int access_list18 =0;
+		EncodedValue field_initial_value19 =null;
+		TreeRuleReturnScope nonvoid_type_descriptor21 =null;
+		Set<Annotation> annotations22 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:253:3: ( ^( I_FIELD SIMPLE_NAME access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) field_initial_value ( annotations )? ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:253:4: ^( I_FIELD SIMPLE_NAME access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) field_initial_value ( annotations )? )
+			{
+			match(input,I_FIELD,FOLLOW_I_FIELD_in_field383);
+			match(input, Token.DOWN, null);
+			SIMPLE_NAME20=(CommonTree)match(input,SIMPLE_NAME,FOLLOW_SIMPLE_NAME_in_field385);
+			pushFollow(FOLLOW_access_list_in_field387);
+			access_list18=access_list();
+			state._fsp--;
+
+			match(input,I_FIELD_TYPE,FOLLOW_I_FIELD_TYPE_in_field390);
+			match(input, Token.DOWN, null);
+			pushFollow(FOLLOW_nonvoid_type_descriptor_in_field392);
+			nonvoid_type_descriptor21=nonvoid_type_descriptor();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+			pushFollow(FOLLOW_field_initial_value_in_field395);
+			field_initial_value19=field_initial_value();
+			state._fsp--;
+
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:253:98: ( annotations )?
+			int alt7=2;
+			int LA7_0 = input.LA(1);
+			if ( (LA7_0==I_ANNOTATIONS) ) {
+				alt7=1;
+			}
+			switch (alt7) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:253:98: annotations
+					{
+					pushFollow(FOLLOW_annotations_in_field397);
+					annotations22=annotations();
+					state._fsp--;
+
+					}
+					break;
+
+			}
+
+			match(input, Token.UP, null);
+
+
+			    int accessFlags = access_list18;
+
+
+			    if (!AccessFlags.STATIC.isSet(accessFlags) && field_initial_value19 != null) {
+			        throw new SemanticException(input, "Initial field values can only be specified for static fields.");
+			    }
+
+			    field = dexBuilder.internField(classType, (SIMPLE_NAME20!=null?SIMPLE_NAME20.getText():null), (nonvoid_type_descriptor21!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor21).type:null), access_list18,
+			            field_initial_value19, annotations22);
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return field;
+	}
+	// $ANTLR end "field"
+
+
+
+	// $ANTLR start "field_initial_value"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:267:1: field_initial_value returns [EncodedValue encodedValue] : ( ^( I_FIELD_INITIAL_VALUE literal ) |);
+	public final EncodedValue field_initial_value() throws RecognitionException {
+		EncodedValue encodedValue = null;
+
+
+		EncodedValue literal23 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:268:3: ( ^( I_FIELD_INITIAL_VALUE literal ) |)
+			int alt8=2;
+			int LA8_0 = input.LA(1);
+			if ( (LA8_0==I_FIELD_INITIAL_VALUE) ) {
+				alt8=1;
+			}
+			else if ( (LA8_0==UP||LA8_0==I_ANNOTATIONS) ) {
+				alt8=2;
+			}
+
+			else {
+				NoViableAltException nvae =
+					new NoViableAltException("", 8, 0, input);
+				throw nvae;
+			}
+
+			switch (alt8) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:268:5: ^( I_FIELD_INITIAL_VALUE literal )
+					{
+					match(input,I_FIELD_INITIAL_VALUE,FOLLOW_I_FIELD_INITIAL_VALUE_in_field_initial_value418);
+					match(input, Token.DOWN, null);
+					pushFollow(FOLLOW_literal_in_field_initial_value420);
+					literal23=literal();
+					state._fsp--;
+
+					match(input, Token.UP, null);
+
+					encodedValue = literal23;
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:269:16:
+					{
+					}
+					break;
+
+			}
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return encodedValue;
+	}
+	// $ANTLR end "field_initial_value"
+
+
+
+	// $ANTLR start "literal"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:271:1: literal returns [EncodedValue encodedValue] : ( integer_literal | long_literal | short_literal | byte_literal | float_literal | double_literal | char_literal | string_literal | bool_literal | NULL_LITERAL | type_descriptor | array_literal | subannotation | field_literal | method_literal | enum_literal );
+	public final EncodedValue literal() throws RecognitionException {
+		EncodedValue encodedValue = null;
+
+
+		int integer_literal24 =0;
+		long long_literal25 =0;
+		short short_literal26 =0;
+		byte byte_literal27 =0;
+		float float_literal28 =0.0f;
+		double double_literal29 =0.0;
+		char char_literal30 =0;
+		String string_literal31 =null;
+		boolean bool_literal32 =false;
+		String type_descriptor33 =null;
+		List<EncodedValue> array_literal34 =null;
+		TreeRuleReturnScope subannotation35 =null;
+		FieldReference field_literal36 =null;
+		MethodReference method_literal37 =null;
+		FieldReference enum_literal38 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:272:3: ( integer_literal | long_literal | short_literal | byte_literal | float_literal | double_literal | char_literal | string_literal | bool_literal | NULL_LITERAL | type_descriptor | array_literal | subannotation | field_literal | method_literal | enum_literal )
+			int alt9=16;
+			switch ( input.LA(1) ) {
+			case INTEGER_LITERAL:
+				{
+				alt9=1;
+				}
+				break;
+			case LONG_LITERAL:
+				{
+				alt9=2;
+				}
+				break;
+			case SHORT_LITERAL:
+				{
+				alt9=3;
+				}
+				break;
+			case BYTE_LITERAL:
+				{
+				alt9=4;
+				}
+				break;
+			case FLOAT_LITERAL:
+				{
+				alt9=5;
+				}
+				break;
+			case DOUBLE_LITERAL:
+				{
+				alt9=6;
+				}
+				break;
+			case CHAR_LITERAL:
+				{
+				alt9=7;
+				}
+				break;
+			case STRING_LITERAL:
+				{
+				alt9=8;
+				}
+				break;
+			case BOOL_LITERAL:
+				{
+				alt9=9;
+				}
+				break;
+			case NULL_LITERAL:
+				{
+				alt9=10;
+				}
+				break;
+			case ARRAY_DESCRIPTOR:
+			case CLASS_DESCRIPTOR:
+			case PRIMITIVE_TYPE:
+			case VOID_TYPE:
+				{
+				alt9=11;
+				}
+				break;
+			case I_ENCODED_ARRAY:
+				{
+				alt9=12;
+				}
+				break;
+			case I_SUBANNOTATION:
+				{
+				alt9=13;
+				}
+				break;
+			case I_ENCODED_FIELD:
+				{
+				alt9=14;
+				}
+				break;
+			case I_ENCODED_METHOD:
+				{
+				alt9=15;
+				}
+				break;
+			case I_ENCODED_ENUM:
+				{
+				alt9=16;
+				}
+				break;
+			default:
+				NoViableAltException nvae =
+					new NoViableAltException("", 9, 0, input);
+				throw nvae;
+			}
+			switch (alt9) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:272:5: integer_literal
+					{
+					pushFollow(FOLLOW_integer_literal_in_literal442);
+					integer_literal24=integer_literal();
+					state._fsp--;
+
+					 encodedValue = new ImmutableIntEncodedValue(integer_literal24);
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:273:5: long_literal
+					{
+					pushFollow(FOLLOW_long_literal_in_literal450);
+					long_literal25=long_literal();
+					state._fsp--;
+
+					 encodedValue = new ImmutableLongEncodedValue(long_literal25);
+					}
+					break;
+				case 3 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:274:5: short_literal
+					{
+					pushFollow(FOLLOW_short_literal_in_literal458);
+					short_literal26=short_literal();
+					state._fsp--;
+
+					 encodedValue = new ImmutableShortEncodedValue(short_literal26);
+					}
+					break;
+				case 4 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:275:5: byte_literal
+					{
+					pushFollow(FOLLOW_byte_literal_in_literal466);
+					byte_literal27=byte_literal();
+					state._fsp--;
+
+					 encodedValue = new ImmutableByteEncodedValue(byte_literal27);
+					}
+					break;
+				case 5 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:276:5: float_literal
+					{
+					pushFollow(FOLLOW_float_literal_in_literal474);
+					float_literal28=float_literal();
+					state._fsp--;
+
+					 encodedValue = new ImmutableFloatEncodedValue(float_literal28);
+					}
+					break;
+				case 6 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:277:5: double_literal
+					{
+					pushFollow(FOLLOW_double_literal_in_literal482);
+					double_literal29=double_literal();
+					state._fsp--;
+
+					 encodedValue = new ImmutableDoubleEncodedValue(double_literal29);
+					}
+					break;
+				case 7 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:278:5: char_literal
+					{
+					pushFollow(FOLLOW_char_literal_in_literal490);
+					char_literal30=char_literal();
+					state._fsp--;
+
+					 encodedValue = new ImmutableCharEncodedValue(char_literal30);
+					}
+					break;
+				case 8 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:279:5: string_literal
+					{
+					pushFollow(FOLLOW_string_literal_in_literal498);
+					string_literal31=string_literal();
+					state._fsp--;
+
+					 encodedValue = new ImmutableStringEncodedValue(string_literal31);
+					}
+					break;
+				case 9 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:280:5: bool_literal
+					{
+					pushFollow(FOLLOW_bool_literal_in_literal506);
+					bool_literal32=bool_literal();
+					state._fsp--;
+
+					 encodedValue = ImmutableBooleanEncodedValue.forBoolean(bool_literal32);
+					}
+					break;
+				case 10 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:281:5: NULL_LITERAL
+					{
+					match(input,NULL_LITERAL,FOLLOW_NULL_LITERAL_in_literal514);
+					 encodedValue = ImmutableNullEncodedValue.INSTANCE;
+					}
+					break;
+				case 11 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:282:5: type_descriptor
+					{
+					pushFollow(FOLLOW_type_descriptor_in_literal522);
+					type_descriptor33=type_descriptor();
+					state._fsp--;
+
+					 encodedValue = new ImmutableTypeEncodedValue(type_descriptor33);
+					}
+					break;
+				case 12 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:283:5: array_literal
+					{
+					pushFollow(FOLLOW_array_literal_in_literal530);
+					array_literal34=array_literal();
+					state._fsp--;
+
+					 encodedValue = new ImmutableArrayEncodedValue(array_literal34);
+					}
+					break;
+				case 13 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:284:5: subannotation
+					{
+					pushFollow(FOLLOW_subannotation_in_literal538);
+					subannotation35=subannotation();
+					state._fsp--;
+
+					 encodedValue = new ImmutableAnnotationEncodedValue((subannotation35!=null?((smaliTreeWalker.subannotation_return)subannotation35).annotationType:null), (subannotation35!=null?((smaliTreeWalker.subannotation_return)subannotation35).elements:null));
+					}
+					break;
+				case 14 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:285:5: field_literal
+					{
+					pushFollow(FOLLOW_field_literal_in_literal546);
+					field_literal36=field_literal();
+					state._fsp--;
+
+					 encodedValue = new ImmutableFieldEncodedValue(field_literal36);
+					}
+					break;
+				case 15 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:286:5: method_literal
+					{
+					pushFollow(FOLLOW_method_literal_in_literal554);
+					method_literal37=method_literal();
+					state._fsp--;
+
+					 encodedValue = new ImmutableMethodEncodedValue(method_literal37);
+					}
+					break;
+				case 16 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:287:5: enum_literal
+					{
+					pushFollow(FOLLOW_enum_literal_in_literal562);
+					enum_literal38=enum_literal();
+					state._fsp--;
+
+					 encodedValue = new ImmutableEnumEncodedValue(enum_literal38);
+					}
+					break;
+
+			}
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return encodedValue;
+	}
+	// $ANTLR end "literal"
+
+
+
+	// $ANTLR start "fixed_64bit_literal_number"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:290:1: fixed_64bit_literal_number returns [Number value] : ( integer_literal | long_literal | short_literal | byte_literal | float_literal | double_literal | char_literal | bool_literal );
+	public final Number fixed_64bit_literal_number() throws RecognitionException {
+		Number value = null;
+
+
+		int integer_literal39 =0;
+		long long_literal40 =0;
+		short short_literal41 =0;
+		byte byte_literal42 =0;
+		float float_literal43 =0.0f;
+		double double_literal44 =0.0;
+		char char_literal45 =0;
+		boolean bool_literal46 =false;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:291:3: ( integer_literal | long_literal | short_literal | byte_literal | float_literal | double_literal | char_literal | bool_literal )
+			int alt10=8;
+			switch ( input.LA(1) ) {
+			case INTEGER_LITERAL:
+				{
+				alt10=1;
+				}
+				break;
+			case LONG_LITERAL:
+				{
+				alt10=2;
+				}
+				break;
+			case SHORT_LITERAL:
+				{
+				alt10=3;
+				}
+				break;
+			case BYTE_LITERAL:
+				{
+				alt10=4;
+				}
+				break;
+			case FLOAT_LITERAL:
+				{
+				alt10=5;
+				}
+				break;
+			case DOUBLE_LITERAL:
+				{
+				alt10=6;
+				}
+				break;
+			case CHAR_LITERAL:
+				{
+				alt10=7;
+				}
+				break;
+			case BOOL_LITERAL:
+				{
+				alt10=8;
+				}
+				break;
+			default:
+				NoViableAltException nvae =
+					new NoViableAltException("", 10, 0, input);
+				throw nvae;
+			}
+			switch (alt10) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:291:5: integer_literal
+					{
+					pushFollow(FOLLOW_integer_literal_in_fixed_64bit_literal_number578);
+					integer_literal39=integer_literal();
+					state._fsp--;
+
+					 value = integer_literal39;
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:292:5: long_literal
+					{
+					pushFollow(FOLLOW_long_literal_in_fixed_64bit_literal_number586);
+					long_literal40=long_literal();
+					state._fsp--;
+
+					 value = long_literal40;
+					}
+					break;
+				case 3 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:293:5: short_literal
+					{
+					pushFollow(FOLLOW_short_literal_in_fixed_64bit_literal_number594);
+					short_literal41=short_literal();
+					state._fsp--;
+
+					 value = short_literal41;
+					}
+					break;
+				case 4 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:294:5: byte_literal
+					{
+					pushFollow(FOLLOW_byte_literal_in_fixed_64bit_literal_number602);
+					byte_literal42=byte_literal();
+					state._fsp--;
+
+					 value = byte_literal42;
+					}
+					break;
+				case 5 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:295:5: float_literal
+					{
+					pushFollow(FOLLOW_float_literal_in_fixed_64bit_literal_number610);
+					float_literal43=float_literal();
+					state._fsp--;
+
+					 value = Float.floatToRawIntBits(float_literal43);
+					}
+					break;
+				case 6 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:296:5: double_literal
+					{
+					pushFollow(FOLLOW_double_literal_in_fixed_64bit_literal_number618);
+					double_literal44=double_literal();
+					state._fsp--;
+
+					 value = Double.doubleToRawLongBits(double_literal44);
+					}
+					break;
+				case 7 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:297:5: char_literal
+					{
+					pushFollow(FOLLOW_char_literal_in_fixed_64bit_literal_number626);
+					char_literal45=char_literal();
+					state._fsp--;
+
+					 value = (int)char_literal45;
+					}
+					break;
+				case 8 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:298:5: bool_literal
+					{
+					pushFollow(FOLLOW_bool_literal_in_fixed_64bit_literal_number634);
+					bool_literal46=bool_literal();
+					state._fsp--;
+
+					 value = bool_literal46?1:0;
+					}
+					break;
+
+			}
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return value;
+	}
+	// $ANTLR end "fixed_64bit_literal_number"
+
+
+
+	// $ANTLR start "fixed_64bit_literal"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:300:1: fixed_64bit_literal returns [long value] : ( integer_literal | long_literal | short_literal | byte_literal | float_literal | double_literal | char_literal | bool_literal );
+	public final long fixed_64bit_literal() throws RecognitionException {
+		long value = 0;
+
+
+		int integer_literal47 =0;
+		long long_literal48 =0;
+		short short_literal49 =0;
+		byte byte_literal50 =0;
+		float float_literal51 =0.0f;
+		double double_literal52 =0.0;
+		char char_literal53 =0;
+		boolean bool_literal54 =false;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:301:3: ( integer_literal | long_literal | short_literal | byte_literal | float_literal | double_literal | char_literal | bool_literal )
+			int alt11=8;
+			switch ( input.LA(1) ) {
+			case INTEGER_LITERAL:
+				{
+				alt11=1;
+				}
+				break;
+			case LONG_LITERAL:
+				{
+				alt11=2;
+				}
+				break;
+			case SHORT_LITERAL:
+				{
+				alt11=3;
+				}
+				break;
+			case BYTE_LITERAL:
+				{
+				alt11=4;
+				}
+				break;
+			case FLOAT_LITERAL:
+				{
+				alt11=5;
+				}
+				break;
+			case DOUBLE_LITERAL:
+				{
+				alt11=6;
+				}
+				break;
+			case CHAR_LITERAL:
+				{
+				alt11=7;
+				}
+				break;
+			case BOOL_LITERAL:
+				{
+				alt11=8;
+				}
+				break;
+			default:
+				NoViableAltException nvae =
+					new NoViableAltException("", 11, 0, input);
+				throw nvae;
+			}
+			switch (alt11) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:301:5: integer_literal
+					{
+					pushFollow(FOLLOW_integer_literal_in_fixed_64bit_literal649);
+					integer_literal47=integer_literal();
+					state._fsp--;
+
+					 value = integer_literal47;
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:302:5: long_literal
+					{
+					pushFollow(FOLLOW_long_literal_in_fixed_64bit_literal657);
+					long_literal48=long_literal();
+					state._fsp--;
+
+					 value = long_literal48;
+					}
+					break;
+				case 3 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:303:5: short_literal
+					{
+					pushFollow(FOLLOW_short_literal_in_fixed_64bit_literal665);
+					short_literal49=short_literal();
+					state._fsp--;
+
+					 value = short_literal49;
+					}
+					break;
+				case 4 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:304:5: byte_literal
+					{
+					pushFollow(FOLLOW_byte_literal_in_fixed_64bit_literal673);
+					byte_literal50=byte_literal();
+					state._fsp--;
+
+					 value = byte_literal50;
+					}
+					break;
+				case 5 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:305:5: float_literal
+					{
+					pushFollow(FOLLOW_float_literal_in_fixed_64bit_literal681);
+					float_literal51=float_literal();
+					state._fsp--;
+
+					 value = Float.floatToRawIntBits(float_literal51);
+					}
+					break;
+				case 6 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:306:5: double_literal
+					{
+					pushFollow(FOLLOW_double_literal_in_fixed_64bit_literal689);
+					double_literal52=double_literal();
+					state._fsp--;
+
+					 value = Double.doubleToRawLongBits(double_literal52);
+					}
+					break;
+				case 7 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:307:5: char_literal
+					{
+					pushFollow(FOLLOW_char_literal_in_fixed_64bit_literal697);
+					char_literal53=char_literal();
+					state._fsp--;
+
+					 value = char_literal53;
+					}
+					break;
+				case 8 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:308:5: bool_literal
+					{
+					pushFollow(FOLLOW_bool_literal_in_fixed_64bit_literal705);
+					bool_literal54=bool_literal();
+					state._fsp--;
+
+					 value = bool_literal54?1:0;
+					}
+					break;
+
+			}
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return value;
+	}
+	// $ANTLR end "fixed_64bit_literal"
+
+
+
+	// $ANTLR start "fixed_32bit_literal"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:312:1: fixed_32bit_literal returns [int value] : ( integer_literal | long_literal | short_literal | byte_literal | float_literal | char_literal | bool_literal );
+	public final int fixed_32bit_literal() throws RecognitionException {
+		int value = 0;
+
+
+		int integer_literal55 =0;
+		long long_literal56 =0;
+		short short_literal57 =0;
+		byte byte_literal58 =0;
+		float float_literal59 =0.0f;
+		char char_literal60 =0;
+		boolean bool_literal61 =false;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:313:3: ( integer_literal | long_literal | short_literal | byte_literal | float_literal | char_literal | bool_literal )
+			int alt12=7;
+			switch ( input.LA(1) ) {
+			case INTEGER_LITERAL:
+				{
+				alt12=1;
+				}
+				break;
+			case LONG_LITERAL:
+				{
+				alt12=2;
+				}
+				break;
+			case SHORT_LITERAL:
+				{
+				alt12=3;
+				}
+				break;
+			case BYTE_LITERAL:
+				{
+				alt12=4;
+				}
+				break;
+			case FLOAT_LITERAL:
+				{
+				alt12=5;
+				}
+				break;
+			case CHAR_LITERAL:
+				{
+				alt12=6;
+				}
+				break;
+			case BOOL_LITERAL:
+				{
+				alt12=7;
+				}
+				break;
+			default:
+				NoViableAltException nvae =
+					new NoViableAltException("", 12, 0, input);
+				throw nvae;
+			}
+			switch (alt12) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:313:5: integer_literal
+					{
+					pushFollow(FOLLOW_integer_literal_in_fixed_32bit_literal722);
+					integer_literal55=integer_literal();
+					state._fsp--;
+
+					 value = integer_literal55;
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:314:5: long_literal
+					{
+					pushFollow(FOLLOW_long_literal_in_fixed_32bit_literal730);
+					long_literal56=long_literal();
+					state._fsp--;
+
+					 LiteralTools.checkInt(long_literal56); value = (int)long_literal56;
+					}
+					break;
+				case 3 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:315:5: short_literal
+					{
+					pushFollow(FOLLOW_short_literal_in_fixed_32bit_literal738);
+					short_literal57=short_literal();
+					state._fsp--;
+
+					 value = short_literal57;
+					}
+					break;
+				case 4 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:316:5: byte_literal
+					{
+					pushFollow(FOLLOW_byte_literal_in_fixed_32bit_literal746);
+					byte_literal58=byte_literal();
+					state._fsp--;
+
+					 value = byte_literal58;
+					}
+					break;
+				case 5 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:317:5: float_literal
+					{
+					pushFollow(FOLLOW_float_literal_in_fixed_32bit_literal754);
+					float_literal59=float_literal();
+					state._fsp--;
+
+					 value = Float.floatToRawIntBits(float_literal59);
+					}
+					break;
+				case 6 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:318:5: char_literal
+					{
+					pushFollow(FOLLOW_char_literal_in_fixed_32bit_literal762);
+					char_literal60=char_literal();
+					state._fsp--;
+
+					 value = char_literal60;
+					}
+					break;
+				case 7 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:319:5: bool_literal
+					{
+					pushFollow(FOLLOW_bool_literal_in_fixed_32bit_literal770);
+					bool_literal61=bool_literal();
+					state._fsp--;
+
+					 value = bool_literal61?1:0;
+					}
+					break;
+
+			}
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return value;
+	}
+	// $ANTLR end "fixed_32bit_literal"
+
+
+
+	// $ANTLR start "array_elements"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:321:1: array_elements returns [List<Number> elements] : ^( I_ARRAY_ELEMENTS ( fixed_64bit_literal_number )* ) ;
+	public final List<Number> array_elements() throws RecognitionException {
+		List<Number> elements = null;
+
+
+		Number fixed_64bit_literal_number62 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:322:3: ( ^( I_ARRAY_ELEMENTS ( fixed_64bit_literal_number )* ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:322:5: ^( I_ARRAY_ELEMENTS ( fixed_64bit_literal_number )* )
+			{
+			elements = Lists.newArrayList();
+			match(input,I_ARRAY_ELEMENTS,FOLLOW_I_ARRAY_ELEMENTS_in_array_elements792);
+			if ( input.LA(1)==Token.DOWN ) {
+				match(input, Token.DOWN, null);
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:324:7: ( fixed_64bit_literal_number )*
+				loop13:
+				while (true) {
+					int alt13=2;
+					int LA13_0 = input.LA(1);
+					if ( ((LA13_0 >= BOOL_LITERAL && LA13_0 <= BYTE_LITERAL)||LA13_0==CHAR_LITERAL||LA13_0==DOUBLE_LITERAL||LA13_0==FLOAT_LITERAL||LA13_0==INTEGER_LITERAL||LA13_0==LONG_LITERAL||LA13_0==SHORT_LITERAL) ) {
+						alt13=1;
+					}
+
+					switch (alt13) {
+					case 1 :
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:324:8: fixed_64bit_literal_number
+						{
+						pushFollow(FOLLOW_fixed_64bit_literal_number_in_array_elements801);
+						fixed_64bit_literal_number62=fixed_64bit_literal_number();
+						state._fsp--;
+
+
+						        elements.add(fixed_64bit_literal_number62);
+						
+						}
+						break;
+
+					default :
+						break loop13;
+					}
+				}
+
+				match(input, Token.UP, null);
+			}
+
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return elements;
+	}
+	// $ANTLR end "array_elements"
+
+
+
+	// $ANTLR start "packed_switch_elements"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:329:1: packed_switch_elements returns [List<Label> elements] : ^( I_PACKED_SWITCH_ELEMENTS ( label_ref )* ) ;
+	public final List<Label> packed_switch_elements() throws RecognitionException {
+		List<Label> elements = null;
+
+
+		Label label_ref63 =null;
+
+		elements = Lists.newArrayList();
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:331:3: ( ^( I_PACKED_SWITCH_ELEMENTS ( label_ref )* ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:332:5: ^( I_PACKED_SWITCH_ELEMENTS ( label_ref )* )
+			{
+			match(input,I_PACKED_SWITCH_ELEMENTS,FOLLOW_I_PACKED_SWITCH_ELEMENTS_in_packed_switch_elements837);
+			if ( input.LA(1)==Token.DOWN ) {
+				match(input, Token.DOWN, null);
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:333:7: ( label_ref )*
+				loop14:
+				while (true) {
+					int alt14=2;
+					int LA14_0 = input.LA(1);
+					if ( (LA14_0==SIMPLE_NAME) ) {
+						alt14=1;
+					}
+
+					switch (alt14) {
+					case 1 :
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:333:8: label_ref
+						{
+						pushFollow(FOLLOW_label_ref_in_packed_switch_elements846);
+						label_ref63=label_ref();
+						state._fsp--;
+
+						 elements.add(label_ref63);
+						}
+						break;
+
+					default :
+						break loop14;
+					}
+				}
+
+				match(input, Token.UP, null);
+			}
+
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return elements;
+	}
+	// $ANTLR end "packed_switch_elements"
+
+
+
+	// $ANTLR start "sparse_switch_elements"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:336:1: sparse_switch_elements returns [List<SwitchLabelElement> elements] : ^( I_SPARSE_SWITCH_ELEMENTS ( fixed_32bit_literal label_ref )* ) ;
+	public final List<SwitchLabelElement> sparse_switch_elements() throws RecognitionException {
+		List<SwitchLabelElement> elements = null;
+
+
+		int fixed_32bit_literal64 =0;
+		Label label_ref65 =null;
+
+		elements = Lists.newArrayList();
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:338:3: ( ^( I_SPARSE_SWITCH_ELEMENTS ( fixed_32bit_literal label_ref )* ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:339:5: ^( I_SPARSE_SWITCH_ELEMENTS ( fixed_32bit_literal label_ref )* )
+			{
+			match(input,I_SPARSE_SWITCH_ELEMENTS,FOLLOW_I_SPARSE_SWITCH_ELEMENTS_in_sparse_switch_elements881);
+			if ( input.LA(1)==Token.DOWN ) {
+				match(input, Token.DOWN, null);
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:340:8: ( fixed_32bit_literal label_ref )*
+				loop15:
+				while (true) {
+					int alt15=2;
+					int LA15_0 = input.LA(1);
+					if ( ((LA15_0 >= BOOL_LITERAL && LA15_0 <= BYTE_LITERAL)||LA15_0==CHAR_LITERAL||LA15_0==FLOAT_LITERAL||LA15_0==INTEGER_LITERAL||LA15_0==LONG_LITERAL||LA15_0==SHORT_LITERAL) ) {
+						alt15=1;
+					}
+
+					switch (alt15) {
+					case 1 :
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:340:9: fixed_32bit_literal label_ref
+						{
+						pushFollow(FOLLOW_fixed_32bit_literal_in_sparse_switch_elements891);
+						fixed_32bit_literal64=fixed_32bit_literal();
+						state._fsp--;
+
+						pushFollow(FOLLOW_label_ref_in_sparse_switch_elements893);
+						label_ref65=label_ref();
+						state._fsp--;
+
+
+						         elements.add(new SwitchLabelElement(fixed_32bit_literal64, label_ref65));
+						
+						}
+						break;
+
+					default :
+						break loop15;
+					}
+				}
+
+				match(input, Token.UP, null);
+			}
+
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return elements;
+	}
+	// $ANTLR end "sparse_switch_elements"
+
+
+	protected static class method_scope {
+		boolean isStatic;
+		int totalMethodRegisters;
+		int methodParameterRegisters;
+		MethodImplementationBuilder methodBuilder;
+	}
+	protected Stack<method_scope> method_stack = new Stack<method_scope>();
+
+
+	// $ANTLR start "method"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:346:1: method returns [BuilderMethod ret] : ^( I_METHOD method_name_and_prototype access_list ( ( registers_directive ) |) ordered_method_items catches parameters[$method_name_and_prototype.parameters] annotations ) ;
+	public final BuilderMethod method() throws RecognitionException {
+		method_stack.push(new method_scope());
+		BuilderMethod ret = null;
+
+
+		CommonTree I_METHOD70=null;
+		int access_list66 =0;
+		TreeRuleReturnScope method_name_and_prototype67 =null;
+		TreeRuleReturnScope registers_directive68 =null;
+		List<BuilderTryBlock> catches69 =null;
+		Set<Annotation> annotations71 =null;
+
+
+		    method_stack.peek().totalMethodRegisters = 0;
+		    method_stack.peek().methodParameterRegisters = 0;
+		    int accessFlags = 0;
+		    method_stack.peek().isStatic = false;
+		
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:361:3: ( ^( I_METHOD method_name_and_prototype access_list ( ( registers_directive ) |) ordered_method_items catches parameters[$method_name_and_prototype.parameters] annotations ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:362:5: ^( I_METHOD method_name_and_prototype access_list ( ( registers_directive ) |) ordered_method_items catches parameters[$method_name_and_prototype.parameters] annotations )
+			{
+			I_METHOD70=(CommonTree)match(input,I_METHOD,FOLLOW_I_METHOD_in_method945);
+			match(input, Token.DOWN, null);
+			pushFollow(FOLLOW_method_name_and_prototype_in_method953);
+			method_name_and_prototype67=method_name_and_prototype();
+			state._fsp--;
+
+			pushFollow(FOLLOW_access_list_in_method961);
+			access_list66=access_list();
+			state._fsp--;
+
+
+			        accessFlags = access_list66;
+			        method_stack.peek().isStatic = AccessFlags.STATIC.isSet(accessFlags);
+			        method_stack.peek().methodParameterRegisters =
+			                MethodUtil.getParameterRegisterCount((method_name_and_prototype67!=null?((smaliTreeWalker.method_name_and_prototype_return)method_name_and_prototype67).parameters:null), method_stack.peek().isStatic);
+			
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:371:7: ( ( registers_directive ) |)
+			int alt16=2;
+			int LA16_0 = input.LA(1);
+			if ( (LA16_0==I_LOCALS||LA16_0==I_REGISTERS) ) {
+				alt16=1;
+			}
+			else if ( (LA16_0==I_ORDERED_METHOD_ITEMS) ) {
+				alt16=2;
+			}
+
+			else {
+				NoViableAltException nvae =
+					new NoViableAltException("", 16, 0, input);
+				throw nvae;
+			}
+
+			switch (alt16) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:372:9: ( registers_directive )
+					{
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:372:9: ( registers_directive )
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:372:10: registers_directive
+					{
+					pushFollow(FOLLOW_registers_directive_in_method988);
+					registers_directive68=registers_directive();
+					state._fsp--;
+
+
+					          if ((registers_directive68!=null?((smaliTreeWalker.registers_directive_return)registers_directive68).isLocalsDirective:false)) {
+					            method_stack.peek().totalMethodRegisters = (registers_directive68!=null?((smaliTreeWalker.registers_directive_return)registers_directive68).registers:0) + method_stack.peek().methodParameterRegisters;
+					          } else {
+					            method_stack.peek().totalMethodRegisters = (registers_directive68!=null?((smaliTreeWalker.registers_directive_return)registers_directive68).registers:0);
+					          }
+
+					          method_stack.peek().methodBuilder = new MethodImplementationBuilder(method_stack.peek().totalMethodRegisters);
+
+					
+					}
+
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:385:9:
+					{
+
+					          method_stack.peek().methodBuilder = new MethodImplementationBuilder(0);
+					
+					}
+					break;
+
+			}
+
+			pushFollow(FOLLOW_ordered_method_items_in_method1045);
+			ordered_method_items();
+			state._fsp--;
+
+			pushFollow(FOLLOW_catches_in_method1053);
+			catches69=catches();
+			state._fsp--;
+
+			pushFollow(FOLLOW_parameters_in_method1061);
+			parameters((method_name_and_prototype67!=null?((smaliTreeWalker.method_name_and_prototype_return)method_name_and_prototype67).parameters:null));
+			state._fsp--;
+
+			pushFollow(FOLLOW_annotations_in_method1070);
+			annotations71=annotations();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			    MethodImplementation methodImplementation = null;
+			    List<BuilderTryBlock> tryBlocks = catches69;
+
+			    boolean isAbstract = false;
+			    boolean isNative = false;
+
+			    if ((accessFlags & AccessFlags.ABSTRACT.getValue()) != 0) {
+			      isAbstract = true;
+			    } else if ((accessFlags & AccessFlags.NATIVE.getValue()) != 0) {
+			      isNative = true;
+			    }
+
+			    methodImplementation = method_stack.peek().methodBuilder.getMethodImplementation();
+
+			    if (Iterables.isEmpty(methodImplementation.getInstructions())) {
+			      if (!isAbstract && !isNative) {
+			        throw new SemanticException(input, I_METHOD70, "A non-abstract/non-native method must have at least 1 instruction");
+			      }
+
+			      String methodType;
+			      if (isAbstract) {
+			        methodType = "an abstract";
+			      } else {
+			        methodType = "a native";
+			      }
+
+			      if ((registers_directive68!=null?((CommonTree)registers_directive68.start):null) != null) {
+			        if ((registers_directive68!=null?((smaliTreeWalker.registers_directive_return)registers_directive68).isLocalsDirective:false)) {
+			          throw new SemanticException(input, (registers_directive68!=null?((CommonTree)registers_directive68.start):null), "A .locals directive is not valid in %s method", methodType);
+			        } else {
+			          throw new SemanticException(input, (registers_directive68!=null?((CommonTree)registers_directive68.start):null), "A .registers directive is not valid in %s method", methodType);
+			        }
+			      }
+
+			      if (methodImplementation.getTryBlocks().size() > 0) {
+			        throw new SemanticException(input, I_METHOD70, "try/catch blocks cannot be present in %s method", methodType);
+			      }
+
+			      if (!Iterables.isEmpty(methodImplementation.getDebugItems())) {
+			        throw new SemanticException(input, I_METHOD70, "debug directives cannot be present in %s method", methodType);
+			      }
+
+			      methodImplementation = null;
+			    } else {
+			      if (isAbstract) {
+			        throw new SemanticException(input, I_METHOD70, "An abstract method cannot have any instructions");
+			      }
+			      if (isNative) {
+			        throw new SemanticException(input, I_METHOD70, "A native method cannot have any instructions");
+			      }
+
+			      if ((registers_directive68!=null?((CommonTree)registers_directive68.start):null) == null) {
+			        throw new SemanticException(input, I_METHOD70, "A .registers or .locals directive must be present for a non-abstract/non-final method");
+			      }
+
+			      if (method_stack.peek().totalMethodRegisters < method_stack.peek().methodParameterRegisters) {
+			        throw new SemanticException(input, (registers_directive68!=null?((CommonTree)registers_directive68.start):null), "This method requires at least " +
+			                Integer.toString(method_stack.peek().methodParameterRegisters) +
+			                " registers, for the method parameters");
+			      }
+			    }
+
+			    ret = dexBuilder.internMethod(
+			            classType,
+			            (method_name_and_prototype67!=null?((smaliTreeWalker.method_name_and_prototype_return)method_name_and_prototype67).name:null),
+			            (method_name_and_prototype67!=null?((smaliTreeWalker.method_name_and_prototype_return)method_name_and_prototype67).parameters:null),
+			            (method_name_and_prototype67!=null?((smaliTreeWalker.method_name_and_prototype_return)method_name_and_prototype67).returnType:null),
+			            accessFlags,
+			            annotations71,
+			            methodImplementation);
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+			method_stack.pop();
+		}
+		return ret;
+	}
+	// $ANTLR end "method"
+
+
+	public static class method_prototype_return extends TreeRuleReturnScope {
+		public List<String> parameters;
+		public String returnType;
+	};
+
+
+	// $ANTLR start "method_prototype"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:467:1: method_prototype returns [List<String> parameters, String returnType] : ^( I_METHOD_PROTOTYPE ^( I_METHOD_RETURN_TYPE type_descriptor ) method_type_list ) ;
+	public final smaliTreeWalker.method_prototype_return method_prototype() throws RecognitionException {
+		smaliTreeWalker.method_prototype_return retval = new smaliTreeWalker.method_prototype_return();
+		retval.start = input.LT(1);
+
+		String type_descriptor72 =null;
+		List<String> method_type_list73 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:468:3: ( ^( I_METHOD_PROTOTYPE ^( I_METHOD_RETURN_TYPE type_descriptor ) method_type_list ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:468:5: ^( I_METHOD_PROTOTYPE ^( I_METHOD_RETURN_TYPE type_descriptor ) method_type_list )
+			{
+			match(input,I_METHOD_PROTOTYPE,FOLLOW_I_METHOD_PROTOTYPE_in_method_prototype1094);
+			match(input, Token.DOWN, null);
+			match(input,I_METHOD_RETURN_TYPE,FOLLOW_I_METHOD_RETURN_TYPE_in_method_prototype1097);
+			match(input, Token.DOWN, null);
+			pushFollow(FOLLOW_type_descriptor_in_method_prototype1099);
+			type_descriptor72=type_descriptor();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+			pushFollow(FOLLOW_method_type_list_in_method_prototype1102);
+			method_type_list73=method_type_list();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			    retval.returnType = type_descriptor72;
+			    retval.parameters = method_type_list73;
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "method_prototype"
+
+
+	public static class method_name_and_prototype_return extends TreeRuleReturnScope {
+		public String name;
+		public List<SmaliMethodParameter> parameters;
+		public String returnType;
+	};
+
+
+	// $ANTLR start "method_name_and_prototype"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:474:1: method_name_and_prototype returns [String name, List<SmaliMethodParameter> parameters, String returnType] : SIMPLE_NAME method_prototype ;
+	public final smaliTreeWalker.method_name_and_prototype_return method_name_and_prototype() throws RecognitionException {
+		smaliTreeWalker.method_name_and_prototype_return retval = new smaliTreeWalker.method_name_and_prototype_return();
+		retval.start = input.LT(1);
+
+		CommonTree SIMPLE_NAME74=null;
+		TreeRuleReturnScope method_prototype75 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:475:3: ( SIMPLE_NAME method_prototype )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:475:5: SIMPLE_NAME method_prototype
+			{
+			SIMPLE_NAME74=(CommonTree)match(input,SIMPLE_NAME,FOLLOW_SIMPLE_NAME_in_method_name_and_prototype1120);
+			pushFollow(FOLLOW_method_prototype_in_method_name_and_prototype1122);
+			method_prototype75=method_prototype();
+			state._fsp--;
+
+
+			    retval.name = (SIMPLE_NAME74!=null?SIMPLE_NAME74.getText():null);
+			    retval.parameters = Lists.newArrayList();
+
+			    int paramRegister = 0;
+			    for (String type: (method_prototype75!=null?((smaliTreeWalker.method_prototype_return)method_prototype75).parameters:null)) {
+			        retval.parameters.add(new SmaliMethodParameter(paramRegister++, type));
+			        char c = type.charAt(0);
+			        if (c == 'D' || c == 'J') {
+			            paramRegister++;
+			        }
+			    }
+			    retval.returnType = (method_prototype75!=null?((smaliTreeWalker.method_prototype_return)method_prototype75).returnType:null);
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "method_name_and_prototype"
+
+
+
+	// $ANTLR start "method_type_list"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:491:1: method_type_list returns [List<String> types] : ( nonvoid_type_descriptor )* ;
+	public final List<String> method_type_list() throws RecognitionException {
+		List<String> types = null;
+
+
+		TreeRuleReturnScope nonvoid_type_descriptor76 =null;
+
+
+		    types = Lists.newArrayList();
+		
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:496:3: ( ( nonvoid_type_descriptor )* )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:496:5: ( nonvoid_type_descriptor )*
+			{
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:496:5: ( nonvoid_type_descriptor )*
+			loop17:
+			while (true) {
+				int alt17=2;
+				int LA17_0 = input.LA(1);
+				if ( (LA17_0==ARRAY_DESCRIPTOR||LA17_0==CLASS_DESCRIPTOR||LA17_0==PRIMITIVE_TYPE) ) {
+					alt17=1;
+				}
+
+				switch (alt17) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:497:7: nonvoid_type_descriptor
+					{
+					pushFollow(FOLLOW_nonvoid_type_descriptor_in_method_type_list1156);
+					nonvoid_type_descriptor76=nonvoid_type_descriptor();
+					state._fsp--;
+
+
+					        types.add((nonvoid_type_descriptor76!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor76).type:null));
+					
+					}
+					break;
+
+				default :
+					break loop17;
+				}
+			}
+
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return types;
+	}
+	// $ANTLR end "method_type_list"
+
+
+
+	// $ANTLR start "method_reference"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:504:1: method_reference returns [ImmutableMethodReference methodReference] : ( reference_type_descriptor )? SIMPLE_NAME method_prototype ;
+	public final ImmutableMethodReference method_reference() throws RecognitionException {
+		ImmutableMethodReference methodReference = null;
+
+
+		CommonTree SIMPLE_NAME78=null;
+		TreeRuleReturnScope reference_type_descriptor77 =null;
+		TreeRuleReturnScope method_prototype79 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:505:3: ( ( reference_type_descriptor )? SIMPLE_NAME method_prototype )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:505:5: ( reference_type_descriptor )? SIMPLE_NAME method_prototype
+			{
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:505:5: ( reference_type_descriptor )?
+			int alt18=2;
+			int LA18_0 = input.LA(1);
+			if ( (LA18_0==ARRAY_DESCRIPTOR||LA18_0==CLASS_DESCRIPTOR) ) {
+				alt18=1;
+			}
+			switch (alt18) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:505:5: reference_type_descriptor
+					{
+					pushFollow(FOLLOW_reference_type_descriptor_in_method_reference1185);
+					reference_type_descriptor77=reference_type_descriptor();
+					state._fsp--;
+
+					}
+					break;
+
+			}
+
+			SIMPLE_NAME78=(CommonTree)match(input,SIMPLE_NAME,FOLLOW_SIMPLE_NAME_in_method_reference1188);
+			pushFollow(FOLLOW_method_prototype_in_method_reference1190);
+			method_prototype79=method_prototype();
+			state._fsp--;
+
+
+			    String type;
+			    if ((reference_type_descriptor77!=null?((smaliTreeWalker.reference_type_descriptor_return)reference_type_descriptor77).type:null) == null) {
+			        type = classType;
+			    } else {
+			        type = (reference_type_descriptor77!=null?((smaliTreeWalker.reference_type_descriptor_return)reference_type_descriptor77).type:null);
+			    }
+			    methodReference = new ImmutableMethodReference(type, (SIMPLE_NAME78!=null?SIMPLE_NAME78.getText():null),
+			             (method_prototype79!=null?((smaliTreeWalker.method_prototype_return)method_prototype79).parameters:null), (method_prototype79!=null?((smaliTreeWalker.method_prototype_return)method_prototype79).returnType:null));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return methodReference;
+	}
+	// $ANTLR end "method_reference"
+
+
+
+	// $ANTLR start "field_reference"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:517:1: field_reference returns [ImmutableFieldReference fieldReference] : ( reference_type_descriptor )? SIMPLE_NAME nonvoid_type_descriptor ;
+	public final ImmutableFieldReference field_reference() throws RecognitionException {
+		ImmutableFieldReference fieldReference = null;
+
+
+		CommonTree SIMPLE_NAME81=null;
+		TreeRuleReturnScope reference_type_descriptor80 =null;
+		TreeRuleReturnScope nonvoid_type_descriptor82 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:518:3: ( ( reference_type_descriptor )? SIMPLE_NAME nonvoid_type_descriptor )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:518:5: ( reference_type_descriptor )? SIMPLE_NAME nonvoid_type_descriptor
+			{
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:518:5: ( reference_type_descriptor )?
+			int alt19=2;
+			int LA19_0 = input.LA(1);
+			if ( (LA19_0==ARRAY_DESCRIPTOR||LA19_0==CLASS_DESCRIPTOR) ) {
+				alt19=1;
+			}
+			switch (alt19) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:518:5: reference_type_descriptor
+					{
+					pushFollow(FOLLOW_reference_type_descriptor_in_field_reference1207);
+					reference_type_descriptor80=reference_type_descriptor();
+					state._fsp--;
+
+					}
+					break;
+
+			}
+
+			SIMPLE_NAME81=(CommonTree)match(input,SIMPLE_NAME,FOLLOW_SIMPLE_NAME_in_field_reference1210);
+			pushFollow(FOLLOW_nonvoid_type_descriptor_in_field_reference1212);
+			nonvoid_type_descriptor82=nonvoid_type_descriptor();
+			state._fsp--;
+
+
+			    String type;
+			    if ((reference_type_descriptor80!=null?((smaliTreeWalker.reference_type_descriptor_return)reference_type_descriptor80).type:null) == null) {
+			        type = classType;
+			    } else {
+			        type = (reference_type_descriptor80!=null?((smaliTreeWalker.reference_type_descriptor_return)reference_type_descriptor80).type:null);
+			    }
+			    fieldReference = new ImmutableFieldReference(type, (SIMPLE_NAME81!=null?SIMPLE_NAME81.getText():null),
+			            (nonvoid_type_descriptor82!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor82).type:null));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return fieldReference;
+	}
+	// $ANTLR end "field_reference"
+
+
+	public static class registers_directive_return extends TreeRuleReturnScope {
+		public boolean isLocalsDirective;
+		public int registers;
+	};
+
+
+	// $ANTLR start "registers_directive"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:530:1: registers_directive returns [boolean isLocalsDirective, int registers] : ^( ( I_REGISTERS | I_LOCALS ) short_integral_literal ) ;
+	public final smaliTreeWalker.registers_directive_return registers_directive() throws RecognitionException {
+		smaliTreeWalker.registers_directive_return retval = new smaliTreeWalker.registers_directive_return();
+		retval.start = input.LT(1);
+
+		short short_integral_literal83 =0;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:531:3: ( ^( ( I_REGISTERS | I_LOCALS ) short_integral_literal ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:531:5: ^( ( I_REGISTERS | I_LOCALS ) short_integral_literal )
+			{
+			retval.registers = 0;
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:532:7: ( I_REGISTERS | I_LOCALS )
+			int alt20=2;
+			int LA20_0 = input.LA(1);
+			if ( (LA20_0==I_REGISTERS) ) {
+				alt20=1;
+			}
+			else if ( (LA20_0==I_LOCALS) ) {
+				alt20=2;
+			}
+
+			else {
+				NoViableAltException nvae =
+					new NoViableAltException("", 20, 0, input);
+				throw nvae;
+			}
+
+			switch (alt20) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:532:9: I_REGISTERS
+					{
+					match(input,I_REGISTERS,FOLLOW_I_REGISTERS_in_registers_directive1238);
+					retval.isLocalsDirective = false;
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:533:9: I_LOCALS
+					{
+					match(input,I_LOCALS,FOLLOW_I_LOCALS_in_registers_directive1250);
+					retval.isLocalsDirective = true;
+					}
+					break;
+
+			}
+
+			match(input, Token.DOWN, null);
+			pushFollow(FOLLOW_short_integral_literal_in_registers_directive1268);
+			short_integral_literal83=short_integral_literal();
+			state._fsp--;
+
+			retval.registers = short_integral_literal83 & 0xFFFF;
+			match(input, Token.UP, null);
+
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "registers_directive"
+
+
+
+	// $ANTLR start "label_def"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:538:1: label_def : ^( I_LABEL SIMPLE_NAME ) ;
+	public final void label_def() throws RecognitionException {
+		CommonTree SIMPLE_NAME84=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:539:3: ( ^( I_LABEL SIMPLE_NAME ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:539:5: ^( I_LABEL SIMPLE_NAME )
+			{
+			match(input,I_LABEL,FOLLOW_I_LABEL_in_label_def1288);
+			match(input, Token.DOWN, null);
+			SIMPLE_NAME84=(CommonTree)match(input,SIMPLE_NAME,FOLLOW_SIMPLE_NAME_in_label_def1290);
+			match(input, Token.UP, null);
+
+
+			    method_stack.peek().methodBuilder.addLabel((SIMPLE_NAME84!=null?SIMPLE_NAME84.getText():null));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "label_def"
+
+
+
+	// $ANTLR start "catches"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:544:1: catches returns [List<BuilderTryBlock> tryBlocks] : ^( I_CATCHES ( catch_directive )* ( catchall_directive )* ) ;
+	public final List<BuilderTryBlock> catches() throws RecognitionException {
+		List<BuilderTryBlock> tryBlocks = null;
+
+
+		tryBlocks = Lists.newArrayList();
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:546:3: ( ^( I_CATCHES ( catch_directive )* ( catchall_directive )* ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:546:5: ^( I_CATCHES ( catch_directive )* ( catchall_directive )* )
+			{
+			match(input,I_CATCHES,FOLLOW_I_CATCHES_in_catches1316);
+			if ( input.LA(1)==Token.DOWN ) {
+				match(input, Token.DOWN, null);
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:546:17: ( catch_directive )*
+				loop21:
+				while (true) {
+					int alt21=2;
+					int LA21_0 = input.LA(1);
+					if ( (LA21_0==I_CATCH) ) {
+						alt21=1;
+					}
+
+					switch (alt21) {
+					case 1 :
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:546:17: catch_directive
+						{
+						pushFollow(FOLLOW_catch_directive_in_catches1318);
+						catch_directive();
+						state._fsp--;
+
+						}
+						break;
+
+					default :
+						break loop21;
+					}
+				}
+
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:546:34: ( catchall_directive )*
+				loop22:
+				while (true) {
+					int alt22=2;
+					int LA22_0 = input.LA(1);
+					if ( (LA22_0==I_CATCHALL) ) {
+						alt22=1;
+					}
+
+					switch (alt22) {
+					case 1 :
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:546:34: catchall_directive
+						{
+						pushFollow(FOLLOW_catchall_directive_in_catches1321);
+						catchall_directive();
+						state._fsp--;
+
+						}
+						break;
+
+					default :
+						break loop22;
+					}
+				}
+
+				match(input, Token.UP, null);
+			}
+
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return tryBlocks;
+	}
+	// $ANTLR end "catches"
+
+
+
+	// $ANTLR start "catch_directive"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:548:1: catch_directive : ^( I_CATCH nonvoid_type_descriptor from= label_ref to= label_ref using= label_ref ) ;
+	public final void catch_directive() throws RecognitionException {
+		Label from =null;
+		Label to =null;
+		Label using =null;
+		TreeRuleReturnScope nonvoid_type_descriptor85 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:549:3: ( ^( I_CATCH nonvoid_type_descriptor from= label_ref to= label_ref using= label_ref ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:549:5: ^( I_CATCH nonvoid_type_descriptor from= label_ref to= label_ref using= label_ref )
+			{
+			match(input,I_CATCH,FOLLOW_I_CATCH_in_catch_directive1334);
+			match(input, Token.DOWN, null);
+			pushFollow(FOLLOW_nonvoid_type_descriptor_in_catch_directive1336);
+			nonvoid_type_descriptor85=nonvoid_type_descriptor();
+			state._fsp--;
+
+			pushFollow(FOLLOW_label_ref_in_catch_directive1340);
+			from=label_ref();
+			state._fsp--;
+
+			pushFollow(FOLLOW_label_ref_in_catch_directive1344);
+			to=label_ref();
+			state._fsp--;
+
+			pushFollow(FOLLOW_label_ref_in_catch_directive1348);
+			using=label_ref();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			    method_stack.peek().methodBuilder.addCatch(dexBuilder.internTypeReference((nonvoid_type_descriptor85!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor85).type:null)),
+			        from, to, using);
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "catch_directive"
+
+
+
+	// $ANTLR start "catchall_directive"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:555:1: catchall_directive : ^( I_CATCHALL from= label_ref to= label_ref using= label_ref ) ;
+	public final void catchall_directive() throws RecognitionException {
+		Label from =null;
+		Label to =null;
+		Label using =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:556:3: ( ^( I_CATCHALL from= label_ref to= label_ref using= label_ref ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:556:5: ^( I_CATCHALL from= label_ref to= label_ref using= label_ref )
+			{
+			match(input,I_CATCHALL,FOLLOW_I_CATCHALL_in_catchall_directive1364);
+			match(input, Token.DOWN, null);
+			pushFollow(FOLLOW_label_ref_in_catchall_directive1368);
+			from=label_ref();
+			state._fsp--;
+
+			pushFollow(FOLLOW_label_ref_in_catchall_directive1372);
+			to=label_ref();
+			state._fsp--;
+
+			pushFollow(FOLLOW_label_ref_in_catchall_directive1376);
+			using=label_ref();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			    method_stack.peek().methodBuilder.addCatch(from, to, using);
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "catchall_directive"
+
+
+
+	// $ANTLR start "parameters"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:561:1: parameters[List<SmaliMethodParameter> parameters] : ^( I_PARAMETERS ( parameter[parameters] )* ) ;
+	public final void parameters(List<SmaliMethodParameter> parameters) throws RecognitionException {
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:562:3: ( ^( I_PARAMETERS ( parameter[parameters] )* ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:562:5: ^( I_PARAMETERS ( parameter[parameters] )* )
+			{
+			match(input,I_PARAMETERS,FOLLOW_I_PARAMETERS_in_parameters1393);
+			if ( input.LA(1)==Token.DOWN ) {
+				match(input, Token.DOWN, null);
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:562:20: ( parameter[parameters] )*
+				loop23:
+				while (true) {
+					int alt23=2;
+					int LA23_0 = input.LA(1);
+					if ( (LA23_0==I_PARAMETER) ) {
+						alt23=1;
+					}
+
+					switch (alt23) {
+					case 1 :
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:562:21: parameter[parameters]
+						{
+						pushFollow(FOLLOW_parameter_in_parameters1396);
+						parameter(parameters);
+						state._fsp--;
+
+						}
+						break;
+
+					default :
+						break loop23;
+					}
+				}
+
+				match(input, Token.UP, null);
+			}
+
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "parameters"
+
+
+
+	// $ANTLR start "parameter"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:564:1: parameter[List<SmaliMethodParameter> parameters] : ^( I_PARAMETER REGISTER ( string_literal )? annotations ) ;
+	public final void parameter(List<SmaliMethodParameter> parameters) throws RecognitionException {
+		CommonTree REGISTER86=null;
+		CommonTree I_PARAMETER87=null;
+		String string_literal88 =null;
+		Set<Annotation> annotations89 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:565:3: ( ^( I_PARAMETER REGISTER ( string_literal )? annotations ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:565:5: ^( I_PARAMETER REGISTER ( string_literal )? annotations )
+			{
+			I_PARAMETER87=(CommonTree)match(input,I_PARAMETER,FOLLOW_I_PARAMETER_in_parameter1412);
+			match(input, Token.DOWN, null);
+			REGISTER86=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_parameter1414);
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:565:28: ( string_literal )?
+			int alt24=2;
+			int LA24_0 = input.LA(1);
+			if ( (LA24_0==STRING_LITERAL) ) {
+				alt24=1;
+			}
+			switch (alt24) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:565:28: string_literal
+					{
+					pushFollow(FOLLOW_string_literal_in_parameter1416);
+					string_literal88=string_literal();
+					state._fsp--;
+
+					}
+					break;
+
+			}
+
+			pushFollow(FOLLOW_annotations_in_parameter1419);
+			annotations89=annotations();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			        final int registerNumber = parseRegister_short((REGISTER86!=null?REGISTER86.getText():null));
+			        int totalMethodRegisters = method_stack.peek().totalMethodRegisters;
+			        int methodParameterRegisters = method_stack.peek().methodParameterRegisters;
+
+			        if (registerNumber >= totalMethodRegisters) {
+			            throw new SemanticException(input, I_PARAMETER87, "Register %s is larger than the maximum register v%d " +
+			                    "for this method", (REGISTER86!=null?REGISTER86.getText():null), totalMethodRegisters-1);
+			        }
+			        final int indexGuess = registerNumber - (totalMethodRegisters - methodParameterRegisters) - (method_stack.peek().isStatic?0:1);
+
+			        if (indexGuess < 0) {
+			            throw new SemanticException(input, I_PARAMETER87, "Register %s is not a parameter register.",
+			                    (REGISTER86!=null?REGISTER86.getText():null));
+			        }
+
+			        int parameterIndex = LinearSearch.linearSearch(parameters, SmaliMethodParameter.COMPARATOR,
+			            new WithRegister() { public int getRegister() { return indexGuess; } },
+			                indexGuess);
+
+			        if (parameterIndex < 0) {
+			            throw new SemanticException(input, I_PARAMETER87, "Register %s is the second half of a wide parameter.",
+			                                (REGISTER86!=null?REGISTER86.getText():null));
+			        }
+
+			        SmaliMethodParameter methodParameter = parameters.get(parameterIndex);
+			        methodParameter.name = string_literal88;
+			        if (annotations89 != null && annotations89.size() > 0) {
+			            methodParameter.annotations = annotations89;
+			        }
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "parameter"
+
+
+
+	// $ANTLR start "debug_directive"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:598:1: debug_directive : ( line | local | end_local | restart_local | prologue | epilogue | source );
+	public final void debug_directive() throws RecognitionException {
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:599:3: ( line | local | end_local | restart_local | prologue | epilogue | source )
+			int alt25=7;
+			switch ( input.LA(1) ) {
+			case I_LINE:
+				{
+				alt25=1;
+				}
+				break;
+			case I_LOCAL:
+				{
+				alt25=2;
+				}
+				break;
+			case I_END_LOCAL:
+				{
+				alt25=3;
+				}
+				break;
+			case I_RESTART_LOCAL:
+				{
+				alt25=4;
+				}
+				break;
+			case I_PROLOGUE:
+				{
+				alt25=5;
+				}
+				break;
+			case I_EPILOGUE:
+				{
+				alt25=6;
+				}
+				break;
+			case I_SOURCE:
+				{
+				alt25=7;
+				}
+				break;
+			default:
+				NoViableAltException nvae =
+					new NoViableAltException("", 25, 0, input);
+				throw nvae;
+			}
+			switch (alt25) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:599:5: line
+					{
+					pushFollow(FOLLOW_line_in_debug_directive1436);
+					line();
+					state._fsp--;
+
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:600:5: local
+					{
+					pushFollow(FOLLOW_local_in_debug_directive1442);
+					local();
+					state._fsp--;
+
+					}
+					break;
+				case 3 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:601:5: end_local
+					{
+					pushFollow(FOLLOW_end_local_in_debug_directive1448);
+					end_local();
+					state._fsp--;
+
+					}
+					break;
+				case 4 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:602:5: restart_local
+					{
+					pushFollow(FOLLOW_restart_local_in_debug_directive1454);
+					restart_local();
+					state._fsp--;
+
+					}
+					break;
+				case 5 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:603:5: prologue
+					{
+					pushFollow(FOLLOW_prologue_in_debug_directive1460);
+					prologue();
+					state._fsp--;
+
+					}
+					break;
+				case 6 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:604:5: epilogue
+					{
+					pushFollow(FOLLOW_epilogue_in_debug_directive1466);
+					epilogue();
+					state._fsp--;
+
+					}
+					break;
+				case 7 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:605:5: source
+					{
+					pushFollow(FOLLOW_source_in_debug_directive1472);
+					source();
+					state._fsp--;
+
+					}
+					break;
+
+			}
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "debug_directive"
+
+
+
+	// $ANTLR start "line"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:607:1: line : ^( I_LINE integral_literal ) ;
+	public final void line() throws RecognitionException {
+		int integral_literal90 =0;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:608:3: ( ^( I_LINE integral_literal ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:608:5: ^( I_LINE integral_literal )
+			{
+			match(input,I_LINE,FOLLOW_I_LINE_in_line1483);
+			match(input, Token.DOWN, null);
+			pushFollow(FOLLOW_integral_literal_in_line1485);
+			integral_literal90=integral_literal();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			        method_stack.peek().methodBuilder.addLineNumber(integral_literal90);
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "line"
+
+
+
+	// $ANTLR start "local"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:613:1: local : ^( I_LOCAL REGISTER ( ( NULL_LITERAL |name= string_literal ) ( nonvoid_type_descriptor )? (signature= string_literal )? )? ) ;
+	public final void local() throws RecognitionException {
+		CommonTree REGISTER91=null;
+		String name =null;
+		String signature =null;
+		TreeRuleReturnScope nonvoid_type_descriptor92 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:614:3: ( ^( I_LOCAL REGISTER ( ( NULL_LITERAL |name= string_literal ) ( nonvoid_type_descriptor )? (signature= string_literal )? )? ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:614:5: ^( I_LOCAL REGISTER ( ( NULL_LITERAL |name= string_literal ) ( nonvoid_type_descriptor )? (signature= string_literal )? )? )
+			{
+			match(input,I_LOCAL,FOLLOW_I_LOCAL_in_local1503);
+			match(input, Token.DOWN, null);
+			REGISTER91=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_local1505);
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:614:24: ( ( NULL_LITERAL |name= string_literal ) ( nonvoid_type_descriptor )? (signature= string_literal )? )?
+			int alt29=2;
+			int LA29_0 = input.LA(1);
+			if ( (LA29_0==NULL_LITERAL||LA29_0==STRING_LITERAL) ) {
+				alt29=1;
+			}
+			switch (alt29) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:614:25: ( NULL_LITERAL |name= string_literal ) ( nonvoid_type_descriptor )? (signature= string_literal )?
+					{
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:614:25: ( NULL_LITERAL |name= string_literal )
+					int alt26=2;
+					int LA26_0 = input.LA(1);
+					if ( (LA26_0==NULL_LITERAL) ) {
+						alt26=1;
+					}
+					else if ( (LA26_0==STRING_LITERAL) ) {
+						alt26=2;
+					}
+
+					else {
+						NoViableAltException nvae =
+							new NoViableAltException("", 26, 0, input);
+						throw nvae;
+					}
+
+					switch (alt26) {
+						case 1 :
+							// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:614:26: NULL_LITERAL
+							{
+							match(input,NULL_LITERAL,FOLLOW_NULL_LITERAL_in_local1509);
+							}
+							break;
+						case 2 :
+							// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:614:41: name= string_literal
+							{
+							pushFollow(FOLLOW_string_literal_in_local1515);
+							name=string_literal();
+							state._fsp--;
+
+							}
+							break;
+
+					}
+
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:614:62: ( nonvoid_type_descriptor )?
+					int alt27=2;
+					int LA27_0 = input.LA(1);
+					if ( (LA27_0==ARRAY_DESCRIPTOR||LA27_0==CLASS_DESCRIPTOR||LA27_0==PRIMITIVE_TYPE) ) {
+						alt27=1;
+					}
+					switch (alt27) {
+						case 1 :
+							// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:614:62: nonvoid_type_descriptor
+							{
+							pushFollow(FOLLOW_nonvoid_type_descriptor_in_local1518);
+							nonvoid_type_descriptor92=nonvoid_type_descriptor();
+							state._fsp--;
+
+							}
+							break;
+
+					}
+
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:614:96: (signature= string_literal )?
+					int alt28=2;
+					int LA28_0 = input.LA(1);
+					if ( (LA28_0==STRING_LITERAL) ) {
+						alt28=1;
+					}
+					switch (alt28) {
+						case 1 :
+							// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:614:96: signature= string_literal
+							{
+							pushFollow(FOLLOW_string_literal_in_local1523);
+							signature=string_literal();
+							state._fsp--;
+
+							}
+							break;
+
+					}
+
+					}
+					break;
+
+			}
+
+			match(input, Token.UP, null);
+
+
+			      int registerNumber = parseRegister_short((REGISTER91!=null?REGISTER91.getText():null));
+			      method_stack.peek().methodBuilder.addStartLocal(registerNumber,
+			              dexBuilder.internNullableStringReference(name),
+			              dexBuilder.internNullableTypeReference((nonvoid_type_descriptor92!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor92).type:null)),
+			              dexBuilder.internNullableStringReference(signature));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "local"
+
+
+
+	// $ANTLR start "end_local"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:623:1: end_local : ^( I_END_LOCAL REGISTER ) ;
+	public final void end_local() throws RecognitionException {
+		CommonTree REGISTER93=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:624:3: ( ^( I_END_LOCAL REGISTER ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:624:5: ^( I_END_LOCAL REGISTER )
+			{
+			match(input,I_END_LOCAL,FOLLOW_I_END_LOCAL_in_end_local1544);
+			match(input, Token.DOWN, null);
+			REGISTER93=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_end_local1546);
+			match(input, Token.UP, null);
+
+
+			      int registerNumber = parseRegister_short((REGISTER93!=null?REGISTER93.getText():null));
+			      method_stack.peek().methodBuilder.addEndLocal(registerNumber);
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "end_local"
+
+
+
+	// $ANTLR start "restart_local"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:630:1: restart_local : ^( I_RESTART_LOCAL REGISTER ) ;
+	public final void restart_local() throws RecognitionException {
+		CommonTree REGISTER94=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:631:3: ( ^( I_RESTART_LOCAL REGISTER ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:631:5: ^( I_RESTART_LOCAL REGISTER )
+			{
+			match(input,I_RESTART_LOCAL,FOLLOW_I_RESTART_LOCAL_in_restart_local1564);
+			match(input, Token.DOWN, null);
+			REGISTER94=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_restart_local1566);
+			match(input, Token.UP, null);
+
+
+			      int registerNumber = parseRegister_short((REGISTER94!=null?REGISTER94.getText():null));
+			      method_stack.peek().methodBuilder.addRestartLocal(registerNumber);
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "restart_local"
+
+
+
+	// $ANTLR start "prologue"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:637:1: prologue : I_PROLOGUE ;
+	public final void prologue() throws RecognitionException {
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:638:3: ( I_PROLOGUE )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:638:5: I_PROLOGUE
+			{
+			match(input,I_PROLOGUE,FOLLOW_I_PROLOGUE_in_prologue1583);
+
+			      method_stack.peek().methodBuilder.addPrologue();
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "prologue"
+
+
+
+	// $ANTLR start "epilogue"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:643:1: epilogue : I_EPILOGUE ;
+	public final void epilogue() throws RecognitionException {
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:644:3: ( I_EPILOGUE )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:644:5: I_EPILOGUE
+			{
+			match(input,I_EPILOGUE,FOLLOW_I_EPILOGUE_in_epilogue1599);
+
+			      method_stack.peek().methodBuilder.addEpilogue();
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "epilogue"
+
+
+
+	// $ANTLR start "source"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:649:1: source : ^( I_SOURCE ( string_literal )? ) ;
+	public final void source() throws RecognitionException {
+		String string_literal95 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:650:3: ( ^( I_SOURCE ( string_literal )? ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:650:5: ^( I_SOURCE ( string_literal )? )
+			{
+			match(input,I_SOURCE,FOLLOW_I_SOURCE_in_source1616);
+			if ( input.LA(1)==Token.DOWN ) {
+				match(input, Token.DOWN, null);
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:650:16: ( string_literal )?
+				int alt30=2;
+				int LA30_0 = input.LA(1);
+				if ( (LA30_0==STRING_LITERAL) ) {
+					alt30=1;
+				}
+				switch (alt30) {
+					case 1 :
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:650:16: string_literal
+						{
+						pushFollow(FOLLOW_string_literal_in_source1618);
+						string_literal95=string_literal();
+						state._fsp--;
+
+						}
+						break;
+
+				}
+
+				match(input, Token.UP, null);
+			}
+
+
+			      method_stack.peek().methodBuilder.addSetSourceFile(dexBuilder.internNullableStringReference(string_literal95));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "source"
+
+
+
+	// $ANTLR start "ordered_method_items"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:655:1: ordered_method_items : ^( I_ORDERED_METHOD_ITEMS ( label_def | instruction | debug_directive )* ) ;
+	public final void ordered_method_items() throws RecognitionException {
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:656:3: ( ^( I_ORDERED_METHOD_ITEMS ( label_def | instruction | debug_directive )* ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:656:5: ^( I_ORDERED_METHOD_ITEMS ( label_def | instruction | debug_directive )* )
+			{
+			match(input,I_ORDERED_METHOD_ITEMS,FOLLOW_I_ORDERED_METHOD_ITEMS_in_ordered_method_items1637);
+			if ( input.LA(1)==Token.DOWN ) {
+				match(input, Token.DOWN, null);
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:656:30: ( label_def | instruction | debug_directive )*
+				loop31:
+				while (true) {
+					int alt31=4;
+					switch ( input.LA(1) ) {
+					case I_LABEL:
+						{
+						alt31=1;
+						}
+						break;
+					case I_STATEMENT_ARRAY_DATA:
+					case I_STATEMENT_FORMAT10t:
+					case I_STATEMENT_FORMAT10x:
+					case I_STATEMENT_FORMAT11n:
+					case I_STATEMENT_FORMAT11x:
+					case I_STATEMENT_FORMAT12x:
+					case I_STATEMENT_FORMAT20bc:
+					case I_STATEMENT_FORMAT20t:
+					case I_STATEMENT_FORMAT21c_FIELD:
+					case I_STATEMENT_FORMAT21c_LAMBDA:
+					case I_STATEMENT_FORMAT21c_METHOD:
+					case I_STATEMENT_FORMAT21c_STRING:
+					case I_STATEMENT_FORMAT21c_TYPE:
+					case I_STATEMENT_FORMAT21ih:
+					case I_STATEMENT_FORMAT21lh:
+					case I_STATEMENT_FORMAT21s:
+					case I_STATEMENT_FORMAT21t:
+					case I_STATEMENT_FORMAT22b:
+					case I_STATEMENT_FORMAT22c_FIELD:
+					case I_STATEMENT_FORMAT22c_STRING:
+					case I_STATEMENT_FORMAT22c_TYPE:
+					case I_STATEMENT_FORMAT22s:
+					case I_STATEMENT_FORMAT22t:
+					case I_STATEMENT_FORMAT22x:
+					case I_STATEMENT_FORMAT23x:
+					case I_STATEMENT_FORMAT25x:
+					case I_STATEMENT_FORMAT30t:
+					case I_STATEMENT_FORMAT31c:
+					case I_STATEMENT_FORMAT31i:
+					case I_STATEMENT_FORMAT31t:
+					case I_STATEMENT_FORMAT32x:
+					case I_STATEMENT_FORMAT35c_METHOD:
+					case I_STATEMENT_FORMAT35c_TYPE:
+					case I_STATEMENT_FORMAT3rc_METHOD:
+					case I_STATEMENT_FORMAT3rc_TYPE:
+					case I_STATEMENT_FORMAT51l:
+					case I_STATEMENT_PACKED_SWITCH:
+					case I_STATEMENT_SPARSE_SWITCH:
+						{
+						alt31=2;
+						}
+						break;
+					case I_END_LOCAL:
+					case I_EPILOGUE:
+					case I_LINE:
+					case I_LOCAL:
+					case I_PROLOGUE:
+					case I_RESTART_LOCAL:
+					case I_SOURCE:
+						{
+						alt31=3;
+						}
+						break;
+					}
+					switch (alt31) {
+					case 1 :
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:656:31: label_def
+						{
+						pushFollow(FOLLOW_label_def_in_ordered_method_items1640);
+						label_def();
+						state._fsp--;
+
+						}
+						break;
+					case 2 :
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:656:43: instruction
+						{
+						pushFollow(FOLLOW_instruction_in_ordered_method_items1644);
+						instruction();
+						state._fsp--;
+
+						}
+						break;
+					case 3 :
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:656:57: debug_directive
+						{
+						pushFollow(FOLLOW_debug_directive_in_ordered_method_items1648);
+						debug_directive();
+						state._fsp--;
+
+						}
+						break;
+
+					default :
+						break loop31;
+					}
+				}
+
+				match(input, Token.UP, null);
+			}
+
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "ordered_method_items"
+
+
+
+	// $ANTLR start "label_ref"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:658:1: label_ref returns [Label label] : SIMPLE_NAME ;
+	public final Label label_ref() throws RecognitionException {
+		Label label = null;
+
+
+		CommonTree SIMPLE_NAME96=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:659:3: ( SIMPLE_NAME )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:659:5: SIMPLE_NAME
+			{
+			SIMPLE_NAME96=(CommonTree)match(input,SIMPLE_NAME,FOLLOW_SIMPLE_NAME_in_label_ref1664);
+			 label = method_stack.peek().methodBuilder.getLabel((SIMPLE_NAME96!=null?SIMPLE_NAME96.getText():null));
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return label;
+	}
+	// $ANTLR end "label_ref"
+
+
+	public static class register_list_return extends TreeRuleReturnScope {
+		public byte[] registers;
+		public byte registerCount;
+	};
+
+
+	// $ANTLR start "register_list"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:661:1: register_list returns [byte[] registers, byte registerCount] : ^( I_REGISTER_LIST ( REGISTER )* ) ;
+	public final smaliTreeWalker.register_list_return register_list() throws RecognitionException {
+		smaliTreeWalker.register_list_return retval = new smaliTreeWalker.register_list_return();
+		retval.start = input.LT(1);
+
+		CommonTree I_REGISTER_LIST97=null;
+		CommonTree REGISTER98=null;
+
+
+		    retval.registers = new byte[5];
+		    retval.registerCount = 0;
+		
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:667:3: ( ^( I_REGISTER_LIST ( REGISTER )* ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:667:5: ^( I_REGISTER_LIST ( REGISTER )* )
+			{
+			I_REGISTER_LIST97=(CommonTree)match(input,I_REGISTER_LIST,FOLLOW_I_REGISTER_LIST_in_register_list1689);
+			if ( input.LA(1)==Token.DOWN ) {
+				match(input, Token.DOWN, null);
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:668:7: ( REGISTER )*
+				loop32:
+				while (true) {
+					int alt32=2;
+					int LA32_0 = input.LA(1);
+					if ( (LA32_0==REGISTER) ) {
+						alt32=1;
+					}
+
+					switch (alt32) {
+					case 1 :
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:668:8: REGISTER
+						{
+						REGISTER98=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_register_list1698);
+
+						        if (retval.registerCount == 5) {
+						          throw new SemanticException(input, I_REGISTER_LIST97, "A list of registers can only have a maximum of 5 " +
+						                  "registers. Use the <op>/range alternate opcode instead.");
+						        }
+						        retval.registers[retval.registerCount++] = parseRegister_nibble((REGISTER98!=null?REGISTER98.getText():null));
+						
+						}
+						break;
+
+					default :
+						break loop32;
+					}
+				}
+
+				match(input, Token.UP, null);
+			}
+
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "register_list"
+
+
+	public static class register_list4_return extends TreeRuleReturnScope {
+		public byte[] registers;
+		public byte registerCount;
+	};
+
+
+	// $ANTLR start "register_list4"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:677:1: register_list4 returns [byte[] registers, byte registerCount] : ^( I_REGISTER_LIST ( REGISTER )* ) ;
+	public final smaliTreeWalker.register_list4_return register_list4() throws RecognitionException {
+		smaliTreeWalker.register_list4_return retval = new smaliTreeWalker.register_list4_return();
+		retval.start = input.LT(1);
+
+		CommonTree I_REGISTER_LIST99=null;
+		CommonTree REGISTER100=null;
+
+
+		    retval.registers = new byte[4];
+		    retval.registerCount = 0;
+		
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:683:3: ( ^( I_REGISTER_LIST ( REGISTER )* ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:683:5: ^( I_REGISTER_LIST ( REGISTER )* )
+			{
+			I_REGISTER_LIST99=(CommonTree)match(input,I_REGISTER_LIST,FOLLOW_I_REGISTER_LIST_in_register_list41732);
+			if ( input.LA(1)==Token.DOWN ) {
+				match(input, Token.DOWN, null);
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:684:7: ( REGISTER )*
+				loop33:
+				while (true) {
+					int alt33=2;
+					int LA33_0 = input.LA(1);
+					if ( (LA33_0==REGISTER) ) {
+						alt33=1;
+					}
+
+					switch (alt33) {
+					case 1 :
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:684:8: REGISTER
+						{
+						REGISTER100=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_register_list41741);
+
+						        if (retval.registerCount == 4) {
+						          throw new SemanticException(input, I_REGISTER_LIST99, "A list4 of registers can only have a maximum of 4 " +
+						                  "registers. Use the <op>/range alternate opcode instead.");
+						        }
+						        retval.registers[retval.registerCount++] = parseRegister_nibble((REGISTER100!=null?REGISTER100.getText():null));
+						
+						}
+						break;
+
+					default :
+						break loop33;
+					}
+				}
+
+				match(input, Token.UP, null);
+			}
+
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "register_list4"
+
+
+	public static class register_range_return extends TreeRuleReturnScope {
+		public int startRegister;
+		public int endRegister;
+	};
+
+
+	// $ANTLR start "register_range"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:693:1: register_range returns [int startRegister, int endRegister] : ^( I_REGISTER_RANGE (startReg= REGISTER (endReg= REGISTER )? )? ) ;
+	public final smaliTreeWalker.register_range_return register_range() throws RecognitionException {
+		smaliTreeWalker.register_range_return retval = new smaliTreeWalker.register_range_return();
+		retval.start = input.LT(1);
+
+		CommonTree startReg=null;
+		CommonTree endReg=null;
+		CommonTree I_REGISTER_RANGE101=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:694:3: ( ^( I_REGISTER_RANGE (startReg= REGISTER (endReg= REGISTER )? )? ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:694:5: ^( I_REGISTER_RANGE (startReg= REGISTER (endReg= REGISTER )? )? )
+			{
+			I_REGISTER_RANGE101=(CommonTree)match(input,I_REGISTER_RANGE,FOLLOW_I_REGISTER_RANGE_in_register_range1766);
+			if ( input.LA(1)==Token.DOWN ) {
+				match(input, Token.DOWN, null);
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:694:24: (startReg= REGISTER (endReg= REGISTER )? )?
+				int alt35=2;
+				int LA35_0 = input.LA(1);
+				if ( (LA35_0==REGISTER) ) {
+					alt35=1;
+				}
+				switch (alt35) {
+					case 1 :
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:694:25: startReg= REGISTER (endReg= REGISTER )?
+						{
+						startReg=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_register_range1771);
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:694:49: (endReg= REGISTER )?
+						int alt34=2;
+						int LA34_0 = input.LA(1);
+						if ( (LA34_0==REGISTER) ) {
+							alt34=1;
+						}
+						switch (alt34) {
+							case 1 :
+								// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:694:49: endReg= REGISTER
+								{
+								endReg=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_register_range1775);
+								}
+								break;
+
+						}
+
+						}
+						break;
+
+				}
+
+				match(input, Token.UP, null);
+			}
+
+
+			        if (startReg == null) {
+			            retval.startRegister = 0;
+			            retval.endRegister = -1;
+			        } else {
+			                retval.startRegister = parseRegister_short((startReg!=null?startReg.getText():null));
+			                if (endReg == null) {
+			                    retval.endRegister = retval.startRegister;
+			                } else {
+			                    retval.endRegister = parseRegister_short((endReg!=null?endReg.getText():null));
+			                }
+
+			                int registerCount = retval.endRegister-retval.startRegister+1;
+			                if (registerCount < 1) {
+			                    throw new SemanticException(input, I_REGISTER_RANGE101, "A register range must have the lower register listed first");
+			                }
+			            }
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "register_range"
+
+
+
+	// $ANTLR start "verification_error_reference"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:714:1: verification_error_reference returns [ImmutableReference reference] : ( CLASS_DESCRIPTOR | field_reference | method_reference );
+	public final ImmutableReference verification_error_reference() throws RecognitionException {
+		ImmutableReference reference = null;
+
+
+		CommonTree CLASS_DESCRIPTOR102=null;
+		ImmutableFieldReference field_reference103 =null;
+		ImmutableMethodReference method_reference104 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:715:3: ( CLASS_DESCRIPTOR | field_reference | method_reference )
+			int alt36=3;
+			switch ( input.LA(1) ) {
+			case CLASS_DESCRIPTOR:
+				{
+				int LA36_1 = input.LA(2);
+				if ( (LA36_1==UP) ) {
+					alt36=1;
+				}
+				else if ( (LA36_1==SIMPLE_NAME) ) {
+					int LA36_3 = input.LA(3);
+					if ( (LA36_3==ARRAY_DESCRIPTOR||LA36_3==CLASS_DESCRIPTOR||LA36_3==PRIMITIVE_TYPE) ) {
+						alt36=2;
+					}
+					else if ( (LA36_3==I_METHOD_PROTOTYPE) ) {
+						alt36=3;
+					}
+
+					else {
+						int nvaeMark = input.mark();
+						try {
+							for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
+								input.consume();
+							}
+							NoViableAltException nvae =
+								new NoViableAltException("", 36, 3, input);
+							throw nvae;
+						} finally {
+							input.rewind(nvaeMark);
+						}
+					}
+
+				}
+
+				else {
+					int nvaeMark = input.mark();
+					try {
+						input.consume();
+						NoViableAltException nvae =
+							new NoViableAltException("", 36, 1, input);
+						throw nvae;
+					} finally {
+						input.rewind(nvaeMark);
+					}
+				}
+
+				}
+				break;
+			case ARRAY_DESCRIPTOR:
+				{
+				int LA36_2 = input.LA(2);
+				if ( (LA36_2==SIMPLE_NAME) ) {
+					int LA36_3 = input.LA(3);
+					if ( (LA36_3==ARRAY_DESCRIPTOR||LA36_3==CLASS_DESCRIPTOR||LA36_3==PRIMITIVE_TYPE) ) {
+						alt36=2;
+					}
+					else if ( (LA36_3==I_METHOD_PROTOTYPE) ) {
+						alt36=3;
+					}
+
+					else {
+						int nvaeMark = input.mark();
+						try {
+							for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
+								input.consume();
+							}
+							NoViableAltException nvae =
+								new NoViableAltException("", 36, 3, input);
+							throw nvae;
+						} finally {
+							input.rewind(nvaeMark);
+						}
+					}
+
+				}
+
+				else {
+					int nvaeMark = input.mark();
+					try {
+						input.consume();
+						NoViableAltException nvae =
+							new NoViableAltException("", 36, 2, input);
+						throw nvae;
+					} finally {
+						input.rewind(nvaeMark);
+					}
+				}
+
+				}
+				break;
+			case SIMPLE_NAME:
+				{
+				int LA36_3 = input.LA(2);
+				if ( (LA36_3==ARRAY_DESCRIPTOR||LA36_3==CLASS_DESCRIPTOR||LA36_3==PRIMITIVE_TYPE) ) {
+					alt36=2;
+				}
+				else if ( (LA36_3==I_METHOD_PROTOTYPE) ) {
+					alt36=3;
+				}
+
+				else {
+					int nvaeMark = input.mark();
+					try {
+						input.consume();
+						NoViableAltException nvae =
+							new NoViableAltException("", 36, 3, input);
+						throw nvae;
+					} finally {
+						input.rewind(nvaeMark);
+					}
+				}
+
+				}
+				break;
+			default:
+				NoViableAltException nvae =
+					new NoViableAltException("", 36, 0, input);
+				throw nvae;
+			}
+			switch (alt36) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:715:5: CLASS_DESCRIPTOR
+					{
+					CLASS_DESCRIPTOR102=(CommonTree)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_verification_error_reference1798);
+
+					    reference = new ImmutableTypeReference((CLASS_DESCRIPTOR102!=null?CLASS_DESCRIPTOR102.getText():null));
+					
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:719:5: field_reference
+					{
+					pushFollow(FOLLOW_field_reference_in_verification_error_reference1808);
+					field_reference103=field_reference();
+					state._fsp--;
+
+
+					    reference = field_reference103;
+					
+					}
+					break;
+				case 3 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:723:5: method_reference
+					{
+					pushFollow(FOLLOW_method_reference_in_verification_error_reference1818);
+					method_reference104=method_reference();
+					state._fsp--;
+
+
+					    reference = method_reference104;
+					
+					}
+					break;
+
+			}
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return reference;
+	}
+	// $ANTLR end "verification_error_reference"
+
+
+
+	// $ANTLR start "verification_error_type"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:728:1: verification_error_type returns [int verificationError] : VERIFICATION_ERROR_TYPE ;
+	public final int verification_error_type() throws RecognitionException {
+		int verificationError = 0;
+
+
+		CommonTree VERIFICATION_ERROR_TYPE105=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:729:3: ( VERIFICATION_ERROR_TYPE )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:729:5: VERIFICATION_ERROR_TYPE
+			{
+			VERIFICATION_ERROR_TYPE105=(CommonTree)match(input,VERIFICATION_ERROR_TYPE,FOLLOW_VERIFICATION_ERROR_TYPE_in_verification_error_type1835);
+
+			    verificationError = VerificationError.getVerificationError((VERIFICATION_ERROR_TYPE105!=null?VERIFICATION_ERROR_TYPE105.getText():null));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return verificationError;
+	}
+	// $ANTLR end "verification_error_type"
+
+
+	public static class instruction_return extends TreeRuleReturnScope {
+	};
+
+
+	// $ANTLR start "instruction"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:734:1: instruction : ( insn_format10t | insn_format10x | insn_format11n | insn_format11x | insn_format12x | insn_format20bc | insn_format20t | insn_format21c_field | insn_format21c_string | insn_format21c_type | insn_format21c_lambda | insn_format21c_method | insn_format21ih | insn_format21lh | insn_format21s | insn_format21t | insn_format22b | insn_format22c_field | insn_format22c_type | insn_format22c_string | insn_format22s | insn_format22t | insn_format22x | insn_format23x | insn_format25x | insn_format30t | insn_format31c | insn_format31i | insn_format31t | insn_format32x | insn_format35c_method | insn_format35c_type | insn_format3rc_method | insn_format3rc_type | insn_format51l_type | insn_array_data_directive | insn_packed_switch_directive | insn_sparse_switch_directive );
+	public final smaliTreeWalker.instruction_return instruction() throws RecognitionException {
+		smaliTreeWalker.instruction_return retval = new smaliTreeWalker.instruction_return();
+		retval.start = input.LT(1);
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:735:3: ( insn_format10t | insn_format10x | insn_format11n | insn_format11x | insn_format12x | insn_format20bc | insn_format20t | insn_format21c_field | insn_format21c_string | insn_format21c_type | insn_format21c_lambda | insn_format21c_method | insn_format21ih | insn_format21lh | insn_format21s | insn_format21t | insn_format22b | insn_format22c_field | insn_format22c_type | insn_format22c_string | insn_format22s | insn_format22t | insn_format22x | insn_format23x | insn_format25x | insn_format30t | insn_format31c | insn_format31i | insn_format31t | insn_format32x | insn_format35c_method | insn_format35c_type | insn_format3rc_method | insn_format3rc_type | insn_format51l_type | insn_array_data_directive | insn_packed_switch_directive | insn_sparse_switch_directive )
+			int alt37=38;
+			switch ( input.LA(1) ) {
+			case I_STATEMENT_FORMAT10t:
+				{
+				alt37=1;
+				}
+				break;
+			case I_STATEMENT_FORMAT10x:
+				{
+				alt37=2;
+				}
+				break;
+			case I_STATEMENT_FORMAT11n:
+				{
+				alt37=3;
+				}
+				break;
+			case I_STATEMENT_FORMAT11x:
+				{
+				alt37=4;
+				}
+				break;
+			case I_STATEMENT_FORMAT12x:
+				{
+				alt37=5;
+				}
+				break;
+			case I_STATEMENT_FORMAT20bc:
+				{
+				alt37=6;
+				}
+				break;
+			case I_STATEMENT_FORMAT20t:
+				{
+				alt37=7;
+				}
+				break;
+			case I_STATEMENT_FORMAT21c_FIELD:
+				{
+				alt37=8;
+				}
+				break;
+			case I_STATEMENT_FORMAT21c_STRING:
+				{
+				alt37=9;
+				}
+				break;
+			case I_STATEMENT_FORMAT21c_TYPE:
+				{
+				alt37=10;
+				}
+				break;
+			case I_STATEMENT_FORMAT21c_LAMBDA:
+				{
+				alt37=11;
+				}
+				break;
+			case I_STATEMENT_FORMAT21c_METHOD:
+				{
+				alt37=12;
+				}
+				break;
+			case I_STATEMENT_FORMAT21ih:
+				{
+				alt37=13;
+				}
+				break;
+			case I_STATEMENT_FORMAT21lh:
+				{
+				alt37=14;
+				}
+				break;
+			case I_STATEMENT_FORMAT21s:
+				{
+				alt37=15;
+				}
+				break;
+			case I_STATEMENT_FORMAT21t:
+				{
+				alt37=16;
+				}
+				break;
+			case I_STATEMENT_FORMAT22b:
+				{
+				alt37=17;
+				}
+				break;
+			case I_STATEMENT_FORMAT22c_FIELD:
+				{
+				alt37=18;
+				}
+				break;
+			case I_STATEMENT_FORMAT22c_TYPE:
+				{
+				alt37=19;
+				}
+				break;
+			case I_STATEMENT_FORMAT22c_STRING:
+				{
+				alt37=20;
+				}
+				break;
+			case I_STATEMENT_FORMAT22s:
+				{
+				alt37=21;
+				}
+				break;
+			case I_STATEMENT_FORMAT22t:
+				{
+				alt37=22;
+				}
+				break;
+			case I_STATEMENT_FORMAT22x:
+				{
+				alt37=23;
+				}
+				break;
+			case I_STATEMENT_FORMAT23x:
+				{
+				alt37=24;
+				}
+				break;
+			case I_STATEMENT_FORMAT25x:
+				{
+				alt37=25;
+				}
+				break;
+			case I_STATEMENT_FORMAT30t:
+				{
+				alt37=26;
+				}
+				break;
+			case I_STATEMENT_FORMAT31c:
+				{
+				alt37=27;
+				}
+				break;
+			case I_STATEMENT_FORMAT31i:
+				{
+				alt37=28;
+				}
+				break;
+			case I_STATEMENT_FORMAT31t:
+				{
+				alt37=29;
+				}
+				break;
+			case I_STATEMENT_FORMAT32x:
+				{
+				alt37=30;
+				}
+				break;
+			case I_STATEMENT_FORMAT35c_METHOD:
+				{
+				alt37=31;
+				}
+				break;
+			case I_STATEMENT_FORMAT35c_TYPE:
+				{
+				alt37=32;
+				}
+				break;
+			case I_STATEMENT_FORMAT3rc_METHOD:
+				{
+				alt37=33;
+				}
+				break;
+			case I_STATEMENT_FORMAT3rc_TYPE:
+				{
+				alt37=34;
+				}
+				break;
+			case I_STATEMENT_FORMAT51l:
+				{
+				alt37=35;
+				}
+				break;
+			case I_STATEMENT_ARRAY_DATA:
+				{
+				alt37=36;
+				}
+				break;
+			case I_STATEMENT_PACKED_SWITCH:
+				{
+				alt37=37;
+				}
+				break;
+			case I_STATEMENT_SPARSE_SWITCH:
+				{
+				alt37=38;
+				}
+				break;
+			default:
+				NoViableAltException nvae =
+					new NoViableAltException("", 37, 0, input);
+				throw nvae;
+			}
+			switch (alt37) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:735:5: insn_format10t
+					{
+					pushFollow(FOLLOW_insn_format10t_in_instruction1849);
+					insn_format10t();
+					state._fsp--;
+
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:736:5: insn_format10x
+					{
+					pushFollow(FOLLOW_insn_format10x_in_instruction1855);
+					insn_format10x();
+					state._fsp--;
+
+					}
+					break;
+				case 3 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:737:5: insn_format11n
+					{
+					pushFollow(FOLLOW_insn_format11n_in_instruction1861);
+					insn_format11n();
+					state._fsp--;
+
+					}
+					break;
+				case 4 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:738:5: insn_format11x
+					{
+					pushFollow(FOLLOW_insn_format11x_in_instruction1867);
+					insn_format11x();
+					state._fsp--;
+
+					}
+					break;
+				case 5 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:739:5: insn_format12x
+					{
+					pushFollow(FOLLOW_insn_format12x_in_instruction1873);
+					insn_format12x();
+					state._fsp--;
+
+					}
+					break;
+				case 6 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:740:5: insn_format20bc
+					{
+					pushFollow(FOLLOW_insn_format20bc_in_instruction1879);
+					insn_format20bc();
+					state._fsp--;
+
+					}
+					break;
+				case 7 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:741:5: insn_format20t
+					{
+					pushFollow(FOLLOW_insn_format20t_in_instruction1885);
+					insn_format20t();
+					state._fsp--;
+
+					}
+					break;
+				case 8 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:742:5: insn_format21c_field
+					{
+					pushFollow(FOLLOW_insn_format21c_field_in_instruction1891);
+					insn_format21c_field();
+					state._fsp--;
+
+					}
+					break;
+				case 9 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:743:5: insn_format21c_string
+					{
+					pushFollow(FOLLOW_insn_format21c_string_in_instruction1897);
+					insn_format21c_string();
+					state._fsp--;
+
+					}
+					break;
+				case 10 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:744:5: insn_format21c_type
+					{
+					pushFollow(FOLLOW_insn_format21c_type_in_instruction1903);
+					insn_format21c_type();
+					state._fsp--;
+
+					}
+					break;
+				case 11 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:745:5: insn_format21c_lambda
+					{
+					pushFollow(FOLLOW_insn_format21c_lambda_in_instruction1909);
+					insn_format21c_lambda();
+					state._fsp--;
+
+					}
+					break;
+				case 12 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:746:5: insn_format21c_method
+					{
+					pushFollow(FOLLOW_insn_format21c_method_in_instruction1915);
+					insn_format21c_method();
+					state._fsp--;
+
+					}
+					break;
+				case 13 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:747:5: insn_format21ih
+					{
+					pushFollow(FOLLOW_insn_format21ih_in_instruction1921);
+					insn_format21ih();
+					state._fsp--;
+
+					}
+					break;
+				case 14 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:748:5: insn_format21lh
+					{
+					pushFollow(FOLLOW_insn_format21lh_in_instruction1927);
+					insn_format21lh();
+					state._fsp--;
+
+					}
+					break;
+				case 15 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:749:5: insn_format21s
+					{
+					pushFollow(FOLLOW_insn_format21s_in_instruction1933);
+					insn_format21s();
+					state._fsp--;
+
+					}
+					break;
+				case 16 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:750:5: insn_format21t
+					{
+					pushFollow(FOLLOW_insn_format21t_in_instruction1939);
+					insn_format21t();
+					state._fsp--;
+
+					}
+					break;
+				case 17 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:751:5: insn_format22b
+					{
+					pushFollow(FOLLOW_insn_format22b_in_instruction1945);
+					insn_format22b();
+					state._fsp--;
+
+					}
+					break;
+				case 18 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:752:5: insn_format22c_field
+					{
+					pushFollow(FOLLOW_insn_format22c_field_in_instruction1951);
+					insn_format22c_field();
+					state._fsp--;
+
+					}
+					break;
+				case 19 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:753:5: insn_format22c_type
+					{
+					pushFollow(FOLLOW_insn_format22c_type_in_instruction1957);
+					insn_format22c_type();
+					state._fsp--;
+
+					}
+					break;
+				case 20 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:754:5: insn_format22c_string
+					{
+					pushFollow(FOLLOW_insn_format22c_string_in_instruction1963);
+					insn_format22c_string();
+					state._fsp--;
+
+					}
+					break;
+				case 21 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:755:5: insn_format22s
+					{
+					pushFollow(FOLLOW_insn_format22s_in_instruction1969);
+					insn_format22s();
+					state._fsp--;
+
+					}
+					break;
+				case 22 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:756:5: insn_format22t
+					{
+					pushFollow(FOLLOW_insn_format22t_in_instruction1975);
+					insn_format22t();
+					state._fsp--;
+
+					}
+					break;
+				case 23 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:757:5: insn_format22x
+					{
+					pushFollow(FOLLOW_insn_format22x_in_instruction1981);
+					insn_format22x();
+					state._fsp--;
+
+					}
+					break;
+				case 24 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:758:5: insn_format23x
+					{
+					pushFollow(FOLLOW_insn_format23x_in_instruction1987);
+					insn_format23x();
+					state._fsp--;
+
+					}
+					break;
+				case 25 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:759:5: insn_format25x
+					{
+					pushFollow(FOLLOW_insn_format25x_in_instruction1993);
+					insn_format25x();
+					state._fsp--;
+
+					}
+					break;
+				case 26 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:760:5: insn_format30t
+					{
+					pushFollow(FOLLOW_insn_format30t_in_instruction1999);
+					insn_format30t();
+					state._fsp--;
+
+					}
+					break;
+				case 27 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:761:5: insn_format31c
+					{
+					pushFollow(FOLLOW_insn_format31c_in_instruction2005);
+					insn_format31c();
+					state._fsp--;
+
+					}
+					break;
+				case 28 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:762:5: insn_format31i
+					{
+					pushFollow(FOLLOW_insn_format31i_in_instruction2011);
+					insn_format31i();
+					state._fsp--;
+
+					}
+					break;
+				case 29 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:763:5: insn_format31t
+					{
+					pushFollow(FOLLOW_insn_format31t_in_instruction2017);
+					insn_format31t();
+					state._fsp--;
+
+					}
+					break;
+				case 30 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:764:5: insn_format32x
+					{
+					pushFollow(FOLLOW_insn_format32x_in_instruction2023);
+					insn_format32x();
+					state._fsp--;
+
+					}
+					break;
+				case 31 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:765:5: insn_format35c_method
+					{
+					pushFollow(FOLLOW_insn_format35c_method_in_instruction2029);
+					insn_format35c_method();
+					state._fsp--;
+
+					}
+					break;
+				case 32 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:766:5: insn_format35c_type
+					{
+					pushFollow(FOLLOW_insn_format35c_type_in_instruction2035);
+					insn_format35c_type();
+					state._fsp--;
+
+					}
+					break;
+				case 33 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:767:5: insn_format3rc_method
+					{
+					pushFollow(FOLLOW_insn_format3rc_method_in_instruction2041);
+					insn_format3rc_method();
+					state._fsp--;
+
+					}
+					break;
+				case 34 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:768:5: insn_format3rc_type
+					{
+					pushFollow(FOLLOW_insn_format3rc_type_in_instruction2047);
+					insn_format3rc_type();
+					state._fsp--;
+
+					}
+					break;
+				case 35 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:769:5: insn_format51l_type
+					{
+					pushFollow(FOLLOW_insn_format51l_type_in_instruction2053);
+					insn_format51l_type();
+					state._fsp--;
+
+					}
+					break;
+				case 36 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:770:5: insn_array_data_directive
+					{
+					pushFollow(FOLLOW_insn_array_data_directive_in_instruction2059);
+					insn_array_data_directive();
+					state._fsp--;
+
+					}
+					break;
+				case 37 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:771:5: insn_packed_switch_directive
+					{
+					pushFollow(FOLLOW_insn_packed_switch_directive_in_instruction2065);
+					insn_packed_switch_directive();
+					state._fsp--;
+
+					}
+					break;
+				case 38 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:772:5: insn_sparse_switch_directive
+					{
+					pushFollow(FOLLOW_insn_sparse_switch_directive_in_instruction2071);
+					insn_sparse_switch_directive();
+					state._fsp--;
+
+					}
+					break;
+
+			}
+		}
+		catch (Exception ex) {
+
+			    reportError(new SemanticException(input, ((CommonTree)retval.start), ex.getMessage()));
+			    recover(input, null);
+			
+		}
+
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "instruction"
+
+
+
+	// $ANTLR start "insn_format10t"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:778:1: insn_format10t : ^( I_STATEMENT_FORMAT10t INSTRUCTION_FORMAT10t label_ref ) ;
+	public final void insn_format10t() throws RecognitionException {
+		CommonTree INSTRUCTION_FORMAT10t106=null;
+		Label label_ref107 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:779:3: ( ^( I_STATEMENT_FORMAT10t INSTRUCTION_FORMAT10t label_ref ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:780:5: ^( I_STATEMENT_FORMAT10t INSTRUCTION_FORMAT10t label_ref )
+			{
+			match(input,I_STATEMENT_FORMAT10t,FOLLOW_I_STATEMENT_FORMAT10t_in_insn_format10t2095);
+			match(input, Token.DOWN, null);
+			INSTRUCTION_FORMAT10t106=(CommonTree)match(input,INSTRUCTION_FORMAT10t,FOLLOW_INSTRUCTION_FORMAT10t_in_insn_format10t2097);
+			pushFollow(FOLLOW_label_ref_in_insn_format10t2099);
+			label_ref107=label_ref();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT10t106!=null?INSTRUCTION_FORMAT10t106.getText():null));
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction10t(opcode, label_ref107));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format10t"
+
+
+
+	// $ANTLR start "insn_format10x"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:786:1: insn_format10x : ^( I_STATEMENT_FORMAT10x INSTRUCTION_FORMAT10x ) ;
+	public final void insn_format10x() throws RecognitionException {
+		CommonTree INSTRUCTION_FORMAT10x108=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:787:3: ( ^( I_STATEMENT_FORMAT10x INSTRUCTION_FORMAT10x ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:788:5: ^( I_STATEMENT_FORMAT10x INSTRUCTION_FORMAT10x )
+			{
+			match(input,I_STATEMENT_FORMAT10x,FOLLOW_I_STATEMENT_FORMAT10x_in_insn_format10x2122);
+			match(input, Token.DOWN, null);
+			INSTRUCTION_FORMAT10x108=(CommonTree)match(input,INSTRUCTION_FORMAT10x,FOLLOW_INSTRUCTION_FORMAT10x_in_insn_format10x2124);
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT10x108!=null?INSTRUCTION_FORMAT10x108.getText():null));
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction10x(opcode));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format10x"
+
+
+
+	// $ANTLR start "insn_format11n"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:794:1: insn_format11n : ^( I_STATEMENT_FORMAT11n INSTRUCTION_FORMAT11n REGISTER short_integral_literal ) ;
+	public final void insn_format11n() throws RecognitionException {
+		CommonTree INSTRUCTION_FORMAT11n109=null;
+		CommonTree REGISTER110=null;
+		short short_integral_literal111 =0;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:795:3: ( ^( I_STATEMENT_FORMAT11n INSTRUCTION_FORMAT11n REGISTER short_integral_literal ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:796:5: ^( I_STATEMENT_FORMAT11n INSTRUCTION_FORMAT11n REGISTER short_integral_literal )
+			{
+			match(input,I_STATEMENT_FORMAT11n,FOLLOW_I_STATEMENT_FORMAT11n_in_insn_format11n2147);
+			match(input, Token.DOWN, null);
+			INSTRUCTION_FORMAT11n109=(CommonTree)match(input,INSTRUCTION_FORMAT11n,FOLLOW_INSTRUCTION_FORMAT11n_in_insn_format11n2149);
+			REGISTER110=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format11n2151);
+			pushFollow(FOLLOW_short_integral_literal_in_insn_format11n2153);
+			short_integral_literal111=short_integral_literal();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT11n109!=null?INSTRUCTION_FORMAT11n109.getText():null));
+			      byte regA = parseRegister_nibble((REGISTER110!=null?REGISTER110.getText():null));
+
+			      short litB = short_integral_literal111;
+			      LiteralTools.checkNibble(litB);
+
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction11n(opcode, regA, litB));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format11n"
+
+
+
+	// $ANTLR start "insn_format11x"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:807:1: insn_format11x : ^( I_STATEMENT_FORMAT11x INSTRUCTION_FORMAT11x REGISTER ) ;
+	public final void insn_format11x() throws RecognitionException {
+		CommonTree INSTRUCTION_FORMAT11x112=null;
+		CommonTree REGISTER113=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:808:3: ( ^( I_STATEMENT_FORMAT11x INSTRUCTION_FORMAT11x REGISTER ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:809:5: ^( I_STATEMENT_FORMAT11x INSTRUCTION_FORMAT11x REGISTER )
+			{
+			match(input,I_STATEMENT_FORMAT11x,FOLLOW_I_STATEMENT_FORMAT11x_in_insn_format11x2176);
+			match(input, Token.DOWN, null);
+			INSTRUCTION_FORMAT11x112=(CommonTree)match(input,INSTRUCTION_FORMAT11x,FOLLOW_INSTRUCTION_FORMAT11x_in_insn_format11x2178);
+			REGISTER113=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format11x2180);
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT11x112!=null?INSTRUCTION_FORMAT11x112.getText():null));
+			      short regA = parseRegister_byte((REGISTER113!=null?REGISTER113.getText():null));
+
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction11x(opcode, regA));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format11x"
+
+
+
+	// $ANTLR start "insn_format12x"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:817:1: insn_format12x : ^( I_STATEMENT_FORMAT12x INSTRUCTION_FORMAT12x registerA= REGISTER registerB= REGISTER ) ;
+	public final void insn_format12x() throws RecognitionException {
+		CommonTree registerA=null;
+		CommonTree registerB=null;
+		CommonTree INSTRUCTION_FORMAT12x114=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:818:3: ( ^( I_STATEMENT_FORMAT12x INSTRUCTION_FORMAT12x registerA= REGISTER registerB= REGISTER ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:819:5: ^( I_STATEMENT_FORMAT12x INSTRUCTION_FORMAT12x registerA= REGISTER registerB= REGISTER )
+			{
+			match(input,I_STATEMENT_FORMAT12x,FOLLOW_I_STATEMENT_FORMAT12x_in_insn_format12x2203);
+			match(input, Token.DOWN, null);
+			INSTRUCTION_FORMAT12x114=(CommonTree)match(input,INSTRUCTION_FORMAT12x,FOLLOW_INSTRUCTION_FORMAT12x_in_insn_format12x2205);
+			registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format12x2209);
+			registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format12x2213);
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT12x114!=null?INSTRUCTION_FORMAT12x114.getText():null));
+			      byte regA = parseRegister_nibble((registerA!=null?registerA.getText():null));
+			      byte regB = parseRegister_nibble((registerB!=null?registerB.getText():null));
+
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction12x(opcode, regA, regB));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format12x"
+
+
+
+	// $ANTLR start "insn_format20bc"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:828:1: insn_format20bc : ^( I_STATEMENT_FORMAT20bc INSTRUCTION_FORMAT20bc verification_error_type verification_error_reference ) ;
+	public final void insn_format20bc() throws RecognitionException {
+		CommonTree INSTRUCTION_FORMAT20bc115=null;
+		int verification_error_type116 =0;
+		ImmutableReference verification_error_reference117 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:829:3: ( ^( I_STATEMENT_FORMAT20bc INSTRUCTION_FORMAT20bc verification_error_type verification_error_reference ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:830:5: ^( I_STATEMENT_FORMAT20bc INSTRUCTION_FORMAT20bc verification_error_type verification_error_reference )
+			{
+			match(input,I_STATEMENT_FORMAT20bc,FOLLOW_I_STATEMENT_FORMAT20bc_in_insn_format20bc2236);
+			match(input, Token.DOWN, null);
+			INSTRUCTION_FORMAT20bc115=(CommonTree)match(input,INSTRUCTION_FORMAT20bc,FOLLOW_INSTRUCTION_FORMAT20bc_in_insn_format20bc2238);
+			pushFollow(FOLLOW_verification_error_type_in_insn_format20bc2240);
+			verification_error_type116=verification_error_type();
+			state._fsp--;
+
+			pushFollow(FOLLOW_verification_error_reference_in_insn_format20bc2242);
+			verification_error_reference117=verification_error_reference();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT20bc115!=null?INSTRUCTION_FORMAT20bc115.getText():null));
+
+			      int verificationError = verification_error_type116;
+			      ImmutableReference referencedItem = verification_error_reference117;
+
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction20bc(opcode, verificationError,
+			              dexBuilder.internReference(referencedItem)));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format20bc"
+
+
+
+	// $ANTLR start "insn_format20t"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:841:1: insn_format20t : ^( I_STATEMENT_FORMAT20t INSTRUCTION_FORMAT20t label_ref ) ;
+	public final void insn_format20t() throws RecognitionException {
+		CommonTree INSTRUCTION_FORMAT20t118=null;
+		Label label_ref119 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:842:3: ( ^( I_STATEMENT_FORMAT20t INSTRUCTION_FORMAT20t label_ref ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:843:5: ^( I_STATEMENT_FORMAT20t INSTRUCTION_FORMAT20t label_ref )
+			{
+			match(input,I_STATEMENT_FORMAT20t,FOLLOW_I_STATEMENT_FORMAT20t_in_insn_format20t2265);
+			match(input, Token.DOWN, null);
+			INSTRUCTION_FORMAT20t118=(CommonTree)match(input,INSTRUCTION_FORMAT20t,FOLLOW_INSTRUCTION_FORMAT20t_in_insn_format20t2267);
+			pushFollow(FOLLOW_label_ref_in_insn_format20t2269);
+			label_ref119=label_ref();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT20t118!=null?INSTRUCTION_FORMAT20t118.getText():null));
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction20t(opcode, label_ref119));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format20t"
+
+
+
+	// $ANTLR start "insn_format21c_field"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:849:1: insn_format21c_field : ^( I_STATEMENT_FORMAT21c_FIELD inst= ( INSTRUCTION_FORMAT21c_FIELD | INSTRUCTION_FORMAT21c_FIELD_ODEX ) REGISTER field_reference ) ;
+	public final void insn_format21c_field() throws RecognitionException {
+		CommonTree inst=null;
+		CommonTree REGISTER120=null;
+		ImmutableFieldReference field_reference121 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:850:3: ( ^( I_STATEMENT_FORMAT21c_FIELD inst= ( INSTRUCTION_FORMAT21c_FIELD | INSTRUCTION_FORMAT21c_FIELD_ODEX ) REGISTER field_reference ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:851:5: ^( I_STATEMENT_FORMAT21c_FIELD inst= ( INSTRUCTION_FORMAT21c_FIELD | INSTRUCTION_FORMAT21c_FIELD_ODEX ) REGISTER field_reference )
+			{
+			match(input,I_STATEMENT_FORMAT21c_FIELD,FOLLOW_I_STATEMENT_FORMAT21c_FIELD_in_insn_format21c_field2292);
+			match(input, Token.DOWN, null);
+			inst=(CommonTree)input.LT(1);
+			if ( (input.LA(1) >= INSTRUCTION_FORMAT21c_FIELD && input.LA(1) <= INSTRUCTION_FORMAT21c_FIELD_ODEX) ) {
+				input.consume();
+				state.errorRecovery=false;
+			}
+			else {
+				MismatchedSetException mse = new MismatchedSetException(null,input);
+				throw mse;
+			}
+			REGISTER120=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21c_field2304);
+			pushFollow(FOLLOW_field_reference_in_insn_format21c_field2306);
+			field_reference121=field_reference();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((inst!=null?inst.getText():null));
+			      short regA = parseRegister_byte((REGISTER120!=null?REGISTER120.getText():null));
+
+			      ImmutableFieldReference fieldReference = field_reference121;
+
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction21c(opcode, regA,
+			              dexBuilder.internFieldReference(fieldReference)));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format21c_field"
+
+
+
+	// $ANTLR start "insn_format21c_string"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:862:1: insn_format21c_string : ^( I_STATEMENT_FORMAT21c_STRING INSTRUCTION_FORMAT21c_STRING REGISTER string_literal ) ;
+	public final void insn_format21c_string() throws RecognitionException {
+		CommonTree INSTRUCTION_FORMAT21c_STRING122=null;
+		CommonTree REGISTER123=null;
+		String string_literal124 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:863:3: ( ^( I_STATEMENT_FORMAT21c_STRING INSTRUCTION_FORMAT21c_STRING REGISTER string_literal ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:864:5: ^( I_STATEMENT_FORMAT21c_STRING INSTRUCTION_FORMAT21c_STRING REGISTER string_literal )
+			{
+			match(input,I_STATEMENT_FORMAT21c_STRING,FOLLOW_I_STATEMENT_FORMAT21c_STRING_in_insn_format21c_string2329);
+			match(input, Token.DOWN, null);
+			INSTRUCTION_FORMAT21c_STRING122=(CommonTree)match(input,INSTRUCTION_FORMAT21c_STRING,FOLLOW_INSTRUCTION_FORMAT21c_STRING_in_insn_format21c_string2331);
+			REGISTER123=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21c_string2333);
+			pushFollow(FOLLOW_string_literal_in_insn_format21c_string2335);
+			string_literal124=string_literal();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT21c_STRING122!=null?INSTRUCTION_FORMAT21c_STRING122.getText():null));
+			      short regA = parseRegister_byte((REGISTER123!=null?REGISTER123.getText():null));
+
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction21c(opcode, regA,
+			              dexBuilder.internStringReference(string_literal124)));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format21c_string"
+
+
+
+	// $ANTLR start "insn_format21c_type"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:873:1: insn_format21c_type : ^( I_STATEMENT_FORMAT21c_TYPE INSTRUCTION_FORMAT21c_TYPE REGISTER nonvoid_type_descriptor ) ;
+	public final void insn_format21c_type() throws RecognitionException {
+		CommonTree INSTRUCTION_FORMAT21c_TYPE125=null;
+		CommonTree REGISTER126=null;
+		TreeRuleReturnScope nonvoid_type_descriptor127 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:874:3: ( ^( I_STATEMENT_FORMAT21c_TYPE INSTRUCTION_FORMAT21c_TYPE REGISTER nonvoid_type_descriptor ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:875:5: ^( I_STATEMENT_FORMAT21c_TYPE INSTRUCTION_FORMAT21c_TYPE REGISTER nonvoid_type_descriptor )
+			{
+			match(input,I_STATEMENT_FORMAT21c_TYPE,FOLLOW_I_STATEMENT_FORMAT21c_TYPE_in_insn_format21c_type2358);
+			match(input, Token.DOWN, null);
+			INSTRUCTION_FORMAT21c_TYPE125=(CommonTree)match(input,INSTRUCTION_FORMAT21c_TYPE,FOLLOW_INSTRUCTION_FORMAT21c_TYPE_in_insn_format21c_type2360);
+			REGISTER126=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21c_type2362);
+			pushFollow(FOLLOW_nonvoid_type_descriptor_in_insn_format21c_type2364);
+			nonvoid_type_descriptor127=nonvoid_type_descriptor();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT21c_TYPE125!=null?INSTRUCTION_FORMAT21c_TYPE125.getText():null));
+			      short regA = parseRegister_byte((REGISTER126!=null?REGISTER126.getText():null));
+
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction21c(opcode, regA,
+			              dexBuilder.internTypeReference((nonvoid_type_descriptor127!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor127).type:null))));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format21c_type"
+
+
+
+	// $ANTLR start "insn_format21c_lambda"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:884:1: insn_format21c_lambda : ^( I_STATEMENT_FORMAT21c_LAMBDA INSTRUCTION_FORMAT21c_LAMBDA REGISTER string_literal ) ;
+	public final void insn_format21c_lambda() throws RecognitionException {
+		CommonTree INSTRUCTION_FORMAT21c_LAMBDA128=null;
+		CommonTree REGISTER129=null;
+		String string_literal130 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:885:3: ( ^( I_STATEMENT_FORMAT21c_LAMBDA INSTRUCTION_FORMAT21c_LAMBDA REGISTER string_literal ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:886:5: ^( I_STATEMENT_FORMAT21c_LAMBDA INSTRUCTION_FORMAT21c_LAMBDA REGISTER string_literal )
+			{
+			match(input,I_STATEMENT_FORMAT21c_LAMBDA,FOLLOW_I_STATEMENT_FORMAT21c_LAMBDA_in_insn_format21c_lambda2387);
+			match(input, Token.DOWN, null);
+			INSTRUCTION_FORMAT21c_LAMBDA128=(CommonTree)match(input,INSTRUCTION_FORMAT21c_LAMBDA,FOLLOW_INSTRUCTION_FORMAT21c_LAMBDA_in_insn_format21c_lambda2389);
+			REGISTER129=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21c_lambda2391);
+			pushFollow(FOLLOW_string_literal_in_insn_format21c_lambda2393);
+			string_literal130=string_literal();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT21c_LAMBDA128!=null?INSTRUCTION_FORMAT21c_LAMBDA128.getText():null));
+			      short regA = parseRegister_byte((REGISTER129!=null?REGISTER129.getText():null));
+
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction21c(opcode, regA,
+			              dexBuilder.internStringReference(string_literal130)));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format21c_lambda"
+
+
+
+	// $ANTLR start "insn_format21c_method"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:895:1: insn_format21c_method : ^( I_STATEMENT_FORMAT21c_METHOD INSTRUCTION_FORMAT21c_METHOD REGISTER method_reference ) ;
+	public final void insn_format21c_method() throws RecognitionException {
+		CommonTree INSTRUCTION_FORMAT21c_METHOD131=null;
+		CommonTree REGISTER132=null;
+		ImmutableMethodReference method_reference133 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:896:3: ( ^( I_STATEMENT_FORMAT21c_METHOD INSTRUCTION_FORMAT21c_METHOD REGISTER method_reference ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:897:5: ^( I_STATEMENT_FORMAT21c_METHOD INSTRUCTION_FORMAT21c_METHOD REGISTER method_reference )
+			{
+			match(input,I_STATEMENT_FORMAT21c_METHOD,FOLLOW_I_STATEMENT_FORMAT21c_METHOD_in_insn_format21c_method2416);
+			match(input, Token.DOWN, null);
+			INSTRUCTION_FORMAT21c_METHOD131=(CommonTree)match(input,INSTRUCTION_FORMAT21c_METHOD,FOLLOW_INSTRUCTION_FORMAT21c_METHOD_in_insn_format21c_method2418);
+			REGISTER132=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21c_method2420);
+			pushFollow(FOLLOW_method_reference_in_insn_format21c_method2422);
+			method_reference133=method_reference();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT21c_METHOD131!=null?INSTRUCTION_FORMAT21c_METHOD131.getText():null));
+			      short regA = parseRegister_byte((REGISTER132!=null?REGISTER132.getText():null));
+
+			      ImmutableMethodReference methodReference = method_reference133;
+
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction21c(opcode, regA,
+			              dexBuilder.internMethodReference(methodReference)));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format21c_method"
+
+
+
+	// $ANTLR start "insn_format21ih"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:908:1: insn_format21ih : ^( I_STATEMENT_FORMAT21ih INSTRUCTION_FORMAT21ih REGISTER fixed_32bit_literal ) ;
+	public final void insn_format21ih() throws RecognitionException {
+		CommonTree INSTRUCTION_FORMAT21ih134=null;
+		CommonTree REGISTER135=null;
+		int fixed_32bit_literal136 =0;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:909:3: ( ^( I_STATEMENT_FORMAT21ih INSTRUCTION_FORMAT21ih REGISTER fixed_32bit_literal ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:910:5: ^( I_STATEMENT_FORMAT21ih INSTRUCTION_FORMAT21ih REGISTER fixed_32bit_literal )
+			{
+			match(input,I_STATEMENT_FORMAT21ih,FOLLOW_I_STATEMENT_FORMAT21ih_in_insn_format21ih2445);
+			match(input, Token.DOWN, null);
+			INSTRUCTION_FORMAT21ih134=(CommonTree)match(input,INSTRUCTION_FORMAT21ih,FOLLOW_INSTRUCTION_FORMAT21ih_in_insn_format21ih2447);
+			REGISTER135=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21ih2449);
+			pushFollow(FOLLOW_fixed_32bit_literal_in_insn_format21ih2451);
+			fixed_32bit_literal136=fixed_32bit_literal();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT21ih134!=null?INSTRUCTION_FORMAT21ih134.getText():null));
+			      short regA = parseRegister_byte((REGISTER135!=null?REGISTER135.getText():null));
+
+			      int litB = fixed_32bit_literal136;
+
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction21ih(opcode, regA, litB));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format21ih"
+
+
+
+	// $ANTLR start "insn_format21lh"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:920:1: insn_format21lh : ^( I_STATEMENT_FORMAT21lh INSTRUCTION_FORMAT21lh REGISTER fixed_64bit_literal ) ;
+	public final void insn_format21lh() throws RecognitionException {
+		CommonTree INSTRUCTION_FORMAT21lh137=null;
+		CommonTree REGISTER138=null;
+		long fixed_64bit_literal139 =0;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:921:3: ( ^( I_STATEMENT_FORMAT21lh INSTRUCTION_FORMAT21lh REGISTER fixed_64bit_literal ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:922:5: ^( I_STATEMENT_FORMAT21lh INSTRUCTION_FORMAT21lh REGISTER fixed_64bit_literal )
+			{
+			match(input,I_STATEMENT_FORMAT21lh,FOLLOW_I_STATEMENT_FORMAT21lh_in_insn_format21lh2474);
+			match(input, Token.DOWN, null);
+			INSTRUCTION_FORMAT21lh137=(CommonTree)match(input,INSTRUCTION_FORMAT21lh,FOLLOW_INSTRUCTION_FORMAT21lh_in_insn_format21lh2476);
+			REGISTER138=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21lh2478);
+			pushFollow(FOLLOW_fixed_64bit_literal_in_insn_format21lh2480);
+			fixed_64bit_literal139=fixed_64bit_literal();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT21lh137!=null?INSTRUCTION_FORMAT21lh137.getText():null));
+			      short regA = parseRegister_byte((REGISTER138!=null?REGISTER138.getText():null));
+
+			      long litB = fixed_64bit_literal139;
+
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction21lh(opcode, regA, litB));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format21lh"
+
+
+
+	// $ANTLR start "insn_format21s"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:932:1: insn_format21s : ^( I_STATEMENT_FORMAT21s INSTRUCTION_FORMAT21s REGISTER short_integral_literal ) ;
+	public final void insn_format21s() throws RecognitionException {
+		CommonTree INSTRUCTION_FORMAT21s140=null;
+		CommonTree REGISTER141=null;
+		short short_integral_literal142 =0;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:933:3: ( ^( I_STATEMENT_FORMAT21s INSTRUCTION_FORMAT21s REGISTER short_integral_literal ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:934:5: ^( I_STATEMENT_FORMAT21s INSTRUCTION_FORMAT21s REGISTER short_integral_literal )
+			{
+			match(input,I_STATEMENT_FORMAT21s,FOLLOW_I_STATEMENT_FORMAT21s_in_insn_format21s2503);
+			match(input, Token.DOWN, null);
+			INSTRUCTION_FORMAT21s140=(CommonTree)match(input,INSTRUCTION_FORMAT21s,FOLLOW_INSTRUCTION_FORMAT21s_in_insn_format21s2505);
+			REGISTER141=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21s2507);
+			pushFollow(FOLLOW_short_integral_literal_in_insn_format21s2509);
+			short_integral_literal142=short_integral_literal();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT21s140!=null?INSTRUCTION_FORMAT21s140.getText():null));
+			      short regA = parseRegister_byte((REGISTER141!=null?REGISTER141.getText():null));
+
+			      short litB = short_integral_literal142;
+
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction21s(opcode, regA, litB));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format21s"
+
+
+
+	// $ANTLR start "insn_format21t"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:944:1: insn_format21t : ^( I_STATEMENT_FORMAT21t INSTRUCTION_FORMAT21t REGISTER label_ref ) ;
+	public final void insn_format21t() throws RecognitionException {
+		CommonTree INSTRUCTION_FORMAT21t143=null;
+		CommonTree REGISTER144=null;
+		Label label_ref145 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:945:3: ( ^( I_STATEMENT_FORMAT21t INSTRUCTION_FORMAT21t REGISTER label_ref ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:946:5: ^( I_STATEMENT_FORMAT21t INSTRUCTION_FORMAT21t REGISTER label_ref )
+			{
+			match(input,I_STATEMENT_FORMAT21t,FOLLOW_I_STATEMENT_FORMAT21t_in_insn_format21t2532);
+			match(input, Token.DOWN, null);
+			INSTRUCTION_FORMAT21t143=(CommonTree)match(input,INSTRUCTION_FORMAT21t,FOLLOW_INSTRUCTION_FORMAT21t_in_insn_format21t2534);
+			REGISTER144=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21t2536);
+			pushFollow(FOLLOW_label_ref_in_insn_format21t2538);
+			label_ref145=label_ref();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT21t143!=null?INSTRUCTION_FORMAT21t143.getText():null));
+			      short regA = parseRegister_byte((REGISTER144!=null?REGISTER144.getText():null));
+
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction21t(opcode, regA, label_ref145));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format21t"
+
+
+
+	// $ANTLR start "insn_format22b"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:954:1: insn_format22b : ^( I_STATEMENT_FORMAT22b INSTRUCTION_FORMAT22b registerA= REGISTER registerB= REGISTER short_integral_literal ) ;
+	public final void insn_format22b() throws RecognitionException {
+		CommonTree registerA=null;
+		CommonTree registerB=null;
+		CommonTree INSTRUCTION_FORMAT22b146=null;
+		short short_integral_literal147 =0;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:955:3: ( ^( I_STATEMENT_FORMAT22b INSTRUCTION_FORMAT22b registerA= REGISTER registerB= REGISTER short_integral_literal ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:956:5: ^( I_STATEMENT_FORMAT22b INSTRUCTION_FORMAT22b registerA= REGISTER registerB= REGISTER short_integral_literal )
+			{
+			match(input,I_STATEMENT_FORMAT22b,FOLLOW_I_STATEMENT_FORMAT22b_in_insn_format22b2561);
+			match(input, Token.DOWN, null);
+			INSTRUCTION_FORMAT22b146=(CommonTree)match(input,INSTRUCTION_FORMAT22b,FOLLOW_INSTRUCTION_FORMAT22b_in_insn_format22b2563);
+			registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22b2567);
+			registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22b2571);
+			pushFollow(FOLLOW_short_integral_literal_in_insn_format22b2573);
+			short_integral_literal147=short_integral_literal();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT22b146!=null?INSTRUCTION_FORMAT22b146.getText():null));
+			      short regA = parseRegister_byte((registerA!=null?registerA.getText():null));
+			      short regB = parseRegister_byte((registerB!=null?registerB.getText():null));
+
+			      short litC = short_integral_literal147;
+			      LiteralTools.checkByte(litC);
+
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction22b(opcode, regA, regB, litC));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format22b"
+
+
+
+	// $ANTLR start "insn_format22c_field"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:968:1: insn_format22c_field : ^( I_STATEMENT_FORMAT22c_FIELD inst= ( INSTRUCTION_FORMAT22c_FIELD | INSTRUCTION_FORMAT22c_FIELD_ODEX ) registerA= REGISTER registerB= REGISTER field_reference ) ;
+	public final void insn_format22c_field() throws RecognitionException {
+		CommonTree inst=null;
+		CommonTree registerA=null;
+		CommonTree registerB=null;
+		ImmutableFieldReference field_reference148 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:969:3: ( ^( I_STATEMENT_FORMAT22c_FIELD inst= ( INSTRUCTION_FORMAT22c_FIELD | INSTRUCTION_FORMAT22c_FIELD_ODEX ) registerA= REGISTER registerB= REGISTER field_reference ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:970:5: ^( I_STATEMENT_FORMAT22c_FIELD inst= ( INSTRUCTION_FORMAT22c_FIELD | INSTRUCTION_FORMAT22c_FIELD_ODEX ) registerA= REGISTER registerB= REGISTER field_reference )
+			{
+			match(input,I_STATEMENT_FORMAT22c_FIELD,FOLLOW_I_STATEMENT_FORMAT22c_FIELD_in_insn_format22c_field2596);
+			match(input, Token.DOWN, null);
+			inst=(CommonTree)input.LT(1);
+			if ( (input.LA(1) >= INSTRUCTION_FORMAT22c_FIELD && input.LA(1) <= INSTRUCTION_FORMAT22c_FIELD_ODEX) ) {
+				input.consume();
+				state.errorRecovery=false;
+			}
+			else {
+				MismatchedSetException mse = new MismatchedSetException(null,input);
+				throw mse;
+			}
+			registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_field2610);
+			registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_field2614);
+			pushFollow(FOLLOW_field_reference_in_insn_format22c_field2616);
+			field_reference148=field_reference();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((inst!=null?inst.getText():null));
+			      byte regA = parseRegister_nibble((registerA!=null?registerA.getText():null));
+			      byte regB = parseRegister_nibble((registerB!=null?registerB.getText():null));
+
+			      ImmutableFieldReference fieldReference = field_reference148;
+
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction22c(opcode, regA, regB,
+			              dexBuilder.internFieldReference(fieldReference)));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format22c_field"
+
+
+
+	// $ANTLR start "insn_format22c_type"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:982:1: insn_format22c_type : ^( I_STATEMENT_FORMAT22c_TYPE INSTRUCTION_FORMAT22c_TYPE registerA= REGISTER registerB= REGISTER nonvoid_type_descriptor ) ;
+	public final void insn_format22c_type() throws RecognitionException {
+		CommonTree registerA=null;
+		CommonTree registerB=null;
+		CommonTree INSTRUCTION_FORMAT22c_TYPE149=null;
+		TreeRuleReturnScope nonvoid_type_descriptor150 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:983:3: ( ^( I_STATEMENT_FORMAT22c_TYPE INSTRUCTION_FORMAT22c_TYPE registerA= REGISTER registerB= REGISTER nonvoid_type_descriptor ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:984:5: ^( I_STATEMENT_FORMAT22c_TYPE INSTRUCTION_FORMAT22c_TYPE registerA= REGISTER registerB= REGISTER nonvoid_type_descriptor )
+			{
+			match(input,I_STATEMENT_FORMAT22c_TYPE,FOLLOW_I_STATEMENT_FORMAT22c_TYPE_in_insn_format22c_type2639);
+			match(input, Token.DOWN, null);
+			INSTRUCTION_FORMAT22c_TYPE149=(CommonTree)match(input,INSTRUCTION_FORMAT22c_TYPE,FOLLOW_INSTRUCTION_FORMAT22c_TYPE_in_insn_format22c_type2641);
+			registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_type2645);
+			registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_type2649);
+			pushFollow(FOLLOW_nonvoid_type_descriptor_in_insn_format22c_type2651);
+			nonvoid_type_descriptor150=nonvoid_type_descriptor();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT22c_TYPE149!=null?INSTRUCTION_FORMAT22c_TYPE149.getText():null));
+			      byte regA = parseRegister_nibble((registerA!=null?registerA.getText():null));
+			      byte regB = parseRegister_nibble((registerB!=null?registerB.getText():null));
+
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction22c(opcode, regA, regB,
+			              dexBuilder.internTypeReference((nonvoid_type_descriptor150!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor150).type:null))));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format22c_type"
+
+
+
+	// $ANTLR start "insn_format22c_string"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:994:1: insn_format22c_string : ^( I_STATEMENT_FORMAT22c_STRING INSTRUCTION_FORMAT22c_STRING registerA= REGISTER registerB= REGISTER string_literal ) ;
+	public final void insn_format22c_string() throws RecognitionException {
+		CommonTree registerA=null;
+		CommonTree registerB=null;
+		CommonTree INSTRUCTION_FORMAT22c_STRING151=null;
+		String string_literal152 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:995:3: ( ^( I_STATEMENT_FORMAT22c_STRING INSTRUCTION_FORMAT22c_STRING registerA= REGISTER registerB= REGISTER string_literal ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:996:5: ^( I_STATEMENT_FORMAT22c_STRING INSTRUCTION_FORMAT22c_STRING registerA= REGISTER registerB= REGISTER string_literal )
+			{
+			match(input,I_STATEMENT_FORMAT22c_STRING,FOLLOW_I_STATEMENT_FORMAT22c_STRING_in_insn_format22c_string2674);
+			match(input, Token.DOWN, null);
+			INSTRUCTION_FORMAT22c_STRING151=(CommonTree)match(input,INSTRUCTION_FORMAT22c_STRING,FOLLOW_INSTRUCTION_FORMAT22c_STRING_in_insn_format22c_string2676);
+			registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_string2680);
+			registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_string2684);
+			pushFollow(FOLLOW_string_literal_in_insn_format22c_string2686);
+			string_literal152=string_literal();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT22c_STRING151!=null?INSTRUCTION_FORMAT22c_STRING151.getText():null));
+			      byte regA = parseRegister_nibble((registerA!=null?registerA.getText():null));
+			      byte regB = parseRegister_nibble((registerB!=null?registerB.getText():null));
+
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction22c(opcode, regA, regB,
+			              dexBuilder.internStringReference(string_literal152)));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format22c_string"
+
+
+
+	// $ANTLR start "insn_format22s"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1006:1: insn_format22s : ^( I_STATEMENT_FORMAT22s INSTRUCTION_FORMAT22s registerA= REGISTER registerB= REGISTER short_integral_literal ) ;
+	public final void insn_format22s() throws RecognitionException {
+		CommonTree registerA=null;
+		CommonTree registerB=null;
+		CommonTree INSTRUCTION_FORMAT22s153=null;
+		short short_integral_literal154 =0;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1007:3: ( ^( I_STATEMENT_FORMAT22s INSTRUCTION_FORMAT22s registerA= REGISTER registerB= REGISTER short_integral_literal ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1008:5: ^( I_STATEMENT_FORMAT22s INSTRUCTION_FORMAT22s registerA= REGISTER registerB= REGISTER short_integral_literal )
+			{
+			match(input,I_STATEMENT_FORMAT22s,FOLLOW_I_STATEMENT_FORMAT22s_in_insn_format22s2709);
+			match(input, Token.DOWN, null);
+			INSTRUCTION_FORMAT22s153=(CommonTree)match(input,INSTRUCTION_FORMAT22s,FOLLOW_INSTRUCTION_FORMAT22s_in_insn_format22s2711);
+			registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22s2715);
+			registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22s2719);
+			pushFollow(FOLLOW_short_integral_literal_in_insn_format22s2721);
+			short_integral_literal154=short_integral_literal();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT22s153!=null?INSTRUCTION_FORMAT22s153.getText():null));
+			      byte regA = parseRegister_nibble((registerA!=null?registerA.getText():null));
+			      byte regB = parseRegister_nibble((registerB!=null?registerB.getText():null));
+
+			      short litC = short_integral_literal154;
+
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction22s(opcode, regA, regB, litC));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format22s"
+
+
+
+	// $ANTLR start "insn_format22t"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1019:1: insn_format22t : ^( I_STATEMENT_FORMAT22t INSTRUCTION_FORMAT22t registerA= REGISTER registerB= REGISTER label_ref ) ;
+	public final void insn_format22t() throws RecognitionException {
+		CommonTree registerA=null;
+		CommonTree registerB=null;
+		CommonTree INSTRUCTION_FORMAT22t155=null;
+		Label label_ref156 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1020:3: ( ^( I_STATEMENT_FORMAT22t INSTRUCTION_FORMAT22t registerA= REGISTER registerB= REGISTER label_ref ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1021:5: ^( I_STATEMENT_FORMAT22t INSTRUCTION_FORMAT22t registerA= REGISTER registerB= REGISTER label_ref )
+			{
+			match(input,I_STATEMENT_FORMAT22t,FOLLOW_I_STATEMENT_FORMAT22t_in_insn_format22t2744);
+			match(input, Token.DOWN, null);
+			INSTRUCTION_FORMAT22t155=(CommonTree)match(input,INSTRUCTION_FORMAT22t,FOLLOW_INSTRUCTION_FORMAT22t_in_insn_format22t2746);
+			registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22t2750);
+			registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22t2754);
+			pushFollow(FOLLOW_label_ref_in_insn_format22t2756);
+			label_ref156=label_ref();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT22t155!=null?INSTRUCTION_FORMAT22t155.getText():null));
+			      byte regA = parseRegister_nibble((registerA!=null?registerA.getText():null));
+			      byte regB = parseRegister_nibble((registerB!=null?registerB.getText():null));
+
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction22t(opcode, regA, regB, label_ref156));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format22t"
+
+
+
+	// $ANTLR start "insn_format22x"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1030:1: insn_format22x : ^( I_STATEMENT_FORMAT22x INSTRUCTION_FORMAT22x registerA= REGISTER registerB= REGISTER ) ;
+	public final void insn_format22x() throws RecognitionException {
+		CommonTree registerA=null;
+		CommonTree registerB=null;
+		CommonTree INSTRUCTION_FORMAT22x157=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1031:3: ( ^( I_STATEMENT_FORMAT22x INSTRUCTION_FORMAT22x registerA= REGISTER registerB= REGISTER ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1032:5: ^( I_STATEMENT_FORMAT22x INSTRUCTION_FORMAT22x registerA= REGISTER registerB= REGISTER )
+			{
+			match(input,I_STATEMENT_FORMAT22x,FOLLOW_I_STATEMENT_FORMAT22x_in_insn_format22x2779);
+			match(input, Token.DOWN, null);
+			INSTRUCTION_FORMAT22x157=(CommonTree)match(input,INSTRUCTION_FORMAT22x,FOLLOW_INSTRUCTION_FORMAT22x_in_insn_format22x2781);
+			registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22x2785);
+			registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22x2789);
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT22x157!=null?INSTRUCTION_FORMAT22x157.getText():null));
+			      short regA = parseRegister_byte((registerA!=null?registerA.getText():null));
+			      int regB = parseRegister_short((registerB!=null?registerB.getText():null));
+
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction22x(opcode, regA, regB));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format22x"
+
+
+
+	// $ANTLR start "insn_format23x"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1041:1: insn_format23x : ^( I_STATEMENT_FORMAT23x INSTRUCTION_FORMAT23x registerA= REGISTER registerB= REGISTER registerC= REGISTER ) ;
+	public final void insn_format23x() throws RecognitionException {
+		CommonTree registerA=null;
+		CommonTree registerB=null;
+		CommonTree registerC=null;
+		CommonTree INSTRUCTION_FORMAT23x158=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1042:3: ( ^( I_STATEMENT_FORMAT23x INSTRUCTION_FORMAT23x registerA= REGISTER registerB= REGISTER registerC= REGISTER ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1043:5: ^( I_STATEMENT_FORMAT23x INSTRUCTION_FORMAT23x registerA= REGISTER registerB= REGISTER registerC= REGISTER )
+			{
+			match(input,I_STATEMENT_FORMAT23x,FOLLOW_I_STATEMENT_FORMAT23x_in_insn_format23x2812);
+			match(input, Token.DOWN, null);
+			INSTRUCTION_FORMAT23x158=(CommonTree)match(input,INSTRUCTION_FORMAT23x,FOLLOW_INSTRUCTION_FORMAT23x_in_insn_format23x2814);
+			registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format23x2818);
+			registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format23x2822);
+			registerC=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format23x2826);
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT23x158!=null?INSTRUCTION_FORMAT23x158.getText():null));
+			      short regA = parseRegister_byte((registerA!=null?registerA.getText():null));
+			      short regB = parseRegister_byte((registerB!=null?registerB.getText():null));
+			      short regC = parseRegister_byte((registerC!=null?registerC.getText():null));
+
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction23x(opcode, regA, regB, regC));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format23x"
+
+
+
+	// $ANTLR start "insn_format25x"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1053:1: insn_format25x : ^( I_STATEMENT_FORMAT25x INSTRUCTION_FORMAT25x REGISTER register_list4 ) ;
+	public final void insn_format25x() throws RecognitionException {
+		CommonTree INSTRUCTION_FORMAT25x159=null;
+		CommonTree REGISTER160=null;
+		TreeRuleReturnScope register_list4161 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1054:3: ( ^( I_STATEMENT_FORMAT25x INSTRUCTION_FORMAT25x REGISTER register_list4 ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1055:5: ^( I_STATEMENT_FORMAT25x INSTRUCTION_FORMAT25x REGISTER register_list4 )
+			{
+			match(input,I_STATEMENT_FORMAT25x,FOLLOW_I_STATEMENT_FORMAT25x_in_insn_format25x2849);
+			match(input, Token.DOWN, null);
+			INSTRUCTION_FORMAT25x159=(CommonTree)match(input,INSTRUCTION_FORMAT25x,FOLLOW_INSTRUCTION_FORMAT25x_in_insn_format25x2851);
+			REGISTER160=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format25x2853);
+			pushFollow(FOLLOW_register_list4_in_insn_format25x2855);
+			register_list4161=register_list4();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT25x159!=null?INSTRUCTION_FORMAT25x159.getText():null));
+
+			      byte closureRegister = parseRegister_nibble((REGISTER160!=null?REGISTER160.getText():null));
+
+			      //this depends on the fact that register_list4 returns a byte[4]
+			      byte[] registers = (register_list4161!=null?((smaliTreeWalker.register_list4_return)register_list4161).registers:null);
+			      int parameterRegisterCount = (register_list4161!=null?((smaliTreeWalker.register_list4_return)register_list4161).registerCount:0);  // don't count closure register
+
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction25x(opcode,
+			            parameterRegisterCount, closureRegister, registers[0], registers[1],
+			            registers[2], registers[3]));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format25x"
+
+
+
+	// $ANTLR start "insn_format30t"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1070:1: insn_format30t : ^( I_STATEMENT_FORMAT30t INSTRUCTION_FORMAT30t label_ref ) ;
+	public final void insn_format30t() throws RecognitionException {
+		CommonTree INSTRUCTION_FORMAT30t162=null;
+		Label label_ref163 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1071:3: ( ^( I_STATEMENT_FORMAT30t INSTRUCTION_FORMAT30t label_ref ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1072:5: ^( I_STATEMENT_FORMAT30t INSTRUCTION_FORMAT30t label_ref )
+			{
+			match(input,I_STATEMENT_FORMAT30t,FOLLOW_I_STATEMENT_FORMAT30t_in_insn_format30t2878);
+			match(input, Token.DOWN, null);
+			INSTRUCTION_FORMAT30t162=(CommonTree)match(input,INSTRUCTION_FORMAT30t,FOLLOW_INSTRUCTION_FORMAT30t_in_insn_format30t2880);
+			pushFollow(FOLLOW_label_ref_in_insn_format30t2882);
+			label_ref163=label_ref();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT30t162!=null?INSTRUCTION_FORMAT30t162.getText():null));
+
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction30t(opcode, label_ref163));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format30t"
+
+
+
+	// $ANTLR start "insn_format31c"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1079:1: insn_format31c : ^( I_STATEMENT_FORMAT31c INSTRUCTION_FORMAT31c REGISTER string_literal ) ;
+	public final void insn_format31c() throws RecognitionException {
+		CommonTree INSTRUCTION_FORMAT31c164=null;
+		CommonTree REGISTER165=null;
+		String string_literal166 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1080:3: ( ^( I_STATEMENT_FORMAT31c INSTRUCTION_FORMAT31c REGISTER string_literal ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1081:5: ^( I_STATEMENT_FORMAT31c INSTRUCTION_FORMAT31c REGISTER string_literal )
+			{
+			match(input,I_STATEMENT_FORMAT31c,FOLLOW_I_STATEMENT_FORMAT31c_in_insn_format31c2905);
+			match(input, Token.DOWN, null);
+			INSTRUCTION_FORMAT31c164=(CommonTree)match(input,INSTRUCTION_FORMAT31c,FOLLOW_INSTRUCTION_FORMAT31c_in_insn_format31c2907);
+			REGISTER165=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format31c2909);
+			pushFollow(FOLLOW_string_literal_in_insn_format31c2911);
+			string_literal166=string_literal();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT31c164!=null?INSTRUCTION_FORMAT31c164.getText():null));
+			      short regA = parseRegister_byte((REGISTER165!=null?REGISTER165.getText():null));
+
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction31c(opcode, regA,
+			              dexBuilder.internStringReference(string_literal166)));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format31c"
+
+
+
+	// $ANTLR start "insn_format31i"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1090:1: insn_format31i : ^( I_STATEMENT_FORMAT31i INSTRUCTION_FORMAT31i REGISTER fixed_32bit_literal ) ;
+	public final void insn_format31i() throws RecognitionException {
+		CommonTree INSTRUCTION_FORMAT31i167=null;
+		CommonTree REGISTER168=null;
+		int fixed_32bit_literal169 =0;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1091:3: ( ^( I_STATEMENT_FORMAT31i INSTRUCTION_FORMAT31i REGISTER fixed_32bit_literal ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1092:5: ^( I_STATEMENT_FORMAT31i INSTRUCTION_FORMAT31i REGISTER fixed_32bit_literal )
+			{
+			match(input,I_STATEMENT_FORMAT31i,FOLLOW_I_STATEMENT_FORMAT31i_in_insn_format31i2934);
+			match(input, Token.DOWN, null);
+			INSTRUCTION_FORMAT31i167=(CommonTree)match(input,INSTRUCTION_FORMAT31i,FOLLOW_INSTRUCTION_FORMAT31i_in_insn_format31i2936);
+			REGISTER168=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format31i2938);
+			pushFollow(FOLLOW_fixed_32bit_literal_in_insn_format31i2940);
+			fixed_32bit_literal169=fixed_32bit_literal();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT31i167!=null?INSTRUCTION_FORMAT31i167.getText():null));
+			      short regA = parseRegister_byte((REGISTER168!=null?REGISTER168.getText():null));
+
+			      int litB = fixed_32bit_literal169;
+
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction31i(opcode, regA, litB));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format31i"
+
+
+
+	// $ANTLR start "insn_format31t"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1102:1: insn_format31t : ^( I_STATEMENT_FORMAT31t INSTRUCTION_FORMAT31t REGISTER label_ref ) ;
+	public final void insn_format31t() throws RecognitionException {
+		CommonTree INSTRUCTION_FORMAT31t170=null;
+		CommonTree REGISTER171=null;
+		Label label_ref172 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1103:3: ( ^( I_STATEMENT_FORMAT31t INSTRUCTION_FORMAT31t REGISTER label_ref ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1104:5: ^( I_STATEMENT_FORMAT31t INSTRUCTION_FORMAT31t REGISTER label_ref )
+			{
+			match(input,I_STATEMENT_FORMAT31t,FOLLOW_I_STATEMENT_FORMAT31t_in_insn_format31t2963);
+			match(input, Token.DOWN, null);
+			INSTRUCTION_FORMAT31t170=(CommonTree)match(input,INSTRUCTION_FORMAT31t,FOLLOW_INSTRUCTION_FORMAT31t_in_insn_format31t2965);
+			REGISTER171=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format31t2967);
+			pushFollow(FOLLOW_label_ref_in_insn_format31t2969);
+			label_ref172=label_ref();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT31t170!=null?INSTRUCTION_FORMAT31t170.getText():null));
+
+			      short regA = parseRegister_byte((REGISTER171!=null?REGISTER171.getText():null));
+
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction31t(opcode, regA, label_ref172));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format31t"
+
+
+
+	// $ANTLR start "insn_format32x"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1113:1: insn_format32x : ^( I_STATEMENT_FORMAT32x INSTRUCTION_FORMAT32x registerA= REGISTER registerB= REGISTER ) ;
+	public final void insn_format32x() throws RecognitionException {
+		CommonTree registerA=null;
+		CommonTree registerB=null;
+		CommonTree INSTRUCTION_FORMAT32x173=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1114:3: ( ^( I_STATEMENT_FORMAT32x INSTRUCTION_FORMAT32x registerA= REGISTER registerB= REGISTER ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1115:5: ^( I_STATEMENT_FORMAT32x INSTRUCTION_FORMAT32x registerA= REGISTER registerB= REGISTER )
+			{
+			match(input,I_STATEMENT_FORMAT32x,FOLLOW_I_STATEMENT_FORMAT32x_in_insn_format32x2992);
+			match(input, Token.DOWN, null);
+			INSTRUCTION_FORMAT32x173=(CommonTree)match(input,INSTRUCTION_FORMAT32x,FOLLOW_INSTRUCTION_FORMAT32x_in_insn_format32x2994);
+			registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format32x2998);
+			registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format32x3002);
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT32x173!=null?INSTRUCTION_FORMAT32x173.getText():null));
+			      int regA = parseRegister_short((registerA!=null?registerA.getText():null));
+			      int regB = parseRegister_short((registerB!=null?registerB.getText():null));
+
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction32x(opcode, regA, regB));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format32x"
+
+
+
+	// $ANTLR start "insn_format35c_method"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1124:1: insn_format35c_method : ^( I_STATEMENT_FORMAT35c_METHOD INSTRUCTION_FORMAT35c_METHOD register_list method_reference ) ;
+	public final void insn_format35c_method() throws RecognitionException {
+		CommonTree INSTRUCTION_FORMAT35c_METHOD174=null;
+		TreeRuleReturnScope register_list175 =null;
+		ImmutableMethodReference method_reference176 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1125:3: ( ^( I_STATEMENT_FORMAT35c_METHOD INSTRUCTION_FORMAT35c_METHOD register_list method_reference ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1126:5: ^( I_STATEMENT_FORMAT35c_METHOD INSTRUCTION_FORMAT35c_METHOD register_list method_reference )
+			{
+			match(input,I_STATEMENT_FORMAT35c_METHOD,FOLLOW_I_STATEMENT_FORMAT35c_METHOD_in_insn_format35c_method3025);
+			match(input, Token.DOWN, null);
+			INSTRUCTION_FORMAT35c_METHOD174=(CommonTree)match(input,INSTRUCTION_FORMAT35c_METHOD,FOLLOW_INSTRUCTION_FORMAT35c_METHOD_in_insn_format35c_method3027);
+			pushFollow(FOLLOW_register_list_in_insn_format35c_method3029);
+			register_list175=register_list();
+			state._fsp--;
+
+			pushFollow(FOLLOW_method_reference_in_insn_format35c_method3031);
+			method_reference176=method_reference();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT35c_METHOD174!=null?INSTRUCTION_FORMAT35c_METHOD174.getText():null));
+
+			      //this depends on the fact that register_list returns a byte[5]
+			      byte[] registers = (register_list175!=null?((smaliTreeWalker.register_list_return)register_list175).registers:null);
+			      byte registerCount = (register_list175!=null?((smaliTreeWalker.register_list_return)register_list175).registerCount:0);
+
+			      ImmutableMethodReference methodReference = method_reference176;
+
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction35c(opcode, registerCount, registers[0], registers[1],
+			              registers[2], registers[3], registers[4], dexBuilder.internMethodReference(methodReference)));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format35c_method"
+
+
+
+	// $ANTLR start "insn_format35c_type"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1140:1: insn_format35c_type : ^( I_STATEMENT_FORMAT35c_TYPE INSTRUCTION_FORMAT35c_TYPE register_list nonvoid_type_descriptor ) ;
+	public final void insn_format35c_type() throws RecognitionException {
+		CommonTree INSTRUCTION_FORMAT35c_TYPE177=null;
+		TreeRuleReturnScope register_list178 =null;
+		TreeRuleReturnScope nonvoid_type_descriptor179 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1141:3: ( ^( I_STATEMENT_FORMAT35c_TYPE INSTRUCTION_FORMAT35c_TYPE register_list nonvoid_type_descriptor ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1142:5: ^( I_STATEMENT_FORMAT35c_TYPE INSTRUCTION_FORMAT35c_TYPE register_list nonvoid_type_descriptor )
+			{
+			match(input,I_STATEMENT_FORMAT35c_TYPE,FOLLOW_I_STATEMENT_FORMAT35c_TYPE_in_insn_format35c_type3054);
+			match(input, Token.DOWN, null);
+			INSTRUCTION_FORMAT35c_TYPE177=(CommonTree)match(input,INSTRUCTION_FORMAT35c_TYPE,FOLLOW_INSTRUCTION_FORMAT35c_TYPE_in_insn_format35c_type3056);
+			pushFollow(FOLLOW_register_list_in_insn_format35c_type3058);
+			register_list178=register_list();
+			state._fsp--;
+
+			pushFollow(FOLLOW_nonvoid_type_descriptor_in_insn_format35c_type3060);
+			nonvoid_type_descriptor179=nonvoid_type_descriptor();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT35c_TYPE177!=null?INSTRUCTION_FORMAT35c_TYPE177.getText():null));
+
+			      //this depends on the fact that register_list returns a byte[5]
+			      byte[] registers = (register_list178!=null?((smaliTreeWalker.register_list_return)register_list178).registers:null);
+			      byte registerCount = (register_list178!=null?((smaliTreeWalker.register_list_return)register_list178).registerCount:0);
+
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction35c(opcode, registerCount, registers[0], registers[1],
+			              registers[2], registers[3], registers[4], dexBuilder.internTypeReference((nonvoid_type_descriptor179!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor179).type:null))));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format35c_type"
+
+
+
+	// $ANTLR start "insn_format3rc_method"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1154:1: insn_format3rc_method : ^( I_STATEMENT_FORMAT3rc_METHOD INSTRUCTION_FORMAT3rc_METHOD register_range method_reference ) ;
+	public final void insn_format3rc_method() throws RecognitionException {
+		CommonTree INSTRUCTION_FORMAT3rc_METHOD180=null;
+		TreeRuleReturnScope register_range181 =null;
+		ImmutableMethodReference method_reference182 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1155:3: ( ^( I_STATEMENT_FORMAT3rc_METHOD INSTRUCTION_FORMAT3rc_METHOD register_range method_reference ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1156:5: ^( I_STATEMENT_FORMAT3rc_METHOD INSTRUCTION_FORMAT3rc_METHOD register_range method_reference )
+			{
+			match(input,I_STATEMENT_FORMAT3rc_METHOD,FOLLOW_I_STATEMENT_FORMAT3rc_METHOD_in_insn_format3rc_method3083);
+			match(input, Token.DOWN, null);
+			INSTRUCTION_FORMAT3rc_METHOD180=(CommonTree)match(input,INSTRUCTION_FORMAT3rc_METHOD,FOLLOW_INSTRUCTION_FORMAT3rc_METHOD_in_insn_format3rc_method3085);
+			pushFollow(FOLLOW_register_range_in_insn_format3rc_method3087);
+			register_range181=register_range();
+			state._fsp--;
+
+			pushFollow(FOLLOW_method_reference_in_insn_format3rc_method3089);
+			method_reference182=method_reference();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT3rc_METHOD180!=null?INSTRUCTION_FORMAT3rc_METHOD180.getText():null));
+			      int startRegister = (register_range181!=null?((smaliTreeWalker.register_range_return)register_range181).startRegister:0);
+			      int endRegister = (register_range181!=null?((smaliTreeWalker.register_range_return)register_range181).endRegister:0);
+
+			      int registerCount = endRegister-startRegister+1;
+
+			      ImmutableMethodReference methodReference = method_reference182;
+
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction3rc(opcode, startRegister, registerCount,
+			              dexBuilder.internMethodReference(methodReference)));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format3rc_method"
+
+
+
+	// $ANTLR start "insn_format3rc_type"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1170:1: insn_format3rc_type : ^( I_STATEMENT_FORMAT3rc_TYPE INSTRUCTION_FORMAT3rc_TYPE register_range nonvoid_type_descriptor ) ;
+	public final void insn_format3rc_type() throws RecognitionException {
+		CommonTree INSTRUCTION_FORMAT3rc_TYPE183=null;
+		TreeRuleReturnScope register_range184 =null;
+		TreeRuleReturnScope nonvoid_type_descriptor185 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1171:3: ( ^( I_STATEMENT_FORMAT3rc_TYPE INSTRUCTION_FORMAT3rc_TYPE register_range nonvoid_type_descriptor ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1172:5: ^( I_STATEMENT_FORMAT3rc_TYPE INSTRUCTION_FORMAT3rc_TYPE register_range nonvoid_type_descriptor )
+			{
+			match(input,I_STATEMENT_FORMAT3rc_TYPE,FOLLOW_I_STATEMENT_FORMAT3rc_TYPE_in_insn_format3rc_type3112);
+			match(input, Token.DOWN, null);
+			INSTRUCTION_FORMAT3rc_TYPE183=(CommonTree)match(input,INSTRUCTION_FORMAT3rc_TYPE,FOLLOW_INSTRUCTION_FORMAT3rc_TYPE_in_insn_format3rc_type3114);
+			pushFollow(FOLLOW_register_range_in_insn_format3rc_type3116);
+			register_range184=register_range();
+			state._fsp--;
+
+			pushFollow(FOLLOW_nonvoid_type_descriptor_in_insn_format3rc_type3118);
+			nonvoid_type_descriptor185=nonvoid_type_descriptor();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT3rc_TYPE183!=null?INSTRUCTION_FORMAT3rc_TYPE183.getText():null));
+			      int startRegister = (register_range184!=null?((smaliTreeWalker.register_range_return)register_range184).startRegister:0);
+			      int endRegister = (register_range184!=null?((smaliTreeWalker.register_range_return)register_range184).endRegister:0);
+
+			      int registerCount = endRegister-startRegister+1;
+
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction3rc(opcode, startRegister, registerCount,
+			              dexBuilder.internTypeReference((nonvoid_type_descriptor185!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor185).type:null))));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format3rc_type"
+
+
+
+	// $ANTLR start "insn_format51l_type"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1184:1: insn_format51l_type : ^( I_STATEMENT_FORMAT51l INSTRUCTION_FORMAT51l REGISTER fixed_64bit_literal ) ;
+	public final void insn_format51l_type() throws RecognitionException {
+		CommonTree INSTRUCTION_FORMAT51l186=null;
+		CommonTree REGISTER187=null;
+		long fixed_64bit_literal188 =0;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1185:3: ( ^( I_STATEMENT_FORMAT51l INSTRUCTION_FORMAT51l REGISTER fixed_64bit_literal ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1186:5: ^( I_STATEMENT_FORMAT51l INSTRUCTION_FORMAT51l REGISTER fixed_64bit_literal )
+			{
+			match(input,I_STATEMENT_FORMAT51l,FOLLOW_I_STATEMENT_FORMAT51l_in_insn_format51l_type3141);
+			match(input, Token.DOWN, null);
+			INSTRUCTION_FORMAT51l186=(CommonTree)match(input,INSTRUCTION_FORMAT51l,FOLLOW_INSTRUCTION_FORMAT51l_in_insn_format51l_type3143);
+			REGISTER187=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format51l_type3145);
+			pushFollow(FOLLOW_fixed_64bit_literal_in_insn_format51l_type3147);
+			fixed_64bit_literal188=fixed_64bit_literal();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT51l186!=null?INSTRUCTION_FORMAT51l186.getText():null));
+			      short regA = parseRegister_byte((REGISTER187!=null?REGISTER187.getText():null));
+
+			      long litB = fixed_64bit_literal188;
+
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction51l(opcode, regA, litB));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_format51l_type"
+
+
+
+	// $ANTLR start "insn_array_data_directive"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1196:1: insn_array_data_directive : ^( I_STATEMENT_ARRAY_DATA ^( I_ARRAY_ELEMENT_SIZE short_integral_literal ) array_elements ) ;
+	public final void insn_array_data_directive() throws RecognitionException {
+		short short_integral_literal189 =0;
+		List<Number> array_elements190 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1197:3: ( ^( I_STATEMENT_ARRAY_DATA ^( I_ARRAY_ELEMENT_SIZE short_integral_literal ) array_elements ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1198:5: ^( I_STATEMENT_ARRAY_DATA ^( I_ARRAY_ELEMENT_SIZE short_integral_literal ) array_elements )
+			{
+			match(input,I_STATEMENT_ARRAY_DATA,FOLLOW_I_STATEMENT_ARRAY_DATA_in_insn_array_data_directive3170);
+			match(input, Token.DOWN, null);
+			match(input,I_ARRAY_ELEMENT_SIZE,FOLLOW_I_ARRAY_ELEMENT_SIZE_in_insn_array_data_directive3173);
+			match(input, Token.DOWN, null);
+			pushFollow(FOLLOW_short_integral_literal_in_insn_array_data_directive3175);
+			short_integral_literal189=short_integral_literal();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+			pushFollow(FOLLOW_array_elements_in_insn_array_data_directive3178);
+			array_elements190=array_elements();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      int elementWidth = short_integral_literal189;
+			      List<Number> elements = array_elements190;
+
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderArrayPayload(elementWidth, array_elements190));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_array_data_directive"
+
+
+
+	// $ANTLR start "insn_packed_switch_directive"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1206:1: insn_packed_switch_directive : ^( I_STATEMENT_PACKED_SWITCH ^( I_PACKED_SWITCH_START_KEY fixed_32bit_literal ) packed_switch_elements ) ;
+	public final void insn_packed_switch_directive() throws RecognitionException {
+		int fixed_32bit_literal191 =0;
+		List<Label> packed_switch_elements192 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1207:3: ( ^( I_STATEMENT_PACKED_SWITCH ^( I_PACKED_SWITCH_START_KEY fixed_32bit_literal ) packed_switch_elements ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1208:5: ^( I_STATEMENT_PACKED_SWITCH ^( I_PACKED_SWITCH_START_KEY fixed_32bit_literal ) packed_switch_elements )
+			{
+			match(input,I_STATEMENT_PACKED_SWITCH,FOLLOW_I_STATEMENT_PACKED_SWITCH_in_insn_packed_switch_directive3200);
+			match(input, Token.DOWN, null);
+			match(input,I_PACKED_SWITCH_START_KEY,FOLLOW_I_PACKED_SWITCH_START_KEY_in_insn_packed_switch_directive3203);
+			match(input, Token.DOWN, null);
+			pushFollow(FOLLOW_fixed_32bit_literal_in_insn_packed_switch_directive3205);
+			fixed_32bit_literal191=fixed_32bit_literal();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+			pushFollow(FOLLOW_packed_switch_elements_in_insn_packed_switch_directive3208);
+			packed_switch_elements192=packed_switch_elements();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			        int startKey = fixed_32bit_literal191;
+			        method_stack.peek().methodBuilder.addInstruction(new BuilderPackedSwitchPayload(startKey,
+			            packed_switch_elements192));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_packed_switch_directive"
+
+
+
+	// $ANTLR start "insn_sparse_switch_directive"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1215:1: insn_sparse_switch_directive : ^( I_STATEMENT_SPARSE_SWITCH sparse_switch_elements ) ;
+	public final void insn_sparse_switch_directive() throws RecognitionException {
+		List<SwitchLabelElement> sparse_switch_elements193 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1216:3: ( ^( I_STATEMENT_SPARSE_SWITCH sparse_switch_elements ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1217:5: ^( I_STATEMENT_SPARSE_SWITCH sparse_switch_elements )
+			{
+			match(input,I_STATEMENT_SPARSE_SWITCH,FOLLOW_I_STATEMENT_SPARSE_SWITCH_in_insn_sparse_switch_directive3232);
+			match(input, Token.DOWN, null);
+			pushFollow(FOLLOW_sparse_switch_elements_in_insn_sparse_switch_directive3234);
+			sparse_switch_elements193=sparse_switch_elements();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      method_stack.peek().methodBuilder.addInstruction(new BuilderSparseSwitchPayload(sparse_switch_elements193));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+	}
+	// $ANTLR end "insn_sparse_switch_directive"
+
+
+	public static class nonvoid_type_descriptor_return extends TreeRuleReturnScope {
+		public String type;
+	};
+
+
+	// $ANTLR start "nonvoid_type_descriptor"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1222:1: nonvoid_type_descriptor returns [String type] : ( PRIMITIVE_TYPE | CLASS_DESCRIPTOR | ARRAY_DESCRIPTOR ) ;
+	public final smaliTreeWalker.nonvoid_type_descriptor_return nonvoid_type_descriptor() throws RecognitionException {
+		smaliTreeWalker.nonvoid_type_descriptor_return retval = new smaliTreeWalker.nonvoid_type_descriptor_return();
+		retval.start = input.LT(1);
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1223:3: ( ( PRIMITIVE_TYPE | CLASS_DESCRIPTOR | ARRAY_DESCRIPTOR ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1223:5: ( PRIMITIVE_TYPE | CLASS_DESCRIPTOR | ARRAY_DESCRIPTOR )
+			{
+			if ( input.LA(1)==ARRAY_DESCRIPTOR||input.LA(1)==CLASS_DESCRIPTOR||input.LA(1)==PRIMITIVE_TYPE ) {
+				input.consume();
+				state.errorRecovery=false;
+			}
+			else {
+				MismatchedSetException mse = new MismatchedSetException(null,input);
+				throw mse;
+			}
+
+			    retval.type = ((CommonTree)retval.start).getText();
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "nonvoid_type_descriptor"
+
+
+	public static class reference_type_descriptor_return extends TreeRuleReturnScope {
+		public String type;
+	};
+
+
+	// $ANTLR start "reference_type_descriptor"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1230:1: reference_type_descriptor returns [String type] : ( CLASS_DESCRIPTOR | ARRAY_DESCRIPTOR ) ;
+	public final smaliTreeWalker.reference_type_descriptor_return reference_type_descriptor() throws RecognitionException {
+		smaliTreeWalker.reference_type_descriptor_return retval = new smaliTreeWalker.reference_type_descriptor_return();
+		retval.start = input.LT(1);
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1231:3: ( ( CLASS_DESCRIPTOR | ARRAY_DESCRIPTOR ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1231:5: ( CLASS_DESCRIPTOR | ARRAY_DESCRIPTOR )
+			{
+			if ( input.LA(1)==ARRAY_DESCRIPTOR||input.LA(1)==CLASS_DESCRIPTOR ) {
+				input.consume();
+				state.errorRecovery=false;
+			}
+			else {
+				MismatchedSetException mse = new MismatchedSetException(null,input);
+				throw mse;
+			}
+
+			    retval.type = ((CommonTree)retval.start).getText();
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "reference_type_descriptor"
+
+
+
+	// $ANTLR start "type_descriptor"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1237:1: type_descriptor returns [String type] : ( VOID_TYPE | nonvoid_type_descriptor );
+	public final String type_descriptor() throws RecognitionException {
+		String type = null;
+
+
+		TreeRuleReturnScope nonvoid_type_descriptor194 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1238:3: ( VOID_TYPE | nonvoid_type_descriptor )
+			int alt38=2;
+			int LA38_0 = input.LA(1);
+			if ( (LA38_0==VOID_TYPE) ) {
+				alt38=1;
+			}
+			else if ( (LA38_0==ARRAY_DESCRIPTOR||LA38_0==CLASS_DESCRIPTOR||LA38_0==PRIMITIVE_TYPE) ) {
+				alt38=2;
+			}
+
+			else {
+				NoViableAltException nvae =
+					new NoViableAltException("", 38, 0, input);
+				throw nvae;
+			}
+
+			switch (alt38) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1238:5: VOID_TYPE
+					{
+					match(input,VOID_TYPE,FOLLOW_VOID_TYPE_in_type_descriptor3313);
+					type = "V";
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1239:5: nonvoid_type_descriptor
+					{
+					pushFollow(FOLLOW_nonvoid_type_descriptor_in_type_descriptor3321);
+					nonvoid_type_descriptor194=nonvoid_type_descriptor();
+					state._fsp--;
+
+					type = (nonvoid_type_descriptor194!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor194).type:null);
+					}
+					break;
+
+			}
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return type;
+	}
+	// $ANTLR end "type_descriptor"
+
+
+
+	// $ANTLR start "short_integral_literal"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1242:1: short_integral_literal returns [short value] : ( long_literal | integer_literal | short_literal | char_literal | byte_literal );
+	public final short short_integral_literal() throws RecognitionException {
+		short value = 0;
+
+
+		long long_literal195 =0;
+		int integer_literal196 =0;
+		short short_literal197 =0;
+		char char_literal198 =0;
+		byte byte_literal199 =0;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1243:3: ( long_literal | integer_literal | short_literal | char_literal | byte_literal )
+			int alt39=5;
+			switch ( input.LA(1) ) {
+			case LONG_LITERAL:
+				{
+				alt39=1;
+				}
+				break;
+			case INTEGER_LITERAL:
+				{
+				alt39=2;
+				}
+				break;
+			case SHORT_LITERAL:
+				{
+				alt39=3;
+				}
+				break;
+			case CHAR_LITERAL:
+				{
+				alt39=4;
+				}
+				break;
+			case BYTE_LITERAL:
+				{
+				alt39=5;
+				}
+				break;
+			default:
+				NoViableAltException nvae =
+					new NoViableAltException("", 39, 0, input);
+				throw nvae;
+			}
+			switch (alt39) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1243:5: long_literal
+					{
+					pushFollow(FOLLOW_long_literal_in_short_integral_literal3339);
+					long_literal195=long_literal();
+					state._fsp--;
+
+
+					      LiteralTools.checkShort(long_literal195);
+					      value = (short)long_literal195;
+					
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1248:5: integer_literal
+					{
+					pushFollow(FOLLOW_integer_literal_in_short_integral_literal3351);
+					integer_literal196=integer_literal();
+					state._fsp--;
+
+
+					      LiteralTools.checkShort(integer_literal196);
+					      value = (short)integer_literal196;
+					
+					}
+					break;
+				case 3 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1253:5: short_literal
+					{
+					pushFollow(FOLLOW_short_literal_in_short_integral_literal3363);
+					short_literal197=short_literal();
+					state._fsp--;
+
+					value = short_literal197;
+					}
+					break;
+				case 4 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1254:5: char_literal
+					{
+					pushFollow(FOLLOW_char_literal_in_short_integral_literal3371);
+					char_literal198=char_literal();
+					state._fsp--;
+
+					value = (short)char_literal198;
+					}
+					break;
+				case 5 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1255:5: byte_literal
+					{
+					pushFollow(FOLLOW_byte_literal_in_short_integral_literal3379);
+					byte_literal199=byte_literal();
+					state._fsp--;
+
+					value = byte_literal199;
+					}
+					break;
+
+			}
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return value;
+	}
+	// $ANTLR end "short_integral_literal"
+
+
+
+	// $ANTLR start "integral_literal"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1257:1: integral_literal returns [int value] : ( long_literal | integer_literal | short_literal | byte_literal );
+	public final int integral_literal() throws RecognitionException {
+		int value = 0;
+
+
+		long long_literal200 =0;
+		int integer_literal201 =0;
+		short short_literal202 =0;
+		byte byte_literal203 =0;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1258:3: ( long_literal | integer_literal | short_literal | byte_literal )
+			int alt40=4;
+			switch ( input.LA(1) ) {
+			case LONG_LITERAL:
+				{
+				alt40=1;
+				}
+				break;
+			case INTEGER_LITERAL:
+				{
+				alt40=2;
+				}
+				break;
+			case SHORT_LITERAL:
+				{
+				alt40=3;
+				}
+				break;
+			case BYTE_LITERAL:
+				{
+				alt40=4;
+				}
+				break;
+			default:
+				NoViableAltException nvae =
+					new NoViableAltException("", 40, 0, input);
+				throw nvae;
+			}
+			switch (alt40) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1258:5: long_literal
+					{
+					pushFollow(FOLLOW_long_literal_in_integral_literal3394);
+					long_literal200=long_literal();
+					state._fsp--;
+
+
+					      LiteralTools.checkInt(long_literal200);
+					      value = (int)long_literal200;
+					
+					}
+					break;
+				case 2 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1263:5: integer_literal
+					{
+					pushFollow(FOLLOW_integer_literal_in_integral_literal3406);
+					integer_literal201=integer_literal();
+					state._fsp--;
+
+					value = integer_literal201;
+					}
+					break;
+				case 3 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1264:5: short_literal
+					{
+					pushFollow(FOLLOW_short_literal_in_integral_literal3414);
+					short_literal202=short_literal();
+					state._fsp--;
+
+					value = short_literal202;
+					}
+					break;
+				case 4 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1265:5: byte_literal
+					{
+					pushFollow(FOLLOW_byte_literal_in_integral_literal3422);
+					byte_literal203=byte_literal();
+					state._fsp--;
+
+					value = byte_literal203;
+					}
+					break;
+
+			}
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return value;
+	}
+	// $ANTLR end "integral_literal"
+
+
+
+	// $ANTLR start "integer_literal"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1268:1: integer_literal returns [int value] : INTEGER_LITERAL ;
+	public final int integer_literal() throws RecognitionException {
+		int value = 0;
+
+
+		CommonTree INTEGER_LITERAL204=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1269:3: ( INTEGER_LITERAL )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1269:5: INTEGER_LITERAL
+			{
+			INTEGER_LITERAL204=(CommonTree)match(input,INTEGER_LITERAL,FOLLOW_INTEGER_LITERAL_in_integer_literal3438);
+			 value = LiteralTools.parseInt((INTEGER_LITERAL204!=null?INTEGER_LITERAL204.getText():null));
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return value;
+	}
+	// $ANTLR end "integer_literal"
+
+
+
+	// $ANTLR start "long_literal"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1271:1: long_literal returns [long value] : LONG_LITERAL ;
+	public final long long_literal() throws RecognitionException {
+		long value = 0;
+
+
+		CommonTree LONG_LITERAL205=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1272:3: ( LONG_LITERAL )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1272:5: LONG_LITERAL
+			{
+			LONG_LITERAL205=(CommonTree)match(input,LONG_LITERAL,FOLLOW_LONG_LITERAL_in_long_literal3453);
+			 value = LiteralTools.parseLong((LONG_LITERAL205!=null?LONG_LITERAL205.getText():null));
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return value;
+	}
+	// $ANTLR end "long_literal"
+
+
+
+	// $ANTLR start "short_literal"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1274:1: short_literal returns [short value] : SHORT_LITERAL ;
+	public final short short_literal() throws RecognitionException {
+		short value = 0;
+
+
+		CommonTree SHORT_LITERAL206=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1275:3: ( SHORT_LITERAL )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1275:5: SHORT_LITERAL
+			{
+			SHORT_LITERAL206=(CommonTree)match(input,SHORT_LITERAL,FOLLOW_SHORT_LITERAL_in_short_literal3468);
+			 value = LiteralTools.parseShort((SHORT_LITERAL206!=null?SHORT_LITERAL206.getText():null));
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return value;
+	}
+	// $ANTLR end "short_literal"
+
+
+
+	// $ANTLR start "byte_literal"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1277:1: byte_literal returns [byte value] : BYTE_LITERAL ;
+	public final byte byte_literal() throws RecognitionException {
+		byte value = 0;
+
+
+		CommonTree BYTE_LITERAL207=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1278:3: ( BYTE_LITERAL )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1278:5: BYTE_LITERAL
+			{
+			BYTE_LITERAL207=(CommonTree)match(input,BYTE_LITERAL,FOLLOW_BYTE_LITERAL_in_byte_literal3483);
+			 value = LiteralTools.parseByte((BYTE_LITERAL207!=null?BYTE_LITERAL207.getText():null));
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return value;
+	}
+	// $ANTLR end "byte_literal"
+
+
+
+	// $ANTLR start "float_literal"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1280:1: float_literal returns [float value] : FLOAT_LITERAL ;
+	public final float float_literal() throws RecognitionException {
+		float value = 0.0f;
+
+
+		CommonTree FLOAT_LITERAL208=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1281:3: ( FLOAT_LITERAL )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1281:5: FLOAT_LITERAL
+			{
+			FLOAT_LITERAL208=(CommonTree)match(input,FLOAT_LITERAL,FOLLOW_FLOAT_LITERAL_in_float_literal3498);
+			 value = LiteralTools.parseFloat((FLOAT_LITERAL208!=null?FLOAT_LITERAL208.getText():null));
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return value;
+	}
+	// $ANTLR end "float_literal"
+
+
+
+	// $ANTLR start "double_literal"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1283:1: double_literal returns [double value] : DOUBLE_LITERAL ;
+	public final double double_literal() throws RecognitionException {
+		double value = 0.0;
+
+
+		CommonTree DOUBLE_LITERAL209=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1284:3: ( DOUBLE_LITERAL )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1284:5: DOUBLE_LITERAL
+			{
+			DOUBLE_LITERAL209=(CommonTree)match(input,DOUBLE_LITERAL,FOLLOW_DOUBLE_LITERAL_in_double_literal3513);
+			 value = LiteralTools.parseDouble((DOUBLE_LITERAL209!=null?DOUBLE_LITERAL209.getText():null));
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return value;
+	}
+	// $ANTLR end "double_literal"
+
+
+
+	// $ANTLR start "char_literal"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1286:1: char_literal returns [char value] : CHAR_LITERAL ;
+	public final char char_literal() throws RecognitionException {
+		char value = 0;
+
+
+		CommonTree CHAR_LITERAL210=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1287:3: ( CHAR_LITERAL )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1287:5: CHAR_LITERAL
+			{
+			CHAR_LITERAL210=(CommonTree)match(input,CHAR_LITERAL,FOLLOW_CHAR_LITERAL_in_char_literal3528);
+			 value = (CHAR_LITERAL210!=null?CHAR_LITERAL210.getText():null).charAt(1);
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return value;
+	}
+	// $ANTLR end "char_literal"
+
+
+
+	// $ANTLR start "string_literal"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1289:1: string_literal returns [String value] : STRING_LITERAL ;
+	public final String string_literal() throws RecognitionException {
+		String value = null;
+
+
+		CommonTree STRING_LITERAL211=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1290:3: ( STRING_LITERAL )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1290:5: STRING_LITERAL
+			{
+			STRING_LITERAL211=(CommonTree)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_string_literal3543);
+
+			      value = (STRING_LITERAL211!=null?STRING_LITERAL211.getText():null);
+			      value = value.substring(1,value.length()-1);
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return value;
+	}
+	// $ANTLR end "string_literal"
+
+
+
+	// $ANTLR start "bool_literal"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1296:1: bool_literal returns [boolean value] : BOOL_LITERAL ;
+	public final boolean bool_literal() throws RecognitionException {
+		boolean value = false;
+
+
+		CommonTree BOOL_LITERAL212=null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1297:3: ( BOOL_LITERAL )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1297:5: BOOL_LITERAL
+			{
+			BOOL_LITERAL212=(CommonTree)match(input,BOOL_LITERAL,FOLLOW_BOOL_LITERAL_in_bool_literal3562);
+			 value = Boolean.parseBoolean((BOOL_LITERAL212!=null?BOOL_LITERAL212.getText():null));
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return value;
+	}
+	// $ANTLR end "bool_literal"
+
+
+
+	// $ANTLR start "array_literal"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1299:1: array_literal returns [List<EncodedValue> elements] : ^( I_ENCODED_ARRAY ( literal )* ) ;
+	public final List<EncodedValue> array_literal() throws RecognitionException {
+		List<EncodedValue> elements = null;
+
+
+		EncodedValue literal213 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1300:3: ( ^( I_ENCODED_ARRAY ( literal )* ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1300:5: ^( I_ENCODED_ARRAY ( literal )* )
+			{
+			elements = Lists.newArrayList();
+			match(input,I_ENCODED_ARRAY,FOLLOW_I_ENCODED_ARRAY_in_array_literal3584);
+			if ( input.LA(1)==Token.DOWN ) {
+				match(input, Token.DOWN, null);
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1301:23: ( literal )*
+				loop41:
+				while (true) {
+					int alt41=2;
+					int LA41_0 = input.LA(1);
+					if ( (LA41_0==ARRAY_DESCRIPTOR||(LA41_0 >= BOOL_LITERAL && LA41_0 <= BYTE_LITERAL)||(LA41_0 >= CHAR_LITERAL && LA41_0 <= CLASS_DESCRIPTOR)||LA41_0==DOUBLE_LITERAL||LA41_0==FLOAT_LITERAL||LA41_0==INTEGER_LITERAL||(LA41_0 >= I_ENCODED_ARRAY && LA41_0 <= I_ENCODED_METHOD)||LA41_0==I_SUBANNOTATION||LA41_0==LONG_LITERAL||LA41_0==NULL_LITERAL||LA41_0==PRIMITIVE_TYPE||LA41_0==SHORT_LITERAL||LA41_0==STRING_LITERAL||LA41_0==VOID_TYPE) ) {
+						alt41=1;
+					}
+
+					switch (alt41) {
+					case 1 :
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1301:24: literal
+						{
+						pushFollow(FOLLOW_literal_in_array_literal3587);
+						literal213=literal();
+						state._fsp--;
+
+						elements.add(literal213);
+						}
+						break;
+
+					default :
+						break loop41;
+					}
+				}
+
+				match(input, Token.UP, null);
+			}
+
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return elements;
+	}
+	// $ANTLR end "array_literal"
+
+
+
+	// $ANTLR start "annotations"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1303:1: annotations returns [Set<Annotation> annotations] : ^( I_ANNOTATIONS ( annotation )* ) ;
+	public final Set<Annotation> annotations() throws RecognitionException {
+		Set<Annotation> annotations = null;
+
+
+		Annotation annotation214 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1304:3: ( ^( I_ANNOTATIONS ( annotation )* ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1304:5: ^( I_ANNOTATIONS ( annotation )* )
+			{
+			HashMap<String, Annotation> annotationMap = Maps.newHashMap();
+			match(input,I_ANNOTATIONS,FOLLOW_I_ANNOTATIONS_in_annotations3612);
+			if ( input.LA(1)==Token.DOWN ) {
+				match(input, Token.DOWN, null);
+				// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1305:21: ( annotation )*
+				loop42:
+				while (true) {
+					int alt42=2;
+					int LA42_0 = input.LA(1);
+					if ( (LA42_0==I_ANNOTATION) ) {
+						alt42=1;
+					}
+
+					switch (alt42) {
+					case 1 :
+						// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1305:22: annotation
+						{
+						pushFollow(FOLLOW_annotation_in_annotations3615);
+						annotation214=annotation();
+						state._fsp--;
+
+
+						        Annotation anno = annotation214;
+						        Annotation old = annotationMap.put(anno.getType(), anno);
+						        if (old != null) {
+						            throw new SemanticException(input, "Multiple annotations of type %s", anno.getType());
+						        }
+						
+						}
+						break;
+
+					default :
+						break loop42;
+					}
+				}
+
+				match(input, Token.UP, null);
+			}
+
+
+			      if (annotationMap.size() > 0) {
+			        annotations = ImmutableSet.copyOf(annotationMap.values());
+			      }
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return annotations;
+	}
+	// $ANTLR end "annotations"
+
+
+
+	// $ANTLR start "annotation"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1319:1: annotation returns [Annotation annotation] : ^( I_ANNOTATION ANNOTATION_VISIBILITY subannotation ) ;
+	public final Annotation annotation() throws RecognitionException {
+		Annotation annotation = null;
+
+
+		CommonTree ANNOTATION_VISIBILITY215=null;
+		TreeRuleReturnScope subannotation216 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1320:3: ( ^( I_ANNOTATION ANNOTATION_VISIBILITY subannotation ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1320:5: ^( I_ANNOTATION ANNOTATION_VISIBILITY subannotation )
+			{
+			match(input,I_ANNOTATION,FOLLOW_I_ANNOTATION_in_annotation3644);
+			match(input, Token.DOWN, null);
+			ANNOTATION_VISIBILITY215=(CommonTree)match(input,ANNOTATION_VISIBILITY,FOLLOW_ANNOTATION_VISIBILITY_in_annotation3646);
+			pushFollow(FOLLOW_subannotation_in_annotation3648);
+			subannotation216=subannotation();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      int visibility = AnnotationVisibility.getVisibility((ANNOTATION_VISIBILITY215!=null?ANNOTATION_VISIBILITY215.getText():null));
+			      annotation = new ImmutableAnnotation(visibility, (subannotation216!=null?((smaliTreeWalker.subannotation_return)subannotation216).annotationType:null), (subannotation216!=null?((smaliTreeWalker.subannotation_return)subannotation216).elements:null));
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return annotation;
+	}
+	// $ANTLR end "annotation"
+
+
+
+	// $ANTLR start "annotation_element"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1326:1: annotation_element returns [AnnotationElement element] : ^( I_ANNOTATION_ELEMENT SIMPLE_NAME literal ) ;
+	public final AnnotationElement annotation_element() throws RecognitionException {
+		AnnotationElement element = null;
+
+
+		CommonTree SIMPLE_NAME217=null;
+		EncodedValue literal218 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1327:3: ( ^( I_ANNOTATION_ELEMENT SIMPLE_NAME literal ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1327:5: ^( I_ANNOTATION_ELEMENT SIMPLE_NAME literal )
+			{
+			match(input,I_ANNOTATION_ELEMENT,FOLLOW_I_ANNOTATION_ELEMENT_in_annotation_element3669);
+			match(input, Token.DOWN, null);
+			SIMPLE_NAME217=(CommonTree)match(input,SIMPLE_NAME,FOLLOW_SIMPLE_NAME_in_annotation_element3671);
+			pushFollow(FOLLOW_literal_in_annotation_element3673);
+			literal218=literal();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      element = new ImmutableAnnotationElement((SIMPLE_NAME217!=null?SIMPLE_NAME217.getText():null), literal218);
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return element;
+	}
+	// $ANTLR end "annotation_element"
+
+
+	public static class subannotation_return extends TreeRuleReturnScope {
+		public String annotationType;
+		public List<AnnotationElement> elements;
+	};
+
+
+	// $ANTLR start "subannotation"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1332:1: subannotation returns [String annotationType, List<AnnotationElement> elements] : ^( I_SUBANNOTATION CLASS_DESCRIPTOR ( annotation_element )* ) ;
+	public final smaliTreeWalker.subannotation_return subannotation() throws RecognitionException {
+		smaliTreeWalker.subannotation_return retval = new smaliTreeWalker.subannotation_return();
+		retval.start = input.LT(1);
+
+		CommonTree CLASS_DESCRIPTOR220=null;
+		AnnotationElement annotation_element219 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1333:3: ( ^( I_SUBANNOTATION CLASS_DESCRIPTOR ( annotation_element )* ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1333:5: ^( I_SUBANNOTATION CLASS_DESCRIPTOR ( annotation_element )* )
+			{
+			ArrayList<AnnotationElement> elements = Lists.newArrayList();
+			match(input,I_SUBANNOTATION,FOLLOW_I_SUBANNOTATION_in_subannotation3700);
+			match(input, Token.DOWN, null);
+			CLASS_DESCRIPTOR220=(CommonTree)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_subannotation3710);
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1336:9: ( annotation_element )*
+			loop43:
+			while (true) {
+				int alt43=2;
+				int LA43_0 = input.LA(1);
+				if ( (LA43_0==I_ANNOTATION_ELEMENT) ) {
+					alt43=1;
+				}
+
+				switch (alt43) {
+				case 1 :
+					// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1336:10: annotation_element
+					{
+					pushFollow(FOLLOW_annotation_element_in_subannotation3721);
+					annotation_element219=annotation_element();
+					state._fsp--;
+
+
+					           elements.add(annotation_element219);
+					
+					}
+					break;
+
+				default :
+					break loop43;
+				}
+			}
+
+			match(input, Token.UP, null);
+
+
+			      retval.annotationType = (CLASS_DESCRIPTOR220!=null?CLASS_DESCRIPTOR220.getText():null);
+			      retval.elements = elements;
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return retval;
+	}
+	// $ANTLR end "subannotation"
+
+
+
+	// $ANTLR start "field_literal"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1346:1: field_literal returns [FieldReference value] : ^( I_ENCODED_FIELD field_reference ) ;
+	public final FieldReference field_literal() throws RecognitionException {
+		FieldReference value = null;
+
+
+		ImmutableFieldReference field_reference221 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1347:3: ( ^( I_ENCODED_FIELD field_reference ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1347:5: ^( I_ENCODED_FIELD field_reference )
+			{
+			match(input,I_ENCODED_FIELD,FOLLOW_I_ENCODED_FIELD_in_field_literal3760);
+			match(input, Token.DOWN, null);
+			pushFollow(FOLLOW_field_reference_in_field_literal3762);
+			field_reference221=field_reference();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      value = field_reference221;
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return value;
+	}
+	// $ANTLR end "field_literal"
+
+
+
+	// $ANTLR start "method_literal"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1352:1: method_literal returns [MethodReference value] : ^( I_ENCODED_METHOD method_reference ) ;
+	public final MethodReference method_literal() throws RecognitionException {
+		MethodReference value = null;
+
+
+		ImmutableMethodReference method_reference222 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1353:3: ( ^( I_ENCODED_METHOD method_reference ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1353:5: ^( I_ENCODED_METHOD method_reference )
+			{
+			match(input,I_ENCODED_METHOD,FOLLOW_I_ENCODED_METHOD_in_method_literal3783);
+			match(input, Token.DOWN, null);
+			pushFollow(FOLLOW_method_reference_in_method_literal3785);
+			method_reference222=method_reference();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      value = method_reference222;
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return value;
+	}
+	// $ANTLR end "method_literal"
+
+
+
+	// $ANTLR start "enum_literal"
+	// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1358:1: enum_literal returns [FieldReference value] : ^( I_ENCODED_ENUM field_reference ) ;
+	public final FieldReference enum_literal() throws RecognitionException {
+		FieldReference value = null;
+
+
+		ImmutableFieldReference field_reference223 =null;
+
+		try {
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1359:3: ( ^( I_ENCODED_ENUM field_reference ) )
+			// /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr/smaliTreeWalker.g:1359:5: ^( I_ENCODED_ENUM field_reference )
+			{
+			match(input,I_ENCODED_ENUM,FOLLOW_I_ENCODED_ENUM_in_enum_literal3806);
+			match(input, Token.DOWN, null);
+			pushFollow(FOLLOW_field_reference_in_enum_literal3808);
+			field_reference223=field_reference();
+			state._fsp--;
+
+			match(input, Token.UP, null);
+
+
+			      value = field_reference223;
+			
+			}
+
+		}
+		catch (RecognitionException re) {
+			reportError(re);
+			recover(input,re);
+		}
+		finally {
+			// do for sure before leaving
+		}
+		return value;
+	}
+	// $ANTLR end "enum_literal"
+
+	// Delegated rules
+
+
+
+	public static final BitSet FOLLOW_I_CLASS_DEF_in_smali_file52 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_header_in_smali_file54 = new BitSet(new long[]{0x0000000000000000L,0x0040000000000000L});
+	public static final BitSet FOLLOW_methods_in_smali_file56 = new BitSet(new long[]{0x0000000000000000L,0x0000200000000000L});
+	public static final BitSet FOLLOW_fields_in_smali_file58 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000000L});
+	public static final BitSet FOLLOW_annotations_in_smali_file60 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_class_spec_in_header85 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L,0x0000200000000010L});
+	public static final BitSet FOLLOW_super_spec_in_header87 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L,0x0000000000000010L});
+	public static final BitSet FOLLOW_implements_list_in_header90 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000010L});
+	public static final BitSet FOLLOW_source_spec_in_header92 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_class_spec110 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L});
+	public static final BitSet FOLLOW_access_list_in_class_spec112 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_I_SUPER_in_super_spec130 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_super_spec132 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_IMPLEMENTS_in_implements_spec152 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_implements_spec154 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_implements_spec_in_implements_list184 = new BitSet(new long[]{0x0000000000000002L,0x0001000000000000L});
+	public static final BitSet FOLLOW_I_SOURCE_in_source_spec213 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_string_literal_in_source_spec215 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_ACCESS_LIST_in_access_list248 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_ACCESS_SPEC_in_access_list266 = new BitSet(new long[]{0x0000000000000018L});
+	public static final BitSet FOLLOW_I_FIELDS_in_fields308 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_field_in_fields317 = new BitSet(new long[]{0x0000000000000008L,0x0000100000000000L});
+	public static final BitSet FOLLOW_I_METHODS_in_methods349 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_method_in_methods358 = new BitSet(new long[]{0x0000000000000008L,0x0020000000000000L});
+	public static final BitSet FOLLOW_I_FIELD_in_field383 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_SIMPLE_NAME_in_field385 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L});
+	public static final BitSet FOLLOW_access_list_in_field387 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
+	public static final BitSet FOLLOW_I_FIELD_TYPE_in_field390 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_nonvoid_type_descriptor_in_field392 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_field_initial_value_in_field395 = new BitSet(new long[]{0x0000000000000008L,0x0000000040000000L});
+	public static final BitSet FOLLOW_annotations_in_field397 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_FIELD_INITIAL_VALUE_in_field_initial_value418 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_literal_in_field_initial_value420 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_integer_literal_in_literal442 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_long_literal_in_literal450 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_short_literal_in_literal458 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_byte_literal_in_literal466 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_float_literal_in_literal474 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_double_literal_in_literal482 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_char_literal_in_literal490 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_string_literal_in_literal498 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_bool_literal_in_literal506 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_NULL_LITERAL_in_literal514 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_type_descriptor_in_literal522 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_array_literal_in_literal530 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_subannotation_in_literal538 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_field_literal_in_literal546 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_method_literal_in_literal554 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_enum_literal_in_literal562 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_integer_literal_in_fixed_64bit_literal_number578 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_long_literal_in_fixed_64bit_literal_number586 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_short_literal_in_fixed_64bit_literal_number594 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_byte_literal_in_fixed_64bit_literal_number602 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_float_literal_in_fixed_64bit_literal_number610 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_double_literal_in_fixed_64bit_literal_number618 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_char_literal_in_fixed_64bit_literal_number626 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_bool_literal_in_fixed_64bit_literal_number634 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_integer_literal_in_fixed_64bit_literal649 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_long_literal_in_fixed_64bit_literal657 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_short_literal_in_fixed_64bit_literal665 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_byte_literal_in_fixed_64bit_literal673 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_float_literal_in_fixed_64bit_literal681 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_double_literal_in_fixed_64bit_literal689 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_char_literal_in_fixed_64bit_literal697 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_bool_literal_in_fixed_64bit_literal705 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_integer_literal_in_fixed_32bit_literal722 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_long_literal_in_fixed_32bit_literal730 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_short_literal_in_fixed_32bit_literal738 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_byte_literal_in_fixed_32bit_literal746 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_float_literal_in_fixed_32bit_literal754 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_char_literal_in_fixed_32bit_literal762 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_bool_literal_in_fixed_32bit_literal770 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_I_ARRAY_ELEMENTS_in_array_elements792 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_fixed_64bit_literal_number_in_array_elements801 = new BitSet(new long[]{0x0000004000404C08L,0x0000000004000000L,0x0004000000000000L,0x0000000000000020L});
+	public static final BitSet FOLLOW_I_PACKED_SWITCH_ELEMENTS_in_packed_switch_elements837 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_label_ref_in_packed_switch_elements846 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
+	public static final BitSet FOLLOW_I_SPARSE_SWITCH_ELEMENTS_in_sparse_switch_elements881 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_fixed_32bit_literal_in_sparse_switch_elements891 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
+	public static final BitSet FOLLOW_label_ref_in_sparse_switch_elements893 = new BitSet(new long[]{0x0000004000004C08L,0x0000000004000000L,0x0004000000000000L,0x0000000000000020L});
+	public static final BitSet FOLLOW_I_METHOD_in_method945 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_method_name_and_prototype_in_method953 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L});
+	public static final BitSet FOLLOW_access_list_in_method961 = new BitSet(new long[]{0x0000000000000000L,0x0210000000000000L,0x0000000000000001L});
+	public static final BitSet FOLLOW_registers_directive_in_method988 = new BitSet(new long[]{0x0000000000000000L,0x0200000000000000L});
+	public static final BitSet FOLLOW_ordered_method_items_in_method1045 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
+	public static final BitSet FOLLOW_catches_in_method1053 = new BitSet(new long[]{0x0000000000000000L,0x2000000000000000L});
+	public static final BitSet FOLLOW_parameters_in_method1061 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000000L});
+	public static final BitSet FOLLOW_annotations_in_method1070 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_METHOD_PROTOTYPE_in_method_prototype1094 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_I_METHOD_RETURN_TYPE_in_method_prototype1097 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_type_descriptor_in_method_prototype1099 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_method_type_list_in_method_prototype1102 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_SIMPLE_NAME_in_method_name_and_prototype1120 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L});
+	public static final BitSet FOLLOW_method_prototype_in_method_name_and_prototype1122 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_nonvoid_type_descriptor_in_method_type_list1156 = new BitSet(new long[]{0x0000000000008102L,0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
+	public static final BitSet FOLLOW_reference_type_descriptor_in_method_reference1185 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
+	public static final BitSet FOLLOW_SIMPLE_NAME_in_method_reference1188 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L});
+	public static final BitSet FOLLOW_method_prototype_in_method_reference1190 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_reference_type_descriptor_in_field_reference1207 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
+	public static final BitSet FOLLOW_SIMPLE_NAME_in_field_reference1210 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
+	public static final BitSet FOLLOW_nonvoid_type_descriptor_in_field_reference1212 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_I_REGISTERS_in_registers_directive1238 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_I_LOCALS_in_registers_directive1250 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_short_integral_literal_in_registers_directive1268 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_LABEL_in_label_def1288 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_SIMPLE_NAME_in_label_def1290 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_CATCHES_in_catches1316 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_catch_directive_in_catches1318 = new BitSet(new long[]{0x0000000000000008L,0x0000000C00000000L});
+	public static final BitSet FOLLOW_catchall_directive_in_catches1321 = new BitSet(new long[]{0x0000000000000008L,0x0000000800000000L});
+	public static final BitSet FOLLOW_I_CATCH_in_catch_directive1334 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_nonvoid_type_descriptor_in_catch_directive1336 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
+	public static final BitSet FOLLOW_label_ref_in_catch_directive1340 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
+	public static final BitSet FOLLOW_label_ref_in_catch_directive1344 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
+	public static final BitSet FOLLOW_label_ref_in_catch_directive1348 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_CATCHALL_in_catchall_directive1364 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_label_ref_in_catchall_directive1368 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
+	public static final BitSet FOLLOW_label_ref_in_catchall_directive1372 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
+	public static final BitSet FOLLOW_label_ref_in_catchall_directive1376 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_PARAMETERS_in_parameters1393 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_parameter_in_parameters1396 = new BitSet(new long[]{0x0000000000000008L,0x1000000000000000L});
+	public static final BitSet FOLLOW_I_PARAMETER_in_parameter1412 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_parameter1414 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000000L,0x0000000000000000L,0x0000000000000200L});
+	public static final BitSet FOLLOW_string_literal_in_parameter1416 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000000L});
+	public static final BitSet FOLLOW_annotations_in_parameter1419 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_line_in_debug_directive1436 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_local_in_debug_directive1442 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_end_local_in_debug_directive1448 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_restart_local_in_debug_directive1454 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_prologue_in_debug_directive1460 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_epilogue_in_debug_directive1466 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_source_in_debug_directive1472 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_I_LINE_in_line1483 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_integral_literal_in_line1485 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_LOCAL_in_local1503 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_local1505 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0040000000000000L,0x0000000000000200L});
+	public static final BitSet FOLLOW_NULL_LITERAL_in_local1509 = new BitSet(new long[]{0x0000000000008108L,0x0000000000000000L,0x0000000000000000L,0x0000000000000201L});
+	public static final BitSet FOLLOW_string_literal_in_local1515 = new BitSet(new long[]{0x0000000000008108L,0x0000000000000000L,0x0000000000000000L,0x0000000000000201L});
+	public static final BitSet FOLLOW_nonvoid_type_descriptor_in_local1518 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L});
+	public static final BitSet FOLLOW_string_literal_in_local1523 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_END_LOCAL_in_end_local1544 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_end_local1546 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_RESTART_LOCAL_in_restart_local1564 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_restart_local1566 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_PROLOGUE_in_prologue1583 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_I_EPILOGUE_in_epilogue1599 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_I_SOURCE_in_source1616 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_string_literal_in_source1618 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_ORDERED_METHOD_ITEMS_in_ordered_method_items1637 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_label_def_in_ordered_method_items1640 = new BitSet(new long[]{0x0000000000000008L,0x800E0C0000000000L,0x00000FFFFFFFFFD8L});
+	public static final BitSet FOLLOW_instruction_in_ordered_method_items1644 = new BitSet(new long[]{0x0000000000000008L,0x800E0C0000000000L,0x00000FFFFFFFFFD8L});
+	public static final BitSet FOLLOW_debug_directive_in_ordered_method_items1648 = new BitSet(new long[]{0x0000000000000008L,0x800E0C0000000000L,0x00000FFFFFFFFFD8L});
+	public static final BitSet FOLLOW_SIMPLE_NAME_in_label_ref1664 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_I_REGISTER_LIST_in_register_list1689 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_register_list1698 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_I_REGISTER_LIST_in_register_list41732 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_register_list41741 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_I_REGISTER_RANGE_in_register_range1766 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_register_range1771 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_register_range1775 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_verification_error_reference1798 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_field_reference_in_verification_error_reference1808 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_method_reference_in_verification_error_reference1818 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_VERIFICATION_ERROR_TYPE_in_verification_error_type1835 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format10t_in_instruction1849 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format10x_in_instruction1855 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format11n_in_instruction1861 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format11x_in_instruction1867 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format12x_in_instruction1873 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format20bc_in_instruction1879 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format20t_in_instruction1885 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format21c_field_in_instruction1891 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format21c_string_in_instruction1897 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format21c_type_in_instruction1903 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format21c_lambda_in_instruction1909 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format21c_method_in_instruction1915 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format21ih_in_instruction1921 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format21lh_in_instruction1927 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format21s_in_instruction1933 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format21t_in_instruction1939 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format22b_in_instruction1945 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format22c_field_in_instruction1951 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format22c_type_in_instruction1957 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format22c_string_in_instruction1963 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format22s_in_instruction1969 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format22t_in_instruction1975 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format22x_in_instruction1981 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format23x_in_instruction1987 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format25x_in_instruction1993 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format30t_in_instruction1999 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format31c_in_instruction2005 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format31i_in_instruction2011 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format31t_in_instruction2017 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format32x_in_instruction2023 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format35c_method_in_instruction2029 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format35c_type_in_instruction2035 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format3rc_method_in_instruction2041 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format3rc_type_in_instruction2047 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_format51l_type_in_instruction2053 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_array_data_directive_in_instruction2059 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_packed_switch_directive_in_instruction2065 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_insn_sparse_switch_directive_in_instruction2071 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT10t_in_insn_format10t2095 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT10t_in_insn_format10t2097 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
+	public static final BitSet FOLLOW_label_ref_in_insn_format10t2099 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT10x_in_insn_format10x2122 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT10x_in_insn_format10x2124 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT11n_in_insn_format11n2147 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT11n_in_insn_format11n2149 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format11n2151 = new BitSet(new long[]{0x0000000000004800L,0x0000000004000000L,0x0004000000000000L,0x0000000000000020L});
+	public static final BitSet FOLLOW_short_integral_literal_in_insn_format11n2153 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT11x_in_insn_format11x2176 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT11x_in_insn_format11x2178 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format11x2180 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT12x_in_insn_format12x2203 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT12x_in_insn_format12x2205 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format12x2209 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format12x2213 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT20bc_in_insn_format20bc2236 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT20bc_in_insn_format20bc2238 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
+	public static final BitSet FOLLOW_verification_error_type_in_insn_format20bc2240 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
+	public static final BitSet FOLLOW_verification_error_reference_in_insn_format20bc2242 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT20t_in_insn_format20t2265 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT20t_in_insn_format20t2267 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
+	public static final BitSet FOLLOW_label_ref_in_insn_format20t2269 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT21c_FIELD_in_insn_format21c_field2292 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_set_in_insn_format21c_field2296 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format21c_field2304 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
+	public static final BitSet FOLLOW_field_reference_in_insn_format21c_field2306 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT21c_STRING_in_insn_format21c_string2329 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_STRING_in_insn_format21c_string2331 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format21c_string2333 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L});
+	public static final BitSet FOLLOW_string_literal_in_insn_format21c_string2335 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT21c_TYPE_in_insn_format21c_type2358 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_TYPE_in_insn_format21c_type2360 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format21c_type2362 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
+	public static final BitSet FOLLOW_nonvoid_type_descriptor_in_insn_format21c_type2364 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT21c_LAMBDA_in_insn_format21c_lambda2387 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_LAMBDA_in_insn_format21c_lambda2389 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format21c_lambda2391 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L});
+	public static final BitSet FOLLOW_string_literal_in_insn_format21c_lambda2393 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT21c_METHOD_in_insn_format21c_method2416 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_METHOD_in_insn_format21c_method2418 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format21c_method2420 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
+	public static final BitSet FOLLOW_method_reference_in_insn_format21c_method2422 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT21ih_in_insn_format21ih2445 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21ih_in_insn_format21ih2447 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format21ih2449 = new BitSet(new long[]{0x0000004000004C00L,0x0000000004000000L,0x0004000000000000L,0x0000000000000020L});
+	public static final BitSet FOLLOW_fixed_32bit_literal_in_insn_format21ih2451 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT21lh_in_insn_format21lh2474 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21lh_in_insn_format21lh2476 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format21lh2478 = new BitSet(new long[]{0x0000004000404C00L,0x0000000004000000L,0x0004000000000000L,0x0000000000000020L});
+	public static final BitSet FOLLOW_fixed_64bit_literal_in_insn_format21lh2480 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT21s_in_insn_format21s2503 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21s_in_insn_format21s2505 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format21s2507 = new BitSet(new long[]{0x0000000000004800L,0x0000000004000000L,0x0004000000000000L,0x0000000000000020L});
+	public static final BitSet FOLLOW_short_integral_literal_in_insn_format21s2509 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT21t_in_insn_format21t2532 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21t_in_insn_format21t2534 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format21t2536 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
+	public static final BitSet FOLLOW_label_ref_in_insn_format21t2538 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT22b_in_insn_format22b2561 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22b_in_insn_format22b2563 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format22b2567 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format22b2571 = new BitSet(new long[]{0x0000000000004800L,0x0000000004000000L,0x0004000000000000L,0x0000000000000020L});
+	public static final BitSet FOLLOW_short_integral_literal_in_insn_format22b2573 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT22c_FIELD_in_insn_format22c_field2596 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_set_in_insn_format22c_field2600 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format22c_field2610 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format22c_field2614 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
+	public static final BitSet FOLLOW_field_reference_in_insn_format22c_field2616 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT22c_TYPE_in_insn_format22c_type2639 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_TYPE_in_insn_format22c_type2641 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format22c_type2645 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format22c_type2649 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
+	public static final BitSet FOLLOW_nonvoid_type_descriptor_in_insn_format22c_type2651 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT22c_STRING_in_insn_format22c_string2674 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_STRING_in_insn_format22c_string2676 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format22c_string2680 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format22c_string2684 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L});
+	public static final BitSet FOLLOW_string_literal_in_insn_format22c_string2686 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT22s_in_insn_format22s2709 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22s_in_insn_format22s2711 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format22s2715 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format22s2719 = new BitSet(new long[]{0x0000000000004800L,0x0000000004000000L,0x0004000000000000L,0x0000000000000020L});
+	public static final BitSet FOLLOW_short_integral_literal_in_insn_format22s2721 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT22t_in_insn_format22t2744 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22t_in_insn_format22t2746 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format22t2750 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format22t2754 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
+	public static final BitSet FOLLOW_label_ref_in_insn_format22t2756 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT22x_in_insn_format22x2779 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22x_in_insn_format22x2781 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format22x2785 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format22x2789 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT23x_in_insn_format23x2812 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT23x_in_insn_format23x2814 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format23x2818 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format23x2822 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format23x2826 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT25x_in_insn_format25x2849 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT25x_in_insn_format25x2851 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format25x2853 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
+	public static final BitSet FOLLOW_register_list4_in_insn_format25x2855 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT30t_in_insn_format30t2878 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT30t_in_insn_format30t2880 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
+	public static final BitSet FOLLOW_label_ref_in_insn_format30t2882 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT31c_in_insn_format31c2905 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT31c_in_insn_format31c2907 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format31c2909 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L});
+	public static final BitSet FOLLOW_string_literal_in_insn_format31c2911 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT31i_in_insn_format31i2934 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT31i_in_insn_format31i2936 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format31i2938 = new BitSet(new long[]{0x0000004000004C00L,0x0000000004000000L,0x0004000000000000L,0x0000000000000020L});
+	public static final BitSet FOLLOW_fixed_32bit_literal_in_insn_format31i2940 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT31t_in_insn_format31t2963 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT31t_in_insn_format31t2965 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format31t2967 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
+	public static final BitSet FOLLOW_label_ref_in_insn_format31t2969 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT32x_in_insn_format32x2992 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT32x_in_insn_format32x2994 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format32x2998 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format32x3002 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT35c_METHOD_in_insn_format35c_method3025 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_METHOD_in_insn_format35c_method3027 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
+	public static final BitSet FOLLOW_register_list_in_insn_format35c_method3029 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
+	public static final BitSet FOLLOW_method_reference_in_insn_format35c_method3031 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT35c_TYPE_in_insn_format35c_type3054 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_TYPE_in_insn_format35c_type3056 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
+	public static final BitSet FOLLOW_register_list_in_insn_format35c_type3058 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
+	public static final BitSet FOLLOW_nonvoid_type_descriptor_in_insn_format35c_type3060 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT3rc_METHOD_in_insn_format3rc_method3083 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT3rc_METHOD_in_insn_format3rc_method3085 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_register_range_in_insn_format3rc_method3087 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
+	public static final BitSet FOLLOW_method_reference_in_insn_format3rc_method3089 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT3rc_TYPE_in_insn_format3rc_type3112 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT3rc_TYPE_in_insn_format3rc_type3114 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_register_range_in_insn_format3rc_type3116 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
+	public static final BitSet FOLLOW_nonvoid_type_descriptor_in_insn_format3rc_type3118 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_FORMAT51l_in_insn_format51l_type3141 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_INSTRUCTION_FORMAT51l_in_insn_format51l_type3143 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+	public static final BitSet FOLLOW_REGISTER_in_insn_format51l_type3145 = new BitSet(new long[]{0x0000004000404C00L,0x0000000004000000L,0x0004000000000000L,0x0000000000000020L});
+	public static final BitSet FOLLOW_fixed_64bit_literal_in_insn_format51l_type3147 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_ARRAY_DATA_in_insn_array_data_directive3170 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_I_ARRAY_ELEMENT_SIZE_in_insn_array_data_directive3173 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_short_integral_literal_in_insn_array_data_directive3175 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_array_elements_in_insn_array_data_directive3178 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_PACKED_SWITCH_in_insn_packed_switch_directive3200 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_I_PACKED_SWITCH_START_KEY_in_insn_packed_switch_directive3203 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_fixed_32bit_literal_in_insn_packed_switch_directive3205 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_packed_switch_elements_in_insn_packed_switch_directive3208 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_STATEMENT_SPARSE_SWITCH_in_insn_sparse_switch_directive3232 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_sparse_switch_elements_in_insn_sparse_switch_directive3234 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_set_in_nonvoid_type_descriptor3255 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_set_in_reference_type_descriptor3287 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_VOID_TYPE_in_type_descriptor3313 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_nonvoid_type_descriptor_in_type_descriptor3321 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_long_literal_in_short_integral_literal3339 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_integer_literal_in_short_integral_literal3351 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_short_literal_in_short_integral_literal3363 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_char_literal_in_short_integral_literal3371 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_byte_literal_in_short_integral_literal3379 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_long_literal_in_integral_literal3394 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_integer_literal_in_integral_literal3406 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_short_literal_in_integral_literal3414 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_byte_literal_in_integral_literal3422 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_INTEGER_LITERAL_in_integer_literal3438 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_LONG_LITERAL_in_long_literal3453 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_SHORT_LITERAL_in_short_literal3468 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_BYTE_LITERAL_in_byte_literal3483 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_FLOAT_LITERAL_in_float_literal3498 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_DOUBLE_LITERAL_in_double_literal3513 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_CHAR_LITERAL_in_char_literal3528 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_STRING_LITERAL_in_string_literal3543 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_BOOL_LITERAL_in_bool_literal3562 = new BitSet(new long[]{0x0000000000000002L});
+	public static final BitSet FOLLOW_I_ENCODED_ARRAY_in_array_literal3584 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_literal_in_array_literal3587 = new BitSet(new long[]{0x000000400040CD08L,0x000003C004000000L,0x0044100000000000L,0x0000000000002221L});
+	public static final BitSet FOLLOW_I_ANNOTATIONS_in_annotations3612 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_annotation_in_annotations3615 = new BitSet(new long[]{0x0000000000000008L,0x0000000020000000L});
+	public static final BitSet FOLLOW_I_ANNOTATION_in_annotation3644 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_ANNOTATION_VISIBILITY_in_annotation3646 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000100000000000L});
+	public static final BitSet FOLLOW_subannotation_in_annotation3648 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_ANNOTATION_ELEMENT_in_annotation_element3669 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_SIMPLE_NAME_in_annotation_element3671 = new BitSet(new long[]{0x000000400040CD00L,0x000003C004000000L,0x0044100000000000L,0x0000000000002221L});
+	public static final BitSet FOLLOW_literal_in_annotation_element3673 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_SUBANNOTATION_in_subannotation3700 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_subannotation3710 = new BitSet(new long[]{0x0000000000000008L,0x0000000080000000L});
+	public static final BitSet FOLLOW_annotation_element_in_subannotation3721 = new BitSet(new long[]{0x0000000000000008L,0x0000000080000000L});
+	public static final BitSet FOLLOW_I_ENCODED_FIELD_in_field_literal3760 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_field_reference_in_field_literal3762 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_ENCODED_METHOD_in_method_literal3783 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_method_reference_in_method_literal3785 = new BitSet(new long[]{0x0000000000000008L});
+	public static final BitSet FOLLOW_I_ENCODED_ENUM_in_enum_literal3806 = new BitSet(new long[]{0x0000000000000004L});
+	public static final BitSet FOLLOW_field_reference_in_enum_literal3808 = new BitSet(new long[]{0x0000000000000008L});
+}