diff --git a/apps/Development/src/com/android/development/Connectivity.java b/apps/Development/src/com/android/development/Connectivity.java
index accdbf0..93d199b 100644
--- a/apps/Development/src/com/android/development/Connectivity.java
+++ b/apps/Development/src/com/android/development/Connectivity.java
@@ -225,10 +225,13 @@
                     mStartTime = -1;
                 }
                 Log.d(TAG, "Scan: READY " + mScanCur);
+                mScanResults.setVisibility(View.INVISIBLE);
 
                 List<ScanResult> wifiScanResults = mWm.getScanResults();
                 if (wifiScanResults != null) {
                     mTotalScanCount += wifiScanResults.size();
+                    mScanResults.setText("Current scan = " + Long.toString(wifiScanResults.size()));
+                    mScanResults.setVisibility(View.VISIBLE);
                     Log.d(TAG, "Scan: Results = " + wifiScanResults.size());
                 }
 
@@ -237,6 +240,7 @@
                 if (mScanCur == 0) {
                     unregisterReceiver(mScanRecv);
                     mScanButton.setText(GET_SCAN_RES);
+                    mScanResults.setVisibility(View.INVISIBLE);
                 } else {
                     Log.d(TAG, "Scan: START " + mScanCur);
                     mStartTime = SystemClock.elapsedRealtime();
diff --git a/apps/Development/src/com/android/development/InstrumentationList.java b/apps/Development/src/com/android/development/InstrumentationList.java
index fddfe86..654077e 100644
--- a/apps/Development/src/com/android/development/InstrumentationList.java
+++ b/apps/Development/src/com/android/development/InstrumentationList.java
@@ -156,7 +156,7 @@
             try {
                 ActivityManagerNative.getDefault().
                     startInstrumentation(className, profilingFile, 0, null, mWatcher, null,
-                            UserHandle.myUserId());
+                            UserHandle.myUserId(), null);
             } catch (RemoteException ex) {
             }
         }
diff --git a/build/Android.mk b/build/Android.mk
index b9e3fbb..6b854ee 100644
--- a/build/Android.mk
+++ b/build/Android.mk
@@ -1,3 +1,5 @@
+LOCAL_PATH := $(call my-dir)
+
 # ===== SDK source.property files =====
 
 # Add all files to be generated from the source.prop templates to the SDK pre-requisites
@@ -52,53 +54,11 @@
 		$< > $@ && sed -i -e '/^AndroidVersion.CodeName=\s*$$/d' $@
 
 
-# ===== Android Support/Compatibility Library =====
-
-LOCAL_PATH := $(call my-dir)
-
-# The source files for this library are _all_ generated, something we don't do
-# anywhere else, and the rules don't support.  Aditionally, the depenencies on
-# these files don't really matter, because they are all generated as part of
-# building the docs.  So for the dependency, we just use the
-# api-stubs-timestamp file, which is the $@ of the droiddoc rule.
-# We also need to depend on framework-res.apk, in order to pull the
-# resource files out of there for aapt.
-#
-# Normally the package rule runs aapt, which includes the resource,
-# but we're not running that in our package rule so just copy in the
-# resource files here.
-intermediates := $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/android_stubs_current_intermediates
-full_target := $(intermediates)/classes.jar
-src_dir := $(intermediates)/src
-classes_dir := $(intermediates)/classes
-framework_res_package := $(call intermediates-dir-for,APPS,framework-res,,COMMON)/package-export.apk
-
-$(full_target): PRIVATE_SRC_DIR := $(src_dir)
-$(full_target): PRIVATE_INTERMEDIATES_DIR := $(intermediates)
-$(full_target): PRIVATE_CLASS_INTERMEDIATES_DIR := $(classes_dir)
-$(full_target): PRIVATE_FRAMEWORK_RES_PACKAGE := $(framework_res_package)
-
-$(full_target): $(OUT_DOCS)/api-stubs-timestamp $(framework_res_package)
-	@echo Compiling SDK Stubs: $@
-	$(hide) rm -rf $(PRIVATE_CLASS_INTERMEDIATES_DIR)
-	$(hide) mkdir -p $(PRIVATE_CLASS_INTERMEDIATES_DIR)
-	$(hide) find $(PRIVATE_SRC_DIR) -name "*.java" > \
-        $(PRIVATE_INTERMEDIATES_DIR)/java-source-list
-	$(hide) $(TARGET_JAVAC) -encoding ascii -bootclasspath "" \
-			-g $(xlint_unchecked) \
-			-extdirs "" -d $(PRIVATE_CLASS_INTERMEDIATES_DIR) \
-			\@$(PRIVATE_INTERMEDIATES_DIR)/java-source-list \
-		|| ( rm -rf $(PRIVATE_CLASS_INTERMEDIATES_DIR) ; exit 41 )
-	$(hide) if [ ! -f $(PRIVATE_FRAMEWORK_RES_PACKAGE) ]; then \
-		echo Missing file $(PRIVATE_FRAMEWORK_RES_PACKAGE); \
-		rm -rf $(PRIVATE_CLASS_INTERMEDIATES_DIR); \
-		exit 1; \
-	fi;
-	$(hide) unzip -qo $(PRIVATE_FRAMEWORK_RES_PACKAGE) -d $(PRIVATE_CLASS_INTERMEDIATES_DIR)
-	$(hide) (cd $(PRIVATE_CLASS_INTERMEDIATES_DIR) && rm -rf classes.dex META-INF)
-	$(hide) mkdir -p $(dir $@)
-	$(hide) jar -cf $@ -C $(PRIVATE_CLASS_INTERMEDIATES_DIR) .
-	$(hide) jar -u0f $@ -C $(PRIVATE_CLASS_INTERMEDIATES_DIR) resources.arsc
+# ===== SDK jar file of stubs =====
+# A.k.a the "current" version of the public SDK (android.jar inside the SDK package).
+sdk_stub_name := android_stubs_current
+stub_timestamp := $(OUT_DOCS)/api-stubs-timestamp
+include $(LOCAL_PATH)/build_android_stubs.mk
 
 .PHONY: android_stubs
 android_stubs: $(full_target)
@@ -110,7 +70,7 @@
 $(dir $(full_target))javalib.jar: $(full_target)
 	$(hide)$(ACP) $< $@
 
-
+# android.jar is what we put in the SDK package.
 android_jar_intermediates := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/android_jar_intermediates
 android_jar_full_target := $(android_jar_intermediates)/android.jar
 
@@ -121,6 +81,8 @@
 
 ALL_SDK_FILES += $(android_jar_full_target)
 
+# ====================================================
+
 # The uiautomator stubs
 ALL_SDK_FILES += $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/android_uiautomator_intermediates/javalib.jar
 
@@ -153,3 +115,32 @@
     android-support-multidex-instrumentation
 
 $(foreach lib, $(ANDROID_SUPPORT_LIBRARIES), $(eval $(call _package_sdk_library,$(lib))))
+
+# ======= Lint API XML ===========
+
+ALL_SDK_FILES += $(HOST_OUT)/development/sdk/generated-api-versions.xml
+
+api_gen_jar := $(TOPDIR)prebuilts/tools/common/api-generator/api-generator-22.9.1.jar
+api_gen_deps := \
+  $(TOPDIR)prebuilts/tools/common/kxml2-tools/kxml2-2.3.0.jar \
+  $(TOPDIR)prebuilts/tools/common/asm-tools/asm-4.0.jar \
+  $(TOPDIR)prebuilts/tools/common/asm-tools/asm-tree-4.0.jar \
+  $(TOPDIR)prebuilts/devtools/tools/lib/common.jar
+api_gen_classpath := $(subst $(space),:,$(api_gen_jar) $(api_gen_deps))
+
+
+$(HOST_OUT)/development/sdk/generated-api-versions.xml :
+	java -cp $(api_gen_classpath) \
+	  com.android.apigenerator.Main \
+	  --pattern $(TOPDIR)prebuilts/tools/common/api-versions/android-%/android.jar \
+	  --pattern $(TOPDIR)prebuilts/sdk/%/android.jar \
+	  $@
+
+
+# ============ System SDK ============
+sdk_stub_name := android_system_stubs_current
+stub_timestamp := $(OUT_DOCS)/system-api-stubs-timestamp
+include $(LOCAL_PATH)/build_android_stubs.mk
+
+.PHONY: android_system_stubs
+android_system_stubs: $(full_target)
diff --git a/build/build_android_stubs.mk b/build/build_android_stubs.mk
new file mode 100644
index 0000000..a028900
--- /dev/null
+++ b/build/build_android_stubs.mk
@@ -0,0 +1,51 @@
+# Build an SDK jar file out of the generated stubs
+# Input variable:
+#   sdk_stub_name: the name of the SDK stubs; the stub source code should have been generated to
+#                  $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/$(sdk_stub_name)_intermediates.
+#   stub_timestamp: the timestamp file we use as dependency of the generated source.
+# Output variable:
+#   full_target: the built classes.jar
+
+# The source files for this library are _all_ generated, something we don't do
+# anywhere else, and the rules don't support.  Aditionally, the depenencies on
+# these files don't really matter, because they are all generated as part of
+# building the docs.  So for the dependency, we just use the
+# api-stubs-timestamp file, which is the $@ of the droiddoc rule.
+# We also need to depend on framework-res.apk, in order to pull the
+# resource files out of there for aapt.
+#
+# Normally the package rule runs aapt, which includes the resource,
+# but we're not running that in our package rule so just copy in the
+# resource files here.
+intermediates := $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/$(sdk_stub_name)_intermediates
+full_target := $(intermediates)/classes.jar
+src_dir := $(intermediates)/src
+classes_dir := $(intermediates)/classes
+framework_res_package := $(call intermediates-dir-for,APPS,framework-res,,COMMON)/package-export.apk
+
+$(full_target): PRIVATE_SRC_DIR := $(src_dir)
+$(full_target): PRIVATE_INTERMEDIATES_DIR := $(intermediates)
+$(full_target): PRIVATE_CLASS_INTERMEDIATES_DIR := $(classes_dir)
+$(full_target): PRIVATE_FRAMEWORK_RES_PACKAGE := $(framework_res_package)
+
+$(full_target): $(stub_timestamp) $(framework_res_package)
+	@echo Compiling SDK Stubs: $@
+	$(hide) rm -rf $(PRIVATE_CLASS_INTERMEDIATES_DIR)
+	$(hide) mkdir -p $(PRIVATE_CLASS_INTERMEDIATES_DIR)
+	$(hide) find $(PRIVATE_SRC_DIR) -name "*.java" > \
+        $(PRIVATE_INTERMEDIATES_DIR)/java-source-list
+	$(hide) $(TARGET_JAVAC) -encoding ascii -bootclasspath "" \
+			-g $(xlint_unchecked) \
+			-extdirs "" -d $(PRIVATE_CLASS_INTERMEDIATES_DIR) \
+			\@$(PRIVATE_INTERMEDIATES_DIR)/java-source-list \
+		|| ( rm -rf $(PRIVATE_CLASS_INTERMEDIATES_DIR) ; exit 41 )
+	$(hide) if [ ! -f $(PRIVATE_FRAMEWORK_RES_PACKAGE) ]; then \
+		echo Missing file $(PRIVATE_FRAMEWORK_RES_PACKAGE); \
+		rm -rf $(PRIVATE_CLASS_INTERMEDIATES_DIR); \
+		exit 1; \
+	fi;
+	$(hide) unzip -qo $(PRIVATE_FRAMEWORK_RES_PACKAGE) -d $(PRIVATE_CLASS_INTERMEDIATES_DIR)
+	$(hide) (cd $(PRIVATE_CLASS_INTERMEDIATES_DIR) && rm -rf classes.dex META-INF)
+	$(hide) mkdir -p $(dir $@)
+	$(hide) jar -cf $@ -C $(PRIVATE_CLASS_INTERMEDIATES_DIR) .
+	$(hide) jar -u0f $@ -C $(PRIVATE_CLASS_INTERMEDIATES_DIR) resources.arsc
diff --git a/build/sdk.atree b/build/sdk.atree
index 023fd65..6744837 100644
--- a/build/sdk.atree
+++ b/build/sdk.atree
@@ -51,7 +51,7 @@
 
 
 # API database for tools such as lint
-development/sdk/api-versions.xml              platform-tools/api/api-versions.xml
+development/sdk/generated-api-versions.xml    platform-tools/api/api-versions.xml
 
 # systrace
 external/chromium-trace/systrace.py           platform-tools/systrace/systrace.py
@@ -74,6 +74,7 @@
 
 development/sdk/sdk_files_NOTICE.txt           build-tools/${PLATFORM_NAME}/NOTICE.txt
 development/sdk/build_tools_source.properties  build-tools/${PLATFORM_NAME}/source.properties
+development/sdk/build_tools_runtime.properties build-tools/${PLATFORM_NAME}/runtime.properties
 
 # build tools from out/host/$(HOST_OS)-$(HOST_ARCH)/
 bin/aapt                                strip build-tools/${PLATFORM_NAME}/aapt
@@ -285,6 +286,23 @@
 
 developers/build/prebuilts/androidtv                                         samples/${PLATFORM_NAME}/androidtv
 
+# Wearable sample tree
+development/samples/wearable/AgendaData              samples/${PLATFORM_NAME}/wearable/AgendaData
+development/samples/wearable/DataLayer               samples/${PLATFORM_NAME}/wearable/DataLayer
+development/samples/wearable/DelayedConfirmation     samples/${PLATFORM_NAME}/wearable/DelayedConfirmation
+development/samples/wearable/ElizaChat               samples/${PLATFORM_NAME}/wearable/ElizaChat
+development/samples/wearable/FindMyPhone             samples/${PLATFORM_NAME}/wearable/FindMyPhone
+development/samples/wearable/Flashlight              samples/${PLATFORM_NAME}/wearable/Flashlight
+development/samples/wearable/Geofencing              samples/${PLATFORM_NAME}/wearable/Geofencing
+development/samples/wearable/GridViewPager           samples/${PLATFORM_NAME}/wearable/GridViewPager
+development/samples/wearable/JumpingJack             samples/${PLATFORM_NAME}/wearable/JumpingJack
+development/samples/wearable/Notifications           samples/${PLATFORM_NAME}/wearable/Notifications
+development/samples/wearable/Quiz                    samples/${PLATFORM_NAME}/wearable/Quiz
+development/samples/wearable/RecipeAssistant         samples/${PLATFORM_NAME}/wearable/RecipeAssistant
+development/samples/wearable/SkeletonWearableApp     samples/${PLATFORM_NAME}/wearable/SkeletonWearableApp
+development/samples/wearable/Timer                   samples/${PLATFORM_NAME}/wearable/Timer
+development/samples/wearable/WatchViewStub           samples/${PLATFORM_NAME}/wearable/WatchViewStub
+
 # Old sample tree
 development/samples/AccelerometerPlay          samples/${PLATFORM_NAME}/legacy/AccelerometerPlay
 development/samples/ActionBarCompat            samples/${PLATFORM_NAME}/legacy/ActionBarCompat
diff --git a/build/tools/windows_sdk.mk b/build/tools/windows_sdk.mk
index aaf8fa4..c4fcfa2 100644
--- a/build/tools/windows_sdk.mk
+++ b/build/tools/windows_sdk.mk
@@ -65,8 +65,8 @@
 
 
 # MAIN_SDK_NAME/DIR is set in build/core/Makefile
-WIN_SDK_NAME := $(subst $(HOST_OS)-$(HOST_ARCH),windows,$(MAIN_SDK_NAME))
-WIN_SDK_DIR  := $(subst $(HOST_OS)-$(HOST_ARCH),windows,$(MAIN_SDK_DIR))
+WIN_SDK_NAME := $(subst $(HOST_OS)-$(SDK_HOST_ARCH),windows,$(MAIN_SDK_NAME))
+WIN_SDK_DIR  := $(subst $(HOST_OS)-$(SDK_HOST_ARCH),windows,$(MAIN_SDK_DIR))
 WIN_SDK_ZIP  := $(WIN_SDK_DIR)/$(WIN_SDK_NAME).zip
 
 $(call dist-for-goals, win_sdk, $(WIN_SDK_ZIP))
diff --git a/cmds/monkey/src/com/android/commands/monkey/MonkeyInstrumentationEvent.java b/cmds/monkey/src/com/android/commands/monkey/MonkeyInstrumentationEvent.java
index b2ae247..a4f276d 100644
--- a/cmds/monkey/src/com/android/commands/monkey/MonkeyInstrumentationEvent.java
+++ b/cmds/monkey/src/com/android/commands/monkey/MonkeyInstrumentationEvent.java
@@ -45,7 +45,7 @@
         Bundle args = new Bundle();
         args.putString("class", mTestCaseName);
         try {
-            iam.startInstrumentation(cn, null, 0, args, null, null, 0);
+            iam.startInstrumentation(cn, null, 0, args, null, null, 0, null);
         } catch (RemoteException e) {
             System.err.println("** Failed talking with activity manager!");
             return MonkeyEvent.INJECT_ERROR_REMOTE_EXCEPTION;
diff --git a/host/windows/prebuilt/usb/Android.mk b/host/windows/prebuilt/usb/Android.mk
index 9cf4e61..e8af167 100644
--- a/host/windows/prebuilt/usb/Android.mk
+++ b/host/windows/prebuilt/usb/Android.mk
@@ -1,24 +1,28 @@
 LOCAL_PATH:= $(call my-dir)
 
 include $(CLEAR_VARS)
+LOCAL_IS_HOST_MODULE := true
+LOCAL_MODULE := AdbWinApi
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_SRC_FILES_x86 := AdbWinApi.a
+LOCAL_MODULE_SUFFIX := .a
+LOCAL_MULTILIB := 32
+include $(BUILD_PREBUILT)
 
-LOCAL_PREBUILT_LIBS := \
-	AdbWinApi.a
+include $(CLEAR_VARS)
+LOCAL_IS_HOST_MODULE := true
+LOCAL_MODULE := AdbWinApi
+LOCAL_MODULE_CLASS := EXECUTABLES
+LOCAL_SRC_FILES_x86 := AdbWinApi.dll
+LOCAL_MODULE_SUFFIX := .dll
+LOCAL_MULTILIB := 32
+include $(BUILD_PREBUILT)
 
-LOCAL_PREBUILT_EXECUTABLES := \
-	AdbWinApi.dll  \
-	AdbWinUsbApi.dll
-	
-.PHONY : kill-adb
-	
-$(LOCAL_PATH)/AdbWinApi.dll : kill-adb
-
-kill-adb:
-	@echo "Killing adb server so we can replace AdbWinApi.dll"
-	@adb kill-server || echo "adb appears to be missing"
-
-# generate AdbWinApi stub library
-#$(LOCAL_PATH)/AdbWinApi.a: $(LOCAL_PATH)/AdbWinApi.def
-#	dlltool --def $(LOCAL_PATH)/AdbWinApi.def --dllname AdbWinApi.dll --output-lib $(LOCAL_PATH)/AdbWinApi.a
-
-include $(BUILD_HOST_PREBUILT)
+include $(CLEAR_VARS)
+LOCAL_IS_HOST_MODULE := true
+LOCAL_MODULE := AdbWinUsbApi
+LOCAL_MODULE_CLASS := EXECUTABLES
+LOCAL_SRC_FILES_x86 := AdbWinUsbApi.dll
+LOCAL_MODULE_SUFFIX := .dll
+LOCAL_MULTILIB := 32
+include $(BUILD_PREBUILT)
diff --git a/host/windows/usb/android_winusb.inf b/host/windows/usb/android_winusb.inf
index 6c2d525..d12ba27 100755
--- a/host/windows/usb/android_winusb.inf
+++ b/host/windows/usb/android_winusb.inf
@@ -6,7 +6,7 @@
 Class               = AndroidUsbDeviceClass
 ClassGuid           = {3F966BD9-FA04-4ec5-991C-D326973B5128}
 Provider            = %ProviderName%
-DriverVer           = 01/27/2014,9.0.0000.00000
+DriverVer           = 06/06/2014,10.0.0000.00000
 CatalogFile.NTx86   = androidwinusb86.cat
 CatalogFile.NTamd64 = androidwinusba64.cat
 
@@ -50,6 +50,7 @@
 %CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4EE2&MI_01
 %CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4EE4&MI_02
 %CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4EE6&MI_01
+%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4EE7
 
 ;Google Glass
 %SingleAdbInterface%        = USB_Install, USB\VID_18D1&PID_9001
@@ -84,6 +85,7 @@
 %CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4EE2&MI_01
 %CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4EE4&MI_02
 %CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4EE6&MI_01
+%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4EE7
 
 ;Google Glass
 %SingleAdbInterface%        = USB_Install, USB\VID_18D1&PID_9001
diff --git a/ide/eclipse/.classpath b/ide/eclipse/.classpath
index 5bd032f..eb37216 100644
--- a/ide/eclipse/.classpath
+++ b/ide/eclipse/.classpath
@@ -111,7 +111,7 @@
 	<classpathentry kind="src" path="development/samples/Snake/tests/src"/>
 	<classpathentry kind="src" path="libcore/dalvik/src/main/java"/>
 	<classpathentry kind="src" path="libcore/json/src/main/java"/>
-	<classpathentry kind="src" path="libcore/libdvm/src/main/java"/>
+	<classpathentry kind="src" path="libcore/libart/src/main/java"/>
 	<classpathentry kind="src" path="libcore/luni/src/main/java"/>
 	<classpathentry kind="src" path="libcore/xml/src/main/java"/>
 	<classpathentry kind="src" path="out/target/common/obj/APPS/ApiDemos_intermediates/src/src"/>
diff --git a/ndk/platforms/android-14/samples/native-media/jni/Application.mk b/ndk/platforms/android-14/samples/native-media/jni/Application.mk
new file mode 100644
index 0000000..e619d92
--- /dev/null
+++ b/ndk/platforms/android-14/samples/native-media/jni/Application.mk
@@ -0,0 +1 @@
+APP_ABI := all
\ No newline at end of file
diff --git a/ndk/platforms/android-14/samples/native-media/jni/native-media-jni.c b/ndk/platforms/android-14/samples/native-media/jni/native-media-jni.c
index bdf568a..ad6d874 100644
--- a/ndk/platforms/android-14/samples/native-media/jni/native-media-jni.c
+++ b/ndk/platforms/android-14/samples/native-media/jni/native-media-jni.c
@@ -288,7 +288,7 @@
         LOGV("Dropping last packet because it is not whole");
     }
     size_t packetsRead = bytesRead / MPEG2_TS_PACKET_SIZE;
-    LOGV("Initially queueing %u packets", packetsRead);
+    LOGV("Initially queueing %zu packets", packetsRead);
 
     /* Enqueue the content of our cache before starting to play,
        we don't want to starve the player */
diff --git a/ndk/platforms/android-18/samples/gles3jni/jni/Application.mk b/ndk/platforms/android-18/samples/gles3jni/jni/Application.mk
new file mode 100644
index 0000000..a252a72
--- /dev/null
+++ b/ndk/platforms/android-18/samples/gles3jni/jni/Application.mk
@@ -0,0 +1 @@
+APP_ABI := all
diff --git a/ndk/platforms/android-20/arch-arm/include/machine/endian.h b/ndk/platforms/android-20/arch-arm/include/machine/endian.h
deleted file mode 100644
index 8d9723d..0000000
--- a/ndk/platforms/android-20/arch-arm/include/machine/endian.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*	$OpenBSD: endian.h,v 1.3 2005/12/13 00:35:23 millert Exp $	*/
-
-/*
- * Copyright (C) 2010 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef _ARM_ENDIAN_H_
-#define _ARM_ENDIAN_H_
-
-#ifdef __GNUC__
-
-/* According to RealView Assembler User's Guide, REV and REV16 are available
- * in Thumb code and 16-bit instructions when used in Thumb-2 code.
- *
- * REV Rd, Rm
- *   Rd and Rm must both be Lo registers.
- *
- * REV16 Rd, Rm
- *   Rd and Rm must both be Lo registers.
- *
- * The +l constraint takes care of this without constraining us in ARM mode.
- */
-#define __swap16md(x) ({                                        \
-    register u_int16_t _x = (x);                                \
-    __asm__ __volatile__("rev16 %0, %0" : "+l" (_x));           \
-    _x;                                                         \
-})
-
-#define __swap32md(x) ({                                        \
-    register u_int32_t _x = (x);                                \
-    __asm__ __volatile__("rev %0, %0" : "+l" (_x));             \
-    _x;                                                         \
-})
-
-#define __swap64md(x) ({                                        \
-    u_int64_t _swap64md_x = (x);                                \
-    (u_int64_t) __swap32md(_swap64md_x >> 32) |                 \
-        (u_int64_t) __swap32md(_swap64md_x & 0xffffffff) << 32; \
-})
-
-/* Tell sys/endian.h we have MD variants of the swap macros.  */
-#define MD_SWAP
-
-#endif  /* __GNUC__ */
-
-#if defined(__ARMEB__)
-#define _BYTE_ORDER _BIG_ENDIAN
-#else
-#define _BYTE_ORDER _LITTLE_ENDIAN
-#endif
-#define __STRICT_ALIGNMENT
-#include <sys/types.h>
-#include <sys/endian.h>
-
-#endif  /* !_ARM_ENDIAN_H_ */
diff --git a/ndk/platforms/android-20/arch-arm/include/machine/fenv.h b/ndk/platforms/android-20/arch-arm/include/machine/fenv.h
deleted file mode 100644
index d8749dd..0000000
--- a/ndk/platforms/android-20/arch-arm/include/machine/fenv.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*-
- * Copyright (c) 2004-2005 David Schultz <das@FreeBSD.ORG>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/msun/arm/fenv.h,v 1.5 2005/03/16 19:03:45 das Exp $
- */
-
-/*
- * Rewritten for Android.
- *
- * The ARM FPSCR is described here:
- * http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0344b/Chdfafia.html
- */
-
-#ifndef _ARM_FENV_H_
-#define _ARM_FENV_H_
-
-#include <sys/types.h>
-
-__BEGIN_DECLS
-
-typedef __uint32_t fenv_t;
-typedef __uint32_t fexcept_t;
-
-/* Exception flags. */
-#define FE_INVALID    0x01
-#define FE_DIVBYZERO  0x02
-#define FE_OVERFLOW   0x04
-#define FE_UNDERFLOW  0x08
-#define FE_INEXACT    0x10
-#define FE_ALL_EXCEPT (FE_DIVBYZERO | FE_INEXACT | FE_INVALID | \
-                       FE_OVERFLOW | FE_UNDERFLOW)
-
-#define _FPSCR_ENABLE_SHIFT 8
-#define _FPSCR_ENABLE_MASK  (FE_ALL_EXCEPT << _FPSCR_ENABLE_SHIFT)
-
-/* Rounding modes. */
-#define FE_TONEAREST  0x0
-#define FE_UPWARD     0x1
-#define FE_DOWNWARD   0x2
-#define FE_TOWARDZERO 0x3
-
-#define _FPSCR_RMODE_SHIFT 22
-
-__END_DECLS
-
-#endif /* !_ARM_FENV_H_ */
diff --git a/ndk/platforms/android-20/arch-arm/lib/libc.a b/ndk/platforms/android-20/arch-arm/lib/libc.a
deleted file mode 100644
index e8b7397..0000000
--- a/ndk/platforms/android-20/arch-arm/lib/libc.a
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-20/arch-arm/lib/libm.a b/ndk/platforms/android-20/arch-arm/lib/libm.a
deleted file mode 100644
index e807a64..0000000
--- a/ndk/platforms/android-20/arch-arm/lib/libm.a
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-20/arch-arm/lib/libstdc++.a b/ndk/platforms/android-20/arch-arm/lib/libstdc++.a
deleted file mode 100644
index d8bf32f..0000000
--- a/ndk/platforms/android-20/arch-arm/lib/libstdc++.a
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-20/arch-arm/symbols/libc.so.functions.txt b/ndk/platforms/android-20/arch-arm/symbols/libc.so.functions.txt
deleted file mode 100644
index 9844e68..0000000
--- a/ndk/platforms/android-20/arch-arm/symbols/libc.so.functions.txt
+++ /dev/null
@@ -1,1344 +0,0 @@
-MD5_Final
-MD5_Init
-MD5_Update
-SHA1Final
-SHA1Init
-SHA1Transform
-SHA1Update
-_Exit
-_Unwind_Backtrace
-_Unwind_Complete
-_Unwind_DeleteException
-_Unwind_ForcedUnwind
-_Unwind_GetCFA
-_Unwind_GetDataRelBase
-_Unwind_GetLanguageSpecificData
-_Unwind_GetRegionStart
-_Unwind_GetTextRelBase
-_Unwind_RaiseException
-_Unwind_Resume
-_Unwind_Resume_or_Rethrow
-_Unwind_VRS_Get
-_Unwind_VRS_Pop
-_Unwind_VRS_Set
-__FD_CLR_chk
-__FD_ISSET_chk
-__FD_SET_chk
-___Unwind_Backtrace
-___Unwind_ForcedUnwind
-___Unwind_RaiseException
-___Unwind_Resume
-___Unwind_Resume_or_Rethrow
-__accept
-__adddf3
-__addsf3
-__aeabi_atexit
-__aeabi_cdcmpeq
-__aeabi_cdcmple
-__aeabi_cdrcmple
-__aeabi_d2f
-__aeabi_d2iz
-__aeabi_dadd
-__aeabi_dcmpeq
-__aeabi_dcmpge
-__aeabi_dcmpgt
-__aeabi_dcmple
-__aeabi_dcmplt
-__aeabi_dcmpun
-__aeabi_ddiv
-__aeabi_dmul
-__aeabi_drsub
-__aeabi_dsub
-__aeabi_f2d
-__aeabi_f2iz
-__aeabi_f2uiz
-__aeabi_fadd
-__aeabi_fcmpun
-__aeabi_fdiv
-__aeabi_fmul
-__aeabi_frsub
-__aeabi_fsub
-__aeabi_i2d
-__aeabi_i2f
-__aeabi_idiv
-__aeabi_idiv0
-__aeabi_idivmod
-__aeabi_l2d
-__aeabi_l2f
-__aeabi_lasr
-__aeabi_ldiv0
-__aeabi_ldivmod
-__aeabi_llsl
-__aeabi_llsr
-__aeabi_lmul
-__aeabi_memclr
-__aeabi_memclr4
-__aeabi_memclr8
-__aeabi_memcpy
-__aeabi_memcpy4
-__aeabi_memcpy8
-__aeabi_memmove
-__aeabi_memmove4
-__aeabi_memmove8
-__aeabi_memset
-__aeabi_memset4
-__aeabi_memset8
-__aeabi_ui2d
-__aeabi_ui2f
-__aeabi_uidiv
-__aeabi_uidivmod
-__aeabi_ul2d
-__aeabi_ul2f
-__aeabi_uldivmod
-__aeabi_unwind_cpp_pr0
-__aeabi_unwind_cpp_pr1
-__aeabi_unwind_cpp_pr2
-__android_set_abort_message
-__arc4_getbyte
-__ashldi3
-__ashrdi3
-__assert
-__assert2
-__atexit_register_cleanup
-__atomic_cmpxchg
-__atomic_dec
-__atomic_inc
-__atomic_swap
-__b64_ntop
-__b64_pton
-__bionic_name_mem
-__brk
-__cmpdf2
-__connect
-__cxa_atexit
-__cxa_finalize
-__divdf3
-__divdi3
-__divsf3
-__divsi3
-__dn_comp
-__dn_count_labels
-__dn_skipname
-__dorand48
-__epoll_pwait
-__eqdf2
-__errno
-__evAddTime
-__evCmpTime
-__evConsIovec
-__evConsTime
-__evNowTime
-__evSubTime
-__evTimeSpec
-__evTimeVal
-__evUTCTime
-__exit
-__extendsfdf2
-__fcntl64
-__fgets_chk
-__fgetwc_unlock
-__findenv
-__fixdfsi
-__fixsfsi
-__fixunssfsi
-__floatdidf
-__floatdisf
-__floatsidf
-__floatsisf
-__floatundidf
-__floatundisf
-__floatunsidf
-__floatunsisf
-__fp_nquery
-__fp_query
-__fpclassify
-__fpclassifyd
-__fpclassifyf
-__fpclassifyl
-__fputwc_unlock
-__fstatfs64
-__futex_syscall3
-__futex_syscall4
-__futex_wait
-__futex_wait_ex
-__futex_wake
-__futex_wake_ex
-__gedf2
-__get_h_errno
-__get_sp
-__get_tls
-__getcpu
-__getcwd
-__getpriority
-__gnu_Unwind_Backtrace
-__gnu_Unwind_Find_exidx
-__gnu_Unwind_ForcedUnwind
-__gnu_Unwind_RaiseException
-__gnu_Unwind_Restore_VFP
-__gnu_Unwind_Restore_VFP_D
-__gnu_Unwind_Restore_VFP_D_16_to_31
-__gnu_Unwind_Restore_WMMXC
-__gnu_Unwind_Restore_WMMXD
-__gnu_Unwind_Resume
-__gnu_Unwind_Resume_or_Rethrow
-__gnu_Unwind_Save_VFP
-__gnu_Unwind_Save_VFP_D
-__gnu_Unwind_Save_VFP_D_16_to_31
-__gnu_Unwind_Save_WMMXC
-__gnu_Unwind_Save_WMMXD
-__gnu_ldivmod_helper
-__gnu_uldivmod_helper
-__gnu_unwind_execute
-__gnu_unwind_frame
-__gtdf2
-__hostalias
-__ioctl
-__isfinite
-__isfinitef
-__isfinitel
-__isinf
-__isinff
-__isinfl
-__isnan
-__isnanf
-__isnanl
-__isnormal
-__isnormalf
-__isnormall
-__ledf2
-__libc_current_sigrtmax
-__libc_current_sigrtmin
-__libc_fini
-__libc_init
-__llseek
-__loc_aton
-__loc_ntoa
-__lshrdi3
-__ltdf2
-__memcmp16
-__memcpy_chk
-__memmove_chk
-__memset_chk
-__mmap2
-__muldf3
-__muldi3
-__mulsf3
-__nedf2
-__ns_format_ttl
-__ns_get16
-__ns_get32
-__ns_initparse
-__ns_makecanon
-__ns_msg_getflag
-__ns_name_compress
-__ns_name_eq
-__ns_name_labels
-__ns_name_length
-__ns_name_map
-__ns_name_ntol
-__ns_name_ntop
-__ns_name_owned
-__ns_name_pack
-__ns_name_pton
-__ns_name_pton2
-__ns_name_rollback
-__ns_name_skip
-__ns_name_uncompress
-__ns_name_unpack
-__ns_name_unpack2
-__ns_parserr
-__ns_parserr2
-__ns_put16
-__ns_put32
-__ns_samename
-__ns_skiprr
-__ns_sprintrr
-__ns_sprintrrf
-__open
-__open_2
-__openat
-__openat_2
-__p_cdname
-__p_cdnname
-__p_class
-__p_fqname
-__p_fqnname
-__p_option
-__p_query
-__p_rcode
-__p_secstodate
-__p_section
-__p_sockun
-__p_time
-__p_type
-__popcountsi2
-__ppoll
-__pselect6
-__pthread_cleanup_pop
-__pthread_cleanup_push
-__pthread_gettid
-__ptrace
-__putlong
-__putshort
-__read_chk
-__reboot
-__recvfrom_chk
-__res_close
-__res_dnok
-__res_get_nibblesuffix
-__res_get_nibblesuffix2
-__res_get_state
-__res_get_static
-__res_getservers
-__res_hnok
-__res_hostalias
-__res_isourserver
-__res_mailok
-__res_nameinquery
-__res_nametoclass
-__res_nametotype
-__res_nclose
-__res_ndestroy
-__res_ninit
-__res_nmkquery
-__res_nopt
-__res_nquery
-__res_nquerydomain
-__res_nsearch
-__res_nsend
-__res_opt
-__res_ownok
-__res_pquery
-__res_put_state
-__res_queriesmatch
-__res_querydomain
-__res_randomid
-__res_send
-__res_send_setqhook
-__res_send_setrhook
-__res_setservers
-__res_vinit
-__restore_core_regs
-__rt_sigaction
-__rt_sigpending
-__rt_sigprocmask
-__rt_sigsuspend
-__rt_sigtimedwait
-__sched_cpualloc
-__sched_cpucount
-__sched_cpufree
-__sched_getaffinity
-__sclose
-__set_errno
-__set_tid_address
-__set_tls
-__sflags
-__sflush
-__sflush_locked
-__sfp
-__sfvwrite
-__sigaction
-__sinit
-__smakebuf
-__snprintf_chk
-__sprintf_chk
-__sread
-__srefill
-__srget
-__sseek
-__stack_chk_fail
-__statfs64
-__stpcpy_chk
-__stpncpy_chk
-__stpncpy_chk2
-__strcat_chk
-__strchr_chk
-__strcpy_chk
-__strlcat_chk
-__strlcpy_chk
-__strlen_chk
-__strncat_chk
-__strncpy_chk
-__strncpy_chk2
-__strrchr_chk
-__subdf3
-__subsf3
-__svfscanf
-__swbuf
-__swhatbuf
-__swrite
-__swsetup
-__sym_ntop
-__sym_ntos
-__sym_ston
-__syslog
-__system_properties_init
-__system_property_add
-__system_property_area_init
-__system_property_find
-__system_property_find_compat
-__system_property_find_nth
-__system_property_foreach
-__system_property_foreach_compat
-__system_property_get
-__system_property_read
-__system_property_read_compat
-__system_property_serial
-__system_property_set
-__system_property_set_filename
-__system_property_update
-__system_property_wait_any
-__timer_create
-__timer_delete
-__timer_getoverrun
-__timer_gettime
-__timer_settime
-__truncdfsf2
-__udivdi3
-__udivsi3
-__umask_chk
-__ungetwc
-__unorddf2
-__unordsf2
-__vfprintf
-__vfwprintf
-__vfwscanf
-__vsnprintf_chk
-__vsprintf_chk
-__wait4
-__waitid
-_cleanup
-_exit
-_exit_with_stack_teardown
-_fwalk
-_getlong
-_getshort
-_longjmp
-_resolv_flush_cache_for_net
-_resolv_set_nameservers_for_net
-_setjmp
-_thread_created_hook
-_tolower
-_toupper
-abort
-abs
-accept
-accept4
-access
-acct
-alarm
-alphasort
-alphasort64
-android_getaddrinfofornet
-android_gethostbyaddrfornet
-android_gethostbyaddrfornet_proxy
-android_gethostbyaddrfornet_real
-android_gethostbynamefornet
-android_getnameinfofornet
-arc4random
-arc4random_addrandom
-arc4random_buf
-arc4random_stir
-arc4random_uniform
-asctime
-asctime64
-asctime64_r
-asctime_r
-asprintf
-at_quick_exit
-atexit
-atof
-atoi
-atol
-atoll
-basename
-basename_r
-bcopy
-bind
-bindresvport
-brk
-bsd_signal
-bsearch
-btowc
-bzero
-cacheflush
-calloc
-capget
-capset
-cfgetispeed
-cfgetospeed
-cfmakeraw
-cfsetispeed
-cfsetospeed
-cfsetspeed
-chdir
-chmod
-chown
-chroot
-clearenv
-clearerr
-clock
-clock_getres
-clock_gettime
-clock_nanosleep
-clock_settime
-clone
-close
-closedir
-closelog
-closelog_r
-cmsg_nxthdr
-connect
-creat
-creat64
-ctime
-ctime64
-ctime64_r
-ctime_r
-daemon
-delete_module
-difftime
-dirfd
-dirname
-dirname_r
-div
-dlbulk_free
-dlcalloc
-dlfree
-dlindependent_calloc
-dlindependent_comalloc
-dlmallinfo
-dlmalloc
-dlmalloc_footprint
-dlmalloc_footprint_limit
-dlmalloc_inspect_all
-dlmalloc_max_footprint
-dlmalloc_set_footprint_limit
-dlmalloc_stats
-dlmalloc_trim
-dlmalloc_usable_size
-dlmallopt
-dlmemalign
-dlposix_memalign
-dlpvalloc
-dlrealloc
-dlrealloc_in_place
-dlvalloc
-dn_expand
-drand48
-dup
-dup2
-dup3
-duplocale
-endmntent
-endpwent
-endservent
-endusershell
-endutent
-epoll_create
-epoll_create1
-epoll_ctl
-epoll_pwait
-epoll_wait
-erand48
-err
-errx
-ether_aton
-ether_aton_r
-ether_ntoa
-ether_ntoa_r
-eventfd
-eventfd_read
-eventfd_write
-execl
-execle
-execlp
-execv
-execve
-execvp
-execvpe
-exit
-faccessat
-fallocate
-fallocate64
-fchdir
-fchmod
-fchmodat
-fchown
-fchownat
-fclose
-fcntl
-fdatasync
-fdopen
-fdopendir
-fdprintf
-feof
-ferror
-fflush
-ffs
-fgetc
-fgetln
-fgetpos
-fgets
-fgetwc
-fgetws
-fgetxattr
-fileno
-flistxattr
-flock
-flockfile
-fnmatch
-fopen
-fork
-fpathconf
-fprintf
-fpurge
-fputc
-fputs
-fputwc
-fputws
-fread
-free
-freeaddrinfo
-freelocale
-fremovexattr
-freopen
-fscanf
-fseek
-fseeko
-fsetpos
-fsetxattr
-fstat
-fstat64
-fstatat
-fstatat64
-fstatfs
-fstatfs64
-fstatvfs
-fstatvfs64
-fsync
-ftell
-ftello
-ftime
-ftok
-ftruncate
-ftruncate64
-ftrylockfile
-fts_children
-fts_close
-fts_open
-fts_read
-fts_set
-ftw
-ftw64
-funlockfile
-funopen
-futex
-futimens
-fwide
-fwprintf
-fwrite
-fwscanf
-gai_strerror
-get_malloc_leak_info
-getaddrinfo
-getauxval
-getc
-getc_unlocked
-getchar
-getchar_unlocked
-getcwd
-getdelim
-getdents
-getdtablesize
-getegid
-getenv
-geteuid
-getgid
-getgrgid
-getgrnam
-getgrouplist
-getgroups
-gethostbyaddr
-gethostbyname
-gethostbyname2
-gethostbyname_r
-gethostent
-gethostname
-getitimer
-getline
-getlogin
-getmntent
-getmntent_r
-getnameinfo
-getnetbyaddr
-getnetbyname
-getopt
-getopt_long
-getopt_long_only
-getpagesize
-getpeername
-getpgid
-getpgrp
-getpid
-getppid
-getpriority
-getprogname
-getprotobyname
-getprotobynumber
-getpt
-getpwnam
-getpwnam_r
-getpwuid
-getpwuid_r
-getresgid
-getresuid
-getrlimit
-getrlimit64
-getrusage
-gets
-getservbyname
-getservbyport
-getservent
-getservent_r
-getsid
-getsockname
-getsockopt
-gettid
-gettimeofday
-getuid
-getusershell
-getutent
-getwc
-getwchar
-getxattr
-gmtime
-gmtime64
-gmtime64_r
-gmtime_r
-herror
-hstrerror
-htonl
-htons
-if_indextoname
-if_nametoindex
-imaxabs
-imaxdiv
-index
-inet_addr
-inet_aton
-inet_lnaof
-inet_makeaddr
-inet_netof
-inet_network
-inet_nsap_addr
-inet_nsap_ntoa
-inet_ntoa
-inet_ntop
-inet_pton
-init_module
-initgroups
-inotify_add_watch
-inotify_init
-inotify_init1
-inotify_rm_watch
-ioctl
-ioprio_get
-ioprio_set
-isalnum
-isalpha
-isascii
-isatty
-isblank
-iscntrl
-isdigit
-isfinite
-isfinitef
-isfinitel
-isgraph
-isinf
-isinff
-isinfl
-islower
-isnan
-isnanf
-isnanl
-isnormal
-isnormalf
-isnormall
-isprint
-ispunct
-issetugid
-isspace
-isupper
-iswalnum
-iswalpha
-iswblank
-iswcntrl
-iswctype
-iswdigit
-iswgraph
-iswlower
-iswprint
-iswpunct
-iswspace
-iswupper
-iswxdigit
-isxdigit
-jrand48
-kill
-killpg
-klogctl
-labs
-lchown
-ldexp
-ldiv
-lfind
-lgetxattr
-link
-linkat
-listen
-listxattr
-llabs
-lldiv
-llistxattr
-localeconv
-localtime
-localtime64
-localtime64_r
-localtime_r
-localtime_tz
-longjmp
-longjmperror
-lrand48
-lremovexattr
-lsearch
-lseek
-lseek64
-lsetxattr
-lstat
-lstat64
-madvise
-mallinfo
-malloc
-malloc_usable_size
-mbrlen
-mbrtowc
-mbsinit
-mbsnrtowcs
-mbsrtowcs
-mbstowcs
-mbtowc
-memalign
-memccpy
-memchr
-memcmp
-memcpy
-memmem
-memmove
-memrchr
-memset
-memswap
-mincore
-mkdir
-mkdirat
-mkdtemp
-mkfifo
-mknod
-mknodat
-mkstemp
-mkstemp64
-mkstemps
-mktemp
-mktime
-mktime64
-mktime_tz
-mlock
-mlockall
-mmap
-mmap64
-mount
-mprotect
-mrand48
-mremap
-msync
-munlock
-munlockall
-munmap
-nanosleep
-newlocale
-nftw
-nftw64
-nice
-nrand48
-nsdispatch
-ntohl
-ntohs
-open
-open64
-openat
-openat64
-opendir
-openlog
-openlog_r
-pathconf
-pause
-pclose
-perf_event_open
-perror
-personality
-pipe
-pipe2
-poll
-popen
-posix2time
-posix_fallocate
-posix_fallocate64
-posix_memalign
-ppoll
-prctl
-pread
-pread64
-printf
-prlimit64
-pselect
-psiginfo
-psignal
-pthread_atfork
-pthread_attr_destroy
-pthread_attr_getdetachstate
-pthread_attr_getguardsize
-pthread_attr_getschedparam
-pthread_attr_getschedpolicy
-pthread_attr_getscope
-pthread_attr_getstack
-pthread_attr_getstackaddr
-pthread_attr_getstacksize
-pthread_attr_init
-pthread_attr_setdetachstate
-pthread_attr_setguardsize
-pthread_attr_setschedparam
-pthread_attr_setschedpolicy
-pthread_attr_setscope
-pthread_attr_setstack
-pthread_attr_setstackaddr
-pthread_attr_setstacksize
-pthread_cond_broadcast
-pthread_cond_destroy
-pthread_cond_init
-pthread_cond_signal
-pthread_cond_timedwait
-pthread_cond_timedwait_monotonic
-pthread_cond_timedwait_monotonic_np
-pthread_cond_timedwait_relative_np
-pthread_cond_timeout_np
-pthread_cond_wait
-pthread_condattr_destroy
-pthread_condattr_getclock
-pthread_condattr_getpshared
-pthread_condattr_init
-pthread_condattr_setclock
-pthread_condattr_setpshared
-pthread_create
-pthread_detach
-pthread_equal
-pthread_exit
-pthread_getattr_np
-pthread_getcpuclockid
-pthread_getschedparam
-pthread_getspecific
-pthread_join
-pthread_key_create
-pthread_key_delete
-pthread_kill
-pthread_mutex_destroy
-pthread_mutex_init
-pthread_mutex_lock
-pthread_mutex_lock_timeout_np
-pthread_mutex_timedlock
-pthread_mutex_trylock
-pthread_mutex_unlock
-pthread_mutexattr_destroy
-pthread_mutexattr_getpshared
-pthread_mutexattr_gettype
-pthread_mutexattr_init
-pthread_mutexattr_setpshared
-pthread_mutexattr_settype
-pthread_once
-pthread_rwlock_destroy
-pthread_rwlock_init
-pthread_rwlock_rdlock
-pthread_rwlock_timedrdlock
-pthread_rwlock_timedwrlock
-pthread_rwlock_tryrdlock
-pthread_rwlock_trywrlock
-pthread_rwlock_unlock
-pthread_rwlock_wrlock
-pthread_rwlockattr_destroy
-pthread_rwlockattr_getpshared
-pthread_rwlockattr_init
-pthread_rwlockattr_setpshared
-pthread_self
-pthread_setname_np
-pthread_setschedparam
-pthread_setspecific
-pthread_sigmask
-ptrace
-ptsname
-ptsname_r
-putc
-putc_unlocked
-putchar
-putchar_unlocked
-putenv
-puts
-pututline
-putw
-putwc
-putwchar
-pvalloc
-pwrite
-pwrite64
-qsort
-quick_exit
-raise
-read
-readahead
-readdir
-readdir64
-readdir64_r
-readdir_r
-readlink
-readlinkat
-readv
-realloc
-realpath
-reboot
-recv
-recvfrom
-recvmmsg
-recvmsg
-regcomp
-regerror
-regexec
-regfree
-remove
-removexattr
-rename
-renameat
-res_init
-res_mkquery
-res_query
-res_search
-res_setmark
-res_setnetid
-restore_core_regs
-rewind
-rewinddir
-rmdir
-sbrk
-scandir
-scandir64
-scanf
-sched_get_priority_max
-sched_get_priority_min
-sched_getaffinity
-sched_getcpu
-sched_getparam
-sched_getscheduler
-sched_rr_get_interval
-sched_setaffinity
-sched_setparam
-sched_setscheduler
-sched_yield
-seed48
-select
-sem_close
-sem_destroy
-sem_getvalue
-sem_init
-sem_open
-sem_post
-sem_timedwait
-sem_trywait
-sem_unlink
-sem_wait
-send
-sendfile
-sendfile64
-sendmmsg
-sendmsg
-sendto
-setbuf
-setbuffer
-setegid
-setenv
-seteuid
-setgid
-setgroups
-setitimer
-setjmp
-setlinebuf
-setlocale
-setlogmask
-setlogmask_r
-setmntent
-setns
-setpgid
-setpgrp
-setpriority
-setprogname
-setregid
-setresgid
-setresuid
-setreuid
-setrlimit
-setrlimit64
-setservent
-setsid
-setsockopt
-settimeofday
-setuid
-setusershell
-setutent
-setvbuf
-setxattr
-shutdown
-sigaction
-sigaddset
-sigaltstack
-sigblock
-sigdelset
-sigemptyset
-sigfillset
-siginterrupt
-sigismember
-siglongjmp
-signal
-signalfd
-signalfd4
-sigpending
-sigprocmask
-sigsetjmp
-sigsetmask
-sigsuspend
-sigwait
-sleep
-snprintf
-socket
-socketpair
-sprintf
-srand48
-sscanf
-stat
-stat64
-statfs
-statfs64
-statvfs
-statvfs64
-stpcpy
-stpncpy
-strcasecmp
-strcasestr
-strcat
-strchr
-strcmp
-strcoll
-strcpy
-strcspn
-strdup
-strerror
-strerror_r
-strftime
-strftime_tz
-strlcat
-strlcpy
-strlen
-strncasecmp
-strncat
-strncmp
-strncpy
-strndup
-strnlen
-strntoimax
-strntoumax
-strpbrk
-strptime
-strrchr
-strsep
-strsignal
-strspn
-strstr
-strtod
-strtof
-strtoimax
-strtok
-strtok_r
-strtol
-strtold
-strtoll
-strtoq
-strtotimeval
-strtoul
-strtoull
-strtoumax
-strtouq
-strxfrm
-swapoff
-swapon
-swprintf
-swscanf
-symlink
-symlinkat
-sync
-syscall
-sysconf
-sysinfo
-syslog
-syslog_r
-system
-sysv_signal
-tcdrain
-tcflow
-tcflush
-tcgetattr
-tcgetpgrp
-tcgetsid
-tcsendbreak
-tcsetattr
-tcsetpgrp
-tdelete
-tdestroy
-tempnam
-tfind
-tgkill
-time
-time2posix
-timegm
-timegm64
-timelocal
-timelocal64
-timer_create
-timer_delete
-timer_getoverrun
-timer_gettime
-timer_settime
-timerfd_create
-timerfd_gettime
-timerfd_settime
-times
-tkill
-tmpfile
-tmpnam
-toascii
-tolower
-toupper
-towlower
-towupper
-truncate
-truncate64
-tsearch
-ttyname
-ttyname_r
-tzset
-tzsetwall
-umask
-umount
-umount2
-uname
-ungetc
-ungetwc
-unlink
-unlinkat
-unlockpt
-unsetenv
-unshare
-uselocale
-usleep
-utime
-utimensat
-utimes
-utmpname
-valloc
-vasprintf
-verr
-verrx
-vfdprintf
-vfork
-vfprintf
-vfscanf
-vfwprintf
-vfwscanf
-vprintf
-vscanf
-vsnprintf
-vsprintf
-vsscanf
-vswprintf
-vswscanf
-vsyslog
-vsyslog_r
-vwarn
-vwarnx
-vwprintf
-vwscanf
-wait
-wait3
-wait4
-waitid
-waitpid
-warn
-warnx
-wcpcpy
-wcpncpy
-wcrtomb
-wcscasecmp
-wcscat
-wcschr
-wcscmp
-wcscoll
-wcscpy
-wcscspn
-wcsdup
-wcsftime
-wcslcat
-wcslcpy
-wcslen
-wcsncasecmp
-wcsncat
-wcsncmp
-wcsncpy
-wcsnlen
-wcsnrtombs
-wcspbrk
-wcsrchr
-wcsrtombs
-wcsspn
-wcsstr
-wcstod
-wcstof
-wcstoimax
-wcstok
-wcstol
-wcstold
-wcstoll
-wcstombs
-wcstoul
-wcstoull
-wcstoumax
-wcswcs
-wcswidth
-wcsxfrm
-wctob
-wctomb
-wctype
-wcwidth
-wmemchr
-wmemcmp
-wmemcpy
-wmemmove
-wmemset
-wprintf
-write
-writev
-wscanf
diff --git a/ndk/platforms/android-20/arch-arm/symbols/libc.so.variables.txt b/ndk/platforms/android-20/arch-arm/symbols/libc.so.variables.txt
deleted file mode 100644
index 3d7161c..0000000
--- a/ndk/platforms/android-20/arch-arm/symbols/libc.so.variables.txt
+++ /dev/null
@@ -1,50 +0,0 @@
-_C_ctype_
-_C_tolower_
-_C_toupper_
-__atexit
-__atexit_invalid
-__bionic_brk
-__bionic_libgcc_compat_symbols
-__dso_handle
-__isthreaded
-__libc_malloc_default_dispatch
-__libc_malloc_dispatch
-__netdClientDispatch
-__p_cert_syms
-__p_class_syms
-__p_key_syms
-__p_rcode_syms
-__p_type_syms
-__page_shift
-__page_size
-__popcount_tab
-__progname
-__rand48_add
-__rand48_mult
-__rand48_seed
-__sF
-__sdidinit
-__sglue
-__stack_chk_guard
-__system_property_area__
-_ctype_
-_ns_flagdata
-_tolower_tab_
-_toupper_tab_
-daylight
-environ
-g_allocations_mutex
-g_hash_table
-g_malloc_debug_backlog
-g_malloc_debug_level
-h_errlist
-h_nerr
-optarg
-opterr
-optind
-optopt
-optreset
-sys_siglist
-sys_signame
-timezone
-tzname
diff --git a/ndk/platforms/android-20/arch-arm/symbols/libm.so.functions.txt b/ndk/platforms/android-20/arch-arm/symbols/libm.so.functions.txt
deleted file mode 100644
index 41c1f41..0000000
--- a/ndk/platforms/android-20/arch-arm/symbols/libm.so.functions.txt
+++ /dev/null
@@ -1,297 +0,0 @@
-__aeabi_cfcmpeq
-__aeabi_cfcmple
-__aeabi_cfrcmple
-__aeabi_d2lz
-__aeabi_d2uiz
-__aeabi_d2ulz
-__aeabi_f2lz
-__aeabi_f2ulz
-__aeabi_fcmpeq
-__aeabi_fcmpge
-__aeabi_fcmpgt
-__aeabi_fcmple
-__aeabi_fcmplt
-__cmpsf2
-__eqsf2
-__exp__D
-__fixdfdi
-__fixsfdi
-__fixunsdfdi
-__fixunsdfsi
-__fixunssfdi
-__gesf2
-__gtsf2
-__ieee754_rem_pio2
-__ieee754_rem_pio2f
-__kernel_cos
-__kernel_cosdf
-__kernel_rem_pio2
-__kernel_sin
-__kernel_sindf
-__kernel_tan
-__kernel_tandf
-__ldexp_cexp
-__ldexp_cexpf
-__ldexp_exp
-__ldexp_expf
-__lesf2
-__log__D
-__ltsf2
-__nesf2
-__signbit
-__signbitf
-__signbitl
-_scan_nan
-acos
-acosf
-acosh
-acoshf
-acoshl
-acosl
-asin
-asinf
-asinh
-asinhf
-asinhl
-asinl
-atan
-atan2
-atan2f
-atan2l
-atanf
-atanh
-atanhf
-atanhl
-atanl
-cabs
-cabsf
-cabsl
-carg
-cargf
-cbrt
-cbrtf
-cbrtl
-ccos
-ccosf
-ccosh
-ccoshf
-ceil
-ceilf
-ceill
-cexp
-cexpf
-cimag
-cimagf
-conj
-conjf
-copysign
-copysignf
-copysignl
-cos
-cosf
-cosh
-coshf
-coshl
-cosl
-cproj
-cprojf
-cprojl
-creal
-crealf
-csin
-csinf
-csinh
-csinhf
-csqrt
-csqrtf
-csqrtl
-ctan
-ctanf
-ctanh
-ctanhf
-drem
-dremf
-erf
-erfc
-erfcf
-erfcl
-erff
-erfl
-exp
-exp2
-exp2f
-exp2l
-expf
-expl
-expm1
-expm1f
-expm1l
-fabs
-fabsf
-fabsl
-fdim
-fdimf
-fdiml
-feclearexcept
-fedisableexcept
-feenableexcept
-fegetenv
-fegetexcept
-fegetexceptflag
-fegetround
-feholdexcept
-feraiseexcept
-fesetenv
-fesetexceptflag
-fesetround
-fetestexcept
-feupdateenv
-finite
-finitef
-floor
-floorf
-floorl
-fma
-fmaf
-fmal
-fmax
-fmaxf
-fmaxl
-fmin
-fminf
-fminl
-fmod
-fmodf
-fmodl
-frexp
-frexpf
-frexpl
-gamma
-gamma_r
-gammaf
-gammaf_r
-hypot
-hypotf
-hypotl
-ilogb
-ilogbf
-ilogbl
-imprecise_coshl
-imprecise_erfcl
-imprecise_erfl
-imprecise_lgammal
-imprecise_powl
-imprecise_sinhl
-imprecise_tanhl
-imprecise_tgammal
-j0
-j0f
-j1
-j1f
-jn
-jnf
-ldexpf
-ldexpl
-lgamma
-lgamma_r
-lgammaf
-lgammaf_r
-lgammal
-llrint
-llrintf
-llrintl
-llround
-llroundf
-llroundl
-log
-log10
-log10f
-log10l
-log1p
-log1pf
-log1pl
-log2
-log2f
-log2l
-logb
-logbf
-logbl
-logf
-logl
-lrint
-lrintf
-lrintl
-lround
-lroundf
-lroundl
-modf
-modff
-modfl
-nan
-nanf
-nanl
-nearbyint
-nearbyintf
-nearbyintl
-nextafter
-nextafterf
-nextafterl
-nexttoward
-nexttowardf
-nexttowardl
-pow
-powf
-powl
-remainder
-remainderf
-remainderl
-remquo
-remquof
-remquol
-rint
-rintf
-rintl
-round
-roundf
-roundl
-scalb
-scalbf
-scalbln
-scalblnf
-scalblnl
-scalbn
-scalbnf
-scalbnl
-significand
-significandf
-significandl
-sin
-sincos
-sincosf
-sincosl
-sinf
-sinh
-sinhf
-sinhl
-sinl
-sqrt
-sqrtf
-sqrtl
-tan
-tanf
-tanh
-tanhf
-tanhl
-tanl
-tgamma
-tgammaf
-tgammal
-trunc
-truncf
-truncl
-y0
-y0f
-y1
-y1f
-yn
-ynf
diff --git a/ndk/platforms/android-20/arch-arm/symbols/libstdc++.so.functions.txt b/ndk/platforms/android-20/arch-arm/symbols/libstdc++.so.functions.txt
deleted file mode 100644
index 991ae87..0000000
--- a/ndk/platforms/android-20/arch-arm/symbols/libstdc++.so.functions.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-_ZN9type_infoC1ERKS_
-_ZN9type_infoC1Ev
-_ZN9type_infoC2ERKS_
-_ZN9type_infoC2Ev
-_ZN9type_infoD0Ev
-_ZN9type_infoD1Ev
-_ZN9type_infoD2Ev
-_ZNK9type_info4nameEv
-_ZNK9type_info6beforeERKS_
-_ZNK9type_infoeqERKS_
-_ZNK9type_infoneERKS_
-_ZdaPv
-_ZdaPvRKSt9nothrow_t
-_ZdlPv
-_ZdlPvRKSt9nothrow_t
-_Znam
-_ZnamRKSt9nothrow_t
-_Znwm
-_ZnwmRKSt9nothrow_t
-__cxa_guard_abort
-__cxa_guard_acquire
-__cxa_guard_release
-__cxa_pure_virtual
diff --git a/ndk/platforms/android-20/arch-arm/symbols/libstdc++.so.variables.txt b/ndk/platforms/android-20/arch-arm/symbols/libstdc++.so.variables.txt
deleted file mode 100644
index d5aab66..0000000
--- a/ndk/platforms/android-20/arch-arm/symbols/libstdc++.so.variables.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-_ZSt7nothrow
-_ZTV9type_info
diff --git a/ndk/platforms/android-20/arch-arm64/include/machine/fenv.h b/ndk/platforms/android-20/arch-arm64/include/machine/fenv.h
deleted file mode 100644
index 2efeee3..0000000
--- a/ndk/platforms/android-20/arch-arm64/include/machine/fenv.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/*-
- * Copyright (c) 2004-2005 David Schultz <das@FreeBSD.ORG>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/msun/arm/fenv.h,v 1.5 2005/03/16 19:03:45 das Exp $
- */
-
-/*
- * Rewritten for Android.
- *
- * The ARM FPSCR (Floating-point Status and Control Register) described here:
- * http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0344b/Chdfafia.html
- * has been split into the FPCR (Floating-point Control Register) and FPSR
- * (Floating-point Status Register) on the ARMv8. These are described briefly in
- * "Procedure Call Standard for the ARM 64-bit Architecture"
- * http://infocenter.arm.com/help/topic/com.arm.doc.ihi0055a/IHI0055A_aapcs64.pdf
- * section 5.1.2 SIMD and Floating-Point Registers
- */
-
-#ifndef _ARM64_FENV_H_
-#define _ARM64_FENV_H_
-
-#include <sys/types.h>
-
-__BEGIN_DECLS
-
-typedef __uint32_t fenv_t;
-typedef __uint32_t fexcept_t;
-
-/* Exception flags. */
-#define FE_INVALID    0x01
-#define FE_DIVBYZERO  0x02
-#define FE_OVERFLOW   0x04
-#define FE_UNDERFLOW  0x08
-#define FE_INEXACT    0x10
-#define FE_ALL_EXCEPT (FE_DIVBYZERO | FE_INEXACT | FE_INVALID | \
-                       FE_OVERFLOW | FE_UNDERFLOW)
-
-#define _FPSCR_ENABLE_SHIFT 8
-#define _FPSCR_ENABLE_MASK  (FE_ALL_EXCEPT << _FPSCR_ENABLE_SHIFT)
-
-/* Rounding modes. */
-#define FE_TONEAREST  0x0
-#define FE_UPWARD     0x1
-#define FE_DOWNWARD   0x2
-#define FE_TOWARDZERO 0x3
-
-#define _FPSCR_RMODE_SHIFT 22
-
-#define FPCR_IOE    (1 << 8)
-#define FPCR_DZE    (1 << 9)
-#define FPCR_OFE    (1 << 10)
-#define FPCR_UFE    (1 << 11)
-#define FPCR_IXE    (1 << 12)
-#define FPCR_IDE    (1 << 15)
-#define FPCR_LEN    (7 << 16)
-#define FPCR_STRIDE (3 << 20)
-#define FPCR_RMODE  (3 << 22)
-#define FPCR_FZ     (1 << 24)
-#define FPCR_DN     (1 << 25)
-#define FPCR_AHP    (1 << 26)
-#define FPCR_MASK   (FPCR_IOE | \
-                     FPCR_DZE | \
-                     FPCR_OFE | \
-                     FPCR_UFE | \
-                     FPCR_IXE | \
-                     FPCR_IDE | \
-                     FPCR_LEN | \
-                     FPCR_STRIDE | \
-                     FPCR_RMODE | \
-                     FPCR_FZ | \
-                     FPCR_DN | \
-                     FPCR_AHP )
-
-#define FPSR_IOC    (1 << 0)
-#define FPSR_DZC    (1 << 1)
-#define FPSR_OFC    (1 << 2)
-#define FPSR_UFC    (1 << 3)
-#define FPSR_IXC    (1 << 4)
-#define FPSR_IDC    (1 << 7)
-#define FPSR_QC     (1 << 27)
-#define FPSR_V      (1 << 28)
-#define FPSR_C      (1 << 29)
-#define FPSR_Z      (1 << 30)
-#define FPSR_N      (1 << 31)
-#define FPSR_MASK   (FPSR_IOC | \
-                     FPSR_DZC | \
-                     FPSR_OFC | \
-                     FPSR_UFC | \
-                     FPSR_IXC | \
-                     FPSR_IDC | \
-                     FPSR_QC | \
-                     FPSR_V | \
-                     FPSR_C | \
-                     FPSR_Z | \
-                     FPSR_N )
-
-__END_DECLS
-
-#endif /* !_ARM64_FENV_H_ */
diff --git a/ndk/platforms/android-20/arch-arm64/lib/libc.a b/ndk/platforms/android-20/arch-arm64/lib/libc.a
deleted file mode 100644
index ea9ec46..0000000
--- a/ndk/platforms/android-20/arch-arm64/lib/libc.a
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-20/arch-arm64/lib/libm.a b/ndk/platforms/android-20/arch-arm64/lib/libm.a
deleted file mode 100644
index 5e95ceb..0000000
--- a/ndk/platforms/android-20/arch-arm64/lib/libm.a
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-20/arch-arm64/lib/libstdc++.a b/ndk/platforms/android-20/arch-arm64/lib/libstdc++.a
deleted file mode 100644
index 25d4657..0000000
--- a/ndk/platforms/android-20/arch-arm64/lib/libstdc++.a
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-20/arch-arm64/lib/libz.a b/ndk/platforms/android-20/arch-arm64/lib/libz.a
deleted file mode 100644
index b41e0fb..0000000
--- a/ndk/platforms/android-20/arch-arm64/lib/libz.a
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-20/arch-arm64/symbols/libc.so.functions.txt b/ndk/platforms/android-20/arch-arm64/symbols/libc.so.functions.txt
deleted file mode 100644
index b6b8c9f..0000000
--- a/ndk/platforms/android-20/arch-arm64/symbols/libc.so.functions.txt
+++ /dev/null
@@ -1,1167 +0,0 @@
-MD5_Final
-MD5_Init
-MD5_Update
-SHA1Final
-SHA1Init
-SHA1Transform
-SHA1Update
-_Exit
-_Unwind_Backtrace
-_Unwind_DeleteException
-_Unwind_FindEnclosingFunction
-_Unwind_Find_FDE
-_Unwind_ForcedUnwind
-_Unwind_GetCFA
-_Unwind_GetDataRelBase
-_Unwind_GetGR
-_Unwind_GetIP
-_Unwind_GetIPInfo
-_Unwind_GetLanguageSpecificData
-_Unwind_GetRegionStart
-_Unwind_GetTextRelBase
-_Unwind_RaiseException
-_Unwind_Resume
-_Unwind_Resume_or_Rethrow
-_Unwind_SetGR
-_Unwind_SetIP
-__FD_CLR_chk
-__FD_ISSET_chk
-__FD_SET_chk
-__android_set_abort_message
-__arc4_getbyte
-__assert
-__assert2
-__b64_ntop
-__b64_pton
-__bionic_name_mem
-__cxa_atexit
-__cxa_finalize
-__deregister_frame
-__deregister_frame_info
-__deregister_frame_info_bases
-__dn_comp
-__dn_count_labels
-__dn_skipname
-__dorand48
-__errno
-__evAddTime
-__evCmpTime
-__evConsIovec
-__evConsTime
-__evNowTime
-__evSubTime
-__evTimeSpec
-__evTimeVal
-__evUTCTime
-__fgets_chk
-__fgetwc_unlock
-__findenv
-__fp_nquery
-__fp_query
-__fpclassify
-__fpclassifyd
-__fpclassifyf
-__fpclassifyl
-__fputwc_unlock
-__frame_state_for
-__futex_syscall3
-__futex_syscall4
-__futex_wait
-__futex_wait_ex
-__futex_wake
-__futex_wake_ex
-__get_h_errno
-__get_sp
-__hostalias
-__isfinite
-__isfinitef
-__isfinitel
-__isinf
-__isinff
-__isinfl
-__isnan
-__isnanf
-__isnanl
-__isnormal
-__isnormalf
-__isnormall
-__libc_current_sigrtmax
-__libc_current_sigrtmin
-__libc_fini
-__libc_init
-__loc_aton
-__loc_ntoa
-__memcmp16
-__memcpy_chk
-__memmove_chk
-__memset_chk
-__multf3
-__ns_format_ttl
-__ns_get16
-__ns_get32
-__ns_initparse
-__ns_makecanon
-__ns_msg_getflag
-__ns_name_compress
-__ns_name_eq
-__ns_name_labels
-__ns_name_length
-__ns_name_map
-__ns_name_ntol
-__ns_name_ntop
-__ns_name_owned
-__ns_name_pack
-__ns_name_pton
-__ns_name_pton2
-__ns_name_rollback
-__ns_name_skip
-__ns_name_uncompress
-__ns_name_unpack
-__ns_name_unpack2
-__ns_parserr
-__ns_parserr2
-__ns_put16
-__ns_put32
-__ns_samename
-__ns_skiprr
-__ns_sprintrr
-__ns_sprintrrf
-__open_2
-__openat_2
-__p_cdname
-__p_cdnname
-__p_class
-__p_fqname
-__p_fqnname
-__p_option
-__p_query
-__p_rcode
-__p_secstodate
-__p_section
-__p_sockun
-__p_time
-__p_type
-__popcountdi2
-__pthread_cleanup_pop
-__pthread_cleanup_push
-__pthread_gettid
-__putlong
-__putshort
-__read_chk
-__recvfrom_chk
-__register_frame
-__register_frame_info
-__register_frame_info_bases
-__register_frame_info_table
-__register_frame_info_table_bases
-__register_frame_table
-__res_close
-__res_dnok
-__res_get_nibblesuffix
-__res_get_nibblesuffix2
-__res_get_state
-__res_get_static
-__res_getservers
-__res_hnok
-__res_hostalias
-__res_isourserver
-__res_mailok
-__res_nameinquery
-__res_nametoclass
-__res_nametotype
-__res_nclose
-__res_ndestroy
-__res_ninit
-__res_nmkquery
-__res_nopt
-__res_nquery
-__res_nquerydomain
-__res_nsearch
-__res_nsend
-__res_opt
-__res_ownok
-__res_pquery
-__res_put_state
-__res_queriesmatch
-__res_querydomain
-__res_randomid
-__res_send
-__res_send_setqhook
-__res_send_setrhook
-__res_setservers
-__res_vinit
-__sched_cpualloc
-__sched_cpucount
-__sched_cpufree
-__sclose
-__set_tls
-__sflags
-__sflush
-__sflush_locked
-__sfp
-__sfp_handle_exceptions
-__sfvwrite
-__sinit
-__smakebuf
-__snprintf_chk
-__sprintf_chk
-__sread
-__srefill
-__srget
-__sseek
-__stack_chk_fail
-__stpcpy_chk
-__stpncpy_chk
-__stpncpy_chk2
-__strcat_chk
-__strchr_chk
-__strcpy_chk
-__strlcat_chk
-__strlcpy_chk
-__strlen_chk
-__strncat_chk
-__strncpy_chk
-__strncpy_chk2
-__strrchr_chk
-__svfscanf
-__swbuf
-__swhatbuf
-__swrite
-__swsetup
-__sym_ntop
-__sym_ntos
-__sym_ston
-__system_properties_init
-__system_property_add
-__system_property_area_init
-__system_property_find
-__system_property_find_compat
-__system_property_find_nth
-__system_property_foreach
-__system_property_foreach_compat
-__system_property_get
-__system_property_read
-__system_property_read_compat
-__system_property_serial
-__system_property_set
-__system_property_set_filename
-__system_property_update
-__system_property_wait_any
-__umask_chk
-__ungetwc
-__vfprintf
-__vfwprintf
-__vfwscanf
-__vsnprintf_chk
-__vsprintf_chk
-_cleanup
-_exit
-_exit_with_stack_teardown
-_fwalk
-_getlong
-_getshort
-_longjmp
-_resolv_flush_cache_for_net
-_resolv_set_nameservers_for_net
-_setjmp
-_thread_created_hook
-_tolower
-_toupper
-abort
-abs
-accept
-accept4
-access
-acct
-alarm
-alphasort
-alphasort64
-android_getaddrinfofornet
-android_gethostbyaddrfornet
-android_gethostbyaddrfornet_proxy
-android_gethostbyaddrfornet_real
-android_gethostbynamefornet
-android_getnameinfofornet
-arc4random
-arc4random_addrandom
-arc4random_buf
-arc4random_stir
-arc4random_uniform
-asctime
-asctime_r
-asprintf
-at_quick_exit
-atof
-atoi
-atol
-atoll
-basename
-basename_r
-bcopy
-bind
-bindresvport
-brk
-bsd_signal
-bsearch
-btowc
-bzero
-calloc
-capget
-capset
-cfgetispeed
-cfgetospeed
-cfmakeraw
-cfsetispeed
-cfsetospeed
-cfsetspeed
-chdir
-chmod
-chown
-chroot
-clearenv
-clearerr
-clock
-clock_getres
-clock_gettime
-clock_nanosleep
-clock_settime
-clone
-close
-closedir
-closelog
-closelog_r
-cmsg_nxthdr
-connect
-creat
-creat64
-ctime
-ctime_r
-daemon
-delete_module
-difftime
-dirfd
-dirname
-dirname_r
-div
-dlbulk_free
-dlcalloc
-dlfree
-dlindependent_calloc
-dlindependent_comalloc
-dlmallinfo
-dlmalloc
-dlmalloc_footprint
-dlmalloc_footprint_limit
-dlmalloc_inspect_all
-dlmalloc_max_footprint
-dlmalloc_set_footprint_limit
-dlmalloc_stats
-dlmalloc_trim
-dlmalloc_usable_size
-dlmallopt
-dlmemalign
-dlposix_memalign
-dlpvalloc
-dlrealloc
-dlrealloc_in_place
-dlvalloc
-dn_expand
-drand48
-dup
-dup2
-dup3
-duplocale
-endmntent
-endpwent
-endservent
-endusershell
-endutent
-epoll_create
-epoll_create1
-epoll_ctl
-epoll_pwait
-epoll_wait
-erand48
-err
-errx
-ether_aton
-ether_aton_r
-ether_ntoa
-ether_ntoa_r
-eventfd
-eventfd_read
-eventfd_write
-execl
-execle
-execlp
-execv
-execve
-execvp
-execvpe
-exit
-faccessat
-fallocate
-fallocate64
-fchdir
-fchmod
-fchmodat
-fchown
-fchownat
-fclose
-fcntl
-fdatasync
-fdopen
-fdopendir
-fdprintf
-feof
-ferror
-fflush
-ffs
-fgetc
-fgetln
-fgetpos
-fgets
-fgetwc
-fgetws
-fgetxattr
-fileno
-flistxattr
-flock
-flockfile
-fnmatch
-fopen
-fork
-fpathconf
-fprintf
-fpurge
-fputc
-fputs
-fputwc
-fputws
-fread
-free
-freeaddrinfo
-freelocale
-fremovexattr
-freopen
-fscanf
-fseek
-fseeko
-fsetpos
-fsetxattr
-fstat
-fstat64
-fstatat
-fstatat64
-fstatfs
-fstatfs64
-fstatvfs
-fstatvfs64
-fsync
-ftell
-ftello
-ftime
-ftok
-ftruncate
-ftruncate64
-ftrylockfile
-fts_children
-fts_close
-fts_open
-fts_read
-fts_set
-ftw
-ftw64
-funlockfile
-funopen
-futex
-futimens
-fwide
-fwprintf
-fwrite
-fwscanf
-gai_strerror
-get_malloc_leak_info
-getaddrinfo
-getauxval
-getc
-getc_unlocked
-getchar
-getchar_unlocked
-getcwd
-getdelim
-getdents
-getdtablesize
-getegid
-getenv
-geteuid
-getgid
-getgrgid
-getgrnam
-getgrouplist
-getgroups
-gethostbyaddr
-gethostbyname
-gethostbyname2
-gethostbyname_r
-gethostent
-gethostname
-getitimer
-getline
-getlogin
-getmntent
-getmntent_r
-getnameinfo
-getnetbyaddr
-getnetbyname
-getopt
-getopt_long
-getopt_long_only
-getpagesize
-getpeername
-getpgid
-getpgrp
-getpid
-getppid
-getpriority
-getprogname
-getprotobyname
-getprotobynumber
-getpt
-getpwnam
-getpwnam_r
-getpwuid
-getpwuid_r
-getresgid
-getresuid
-getrlimit
-getrlimit64
-getrusage
-gets
-getservbyname
-getservbyport
-getservent
-getservent_r
-getsid
-getsockname
-getsockopt
-gettid
-gettimeofday
-getuid
-getusershell
-getutent
-getwc
-getwchar
-getxattr
-gmtime
-gmtime_r
-herror
-hstrerror
-htonl
-htons
-if_indextoname
-if_nametoindex
-imaxabs
-imaxdiv
-index
-inet_addr
-inet_aton
-inet_lnaof
-inet_makeaddr
-inet_netof
-inet_network
-inet_nsap_addr
-inet_nsap_ntoa
-inet_ntoa
-inet_ntop
-inet_pton
-init_module
-initgroups
-inotify_add_watch
-inotify_init
-inotify_init1
-inotify_rm_watch
-ioctl
-ioprio_get
-ioprio_set
-isalnum
-isalpha
-isascii
-isatty
-isblank
-iscntrl
-isdigit
-isfinite
-isfinitef
-isfinitel
-isgraph
-isinf
-isinff
-isinfl
-islower
-isnan
-isnanf
-isnanl
-isnormal
-isnormalf
-isnormall
-isprint
-ispunct
-issetugid
-isspace
-isupper
-iswalnum
-iswalpha
-iswblank
-iswcntrl
-iswctype
-iswdigit
-iswgraph
-iswlower
-iswprint
-iswpunct
-iswspace
-iswupper
-iswxdigit
-isxdigit
-jrand48
-kill
-killpg
-klogctl
-labs
-lchown
-ldexp
-ldiv
-lfind
-lgetxattr
-link
-linkat
-listen
-listxattr
-llabs
-lldiv
-llistxattr
-localeconv
-localtime
-localtime_r
-localtime_tz
-longjmp
-longjmperror
-lrand48
-lremovexattr
-lsearch
-lseek
-lseek64
-lsetxattr
-lstat
-lstat64
-madvise
-mallinfo
-malloc
-malloc_usable_size
-mbrlen
-mbrtowc
-mbsinit
-mbsnrtowcs
-mbsrtowcs
-mbstowcs
-mbtowc
-memalign
-memccpy
-memchr
-memcmp
-memcpy
-memmem
-memmove
-memrchr
-memset
-mincore
-mkdir
-mkdirat
-mkdtemp
-mkfifo
-mknod
-mknodat
-mkstemp
-mkstemp64
-mkstemps
-mktemp
-mktime
-mktime_tz
-mlock
-mlockall
-mmap
-mmap64
-mount
-mprotect
-mrand48
-mremap
-msync
-munlock
-munlockall
-munmap
-nanosleep
-newlocale
-nftw
-nftw64
-nice
-nrand48
-nsdispatch
-ntohl
-ntohs
-open
-open64
-openat
-openat64
-opendir
-openlog
-openlog_r
-pathconf
-pause
-pclose
-perf_event_open
-perror
-personality
-pipe
-pipe2
-poll
-popen
-posix2time
-posix_fallocate
-posix_fallocate64
-posix_memalign
-ppoll
-prctl
-pread
-pread64
-printf
-prlimit
-prlimit64
-pselect
-psiginfo
-psignal
-pthread_atfork
-pthread_attr_destroy
-pthread_attr_getdetachstate
-pthread_attr_getguardsize
-pthread_attr_getschedparam
-pthread_attr_getschedpolicy
-pthread_attr_getscope
-pthread_attr_getstack
-pthread_attr_getstacksize
-pthread_attr_init
-pthread_attr_setdetachstate
-pthread_attr_setguardsize
-pthread_attr_setschedparam
-pthread_attr_setschedpolicy
-pthread_attr_setscope
-pthread_attr_setstack
-pthread_attr_setstacksize
-pthread_cond_broadcast
-pthread_cond_destroy
-pthread_cond_init
-pthread_cond_signal
-pthread_cond_timedwait
-pthread_cond_wait
-pthread_condattr_destroy
-pthread_condattr_getclock
-pthread_condattr_getpshared
-pthread_condattr_init
-pthread_condattr_setclock
-pthread_condattr_setpshared
-pthread_create
-pthread_detach
-pthread_equal
-pthread_exit
-pthread_getattr_np
-pthread_getcpuclockid
-pthread_getschedparam
-pthread_getspecific
-pthread_join
-pthread_key_create
-pthread_key_delete
-pthread_kill
-pthread_mutex_destroy
-pthread_mutex_init
-pthread_mutex_lock
-pthread_mutex_timedlock
-pthread_mutex_trylock
-pthread_mutex_unlock
-pthread_mutexattr_destroy
-pthread_mutexattr_getpshared
-pthread_mutexattr_gettype
-pthread_mutexattr_init
-pthread_mutexattr_setpshared
-pthread_mutexattr_settype
-pthread_once
-pthread_rwlock_destroy
-pthread_rwlock_init
-pthread_rwlock_rdlock
-pthread_rwlock_timedrdlock
-pthread_rwlock_timedwrlock
-pthread_rwlock_tryrdlock
-pthread_rwlock_trywrlock
-pthread_rwlock_unlock
-pthread_rwlock_wrlock
-pthread_rwlockattr_destroy
-pthread_rwlockattr_getpshared
-pthread_rwlockattr_init
-pthread_rwlockattr_setpshared
-pthread_self
-pthread_setname_np
-pthread_setschedparam
-pthread_setspecific
-pthread_sigmask
-ptrace
-ptsname
-ptsname_r
-putc
-putc_unlocked
-putchar
-putchar_unlocked
-putenv
-puts
-pututline
-putw
-putwc
-putwchar
-pvalloc
-pwrite
-pwrite64
-qsort
-quick_exit
-raise
-read
-readahead
-readdir
-readdir64
-readdir64_r
-readdir_r
-readlink
-readlinkat
-readv
-realloc
-realpath
-reboot
-recv
-recvfrom
-recvmmsg
-recvmsg
-regcomp
-regerror
-regexec
-regfree
-remove
-removexattr
-rename
-renameat
-res_init
-res_mkquery
-res_query
-res_search
-res_setmark
-res_setnetid
-rewind
-rewinddir
-rmdir
-sbrk
-scandir
-scandir64
-scanf
-sched_get_priority_max
-sched_get_priority_min
-sched_getaffinity
-sched_getcpu
-sched_getparam
-sched_getscheduler
-sched_rr_get_interval
-sched_setaffinity
-sched_setparam
-sched_setscheduler
-sched_yield
-seed48
-select
-sem_close
-sem_destroy
-sem_getvalue
-sem_init
-sem_open
-sem_post
-sem_timedwait
-sem_trywait
-sem_unlink
-sem_wait
-send
-sendfile
-sendfile64
-sendmmsg
-sendmsg
-sendto
-setbuf
-setbuffer
-setegid
-setenv
-seteuid
-setgid
-setgroups
-setitimer
-setjmp
-setlinebuf
-setlocale
-setlogmask
-setlogmask_r
-setmntent
-setns
-setpgid
-setpgrp
-setpriority
-setprogname
-setregid
-setresgid
-setresuid
-setreuid
-setrlimit
-setrlimit64
-setservent
-setsid
-setsockopt
-settimeofday
-setuid
-setusershell
-setutent
-setvbuf
-setxattr
-shutdown
-sigaction
-sigaddset
-sigaltstack
-sigblock
-sigdelset
-sigemptyset
-sigfillset
-siginterrupt
-sigismember
-siglongjmp
-signal
-signalfd
-signalfd4
-sigpending
-sigprocmask
-sigsetjmp
-sigsetmask
-sigsuspend
-sigwait
-sleep
-snprintf
-socket
-socketpair
-sprintf
-srand48
-sscanf
-stat
-stat64
-statfs
-statfs64
-statvfs
-statvfs64
-stpcpy
-stpncpy
-strcasecmp
-strcasestr
-strcat
-strchr
-strcmp
-strcoll
-strcpy
-strcspn
-strdup
-strerror
-strerror_r
-strftime
-strftime_tz
-strlcat
-strlcpy
-strlen
-strncasecmp
-strncat
-strncmp
-strncpy
-strndup
-strnlen
-strpbrk
-strptime
-strrchr
-strsep
-strsignal
-strspn
-strstr
-strtod
-strtof
-strtoimax
-strtok
-strtok_r
-strtol
-strtold
-strtoll
-strtoq
-strtoul
-strtoull
-strtoumax
-strtouq
-strxfrm
-swapoff
-swapon
-swprintf
-swscanf
-symlink
-symlinkat
-sync
-syscall
-sysconf
-sysinfo
-syslog
-syslog_r
-system
-sysv_signal
-tcdrain
-tcflow
-tcflush
-tcgetattr
-tcgetpgrp
-tcgetsid
-tcsendbreak
-tcsetattr
-tcsetpgrp
-tdelete
-tdestroy
-tempnam
-tfind
-tgkill
-time
-time2posix
-timegm
-timelocal
-timer_create
-timer_delete
-timer_getoverrun
-timer_gettime
-timer_settime
-timerfd_create
-timerfd_gettime
-timerfd_settime
-times
-tkill
-tmpfile
-tmpnam
-toascii
-tolower
-toupper
-towlower
-towupper
-truncate
-truncate64
-tsearch
-ttyname
-ttyname_r
-tzset
-tzsetwall
-umask
-umount
-umount2
-uname
-ungetc
-ungetwc
-unlink
-unlinkat
-unlockpt
-unsetenv
-unshare
-uselocale
-usleep
-utime
-utimensat
-utimes
-utmpname
-valloc
-vasprintf
-verr
-verrx
-vfdprintf
-vfork
-vfprintf
-vfscanf
-vfwprintf
-vfwscanf
-vprintf
-vscanf
-vsnprintf
-vsprintf
-vsscanf
-vswprintf
-vswscanf
-vsyslog
-vsyslog_r
-vwarn
-vwarnx
-vwprintf
-vwscanf
-wait
-wait3
-wait4
-waitid
-waitpid
-warn
-warnx
-wcpcpy
-wcpncpy
-wcrtomb
-wcscasecmp
-wcscat
-wcschr
-wcscmp
-wcscoll
-wcscpy
-wcscspn
-wcsdup
-wcsftime
-wcslcat
-wcslcpy
-wcslen
-wcsncasecmp
-wcsncat
-wcsncmp
-wcsncpy
-wcsnlen
-wcsnrtombs
-wcspbrk
-wcsrchr
-wcsrtombs
-wcsspn
-wcsstr
-wcstod
-wcstof
-wcstoimax
-wcstok
-wcstol
-wcstold
-wcstoll
-wcstombs
-wcstoul
-wcstoull
-wcstoumax
-wcswcs
-wcswidth
-wcsxfrm
-wctob
-wctomb
-wctype
-wcwidth
-wmemchr
-wmemcmp
-wmemcpy
-wmemmove
-wmemset
-wprintf
-write
-writev
-wscanf
diff --git a/ndk/platforms/android-20/arch-arm64/symbols/libc.so.variables.txt b/ndk/platforms/android-20/arch-arm64/symbols/libc.so.variables.txt
deleted file mode 100644
index fc7f9d8..0000000
--- a/ndk/platforms/android-20/arch-arm64/symbols/libc.so.variables.txt
+++ /dev/null
@@ -1,45 +0,0 @@
-_C_ctype_
-_C_tolower_
-_C_toupper_
-__atexit
-__atexit_invalid
-__isthreaded
-__libc_malloc_default_dispatch
-__libc_malloc_dispatch
-__netdClientDispatch
-__p_cert_syms
-__p_class_syms
-__p_key_syms
-__p_rcode_syms
-__p_type_syms
-__popcount_tab
-__progname
-__rand48_add
-__rand48_mult
-__rand48_seed
-__sF
-__sdidinit
-__sglue
-__stack_chk_guard
-__system_property_area__
-_ctype_
-_ns_flagdata
-_tolower_tab_
-_toupper_tab_
-daylight
-environ
-g_allocations_mutex
-g_hash_table
-g_malloc_debug_backlog
-g_malloc_debug_level
-h_errlist
-h_nerr
-optarg
-opterr
-optind
-optopt
-optreset
-sys_siglist
-sys_signame
-timezone
-tzname
diff --git a/ndk/platforms/android-20/arch-arm64/symbols/libm.so.functions.txt b/ndk/platforms/android-20/arch-arm64/symbols/libm.so.functions.txt
deleted file mode 100644
index 5e61a3d..0000000
--- a/ndk/platforms/android-20/arch-arm64/symbols/libm.so.functions.txt
+++ /dev/null
@@ -1,288 +0,0 @@
-__addtf3
-__divtf3
-__eqtf2
-__exp__D
-__extenddftf2
-__extendsftf2
-__fixtfdi
-__fixtfsi
-__floatsitf
-__getf2
-__gttf2
-__ieee754_rem_pio2
-__ieee754_rem_pio2f
-__kernel_cos
-__kernel_cosdf
-__kernel_cosl
-__kernel_rem_pio2
-__kernel_sin
-__kernel_sindf
-__kernel_sinl
-__kernel_tan
-__kernel_tandf
-__kernel_tanl
-__ldexp_cexp
-__ldexp_cexpf
-__ldexp_exp
-__ldexp_expf
-__letf2
-__log__D
-__lttf2
-__netf2
-__signbit
-__signbitf
-__signbitl
-__subtf3
-__trunctfdf2
-__trunctfsf2
-_scan_nan
-acos
-acosf
-acosh
-acoshf
-acoshl
-acosl
-asin
-asinf
-asinh
-asinhf
-asinhl
-asinl
-atan
-atan2
-atan2f
-atan2l
-atanf
-atanh
-atanhf
-atanhl
-atanl
-cabs
-cabsf
-carg
-cargf
-cbrt
-cbrtf
-cbrtl
-ccos
-ccosf
-ccosh
-ccoshf
-ceil
-ceilf
-ceill
-cexp
-cexpf
-cimag
-cimagf
-conj
-conjf
-copysign
-copysignf
-copysignl
-cos
-cosf
-cosh
-coshf
-coshl
-cosl
-cproj
-cprojf
-creal
-crealf
-csin
-csinf
-csinh
-csinhf
-csqrt
-csqrtf
-ctan
-ctanf
-ctanh
-ctanhf
-drem
-dremf
-erf
-erfc
-erfcf
-erfcl
-erff
-erfl
-exp
-exp2
-exp2f
-exp2l
-expf
-expl
-expm1
-expm1f
-expm1l
-fabs
-fabsf
-fabsl
-fdim
-fdimf
-fdiml
-feclearexcept
-fedisableexcept
-feenableexcept
-fegetenv
-fegetexcept
-fegetexceptflag
-fegetround
-feholdexcept
-feraiseexcept
-fesetenv
-fesetexceptflag
-fesetround
-fetestexcept
-feupdateenv
-finite
-finitef
-floor
-floorf
-floorl
-fma
-fmaf
-fmal
-fmax
-fmaxf
-fmaxl
-fmin
-fminf
-fminl
-fmod
-fmodf
-fmodl
-frexp
-frexpf
-frexpl
-gamma
-gamma_r
-gammaf
-gammaf_r
-hypot
-hypotf
-hypotl
-ilogb
-ilogbf
-ilogbl
-imprecise_coshl
-imprecise_erfcl
-imprecise_erfl
-imprecise_lgammal
-imprecise_powl
-imprecise_sinhl
-imprecise_tanhl
-imprecise_tgammal
-j0
-j0f
-j1
-j1f
-jn
-jnf
-ldexpf
-ldexpl
-lgamma
-lgamma_r
-lgammaf
-lgammaf_r
-lgammal
-llrint
-llrintf
-llrintl
-llround
-llroundf
-llroundl
-log
-log10
-log10f
-log10l
-log1p
-log1pf
-log1pl
-log2
-log2f
-log2l
-logb
-logbf
-logbl
-logf
-logl
-lrint
-lrintf
-lrintl
-lround
-lroundf
-lroundl
-modf
-modff
-modfl
-nan
-nanf
-nanl
-nearbyint
-nearbyintf
-nearbyintl
-nextafter
-nextafterf
-nextafterl
-nexttoward
-nexttowardf
-nexttowardl
-pow
-powf
-powl
-remainder
-remainderf
-remainderl
-remquo
-remquof
-remquol
-rint
-rintf
-rintl
-round
-roundf
-roundl
-scalb
-scalbf
-scalbln
-scalblnf
-scalblnl
-scalbn
-scalbnf
-scalbnl
-significand
-significandf
-significandl
-sin
-sincos
-sincosf
-sincosl
-sinf
-sinh
-sinhf
-sinhl
-sinl
-sqrt
-sqrtf
-sqrtl
-tan
-tanf
-tanh
-tanhf
-tanhl
-tanl
-tgamma
-tgammaf
-tgammal
-trunc
-truncf
-truncl
-y0
-y0f
-y1
-y1f
-yn
-ynf
diff --git a/ndk/platforms/android-20/arch-arm64/symbols/libm.so.variables.txt b/ndk/platforms/android-20/arch-arm64/symbols/libm.so.variables.txt
deleted file mode 100644
index 9d7f213..0000000
--- a/ndk/platforms/android-20/arch-arm64/symbols/libm.so.variables.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-_ItL_aT
-_ItL_atanhi
-_ItL_atanlo
-_ItL_pS0
-_ItL_pS1
-_ItL_pS2
-_ItL_pS3
-_ItL_pS4
-_ItL_pS5
-_ItL_pS6
-_ItL_pS7
-_ItL_pS8
-_ItL_pS9
-_ItL_pi_lo
-_ItL_qS1
-_ItL_qS2
-_ItL_qS3
-_ItL_qS4
-_ItL_qS5
-_ItL_qS6
-_ItL_qS7
-_ItL_qS8
-_ItL_qS9
-__fe_dfl_env
-signgam
diff --git a/ndk/platforms/android-20/arch-arm64/symbols/libstdc++.so.functions.txt b/ndk/platforms/android-20/arch-arm64/symbols/libstdc++.so.functions.txt
deleted file mode 100644
index 991ae87..0000000
--- a/ndk/platforms/android-20/arch-arm64/symbols/libstdc++.so.functions.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-_ZN9type_infoC1ERKS_
-_ZN9type_infoC1Ev
-_ZN9type_infoC2ERKS_
-_ZN9type_infoC2Ev
-_ZN9type_infoD0Ev
-_ZN9type_infoD1Ev
-_ZN9type_infoD2Ev
-_ZNK9type_info4nameEv
-_ZNK9type_info6beforeERKS_
-_ZNK9type_infoeqERKS_
-_ZNK9type_infoneERKS_
-_ZdaPv
-_ZdaPvRKSt9nothrow_t
-_ZdlPv
-_ZdlPvRKSt9nothrow_t
-_Znam
-_ZnamRKSt9nothrow_t
-_Znwm
-_ZnwmRKSt9nothrow_t
-__cxa_guard_abort
-__cxa_guard_acquire
-__cxa_guard_release
-__cxa_pure_virtual
diff --git a/ndk/platforms/android-20/arch-arm64/symbols/libstdc++.so.variables.txt b/ndk/platforms/android-20/arch-arm64/symbols/libstdc++.so.variables.txt
deleted file mode 100644
index d5aab66..0000000
--- a/ndk/platforms/android-20/arch-arm64/symbols/libstdc++.so.variables.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-_ZSt7nothrow
-_ZTV9type_info
diff --git a/ndk/platforms/android-20/arch-mips/include/machine/fenv.h b/ndk/platforms/android-20/arch-mips/include/machine/fenv.h
deleted file mode 100644
index 37f0f9c..0000000
--- a/ndk/platforms/android-20/arch-mips/include/machine/fenv.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/*-
- * Copyright (c) 2004-2005 David Schultz <das@FreeBSD.ORG>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/msun/arm/fenv.h,v 1.5 2005/03/16 19:03:45 das Exp $
- */
-
-/*
-   Rewritten for Android.
-*/
-
-/* MIPS FPU floating point control register bits.
- *
- * 31-25  -> floating point conditions code bits set by FP compare
- *           instructions
- * 24     -> flush denormalized results to zero instead of
- *           causing unimplemented operation exception.
- * 23     -> Condition bit
- * 22     -> In conjunction with FS detects denormalized
- *           operands and replaces them internally with 0.
- * 21     -> In conjunction with FS forces denormalized operands
- *           to the closest normalized value.
- * 20-18  -> reserved (read as 0, write with 0)
- * 17     -> cause bit for unimplemented operation
- * 16     -> cause bit for invalid exception
- * 15     -> cause bit for division by zero exception
- * 14     -> cause bit for overflow exception
- * 13     -> cause bit for underflow exception
- * 12     -> cause bit for inexact exception
- * 11     -> enable exception for invalid exception
- * 10     -> enable exception for division by zero exception
- *  9     -> enable exception for overflow exception
- *  8     -> enable exception for underflow exception
- *  7     -> enable exception for inexact exception
- *  6     -> flag invalid exception
- *  5     -> flag division by zero exception
- *  4     -> flag overflow exception
- *  3     -> flag underflow exception
- *  2     -> flag inexact exception
- *  1-0   -> rounding control
- *
- *
- * Rounding Control:
- * 00 - rounding to nearest (RN)
- * 01 - rounding toward zero (RZ)
- * 10 - rounding (up) toward plus infinity (RP)
- * 11 - rounding (down)toward minus infinity (RM)
- */
-
-#ifndef _MIPS_FENV_H_
-#define _MIPS_FENV_H_
-
-#include <sys/types.h>
-
-__BEGIN_DECLS
-
-typedef __uint32_t fenv_t;
-typedef __uint32_t fexcept_t;
-
-/* Exception flags */
-#define FE_INVALID    0x40
-#define FE_DIVBYZERO  0x20
-#define FE_OVERFLOW   0x10
-#define FE_UNDERFLOW  0x08
-#define FE_INEXACT    0x04
-#define FE_ALL_EXCEPT (FE_DIVBYZERO | FE_INEXACT | \
-                       FE_INVALID | FE_OVERFLOW | FE_UNDERFLOW)
-
-#define _FCSR_CAUSE_SHIFT 10
-#define _ENABLE_SHIFT     5
-#define _FCSR_ENABLE_MASK (FE_ALL_EXCEPT << _ENABLE_SHIFT)
-
-/* Rounding modes */
-#define FE_TONEAREST  0x0000
-#define FE_TOWARDZERO 0x0001
-#define FE_UPWARD     0x0002
-#define FE_DOWNWARD   0x0003
-
-#define _FCSR_RMODE_SHIFT 0
-#define _FCSR_RMASK       0x3
-
-__END_DECLS
-
-#endif /* !_MIPS_FENV_H_ */
diff --git a/ndk/platforms/android-20/arch-mips/lib/libc.a b/ndk/platforms/android-20/arch-mips/lib/libc.a
deleted file mode 100644
index 2ac27e8..0000000
--- a/ndk/platforms/android-20/arch-mips/lib/libc.a
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-20/arch-mips/lib/libm.a b/ndk/platforms/android-20/arch-mips/lib/libm.a
deleted file mode 100644
index d7b72eb..0000000
--- a/ndk/platforms/android-20/arch-mips/lib/libm.a
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-20/arch-mips/lib/libstdc++.a b/ndk/platforms/android-20/arch-mips/lib/libstdc++.a
deleted file mode 100644
index 30eba74..0000000
--- a/ndk/platforms/android-20/arch-mips/lib/libstdc++.a
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-20/arch-mips/lib/libz.a b/ndk/platforms/android-20/arch-mips/lib/libz.a
deleted file mode 100644
index 7ef7336..0000000
--- a/ndk/platforms/android-20/arch-mips/lib/libz.a
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-20/arch-mips/symbols/libc.so.functions.txt b/ndk/platforms/android-20/arch-mips/symbols/libc.so.functions.txt
deleted file mode 100644
index 84a081f..0000000
--- a/ndk/platforms/android-20/arch-mips/symbols/libc.so.functions.txt
+++ /dev/null
@@ -1,1232 +0,0 @@
-MD5_Final
-MD5_Init
-MD5_Update
-SHA1Final
-SHA1Init
-SHA1Transform
-SHA1Update
-_Exit
-_Unwind_Backtrace
-_Unwind_DeleteException
-_Unwind_FindEnclosingFunction
-_Unwind_Find_FDE
-_Unwind_ForcedUnwind
-_Unwind_GetCFA
-_Unwind_GetDataRelBase
-_Unwind_GetGR
-_Unwind_GetIP
-_Unwind_GetIPInfo
-_Unwind_GetLanguageSpecificData
-_Unwind_GetRegionStart
-_Unwind_GetTextRelBase
-_Unwind_RaiseException
-_Unwind_Resume
-_Unwind_Resume_or_Rethrow
-_Unwind_SetGR
-_Unwind_SetIP
-__FD_CLR_chk
-__FD_ISSET_chk
-__FD_SET_chk
-__accept
-__android_set_abort_message
-__arc4_getbyte
-__assert
-__assert2
-__b64_ntop
-__b64_pton
-__bionic_name_mem
-__brk
-__connect
-__cxa_atexit
-__cxa_finalize
-__deregister_frame
-__deregister_frame_info
-__deregister_frame_info_bases
-__divdi3
-__dn_comp
-__dn_count_labels
-__dn_skipname
-__dorand48
-__epoll_pwait
-__errno
-__evAddTime
-__evCmpTime
-__evConsIovec
-__evConsTime
-__evNowTime
-__evSubTime
-__evTimeSpec
-__evTimeVal
-__evUTCTime
-__exit
-__fcntl64
-__fgets_chk
-__fgetwc_unlock
-__findenv
-__fp_nquery
-__fp_query
-__fpclassify
-__fpclassifyd
-__fpclassifyf
-__fpclassifyl
-__fputwc_unlock
-__frame_state_for
-__fstatfs64
-__futex_syscall3
-__futex_syscall4
-__futex_wait
-__futex_wait_ex
-__futex_wake
-__futex_wake_ex
-__get_h_errno
-__get_sp
-__get_tls
-__getcpu
-__getcwd
-__getpriority
-__hostalias
-__ioctl
-__isfinite
-__isfinitef
-__isfinitel
-__isinf
-__isinff
-__isinfl
-__isnan
-__isnanf
-__isnanl
-__isnormal
-__isnormalf
-__isnormall
-__libc_current_sigrtmax
-__libc_current_sigrtmin
-__libc_fini
-__libc_init
-__llseek
-__loc_aton
-__loc_ntoa
-__memcmp16
-__memcpy_chk
-__memmove_chk
-__memset_chk
-__mmap2
-__moddi3
-__ns_format_ttl
-__ns_get16
-__ns_get32
-__ns_initparse
-__ns_makecanon
-__ns_msg_getflag
-__ns_name_compress
-__ns_name_eq
-__ns_name_labels
-__ns_name_length
-__ns_name_map
-__ns_name_ntol
-__ns_name_ntop
-__ns_name_owned
-__ns_name_pack
-__ns_name_pton
-__ns_name_pton2
-__ns_name_rollback
-__ns_name_skip
-__ns_name_uncompress
-__ns_name_unpack
-__ns_name_unpack2
-__ns_parserr
-__ns_parserr2
-__ns_put16
-__ns_put32
-__ns_samename
-__ns_skiprr
-__ns_sprintrr
-__ns_sprintrrf
-__open
-__open_2
-__openat
-__openat_2
-__p_cdname
-__p_cdnname
-__p_class
-__p_fqname
-__p_fqnname
-__p_option
-__p_query
-__p_rcode
-__p_secstodate
-__p_section
-__p_sockun
-__p_time
-__p_type
-__popcountsi2
-__ppoll
-__pselect6
-__pthread_cleanup_pop
-__pthread_cleanup_push
-__pthread_gettid
-__ptrace
-__putlong
-__putshort
-__read_chk
-__reboot
-__recvfrom_chk
-__register_frame
-__register_frame_info
-__register_frame_info_bases
-__register_frame_info_table
-__register_frame_info_table_bases
-__register_frame_table
-__res_close
-__res_dnok
-__res_get_nibblesuffix
-__res_get_nibblesuffix2
-__res_get_state
-__res_get_static
-__res_getservers
-__res_hnok
-__res_hostalias
-__res_isourserver
-__res_mailok
-__res_nameinquery
-__res_nametoclass
-__res_nametotype
-__res_nclose
-__res_ndestroy
-__res_ninit
-__res_nmkquery
-__res_nopt
-__res_nquery
-__res_nquerydomain
-__res_nsearch
-__res_nsend
-__res_opt
-__res_ownok
-__res_pquery
-__res_put_state
-__res_queriesmatch
-__res_querydomain
-__res_randomid
-__res_send
-__res_send_setqhook
-__res_send_setrhook
-__res_setservers
-__res_vinit
-__rt_sigaction
-__rt_sigpending
-__rt_sigprocmask
-__rt_sigsuspend
-__rt_sigtimedwait
-__sched_cpualloc
-__sched_cpucount
-__sched_cpufree
-__sched_getaffinity
-__sclose
-__set_errno
-__set_tid_address
-__set_tls
-__sflags
-__sflush
-__sflush_locked
-__sfp
-__sfvwrite
-__sigaction
-__sinit
-__smakebuf
-__snprintf_chk
-__sprintf_chk
-__sread
-__srefill
-__srget
-__sseek
-__stack_chk_fail
-__statfs64
-__stpcpy_chk
-__stpncpy_chk
-__stpncpy_chk2
-__strcat_chk
-__strchr_chk
-__strcpy_chk
-__strlcat_chk
-__strlcpy_chk
-__strlen_chk
-__strncat_chk
-__strncpy_chk
-__strncpy_chk2
-__strrchr_chk
-__svfscanf
-__swbuf
-__swhatbuf
-__swrite
-__swsetup
-__sym_ntop
-__sym_ntos
-__sym_ston
-__syslog
-__system_properties_init
-__system_property_add
-__system_property_area_init
-__system_property_find
-__system_property_find_compat
-__system_property_find_nth
-__system_property_foreach
-__system_property_foreach_compat
-__system_property_get
-__system_property_read
-__system_property_read_compat
-__system_property_serial
-__system_property_set
-__system_property_set_filename
-__system_property_update
-__system_property_wait_any
-__timer_create
-__timer_delete
-__timer_getoverrun
-__timer_gettime
-__timer_settime
-__udivdi3
-__umask_chk
-__umoddi3
-__ungetwc
-__vfprintf
-__vfwprintf
-__vfwscanf
-__vsnprintf_chk
-__vsprintf_chk
-__wait4
-__waitid
-_cleanup
-_exit
-_exit_with_stack_teardown
-_flush_cache
-_fwalk
-_getlong
-_getshort
-_longjmp
-_memset16
-_memset32
-_resolv_flush_cache_for_net
-_resolv_set_nameservers_for_net
-_setjmp
-_thread_created_hook
-_tolower
-_toupper
-abort
-abs
-accept
-accept4
-access
-acct
-alarm
-alphasort
-alphasort64
-android_getaddrinfofornet
-android_gethostbyaddrfornet
-android_gethostbyaddrfornet_proxy
-android_gethostbyaddrfornet_real
-android_gethostbynamefornet
-android_getnameinfofornet
-arc4random
-arc4random_addrandom
-arc4random_buf
-arc4random_stir
-arc4random_uniform
-asctime
-asctime64
-asctime64_r
-asctime_r
-asprintf
-at_quick_exit
-atof
-atoi
-atol
-atoll
-basename
-basename_r
-bcopy
-bind
-bindresvport
-brk
-bsd_signal
-bsearch
-btowc
-bzero
-cacheflush
-calloc
-capget
-capset
-cfgetispeed
-cfgetospeed
-cfmakeraw
-cfsetispeed
-cfsetospeed
-cfsetspeed
-chdir
-chmod
-chown
-chroot
-clearenv
-clearerr
-clock
-clock_getres
-clock_gettime
-clock_nanosleep
-clock_settime
-clone
-close
-closedir
-closelog
-closelog_r
-cmsg_nxthdr
-connect
-creat
-creat64
-ctime
-ctime64
-ctime64_r
-ctime_r
-daemon
-delete_module
-difftime
-dirfd
-dirname
-dirname_r
-div
-dlbulk_free
-dlcalloc
-dlfree
-dlindependent_calloc
-dlindependent_comalloc
-dlmallinfo
-dlmalloc
-dlmalloc_footprint
-dlmalloc_footprint_limit
-dlmalloc_inspect_all
-dlmalloc_max_footprint
-dlmalloc_set_footprint_limit
-dlmalloc_stats
-dlmalloc_trim
-dlmalloc_usable_size
-dlmallopt
-dlmemalign
-dlposix_memalign
-dlpvalloc
-dlrealloc
-dlrealloc_in_place
-dlvalloc
-dn_expand
-drand48
-dup
-dup2
-dup3
-duplocale
-endmntent
-endpwent
-endservent
-endusershell
-endutent
-epoll_create
-epoll_create1
-epoll_ctl
-epoll_pwait
-epoll_wait
-erand48
-err
-errx
-ether_aton
-ether_aton_r
-ether_ntoa
-ether_ntoa_r
-eventfd
-eventfd_read
-eventfd_write
-execl
-execle
-execlp
-execv
-execve
-execvp
-execvpe
-exit
-faccessat
-fallocate
-fallocate64
-fchdir
-fchmod
-fchmodat
-fchown
-fchownat
-fclose
-fcntl
-fdatasync
-fdopen
-fdopendir
-fdprintf
-feof
-ferror
-fflush
-ffs
-fgetc
-fgetln
-fgetpos
-fgets
-fgetwc
-fgetws
-fgetxattr
-fileno
-flistxattr
-flock
-flockfile
-fnmatch
-fopen
-fork
-fpathconf
-fprintf
-fpurge
-fputc
-fputs
-fputwc
-fputws
-fread
-free
-freeaddrinfo
-freelocale
-fremovexattr
-freopen
-fscanf
-fseek
-fseeko
-fsetpos
-fsetxattr
-fstat
-fstat64
-fstatat
-fstatat64
-fstatfs
-fstatfs64
-fstatvfs
-fstatvfs64
-fsync
-ftell
-ftello
-ftime
-ftok
-ftruncate
-ftruncate64
-ftrylockfile
-fts_children
-fts_close
-fts_open
-fts_read
-fts_set
-ftw
-ftw64
-funlockfile
-funopen
-futex
-futimens
-fwide
-fwprintf
-fwrite
-fwscanf
-gai_strerror
-get_malloc_leak_info
-getaddrinfo
-getauxval
-getc
-getc_unlocked
-getchar
-getchar_unlocked
-getcwd
-getdelim
-getdents
-getdtablesize
-getegid
-getenv
-geteuid
-getgid
-getgrgid
-getgrnam
-getgrouplist
-getgroups
-gethostbyaddr
-gethostbyname
-gethostbyname2
-gethostbyname_r
-gethostent
-gethostname
-getitimer
-getline
-getlogin
-getmntent
-getmntent_r
-getnameinfo
-getnetbyaddr
-getnetbyname
-getopt
-getopt_long
-getopt_long_only
-getpagesize
-getpeername
-getpgid
-getpgrp
-getpid
-getppid
-getpriority
-getprogname
-getprotobyname
-getprotobynumber
-getpt
-getpwnam
-getpwnam_r
-getpwuid
-getpwuid_r
-getresgid
-getresuid
-getrlimit
-getrlimit64
-getrusage
-gets
-getservbyname
-getservbyport
-getservent
-getservent_r
-getsid
-getsockname
-getsockopt
-gettid
-gettimeofday
-getuid
-getusershell
-getutent
-getwc
-getwchar
-getxattr
-gmtime
-gmtime64
-gmtime64_r
-gmtime_r
-herror
-hstrerror
-htonl
-htons
-if_indextoname
-if_nametoindex
-imaxabs
-imaxdiv
-index
-inet_addr
-inet_aton
-inet_lnaof
-inet_makeaddr
-inet_netof
-inet_network
-inet_nsap_addr
-inet_nsap_ntoa
-inet_ntoa
-inet_ntop
-inet_pton
-init_module
-initgroups
-inotify_add_watch
-inotify_init
-inotify_init1
-inotify_rm_watch
-ioctl
-ioprio_get
-ioprio_set
-isalnum
-isalpha
-isascii
-isatty
-isblank
-iscntrl
-isdigit
-isfinite
-isfinitef
-isfinitel
-isgraph
-isinf
-isinff
-isinfl
-islower
-isnan
-isnanf
-isnanl
-isnormal
-isnormalf
-isnormall
-isprint
-ispunct
-issetugid
-isspace
-isupper
-iswalnum
-iswalpha
-iswblank
-iswcntrl
-iswctype
-iswdigit
-iswgraph
-iswlower
-iswprint
-iswpunct
-iswspace
-iswupper
-iswxdigit
-isxdigit
-jrand48
-kill
-killpg
-klogctl
-labs
-lchown
-ldexp
-ldiv
-lfind
-lgetxattr
-link
-linkat
-listen
-listxattr
-llabs
-lldiv
-llistxattr
-localeconv
-localtime
-localtime64
-localtime64_r
-localtime_r
-localtime_tz
-longjmp
-longjmperror
-lrand48
-lremovexattr
-lsearch
-lseek
-lseek64
-lsetxattr
-lstat
-lstat64
-madvise
-mallinfo
-malloc
-malloc_usable_size
-mbrlen
-mbrtowc
-mbsinit
-mbsnrtowcs
-mbsrtowcs
-mbstowcs
-mbtowc
-memalign
-memccpy
-memchr
-memcmp
-memcpy
-memmem
-memmove
-memrchr
-memset
-memswap
-mincore
-mkdir
-mkdirat
-mkdtemp
-mkfifo
-mknod
-mknodat
-mkstemp
-mkstemp64
-mkstemps
-mktemp
-mktime
-mktime64
-mktime_tz
-mlock
-mlockall
-mmap
-mmap64
-mount
-mprotect
-mrand48
-mremap
-msync
-munlock
-munlockall
-munmap
-nanosleep
-newlocale
-nftw
-nftw64
-nice
-nrand48
-nsdispatch
-ntohl
-ntohs
-open
-open64
-openat
-openat64
-opendir
-openlog
-openlog_r
-pathconf
-pause
-pclose
-perf_event_open
-perror
-personality
-pipe
-pipe2
-poll
-popen
-posix2time
-posix_fallocate
-posix_fallocate64
-posix_memalign
-ppoll
-prctl
-pread
-pread64
-printf
-prlimit64
-pselect
-psiginfo
-psignal
-pthread_atfork
-pthread_attr_destroy
-pthread_attr_getdetachstate
-pthread_attr_getguardsize
-pthread_attr_getschedparam
-pthread_attr_getschedpolicy
-pthread_attr_getscope
-pthread_attr_getstack
-pthread_attr_getstackaddr
-pthread_attr_getstacksize
-pthread_attr_init
-pthread_attr_setdetachstate
-pthread_attr_setguardsize
-pthread_attr_setschedparam
-pthread_attr_setschedpolicy
-pthread_attr_setscope
-pthread_attr_setstack
-pthread_attr_setstackaddr
-pthread_attr_setstacksize
-pthread_cond_broadcast
-pthread_cond_destroy
-pthread_cond_init
-pthread_cond_signal
-pthread_cond_timedwait
-pthread_cond_timedwait_monotonic
-pthread_cond_timedwait_monotonic_np
-pthread_cond_timedwait_relative_np
-pthread_cond_timeout_np
-pthread_cond_wait
-pthread_condattr_destroy
-pthread_condattr_getclock
-pthread_condattr_getpshared
-pthread_condattr_init
-pthread_condattr_setclock
-pthread_condattr_setpshared
-pthread_create
-pthread_detach
-pthread_equal
-pthread_exit
-pthread_getattr_np
-pthread_getcpuclockid
-pthread_getschedparam
-pthread_getspecific
-pthread_join
-pthread_key_create
-pthread_key_delete
-pthread_kill
-pthread_mutex_destroy
-pthread_mutex_init
-pthread_mutex_lock
-pthread_mutex_lock_timeout_np
-pthread_mutex_timedlock
-pthread_mutex_trylock
-pthread_mutex_unlock
-pthread_mutexattr_destroy
-pthread_mutexattr_getpshared
-pthread_mutexattr_gettype
-pthread_mutexattr_init
-pthread_mutexattr_setpshared
-pthread_mutexattr_settype
-pthread_once
-pthread_rwlock_destroy
-pthread_rwlock_init
-pthread_rwlock_rdlock
-pthread_rwlock_timedrdlock
-pthread_rwlock_timedwrlock
-pthread_rwlock_tryrdlock
-pthread_rwlock_trywrlock
-pthread_rwlock_unlock
-pthread_rwlock_wrlock
-pthread_rwlockattr_destroy
-pthread_rwlockattr_getpshared
-pthread_rwlockattr_init
-pthread_rwlockattr_setpshared
-pthread_self
-pthread_setname_np
-pthread_setschedparam
-pthread_setspecific
-pthread_sigmask
-ptrace
-ptsname
-ptsname_r
-putc
-putc_unlocked
-putchar
-putchar_unlocked
-putenv
-puts
-pututline
-putw
-putwc
-putwchar
-pvalloc
-pwrite
-pwrite64
-qsort
-quick_exit
-raise
-read
-readahead
-readdir
-readdir64
-readdir64_r
-readdir_r
-readlink
-readlinkat
-readv
-realloc
-realpath
-reboot
-recv
-recvfrom
-recvmmsg
-recvmsg
-regcomp
-regerror
-regexec
-regfree
-remove
-removexattr
-rename
-renameat
-res_init
-res_mkquery
-res_query
-res_search
-res_setmark
-res_setnetid
-rewind
-rewinddir
-rmdir
-sbrk
-scandir
-scandir64
-scanf
-sched_get_priority_max
-sched_get_priority_min
-sched_getaffinity
-sched_getcpu
-sched_getparam
-sched_getscheduler
-sched_rr_get_interval
-sched_setaffinity
-sched_setparam
-sched_setscheduler
-sched_yield
-seed48
-select
-sem_close
-sem_destroy
-sem_getvalue
-sem_init
-sem_open
-sem_post
-sem_timedwait
-sem_trywait
-sem_unlink
-sem_wait
-send
-sendfile
-sendfile64
-sendmmsg
-sendmsg
-sendto
-setbuf
-setbuffer
-setegid
-setenv
-seteuid
-setgid
-setgroups
-setitimer
-setjmp
-setlinebuf
-setlocale
-setlogmask
-setlogmask_r
-setmntent
-setns
-setpgid
-setpgrp
-setpriority
-setprogname
-setregid
-setresgid
-setresuid
-setreuid
-setrlimit
-setrlimit64
-setservent
-setsid
-setsockopt
-settimeofday
-setuid
-setusershell
-setutent
-setvbuf
-setxattr
-shutdown
-sigaction
-sigaddset
-sigaltstack
-sigblock
-sigdelset
-sigemptyset
-sigfillset
-siginterrupt
-sigismember
-siglongjmp
-signal
-signalfd
-signalfd4
-sigpending
-sigprocmask
-sigsetjmp
-sigsetmask
-sigsuspend
-sigwait
-sleep
-snprintf
-socket
-socketpair
-sprintf
-srand48
-sscanf
-stat
-stat64
-statfs
-statfs64
-statvfs
-statvfs64
-stpcpy
-stpncpy
-strcasecmp
-strcasestr
-strcat
-strchr
-strcmp
-strcoll
-strcpy
-strcspn
-strdup
-strerror
-strerror_r
-strftime
-strftime_tz
-strlcat
-strlcpy
-strlen
-strncasecmp
-strncat
-strncmp
-strncpy
-strndup
-strnlen
-strntoimax
-strntoumax
-strpbrk
-strptime
-strrchr
-strsep
-strsignal
-strspn
-strstr
-strtod
-strtof
-strtoimax
-strtok
-strtok_r
-strtol
-strtold
-strtoll
-strtoq
-strtotimeval
-strtoul
-strtoull
-strtoumax
-strtouq
-strxfrm
-swapoff
-swapon
-swprintf
-swscanf
-symlink
-symlinkat
-sync
-syscall
-sysconf
-sysinfo
-syslog
-syslog_r
-system
-sysv_signal
-tcdrain
-tcflow
-tcflush
-tcgetattr
-tcgetpgrp
-tcgetsid
-tcsendbreak
-tcsetattr
-tcsetpgrp
-tdelete
-tdestroy
-tempnam
-tfind
-tgkill
-time
-time2posix
-timegm
-timegm64
-timelocal
-timelocal64
-timer_create
-timer_delete
-timer_getoverrun
-timer_gettime
-timer_settime
-timerfd_create
-timerfd_gettime
-timerfd_settime
-times
-tkill
-tmpfile
-tmpnam
-toascii
-tolower
-toupper
-towlower
-towupper
-truncate
-truncate64
-tsearch
-ttyname
-ttyname_r
-tzset
-tzsetwall
-umask
-umount
-umount2
-uname
-ungetc
-ungetwc
-unlink
-unlinkat
-unlockpt
-unsetenv
-unshare
-uselocale
-usleep
-utime
-utimensat
-utimes
-utmpname
-valloc
-vasprintf
-verr
-verrx
-vfdprintf
-vfork
-vfprintf
-vfscanf
-vfwprintf
-vfwscanf
-vprintf
-vscanf
-vsnprintf
-vsprintf
-vsscanf
-vswprintf
-vswscanf
-vsyslog
-vsyslog_r
-vwarn
-vwarnx
-vwprintf
-vwscanf
-wait
-wait3
-wait4
-waitid
-waitpid
-warn
-warnx
-wcpcpy
-wcpncpy
-wcrtomb
-wcscasecmp
-wcscat
-wcschr
-wcscmp
-wcscoll
-wcscpy
-wcscspn
-wcsdup
-wcsftime
-wcslcat
-wcslcpy
-wcslen
-wcsncasecmp
-wcsncat
-wcsncmp
-wcsncpy
-wcsnlen
-wcsnrtombs
-wcspbrk
-wcsrchr
-wcsrtombs
-wcsspn
-wcsstr
-wcstod
-wcstof
-wcstoimax
-wcstok
-wcstol
-wcstold
-wcstoll
-wcstombs
-wcstoul
-wcstoull
-wcstoumax
-wcswcs
-wcswidth
-wcsxfrm
-wctob
-wctomb
-wctype
-wcwidth
-wmemchr
-wmemcmp
-wmemcpy
-wmemmove
-wmemset
-wprintf
-write
-writev
-wscanf
diff --git a/ndk/platforms/android-20/arch-mips/symbols/libc.so.variables.txt b/ndk/platforms/android-20/arch-mips/symbols/libc.so.variables.txt
deleted file mode 100644
index 2d0130c..0000000
--- a/ndk/platforms/android-20/arch-mips/symbols/libc.so.variables.txt
+++ /dev/null
@@ -1,48 +0,0 @@
-_C_ctype_
-_C_tolower_
-_C_toupper_
-__atexit
-__atexit_invalid
-__bionic_brk
-__isthreaded
-__libc_malloc_default_dispatch
-__libc_malloc_dispatch
-__netdClientDispatch
-__p_cert_syms
-__p_class_syms
-__p_key_syms
-__p_rcode_syms
-__p_type_syms
-__page_shift
-__page_size
-__popcount_tab
-__progname
-__rand48_add
-__rand48_mult
-__rand48_seed
-__sF
-__sdidinit
-__sglue
-__stack_chk_guard
-__system_property_area__
-_ctype_
-_ns_flagdata
-_tolower_tab_
-_toupper_tab_
-daylight
-environ
-g_allocations_mutex
-g_hash_table
-g_malloc_debug_backlog
-g_malloc_debug_level
-h_errlist
-h_nerr
-optarg
-opterr
-optind
-optopt
-optreset
-sys_siglist
-sys_signame
-timezone
-tzname
diff --git a/ndk/platforms/android-20/arch-mips/symbols/libm.so.functions.txt b/ndk/platforms/android-20/arch-mips/symbols/libm.so.functions.txt
deleted file mode 100644
index e3559e5..0000000
--- a/ndk/platforms/android-20/arch-mips/symbols/libm.so.functions.txt
+++ /dev/null
@@ -1,276 +0,0 @@
-__exp__D
-__fixdfdi
-__fixsfdi
-__fixunsdfdi
-__fixunssfdi
-__ieee754_rem_pio2
-__ieee754_rem_pio2f
-__kernel_cos
-__kernel_cosdf
-__kernel_rem_pio2
-__kernel_sin
-__kernel_sindf
-__kernel_tan
-__kernel_tandf
-__ldexp_cexp
-__ldexp_cexpf
-__ldexp_exp
-__ldexp_expf
-__log__D
-__signbit
-__signbitf
-__signbitl
-_scan_nan
-acos
-acosf
-acosh
-acoshf
-acoshl
-acosl
-asin
-asinf
-asinh
-asinhf
-asinhl
-asinl
-atan
-atan2
-atan2f
-atan2l
-atanf
-atanh
-atanhf
-atanhl
-atanl
-cabs
-cabsf
-cabsl
-carg
-cargf
-cbrt
-cbrtf
-cbrtl
-ccos
-ccosf
-ccosh
-ccoshf
-ceil
-ceilf
-ceill
-cexp
-cexpf
-cimag
-cimagf
-conj
-conjf
-copysign
-copysignf
-copysignl
-cos
-cosf
-cosh
-coshf
-coshl
-cosl
-cproj
-cprojf
-cprojl
-creal
-crealf
-csin
-csinf
-csinh
-csinhf
-csqrt
-csqrtf
-csqrtl
-ctan
-ctanf
-ctanh
-ctanhf
-drem
-dremf
-erf
-erfc
-erfcf
-erfcl
-erff
-erfl
-exp
-exp2
-exp2f
-exp2l
-expf
-expl
-expm1
-expm1f
-expm1l
-fabs
-fabsf
-fabsl
-fdim
-fdimf
-fdiml
-feclearexcept
-fedisableexcept
-feenableexcept
-fegetenv
-fegetexcept
-fegetexceptflag
-fegetround
-feholdexcept
-feraiseexcept
-fesetenv
-fesetexceptflag
-fesetround
-fetestexcept
-feupdateenv
-finite
-finitef
-floor
-floorf
-floorl
-fma
-fmaf
-fmal
-fmax
-fmaxf
-fmaxl
-fmin
-fminf
-fminl
-fmod
-fmodf
-fmodl
-frexp
-frexpf
-frexpl
-gamma
-gamma_r
-gammaf
-gammaf_r
-hypot
-hypotf
-hypotl
-ilogb
-ilogbf
-ilogbl
-imprecise_coshl
-imprecise_erfcl
-imprecise_erfl
-imprecise_lgammal
-imprecise_powl
-imprecise_sinhl
-imprecise_tanhl
-imprecise_tgammal
-j0
-j0f
-j1
-j1f
-jn
-jnf
-ldexpf
-ldexpl
-lgamma
-lgamma_r
-lgammaf
-lgammaf_r
-lgammal
-llrint
-llrintf
-llrintl
-llround
-llroundf
-llroundl
-log
-log10
-log10f
-log10l
-log1p
-log1pf
-log1pl
-log2
-log2f
-log2l
-logb
-logbf
-logbl
-logf
-logl
-lrint
-lrintf
-lrintl
-lround
-lroundf
-lroundl
-modf
-modff
-modfl
-nan
-nanf
-nanl
-nearbyint
-nearbyintf
-nearbyintl
-nextafter
-nextafterf
-nextafterl
-nexttoward
-nexttowardf
-nexttowardl
-pow
-powf
-powl
-remainder
-remainderf
-remainderl
-remquo
-remquof
-remquol
-rint
-rintf
-rintl
-round
-roundf
-roundl
-scalb
-scalbf
-scalbln
-scalblnf
-scalblnl
-scalbn
-scalbnf
-scalbnl
-significand
-significandf
-significandl
-sin
-sincos
-sincosf
-sincosl
-sinf
-sinh
-sinhf
-sinhl
-sinl
-sqrt
-sqrtf
-sqrtl
-tan
-tanf
-tanh
-tanhf
-tanhl
-tanl
-tgamma
-tgammaf
-tgammal
-trunc
-truncf
-truncl
-y0
-y0f
-y1
-y1f
-yn
-ynf
diff --git a/ndk/platforms/android-20/arch-mips/symbols/libstdc++.so.functions.txt b/ndk/platforms/android-20/arch-mips/symbols/libstdc++.so.functions.txt
deleted file mode 100644
index 991ae87..0000000
--- a/ndk/platforms/android-20/arch-mips/symbols/libstdc++.so.functions.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-_ZN9type_infoC1ERKS_
-_ZN9type_infoC1Ev
-_ZN9type_infoC2ERKS_
-_ZN9type_infoC2Ev
-_ZN9type_infoD0Ev
-_ZN9type_infoD1Ev
-_ZN9type_infoD2Ev
-_ZNK9type_info4nameEv
-_ZNK9type_info6beforeERKS_
-_ZNK9type_infoeqERKS_
-_ZNK9type_infoneERKS_
-_ZdaPv
-_ZdaPvRKSt9nothrow_t
-_ZdlPv
-_ZdlPvRKSt9nothrow_t
-_Znam
-_ZnamRKSt9nothrow_t
-_Znwm
-_ZnwmRKSt9nothrow_t
-__cxa_guard_abort
-__cxa_guard_acquire
-__cxa_guard_release
-__cxa_pure_virtual
diff --git a/ndk/platforms/android-20/arch-mips/symbols/libstdc++.so.variables.txt b/ndk/platforms/android-20/arch-mips/symbols/libstdc++.so.variables.txt
deleted file mode 100644
index d5aab66..0000000
--- a/ndk/platforms/android-20/arch-mips/symbols/libstdc++.so.variables.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-_ZSt7nothrow
-_ZTV9type_info
diff --git a/ndk/platforms/android-20/arch-mips64/include/machine/fenv.h b/ndk/platforms/android-20/arch-mips64/include/machine/fenv.h
deleted file mode 100644
index 37f0f9c..0000000
--- a/ndk/platforms/android-20/arch-mips64/include/machine/fenv.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/*-
- * Copyright (c) 2004-2005 David Schultz <das@FreeBSD.ORG>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/msun/arm/fenv.h,v 1.5 2005/03/16 19:03:45 das Exp $
- */
-
-/*
-   Rewritten for Android.
-*/
-
-/* MIPS FPU floating point control register bits.
- *
- * 31-25  -> floating point conditions code bits set by FP compare
- *           instructions
- * 24     -> flush denormalized results to zero instead of
- *           causing unimplemented operation exception.
- * 23     -> Condition bit
- * 22     -> In conjunction with FS detects denormalized
- *           operands and replaces them internally with 0.
- * 21     -> In conjunction with FS forces denormalized operands
- *           to the closest normalized value.
- * 20-18  -> reserved (read as 0, write with 0)
- * 17     -> cause bit for unimplemented operation
- * 16     -> cause bit for invalid exception
- * 15     -> cause bit for division by zero exception
- * 14     -> cause bit for overflow exception
- * 13     -> cause bit for underflow exception
- * 12     -> cause bit for inexact exception
- * 11     -> enable exception for invalid exception
- * 10     -> enable exception for division by zero exception
- *  9     -> enable exception for overflow exception
- *  8     -> enable exception for underflow exception
- *  7     -> enable exception for inexact exception
- *  6     -> flag invalid exception
- *  5     -> flag division by zero exception
- *  4     -> flag overflow exception
- *  3     -> flag underflow exception
- *  2     -> flag inexact exception
- *  1-0   -> rounding control
- *
- *
- * Rounding Control:
- * 00 - rounding to nearest (RN)
- * 01 - rounding toward zero (RZ)
- * 10 - rounding (up) toward plus infinity (RP)
- * 11 - rounding (down)toward minus infinity (RM)
- */
-
-#ifndef _MIPS_FENV_H_
-#define _MIPS_FENV_H_
-
-#include <sys/types.h>
-
-__BEGIN_DECLS
-
-typedef __uint32_t fenv_t;
-typedef __uint32_t fexcept_t;
-
-/* Exception flags */
-#define FE_INVALID    0x40
-#define FE_DIVBYZERO  0x20
-#define FE_OVERFLOW   0x10
-#define FE_UNDERFLOW  0x08
-#define FE_INEXACT    0x04
-#define FE_ALL_EXCEPT (FE_DIVBYZERO | FE_INEXACT | \
-                       FE_INVALID | FE_OVERFLOW | FE_UNDERFLOW)
-
-#define _FCSR_CAUSE_SHIFT 10
-#define _ENABLE_SHIFT     5
-#define _FCSR_ENABLE_MASK (FE_ALL_EXCEPT << _ENABLE_SHIFT)
-
-/* Rounding modes */
-#define FE_TONEAREST  0x0000
-#define FE_TOWARDZERO 0x0001
-#define FE_UPWARD     0x0002
-#define FE_DOWNWARD   0x0003
-
-#define _FCSR_RMODE_SHIFT 0
-#define _FCSR_RMASK       0x3
-
-__END_DECLS
-
-#endif /* !_MIPS_FENV_H_ */
diff --git a/ndk/platforms/android-20/arch-mips64/lib-bootstrap/crtbegin_dynamic.o b/ndk/platforms/android-20/arch-mips64/lib-bootstrap/crtbegin_dynamic.o
deleted file mode 100644
index 50fae0e..0000000
--- a/ndk/platforms/android-20/arch-mips64/lib-bootstrap/crtbegin_dynamic.o
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-20/arch-mips64/lib-bootstrap/crtend_android.o b/ndk/platforms/android-20/arch-mips64/lib-bootstrap/crtend_android.o
deleted file mode 100644
index b0f2ebe..0000000
--- a/ndk/platforms/android-20/arch-mips64/lib-bootstrap/crtend_android.o
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-20/arch-mips64/lib-bootstrap/libc.so b/ndk/platforms/android-20/arch-mips64/lib-bootstrap/libc.so
deleted file mode 100755
index a84fc91..0000000
--- a/ndk/platforms/android-20/arch-mips64/lib-bootstrap/libc.so
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-20/arch-mips64/lib-bootstrap/libdl.so b/ndk/platforms/android-20/arch-mips64/lib-bootstrap/libdl.so
deleted file mode 100755
index b364515..0000000
--- a/ndk/platforms/android-20/arch-mips64/lib-bootstrap/libdl.so
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-20/arch-mips64/lib/libc.a b/ndk/platforms/android-20/arch-mips64/lib/libc.a
deleted file mode 100644
index afb02c8..0000000
--- a/ndk/platforms/android-20/arch-mips64/lib/libc.a
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-20/arch-mips64/lib/libm.a b/ndk/platforms/android-20/arch-mips64/lib/libm.a
deleted file mode 100644
index 81baa14..0000000
--- a/ndk/platforms/android-20/arch-mips64/lib/libm.a
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-20/arch-mips64/lib/libstdc++.a b/ndk/platforms/android-20/arch-mips64/lib/libstdc++.a
deleted file mode 100644
index 09f242e..0000000
--- a/ndk/platforms/android-20/arch-mips64/lib/libstdc++.a
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-20/arch-mips64/lib/libz.a b/ndk/platforms/android-20/arch-mips64/lib/libz.a
deleted file mode 100644
index 7da18ce..0000000
--- a/ndk/platforms/android-20/arch-mips64/lib/libz.a
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-20/arch-mips64/symbols/libc.so.functions.txt b/ndk/platforms/android-20/arch-mips64/symbols/libc.so.functions.txt
deleted file mode 100644
index 953f808..0000000
--- a/ndk/platforms/android-20/arch-mips64/symbols/libc.so.functions.txt
+++ /dev/null
@@ -1,1171 +0,0 @@
-MD5_Final
-MD5_Init
-MD5_Update
-SHA1Final
-SHA1Init
-SHA1Transform
-SHA1Update
-_Exit
-_Unwind_Backtrace
-_Unwind_DeleteException
-_Unwind_FindEnclosingFunction
-_Unwind_Find_FDE
-_Unwind_ForcedUnwind
-_Unwind_GetCFA
-_Unwind_GetDataRelBase
-_Unwind_GetGR
-_Unwind_GetIP
-_Unwind_GetIPInfo
-_Unwind_GetLanguageSpecificData
-_Unwind_GetRegionStart
-_Unwind_GetTextRelBase
-_Unwind_RaiseException
-_Unwind_Resume
-_Unwind_Resume_or_Rethrow
-_Unwind_SetGR
-_Unwind_SetIP
-__FD_CLR_chk
-__FD_ISSET_chk
-__FD_SET_chk
-__android_set_abort_message
-__arc4_getbyte
-__ashlti3
-__assert
-__assert2
-__atexit_register_cleanup
-__b64_ntop
-__b64_pton
-__bionic_name_mem
-__cxa_atexit
-__cxa_finalize
-__deregister_frame
-__deregister_frame_info
-__deregister_frame_info_bases
-__dn_comp
-__dn_count_labels
-__dn_skipname
-__dorand48
-__errno
-__evAddTime
-__evCmpTime
-__evConsIovec
-__evConsTime
-__evNowTime
-__evSubTime
-__evTimeSpec
-__evTimeVal
-__evUTCTime
-__fgets_chk
-__fgetwc_unlock
-__findenv
-__fp_nquery
-__fp_query
-__fpclassify
-__fpclassifyd
-__fpclassifyf
-__fpclassifyl
-__fputwc_unlock
-__frame_state_for
-__futex_syscall3
-__futex_syscall4
-__futex_wait
-__futex_wait_ex
-__futex_wake
-__futex_wake_ex
-__get_h_errno
-__get_sp
-__hostalias
-__isfinite
-__isfinitef
-__isfinitel
-__isinf
-__isinff
-__isinfl
-__isnan
-__isnanf
-__isnanl
-__isnormal
-__isnormalf
-__isnormall
-__libc_current_sigrtmax
-__libc_current_sigrtmin
-__libc_fini
-__libc_init
-__loc_aton
-__loc_ntoa
-__lshrti3
-__memcmp16
-__memcpy_chk
-__memmove_chk
-__memset_chk
-__multf3
-__ns_format_ttl
-__ns_get16
-__ns_get32
-__ns_initparse
-__ns_makecanon
-__ns_msg_getflag
-__ns_name_compress
-__ns_name_eq
-__ns_name_labels
-__ns_name_length
-__ns_name_map
-__ns_name_ntol
-__ns_name_ntop
-__ns_name_owned
-__ns_name_pack
-__ns_name_pton
-__ns_name_pton2
-__ns_name_rollback
-__ns_name_skip
-__ns_name_uncompress
-__ns_name_unpack
-__ns_name_unpack2
-__ns_parserr
-__ns_parserr2
-__ns_put16
-__ns_put32
-__ns_samename
-__ns_skiprr
-__ns_sprintrr
-__ns_sprintrrf
-__open_2
-__openat_2
-__p_cdname
-__p_cdnname
-__p_class
-__p_fqname
-__p_fqnname
-__p_option
-__p_query
-__p_rcode
-__p_secstodate
-__p_section
-__p_sockun
-__p_time
-__p_type
-__pack_t
-__popcountdi2
-__pthread_cleanup_pop
-__pthread_cleanup_push
-__pthread_gettid
-__putlong
-__putshort
-__read_chk
-__recvfrom_chk
-__register_frame
-__register_frame_info
-__register_frame_info_bases
-__register_frame_info_table
-__register_frame_info_table_bases
-__register_frame_table
-__res_close
-__res_dnok
-__res_get_nibblesuffix
-__res_get_nibblesuffix2
-__res_get_state
-__res_get_static
-__res_getservers
-__res_hnok
-__res_hostalias
-__res_isourserver
-__res_mailok
-__res_nameinquery
-__res_nametoclass
-__res_nametotype
-__res_nclose
-__res_ndestroy
-__res_ninit
-__res_nmkquery
-__res_nopt
-__res_nquery
-__res_nquerydomain
-__res_nsearch
-__res_nsend
-__res_opt
-__res_ownok
-__res_pquery
-__res_put_state
-__res_queriesmatch
-__res_querydomain
-__res_randomid
-__res_send
-__res_send_setqhook
-__res_send_setrhook
-__res_setservers
-__res_vinit
-__sched_cpualloc
-__sched_cpucount
-__sched_cpufree
-__sclose
-__sflags
-__sflush
-__sflush_locked
-__sfp
-__sfvwrite
-__sinit
-__smakebuf
-__snprintf_chk
-__sprintf_chk
-__sread
-__srefill
-__srget
-__sseek
-__stack_chk_fail
-__stpcpy_chk
-__stpncpy_chk
-__stpncpy_chk2
-__strcat_chk
-__strchr_chk
-__strcpy_chk
-__strlcat_chk
-__strlcpy_chk
-__strlen_chk
-__strncat_chk
-__strncpy_chk
-__strncpy_chk2
-__strrchr_chk
-__svfscanf
-__swbuf
-__swhatbuf
-__swrite
-__swsetup
-__sym_ntop
-__sym_ntos
-__sym_ston
-__system_properties_init
-__system_property_add
-__system_property_area_init
-__system_property_find
-__system_property_find_compat
-__system_property_find_nth
-__system_property_foreach
-__system_property_foreach_compat
-__system_property_get
-__system_property_read
-__system_property_read_compat
-__system_property_serial
-__system_property_set
-__system_property_set_filename
-__system_property_update
-__system_property_wait_any
-__umask_chk
-__ungetwc
-__unpack_t
-__vfprintf
-__vfwprintf
-__vfwscanf
-__vsnprintf_chk
-__vsprintf_chk
-_cleanup
-_exit
-_exit_with_stack_teardown
-_flush_cache
-_fwalk
-_getlong
-_getshort
-_longjmp
-_resolv_flush_cache_for_net
-_resolv_set_nameservers_for_net
-_setjmp
-_thread_created_hook
-_tolower
-_toupper
-abort
-abs
-accept
-accept4
-access
-acct
-alarm
-alphasort
-alphasort64
-android_getaddrinfofornet
-android_gethostbyaddrfornet
-android_gethostbyaddrfornet_proxy
-android_gethostbyaddrfornet_real
-android_gethostbynamefornet
-android_getnameinfofornet
-arc4random
-arc4random_addrandom
-arc4random_buf
-arc4random_stir
-arc4random_uniform
-asctime
-asctime_r
-asprintf
-at_quick_exit
-atof
-atoi
-atol
-atoll
-basename
-basename_r
-bcopy
-bind
-bindresvport
-brk
-bsd_signal
-bsearch
-btowc
-bzero
-calloc
-capget
-capset
-cfgetispeed
-cfgetospeed
-cfmakeraw
-cfsetispeed
-cfsetospeed
-cfsetspeed
-chdir
-chmod
-chown
-chroot
-clearenv
-clearerr
-clock
-clock_getres
-clock_gettime
-clock_nanosleep
-clock_settime
-clone
-close
-closedir
-closelog
-closelog_r
-cmsg_nxthdr
-connect
-creat
-creat64
-ctime
-ctime_r
-daemon
-delete_module
-difftime
-dirfd
-dirname
-dirname_r
-div
-dlbulk_free
-dlcalloc
-dlfree
-dlindependent_calloc
-dlindependent_comalloc
-dlmallinfo
-dlmalloc
-dlmalloc_footprint
-dlmalloc_footprint_limit
-dlmalloc_inspect_all
-dlmalloc_max_footprint
-dlmalloc_set_footprint_limit
-dlmalloc_stats
-dlmalloc_trim
-dlmalloc_usable_size
-dlmallopt
-dlmemalign
-dlposix_memalign
-dlpvalloc
-dlrealloc
-dlrealloc_in_place
-dlvalloc
-dn_expand
-drand48
-dup
-dup2
-dup3
-duplocale
-endmntent
-endpwent
-endservent
-endusershell
-endutent
-epoll_create
-epoll_create1
-epoll_ctl
-epoll_pwait
-epoll_wait
-erand48
-err
-errx
-ether_aton
-ether_aton_r
-ether_ntoa
-ether_ntoa_r
-eventfd
-eventfd_read
-eventfd_write
-execl
-execle
-execlp
-execv
-execve
-execvp
-execvpe
-exit
-faccessat
-fallocate
-fallocate64
-fchdir
-fchmod
-fchmodat
-fchown
-fchownat
-fclose
-fcntl
-fdatasync
-fdopen
-fdopendir
-fdprintf
-feof
-ferror
-fflush
-ffs
-fgetc
-fgetln
-fgetpos
-fgets
-fgetwc
-fgetws
-fgetxattr
-fileno
-flistxattr
-flock
-flockfile
-fnmatch
-fopen
-fork
-fpathconf
-fprintf
-fpurge
-fputc
-fputs
-fputwc
-fputws
-fread
-free
-freeaddrinfo
-freelocale
-fremovexattr
-freopen
-fscanf
-fseek
-fseeko
-fsetpos
-fsetxattr
-fstat
-fstat64
-fstatat
-fstatat64
-fstatfs
-fstatfs64
-fstatvfs
-fstatvfs64
-fsync
-ftell
-ftello
-ftime
-ftok
-ftruncate
-ftruncate64
-ftrylockfile
-fts_children
-fts_close
-fts_open
-fts_read
-fts_set
-ftw
-ftw64
-funlockfile
-funopen
-futex
-futimens
-fwide
-fwprintf
-fwrite
-fwscanf
-gai_strerror
-get_malloc_leak_info
-getaddrinfo
-getauxval
-getc
-getc_unlocked
-getchar
-getchar_unlocked
-getcwd
-getdelim
-getdents
-getdtablesize
-getegid
-getenv
-geteuid
-getgid
-getgrgid
-getgrnam
-getgrouplist
-getgroups
-gethostbyaddr
-gethostbyname
-gethostbyname2
-gethostbyname_r
-gethostent
-gethostname
-getitimer
-getline
-getlogin
-getmntent
-getmntent_r
-getnameinfo
-getnetbyaddr
-getnetbyname
-getopt
-getopt_long
-getopt_long_only
-getpagesize
-getpeername
-getpgid
-getpgrp
-getpid
-getppid
-getpriority
-getprogname
-getprotobyname
-getprotobynumber
-getpt
-getpwnam
-getpwnam_r
-getpwuid
-getpwuid_r
-getresgid
-getresuid
-getrlimit
-getrlimit64
-getrusage
-gets
-getservbyname
-getservbyport
-getservent
-getservent_r
-getsid
-getsockname
-getsockopt
-gettid
-gettimeofday
-getuid
-getusershell
-getutent
-getwc
-getwchar
-getxattr
-gmtime
-gmtime_r
-herror
-hstrerror
-htonl
-htons
-if_indextoname
-if_nametoindex
-imaxabs
-imaxdiv
-index
-inet_addr
-inet_aton
-inet_lnaof
-inet_makeaddr
-inet_netof
-inet_network
-inet_nsap_addr
-inet_nsap_ntoa
-inet_ntoa
-inet_ntop
-inet_pton
-init_module
-initgroups
-inotify_add_watch
-inotify_init
-inotify_init1
-inotify_rm_watch
-ioctl
-ioprio_get
-ioprio_set
-isalnum
-isalpha
-isascii
-isatty
-isblank
-iscntrl
-isdigit
-isfinite
-isfinitef
-isfinitel
-isgraph
-isinf
-isinff
-isinfl
-islower
-isnan
-isnanf
-isnanl
-isnormal
-isnormalf
-isnormall
-isprint
-ispunct
-issetugid
-isspace
-isupper
-iswalnum
-iswalpha
-iswblank
-iswcntrl
-iswctype
-iswdigit
-iswgraph
-iswlower
-iswprint
-iswpunct
-iswspace
-iswupper
-iswxdigit
-isxdigit
-jrand48
-kill
-killpg
-klogctl
-labs
-lchown
-ldexp
-ldiv
-lfind
-lgetxattr
-link
-linkat
-listen
-listxattr
-llabs
-lldiv
-llistxattr
-localeconv
-localtime
-localtime_r
-localtime_tz
-longjmp
-longjmperror
-lrand48
-lremovexattr
-lsearch
-lseek
-lseek64
-lsetxattr
-lstat
-lstat64
-madvise
-mallinfo
-malloc
-malloc_usable_size
-mbrlen
-mbrtowc
-mbsinit
-mbsnrtowcs
-mbsrtowcs
-mbstowcs
-mbtowc
-memalign
-memccpy
-memchr
-memcmp
-memcpy
-memmem
-memmove
-memrchr
-memset
-mincore
-mkdir
-mkdirat
-mkdtemp
-mkfifo
-mknod
-mknodat
-mkstemp
-mkstemp64
-mkstemps
-mktemp
-mktime
-mktime_tz
-mlock
-mlockall
-mmap
-mmap64
-mount
-mprotect
-mrand48
-mremap
-msync
-munlock
-munlockall
-munmap
-nanosleep
-newlocale
-nftw
-nftw64
-nice
-nrand48
-nsdispatch
-ntohl
-ntohs
-open
-open64
-openat
-openat64
-opendir
-openlog
-openlog_r
-pathconf
-pause
-pclose
-perf_event_open
-perror
-personality
-pipe
-pipe2
-poll
-popen
-posix2time
-posix_fallocate
-posix_fallocate64
-posix_memalign
-ppoll
-prctl
-pread
-pread64
-printf
-prlimit
-prlimit64
-pselect
-psiginfo
-psignal
-pthread_atfork
-pthread_attr_destroy
-pthread_attr_getdetachstate
-pthread_attr_getguardsize
-pthread_attr_getschedparam
-pthread_attr_getschedpolicy
-pthread_attr_getscope
-pthread_attr_getstack
-pthread_attr_getstacksize
-pthread_attr_init
-pthread_attr_setdetachstate
-pthread_attr_setguardsize
-pthread_attr_setschedparam
-pthread_attr_setschedpolicy
-pthread_attr_setscope
-pthread_attr_setstack
-pthread_attr_setstacksize
-pthread_cond_broadcast
-pthread_cond_destroy
-pthread_cond_init
-pthread_cond_signal
-pthread_cond_timedwait
-pthread_cond_wait
-pthread_condattr_destroy
-pthread_condattr_getclock
-pthread_condattr_getpshared
-pthread_condattr_init
-pthread_condattr_setclock
-pthread_condattr_setpshared
-pthread_create
-pthread_detach
-pthread_equal
-pthread_exit
-pthread_getattr_np
-pthread_getcpuclockid
-pthread_getschedparam
-pthread_getspecific
-pthread_join
-pthread_key_create
-pthread_key_delete
-pthread_kill
-pthread_mutex_destroy
-pthread_mutex_init
-pthread_mutex_lock
-pthread_mutex_timedlock
-pthread_mutex_trylock
-pthread_mutex_unlock
-pthread_mutexattr_destroy
-pthread_mutexattr_getpshared
-pthread_mutexattr_gettype
-pthread_mutexattr_init
-pthread_mutexattr_setpshared
-pthread_mutexattr_settype
-pthread_once
-pthread_rwlock_destroy
-pthread_rwlock_init
-pthread_rwlock_rdlock
-pthread_rwlock_timedrdlock
-pthread_rwlock_timedwrlock
-pthread_rwlock_tryrdlock
-pthread_rwlock_trywrlock
-pthread_rwlock_unlock
-pthread_rwlock_wrlock
-pthread_rwlockattr_destroy
-pthread_rwlockattr_getpshared
-pthread_rwlockattr_init
-pthread_rwlockattr_setpshared
-pthread_self
-pthread_setname_np
-pthread_setschedparam
-pthread_setspecific
-pthread_sigmask
-ptrace
-ptsname
-ptsname_r
-putc
-putc_unlocked
-putchar
-putchar_unlocked
-putenv
-puts
-pututline
-putw
-putwc
-putwchar
-pvalloc
-pwrite
-pwrite64
-qsort
-quick_exit
-raise
-read
-readahead
-readdir
-readdir64
-readdir64_r
-readdir_r
-readlink
-readlinkat
-readv
-realloc
-realpath
-reboot
-recv
-recvfrom
-recvmmsg
-recvmsg
-regcomp
-regerror
-regexec
-regfree
-remove
-removexattr
-rename
-renameat
-res_init
-res_mkquery
-res_query
-res_search
-res_setmark
-res_setnetid
-rewind
-rewinddir
-rmdir
-sbrk
-scandir
-scandir64
-scanf
-sched_get_priority_max
-sched_get_priority_min
-sched_getaffinity
-sched_getcpu
-sched_getparam
-sched_getscheduler
-sched_rr_get_interval
-sched_setaffinity
-sched_setparam
-sched_setscheduler
-sched_yield
-seed48
-select
-sem_close
-sem_destroy
-sem_getvalue
-sem_init
-sem_open
-sem_post
-sem_timedwait
-sem_trywait
-sem_unlink
-sem_wait
-send
-sendfile
-sendfile64
-sendmmsg
-sendmsg
-sendto
-setbuf
-setbuffer
-setegid
-setenv
-seteuid
-setgid
-setgroups
-setitimer
-setjmp
-setlinebuf
-setlocale
-setlogmask
-setlogmask_r
-setmntent
-setns
-setpgid
-setpgrp
-setpriority
-setprogname
-setregid
-setresgid
-setresuid
-setreuid
-setrlimit
-setrlimit64
-setservent
-setsid
-setsockopt
-settimeofday
-setuid
-setusershell
-setutent
-setvbuf
-setxattr
-shutdown
-sigaction
-sigaddset
-sigaltstack
-sigblock
-sigdelset
-sigemptyset
-sigfillset
-siginterrupt
-sigismember
-siglongjmp
-signal
-signalfd
-signalfd4
-sigpending
-sigprocmask
-sigsetjmp
-sigsetmask
-sigsuspend
-sigwait
-sleep
-snprintf
-socket
-socketpair
-sprintf
-srand48
-sscanf
-stat
-stat64
-statfs
-statfs64
-statvfs
-statvfs64
-stpcpy
-stpncpy
-strcasecmp
-strcasestr
-strcat
-strchr
-strcmp
-strcoll
-strcpy
-strcspn
-strdup
-strerror
-strerror_r
-strftime
-strftime_tz
-strlcat
-strlcpy
-strlen
-strncasecmp
-strncat
-strncmp
-strncpy
-strndup
-strnlen
-strpbrk
-strptime
-strrchr
-strsep
-strsignal
-strspn
-strstr
-strtod
-strtof
-strtoimax
-strtok
-strtok_r
-strtol
-strtold
-strtoll
-strtoq
-strtoul
-strtoull
-strtoumax
-strtouq
-strxfrm
-swapoff
-swapon
-swprintf
-swscanf
-symlink
-symlinkat
-sync
-syscall
-sysconf
-sysinfo
-syslog
-syslog_r
-system
-sysv_signal
-tcdrain
-tcflow
-tcflush
-tcgetattr
-tcgetpgrp
-tcgetsid
-tcsendbreak
-tcsetattr
-tcsetpgrp
-tdelete
-tdestroy
-tempnam
-tfind
-tgkill
-time
-time2posix
-timegm
-timelocal
-timer_create
-timer_delete
-timer_getoverrun
-timer_gettime
-timer_settime
-timerfd_create
-timerfd_gettime
-timerfd_settime
-times
-tkill
-tmpfile
-tmpnam
-toascii
-tolower
-toupper
-towlower
-towupper
-truncate
-truncate64
-tsearch
-ttyname
-ttyname_r
-tzset
-tzsetwall
-umask
-umount
-umount2
-uname
-ungetc
-ungetwc
-unlink
-unlinkat
-unlockpt
-unsetenv
-unshare
-uselocale
-usleep
-utime
-utimensat
-utimes
-utmpname
-valloc
-vasprintf
-verr
-verrx
-vfdprintf
-vfork
-vfprintf
-vfscanf
-vfwprintf
-vfwscanf
-vprintf
-vscanf
-vsnprintf
-vsprintf
-vsscanf
-vswprintf
-vswscanf
-vsyslog
-vsyslog_r
-vwarn
-vwarnx
-vwprintf
-vwscanf
-wait
-wait3
-wait4
-waitid
-waitpid
-warn
-warnx
-wcpcpy
-wcpncpy
-wcrtomb
-wcscasecmp
-wcscat
-wcschr
-wcscmp
-wcscoll
-wcscpy
-wcscspn
-wcsdup
-wcsftime
-wcslcat
-wcslcpy
-wcslen
-wcsncasecmp
-wcsncat
-wcsncmp
-wcsncpy
-wcsnlen
-wcsnrtombs
-wcspbrk
-wcsrchr
-wcsrtombs
-wcsspn
-wcsstr
-wcstod
-wcstof
-wcstoimax
-wcstok
-wcstol
-wcstold
-wcstoll
-wcstombs
-wcstoul
-wcstoull
-wcstoumax
-wcswcs
-wcswidth
-wcsxfrm
-wctob
-wctomb
-wctype
-wcwidth
-wmemchr
-wmemcmp
-wmemcpy
-wmemmove
-wmemset
-wprintf
-write
-writev
-wscanf
diff --git a/ndk/platforms/android-20/arch-mips64/symbols/libc.so.variables.txt b/ndk/platforms/android-20/arch-mips64/symbols/libc.so.variables.txt
deleted file mode 100644
index e632995..0000000
--- a/ndk/platforms/android-20/arch-mips64/symbols/libc.so.variables.txt
+++ /dev/null
@@ -1,46 +0,0 @@
-_C_ctype_
-_C_tolower_
-_C_toupper_
-__atexit
-__atexit_invalid
-__isthreaded
-__libc_malloc_default_dispatch
-__libc_malloc_dispatch
-__netdClientDispatch
-__p_cert_syms
-__p_class_syms
-__p_key_syms
-__p_rcode_syms
-__p_type_syms
-__popcount_tab
-__progname
-__rand48_add
-__rand48_mult
-__rand48_seed
-__sF
-__sdidinit
-__sglue
-__stack_chk_guard
-__system_property_area__
-__thenan_tf
-_ctype_
-_ns_flagdata
-_tolower_tab_
-_toupper_tab_
-daylight
-environ
-g_allocations_mutex
-g_hash_table
-g_malloc_debug_backlog
-g_malloc_debug_level
-h_errlist
-h_nerr
-optarg
-opterr
-optind
-optopt
-optreset
-sys_siglist
-sys_signame
-timezone
-tzname
diff --git a/ndk/platforms/android-20/arch-mips64/symbols/libm.so.functions.txt b/ndk/platforms/android-20/arch-mips64/symbols/libm.so.functions.txt
deleted file mode 100644
index 89ff8a6..0000000
--- a/ndk/platforms/android-20/arch-mips64/symbols/libm.so.functions.txt
+++ /dev/null
@@ -1,305 +0,0 @@
-__addtf3
-__ashlti3
-__divtf3
-__eqtf2
-__exp__D
-__extenddftf2
-__extendsftf2
-__fixtfdi
-__fixtfsi
-__fixunstfdi
-__fixunstfsi
-__floatsitf
-__floatunditf
-__floatunsitf
-__fpcmp_parts_t
-__getf2
-__gttf2
-__ieee754_rem_pio2
-__ieee754_rem_pio2f
-__kernel_cos
-__kernel_cosdf
-__kernel_cosl
-__kernel_rem_pio2
-__kernel_sin
-__kernel_sindf
-__kernel_sinl
-__kernel_tan
-__kernel_tandf
-__kernel_tanl
-__ldexp_cexp
-__ldexp_cexpf
-__ldexp_exp
-__ldexp_expf
-__letf2
-__log__D
-__lshrti3
-__lttf2
-__make_dp
-__make_fp
-__make_tp
-__multf3
-__netf2
-__pack_d
-__pack_f
-__pack_t
-__signbit
-__signbitf
-__signbitl
-__subtf3
-__trunctfdf2
-__trunctfsf2
-__unpack_d
-__unpack_f
-__unpack_t
-_scan_nan
-acos
-acosf
-acosh
-acoshf
-acoshl
-acosl
-asin
-asinf
-asinh
-asinhf
-asinhl
-asinl
-atan
-atan2
-atan2f
-atan2l
-atanf
-atanh
-atanhf
-atanhl
-atanl
-cabs
-cabsf
-carg
-cargf
-cbrt
-cbrtf
-cbrtl
-ccos
-ccosf
-ccosh
-ccoshf
-ceil
-ceilf
-ceill
-cexp
-cexpf
-cimag
-cimagf
-conj
-conjf
-copysign
-copysignf
-copysignl
-cos
-cosf
-cosh
-coshf
-coshl
-cosl
-cproj
-cprojf
-creal
-crealf
-csin
-csinf
-csinh
-csinhf
-csqrt
-csqrtf
-ctan
-ctanf
-ctanh
-ctanhf
-drem
-dremf
-erf
-erfc
-erfcf
-erfcl
-erff
-erfl
-exp
-exp2
-exp2f
-exp2l
-expf
-expl
-expm1
-expm1f
-expm1l
-fabs
-fabsf
-fabsl
-fdim
-fdimf
-fdiml
-feclearexcept
-fedisableexcept
-feenableexcept
-fegetenv
-fegetexcept
-fegetexceptflag
-fegetround
-feholdexcept
-feraiseexcept
-fesetenv
-fesetexceptflag
-fesetround
-fetestexcept
-feupdateenv
-finite
-finitef
-floor
-floorf
-floorl
-fma
-fmaf
-fmal
-fmax
-fmaxf
-fmaxl
-fmin
-fminf
-fminl
-fmod
-fmodf
-fmodl
-frexp
-frexpf
-frexpl
-gamma
-gamma_r
-gammaf
-gammaf_r
-hypot
-hypotf
-hypotl
-ilogb
-ilogbf
-ilogbl
-imprecise_coshl
-imprecise_erfcl
-imprecise_erfl
-imprecise_lgammal
-imprecise_powl
-imprecise_sinhl
-imprecise_tanhl
-imprecise_tgammal
-j0
-j0f
-j1
-j1f
-jn
-jnf
-ldexpf
-ldexpl
-lgamma
-lgamma_r
-lgammaf
-lgammaf_r
-lgammal
-llrint
-llrintf
-llrintl
-llround
-llroundf
-llroundl
-log
-log10
-log10f
-log10l
-log1p
-log1pf
-log1pl
-log2
-log2f
-log2l
-logb
-logbf
-logbl
-logf
-logl
-lrint
-lrintf
-lrintl
-lround
-lroundf
-lroundl
-modf
-modff
-modfl
-nan
-nanf
-nanl
-nearbyint
-nearbyintf
-nearbyintl
-nextafter
-nextafterf
-nextafterl
-nexttoward
-nexttowardf
-nexttowardl
-pow
-powf
-powl
-remainder
-remainderf
-remainderl
-remquo
-remquof
-remquol
-rint
-rintf
-rintl
-round
-roundf
-roundl
-scalb
-scalbf
-scalbln
-scalblnf
-scalblnl
-scalbn
-scalbnf
-scalbnl
-significand
-significandf
-significandl
-sin
-sincos
-sincosf
-sincosl
-sinf
-sinh
-sinhf
-sinhl
-sinl
-sqrt
-sqrtf
-sqrtl
-tan
-tanf
-tanh
-tanhf
-tanhl
-tanl
-tgamma
-tgammaf
-tgammal
-trunc
-truncf
-truncl
-y0
-y0f
-y1
-y1f
-yn
-ynf
diff --git a/ndk/platforms/android-20/arch-mips64/symbols/libm.so.variables.txt b/ndk/platforms/android-20/arch-mips64/symbols/libm.so.variables.txt
deleted file mode 100644
index 870d16e..0000000
--- a/ndk/platforms/android-20/arch-mips64/symbols/libm.so.variables.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-_ItL_aT
-_ItL_atanhi
-_ItL_atanlo
-_ItL_pS0
-_ItL_pS1
-_ItL_pS2
-_ItL_pS3
-_ItL_pS4
-_ItL_pS5
-_ItL_pS6
-_ItL_pS7
-_ItL_pS8
-_ItL_pS9
-_ItL_pi_lo
-_ItL_qS1
-_ItL_qS2
-_ItL_qS3
-_ItL_qS4
-_ItL_qS5
-_ItL_qS6
-_ItL_qS7
-_ItL_qS8
-_ItL_qS9
-__fe_dfl_env
-__thenan_tf
-signgam
diff --git a/ndk/platforms/android-20/arch-mips64/symbols/libstdc++.so.functions.txt b/ndk/platforms/android-20/arch-mips64/symbols/libstdc++.so.functions.txt
deleted file mode 100644
index 991ae87..0000000
--- a/ndk/platforms/android-20/arch-mips64/symbols/libstdc++.so.functions.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-_ZN9type_infoC1ERKS_
-_ZN9type_infoC1Ev
-_ZN9type_infoC2ERKS_
-_ZN9type_infoC2Ev
-_ZN9type_infoD0Ev
-_ZN9type_infoD1Ev
-_ZN9type_infoD2Ev
-_ZNK9type_info4nameEv
-_ZNK9type_info6beforeERKS_
-_ZNK9type_infoeqERKS_
-_ZNK9type_infoneERKS_
-_ZdaPv
-_ZdaPvRKSt9nothrow_t
-_ZdlPv
-_ZdlPvRKSt9nothrow_t
-_Znam
-_ZnamRKSt9nothrow_t
-_Znwm
-_ZnwmRKSt9nothrow_t
-__cxa_guard_abort
-__cxa_guard_acquire
-__cxa_guard_release
-__cxa_pure_virtual
diff --git a/ndk/platforms/android-20/arch-mips64/symbols/libstdc++.so.variables.txt b/ndk/platforms/android-20/arch-mips64/symbols/libstdc++.so.variables.txt
deleted file mode 100644
index d5aab66..0000000
--- a/ndk/platforms/android-20/arch-mips64/symbols/libstdc++.so.variables.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-_ZSt7nothrow
-_ZTV9type_info
diff --git a/ndk/platforms/android-20/arch-x86/include/machine/fenv.h b/ndk/platforms/android-20/arch-x86/include/machine/fenv.h
deleted file mode 100644
index f3fabb6..0000000
--- a/ndk/platforms/android-20/arch-x86/include/machine/fenv.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*-
- * Copyright (c) 2004-2005 David Schultz <das@FreeBSD.ORG>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/msun/i387/fenv.h,v 1.4 2005/03/17 22:21:46 das Exp $
- */
-
-#ifndef _I387_FENV_H_
-#define _I387_FENV_H_
-
-#include <sys/types.h>
-
-__BEGIN_DECLS
-
-/*
- * To preserve binary compatibility with FreeBSD 5.3, we pack the
- * mxcsr into some reserved fields, rather than changing sizeof(fenv_t).
- */
-typedef struct {
-  __uint16_t __control;
-  __uint16_t __mxcsr_hi;
-  __uint16_t __status;
-  __uint16_t __mxcsr_lo;
-  __uint32_t __tag;
-  char       __other[16];
-} fenv_t;
-
-typedef __uint16_t fexcept_t;
-
-/* Exception flags */
-#define FE_INVALID    0x01
-#define FE_DENORMAL   0x02
-#define FE_DIVBYZERO  0x04
-#define FE_OVERFLOW   0x08
-#define FE_UNDERFLOW  0x10
-#define FE_INEXACT    0x20
-#define FE_ALL_EXCEPT (FE_DIVBYZERO | FE_DENORMAL | FE_INEXACT | \
-                       FE_INVALID | FE_OVERFLOW | FE_UNDERFLOW)
-
-/* Rounding modes */
-#define FE_TONEAREST  0x0000
-#define FE_DOWNWARD   0x0400
-#define FE_UPWARD     0x0800
-#define FE_TOWARDZERO 0x0c00
-#define _ROUND_MASK   (FE_TONEAREST | FE_DOWNWARD | \
-                       FE_UPWARD | FE_TOWARDZERO)
-
-__END_DECLS
-
-#endif /* !I387_FENV_H_ */
diff --git a/ndk/platforms/android-20/arch-x86/lib/libc.a b/ndk/platforms/android-20/arch-x86/lib/libc.a
deleted file mode 100644
index 414fa30..0000000
--- a/ndk/platforms/android-20/arch-x86/lib/libc.a
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-20/arch-x86/lib/libm.a b/ndk/platforms/android-20/arch-x86/lib/libm.a
deleted file mode 100644
index aa36ce4..0000000
--- a/ndk/platforms/android-20/arch-x86/lib/libm.a
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-20/arch-x86/lib/libstdc++.a b/ndk/platforms/android-20/arch-x86/lib/libstdc++.a
deleted file mode 100644
index bab8fa8..0000000
--- a/ndk/platforms/android-20/arch-x86/lib/libstdc++.a
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-20/arch-x86/lib/libz.a b/ndk/platforms/android-20/arch-x86/lib/libz.a
deleted file mode 100644
index c2c417e..0000000
--- a/ndk/platforms/android-20/arch-x86/lib/libz.a
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-20/arch-x86/symbols/libc.so.functions.txt b/ndk/platforms/android-20/arch-x86/symbols/libc.so.functions.txt
deleted file mode 100644
index 0f67218..0000000
--- a/ndk/platforms/android-20/arch-x86/symbols/libc.so.functions.txt
+++ /dev/null
@@ -1,1229 +0,0 @@
-MD5_Final
-MD5_Init
-MD5_Update
-SHA1Final
-SHA1Init
-SHA1Transform
-SHA1Update
-_Exit
-_Unwind_Backtrace
-_Unwind_DeleteException
-_Unwind_FindEnclosingFunction
-_Unwind_Find_FDE
-_Unwind_ForcedUnwind
-_Unwind_GetCFA
-_Unwind_GetDataRelBase
-_Unwind_GetGR
-_Unwind_GetIP
-_Unwind_GetIPInfo
-_Unwind_GetLanguageSpecificData
-_Unwind_GetRegionStart
-_Unwind_GetTextRelBase
-_Unwind_RaiseException
-_Unwind_Resume
-_Unwind_Resume_or_Rethrow
-_Unwind_SetGR
-_Unwind_SetIP
-__FD_CLR_chk
-__FD_ISSET_chk
-__FD_SET_chk
-__accept
-__android_set_abort_message
-__arc4_getbyte
-__assert
-__assert2
-__b64_ntop
-__b64_pton
-__bionic_name_mem
-__brk
-__connect
-__cxa_atexit
-__cxa_finalize
-__deregister_frame
-__deregister_frame_info
-__deregister_frame_info_bases
-__divdi3
-__dn_comp
-__dn_count_labels
-__dn_skipname
-__dorand48
-__epoll_pwait
-__errno
-__evAddTime
-__evCmpTime
-__evConsIovec
-__evConsTime
-__evNowTime
-__evSubTime
-__evTimeSpec
-__evTimeVal
-__evUTCTime
-__exit
-__fcntl64
-__fgets_chk
-__fgetwc_unlock
-__findenv
-__fp_nquery
-__fp_query
-__fpclassify
-__fpclassifyd
-__fpclassifyf
-__fpclassifyl
-__fputwc_unlock
-__frame_state_for
-__fstatfs64
-__futex_syscall3
-__futex_syscall4
-__futex_wait
-__futex_wait_ex
-__futex_wake
-__futex_wake_ex
-__get_h_errno
-__get_sp
-__get_tls
-__getcpu
-__getcwd
-__getpriority
-__hostalias
-__ioctl
-__isfinite
-__isfinitef
-__isfinitel
-__isinf
-__isinff
-__isinfl
-__isnan
-__isnanf
-__isnanl
-__isnormal
-__isnormalf
-__isnormall
-__libc_current_sigrtmax
-__libc_current_sigrtmin
-__libc_fini
-__libc_init
-__llseek
-__loc_aton
-__loc_ntoa
-__memcmp16
-__memcpy_chk
-__memmove_chk
-__memset_chk
-__mmap2
-__moddi3
-__ns_format_ttl
-__ns_get16
-__ns_get32
-__ns_initparse
-__ns_makecanon
-__ns_msg_getflag
-__ns_name_compress
-__ns_name_eq
-__ns_name_labels
-__ns_name_length
-__ns_name_map
-__ns_name_ntol
-__ns_name_ntop
-__ns_name_owned
-__ns_name_pack
-__ns_name_pton
-__ns_name_pton2
-__ns_name_rollback
-__ns_name_skip
-__ns_name_uncompress
-__ns_name_unpack
-__ns_name_unpack2
-__ns_parserr
-__ns_parserr2
-__ns_put16
-__ns_put32
-__ns_samename
-__ns_skiprr
-__ns_sprintrr
-__ns_sprintrrf
-__open
-__open_2
-__openat
-__openat_2
-__p_cdname
-__p_cdnname
-__p_class
-__p_fqname
-__p_fqnname
-__p_option
-__p_query
-__p_rcode
-__p_secstodate
-__p_section
-__p_sockun
-__p_time
-__p_type
-__popcountsi2
-__ppoll
-__pselect6
-__pthread_cleanup_pop
-__pthread_cleanup_push
-__pthread_gettid
-__ptrace
-__putlong
-__putshort
-__read_chk
-__reboot
-__recvfrom_chk
-__register_frame
-__register_frame_info
-__register_frame_info_bases
-__register_frame_info_table
-__register_frame_info_table_bases
-__register_frame_table
-__res_close
-__res_dnok
-__res_get_nibblesuffix
-__res_get_nibblesuffix2
-__res_get_state
-__res_get_static
-__res_getservers
-__res_hnok
-__res_hostalias
-__res_isourserver
-__res_mailok
-__res_nameinquery
-__res_nametoclass
-__res_nametotype
-__res_nclose
-__res_ndestroy
-__res_ninit
-__res_nmkquery
-__res_nopt
-__res_nquery
-__res_nquerydomain
-__res_nsearch
-__res_nsend
-__res_opt
-__res_ownok
-__res_pquery
-__res_put_state
-__res_queriesmatch
-__res_querydomain
-__res_randomid
-__res_send
-__res_send_setqhook
-__res_send_setrhook
-__res_setservers
-__res_vinit
-__rt_sigaction
-__rt_sigpending
-__rt_sigprocmask
-__rt_sigsuspend
-__rt_sigtimedwait
-__sched_cpualloc
-__sched_cpucount
-__sched_cpufree
-__sched_getaffinity
-__sclose
-__set_errno
-__set_thread_area
-__set_tid_address
-__set_tls
-__sflags
-__sflush
-__sflush_locked
-__sfp
-__sfvwrite
-__sigaction
-__sinit
-__smakebuf
-__snprintf_chk
-__sprintf_chk
-__sread
-__srefill
-__srget
-__sseek
-__stack_chk_fail
-__statfs64
-__stpcpy_chk
-__stpncpy_chk
-__stpncpy_chk2
-__strcat_chk
-__strchr_chk
-__strcpy_chk
-__strlcat_chk
-__strlcpy_chk
-__strlen_chk
-__strncat_chk
-__strncpy_chk
-__strncpy_chk2
-__strrchr_chk
-__svfscanf
-__swbuf
-__swhatbuf
-__swrite
-__swsetup
-__sym_ntop
-__sym_ntos
-__sym_ston
-__syslog
-__system_properties_init
-__system_property_add
-__system_property_area_init
-__system_property_find
-__system_property_find_compat
-__system_property_find_nth
-__system_property_foreach
-__system_property_foreach_compat
-__system_property_get
-__system_property_read
-__system_property_read_compat
-__system_property_serial
-__system_property_set
-__system_property_set_filename
-__system_property_update
-__system_property_wait_any
-__timer_create
-__timer_delete
-__timer_getoverrun
-__timer_gettime
-__timer_settime
-__udivdi3
-__umask_chk
-__umoddi3
-__ungetwc
-__vfprintf
-__vfwprintf
-__vfwscanf
-__vsnprintf_chk
-__vsprintf_chk
-__wait4
-__waitid
-_cleanup
-_exit
-_exit_with_stack_teardown
-_fwalk
-_getlong
-_getshort
-_longjmp
-_resolv_flush_cache_for_net
-_resolv_set_nameservers_for_net
-_setjmp
-_thread_created_hook
-_tolower
-_toupper
-abort
-abs
-accept
-accept4
-access
-acct
-alarm
-alphasort
-alphasort64
-android_getaddrinfofornet
-android_gethostbyaddrfornet
-android_gethostbyaddrfornet_proxy
-android_gethostbyaddrfornet_real
-android_gethostbynamefornet
-android_getnameinfofornet
-arc4random
-arc4random_addrandom
-arc4random_buf
-arc4random_stir
-arc4random_uniform
-asctime
-asctime64
-asctime64_r
-asctime_r
-asprintf
-at_quick_exit
-atof
-atoi
-atol
-atoll
-basename
-basename_r
-bcopy
-bind
-bindresvport
-brk
-bsd_signal
-bsearch
-btowc
-bzero
-calloc
-capget
-capset
-cfgetispeed
-cfgetospeed
-cfmakeraw
-cfsetispeed
-cfsetospeed
-cfsetspeed
-chdir
-chmod
-chown
-chroot
-clearenv
-clearerr
-clock
-clock_getres
-clock_gettime
-clock_nanosleep
-clock_settime
-clone
-close
-closedir
-closelog
-closelog_r
-cmsg_nxthdr
-connect
-creat
-creat64
-ctime
-ctime64
-ctime64_r
-ctime_r
-daemon
-delete_module
-difftime
-dirfd
-dirname
-dirname_r
-div
-dlbulk_free
-dlcalloc
-dlfree
-dlindependent_calloc
-dlindependent_comalloc
-dlmallinfo
-dlmalloc
-dlmalloc_footprint
-dlmalloc_footprint_limit
-dlmalloc_inspect_all
-dlmalloc_max_footprint
-dlmalloc_set_footprint_limit
-dlmalloc_stats
-dlmalloc_trim
-dlmalloc_usable_size
-dlmallopt
-dlmemalign
-dlposix_memalign
-dlpvalloc
-dlrealloc
-dlrealloc_in_place
-dlvalloc
-dn_expand
-drand48
-dup
-dup2
-dup3
-duplocale
-endmntent
-endpwent
-endservent
-endusershell
-endutent
-epoll_create
-epoll_create1
-epoll_ctl
-epoll_pwait
-epoll_wait
-erand48
-err
-errx
-ether_aton
-ether_aton_r
-ether_ntoa
-ether_ntoa_r
-eventfd
-eventfd_read
-eventfd_write
-execl
-execle
-execlp
-execv
-execve
-execvp
-execvpe
-exit
-faccessat
-fallocate
-fallocate64
-fchdir
-fchmod
-fchmodat
-fchown
-fchownat
-fclose
-fcntl
-fdatasync
-fdopen
-fdopendir
-fdprintf
-feof
-ferror
-fflush
-ffs
-fgetc
-fgetln
-fgetpos
-fgets
-fgetwc
-fgetws
-fgetxattr
-fileno
-flistxattr
-flock
-flockfile
-fnmatch
-fopen
-fork
-fpathconf
-fprintf
-fpurge
-fputc
-fputs
-fputwc
-fputws
-fread
-free
-freeaddrinfo
-freelocale
-fremovexattr
-freopen
-fscanf
-fseek
-fseeko
-fsetpos
-fsetxattr
-fstat
-fstat64
-fstatat
-fstatat64
-fstatfs
-fstatfs64
-fstatvfs
-fstatvfs64
-fsync
-ftell
-ftello
-ftime
-ftok
-ftruncate
-ftruncate64
-ftrylockfile
-fts_children
-fts_close
-fts_open
-fts_read
-fts_set
-ftw
-ftw64
-funlockfile
-funopen
-futex
-futimens
-fwide
-fwprintf
-fwrite
-fwscanf
-gai_strerror
-get_malloc_leak_info
-getaddrinfo
-getauxval
-getc
-getc_unlocked
-getchar
-getchar_unlocked
-getcwd
-getdelim
-getdents
-getdtablesize
-getegid
-getenv
-geteuid
-getgid
-getgrgid
-getgrnam
-getgrouplist
-getgroups
-gethostbyaddr
-gethostbyname
-gethostbyname2
-gethostbyname_r
-gethostent
-gethostname
-getitimer
-getline
-getlogin
-getmntent
-getmntent_r
-getnameinfo
-getnetbyaddr
-getnetbyname
-getopt
-getopt_long
-getopt_long_only
-getpagesize
-getpeername
-getpgid
-getpgrp
-getpid
-getppid
-getpriority
-getprogname
-getprotobyname
-getprotobynumber
-getpt
-getpwnam
-getpwnam_r
-getpwuid
-getpwuid_r
-getresgid
-getresuid
-getrlimit
-getrlimit64
-getrusage
-gets
-getservbyname
-getservbyport
-getservent
-getservent_r
-getsid
-getsockname
-getsockopt
-gettid
-gettimeofday
-getuid
-getusershell
-getutent
-getwc
-getwchar
-getxattr
-gmtime
-gmtime64
-gmtime64_r
-gmtime_r
-herror
-hstrerror
-htonl
-htons
-if_indextoname
-if_nametoindex
-imaxabs
-imaxdiv
-index
-inet_addr
-inet_aton
-inet_lnaof
-inet_makeaddr
-inet_netof
-inet_network
-inet_nsap_addr
-inet_nsap_ntoa
-inet_ntoa
-inet_ntop
-inet_pton
-init_module
-initgroups
-inotify_add_watch
-inotify_init
-inotify_init1
-inotify_rm_watch
-ioctl
-ioprio_get
-ioprio_set
-isalnum
-isalpha
-isascii
-isatty
-isblank
-iscntrl
-isdigit
-isfinite
-isfinitef
-isfinitel
-isgraph
-isinf
-isinff
-isinfl
-islower
-isnan
-isnanf
-isnanl
-isnormal
-isnormalf
-isnormall
-isprint
-ispunct
-issetugid
-isspace
-isupper
-iswalnum
-iswalpha
-iswblank
-iswcntrl
-iswctype
-iswdigit
-iswgraph
-iswlower
-iswprint
-iswpunct
-iswspace
-iswupper
-iswxdigit
-isxdigit
-jrand48
-kill
-killpg
-klogctl
-labs
-lchown
-ldexp
-ldiv
-lfind
-lgetxattr
-link
-linkat
-listen
-listxattr
-llabs
-lldiv
-llistxattr
-localeconv
-localtime
-localtime64
-localtime64_r
-localtime_r
-localtime_tz
-longjmp
-longjmperror
-lrand48
-lremovexattr
-lsearch
-lseek
-lseek64
-lsetxattr
-lstat
-lstat64
-madvise
-mallinfo
-malloc
-malloc_usable_size
-mbrlen
-mbrtowc
-mbsinit
-mbsnrtowcs
-mbsrtowcs
-mbstowcs
-mbtowc
-memalign
-memccpy
-memchr
-memcmp
-memcpy
-memmem
-memmove
-memrchr
-memset
-memswap
-mincore
-mkdir
-mkdirat
-mkdtemp
-mkfifo
-mknod
-mknodat
-mkstemp
-mkstemp64
-mkstemps
-mktemp
-mktime
-mktime64
-mktime_tz
-mlock
-mlockall
-mmap
-mmap64
-mount
-mprotect
-mrand48
-mremap
-msync
-munlock
-munlockall
-munmap
-nanosleep
-newlocale
-nftw
-nftw64
-nice
-nrand48
-nsdispatch
-ntohl
-ntohs
-open
-open64
-openat
-openat64
-opendir
-openlog
-openlog_r
-pathconf
-pause
-pclose
-perf_event_open
-perror
-personality
-pipe
-pipe2
-poll
-popen
-posix2time
-posix_fallocate
-posix_fallocate64
-posix_memalign
-ppoll
-prctl
-pread
-pread64
-printf
-prlimit64
-pselect
-psiginfo
-psignal
-pthread_atfork
-pthread_attr_destroy
-pthread_attr_getdetachstate
-pthread_attr_getguardsize
-pthread_attr_getschedparam
-pthread_attr_getschedpolicy
-pthread_attr_getscope
-pthread_attr_getstack
-pthread_attr_getstackaddr
-pthread_attr_getstacksize
-pthread_attr_init
-pthread_attr_setdetachstate
-pthread_attr_setguardsize
-pthread_attr_setschedparam
-pthread_attr_setschedpolicy
-pthread_attr_setscope
-pthread_attr_setstack
-pthread_attr_setstackaddr
-pthread_attr_setstacksize
-pthread_cond_broadcast
-pthread_cond_destroy
-pthread_cond_init
-pthread_cond_signal
-pthread_cond_timedwait
-pthread_cond_timedwait_monotonic
-pthread_cond_timedwait_monotonic_np
-pthread_cond_timedwait_relative_np
-pthread_cond_timeout_np
-pthread_cond_wait
-pthread_condattr_destroy
-pthread_condattr_getclock
-pthread_condattr_getpshared
-pthread_condattr_init
-pthread_condattr_setclock
-pthread_condattr_setpshared
-pthread_create
-pthread_detach
-pthread_equal
-pthread_exit
-pthread_getattr_np
-pthread_getcpuclockid
-pthread_getschedparam
-pthread_getspecific
-pthread_join
-pthread_key_create
-pthread_key_delete
-pthread_kill
-pthread_mutex_destroy
-pthread_mutex_init
-pthread_mutex_lock
-pthread_mutex_lock_timeout_np
-pthread_mutex_timedlock
-pthread_mutex_trylock
-pthread_mutex_unlock
-pthread_mutexattr_destroy
-pthread_mutexattr_getpshared
-pthread_mutexattr_gettype
-pthread_mutexattr_init
-pthread_mutexattr_setpshared
-pthread_mutexattr_settype
-pthread_once
-pthread_rwlock_destroy
-pthread_rwlock_init
-pthread_rwlock_rdlock
-pthread_rwlock_timedrdlock
-pthread_rwlock_timedwrlock
-pthread_rwlock_tryrdlock
-pthread_rwlock_trywrlock
-pthread_rwlock_unlock
-pthread_rwlock_wrlock
-pthread_rwlockattr_destroy
-pthread_rwlockattr_getpshared
-pthread_rwlockattr_init
-pthread_rwlockattr_setpshared
-pthread_self
-pthread_setname_np
-pthread_setschedparam
-pthread_setspecific
-pthread_sigmask
-ptrace
-ptsname
-ptsname_r
-putc
-putc_unlocked
-putchar
-putchar_unlocked
-putenv
-puts
-pututline
-putw
-putwc
-putwchar
-pvalloc
-pwrite
-pwrite64
-qsort
-quick_exit
-raise
-read
-readahead
-readdir
-readdir64
-readdir64_r
-readdir_r
-readlink
-readlinkat
-readv
-realloc
-realpath
-reboot
-recv
-recvfrom
-recvmmsg
-recvmsg
-regcomp
-regerror
-regexec
-regfree
-remove
-removexattr
-rename
-renameat
-res_init
-res_mkquery
-res_query
-res_search
-res_setmark
-res_setnetid
-rewind
-rewinddir
-rmdir
-sbrk
-scandir
-scandir64
-scanf
-sched_get_priority_max
-sched_get_priority_min
-sched_getaffinity
-sched_getcpu
-sched_getparam
-sched_getscheduler
-sched_rr_get_interval
-sched_setaffinity
-sched_setparam
-sched_setscheduler
-sched_yield
-seed48
-select
-sem_close
-sem_destroy
-sem_getvalue
-sem_init
-sem_open
-sem_post
-sem_timedwait
-sem_trywait
-sem_unlink
-sem_wait
-send
-sendfile
-sendfile64
-sendmmsg
-sendmsg
-sendto
-setbuf
-setbuffer
-setegid
-setenv
-seteuid
-setgid
-setgroups
-setitimer
-setjmp
-setlinebuf
-setlocale
-setlogmask
-setlogmask_r
-setmntent
-setns
-setpgid
-setpgrp
-setpriority
-setprogname
-setregid
-setresgid
-setresuid
-setreuid
-setrlimit
-setrlimit64
-setservent
-setsid
-setsockopt
-settimeofday
-setuid
-setusershell
-setutent
-setvbuf
-setxattr
-shutdown
-sigaction
-sigaddset
-sigaltstack
-sigblock
-sigdelset
-sigemptyset
-sigfillset
-siginterrupt
-sigismember
-siglongjmp
-signal
-signalfd
-signalfd4
-sigpending
-sigprocmask
-sigsetjmp
-sigsetmask
-sigsuspend
-sigwait
-sleep
-snprintf
-socket
-socketpair
-sprintf
-srand48
-sscanf
-stat
-stat64
-statfs
-statfs64
-statvfs
-statvfs64
-stpcpy
-stpncpy
-strcasecmp
-strcasestr
-strcat
-strchr
-strcmp
-strcoll
-strcpy
-strcspn
-strdup
-strerror
-strerror_r
-strftime
-strftime_tz
-strlcat
-strlcpy
-strlen
-strncasecmp
-strncat
-strncmp
-strncpy
-strndup
-strnlen
-strntoimax
-strntoumax
-strpbrk
-strptime
-strrchr
-strsep
-strsignal
-strspn
-strstr
-strtod
-strtof
-strtoimax
-strtok
-strtok_r
-strtol
-strtold
-strtoll
-strtoq
-strtotimeval
-strtoul
-strtoull
-strtoumax
-strtouq
-strxfrm
-swapoff
-swapon
-swprintf
-swscanf
-symlink
-symlinkat
-sync
-syscall
-sysconf
-sysinfo
-syslog
-syslog_r
-system
-sysv_signal
-tcdrain
-tcflow
-tcflush
-tcgetattr
-tcgetpgrp
-tcgetsid
-tcsendbreak
-tcsetattr
-tcsetpgrp
-tdelete
-tdestroy
-tempnam
-tfind
-tgkill
-time
-time2posix
-timegm
-timegm64
-timelocal
-timelocal64
-timer_create
-timer_delete
-timer_getoverrun
-timer_gettime
-timer_settime
-timerfd_create
-timerfd_gettime
-timerfd_settime
-times
-tkill
-tmpfile
-tmpnam
-toascii
-tolower
-toupper
-towlower
-towupper
-truncate
-truncate64
-tsearch
-ttyname
-ttyname_r
-tzset
-tzsetwall
-umask
-umount
-umount2
-uname
-ungetc
-ungetwc
-unlink
-unlinkat
-unlockpt
-unsetenv
-unshare
-uselocale
-usleep
-utime
-utimensat
-utimes
-utmpname
-valloc
-vasprintf
-verr
-verrx
-vfdprintf
-vfork
-vfprintf
-vfscanf
-vfwprintf
-vfwscanf
-vprintf
-vscanf
-vsnprintf
-vsprintf
-vsscanf
-vswprintf
-vswscanf
-vsyslog
-vsyslog_r
-vwarn
-vwarnx
-vwprintf
-vwscanf
-wait
-wait3
-wait4
-waitid
-waitpid
-warn
-warnx
-wcpcpy
-wcpncpy
-wcrtomb
-wcscasecmp
-wcscat
-wcschr
-wcscmp
-wcscoll
-wcscpy
-wcscspn
-wcsdup
-wcsftime
-wcslcat
-wcslcpy
-wcslen
-wcsncasecmp
-wcsncat
-wcsncmp
-wcsncpy
-wcsnlen
-wcsnrtombs
-wcspbrk
-wcsrchr
-wcsrtombs
-wcsspn
-wcsstr
-wcstod
-wcstof
-wcstoimax
-wcstok
-wcstol
-wcstold
-wcstoll
-wcstombs
-wcstoul
-wcstoull
-wcstoumax
-wcswcs
-wcswidth
-wcsxfrm
-wctob
-wctomb
-wctype
-wcwidth
-wmemchr
-wmemcmp
-wmemcpy
-wmemmove
-wmemset
-wprintf
-write
-writev
-wscanf
diff --git a/ndk/platforms/android-20/arch-x86/symbols/libc.so.variables.txt b/ndk/platforms/android-20/arch-x86/symbols/libc.so.variables.txt
deleted file mode 100644
index 2d0130c..0000000
--- a/ndk/platforms/android-20/arch-x86/symbols/libc.so.variables.txt
+++ /dev/null
@@ -1,48 +0,0 @@
-_C_ctype_
-_C_tolower_
-_C_toupper_
-__atexit
-__atexit_invalid
-__bionic_brk
-__isthreaded
-__libc_malloc_default_dispatch
-__libc_malloc_dispatch
-__netdClientDispatch
-__p_cert_syms
-__p_class_syms
-__p_key_syms
-__p_rcode_syms
-__p_type_syms
-__page_shift
-__page_size
-__popcount_tab
-__progname
-__rand48_add
-__rand48_mult
-__rand48_seed
-__sF
-__sdidinit
-__sglue
-__stack_chk_guard
-__system_property_area__
-_ctype_
-_ns_flagdata
-_tolower_tab_
-_toupper_tab_
-daylight
-environ
-g_allocations_mutex
-g_hash_table
-g_malloc_debug_backlog
-g_malloc_debug_level
-h_errlist
-h_nerr
-optarg
-opterr
-optind
-optopt
-optreset
-sys_siglist
-sys_signame
-timezone
-tzname
diff --git a/ndk/platforms/android-20/arch-x86/symbols/libm.so.functions.txt b/ndk/platforms/android-20/arch-x86/symbols/libm.so.functions.txt
deleted file mode 100644
index b84a259..0000000
--- a/ndk/platforms/android-20/arch-x86/symbols/libm.so.functions.txt
+++ /dev/null
@@ -1,272 +0,0 @@
-__exp__D
-__ieee754_rem_pio2
-__ieee754_rem_pio2f
-__kernel_cos
-__kernel_cosdf
-__kernel_rem_pio2
-__kernel_sin
-__kernel_sindf
-__kernel_tan
-__kernel_tandf
-__ldexp_cexp
-__ldexp_cexpf
-__ldexp_exp
-__ldexp_expf
-__log__D
-__signbit
-__signbitf
-__signbitl
-_scan_nan
-acos
-acosf
-acosh
-acoshf
-acoshl
-acosl
-asin
-asinf
-asinh
-asinhf
-asinhl
-asinl
-atan
-atan2
-atan2f
-atan2l
-atanf
-atanh
-atanhf
-atanhl
-atanl
-cabs
-cabsf
-cabsl
-carg
-cargf
-cbrt
-cbrtf
-cbrtl
-ccos
-ccosf
-ccosh
-ccoshf
-ceil
-ceilf
-ceill
-cexp
-cexpf
-cimag
-cimagf
-conj
-conjf
-copysign
-copysignf
-copysignl
-cos
-cosf
-cosh
-coshf
-coshl
-cosl
-cproj
-cprojf
-cprojl
-creal
-crealf
-csin
-csinf
-csinh
-csinhf
-csqrt
-csqrtf
-csqrtl
-ctan
-ctanf
-ctanh
-ctanhf
-drem
-dremf
-erf
-erfc
-erfcf
-erfcl
-erff
-erfl
-exp
-exp2
-exp2f
-exp2l
-expf
-expl
-expm1
-expm1f
-expm1l
-fabs
-fabsf
-fabsl
-fdim
-fdimf
-fdiml
-feclearexcept
-fedisableexcept
-feenableexcept
-fegetenv
-fegetexcept
-fegetexceptflag
-fegetround
-feholdexcept
-feraiseexcept
-fesetenv
-fesetexceptflag
-fesetround
-fetestexcept
-feupdateenv
-finite
-finitef
-floor
-floorf
-floorl
-fma
-fmaf
-fmal
-fmax
-fmaxf
-fmaxl
-fmin
-fminf
-fminl
-fmod
-fmodf
-fmodl
-frexp
-frexpf
-frexpl
-gamma
-gamma_r
-gammaf
-gammaf_r
-hypot
-hypotf
-hypotl
-ilogb
-ilogbf
-ilogbl
-imprecise_coshl
-imprecise_erfcl
-imprecise_erfl
-imprecise_lgammal
-imprecise_powl
-imprecise_sinhl
-imprecise_tanhl
-imprecise_tgammal
-j0
-j0f
-j1
-j1f
-jn
-jnf
-ldexpf
-ldexpl
-lgamma
-lgamma_r
-lgammaf
-lgammaf_r
-lgammal
-llrint
-llrintf
-llrintl
-llround
-llroundf
-llroundl
-log
-log10
-log10f
-log10l
-log1p
-log1pf
-log1pl
-log2
-log2f
-log2l
-logb
-logbf
-logbl
-logf
-logl
-lrint
-lrintf
-lrintl
-lround
-lroundf
-lroundl
-modf
-modff
-modfl
-nan
-nanf
-nanl
-nearbyint
-nearbyintf
-nearbyintl
-nextafter
-nextafterf
-nextafterl
-nexttoward
-nexttowardf
-nexttowardl
-pow
-powf
-powl
-remainder
-remainderf
-remainderl
-remquo
-remquof
-remquol
-rint
-rintf
-rintl
-round
-roundf
-roundl
-scalb
-scalbf
-scalbln
-scalblnf
-scalblnl
-scalbn
-scalbnf
-scalbnl
-significand
-significandf
-significandl
-sin
-sincos
-sincosf
-sincosl
-sinf
-sinh
-sinhf
-sinhl
-sinl
-sqrt
-sqrtf
-sqrtl
-tan
-tanf
-tanh
-tanhf
-tanhl
-tanl
-tgamma
-tgammaf
-tgammal
-trunc
-truncf
-truncl
-y0
-y0f
-y1
-y1f
-yn
-ynf
diff --git a/ndk/platforms/android-20/arch-x86/symbols/libm.so.variables.txt b/ndk/platforms/android-20/arch-x86/symbols/libm.so.variables.txt
deleted file mode 100644
index 6e5cdee..0000000
--- a/ndk/platforms/android-20/arch-x86/symbols/libm.so.variables.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-__fe_dfl_env
-__has_sse
-signgam
diff --git a/ndk/platforms/android-20/arch-x86/symbols/libstdc++.so.functions.txt b/ndk/platforms/android-20/arch-x86/symbols/libstdc++.so.functions.txt
deleted file mode 100644
index 991ae87..0000000
--- a/ndk/platforms/android-20/arch-x86/symbols/libstdc++.so.functions.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-_ZN9type_infoC1ERKS_
-_ZN9type_infoC1Ev
-_ZN9type_infoC2ERKS_
-_ZN9type_infoC2Ev
-_ZN9type_infoD0Ev
-_ZN9type_infoD1Ev
-_ZN9type_infoD2Ev
-_ZNK9type_info4nameEv
-_ZNK9type_info6beforeERKS_
-_ZNK9type_infoeqERKS_
-_ZNK9type_infoneERKS_
-_ZdaPv
-_ZdaPvRKSt9nothrow_t
-_ZdlPv
-_ZdlPvRKSt9nothrow_t
-_Znam
-_ZnamRKSt9nothrow_t
-_Znwm
-_ZnwmRKSt9nothrow_t
-__cxa_guard_abort
-__cxa_guard_acquire
-__cxa_guard_release
-__cxa_pure_virtual
diff --git a/ndk/platforms/android-20/arch-x86/symbols/libstdc++.so.variables.txt b/ndk/platforms/android-20/arch-x86/symbols/libstdc++.so.variables.txt
deleted file mode 100644
index d5aab66..0000000
--- a/ndk/platforms/android-20/arch-x86/symbols/libstdc++.so.variables.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-_ZSt7nothrow
-_ZTV9type_info
diff --git a/ndk/platforms/android-20/arch-x86_64/include/machine/fenv.h b/ndk/platforms/android-20/arch-x86_64/include/machine/fenv.h
deleted file mode 100644
index 79a4120..0000000
--- a/ndk/platforms/android-20/arch-x86_64/include/machine/fenv.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/*-
- * Copyright (c) 2004-2005 David Schultz <das (at) FreeBSD.ORG>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef _AMD64_FENV_H_
-#define _AMD64_FENV_H_
-
-#include <sys/types.h>
-
-__BEGIN_DECLS
-
-/*
- * Each symbol representing a floating point exception expands to an integer
- * constant expression with values, such that bitwise-inclusive ORs of _all
- * combinations_ of the constants result in distinct values.
- *
- * We use such values that allow direct bitwise operations on FPU/SSE registers.
- */
-#define FE_INVALID    0x01
-#define FE_DENORMAL   0x02
-#define FE_DIVBYZERO  0x04
-#define FE_OVERFLOW   0x08
-#define FE_UNDERFLOW  0x10
-#define FE_INEXACT    0x20
-
-/*
- * The following symbol is simply the bitwise-inclusive OR of all floating-point
- * exception constants defined above.
- */
-#define FE_ALL_EXCEPT   (FE_INVALID | FE_DENORMAL | FE_DIVBYZERO | \
-                         FE_OVERFLOW | FE_UNDERFLOW | FE_INEXACT)
-#define _SSE_MASK_SHIFT 7
-
-/*
- * Each symbol representing the rounding direction, expands to an integer
- * constant expression whose value is distinct non-negative value.
- *
- * We use such values that allow direct bitwise operations on FPU/SSE registers.
- */
-#define FE_TONEAREST  0x000
-#define FE_DOWNWARD   0x400
-#define FE_UPWARD     0x800
-#define FE_TOWARDZERO 0xc00
-
-/*
- * The following symbol is simply the bitwise-inclusive OR of all floating-point
- * rounding direction constants defined above.
- */
-#define _X87_ROUND_MASK  (FE_TONEAREST | FE_DOWNWARD | FE_UPWARD | \
-                          FE_TOWARDZERO)
-#define _SSE_ROUND_SHIFT 3
-
-/*
- * fenv_t represents the entire floating-point environment.
- */
-typedef struct {
-  struct {
-    __uint32_t __control;   /* Control word register */
-    __uint32_t __status;    /* Status word register */
-    __uint32_t __tag;       /* Tag word register */
-    __uint32_t __others[4]; /* EIP, Pointer Selector, etc */
-  } __x87;
-  __uint32_t __mxcsr;       /* Control, status register */
-} fenv_t;
-
-/*
- * fexcept_t represents the floating-point status flags collectively, including
- * any status the implementation associates with the flags.
- *
- * A floating-point status flag is a system variable whose value is set (but
- * never cleared) when a floating-point exception is raised, which occurs as a
- * side effect of exceptional floating-point arithmetic to provide auxiliary
- * information.
- *
- * A floating-point control mode is a system variable whose value may be set by
- * the user to affect the subsequent behavior of floating-point arithmetic.
- */
-typedef __uint32_t fexcept_t;
-
-__END_DECLS
-
-#endif /* !_AMD64_FENV_H_ */
diff --git a/ndk/platforms/android-20/arch-x86_64/lib64/libc.a b/ndk/platforms/android-20/arch-x86_64/lib64/libc.a
deleted file mode 100644
index bd52a5f..0000000
--- a/ndk/platforms/android-20/arch-x86_64/lib64/libc.a
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-20/arch-x86_64/lib64/libm.a b/ndk/platforms/android-20/arch-x86_64/lib64/libm.a
deleted file mode 100644
index f719483..0000000
--- a/ndk/platforms/android-20/arch-x86_64/lib64/libm.a
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-20/arch-x86_64/lib64/libstdc++.a b/ndk/platforms/android-20/arch-x86_64/lib64/libstdc++.a
deleted file mode 100644
index fdc3580..0000000
--- a/ndk/platforms/android-20/arch-x86_64/lib64/libstdc++.a
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-20/arch-x86_64/lib64/libz.a b/ndk/platforms/android-20/arch-x86_64/lib64/libz.a
deleted file mode 100644
index 3b2c4f2..0000000
--- a/ndk/platforms/android-20/arch-x86_64/lib64/libz.a
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-20/arch-x86_64/symbols/libc.so.functions.txt b/ndk/platforms/android-20/arch-x86_64/symbols/libc.so.functions.txt
deleted file mode 100644
index b6b8c9f..0000000
--- a/ndk/platforms/android-20/arch-x86_64/symbols/libc.so.functions.txt
+++ /dev/null
@@ -1,1167 +0,0 @@
-MD5_Final
-MD5_Init
-MD5_Update
-SHA1Final
-SHA1Init
-SHA1Transform
-SHA1Update
-_Exit
-_Unwind_Backtrace
-_Unwind_DeleteException
-_Unwind_FindEnclosingFunction
-_Unwind_Find_FDE
-_Unwind_ForcedUnwind
-_Unwind_GetCFA
-_Unwind_GetDataRelBase
-_Unwind_GetGR
-_Unwind_GetIP
-_Unwind_GetIPInfo
-_Unwind_GetLanguageSpecificData
-_Unwind_GetRegionStart
-_Unwind_GetTextRelBase
-_Unwind_RaiseException
-_Unwind_Resume
-_Unwind_Resume_or_Rethrow
-_Unwind_SetGR
-_Unwind_SetIP
-__FD_CLR_chk
-__FD_ISSET_chk
-__FD_SET_chk
-__android_set_abort_message
-__arc4_getbyte
-__assert
-__assert2
-__b64_ntop
-__b64_pton
-__bionic_name_mem
-__cxa_atexit
-__cxa_finalize
-__deregister_frame
-__deregister_frame_info
-__deregister_frame_info_bases
-__dn_comp
-__dn_count_labels
-__dn_skipname
-__dorand48
-__errno
-__evAddTime
-__evCmpTime
-__evConsIovec
-__evConsTime
-__evNowTime
-__evSubTime
-__evTimeSpec
-__evTimeVal
-__evUTCTime
-__fgets_chk
-__fgetwc_unlock
-__findenv
-__fp_nquery
-__fp_query
-__fpclassify
-__fpclassifyd
-__fpclassifyf
-__fpclassifyl
-__fputwc_unlock
-__frame_state_for
-__futex_syscall3
-__futex_syscall4
-__futex_wait
-__futex_wait_ex
-__futex_wake
-__futex_wake_ex
-__get_h_errno
-__get_sp
-__hostalias
-__isfinite
-__isfinitef
-__isfinitel
-__isinf
-__isinff
-__isinfl
-__isnan
-__isnanf
-__isnanl
-__isnormal
-__isnormalf
-__isnormall
-__libc_current_sigrtmax
-__libc_current_sigrtmin
-__libc_fini
-__libc_init
-__loc_aton
-__loc_ntoa
-__memcmp16
-__memcpy_chk
-__memmove_chk
-__memset_chk
-__multf3
-__ns_format_ttl
-__ns_get16
-__ns_get32
-__ns_initparse
-__ns_makecanon
-__ns_msg_getflag
-__ns_name_compress
-__ns_name_eq
-__ns_name_labels
-__ns_name_length
-__ns_name_map
-__ns_name_ntol
-__ns_name_ntop
-__ns_name_owned
-__ns_name_pack
-__ns_name_pton
-__ns_name_pton2
-__ns_name_rollback
-__ns_name_skip
-__ns_name_uncompress
-__ns_name_unpack
-__ns_name_unpack2
-__ns_parserr
-__ns_parserr2
-__ns_put16
-__ns_put32
-__ns_samename
-__ns_skiprr
-__ns_sprintrr
-__ns_sprintrrf
-__open_2
-__openat_2
-__p_cdname
-__p_cdnname
-__p_class
-__p_fqname
-__p_fqnname
-__p_option
-__p_query
-__p_rcode
-__p_secstodate
-__p_section
-__p_sockun
-__p_time
-__p_type
-__popcountdi2
-__pthread_cleanup_pop
-__pthread_cleanup_push
-__pthread_gettid
-__putlong
-__putshort
-__read_chk
-__recvfrom_chk
-__register_frame
-__register_frame_info
-__register_frame_info_bases
-__register_frame_info_table
-__register_frame_info_table_bases
-__register_frame_table
-__res_close
-__res_dnok
-__res_get_nibblesuffix
-__res_get_nibblesuffix2
-__res_get_state
-__res_get_static
-__res_getservers
-__res_hnok
-__res_hostalias
-__res_isourserver
-__res_mailok
-__res_nameinquery
-__res_nametoclass
-__res_nametotype
-__res_nclose
-__res_ndestroy
-__res_ninit
-__res_nmkquery
-__res_nopt
-__res_nquery
-__res_nquerydomain
-__res_nsearch
-__res_nsend
-__res_opt
-__res_ownok
-__res_pquery
-__res_put_state
-__res_queriesmatch
-__res_querydomain
-__res_randomid
-__res_send
-__res_send_setqhook
-__res_send_setrhook
-__res_setservers
-__res_vinit
-__sched_cpualloc
-__sched_cpucount
-__sched_cpufree
-__sclose
-__set_tls
-__sflags
-__sflush
-__sflush_locked
-__sfp
-__sfp_handle_exceptions
-__sfvwrite
-__sinit
-__smakebuf
-__snprintf_chk
-__sprintf_chk
-__sread
-__srefill
-__srget
-__sseek
-__stack_chk_fail
-__stpcpy_chk
-__stpncpy_chk
-__stpncpy_chk2
-__strcat_chk
-__strchr_chk
-__strcpy_chk
-__strlcat_chk
-__strlcpy_chk
-__strlen_chk
-__strncat_chk
-__strncpy_chk
-__strncpy_chk2
-__strrchr_chk
-__svfscanf
-__swbuf
-__swhatbuf
-__swrite
-__swsetup
-__sym_ntop
-__sym_ntos
-__sym_ston
-__system_properties_init
-__system_property_add
-__system_property_area_init
-__system_property_find
-__system_property_find_compat
-__system_property_find_nth
-__system_property_foreach
-__system_property_foreach_compat
-__system_property_get
-__system_property_read
-__system_property_read_compat
-__system_property_serial
-__system_property_set
-__system_property_set_filename
-__system_property_update
-__system_property_wait_any
-__umask_chk
-__ungetwc
-__vfprintf
-__vfwprintf
-__vfwscanf
-__vsnprintf_chk
-__vsprintf_chk
-_cleanup
-_exit
-_exit_with_stack_teardown
-_fwalk
-_getlong
-_getshort
-_longjmp
-_resolv_flush_cache_for_net
-_resolv_set_nameservers_for_net
-_setjmp
-_thread_created_hook
-_tolower
-_toupper
-abort
-abs
-accept
-accept4
-access
-acct
-alarm
-alphasort
-alphasort64
-android_getaddrinfofornet
-android_gethostbyaddrfornet
-android_gethostbyaddrfornet_proxy
-android_gethostbyaddrfornet_real
-android_gethostbynamefornet
-android_getnameinfofornet
-arc4random
-arc4random_addrandom
-arc4random_buf
-arc4random_stir
-arc4random_uniform
-asctime
-asctime_r
-asprintf
-at_quick_exit
-atof
-atoi
-atol
-atoll
-basename
-basename_r
-bcopy
-bind
-bindresvport
-brk
-bsd_signal
-bsearch
-btowc
-bzero
-calloc
-capget
-capset
-cfgetispeed
-cfgetospeed
-cfmakeraw
-cfsetispeed
-cfsetospeed
-cfsetspeed
-chdir
-chmod
-chown
-chroot
-clearenv
-clearerr
-clock
-clock_getres
-clock_gettime
-clock_nanosleep
-clock_settime
-clone
-close
-closedir
-closelog
-closelog_r
-cmsg_nxthdr
-connect
-creat
-creat64
-ctime
-ctime_r
-daemon
-delete_module
-difftime
-dirfd
-dirname
-dirname_r
-div
-dlbulk_free
-dlcalloc
-dlfree
-dlindependent_calloc
-dlindependent_comalloc
-dlmallinfo
-dlmalloc
-dlmalloc_footprint
-dlmalloc_footprint_limit
-dlmalloc_inspect_all
-dlmalloc_max_footprint
-dlmalloc_set_footprint_limit
-dlmalloc_stats
-dlmalloc_trim
-dlmalloc_usable_size
-dlmallopt
-dlmemalign
-dlposix_memalign
-dlpvalloc
-dlrealloc
-dlrealloc_in_place
-dlvalloc
-dn_expand
-drand48
-dup
-dup2
-dup3
-duplocale
-endmntent
-endpwent
-endservent
-endusershell
-endutent
-epoll_create
-epoll_create1
-epoll_ctl
-epoll_pwait
-epoll_wait
-erand48
-err
-errx
-ether_aton
-ether_aton_r
-ether_ntoa
-ether_ntoa_r
-eventfd
-eventfd_read
-eventfd_write
-execl
-execle
-execlp
-execv
-execve
-execvp
-execvpe
-exit
-faccessat
-fallocate
-fallocate64
-fchdir
-fchmod
-fchmodat
-fchown
-fchownat
-fclose
-fcntl
-fdatasync
-fdopen
-fdopendir
-fdprintf
-feof
-ferror
-fflush
-ffs
-fgetc
-fgetln
-fgetpos
-fgets
-fgetwc
-fgetws
-fgetxattr
-fileno
-flistxattr
-flock
-flockfile
-fnmatch
-fopen
-fork
-fpathconf
-fprintf
-fpurge
-fputc
-fputs
-fputwc
-fputws
-fread
-free
-freeaddrinfo
-freelocale
-fremovexattr
-freopen
-fscanf
-fseek
-fseeko
-fsetpos
-fsetxattr
-fstat
-fstat64
-fstatat
-fstatat64
-fstatfs
-fstatfs64
-fstatvfs
-fstatvfs64
-fsync
-ftell
-ftello
-ftime
-ftok
-ftruncate
-ftruncate64
-ftrylockfile
-fts_children
-fts_close
-fts_open
-fts_read
-fts_set
-ftw
-ftw64
-funlockfile
-funopen
-futex
-futimens
-fwide
-fwprintf
-fwrite
-fwscanf
-gai_strerror
-get_malloc_leak_info
-getaddrinfo
-getauxval
-getc
-getc_unlocked
-getchar
-getchar_unlocked
-getcwd
-getdelim
-getdents
-getdtablesize
-getegid
-getenv
-geteuid
-getgid
-getgrgid
-getgrnam
-getgrouplist
-getgroups
-gethostbyaddr
-gethostbyname
-gethostbyname2
-gethostbyname_r
-gethostent
-gethostname
-getitimer
-getline
-getlogin
-getmntent
-getmntent_r
-getnameinfo
-getnetbyaddr
-getnetbyname
-getopt
-getopt_long
-getopt_long_only
-getpagesize
-getpeername
-getpgid
-getpgrp
-getpid
-getppid
-getpriority
-getprogname
-getprotobyname
-getprotobynumber
-getpt
-getpwnam
-getpwnam_r
-getpwuid
-getpwuid_r
-getresgid
-getresuid
-getrlimit
-getrlimit64
-getrusage
-gets
-getservbyname
-getservbyport
-getservent
-getservent_r
-getsid
-getsockname
-getsockopt
-gettid
-gettimeofday
-getuid
-getusershell
-getutent
-getwc
-getwchar
-getxattr
-gmtime
-gmtime_r
-herror
-hstrerror
-htonl
-htons
-if_indextoname
-if_nametoindex
-imaxabs
-imaxdiv
-index
-inet_addr
-inet_aton
-inet_lnaof
-inet_makeaddr
-inet_netof
-inet_network
-inet_nsap_addr
-inet_nsap_ntoa
-inet_ntoa
-inet_ntop
-inet_pton
-init_module
-initgroups
-inotify_add_watch
-inotify_init
-inotify_init1
-inotify_rm_watch
-ioctl
-ioprio_get
-ioprio_set
-isalnum
-isalpha
-isascii
-isatty
-isblank
-iscntrl
-isdigit
-isfinite
-isfinitef
-isfinitel
-isgraph
-isinf
-isinff
-isinfl
-islower
-isnan
-isnanf
-isnanl
-isnormal
-isnormalf
-isnormall
-isprint
-ispunct
-issetugid
-isspace
-isupper
-iswalnum
-iswalpha
-iswblank
-iswcntrl
-iswctype
-iswdigit
-iswgraph
-iswlower
-iswprint
-iswpunct
-iswspace
-iswupper
-iswxdigit
-isxdigit
-jrand48
-kill
-killpg
-klogctl
-labs
-lchown
-ldexp
-ldiv
-lfind
-lgetxattr
-link
-linkat
-listen
-listxattr
-llabs
-lldiv
-llistxattr
-localeconv
-localtime
-localtime_r
-localtime_tz
-longjmp
-longjmperror
-lrand48
-lremovexattr
-lsearch
-lseek
-lseek64
-lsetxattr
-lstat
-lstat64
-madvise
-mallinfo
-malloc
-malloc_usable_size
-mbrlen
-mbrtowc
-mbsinit
-mbsnrtowcs
-mbsrtowcs
-mbstowcs
-mbtowc
-memalign
-memccpy
-memchr
-memcmp
-memcpy
-memmem
-memmove
-memrchr
-memset
-mincore
-mkdir
-mkdirat
-mkdtemp
-mkfifo
-mknod
-mknodat
-mkstemp
-mkstemp64
-mkstemps
-mktemp
-mktime
-mktime_tz
-mlock
-mlockall
-mmap
-mmap64
-mount
-mprotect
-mrand48
-mremap
-msync
-munlock
-munlockall
-munmap
-nanosleep
-newlocale
-nftw
-nftw64
-nice
-nrand48
-nsdispatch
-ntohl
-ntohs
-open
-open64
-openat
-openat64
-opendir
-openlog
-openlog_r
-pathconf
-pause
-pclose
-perf_event_open
-perror
-personality
-pipe
-pipe2
-poll
-popen
-posix2time
-posix_fallocate
-posix_fallocate64
-posix_memalign
-ppoll
-prctl
-pread
-pread64
-printf
-prlimit
-prlimit64
-pselect
-psiginfo
-psignal
-pthread_atfork
-pthread_attr_destroy
-pthread_attr_getdetachstate
-pthread_attr_getguardsize
-pthread_attr_getschedparam
-pthread_attr_getschedpolicy
-pthread_attr_getscope
-pthread_attr_getstack
-pthread_attr_getstacksize
-pthread_attr_init
-pthread_attr_setdetachstate
-pthread_attr_setguardsize
-pthread_attr_setschedparam
-pthread_attr_setschedpolicy
-pthread_attr_setscope
-pthread_attr_setstack
-pthread_attr_setstacksize
-pthread_cond_broadcast
-pthread_cond_destroy
-pthread_cond_init
-pthread_cond_signal
-pthread_cond_timedwait
-pthread_cond_wait
-pthread_condattr_destroy
-pthread_condattr_getclock
-pthread_condattr_getpshared
-pthread_condattr_init
-pthread_condattr_setclock
-pthread_condattr_setpshared
-pthread_create
-pthread_detach
-pthread_equal
-pthread_exit
-pthread_getattr_np
-pthread_getcpuclockid
-pthread_getschedparam
-pthread_getspecific
-pthread_join
-pthread_key_create
-pthread_key_delete
-pthread_kill
-pthread_mutex_destroy
-pthread_mutex_init
-pthread_mutex_lock
-pthread_mutex_timedlock
-pthread_mutex_trylock
-pthread_mutex_unlock
-pthread_mutexattr_destroy
-pthread_mutexattr_getpshared
-pthread_mutexattr_gettype
-pthread_mutexattr_init
-pthread_mutexattr_setpshared
-pthread_mutexattr_settype
-pthread_once
-pthread_rwlock_destroy
-pthread_rwlock_init
-pthread_rwlock_rdlock
-pthread_rwlock_timedrdlock
-pthread_rwlock_timedwrlock
-pthread_rwlock_tryrdlock
-pthread_rwlock_trywrlock
-pthread_rwlock_unlock
-pthread_rwlock_wrlock
-pthread_rwlockattr_destroy
-pthread_rwlockattr_getpshared
-pthread_rwlockattr_init
-pthread_rwlockattr_setpshared
-pthread_self
-pthread_setname_np
-pthread_setschedparam
-pthread_setspecific
-pthread_sigmask
-ptrace
-ptsname
-ptsname_r
-putc
-putc_unlocked
-putchar
-putchar_unlocked
-putenv
-puts
-pututline
-putw
-putwc
-putwchar
-pvalloc
-pwrite
-pwrite64
-qsort
-quick_exit
-raise
-read
-readahead
-readdir
-readdir64
-readdir64_r
-readdir_r
-readlink
-readlinkat
-readv
-realloc
-realpath
-reboot
-recv
-recvfrom
-recvmmsg
-recvmsg
-regcomp
-regerror
-regexec
-regfree
-remove
-removexattr
-rename
-renameat
-res_init
-res_mkquery
-res_query
-res_search
-res_setmark
-res_setnetid
-rewind
-rewinddir
-rmdir
-sbrk
-scandir
-scandir64
-scanf
-sched_get_priority_max
-sched_get_priority_min
-sched_getaffinity
-sched_getcpu
-sched_getparam
-sched_getscheduler
-sched_rr_get_interval
-sched_setaffinity
-sched_setparam
-sched_setscheduler
-sched_yield
-seed48
-select
-sem_close
-sem_destroy
-sem_getvalue
-sem_init
-sem_open
-sem_post
-sem_timedwait
-sem_trywait
-sem_unlink
-sem_wait
-send
-sendfile
-sendfile64
-sendmmsg
-sendmsg
-sendto
-setbuf
-setbuffer
-setegid
-setenv
-seteuid
-setgid
-setgroups
-setitimer
-setjmp
-setlinebuf
-setlocale
-setlogmask
-setlogmask_r
-setmntent
-setns
-setpgid
-setpgrp
-setpriority
-setprogname
-setregid
-setresgid
-setresuid
-setreuid
-setrlimit
-setrlimit64
-setservent
-setsid
-setsockopt
-settimeofday
-setuid
-setusershell
-setutent
-setvbuf
-setxattr
-shutdown
-sigaction
-sigaddset
-sigaltstack
-sigblock
-sigdelset
-sigemptyset
-sigfillset
-siginterrupt
-sigismember
-siglongjmp
-signal
-signalfd
-signalfd4
-sigpending
-sigprocmask
-sigsetjmp
-sigsetmask
-sigsuspend
-sigwait
-sleep
-snprintf
-socket
-socketpair
-sprintf
-srand48
-sscanf
-stat
-stat64
-statfs
-statfs64
-statvfs
-statvfs64
-stpcpy
-stpncpy
-strcasecmp
-strcasestr
-strcat
-strchr
-strcmp
-strcoll
-strcpy
-strcspn
-strdup
-strerror
-strerror_r
-strftime
-strftime_tz
-strlcat
-strlcpy
-strlen
-strncasecmp
-strncat
-strncmp
-strncpy
-strndup
-strnlen
-strpbrk
-strptime
-strrchr
-strsep
-strsignal
-strspn
-strstr
-strtod
-strtof
-strtoimax
-strtok
-strtok_r
-strtol
-strtold
-strtoll
-strtoq
-strtoul
-strtoull
-strtoumax
-strtouq
-strxfrm
-swapoff
-swapon
-swprintf
-swscanf
-symlink
-symlinkat
-sync
-syscall
-sysconf
-sysinfo
-syslog
-syslog_r
-system
-sysv_signal
-tcdrain
-tcflow
-tcflush
-tcgetattr
-tcgetpgrp
-tcgetsid
-tcsendbreak
-tcsetattr
-tcsetpgrp
-tdelete
-tdestroy
-tempnam
-tfind
-tgkill
-time
-time2posix
-timegm
-timelocal
-timer_create
-timer_delete
-timer_getoverrun
-timer_gettime
-timer_settime
-timerfd_create
-timerfd_gettime
-timerfd_settime
-times
-tkill
-tmpfile
-tmpnam
-toascii
-tolower
-toupper
-towlower
-towupper
-truncate
-truncate64
-tsearch
-ttyname
-ttyname_r
-tzset
-tzsetwall
-umask
-umount
-umount2
-uname
-ungetc
-ungetwc
-unlink
-unlinkat
-unlockpt
-unsetenv
-unshare
-uselocale
-usleep
-utime
-utimensat
-utimes
-utmpname
-valloc
-vasprintf
-verr
-verrx
-vfdprintf
-vfork
-vfprintf
-vfscanf
-vfwprintf
-vfwscanf
-vprintf
-vscanf
-vsnprintf
-vsprintf
-vsscanf
-vswprintf
-vswscanf
-vsyslog
-vsyslog_r
-vwarn
-vwarnx
-vwprintf
-vwscanf
-wait
-wait3
-wait4
-waitid
-waitpid
-warn
-warnx
-wcpcpy
-wcpncpy
-wcrtomb
-wcscasecmp
-wcscat
-wcschr
-wcscmp
-wcscoll
-wcscpy
-wcscspn
-wcsdup
-wcsftime
-wcslcat
-wcslcpy
-wcslen
-wcsncasecmp
-wcsncat
-wcsncmp
-wcsncpy
-wcsnlen
-wcsnrtombs
-wcspbrk
-wcsrchr
-wcsrtombs
-wcsspn
-wcsstr
-wcstod
-wcstof
-wcstoimax
-wcstok
-wcstol
-wcstold
-wcstoll
-wcstombs
-wcstoul
-wcstoull
-wcstoumax
-wcswcs
-wcswidth
-wcsxfrm
-wctob
-wctomb
-wctype
-wcwidth
-wmemchr
-wmemcmp
-wmemcpy
-wmemmove
-wmemset
-wprintf
-write
-writev
-wscanf
diff --git a/ndk/platforms/android-20/arch-x86_64/symbols/libc.so.variables.txt b/ndk/platforms/android-20/arch-x86_64/symbols/libc.so.variables.txt
deleted file mode 100644
index fc7f9d8..0000000
--- a/ndk/platforms/android-20/arch-x86_64/symbols/libc.so.variables.txt
+++ /dev/null
@@ -1,45 +0,0 @@
-_C_ctype_
-_C_tolower_
-_C_toupper_
-__atexit
-__atexit_invalid
-__isthreaded
-__libc_malloc_default_dispatch
-__libc_malloc_dispatch
-__netdClientDispatch
-__p_cert_syms
-__p_class_syms
-__p_key_syms
-__p_rcode_syms
-__p_type_syms
-__popcount_tab
-__progname
-__rand48_add
-__rand48_mult
-__rand48_seed
-__sF
-__sdidinit
-__sglue
-__stack_chk_guard
-__system_property_area__
-_ctype_
-_ns_flagdata
-_tolower_tab_
-_toupper_tab_
-daylight
-environ
-g_allocations_mutex
-g_hash_table
-g_malloc_debug_backlog
-g_malloc_debug_level
-h_errlist
-h_nerr
-optarg
-opterr
-optind
-optopt
-optreset
-sys_siglist
-sys_signame
-timezone
-tzname
diff --git a/ndk/platforms/android-20/arch-x86_64/symbols/libm.so.functions.txt b/ndk/platforms/android-20/arch-x86_64/symbols/libm.so.functions.txt
deleted file mode 100644
index 9a5ee58..0000000
--- a/ndk/platforms/android-20/arch-x86_64/symbols/libm.so.functions.txt
+++ /dev/null
@@ -1,290 +0,0 @@
-__addtf3
-__divtf3
-__eqtf2
-__exp__D
-__extenddftf2
-__extendsftf2
-__fixtfdi
-__fixtfsi
-__floatsitf
-__getf2
-__gttf2
-__ieee754_rem_pio2
-__ieee754_rem_pio2f
-__kernel_cos
-__kernel_cosdf
-__kernel_cosl
-__kernel_rem_pio2
-__kernel_sin
-__kernel_sindf
-__kernel_sinl
-__kernel_tan
-__kernel_tandf
-__kernel_tanl
-__ldexp_cexp
-__ldexp_cexpf
-__ldexp_exp
-__ldexp_expf
-__letf2
-__log__D
-__lttf2
-__multf3
-__netf2
-__sfp_handle_exceptions
-__signbit
-__signbitf
-__signbitl
-__subtf3
-__trunctfdf2
-__trunctfsf2
-_scan_nan
-acos
-acosf
-acosh
-acoshf
-acoshl
-acosl
-asin
-asinf
-asinh
-asinhf
-asinhl
-asinl
-atan
-atan2
-atan2f
-atan2l
-atanf
-atanh
-atanhf
-atanhl
-atanl
-cabs
-cabsf
-carg
-cargf
-cbrt
-cbrtf
-cbrtl
-ccos
-ccosf
-ccosh
-ccoshf
-ceil
-ceilf
-ceill
-cexp
-cexpf
-cimag
-cimagf
-conj
-conjf
-copysign
-copysignf
-copysignl
-cos
-cosf
-cosh
-coshf
-coshl
-cosl
-cproj
-cprojf
-creal
-crealf
-csin
-csinf
-csinh
-csinhf
-csqrt
-csqrtf
-ctan
-ctanf
-ctanh
-ctanhf
-drem
-dremf
-erf
-erfc
-erfcf
-erfcl
-erff
-erfl
-exp
-exp2
-exp2f
-exp2l
-expf
-expl
-expm1
-expm1f
-expm1l
-fabs
-fabsf
-fabsl
-fdim
-fdimf
-fdiml
-feclearexcept
-fedisableexcept
-feenableexcept
-fegetenv
-fegetexcept
-fegetexceptflag
-fegetround
-feholdexcept
-feraiseexcept
-fesetenv
-fesetexceptflag
-fesetround
-fetestexcept
-feupdateenv
-finite
-finitef
-floor
-floorf
-floorl
-fma
-fmaf
-fmal
-fmax
-fmaxf
-fmaxl
-fmin
-fminf
-fminl
-fmod
-fmodf
-fmodl
-frexp
-frexpf
-frexpl
-gamma
-gamma_r
-gammaf
-gammaf_r
-hypot
-hypotf
-hypotl
-ilogb
-ilogbf
-ilogbl
-imprecise_coshl
-imprecise_erfcl
-imprecise_erfl
-imprecise_lgammal
-imprecise_powl
-imprecise_sinhl
-imprecise_tanhl
-imprecise_tgammal
-j0
-j0f
-j1
-j1f
-jn
-jnf
-ldexpf
-ldexpl
-lgamma
-lgamma_r
-lgammaf
-lgammaf_r
-lgammal
-llrint
-llrintf
-llrintl
-llround
-llroundf
-llroundl
-log
-log10
-log10f
-log10l
-log1p
-log1pf
-log1pl
-log2
-log2f
-log2l
-logb
-logbf
-logbl
-logf
-logl
-lrint
-lrintf
-lrintl
-lround
-lroundf
-lroundl
-modf
-modff
-modfl
-nan
-nanf
-nanl
-nearbyint
-nearbyintf
-nearbyintl
-nextafter
-nextafterf
-nextafterl
-nexttoward
-nexttowardf
-nexttowardl
-pow
-powf
-powl
-remainder
-remainderf
-remainderl
-remquo
-remquof
-remquol
-rint
-rintf
-rintl
-round
-roundf
-roundl
-scalb
-scalbf
-scalbln
-scalblnf
-scalblnl
-scalbn
-scalbnf
-scalbnl
-significand
-significandf
-significandl
-sin
-sincos
-sincosf
-sincosl
-sinf
-sinh
-sinhf
-sinhl
-sinl
-sqrt
-sqrtf
-sqrtl
-tan
-tanf
-tanh
-tanhf
-tanhl
-tanl
-tgamma
-tgammaf
-tgammal
-trunc
-truncf
-truncl
-y0
-y0f
-y1
-y1f
-yn
-ynf
diff --git a/ndk/platforms/android-20/arch-x86_64/symbols/libm.so.variables.txt b/ndk/platforms/android-20/arch-x86_64/symbols/libm.so.variables.txt
deleted file mode 100644
index 9d7f213..0000000
--- a/ndk/platforms/android-20/arch-x86_64/symbols/libm.so.variables.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-_ItL_aT
-_ItL_atanhi
-_ItL_atanlo
-_ItL_pS0
-_ItL_pS1
-_ItL_pS2
-_ItL_pS3
-_ItL_pS4
-_ItL_pS5
-_ItL_pS6
-_ItL_pS7
-_ItL_pS8
-_ItL_pS9
-_ItL_pi_lo
-_ItL_qS1
-_ItL_qS2
-_ItL_qS3
-_ItL_qS4
-_ItL_qS5
-_ItL_qS6
-_ItL_qS7
-_ItL_qS8
-_ItL_qS9
-__fe_dfl_env
-signgam
diff --git a/ndk/platforms/android-20/arch-x86_64/symbols/libstdc++.so.functions.txt b/ndk/platforms/android-20/arch-x86_64/symbols/libstdc++.so.functions.txt
deleted file mode 100644
index 991ae87..0000000
--- a/ndk/platforms/android-20/arch-x86_64/symbols/libstdc++.so.functions.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-_ZN9type_infoC1ERKS_
-_ZN9type_infoC1Ev
-_ZN9type_infoC2ERKS_
-_ZN9type_infoC2Ev
-_ZN9type_infoD0Ev
-_ZN9type_infoD1Ev
-_ZN9type_infoD2Ev
-_ZNK9type_info4nameEv
-_ZNK9type_info6beforeERKS_
-_ZNK9type_infoeqERKS_
-_ZNK9type_infoneERKS_
-_ZdaPv
-_ZdaPvRKSt9nothrow_t
-_ZdlPv
-_ZdlPvRKSt9nothrow_t
-_Znam
-_ZnamRKSt9nothrow_t
-_Znwm
-_ZnwmRKSt9nothrow_t
-__cxa_guard_abort
-__cxa_guard_acquire
-__cxa_guard_release
-__cxa_pure_virtual
diff --git a/ndk/platforms/android-20/arch-x86_64/symbols/libstdc++.so.variables.txt b/ndk/platforms/android-20/arch-x86_64/symbols/libstdc++.so.variables.txt
deleted file mode 100644
index d5aab66..0000000
--- a/ndk/platforms/android-20/arch-x86_64/symbols/libstdc++.so.variables.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-_ZSt7nothrow
-_ZTV9type_info
diff --git a/ndk/platforms/android-20/include/SLES/OpenSLES.h b/ndk/platforms/android-20/include/SLES/OpenSLES.h
new file mode 100644
index 0000000..8686997
--- /dev/null
+++ b/ndk/platforms/android-20/include/SLES/OpenSLES.h
@@ -0,0 +1,2774 @@
+/*
+ * Copyright (c) 2007-2009 The Khronos Group Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and /or associated documentation files (the "Materials "), to
+ * deal in the Materials without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Materials, and to permit persons to whom the Materials are
+ * furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Materials.
+ *
+ * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN THE
+ * MATERIALS.
+ *
+ * OpenSLES.h - OpenSL ES version 1.0.1
+ *
+ */
+
+/****************************************************************************/
+/* NOTE: This file is a standard OpenSL ES header file and should not be    */
+/* modified in any way.                                                     */
+/****************************************************************************/
+
+#ifndef OPENSL_ES_H_
+#define OPENSL_ES_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "OpenSLES_Platform.h"
+
+
+/*****************************************************************************/
+/* Common types, structures, and defines                                */
+/*****************************************************************************/
+
+#ifndef _KHRONOS_KEYS_
+#define _KHRONOS_KEYS_
+
+#define KHRONOS_TITLE "KhronosTitle"
+#define KHRONOS_ALBUM "KhronosAlbum"
+#define KHRONOS_TRACK_NUMBER "KhronosTrackNumber"
+#define KHRONOS_ARTIST "KhronosArtist"
+#define KHRONOS_GENRE "KhronosGenre"
+#define KHRONOS_YEAR "KhronosYear"
+#define KHRONOS_COMMENT "KhronosComment"
+#define KHRONOS_ARTIST_URL "KhronosArtistURL"
+#define KHRONOS_CONTENT_URL "KhronosContentURL"
+#define KHRONOS_RATING "KhronosRating"
+#define KHRONOS_ALBUM_ART "KhronosAlbumArt"
+#define KHRONOS_COPYRIGHT "KhronosCopyright"
+
+#endif
+
+
+/* remap common types to SL types for clarity */
+typedef sl_int8_t              SLint8;          /* 8 bit signed integer  */
+typedef sl_uint8_t             SLuint8;         /* 8 bit unsigned integer */
+typedef sl_int16_t             SLint16;         /* 16 bit signed integer */
+typedef sl_uint16_t            SLuint16;        /* 16 bit unsigned integer */
+typedef sl_int32_t             SLint32;           /* 32 bit signed integer */
+typedef sl_uint32_t            SLuint32;          /* 32 bit unsigned integer */
+
+typedef SLuint32                    SLboolean;
+#define SL_BOOLEAN_FALSE            ((SLboolean) 0x00000000)
+#define SL_BOOLEAN_TRUE             ((SLboolean) 0x00000001)
+
+typedef SLuint8						SLchar;			/* UTF-8 is to be used */
+typedef SLint16						SLmillibel;
+typedef SLuint32					SLmillisecond;
+typedef SLuint32					SLmilliHertz;
+typedef SLint32						SLmillimeter;
+typedef SLint32						SLmillidegree;
+typedef SLint16						SLpermille;
+typedef SLuint32					SLmicrosecond;
+typedef SLuint32					SLresult;
+
+#define SL_MILLIBEL_MAX 	((SLmillibel) 0x7FFF)
+#define SL_MILLIBEL_MIN 	((SLmillibel) (-SL_MILLIBEL_MAX-1))
+
+#define SL_MILLIHERTZ_MAX	((SLmilliHertz) 0xFFFFFFFF)
+#define SL_MILLIMETER_MAX	((SLmillimeter) 0x7FFFFFFF)
+
+/** Interface ID defined as a UUID */
+typedef const struct SLInterfaceID_ {
+    SLuint32 time_low;
+    SLuint16 time_mid;
+    SLuint16 time_hi_and_version;
+    SLuint16 clock_seq;
+    SLuint8  node[6];
+} * SLInterfaceID;
+
+/* Forward declaration for the object interface */
+struct SLObjectItf_;
+
+typedef const struct SLObjectItf_ * const * SLObjectItf;
+
+/* Objects ID's */
+
+#define SL_OBJECTID_ENGINE			((SLuint32) 0x00001001)
+#define SL_OBJECTID_LEDDEVICE		((SLuint32) 0x00001002)
+#define SL_OBJECTID_VIBRADEVICE		((SLuint32) 0x00001003)
+#define SL_OBJECTID_AUDIOPLAYER		((SLuint32) 0x00001004)
+#define SL_OBJECTID_AUDIORECORDER	((SLuint32) 0x00001005)
+#define SL_OBJECTID_MIDIPLAYER		((SLuint32) 0x00001006)
+#define SL_OBJECTID_LISTENER		((SLuint32) 0x00001007)
+#define SL_OBJECTID_3DGROUP			((SLuint32) 0x00001008)
+#define SL_OBJECTID_OUTPUTMIX		((SLuint32) 0x00001009)
+#define SL_OBJECTID_METADATAEXTRACTOR	((SLuint32) 0x0000100A)
+
+
+/* SL Profiles */
+
+#define SL_PROFILES_PHONE	((SLuint16) 0x0001)
+#define SL_PROFILES_MUSIC	((SLuint16) 0x0002)
+#define SL_PROFILES_GAME	((SLuint16) 0x0004)
+
+/* Types of voices supported by the system */
+
+#define SL_VOICETYPE_2D_AUDIO		((SLuint16) 0x0001)
+#define SL_VOICETYPE_MIDI			((SLuint16) 0x0002)
+#define SL_VOICETYPE_3D_AUDIO 		((SLuint16) 0x0004)
+#define SL_VOICETYPE_3D_MIDIOUTPUT 	((SLuint16) 0x0008)
+
+/* Convenient macros representing various different priority levels, for use with the SetPriority method */
+
+#define SL_PRIORITY_LOWEST		((SLint32) (-0x7FFFFFFF-1))
+#define SL_PRIORITY_VERYLOW		((SLint32) -0x60000000)
+#define SL_PRIORITY_LOW			((SLint32) -0x40000000)
+#define SL_PRIORITY_BELOWNORMAL	((SLint32) -0x20000000)
+#define SL_PRIORITY_NORMAL		((SLint32) 0x00000000)
+#define SL_PRIORITY_ABOVENORMAL	((SLint32) 0x20000000)
+#define SL_PRIORITY_HIGH		((SLint32) 0x40000000)
+#define SL_PRIORITY_VERYHIGH	((SLint32) 0x60000000)
+#define SL_PRIORITY_HIGHEST	((SLint32) 0x7FFFFFFF)
+
+
+/** These macros list the various sample formats that are possible on audio input and output devices. */
+
+#define SL_PCMSAMPLEFORMAT_FIXED_8	((SLuint16) 0x0008)
+#define SL_PCMSAMPLEFORMAT_FIXED_16	((SLuint16) 0x0010)
+#define SL_PCMSAMPLEFORMAT_FIXED_20 	((SLuint16) 0x0014)
+#define SL_PCMSAMPLEFORMAT_FIXED_24	((SLuint16) 0x0018)
+#define SL_PCMSAMPLEFORMAT_FIXED_28 	((SLuint16) 0x001C)
+#define SL_PCMSAMPLEFORMAT_FIXED_32	((SLuint16) 0x0020)
+
+
+/** These macros specify the commonly used sampling rates (in milliHertz) supported by most audio I/O devices. */
+
+#define SL_SAMPLINGRATE_8		((SLuint32) 8000000)
+#define SL_SAMPLINGRATE_11_025	((SLuint32) 11025000)
+#define SL_SAMPLINGRATE_12		((SLuint32) 12000000)
+#define SL_SAMPLINGRATE_16		((SLuint32) 16000000)
+#define SL_SAMPLINGRATE_22_05	((SLuint32) 22050000)
+#define SL_SAMPLINGRATE_24		((SLuint32) 24000000)
+#define SL_SAMPLINGRATE_32		((SLuint32) 32000000)
+#define SL_SAMPLINGRATE_44_1	((SLuint32) 44100000)
+#define SL_SAMPLINGRATE_48		((SLuint32) 48000000)
+#define SL_SAMPLINGRATE_64		((SLuint32) 64000000)
+#define SL_SAMPLINGRATE_88_2	((SLuint32) 88200000)
+#define SL_SAMPLINGRATE_96		((SLuint32) 96000000)
+#define SL_SAMPLINGRATE_192	((SLuint32) 192000000)
+
+#define SL_SPEAKER_FRONT_LEFT			((SLuint32) 0x00000001)
+#define SL_SPEAKER_FRONT_RIGHT			((SLuint32) 0x00000002)
+#define SL_SPEAKER_FRONT_CENTER			((SLuint32) 0x00000004)
+#define SL_SPEAKER_LOW_FREQUENCY			((SLuint32) 0x00000008)
+#define SL_SPEAKER_BACK_LEFT			((SLuint32) 0x00000010)
+#define SL_SPEAKER_BACK_RIGHT			((SLuint32) 0x00000020)
+#define SL_SPEAKER_FRONT_LEFT_OF_CENTER	((SLuint32) 0x00000040)
+#define SL_SPEAKER_FRONT_RIGHT_OF_CENTER	((SLuint32) 0x00000080)
+#define SL_SPEAKER_BACK_CENTER			((SLuint32) 0x00000100)
+#define SL_SPEAKER_SIDE_LEFT			((SLuint32) 0x00000200)
+#define SL_SPEAKER_SIDE_RIGHT			((SLuint32) 0x00000400)
+#define SL_SPEAKER_TOP_CENTER			((SLuint32) 0x00000800)
+#define SL_SPEAKER_TOP_FRONT_LEFT		((SLuint32) 0x00001000)
+#define SL_SPEAKER_TOP_FRONT_CENTER		((SLuint32) 0x00002000)
+#define SL_SPEAKER_TOP_FRONT_RIGHT		((SLuint32) 0x00004000)
+#define SL_SPEAKER_TOP_BACK_LEFT			((SLuint32) 0x00008000)
+#define SL_SPEAKER_TOP_BACK_CENTER		((SLuint32) 0x00010000)
+#define SL_SPEAKER_TOP_BACK_RIGHT		((SLuint32) 0x00020000)
+
+
+/*****************************************************************************/
+/* Errors                                                                    */
+/*                                                                           */
+/*****************************************************************************/
+
+#define SL_RESULT_SUCCESS				((SLuint32) 0x00000000)
+#define SL_RESULT_PRECONDITIONS_VIOLATED	((SLuint32) 0x00000001)
+#define SL_RESULT_PARAMETER_INVALID		((SLuint32) 0x00000002)
+#define SL_RESULT_MEMORY_FAILURE			((SLuint32) 0x00000003)
+#define SL_RESULT_RESOURCE_ERROR			((SLuint32) 0x00000004)
+#define SL_RESULT_RESOURCE_LOST			((SLuint32) 0x00000005)
+#define SL_RESULT_IO_ERROR				((SLuint32) 0x00000006)
+#define SL_RESULT_BUFFER_INSUFFICIENT		((SLuint32) 0x00000007)
+#define SL_RESULT_CONTENT_CORRUPTED		((SLuint32) 0x00000008)
+#define SL_RESULT_CONTENT_UNSUPPORTED		((SLuint32) 0x00000009)
+#define SL_RESULT_CONTENT_NOT_FOUND		((SLuint32) 0x0000000A)
+#define SL_RESULT_PERMISSION_DENIED		((SLuint32) 0x0000000B)
+#define SL_RESULT_FEATURE_UNSUPPORTED		((SLuint32) 0x0000000C)
+#define SL_RESULT_INTERNAL_ERROR			((SLuint32) 0x0000000D)
+#define SL_RESULT_UNKNOWN_ERROR			((SLuint32) 0x0000000E)
+#define SL_RESULT_OPERATION_ABORTED		((SLuint32) 0x0000000F)
+#define SL_RESULT_CONTROL_LOST			((SLuint32) 0x00000010)
+
+
+/* Object state definitions */
+
+#define SL_OBJECT_STATE_UNREALIZED	((SLuint32) 0x00000001)
+#define SL_OBJECT_STATE_REALIZED		((SLuint32) 0x00000002)
+#define SL_OBJECT_STATE_SUSPENDED	((SLuint32) 0x00000003)
+
+/* Object event definitions */
+
+#define SL_OBJECT_EVENT_RUNTIME_ERROR			((SLuint32) 0x00000001)
+#define SL_OBJECT_EVENT_ASYNC_TERMINATION		((SLuint32) 0x00000002)
+#define SL_OBJECT_EVENT_RESOURCES_LOST			((SLuint32) 0x00000003)
+#define SL_OBJECT_EVENT_RESOURCES_AVAILABLE		((SLuint32) 0x00000004)
+#define SL_OBJECT_EVENT_ITF_CONTROL_TAKEN		((SLuint32) 0x00000005)
+#define SL_OBJECT_EVENT_ITF_CONTROL_RETURNED		((SLuint32) 0x00000006)
+#define SL_OBJECT_EVENT_ITF_PARAMETERS_CHANGED	((SLuint32) 0x00000007)
+
+
+/*****************************************************************************/
+/* Interface definitions                                                     */
+/*****************************************************************************/
+
+/** NULL Interface */
+
+extern SL_API const SLInterfaceID SL_IID_NULL;
+
+/*---------------------------------------------------------------------------*/
+/* Data Source and Data Sink Structures                                      */
+/*---------------------------------------------------------------------------*/
+
+/** Data locator macros  */
+#define SL_DATALOCATOR_URI			((SLuint32) 0x00000001)
+#define SL_DATALOCATOR_ADDRESS		((SLuint32) 0x00000002)
+#define SL_DATALOCATOR_IODEVICE		((SLuint32) 0x00000003)
+#define SL_DATALOCATOR_OUTPUTMIX		((SLuint32) 0x00000004)
+#define SL_DATALOCATOR_RESERVED5		((SLuint32) 0x00000005)
+#define SL_DATALOCATOR_BUFFERQUEUE	((SLuint32) 0x00000006)
+#define SL_DATALOCATOR_MIDIBUFFERQUEUE	((SLuint32) 0x00000007)
+#define SL_DATALOCATOR_RESERVED8		((SLuint32) 0x00000008)
+
+
+
+/** URI-based data locator definition where locatorType must be SL_DATALOCATOR_URI*/
+typedef struct SLDataLocator_URI_ {
+	SLuint32 		locatorType;
+	SLchar *		URI;
+} SLDataLocator_URI;
+
+/** Address-based data locator definition where locatorType must be SL_DATALOCATOR_ADDRESS*/
+typedef struct SLDataLocator_Address_ {
+	SLuint32 	locatorType;
+	void 		*pAddress;
+	SLuint32	length;
+} SLDataLocator_Address;
+
+/** IODevice-types */
+#define SL_IODEVICE_AUDIOINPUT	((SLuint32) 0x00000001)
+#define SL_IODEVICE_LEDARRAY	((SLuint32) 0x00000002)
+#define SL_IODEVICE_VIBRA		((SLuint32) 0x00000003)
+#define SL_IODEVICE_RESERVED4	((SLuint32) 0x00000004)
+#define SL_IODEVICE_RESERVED5	((SLuint32) 0x00000005)
+
+/** IODevice-based data locator definition where locatorType must be SL_DATALOCATOR_IODEVICE*/
+typedef struct SLDataLocator_IODevice_ {
+	SLuint32	locatorType;
+	SLuint32	deviceType;
+	SLuint32	deviceID;
+	SLObjectItf	device;
+} SLDataLocator_IODevice;
+
+/** OutputMix-based data locator definition where locatorType must be SL_DATALOCATOR_OUTPUTMIX*/
+typedef struct SLDataLocator_OutputMix {
+	SLuint32 		locatorType;
+	SLObjectItf		outputMix;
+} SLDataLocator_OutputMix;
+
+
+/** BufferQueue-based data locator definition where locatorType must be SL_DATALOCATOR_BUFFERQUEUE*/
+typedef struct SLDataLocator_BufferQueue {
+	SLuint32	locatorType;
+	SLuint32	numBuffers;
+} SLDataLocator_BufferQueue;
+
+/** MidiBufferQueue-based data locator definition where locatorType must be SL_DATALOCATOR_MIDIBUFFERQUEUE*/
+typedef struct SLDataLocator_MIDIBufferQueue {
+	SLuint32	locatorType;
+	SLuint32	tpqn;
+	SLuint32	numBuffers;
+} SLDataLocator_MIDIBufferQueue;
+
+/** Data format defines */
+#define SL_DATAFORMAT_MIME		((SLuint32) 0x00000001)
+#define SL_DATAFORMAT_PCM		((SLuint32) 0x00000002)
+#define SL_DATAFORMAT_RESERVED3	((SLuint32) 0x00000003)
+
+
+/** MIME-type-based data format definition where formatType must be SL_DATAFORMAT_MIME*/
+typedef struct SLDataFormat_MIME_ {
+	SLuint32 		formatType;
+	SLchar * 		mimeType;
+	SLuint32		containerType;
+} SLDataFormat_MIME;
+
+/* Byte order of a block of 16- or 32-bit data */
+#define SL_BYTEORDER_BIGENDIAN				((SLuint32) 0x00000001)
+#define SL_BYTEORDER_LITTLEENDIAN			((SLuint32) 0x00000002)
+
+/* Container type */
+#define SL_CONTAINERTYPE_UNSPECIFIED	((SLuint32) 0x00000001)
+#define SL_CONTAINERTYPE_RAW		((SLuint32) 0x00000002)
+#define SL_CONTAINERTYPE_ASF		((SLuint32) 0x00000003)
+#define SL_CONTAINERTYPE_AVI		((SLuint32) 0x00000004)
+#define SL_CONTAINERTYPE_BMP		((SLuint32) 0x00000005)
+#define SL_CONTAINERTYPE_JPG		((SLuint32) 0x00000006)
+#define SL_CONTAINERTYPE_JPG2000		((SLuint32) 0x00000007)
+#define SL_CONTAINERTYPE_M4A		((SLuint32) 0x00000008)
+#define SL_CONTAINERTYPE_MP3		((SLuint32) 0x00000009)
+#define SL_CONTAINERTYPE_MP4		((SLuint32) 0x0000000A)
+#define SL_CONTAINERTYPE_MPEG_ES		((SLuint32) 0x0000000B)
+#define SL_CONTAINERTYPE_MPEG_PS		((SLuint32) 0x0000000C)
+#define SL_CONTAINERTYPE_MPEG_TS		((SLuint32) 0x0000000D)
+#define SL_CONTAINERTYPE_QT		((SLuint32) 0x0000000E)
+#define SL_CONTAINERTYPE_WAV		((SLuint32) 0x0000000F)
+#define SL_CONTAINERTYPE_XMF_0		((SLuint32) 0x00000010)
+#define SL_CONTAINERTYPE_XMF_1		((SLuint32) 0x00000011)
+#define SL_CONTAINERTYPE_XMF_2		((SLuint32) 0x00000012)
+#define SL_CONTAINERTYPE_XMF_3		((SLuint32) 0x00000013)
+#define SL_CONTAINERTYPE_XMF_GENERIC	((SLuint32) 0x00000014)
+#define SL_CONTAINERTYPE_AMR  		((SLuint32) 0x00000015)
+#define SL_CONTAINERTYPE_AAC		((SLuint32) 0x00000016)
+#define SL_CONTAINERTYPE_3GPP		((SLuint32) 0x00000017)
+#define SL_CONTAINERTYPE_3GA		((SLuint32) 0x00000018)
+#define SL_CONTAINERTYPE_RM		((SLuint32) 0x00000019)
+#define SL_CONTAINERTYPE_DMF		((SLuint32) 0x0000001A)
+#define SL_CONTAINERTYPE_SMF		((SLuint32) 0x0000001B)
+#define SL_CONTAINERTYPE_MOBILE_DLS	((SLuint32) 0x0000001C)
+#define SL_CONTAINERTYPE_OGG	((SLuint32) 0x0000001D)
+
+
+/** PCM-type-based data format definition where formatType must be SL_DATAFORMAT_PCM*/
+typedef struct SLDataFormat_PCM_ {
+	SLuint32 		formatType;
+	SLuint32 		numChannels;
+	SLuint32 		samplesPerSec;
+	SLuint32 		bitsPerSample;
+	SLuint32 		containerSize;
+	SLuint32 		channelMask;
+	SLuint32		endianness;
+} SLDataFormat_PCM;
+
+typedef struct SLDataSource_ {
+	void *pLocator;
+	void *pFormat;
+} SLDataSource;
+
+
+typedef struct SLDataSink_ {
+	void *pLocator;
+	void *pFormat;
+} SLDataSink;
+
+
+
+
+
+
+/*---------------------------------------------------------------------------*/
+/* Standard Object Interface                                                 */
+/*---------------------------------------------------------------------------*/
+
+extern SL_API const SLInterfaceID SL_IID_OBJECT;
+
+/** Object callback */
+
+
+typedef void (SLAPIENTRY *slObjectCallback) (
+	SLObjectItf caller,
+	const void * pContext,
+	SLuint32 event,
+	SLresult result,
+    SLuint32 param,
+    void *pInterface
+);
+
+
+struct SLObjectItf_ {
+	SLresult (*Realize) (
+		SLObjectItf self,
+		SLboolean async
+	);
+	SLresult (*Resume) (
+		SLObjectItf self,
+		SLboolean async
+	);
+	SLresult (*GetState) (
+		SLObjectItf self,
+		SLuint32 * pState
+	);
+	SLresult (*GetInterface) (
+		SLObjectItf self,
+		const SLInterfaceID iid,
+		void * pInterface
+	);
+	SLresult (*RegisterCallback) (
+		SLObjectItf self,
+		slObjectCallback callback,
+		void * pContext
+	);
+	void (*AbortAsyncOperation) (
+		SLObjectItf self
+	);
+	void (*Destroy) (
+		SLObjectItf self
+	);
+	SLresult (*SetPriority) (
+		SLObjectItf self,
+		SLint32 priority,
+		SLboolean preemptable
+	);
+	SLresult (*GetPriority) (
+		SLObjectItf self,
+		SLint32 *pPriority,
+		SLboolean *pPreemptable
+	);
+	SLresult (*SetLossOfControlInterfaces) (
+		SLObjectItf self,
+		SLint16 numInterfaces,
+		SLInterfaceID * pInterfaceIDs,
+		SLboolean enabled
+	);
+};
+
+
+/*---------------------------------------------------------------------------*/
+/* Audio IO Device capabilities interface                                    */
+/*---------------------------------------------------------------------------*/
+
+#define SL_DEFAULTDEVICEID_AUDIOINPUT 	((SLuint32) 0xFFFFFFFF)
+#define SL_DEFAULTDEVICEID_AUDIOOUTPUT 	((SLuint32) 0xFFFFFFFE)
+#define SL_DEFAULTDEVICEID_LED          ((SLuint32) 0xFFFFFFFD)
+#define SL_DEFAULTDEVICEID_VIBRA        ((SLuint32) 0xFFFFFFFC)
+#define SL_DEFAULTDEVICEID_RESERVED1    ((SLuint32) 0xFFFFFFFB)
+
+
+#define SL_DEVCONNECTION_INTEGRATED         ((SLint16) 0x0001)
+#define SL_DEVCONNECTION_ATTACHED_WIRED     ((SLint16) 0x0100)
+#define SL_DEVCONNECTION_ATTACHED_WIRELESS  ((SLint16) 0x0200)
+#define SL_DEVCONNECTION_NETWORK 		    ((SLint16) 0x0400)
+
+
+#define SL_DEVLOCATION_HANDSET 	((SLuint16) 0x0001)
+#define SL_DEVLOCATION_HEADSET 	((SLuint16) 0x0002)
+#define SL_DEVLOCATION_CARKIT 	((SLuint16) 0x0003)
+#define SL_DEVLOCATION_DOCK 	((SLuint16) 0x0004)
+#define SL_DEVLOCATION_REMOTE 	((SLuint16) 0x0005)
+/* Note: SL_DEVLOCATION_RESLTE is deprecated, use SL_DEVLOCATION_REMOTE instead. */
+#define SL_DEVLOCATION_RESLTE 	((SLuint16) 0x0005)
+
+
+#define SL_DEVSCOPE_UNKNOWN     ((SLuint16) 0x0001)
+#define SL_DEVSCOPE_ENVIRONMENT ((SLuint16) 0x0002)
+#define SL_DEVSCOPE_USER        ((SLuint16) 0x0003)
+
+
+typedef struct SLAudioInputDescriptor_ {
+	SLchar *deviceName;
+	SLint16 deviceConnection;
+	SLint16 deviceScope;
+	SLint16 deviceLocation;
+	SLboolean isForTelephony;
+	SLmilliHertz minSampleRate;
+	SLmilliHertz maxSampleRate;
+	SLboolean isFreqRangeContinuous;
+	SLmilliHertz *samplingRatesSupported;
+	SLint16 numOfSamplingRatesSupported;
+	SLint16 maxChannels;
+} SLAudioInputDescriptor;
+
+
+typedef struct SLAudioOutputDescriptor_ {
+	SLchar *pDeviceName;
+	SLint16 deviceConnection;
+	SLint16 deviceScope;
+	SLint16 deviceLocation;
+	SLboolean isForTelephony;
+	SLmilliHertz minSampleRate;
+	SLmilliHertz maxSampleRate;
+	SLboolean isFreqRangeContinuous;
+	SLmilliHertz *samplingRatesSupported;
+	SLint16 numOfSamplingRatesSupported;
+	SLint16 maxChannels;
+} SLAudioOutputDescriptor;
+
+
+
+extern SL_API const SLInterfaceID SL_IID_AUDIOIODEVICECAPABILITIES;
+
+struct SLAudioIODeviceCapabilitiesItf_;
+typedef const struct SLAudioIODeviceCapabilitiesItf_ * const * SLAudioIODeviceCapabilitiesItf;
+
+
+typedef void (SLAPIENTRY *slAvailableAudioInputsChangedCallback) (
+	SLAudioIODeviceCapabilitiesItf caller,
+	void *pContext,
+	SLuint32 deviceID,
+	SLint32 numInputs,
+	SLboolean isNew
+);
+
+
+typedef void (SLAPIENTRY *slAvailableAudioOutputsChangedCallback) (
+	SLAudioIODeviceCapabilitiesItf caller,
+	void *pContext,
+	SLuint32 deviceID,
+	SLint32 numOutputs,
+	SLboolean isNew
+);
+
+typedef void (SLAPIENTRY *slDefaultDeviceIDMapChangedCallback) (
+	SLAudioIODeviceCapabilitiesItf caller,
+	void *pContext,
+	SLboolean isOutput,
+	SLint32 numDevices
+);
+
+
+struct SLAudioIODeviceCapabilitiesItf_ {
+	SLresult (*GetAvailableAudioInputs)(
+		SLAudioIODeviceCapabilitiesItf self,
+		SLint32  *pNumInputs,
+		SLuint32 *pInputDeviceIDs
+	);
+	SLresult (*QueryAudioInputCapabilities)(
+		SLAudioIODeviceCapabilitiesItf self,
+		SLuint32 deviceId,
+		SLAudioInputDescriptor *pDescriptor
+	);
+	SLresult (*RegisterAvailableAudioInputsChangedCallback) (
+		SLAudioIODeviceCapabilitiesItf self,
+		slAvailableAudioInputsChangedCallback callback,
+		void *pContext
+	);
+	SLresult (*GetAvailableAudioOutputs)(
+		SLAudioIODeviceCapabilitiesItf self,
+		SLint32 *pNumOutputs,
+		SLuint32 *pOutputDeviceIDs
+	);
+	SLresult (*QueryAudioOutputCapabilities)(
+		SLAudioIODeviceCapabilitiesItf self,
+		SLuint32 deviceId,
+		SLAudioOutputDescriptor *pDescriptor
+	);
+	SLresult (*RegisterAvailableAudioOutputsChangedCallback) (
+		SLAudioIODeviceCapabilitiesItf self,
+		slAvailableAudioOutputsChangedCallback callback,
+		void *pContext
+	);
+	SLresult (*RegisterDefaultDeviceIDMapChangedCallback) (
+		SLAudioIODeviceCapabilitiesItf self,
+		slDefaultDeviceIDMapChangedCallback callback,
+		void *pContext
+	);
+	SLresult (*GetAssociatedAudioInputs) (
+		SLAudioIODeviceCapabilitiesItf self,
+		SLuint32 deviceId,
+		SLint32 *pNumAudioInputs,
+		SLuint32 *pAudioInputDeviceIDs
+	);
+	SLresult (*GetAssociatedAudioOutputs) (
+		SLAudioIODeviceCapabilitiesItf self,
+		SLuint32 deviceId,
+		SLint32 *pNumAudioOutputs,
+		SLuint32 *pAudioOutputDeviceIDs
+	);
+	SLresult (*GetDefaultAudioDevices) (
+		SLAudioIODeviceCapabilitiesItf self,
+		SLuint32 defaultDeviceID,
+		SLint32 *pNumAudioDevices,
+		SLuint32 *pAudioDeviceIDs
+	);
+	SLresult (*QuerySampleFormatsSupported)(
+		SLAudioIODeviceCapabilitiesItf self,
+		SLuint32 deviceId,
+		SLmilliHertz samplingRate,
+		SLint32 *pSampleFormats,
+		SLint32 *pNumOfSampleFormats
+	);
+};
+
+
+
+/*---------------------------------------------------------------------------*/
+/* Capabilities of the LED array IODevice                                    */
+/*---------------------------------------------------------------------------*/
+
+typedef struct SLLEDDescriptor_ {
+	SLuint8   ledCount;
+	SLuint8   primaryLED;
+	SLuint32  colorMask;
+} SLLEDDescriptor;
+
+
+/*---------------------------------------------------------------------------*/
+/* LED Array interface                                                       */
+/*---------------------------------------------------------------------------*/
+
+typedef struct SLHSL_ {
+    SLmillidegree  hue;
+    SLpermille     saturation;
+    SLpermille     lightness;
+} SLHSL;
+
+
+extern SL_API const SLInterfaceID SL_IID_LED;
+
+struct SLLEDArrayItf_;
+typedef const struct SLLEDArrayItf_ * const * SLLEDArrayItf;
+
+struct SLLEDArrayItf_ {
+	SLresult (*ActivateLEDArray) (
+		SLLEDArrayItf self,
+		SLuint32 lightMask
+	);
+	SLresult (*IsLEDArrayActivated) (
+		SLLEDArrayItf self,
+		SLuint32 *lightMask
+	);
+	SLresult (*SetColor) (
+		SLLEDArrayItf self,
+		SLuint8 index,
+		const SLHSL *color
+	);
+	SLresult (*GetColor) (
+		SLLEDArrayItf self,
+		SLuint8 index,
+		SLHSL *color
+	);
+};
+
+/*---------------------------------------------------------------------------*/
+/* Capabilities of the Vibra IODevice                                        */
+/*---------------------------------------------------------------------------*/
+
+typedef struct SLVibraDescriptor_ {
+	SLboolean supportsFrequency;
+	SLboolean supportsIntensity;
+	SLmilliHertz  minFrequency;
+	SLmilliHertz  maxFrequency;
+} SLVibraDescriptor;
+
+
+
+/*---------------------------------------------------------------------------*/
+/* Vibra interface                                                           */
+/*---------------------------------------------------------------------------*/
+
+
+extern SL_API const SLInterfaceID SL_IID_VIBRA;
+
+
+struct SLVibraItf_;
+typedef const struct SLVibraItf_ * const * SLVibraItf;
+
+struct SLVibraItf_ {
+	SLresult (*Vibrate) (
+		SLVibraItf self,
+		SLboolean vibrate
+	);
+	SLresult (*IsVibrating) (
+		SLVibraItf self,
+		SLboolean *pVibrating
+	);
+	SLresult (*SetFrequency) (
+		SLVibraItf self,
+		SLmilliHertz frequency
+	);
+	SLresult (*GetFrequency) (
+		SLVibraItf self,
+		SLmilliHertz *pFrequency
+	);
+	SLresult (*SetIntensity) (
+		SLVibraItf self,
+		SLpermille intensity
+	);
+	SLresult (*GetIntensity) (
+		SLVibraItf self,
+		SLpermille *pIntensity
+	);
+};
+
+
+/*---------------------------------------------------------------------------*/
+/* Meta data extraction related types and interface                          */
+/*---------------------------------------------------------------------------*/
+
+#define SL_CHARACTERENCODING_UNKNOWN			((SLuint32) 0x00000000)
+#define SL_CHARACTERENCODING_BINARY       ((SLuint32) 0x00000001)
+#define SL_CHARACTERENCODING_ASCII        ((SLuint32) 0x00000002)
+#define SL_CHARACTERENCODING_BIG5         ((SLuint32) 0x00000003)
+#define SL_CHARACTERENCODING_CODEPAGE1252		((SLuint32) 0x00000004)
+#define SL_CHARACTERENCODING_GB2312			((SLuint32) 0x00000005)
+#define SL_CHARACTERENCODING_HZGB2312			((SLuint32) 0x00000006)
+#define SL_CHARACTERENCODING_GB12345			((SLuint32) 0x00000007)
+#define SL_CHARACTERENCODING_GB18030			((SLuint32) 0x00000008)
+#define SL_CHARACTERENCODING_GBK				((SLuint32) 0x00000009)
+#define SL_CHARACTERENCODING_IMAPUTF7			((SLuint32) 0x0000000A)
+#define SL_CHARACTERENCODING_ISO2022JP			((SLuint32) 0x0000000B)
+#define SL_CHARACTERENCODING_ISO2022JP1		((SLuint32) 0x0000000B)
+#define SL_CHARACTERENCODING_ISO88591			((SLuint32) 0x0000000C)
+#define SL_CHARACTERENCODING_ISO885910			((SLuint32) 0x0000000D)
+#define SL_CHARACTERENCODING_ISO885913			((SLuint32) 0x0000000E)
+#define SL_CHARACTERENCODING_ISO885914			((SLuint32) 0x0000000F)
+#define SL_CHARACTERENCODING_ISO885915			((SLuint32) 0x00000010)
+#define SL_CHARACTERENCODING_ISO88592			((SLuint32) 0x00000011)
+#define SL_CHARACTERENCODING_ISO88593			((SLuint32) 0x00000012)
+#define SL_CHARACTERENCODING_ISO88594			((SLuint32) 0x00000013)
+#define SL_CHARACTERENCODING_ISO88595			((SLuint32) 0x00000014)
+#define SL_CHARACTERENCODING_ISO88596			((SLuint32) 0x00000015)
+#define SL_CHARACTERENCODING_ISO88597			((SLuint32) 0x00000016)
+#define SL_CHARACTERENCODING_ISO88598			((SLuint32) 0x00000017)
+#define SL_CHARACTERENCODING_ISO88599			((SLuint32) 0x00000018)
+#define SL_CHARACTERENCODING_ISOEUCJP			((SLuint32) 0x00000019)
+#define SL_CHARACTERENCODING_SHIFTJIS			((SLuint32) 0x0000001A)
+#define SL_CHARACTERENCODING_SMS7BIT			((SLuint32) 0x0000001B)
+#define SL_CHARACTERENCODING_UTF7			((SLuint32) 0x0000001C)
+#define SL_CHARACTERENCODING_UTF8			((SLuint32) 0x0000001D)
+#define SL_CHARACTERENCODING_JAVACONFORMANTUTF8	((SLuint32) 0x0000001E)
+#define SL_CHARACTERENCODING_UTF16BE			((SLuint32) 0x0000001F)
+#define SL_CHARACTERENCODING_UTF16LE			((SLuint32) 0x00000020)
+
+
+#define SL_METADATA_FILTER_KEY		((SLuint8) 0x01)
+#define SL_METADATA_FILTER_LANG		((SLuint8) 0x02)
+#define SL_METADATA_FILTER_ENCODING	((SLuint8) 0x04)
+
+
+typedef struct SLMetadataInfo_ {
+    SLuint32     size;
+    SLuint32     encoding;
+    SLchar       langCountry[16];
+    SLuint8      data[1];
+} SLMetadataInfo;
+
+extern SL_API const SLInterfaceID SL_IID_METADATAEXTRACTION;
+
+struct SLMetadataExtractionItf_;
+typedef const struct SLMetadataExtractionItf_ * const * SLMetadataExtractionItf;
+
+
+struct SLMetadataExtractionItf_ {
+	SLresult (*GetItemCount) (
+		SLMetadataExtractionItf self,
+		SLuint32 *pItemCount
+	);
+	SLresult (*GetKeySize) (
+		SLMetadataExtractionItf self,
+		SLuint32 index,
+		SLuint32 *pKeySize
+	);
+	SLresult (*GetKey) (
+		SLMetadataExtractionItf self,
+		SLuint32 index,
+		SLuint32 keySize,
+		SLMetadataInfo *pKey
+	);
+	SLresult (*GetValueSize) (
+		SLMetadataExtractionItf self,
+		SLuint32 index,
+		SLuint32 *pValueSize
+	);
+	SLresult (*GetValue) (
+		SLMetadataExtractionItf self,
+		SLuint32 index,
+		SLuint32 valueSize,
+		SLMetadataInfo *pValue
+	);
+	SLresult (*AddKeyFilter) (
+		SLMetadataExtractionItf self,
+		SLuint32 keySize,
+		const void *pKey,
+		SLuint32 keyEncoding,
+		const SLchar *pValueLangCountry,
+		SLuint32 valueEncoding,
+		SLuint8 filterMask
+	);
+	SLresult (*ClearKeyFilter) (
+		SLMetadataExtractionItf self
+	);
+};
+
+
+/*---------------------------------------------------------------------------*/
+/* Meta data traversal related types and interface                          */
+/*---------------------------------------------------------------------------*/
+
+#define SL_METADATATRAVERSALMODE_ALL	((SLuint32) 0x00000001)
+#define SL_METADATATRAVERSALMODE_NODE	((SLuint32) 0x00000002)
+
+
+#define SL_NODETYPE_UNSPECIFIED	((SLuint32) 0x00000001)
+#define SL_NODETYPE_AUDIO		((SLuint32) 0x00000002)
+#define SL_NODETYPE_VIDEO		((SLuint32) 0x00000003)
+#define SL_NODETYPE_IMAGE		((SLuint32) 0x00000004)
+
+#define SL_NODE_PARENT 0xFFFFFFFF
+
+extern SL_API const SLInterfaceID SL_IID_METADATATRAVERSAL;
+
+struct SLMetadataTraversalItf_;
+typedef const struct SLMetadataTraversalItf_ * const * SLMetadataTraversalItf;
+
+struct SLMetadataTraversalItf_ {
+	SLresult (*SetMode) (
+		SLMetadataTraversalItf self,
+		SLuint32 mode
+	);
+	SLresult (*GetChildCount) (
+		SLMetadataTraversalItf self,
+		SLuint32 *pCount
+	);
+	SLresult (*GetChildMIMETypeSize) (
+		SLMetadataTraversalItf self,
+		SLuint32 index,
+		SLuint32 *pSize
+	);
+	SLresult (*GetChildInfo) (
+		SLMetadataTraversalItf self,
+		SLuint32 index,
+		SLint32 *pNodeID,
+		SLuint32 *pType,
+		SLuint32 size,
+		SLchar *pMimeType
+	);
+	SLresult (*SetActiveNode) (
+		SLMetadataTraversalItf self,
+		SLuint32 index
+	);
+};
+
+/*---------------------------------------------------------------------------*/
+/* Dynamic Source types and interface                                        */
+/*---------------------------------------------------------------------------*/
+
+extern SL_API const SLInterfaceID SL_IID_DYNAMICSOURCE;
+
+struct SLDynamicSourceItf_;
+typedef const struct SLDynamicSourceItf_ * const * SLDynamicSourceItf;
+
+struct SLDynamicSourceItf_ {
+	SLresult (*SetSource) (
+		SLDynamicSourceItf self,
+		SLDataSource *pDataSource
+	);
+};
+
+/*---------------------------------------------------------------------------*/
+/* Output Mix interface                                                      */
+/*---------------------------------------------------------------------------*/
+
+extern SL_API const SLInterfaceID SL_IID_OUTPUTMIX;
+
+struct SLOutputMixItf_;
+typedef const struct SLOutputMixItf_ * const * SLOutputMixItf;
+
+typedef void (SLAPIENTRY *slMixDeviceChangeCallback) (
+	SLOutputMixItf caller,
+    void *pContext
+);
+
+
+struct SLOutputMixItf_ {
+	SLresult (*GetDestinationOutputDeviceIDs) (
+		SLOutputMixItf self,
+		SLint32 *pNumDevices,
+		SLuint32 *pDeviceIDs
+	);
+	SLresult (*RegisterDeviceChangeCallback) (
+		SLOutputMixItf self,
+		slMixDeviceChangeCallback callback,
+		void *pContext
+    );
+    SLresult (*ReRoute)(
+        SLOutputMixItf self,
+        SLint32 numOutputDevices,
+        SLuint32 *pOutputDeviceIDs
+    );
+};
+
+
+/*---------------------------------------------------------------------------*/
+/* Playback interface                                                        */
+/*---------------------------------------------------------------------------*/
+
+/** Playback states */
+#define SL_PLAYSTATE_STOPPED	((SLuint32) 0x00000001)
+#define SL_PLAYSTATE_PAUSED	((SLuint32) 0x00000002)
+#define SL_PLAYSTATE_PLAYING	((SLuint32) 0x00000003)
+
+/** Play events **/
+#define SL_PLAYEVENT_HEADATEND		((SLuint32) 0x00000001)
+#define SL_PLAYEVENT_HEADATMARKER	((SLuint32) 0x00000002)
+#define SL_PLAYEVENT_HEADATNEWPOS	((SLuint32) 0x00000004)
+#define SL_PLAYEVENT_HEADMOVING		((SLuint32) 0x00000008)
+#define SL_PLAYEVENT_HEADSTALLED	((SLuint32) 0x00000010)
+
+#define SL_TIME_UNKNOWN	((SLuint32) 0xFFFFFFFF)
+
+
+extern SL_API const SLInterfaceID SL_IID_PLAY;
+
+/** Playback interface methods */
+
+struct SLPlayItf_;
+typedef const struct SLPlayItf_ * const * SLPlayItf;
+
+typedef void (SLAPIENTRY *slPlayCallback) (
+	SLPlayItf caller,
+	void *pContext,
+	SLuint32 event
+);
+
+struct SLPlayItf_ {
+	SLresult (*SetPlayState) (
+		SLPlayItf self,
+		SLuint32 state
+	);
+	SLresult (*GetPlayState) (
+		SLPlayItf self,
+		SLuint32 *pState
+	);
+	SLresult (*GetDuration) (
+		SLPlayItf self,
+		SLmillisecond *pMsec
+	);
+	SLresult (*GetPosition) (
+		SLPlayItf self,
+		SLmillisecond *pMsec
+	);
+	SLresult (*RegisterCallback) (
+		SLPlayItf self,
+		slPlayCallback callback,
+		void *pContext
+	);
+	SLresult (*SetCallbackEventsMask) (
+		SLPlayItf self,
+		SLuint32 eventFlags
+	);
+	SLresult (*GetCallbackEventsMask) (
+		SLPlayItf self,
+		SLuint32 *pEventFlags
+	);
+	SLresult (*SetMarkerPosition) (
+		SLPlayItf self,
+		SLmillisecond mSec
+	);
+	SLresult (*ClearMarkerPosition) (
+		SLPlayItf self
+	);
+	SLresult (*GetMarkerPosition) (
+		SLPlayItf self,
+		SLmillisecond *pMsec
+	);
+	SLresult (*SetPositionUpdatePeriod) (
+		SLPlayItf self,
+		SLmillisecond mSec
+	);
+	SLresult (*GetPositionUpdatePeriod) (
+		SLPlayItf self,
+		SLmillisecond *pMsec
+	);
+};
+
+/*---------------------------------------------------------------------------*/
+/* Prefetch status interface                                                 */
+/*---------------------------------------------------------------------------*/
+
+#define SL_PREFETCHEVENT_STATUSCHANGE		((SLuint32) 0x00000001)
+#define SL_PREFETCHEVENT_FILLLEVELCHANGE	((SLuint32) 0x00000002)
+
+#define SL_PREFETCHSTATUS_UNDERFLOW		((SLuint32) 0x00000001)
+#define SL_PREFETCHSTATUS_SUFFICIENTDATA	((SLuint32) 0x00000002)
+#define SL_PREFETCHSTATUS_OVERFLOW		((SLuint32) 0x00000003)
+
+
+extern SL_API const SLInterfaceID SL_IID_PREFETCHSTATUS;
+
+
+/** Prefetch status interface methods */
+
+struct SLPrefetchStatusItf_;
+typedef const struct SLPrefetchStatusItf_ * const * SLPrefetchStatusItf;
+
+typedef void (SLAPIENTRY *slPrefetchCallback) (
+	SLPrefetchStatusItf caller,
+	void *pContext,
+	SLuint32 event
+);
+
+struct SLPrefetchStatusItf_ {
+	SLresult (*GetPrefetchStatus) (
+		SLPrefetchStatusItf self,
+		SLuint32 *pStatus
+	);
+	SLresult (*GetFillLevel) (
+		SLPrefetchStatusItf self,
+		SLpermille *pLevel
+	);
+	SLresult (*RegisterCallback) (
+		SLPrefetchStatusItf self,
+		slPrefetchCallback callback,
+		void *pContext
+	);
+	SLresult (*SetCallbackEventsMask) (
+		SLPrefetchStatusItf self,
+		SLuint32 eventFlags
+	);
+	SLresult (*GetCallbackEventsMask) (
+		SLPrefetchStatusItf self,
+		SLuint32 *pEventFlags
+	);
+	SLresult (*SetFillUpdatePeriod) (
+		SLPrefetchStatusItf self,
+		SLpermille period
+	);
+	SLresult (*GetFillUpdatePeriod) (
+		SLPrefetchStatusItf self,
+		SLpermille *pPeriod
+	);
+};
+
+/*---------------------------------------------------------------------------*/
+/* Playback Rate interface                                                   */
+/*---------------------------------------------------------------------------*/
+
+#define SL_RATEPROP_RESERVED1		  		((SLuint32) 0x00000001)
+#define SL_RATEPROP_RESERVED2		  		((SLuint32) 0x00000002)
+#define SL_RATEPROP_SILENTAUDIO				((SLuint32) 0x00000100)
+#define SL_RATEPROP_STAGGEREDAUDIO	((SLuint32) 0x00000200)
+#define SL_RATEPROP_NOPITCHCORAUDIO	((SLuint32) 0x00000400)
+#define SL_RATEPROP_PITCHCORAUDIO	((SLuint32) 0x00000800)
+
+
+extern SL_API const SLInterfaceID SL_IID_PLAYBACKRATE;
+
+struct SLPlaybackRateItf_;
+typedef const struct SLPlaybackRateItf_ * const * SLPlaybackRateItf;
+
+struct SLPlaybackRateItf_ {
+	SLresult (*SetRate)(
+		SLPlaybackRateItf self,
+		SLpermille rate
+	);
+	SLresult (*GetRate)(
+		SLPlaybackRateItf self,
+		SLpermille *pRate
+	);
+	SLresult (*SetPropertyConstraints)(
+		SLPlaybackRateItf self,
+		SLuint32 constraints
+	);
+	SLresult (*GetProperties)(
+		SLPlaybackRateItf self,
+		SLuint32 *pProperties
+	);
+	SLresult (*GetCapabilitiesOfRate)(
+		SLPlaybackRateItf self,
+		SLpermille rate,
+		SLuint32 *pCapabilities
+	);
+	SLresult (*GetRateRange) (
+		SLPlaybackRateItf self,
+		SLuint8 index,
+		SLpermille *pMinRate,
+		SLpermille *pMaxRate,
+		SLpermille *pStepSize,
+		SLuint32 *pCapabilities
+	);
+};
+
+/*---------------------------------------------------------------------------*/
+/* Seek Interface                                                            */
+/*---------------------------------------------------------------------------*/
+
+#define SL_SEEKMODE_FAST		((SLuint32) 0x0001)
+#define SL_SEEKMODE_ACCURATE	((SLuint32) 0x0002)
+
+extern SL_API const SLInterfaceID SL_IID_SEEK;
+
+struct SLSeekItf_;
+typedef const struct SLSeekItf_ * const * SLSeekItf;
+
+struct SLSeekItf_ {
+	SLresult (*SetPosition)(
+		SLSeekItf self,
+		SLmillisecond pos,
+		SLuint32 seekMode
+	);
+	SLresult (*SetLoop)(
+		SLSeekItf self,
+		SLboolean loopEnable,
+		SLmillisecond startPos,
+		SLmillisecond endPos
+	);
+	SLresult (*GetLoop)(
+		SLSeekItf self,
+		SLboolean *pLoopEnabled,
+		SLmillisecond *pStartPos,
+		SLmillisecond *pEndPos
+	);
+};
+
+/*---------------------------------------------------------------------------*/
+/* Standard Recording Interface                                              */
+/*---------------------------------------------------------------------------*/
+
+/** Recording states */
+#define SL_RECORDSTATE_STOPPED 	((SLuint32) 0x00000001)
+#define SL_RECORDSTATE_PAUSED	((SLuint32) 0x00000002)
+#define SL_RECORDSTATE_RECORDING	((SLuint32) 0x00000003)
+
+
+/** Record event **/
+#define SL_RECORDEVENT_HEADATLIMIT	((SLuint32) 0x00000001)
+#define SL_RECORDEVENT_HEADATMARKER	((SLuint32) 0x00000002)
+#define SL_RECORDEVENT_HEADATNEWPOS	((SLuint32) 0x00000004)
+#define SL_RECORDEVENT_HEADMOVING	((SLuint32) 0x00000008)
+#define SL_RECORDEVENT_HEADSTALLED 	((SLuint32) 0x00000010)
+/* Note: SL_RECORDEVENT_BUFFER_INSUFFICIENT is deprecated, use SL_RECORDEVENT_BUFFER_FULL instead. */
+#define SL_RECORDEVENT_BUFFER_INSUFFICIENT      ((SLuint32) 0x00000020)
+#define SL_RECORDEVENT_BUFFER_FULL	((SLuint32) 0x00000020)
+
+
+extern SL_API const SLInterfaceID SL_IID_RECORD;
+
+struct SLRecordItf_;
+typedef const struct SLRecordItf_ * const * SLRecordItf;
+
+typedef void (SLAPIENTRY *slRecordCallback) (
+	SLRecordItf caller,
+	void *pContext,
+	SLuint32 event
+);
+
+/** Recording interface methods */
+struct SLRecordItf_ {
+	SLresult (*SetRecordState) (
+		SLRecordItf self,
+		SLuint32 state
+	);
+	SLresult (*GetRecordState) (
+		SLRecordItf self,
+		SLuint32 *pState
+	);
+	SLresult (*SetDurationLimit) (
+		SLRecordItf self,
+		SLmillisecond msec
+	);
+	SLresult (*GetPosition) (
+		SLRecordItf self,
+		SLmillisecond *pMsec
+	);
+	SLresult (*RegisterCallback) (
+		SLRecordItf self,
+		slRecordCallback callback,
+		void *pContext
+	);
+	SLresult (*SetCallbackEventsMask) (
+		SLRecordItf self,
+		SLuint32 eventFlags
+	);
+	SLresult (*GetCallbackEventsMask) (
+		SLRecordItf self,
+		SLuint32 *pEventFlags
+	);
+	SLresult (*SetMarkerPosition) (
+		SLRecordItf self,
+		SLmillisecond mSec
+	);
+	SLresult (*ClearMarkerPosition) (
+		SLRecordItf self
+	);
+	SLresult (*GetMarkerPosition) (
+		SLRecordItf self,
+		SLmillisecond *pMsec
+	);
+	SLresult (*SetPositionUpdatePeriod) (
+		SLRecordItf self,
+		SLmillisecond mSec
+	);
+	SLresult (*GetPositionUpdatePeriod) (
+		SLRecordItf self,
+		SLmillisecond *pMsec
+	);
+};
+
+/*---------------------------------------------------------------------------*/
+/* Equalizer interface                                                       */
+/*---------------------------------------------------------------------------*/
+
+#define SL_EQUALIZER_UNDEFINED				((SLuint16) 0xFFFF)
+
+extern SL_API const SLInterfaceID SL_IID_EQUALIZER;
+
+struct SLEqualizerItf_;
+typedef const struct SLEqualizerItf_ * const * SLEqualizerItf;
+
+struct SLEqualizerItf_ {
+	SLresult (*SetEnabled)(
+		SLEqualizerItf self,
+		SLboolean enabled
+	);
+	SLresult (*IsEnabled)(
+		SLEqualizerItf self,
+		SLboolean *pEnabled
+	);
+	SLresult (*GetNumberOfBands)(
+		SLEqualizerItf self,
+		SLuint16 *pAmount
+	);
+	SLresult (*GetBandLevelRange)(
+		SLEqualizerItf self,
+		SLmillibel *pMin,
+		SLmillibel *pMax
+	);
+	SLresult (*SetBandLevel)(
+		SLEqualizerItf self,
+		SLuint16 band,
+		SLmillibel level
+	);
+	SLresult (*GetBandLevel)(
+		SLEqualizerItf self,
+		SLuint16 band,
+		SLmillibel *pLevel
+	);
+	SLresult (*GetCenterFreq)(
+		SLEqualizerItf self,
+		SLuint16 band,
+		SLmilliHertz *pCenter
+	);
+	SLresult (*GetBandFreqRange)(
+		SLEqualizerItf self,
+		SLuint16 band,
+		SLmilliHertz *pMin,
+		SLmilliHertz *pMax
+	);
+	SLresult (*GetBand)(
+		SLEqualizerItf self,
+		SLmilliHertz frequency,
+		SLuint16 *pBand
+	);
+	SLresult (*GetCurrentPreset)(
+		SLEqualizerItf self,
+		SLuint16 *pPreset
+	);
+	SLresult (*UsePreset)(
+		SLEqualizerItf self,
+		SLuint16 index
+	);
+	SLresult (*GetNumberOfPresets)(
+		SLEqualizerItf self,
+		SLuint16 *pNumPresets
+	);
+	SLresult (*GetPresetName)(
+		SLEqualizerItf self,
+		SLuint16 index,
+		const SLchar ** ppName
+	);
+};
+
+/*---------------------------------------------------------------------------*/
+/* Volume Interface                                                           */
+/* --------------------------------------------------------------------------*/
+
+extern SL_API const SLInterfaceID SL_IID_VOLUME;
+
+struct SLVolumeItf_;
+typedef const struct SLVolumeItf_ * const * SLVolumeItf;
+
+struct SLVolumeItf_ {
+	SLresult (*SetVolumeLevel) (
+		SLVolumeItf self,
+		SLmillibel level
+	);
+	SLresult (*GetVolumeLevel) (
+		SLVolumeItf self,
+		SLmillibel *pLevel
+	);
+	SLresult (*GetMaxVolumeLevel) (
+		SLVolumeItf  self,
+		SLmillibel *pMaxLevel
+	);
+	SLresult (*SetMute) (
+		SLVolumeItf self,
+		SLboolean mute
+	);
+	SLresult (*GetMute) (
+		SLVolumeItf self,
+		SLboolean *pMute
+	);
+	SLresult (*EnableStereoPosition) (
+		SLVolumeItf self,
+		SLboolean enable
+	);
+	SLresult (*IsEnabledStereoPosition) (
+		SLVolumeItf self,
+		SLboolean *pEnable
+	);
+	SLresult (*SetStereoPosition) (
+		SLVolumeItf self,
+		SLpermille stereoPosition
+	);
+	SLresult (*GetStereoPosition) (
+		SLVolumeItf self,
+		SLpermille *pStereoPosition
+	);
+};
+
+
+/*---------------------------------------------------------------------------*/
+/* Device Volume Interface                                                   */
+/* --------------------------------------------------------------------------*/
+
+extern SL_API const SLInterfaceID SL_IID_DEVICEVOLUME;
+
+struct SLDeviceVolumeItf_;
+typedef const struct SLDeviceVolumeItf_ * const * SLDeviceVolumeItf;
+
+struct SLDeviceVolumeItf_ {
+	SLresult (*GetVolumeScale) (
+		SLDeviceVolumeItf self,
+		SLuint32 deviceID,
+		SLint32 *pMinValue,
+		SLint32 *pMaxValue,
+		SLboolean *pIsMillibelScale
+	);
+	SLresult (*SetVolume) (
+		SLDeviceVolumeItf self,
+		SLuint32 deviceID,
+		SLint32 volume
+	);
+	SLresult (*GetVolume) (
+		SLDeviceVolumeItf self,
+		SLuint32 deviceID,
+		SLint32 *pVolume
+	);
+};
+
+
+/*---------------------------------------------------------------------------*/
+/* Buffer Queue Interface                                                    */
+/*---------------------------------------------------------------------------*/
+
+extern SL_API const SLInterfaceID SL_IID_BUFFERQUEUE;
+
+struct SLBufferQueueItf_;
+typedef const struct SLBufferQueueItf_ * const * SLBufferQueueItf;
+
+typedef void (SLAPIENTRY *slBufferQueueCallback)(
+	SLBufferQueueItf caller,
+	void *pContext
+);
+
+/** Buffer queue state **/
+
+typedef struct SLBufferQueueState_ {
+	SLuint32	count;
+	SLuint32	playIndex;
+} SLBufferQueueState;
+
+
+struct SLBufferQueueItf_ {
+	SLresult (*Enqueue) (
+		SLBufferQueueItf self,
+		const void *pBuffer,
+		SLuint32 size
+	);
+	SLresult (*Clear) (
+		SLBufferQueueItf self
+	);
+	SLresult (*GetState) (
+		SLBufferQueueItf self,
+		SLBufferQueueState *pState
+	);
+	SLresult (*RegisterCallback) (
+		SLBufferQueueItf self,
+		slBufferQueueCallback callback,
+		void* pContext
+	);
+};
+
+
+/*---------------------------------------------------------------------------*/
+/* PresetReverb                                                              */
+/*---------------------------------------------------------------------------*/
+
+#define SL_REVERBPRESET_NONE		((SLuint16) 0x0000)
+#define SL_REVERBPRESET_SMALLROOM	((SLuint16) 0x0001)
+#define SL_REVERBPRESET_MEDIUMROOM	((SLuint16) 0x0002)
+#define SL_REVERBPRESET_LARGEROOM	((SLuint16) 0x0003)
+#define SL_REVERBPRESET_MEDIUMHALL	((SLuint16) 0x0004)
+#define SL_REVERBPRESET_LARGEHALL	((SLuint16) 0x0005)
+#define SL_REVERBPRESET_PLATE 		((SLuint16) 0x0006)
+
+
+extern SL_API const SLInterfaceID SL_IID_PRESETREVERB;
+
+struct SLPresetReverbItf_;
+typedef const struct SLPresetReverbItf_ * const * SLPresetReverbItf;
+
+struct SLPresetReverbItf_ {
+	SLresult (*SetPreset) (
+		SLPresetReverbItf self,
+		SLuint16 preset
+	);
+	SLresult (*GetPreset) (
+		SLPresetReverbItf self,
+		SLuint16 *pPreset
+	);
+};
+
+
+/*---------------------------------------------------------------------------*/
+/* EnvironmentalReverb                                                       */
+/*---------------------------------------------------------------------------*/
+
+#define SL_I3DL2_ENVIRONMENT_PRESET_DEFAULT \
+	{ SL_MILLIBEL_MIN,    0,  1000,   500, SL_MILLIBEL_MIN,  20, SL_MILLIBEL_MIN,  40, 1000,1000 }
+#define SL_I3DL2_ENVIRONMENT_PRESET_GENERIC \
+	{ -1000, -100, 1490,  830, -2602,   7,   200,  11, 1000,1000 }
+#define SL_I3DL2_ENVIRONMENT_PRESET_PADDEDCELL \
+	{ -1000,-6000,  170,  100, -1204,   1,   207,   2, 1000,1000 }
+#define SL_I3DL2_ENVIRONMENT_PRESET_ROOM \
+	{ -1000, -454,  400,  830, -1646,   2,    53,   3, 1000,1000 }
+#define SL_I3DL2_ENVIRONMENT_PRESET_BATHROOM \
+	{ -1000,-1200, 1490,  540,  -370,   7,  1030,  11, 1000, 600 }
+#define SL_I3DL2_ENVIRONMENT_PRESET_LIVINGROOM \
+	{ -1000,-6000,  500,  100, -1376,   3, -1104,   4, 1000,1000 }
+#define SL_I3DL2_ENVIRONMENT_PRESET_STONEROOM \
+	{ -1000, -300, 2310,  640,  -711,  12,    83,  17, 1000,1000 }
+#define SL_I3DL2_ENVIRONMENT_PRESET_AUDITORIUM \
+	{ -1000, -476, 4320,  590,  -789,  20,  -289,  30, 1000,1000 }
+#define SL_I3DL2_ENVIRONMENT_PRESET_CONCERTHALL \
+	{ -1000, -500, 3920,  700, -1230,  20,    -2,  29, 1000,1000 }
+#define SL_I3DL2_ENVIRONMENT_PRESET_CAVE \
+	{ -1000,    0, 2910, 1300,  -602,  15,  -302,  22, 1000,1000 }
+#define SL_I3DL2_ENVIRONMENT_PRESET_ARENA \
+	{ -1000, -698, 7240,  330, -1166,  20,    16,  30, 1000,1000 }
+#define SL_I3DL2_ENVIRONMENT_PRESET_HANGAR \
+	{ -1000,-1000, 10050,  230,  -602,  20,   198,  30, 1000,1000 }
+#define SL_I3DL2_ENVIRONMENT_PRESET_CARPETEDHALLWAY \
+	{ -1000,-4000,  300,  100, -1831,   2, -1630,  30, 1000,1000 }
+#define SL_I3DL2_ENVIRONMENT_PRESET_HALLWAY \
+	{ -1000, -300, 1490,  590, -1219,   7,   441,  11, 1000,1000 }
+#define SL_I3DL2_ENVIRONMENT_PRESET_STONECORRIDOR \
+	{ -1000, -237, 2700,  790, -1214,  13,   395,  20, 1000,1000 }
+#define SL_I3DL2_ENVIRONMENT_PRESET_ALLEY \
+	{ -1000, -270, 1490,  860, -1204,   7,    -4,  11, 1000,1000 }
+#define SL_I3DL2_ENVIRONMENT_PRESET_FOREST \
+	{ -1000,-3300, 1490,  540, -2560, 162,  -613,  88,  790,1000 }
+#define SL_I3DL2_ENVIRONMENT_PRESET_CITY \
+	{ -1000, -800, 1490,  670, -2273,   7, -2217,  11,  500,1000 }
+#define SL_I3DL2_ENVIRONMENT_PRESET_MOUNTAINS \
+	{ -1000,-2500, 1490,  210, -2780, 300, -2014, 100,  270,1000 }
+#define SL_I3DL2_ENVIRONMENT_PRESET_QUARRY \
+	{ -1000,-1000, 1490,  830, SL_MILLIBEL_MIN,  61,   500,  25, 1000,1000 }
+#define SL_I3DL2_ENVIRONMENT_PRESET_PLAIN \
+	{ -1000,-2000, 1490,  500, -2466, 179, -2514, 100,  210,1000 }
+#define SL_I3DL2_ENVIRONMENT_PRESET_PARKINGLOT \
+	{ -1000,    0, 1650, 1500, -1363,   8, -1153,  12, 1000,1000 }
+#define SL_I3DL2_ENVIRONMENT_PRESET_SEWERPIPE \
+	{ -1000,-1000, 2810,  140,   429,  14,   648,  21,  800, 600 }
+#define SL_I3DL2_ENVIRONMENT_PRESET_UNDERWATER \
+	{ -1000,-4000, 1490,  100,  -449,   7,  1700,  11, 1000,1000 }
+#define SL_I3DL2_ENVIRONMENT_PRESET_SMALLROOM \
+	{ -1000,-600, 1100, 830, -400, 5, 500, 10, 1000, 1000 }
+#define SL_I3DL2_ENVIRONMENT_PRESET_MEDIUMROOM \
+	{ -1000,-600, 1300, 830, -1000, 20, -200, 20, 1000, 1000 }
+#define SL_I3DL2_ENVIRONMENT_PRESET_LARGEROOM \
+	{ -1000,-600, 1500, 830, -1600, 5, -1000, 40, 1000, 1000 }
+#define SL_I3DL2_ENVIRONMENT_PRESET_MEDIUMHALL \
+	{ -1000,-600, 1800, 700, -1300, 15, -800, 30, 1000, 1000 }
+#define SL_I3DL2_ENVIRONMENT_PRESET_LARGEHALL \
+	{ -1000,-600, 1800, 700, -2000, 30, -1400, 60, 1000, 1000 }
+#define SL_I3DL2_ENVIRONMENT_PRESET_PLATE \
+	{ -1000,-200, 1300, 900, 0, 2, 0, 10, 1000, 750 }
+
+
+typedef struct SLEnvironmentalReverbSettings_ {
+	SLmillibel    roomLevel;
+	SLmillibel    roomHFLevel;
+	SLmillisecond decayTime;
+	SLpermille    decayHFRatio;
+	SLmillibel    reflectionsLevel;
+	SLmillisecond reflectionsDelay;
+	SLmillibel    reverbLevel;
+	SLmillisecond reverbDelay;
+	SLpermille    diffusion;
+	SLpermille    density;
+} SLEnvironmentalReverbSettings;
+
+
+
+
+extern SL_API const SLInterfaceID SL_IID_ENVIRONMENTALREVERB;
+
+
+struct SLEnvironmentalReverbItf_;
+typedef const struct SLEnvironmentalReverbItf_ * const * SLEnvironmentalReverbItf;
+
+struct SLEnvironmentalReverbItf_ {
+	SLresult (*SetRoomLevel) (
+		SLEnvironmentalReverbItf self,
+		SLmillibel room
+	);
+	SLresult (*GetRoomLevel) (
+		SLEnvironmentalReverbItf self,
+		SLmillibel *pRoom
+	);
+	SLresult (*SetRoomHFLevel) (
+		SLEnvironmentalReverbItf self,
+		SLmillibel roomHF
+	);
+	SLresult (*GetRoomHFLevel) (
+		SLEnvironmentalReverbItf self,
+		SLmillibel *pRoomHF
+	);
+	SLresult (*SetDecayTime) (
+		SLEnvironmentalReverbItf self,
+		SLmillisecond decayTime
+	);
+	SLresult (*GetDecayTime) (
+		SLEnvironmentalReverbItf self,
+		SLmillisecond *pDecayTime
+	);
+	SLresult (*SetDecayHFRatio) (
+		SLEnvironmentalReverbItf self,
+		SLpermille decayHFRatio
+	);
+	SLresult (*GetDecayHFRatio) (
+		SLEnvironmentalReverbItf self,
+		SLpermille *pDecayHFRatio
+	);
+	SLresult (*SetReflectionsLevel) (
+		SLEnvironmentalReverbItf self,
+		SLmillibel reflectionsLevel
+	);
+	SLresult (*GetReflectionsLevel) (
+		SLEnvironmentalReverbItf self,
+		SLmillibel *pReflectionsLevel
+	);
+	SLresult (*SetReflectionsDelay) (
+		SLEnvironmentalReverbItf self,
+		SLmillisecond reflectionsDelay
+	);
+	SLresult (*GetReflectionsDelay) (
+		SLEnvironmentalReverbItf self,
+		SLmillisecond *pReflectionsDelay
+	);
+	SLresult (*SetReverbLevel) (
+		SLEnvironmentalReverbItf self,
+		SLmillibel reverbLevel
+	);
+	SLresult (*GetReverbLevel) (
+		SLEnvironmentalReverbItf self,
+		SLmillibel *pReverbLevel
+	);
+	SLresult (*SetReverbDelay) (
+		SLEnvironmentalReverbItf self,
+		SLmillisecond reverbDelay
+	);
+	SLresult (*GetReverbDelay) (
+		SLEnvironmentalReverbItf self,
+		SLmillisecond *pReverbDelay
+	);
+	SLresult (*SetDiffusion) (
+		SLEnvironmentalReverbItf self,
+		SLpermille diffusion
+	);
+	SLresult (*GetDiffusion) (
+		SLEnvironmentalReverbItf self,
+		SLpermille *pDiffusion
+	);
+	SLresult (*SetDensity) (
+		SLEnvironmentalReverbItf self,
+		SLpermille density
+	);
+	SLresult (*GetDensity) (
+		SLEnvironmentalReverbItf self,
+		SLpermille *pDensity
+	);
+	SLresult (*SetEnvironmentalReverbProperties) (
+		SLEnvironmentalReverbItf self,
+		const SLEnvironmentalReverbSettings *pProperties
+	);
+	SLresult (*GetEnvironmentalReverbProperties) (
+		SLEnvironmentalReverbItf self,
+		SLEnvironmentalReverbSettings *pProperties
+	);
+};
+
+/*---------------------------------------------------------------------------*/
+/* Effects Send Interface                                                    */
+/*---------------------------------------------------------------------------*/
+
+
+extern SL_API const SLInterfaceID SL_IID_EFFECTSEND;
+
+struct SLEffectSendItf_;
+typedef const struct SLEffectSendItf_ * const * SLEffectSendItf;
+
+struct SLEffectSendItf_ {
+	SLresult (*EnableEffectSend) (
+		SLEffectSendItf self,
+		const void *pAuxEffect,
+		SLboolean enable,
+		SLmillibel initialLevel
+	);
+	SLresult (*IsEnabled) (
+		SLEffectSendItf self,
+		const void * pAuxEffect,
+		SLboolean *pEnable
+	);
+	SLresult (*SetDirectLevel) (
+		SLEffectSendItf self,
+		SLmillibel directLevel
+	);
+	SLresult (*GetDirectLevel) (
+		SLEffectSendItf self,
+		SLmillibel *pDirectLevel
+	);
+	SLresult (*SetSendLevel) (
+		SLEffectSendItf self,
+		const void *pAuxEffect,
+		SLmillibel sendLevel
+	);
+	SLresult (*GetSendLevel)(
+		SLEffectSendItf self,
+		const void *pAuxEffect,
+		SLmillibel *pSendLevel
+	);
+};
+
+
+/*---------------------------------------------------------------------------*/
+/* 3D Grouping Interface                                                     */
+/*---------------------------------------------------------------------------*/
+
+
+extern SL_API const SLInterfaceID SL_IID_3DGROUPING;
+
+
+struct SL3DGroupingItf_ ;
+typedef const struct SL3DGroupingItf_ * const * SL3DGroupingItf;
+
+struct SL3DGroupingItf_ {
+	SLresult (*Set3DGroup) (
+		SL3DGroupingItf self,
+		SLObjectItf group
+	);
+	SLresult (*Get3DGroup) (
+		SL3DGroupingItf self,
+		SLObjectItf *pGroup
+	);
+};
+
+
+/*---------------------------------------------------------------------------*/
+/* 3D Commit Interface                                                       */
+/*---------------------------------------------------------------------------*/
+
+
+extern SL_API const SLInterfaceID SL_IID_3DCOMMIT;
+
+struct SL3DCommitItf_;
+typedef const struct SL3DCommitItf_* const * SL3DCommitItf;
+
+struct SL3DCommitItf_ {
+	SLresult (*Commit) (
+		SL3DCommitItf self
+	);
+	SLresult (*SetDeferred) (
+		SL3DCommitItf self,
+		SLboolean deferred
+	);
+};
+
+
+/*---------------------------------------------------------------------------*/
+/* 3D Location Interface                                                     */
+/*---------------------------------------------------------------------------*/
+
+typedef struct SLVec3D_ {
+	SLint32	x;
+	SLint32	y;
+	SLint32	z;
+} SLVec3D;
+
+extern SL_API const SLInterfaceID SL_IID_3DLOCATION;
+
+struct SL3DLocationItf_;
+typedef const struct SL3DLocationItf_ * const * SL3DLocationItf;
+
+struct SL3DLocationItf_ {
+	SLresult (*SetLocationCartesian) (
+		SL3DLocationItf self,
+		const SLVec3D *pLocation
+	);
+	SLresult (*SetLocationSpherical) (
+		SL3DLocationItf self,
+		SLmillidegree azimuth,
+		SLmillidegree elevation,
+		SLmillimeter distance
+	);
+	SLresult (*Move) (
+		SL3DLocationItf self,
+		const SLVec3D *pMovement
+	);
+	SLresult (*GetLocationCartesian) (
+		SL3DLocationItf self,
+		SLVec3D *pLocation
+	);
+	SLresult (*SetOrientationVectors) (
+		SL3DLocationItf self,
+		const SLVec3D *pFront,
+		const SLVec3D *pAbove
+	);
+	SLresult (*SetOrientationAngles) (
+		SL3DLocationItf self,
+		SLmillidegree heading,
+		SLmillidegree pitch,
+		SLmillidegree roll
+	);
+	SLresult (*Rotate) (
+		SL3DLocationItf self,
+		SLmillidegree theta,
+		const SLVec3D *pAxis
+	);
+	SLresult (*GetOrientationVectors) (
+		SL3DLocationItf self,
+		SLVec3D *pFront,
+		SLVec3D *pUp
+	);
+};
+
+
+/*---------------------------------------------------------------------------*/
+/* 3D Doppler Interface                                                      */
+/*---------------------------------------------------------------------------*/
+
+
+extern SL_API const SLInterfaceID SL_IID_3DDOPPLER;
+
+struct SL3DDopplerItf_;
+typedef const struct SL3DDopplerItf_ * const * SL3DDopplerItf;
+
+struct SL3DDopplerItf_ {
+	SLresult (*SetVelocityCartesian) (
+		SL3DDopplerItf self,
+		const SLVec3D *pVelocity
+	);
+	SLresult (*SetVelocitySpherical) (
+		SL3DDopplerItf self,
+		SLmillidegree azimuth,
+		SLmillidegree elevation,
+		SLmillimeter speed
+	);
+	SLresult (*GetVelocityCartesian) (
+		SL3DDopplerItf self,
+		SLVec3D *pVelocity
+	);
+	SLresult (*SetDopplerFactor) (
+		SL3DDopplerItf self,
+		SLpermille dopplerFactor
+	);
+	SLresult (*GetDopplerFactor) (
+		SL3DDopplerItf self,
+		SLpermille *pDopplerFactor
+	);
+};
+
+/*---------------------------------------------------------------------------*/
+/* 3D Source Interface and associated defines                                */
+/* --------------------------------------------------------------------------*/
+
+#define SL_ROLLOFFMODEL_EXPONENTIAL	((SLuint32) 0x00000000)
+#define SL_ROLLOFFMODEL_LINEAR		((SLuint32) 0x00000001)
+
+
+extern SL_API const SLInterfaceID SL_IID_3DSOURCE;
+
+struct SL3DSourceItf_;
+typedef const struct SL3DSourceItf_ * const * SL3DSourceItf;
+
+struct SL3DSourceItf_ {
+	SLresult (*SetHeadRelative) (
+		SL3DSourceItf self,
+		SLboolean headRelative
+	);
+	SLresult (*GetHeadRelative) (
+		SL3DSourceItf self,
+		SLboolean *pHeadRelative
+	);
+	SLresult (*SetRolloffDistances) (
+		SL3DSourceItf self,
+		SLmillimeter minDistance,
+		SLmillimeter maxDistance
+	);
+	SLresult (*GetRolloffDistances) (
+		SL3DSourceItf self,
+		SLmillimeter *pMinDistance,
+		SLmillimeter *pMaxDistance
+	);
+	SLresult (*SetRolloffMaxDistanceMute) (
+		SL3DSourceItf self,
+		SLboolean mute
+	);
+	SLresult (*GetRolloffMaxDistanceMute) (
+		SL3DSourceItf self,
+		SLboolean *pMute
+	);
+	SLresult (*SetRolloffFactor) (
+		SL3DSourceItf self,
+		SLpermille rolloffFactor
+	);
+	SLresult (*GetRolloffFactor) (
+		SL3DSourceItf self,
+		SLpermille *pRolloffFactor
+	);
+	SLresult (*SetRoomRolloffFactor) (
+		SL3DSourceItf self,
+		SLpermille roomRolloffFactor
+	);
+	SLresult (*GetRoomRolloffFactor) (
+		SL3DSourceItf self,
+		SLpermille *pRoomRolloffFactor
+	);
+	SLresult (*SetRolloffModel) (
+		SL3DSourceItf self,
+		SLuint8 model
+	);
+	SLresult (*GetRolloffModel) (
+		SL3DSourceItf self,
+		SLuint8 *pModel
+	);
+	SLresult (*SetCone) (
+		SL3DSourceItf self,
+		SLmillidegree innerAngle,
+		SLmillidegree outerAngle,
+		SLmillibel outerLevel
+	);
+	SLresult (*GetCone) (
+		SL3DSourceItf self,
+		SLmillidegree *pInnerAngle,
+		SLmillidegree *pOuterAngle,
+		SLmillibel *pOuterLevel
+	);
+};
+
+/*---------------------------------------------------------------------------*/
+/* 3D Macroscopic Interface                                                  */
+/* --------------------------------------------------------------------------*/
+
+extern SL_API const SLInterfaceID SL_IID_3DMACROSCOPIC;
+
+struct SL3DMacroscopicItf_;
+typedef const struct SL3DMacroscopicItf_ * const * SL3DMacroscopicItf;
+
+struct SL3DMacroscopicItf_ {
+	SLresult (*SetSize) (
+		SL3DMacroscopicItf self,
+		SLmillimeter width,
+		SLmillimeter height,
+		SLmillimeter depth
+	);
+	SLresult (*GetSize) (
+		SL3DMacroscopicItf self,
+		SLmillimeter *pWidth,
+		SLmillimeter *pHeight,
+		SLmillimeter *pDepth
+	);
+	SLresult (*SetOrientationAngles) (
+		SL3DMacroscopicItf self,
+		SLmillidegree heading,
+		SLmillidegree pitch,
+		SLmillidegree roll
+	);
+	SLresult (*SetOrientationVectors) (
+		SL3DMacroscopicItf self,
+		const SLVec3D *pFront,
+		const SLVec3D *pAbove
+	);
+	SLresult (*Rotate) (
+		SL3DMacroscopicItf self,
+		SLmillidegree theta,
+		const SLVec3D *pAxis
+	);
+	SLresult (*GetOrientationVectors) (
+		SL3DMacroscopicItf self,
+		SLVec3D *pFront,
+		SLVec3D *pUp
+	);
+};
+
+/*---------------------------------------------------------------------------*/
+/* Mute Solo Interface                                                       */
+/* --------------------------------------------------------------------------*/
+
+
+extern SL_API const SLInterfaceID SL_IID_MUTESOLO;
+
+struct SLMuteSoloItf_;
+typedef const struct SLMuteSoloItf_ * const * SLMuteSoloItf;
+
+struct SLMuteSoloItf_ {
+	SLresult (*SetChannelMute) (
+		SLMuteSoloItf self,
+		SLuint8 chan,
+		SLboolean mute
+	);
+	SLresult (*GetChannelMute) (
+		SLMuteSoloItf self,
+		SLuint8 chan,
+		SLboolean *pMute
+	);
+	SLresult (*SetChannelSolo) (
+		SLMuteSoloItf self,
+		SLuint8 chan,
+		SLboolean solo
+	);
+	SLresult (*GetChannelSolo) (
+		SLMuteSoloItf self,
+		SLuint8 chan,
+		SLboolean *pSolo
+	);
+	SLresult (*GetNumChannels) (
+		SLMuteSoloItf self,
+		SLuint8 *pNumChannels
+	);
+};
+
+
+/*---------------------------------------------------------------------------*/
+/* Dynamic Interface Management Interface and associated types and macros    */
+/* --------------------------------------------------------------------------*/
+
+#define SL_DYNAMIC_ITF_EVENT_RUNTIME_ERROR			((SLuint32) 0x00000001)
+#define SL_DYNAMIC_ITF_EVENT_ASYNC_TERMINATION		((SLuint32) 0x00000002)
+#define SL_DYNAMIC_ITF_EVENT_RESOURCES_LOST			((SLuint32) 0x00000003)
+#define SL_DYNAMIC_ITF_EVENT_RESOURCES_LOST_PERMANENTLY	((SLuint32) 0x00000004)
+#define SL_DYNAMIC_ITF_EVENT_RESOURCES_AVAILABLE		((SLuint32) 0x00000005)
+
+
+
+
+extern SL_API const SLInterfaceID SL_IID_DYNAMICINTERFACEMANAGEMENT;
+
+struct SLDynamicInterfaceManagementItf_;
+typedef const struct SLDynamicInterfaceManagementItf_ * const * SLDynamicInterfaceManagementItf;
+
+typedef void (SLAPIENTRY *slDynamicInterfaceManagementCallback) (
+	SLDynamicInterfaceManagementItf caller,
+	void * pContext,
+	SLuint32 event,
+	SLresult result,
+    const SLInterfaceID iid
+);
+
+
+struct SLDynamicInterfaceManagementItf_ {
+	SLresult (*AddInterface) (
+		SLDynamicInterfaceManagementItf self,
+		const SLInterfaceID iid,
+		SLboolean async
+	);
+	SLresult (*RemoveInterface) (
+		SLDynamicInterfaceManagementItf self,
+		const SLInterfaceID iid
+	);
+	SLresult (*ResumeInterface) (
+		SLDynamicInterfaceManagementItf self,
+		const SLInterfaceID iid,
+		SLboolean async
+	);
+	SLresult (*RegisterCallback) (
+		SLDynamicInterfaceManagementItf self,
+		slDynamicInterfaceManagementCallback callback,
+		void * pContext
+	);
+};
+
+/*---------------------------------------------------------------------------*/
+/* Midi Message Interface and associated types                               */
+/* --------------------------------------------------------------------------*/
+
+#define SL_MIDIMESSAGETYPE_NOTE_ON_OFF		((SLuint32) 0x00000001)
+#define SL_MIDIMESSAGETYPE_POLY_PRESSURE	((SLuint32) 0x00000002)
+#define SL_MIDIMESSAGETYPE_CONTROL_CHANGE	((SLuint32) 0x00000003)
+#define SL_MIDIMESSAGETYPE_PROGRAM_CHANGE	((SLuint32) 0x00000004)
+#define SL_MIDIMESSAGETYPE_CHANNEL_PRESSURE	((SLuint32) 0x00000005)
+#define SL_MIDIMESSAGETYPE_PITCH_BEND		((SLuint32) 0x00000006)
+#define SL_MIDIMESSAGETYPE_SYSTEM_MESSAGE	((SLuint32) 0x00000007)
+
+
+extern SL_API const SLInterfaceID SL_IID_MIDIMESSAGE;
+
+struct SLMIDIMessageItf_;
+typedef const struct SLMIDIMessageItf_ * const * SLMIDIMessageItf;
+
+typedef void (SLAPIENTRY *slMetaEventCallback) (
+	SLMIDIMessageItf caller,
+	void *pContext,
+	SLuint8 type,
+    SLuint32 length,
+	const SLuint8 *pData,
+	SLuint32 tick,
+	SLuint16 track
+);
+
+typedef void (SLAPIENTRY *slMIDIMessageCallback) (
+	SLMIDIMessageItf caller,
+	void *pContext,
+	SLuint8 statusByte,
+	SLuint32 length,
+	const SLuint8 *pData,
+	SLuint32 tick,
+	SLuint16 track
+);
+
+struct SLMIDIMessageItf_ {
+	SLresult (*SendMessage) (
+		SLMIDIMessageItf self,
+		const SLuint8 *data,
+		SLuint32 length
+	);
+	SLresult (*RegisterMetaEventCallback) (
+		SLMIDIMessageItf self,
+		slMetaEventCallback callback,
+		void *pContext
+	);
+	SLresult (*RegisterMIDIMessageCallback) (
+		SLMIDIMessageItf self,
+		slMIDIMessageCallback callback,
+		void *pContext
+	);
+	SLresult (*AddMIDIMessageCallbackFilter) (
+		SLMIDIMessageItf self,
+		SLuint32 messageType
+	);
+	SLresult (*ClearMIDIMessageCallbackFilter) (
+		SLMIDIMessageItf self
+	);
+};
+
+
+/*---------------------------------------------------------------------------*/
+/* Midi Mute Solo interface                                                  */
+/* --------------------------------------------------------------------------*/
+
+
+extern SL_API const SLInterfaceID SL_IID_MIDIMUTESOLO;
+
+struct SLMIDIMuteSoloItf_;
+typedef const struct SLMIDIMuteSoloItf_ * const * SLMIDIMuteSoloItf;
+
+struct SLMIDIMuteSoloItf_ {
+	SLresult (*SetChannelMute) (
+		SLMIDIMuteSoloItf self,
+		SLuint8 channel,
+		SLboolean mute
+	);
+	SLresult (*GetChannelMute) (
+		SLMIDIMuteSoloItf self,
+		SLuint8 channel,
+		SLboolean *pMute
+	);
+	SLresult (*SetChannelSolo) (
+		SLMIDIMuteSoloItf self,
+		SLuint8 channel,
+		SLboolean solo
+	);
+	SLresult (*GetChannelSolo) (
+		SLMIDIMuteSoloItf self,
+		SLuint8 channel,
+		SLboolean *pSolo
+	);
+	SLresult (*GetTrackCount) (
+		SLMIDIMuteSoloItf self,
+		SLuint16 *pCount
+	);
+	SLresult (*SetTrackMute) (
+		SLMIDIMuteSoloItf self,
+		SLuint16 track,
+		SLboolean mute
+	);
+	SLresult (*GetTrackMute) (
+		SLMIDIMuteSoloItf self,
+		SLuint16 track,
+		SLboolean *pMute
+	);
+	SLresult (*SetTrackSolo) (
+		SLMIDIMuteSoloItf self,
+		SLuint16 track,
+		SLboolean solo
+	);
+	SLresult (*GetTrackSolo) (
+		SLMIDIMuteSoloItf self,
+		SLuint16 track,
+		SLboolean *pSolo
+	);
+};
+
+
+/*---------------------------------------------------------------------------*/
+/* Midi Tempo interface                                                      */
+/* --------------------------------------------------------------------------*/
+
+
+extern SL_API const SLInterfaceID SL_IID_MIDITEMPO;
+
+struct SLMIDITempoItf_;
+typedef const struct SLMIDITempoItf_ * const * SLMIDITempoItf;
+
+struct SLMIDITempoItf_ {
+	SLresult (*SetTicksPerQuarterNote) (
+		SLMIDITempoItf self,
+		SLuint32 tpqn
+	);
+	SLresult (*GetTicksPerQuarterNote) (
+		SLMIDITempoItf self,
+		SLuint32 *pTpqn
+	);
+	SLresult (*SetMicrosecondsPerQuarterNote) (
+		SLMIDITempoItf self,
+		SLmicrosecond uspqn
+	);
+	SLresult (*GetMicrosecondsPerQuarterNote) (
+		SLMIDITempoItf self,
+		SLmicrosecond *uspqn
+	);
+};
+
+
+/*---------------------------------------------------------------------------*/
+/* Midi Time interface                                                       */
+/* --------------------------------------------------------------------------*/
+
+
+extern SL_API const SLInterfaceID SL_IID_MIDITIME;
+
+struct SLMIDITimeItf_;
+typedef const struct SLMIDITimeItf_ * const * SLMIDITimeItf;
+
+struct SLMIDITimeItf_ {
+	SLresult (*GetDuration) (
+		SLMIDITimeItf self,
+		SLuint32 *pDuration
+	);
+	SLresult (*SetPosition) (
+		SLMIDITimeItf self,
+		SLuint32 position
+	);
+	SLresult (*GetPosition) (
+		SLMIDITimeItf self,
+		SLuint32 *pPosition
+	);
+	SLresult (*SetLoopPoints) (
+		SLMIDITimeItf self,
+		SLuint32 startTick,
+		SLuint32 numTicks
+	);
+	SLresult (*GetLoopPoints) (
+		SLMIDITimeItf self,
+		SLuint32 *pStartTick,
+		SLuint32 *pNumTicks
+	);
+};
+
+
+/*---------------------------------------------------------------------------*/
+/* Audio Decoder Capabilities Interface                                      */
+/* --------------------------------------------------------------------------*/
+
+/*Audio Codec related defines*/
+
+#define SL_RATECONTROLMODE_CONSTANTBITRATE	((SLuint32) 0x00000001)
+#define SL_RATECONTROLMODE_VARIABLEBITRATE	((SLuint32) 0x00000002)
+
+#define SL_AUDIOCODEC_PCM         ((SLuint32) 0x00000001)
+#define SL_AUDIOCODEC_MP3         ((SLuint32) 0x00000002)
+#define SL_AUDIOCODEC_AMR         ((SLuint32) 0x00000003)
+#define SL_AUDIOCODEC_AMRWB       ((SLuint32) 0x00000004)
+#define SL_AUDIOCODEC_AMRWBPLUS   ((SLuint32) 0x00000005)
+#define SL_AUDIOCODEC_AAC         ((SLuint32) 0x00000006)
+#define SL_AUDIOCODEC_WMA         ((SLuint32) 0x00000007)
+#define SL_AUDIOCODEC_REAL        ((SLuint32) 0x00000008)
+
+#define SL_AUDIOPROFILE_PCM                   ((SLuint32) 0x00000001)
+
+#define SL_AUDIOPROFILE_MPEG1_L3              ((SLuint32) 0x00000001)
+#define SL_AUDIOPROFILE_MPEG2_L3              ((SLuint32) 0x00000002)
+#define SL_AUDIOPROFILE_MPEG25_L3             ((SLuint32) 0x00000003)
+
+#define SL_AUDIOCHANMODE_MP3_MONO             ((SLuint32) 0x00000001)
+#define SL_AUDIOCHANMODE_MP3_STEREO           ((SLuint32) 0x00000002)
+#define SL_AUDIOCHANMODE_MP3_JOINTSTEREO      ((SLuint32) 0x00000003)
+#define SL_AUDIOCHANMODE_MP3_DUAL             ((SLuint32) 0x00000004)
+
+#define SL_AUDIOPROFILE_AMR			((SLuint32) 0x00000001)
+
+#define SL_AUDIOSTREAMFORMAT_CONFORMANCE	((SLuint32) 0x00000001)
+#define SL_AUDIOSTREAMFORMAT_IF1			((SLuint32) 0x00000002)
+#define SL_AUDIOSTREAMFORMAT_IF2			((SLuint32) 0x00000003)
+#define SL_AUDIOSTREAMFORMAT_FSF			((SLuint32) 0x00000004)
+#define SL_AUDIOSTREAMFORMAT_RTPPAYLOAD	((SLuint32) 0x00000005)
+#define SL_AUDIOSTREAMFORMAT_ITU			((SLuint32) 0x00000006)
+
+#define SL_AUDIOPROFILE_AMRWB			((SLuint32) 0x00000001)
+
+#define SL_AUDIOPROFILE_AMRWBPLUS		((SLuint32) 0x00000001)
+
+#define SL_AUDIOPROFILE_AAC_AAC			((SLuint32) 0x00000001)
+
+#define SL_AUDIOMODE_AAC_MAIN			((SLuint32) 0x00000001)
+#define SL_AUDIOMODE_AAC_LC			((SLuint32) 0x00000002)
+#define SL_AUDIOMODE_AAC_SSR			((SLuint32) 0x00000003)
+#define SL_AUDIOMODE_AAC_LTP			((SLuint32) 0x00000004)
+#define SL_AUDIOMODE_AAC_HE			((SLuint32) 0x00000005)
+#define SL_AUDIOMODE_AAC_SCALABLE		((SLuint32) 0x00000006)
+#define SL_AUDIOMODE_AAC_ERLC			((SLuint32) 0x00000007)
+#define SL_AUDIOMODE_AAC_LD			((SLuint32) 0x00000008)
+#define SL_AUDIOMODE_AAC_HE_PS			((SLuint32) 0x00000009)
+#define SL_AUDIOMODE_AAC_HE_MPS			((SLuint32) 0x0000000A)
+
+#define SL_AUDIOSTREAMFORMAT_MP2ADTS		((SLuint32) 0x00000001)
+#define SL_AUDIOSTREAMFORMAT_MP4ADTS		((SLuint32) 0x00000002)
+#define SL_AUDIOSTREAMFORMAT_MP4LOAS		((SLuint32) 0x00000003)
+#define SL_AUDIOSTREAMFORMAT_MP4LATM		((SLuint32) 0x00000004)
+#define SL_AUDIOSTREAMFORMAT_ADIF		((SLuint32) 0x00000005)
+#define SL_AUDIOSTREAMFORMAT_MP4FF		((SLuint32) 0x00000006)
+#define SL_AUDIOSTREAMFORMAT_RAW			((SLuint32) 0x00000007)
+
+#define SL_AUDIOPROFILE_WMA7		((SLuint32) 0x00000001)
+#define SL_AUDIOPROFILE_WMA8		((SLuint32) 0x00000002)
+#define SL_AUDIOPROFILE_WMA9		((SLuint32) 0x00000003)
+#define SL_AUDIOPROFILE_WMA10		((SLuint32) 0x00000004)
+
+#define SL_AUDIOMODE_WMA_LEVEL1		((SLuint32) 0x00000001)
+#define SL_AUDIOMODE_WMA_LEVEL2		((SLuint32) 0x00000002)
+#define SL_AUDIOMODE_WMA_LEVEL3		((SLuint32) 0x00000003)
+#define SL_AUDIOMODE_WMA_LEVEL4		((SLuint32) 0x00000004)
+#define SL_AUDIOMODE_WMAPRO_LEVELM0	((SLuint32) 0x00000005)
+#define SL_AUDIOMODE_WMAPRO_LEVELM1	((SLuint32) 0x00000006)
+#define SL_AUDIOMODE_WMAPRO_LEVELM2	((SLuint32) 0x00000007)
+#define SL_AUDIOMODE_WMAPRO_LEVELM3	((SLuint32) 0x00000008)
+
+#define SL_AUDIOPROFILE_REALAUDIO		((SLuint32) 0x00000001)
+
+#define SL_AUDIOMODE_REALAUDIO_G2		((SLuint32) 0x00000001)
+#define SL_AUDIOMODE_REALAUDIO_8			((SLuint32) 0x00000002)
+#define SL_AUDIOMODE_REALAUDIO_10		((SLuint32) 0x00000003)
+#define SL_AUDIOMODE_REALAUDIO_SURROUND	((SLuint32) 0x00000004)
+
+typedef struct SLAudioCodecDescriptor_ {
+    SLuint32      maxChannels;
+    SLuint32      minBitsPerSample;
+    SLuint32      maxBitsPerSample;
+    SLmilliHertz  minSampleRate;
+    SLmilliHertz  maxSampleRate;
+    SLboolean     isFreqRangeContinuous;
+    SLmilliHertz *pSampleRatesSupported;
+    SLuint32      numSampleRatesSupported;
+    SLuint32      minBitRate;
+    SLuint32      maxBitRate;
+    SLboolean     isBitrateRangeContinuous;
+    SLuint32     *pBitratesSupported;
+    SLuint32      numBitratesSupported;
+    SLuint32	  profileSetting;
+    SLuint32      modeSetting;
+} SLAudioCodecDescriptor;
+
+/*Structure used to retrieve the profile and level settings supported by an audio encoder */
+
+typedef struct SLAudioCodecProfileMode_ {
+    SLuint32 profileSetting;
+    SLuint32 modeSetting;
+} SLAudioCodecProfileMode;
+
+extern SL_API const SLInterfaceID SL_IID_AUDIODECODERCAPABILITIES;
+
+struct SLAudioDecoderCapabilitiesItf_;
+typedef const struct SLAudioDecoderCapabilitiesItf_ * const * SLAudioDecoderCapabilitiesItf;
+
+struct SLAudioDecoderCapabilitiesItf_ {
+    SLresult (*GetAudioDecoders) (
+        SLAudioDecoderCapabilitiesItf self,
+        SLuint32 * pNumDecoders ,
+        SLuint32 *pDecoderIds
+    );
+    SLresult (*GetAudioDecoderCapabilities) (
+        SLAudioDecoderCapabilitiesItf self,
+        SLuint32 decoderId,
+        SLuint32 *pIndex,
+        SLAudioCodecDescriptor *pDescriptor
+    );
+};
+
+
+
+
+/*---------------------------------------------------------------------------*/
+/* Audio Encoder Capabilities Interface                                      */
+/* --------------------------------------------------------------------------*/
+
+/* Structure used when setting audio encoding parameters */
+
+typedef struct SLAudioEncoderSettings_ {
+    SLuint32 encoderId;
+    SLuint32 channelsIn;
+    SLuint32 channelsOut;
+    SLmilliHertz sampleRate;
+    SLuint32 bitRate;
+    SLuint32 bitsPerSample;
+    SLuint32 rateControl;
+    SLuint32 profileSetting;
+    SLuint32 levelSetting;
+    SLuint32 channelMode;
+    SLuint32 streamFormat;
+    SLuint32 encodeOptions;
+    SLuint32 blockAlignment;
+} SLAudioEncoderSettings;
+
+extern SL_API const SLInterfaceID SL_IID_AUDIOENCODERCAPABILITIES;
+
+struct SLAudioEncoderCapabilitiesItf_;
+typedef const struct SLAudioEncoderCapabilitiesItf_ * const * SLAudioEncoderCapabilitiesItf;
+
+struct SLAudioEncoderCapabilitiesItf_ {
+    SLresult (*GetAudioEncoders) (
+        SLAudioEncoderCapabilitiesItf self,
+        SLuint32 *pNumEncoders ,
+        SLuint32 *pEncoderIds
+    );
+    SLresult (*GetAudioEncoderCapabilities) (
+        SLAudioEncoderCapabilitiesItf self,
+        SLuint32 encoderId,
+        SLuint32 *pIndex,
+        SLAudioCodecDescriptor * pDescriptor
+    );
+};
+
+
+/*---------------------------------------------------------------------------*/
+/* Audio Encoder Interface                                                   */
+/* --------------------------------------------------------------------------*/
+
+
+extern SL_API const SLInterfaceID SL_IID_AUDIOENCODER;
+
+struct SLAudioEncoderItf_;
+typedef const struct SLAudioEncoderItf_ * const * SLAudioEncoderItf;
+
+struct SLAudioEncoderItf_ {
+    SLresult (*SetEncoderSettings) (
+        SLAudioEncoderItf		self,
+        SLAudioEncoderSettings 	*pSettings
+    );
+    SLresult (*GetEncoderSettings) (
+        SLAudioEncoderItf		self,
+        SLAudioEncoderSettings	*pSettings
+    );
+};
+
+
+/*---------------------------------------------------------------------------*/
+/* Bass Boost Interface                                                      */
+/* --------------------------------------------------------------------------*/
+
+
+extern SL_API const SLInterfaceID SL_IID_BASSBOOST;
+
+struct SLBassBoostItf_;
+typedef const struct SLBassBoostItf_ * const * SLBassBoostItf;
+
+struct SLBassBoostItf_ {
+	SLresult (*SetEnabled)(
+		SLBassBoostItf self,
+		SLboolean enabled
+	);
+	SLresult (*IsEnabled)(
+		SLBassBoostItf self,
+		SLboolean *pEnabled
+	);
+	SLresult (*SetStrength)(
+		SLBassBoostItf self,
+		SLpermille strength
+	);
+	SLresult (*GetRoundedStrength)(
+		SLBassBoostItf self,
+		SLpermille *pStrength
+	);
+	SLresult (*IsStrengthSupported)(
+		SLBassBoostItf self,
+		SLboolean *pSupported
+	);
+};
+
+/*---------------------------------------------------------------------------*/
+/* Pitch Interface                                                           */
+/* --------------------------------------------------------------------------*/
+
+
+extern SL_API const SLInterfaceID SL_IID_PITCH;
+
+struct SLPitchItf_;
+typedef const struct SLPitchItf_ * const * SLPitchItf;
+
+struct SLPitchItf_ {
+	SLresult (*SetPitch) (
+		SLPitchItf self,
+		SLpermille pitch
+	);
+	SLresult (*GetPitch) (
+		SLPitchItf self,
+		SLpermille *pPitch
+	);
+	SLresult (*GetPitchCapabilities) (
+		SLPitchItf self,
+		SLpermille *pMinPitch,
+		SLpermille *pMaxPitch
+	);
+};
+
+
+/*---------------------------------------------------------------------------*/
+/* Rate Pitch Interface                                                      */
+/* RatePitchItf is an interface for controlling the rate a sound is played   */
+/* back. A change in rate will cause a change in pitch.                      */
+/* --------------------------------------------------------------------------*/
+
+
+extern SL_API const SLInterfaceID SL_IID_RATEPITCH;
+
+struct SLRatePitchItf_;
+typedef const struct SLRatePitchItf_ * const * SLRatePitchItf;
+
+struct SLRatePitchItf_ {
+	SLresult (*SetRate) (
+		SLRatePitchItf self,
+		SLpermille rate
+	);
+	SLresult (*GetRate) (
+		SLRatePitchItf self,
+		SLpermille *pRate
+	);
+	SLresult (*GetRatePitchCapabilities) (
+		SLRatePitchItf self,
+		SLpermille *pMinRate,
+		SLpermille *pMaxRate
+	);
+};
+
+
+/*---------------------------------------------------------------------------*/
+/* Virtualizer Interface                                                      */
+/* --------------------------------------------------------------------------*/
+
+
+extern SL_API const SLInterfaceID SL_IID_VIRTUALIZER;
+
+struct SLVirtualizerItf_;
+typedef const struct SLVirtualizerItf_ * const * SLVirtualizerItf;
+
+struct SLVirtualizerItf_ {
+	SLresult (*SetEnabled)(
+		SLVirtualizerItf self,
+		SLboolean enabled
+	);
+	SLresult (*IsEnabled)(
+		SLVirtualizerItf self,
+		SLboolean *pEnabled
+	);
+	SLresult (*SetStrength)(
+		SLVirtualizerItf self,
+		SLpermille strength
+	);
+	SLresult (*GetRoundedStrength)(
+		SLVirtualizerItf self,
+		SLpermille *pStrength
+	);
+	SLresult (*IsStrengthSupported)(
+		SLVirtualizerItf self,
+		SLboolean *pSupported
+	);
+};
+
+/*---------------------------------------------------------------------------*/
+/* Visualization Interface                                                   */
+/* --------------------------------------------------------------------------*/
+
+
+extern SL_API const SLInterfaceID SL_IID_VISUALIZATION;
+
+struct SLVisualizationItf_;
+typedef const struct SLVisualizationItf_ * const * SLVisualizationItf;
+
+typedef void (SLAPIENTRY *slVisualizationCallback) (
+	void *pContext,
+	const SLuint8 waveform[],
+	const SLuint8 fft[],
+	SLmilliHertz samplerate
+);
+
+struct SLVisualizationItf_{
+	SLresult (*RegisterVisualizationCallback)(
+		SLVisualizationItf self,
+		slVisualizationCallback callback,
+		void *pContext,
+		SLmilliHertz rate
+	);
+	SLresult (*GetMaxRate)(
+		SLVisualizationItf self,
+		SLmilliHertz* pRate
+	);
+};
+
+
+/*---------------------------------------------------------------------------*/
+/* Engine Interface                                                          */
+/* --------------------------------------------------------------------------*/
+
+
+extern SL_API const SLInterfaceID SL_IID_ENGINE;
+
+struct SLEngineItf_;
+typedef const struct SLEngineItf_ * const * SLEngineItf;
+
+
+struct SLEngineItf_ {
+
+	SLresult (*CreateLEDDevice) (
+		SLEngineItf self,
+		SLObjectItf * pDevice,
+		SLuint32 deviceID,
+		SLuint32 numInterfaces,
+		const SLInterfaceID * pInterfaceIds,
+		const SLboolean * pInterfaceRequired
+	);
+	SLresult (*CreateVibraDevice) (
+		SLEngineItf self,
+		SLObjectItf * pDevice,
+		SLuint32 deviceID,
+		SLuint32 numInterfaces,
+		const SLInterfaceID * pInterfaceIds,
+		const SLboolean * pInterfaceRequired
+	);
+	SLresult (*CreateAudioPlayer) (
+		SLEngineItf self,
+		SLObjectItf * pPlayer,
+		SLDataSource *pAudioSrc,
+		SLDataSink *pAudioSnk,
+		SLuint32 numInterfaces,
+		const SLInterfaceID * pInterfaceIds,
+		const SLboolean * pInterfaceRequired
+	);
+	SLresult (*CreateAudioRecorder) (
+		SLEngineItf self,
+		SLObjectItf * pRecorder,
+		SLDataSource *pAudioSrc,
+		SLDataSink *pAudioSnk,
+		SLuint32 numInterfaces,
+		const SLInterfaceID * pInterfaceIds,
+		const SLboolean * pInterfaceRequired
+	);
+	SLresult (*CreateMidiPlayer) (
+		SLEngineItf self,
+		SLObjectItf * pPlayer,
+		SLDataSource *pMIDISrc,
+		SLDataSource *pBankSrc,
+		SLDataSink *pAudioOutput,
+		SLDataSink *pVibra,
+		SLDataSink *pLEDArray,
+		SLuint32 numInterfaces,
+		const SLInterfaceID * pInterfaceIds,
+		const SLboolean * pInterfaceRequired
+	);
+	SLresult (*CreateListener) (
+		SLEngineItf self,
+		SLObjectItf * pListener,
+		SLuint32 numInterfaces,
+		const SLInterfaceID * pInterfaceIds,
+		const SLboolean * pInterfaceRequired
+	);
+	SLresult (*Create3DGroup) (
+		SLEngineItf self,
+		SLObjectItf * pGroup,
+		SLuint32 numInterfaces,
+		const SLInterfaceID * pInterfaceIds,
+		const SLboolean * pInterfaceRequired
+	);
+	SLresult (*CreateOutputMix) (
+		SLEngineItf self,
+		SLObjectItf * pMix,
+		SLuint32 numInterfaces,
+		const SLInterfaceID * pInterfaceIds,
+		const SLboolean * pInterfaceRequired
+	);
+	SLresult (*CreateMetadataExtractor) (
+		SLEngineItf self,
+		SLObjectItf * pMetadataExtractor,
+		SLDataSource * pDataSource,
+		SLuint32 numInterfaces,
+		const SLInterfaceID * pInterfaceIds,
+		const SLboolean * pInterfaceRequired
+	);
+    SLresult (*CreateExtensionObject) (
+        SLEngineItf self,
+        SLObjectItf * pObject,
+        void * pParameters,
+        SLuint32 objectID,
+        SLuint32 numInterfaces,
+        const SLInterfaceID * pInterfaceIds,
+        const SLboolean * pInterfaceRequired
+    );
+	SLresult (*QueryNumSupportedInterfaces) (
+		SLEngineItf self,
+		SLuint32 objectID,
+		SLuint32 * pNumSupportedInterfaces
+	);
+	SLresult (*QuerySupportedInterfaces) (
+		SLEngineItf self,
+		SLuint32 objectID,
+		SLuint32 index,
+		SLInterfaceID * pInterfaceId
+	);
+    SLresult (*QueryNumSupportedExtensions) (
+        SLEngineItf self,
+        SLuint32 * pNumExtensions
+    );
+    SLresult (*QuerySupportedExtension) (
+        SLEngineItf self,
+        SLuint32 index,
+        SLchar * pExtensionName,
+        SLint16 * pNameLength
+    );
+    SLresult (*IsExtensionSupported) (
+        SLEngineItf self,
+        const SLchar * pExtensionName,
+        SLboolean * pSupported
+    );
+};
+
+
+/*---------------------------------------------------------------------------*/
+/* Engine Capabilities Interface                                             */
+/* --------------------------------------------------------------------------*/
+
+
+extern SL_API const SLInterfaceID SL_IID_ENGINECAPABILITIES;
+
+struct SLEngineCapabilitiesItf_;
+typedef const struct SLEngineCapabilitiesItf_ * const * SLEngineCapabilitiesItf;
+
+struct SLEngineCapabilitiesItf_ {
+	SLresult (*QuerySupportedProfiles) (
+		SLEngineCapabilitiesItf self,
+		SLuint16 *pProfilesSupported
+	);
+	SLresult (*QueryAvailableVoices) (
+		SLEngineCapabilitiesItf self,
+		SLuint16 voiceType,
+		SLint16 *pNumMaxVoices,
+		SLboolean *pIsAbsoluteMax,
+		SLint16 *pNumFreeVoices
+	);
+	SLresult (*QueryNumberOfMIDISynthesizers) (
+		SLEngineCapabilitiesItf self,
+		SLint16 *pNumMIDIsynthesizers
+	);
+	SLresult (*QueryAPIVersion) (
+		SLEngineCapabilitiesItf self,
+		SLint16 *pMajor,
+		SLint16 *pMinor,
+		SLint16 *pStep
+	);
+	SLresult (*QueryLEDCapabilities) (
+		SLEngineCapabilitiesItf self,
+        SLuint32 *pIndex,
+		SLuint32 *pLEDDeviceID,
+		SLLEDDescriptor *pDescriptor
+	);
+	SLresult (*QueryVibraCapabilities) (
+		SLEngineCapabilitiesItf self,
+        SLuint32 *pIndex,
+		SLuint32 *pVibraDeviceID,
+		SLVibraDescriptor *pDescriptor
+	);
+	SLresult (*IsThreadSafe) (
+		SLEngineCapabilitiesItf self,
+		SLboolean *pIsThreadSafe
+	);
+};
+
+/*---------------------------------------------------------------------------*/
+/* Thread Sync Interface                                                     */
+/* --------------------------------------------------------------------------*/
+
+
+extern SL_API const SLInterfaceID SL_IID_THREADSYNC;
+
+struct SLThreadSyncItf_;
+typedef const struct SLThreadSyncItf_ * const * SLThreadSyncItf;
+
+
+struct SLThreadSyncItf_ {
+	SLresult (*EnterCriticalSection) (
+		SLThreadSyncItf self
+	);
+	SLresult (*ExitCriticalSection) (
+		SLThreadSyncItf self
+	);
+};
+
+
+/*****************************************************************************/
+/* SL engine constructor                                                     */
+/*****************************************************************************/
+
+#define SL_ENGINEOPTION_THREADSAFE	((SLuint32) 0x00000001)
+#define SL_ENGINEOPTION_LOSSOFCONTROL	((SLuint32) 0x00000002)
+
+typedef struct SLEngineOption_ {
+	SLuint32 feature;
+	SLuint32 data;
+} SLEngineOption;
+
+
+SL_API SLresult SLAPIENTRY slCreateEngine(
+	SLObjectItf             *pEngine,
+	SLuint32                numOptions,
+	const SLEngineOption    *pEngineOptions,
+	SLuint32                numInterfaces,
+	const SLInterfaceID     *pInterfaceIds,
+	const SLboolean         * pInterfaceRequired
+);
+
+SL_API SLresult SLAPIENTRY slQueryNumSupportedEngineInterfaces(
+	SLuint32 * pNumSupportedInterfaces
+);
+
+SL_API SLresult SLAPIENTRY slQuerySupportedEngineInterfaces(
+	SLuint32 index,
+	SLInterfaceID * pInterfaceId
+);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* OPENSL_ES_H_ */
diff --git a/ndk/platforms/android-20/include/SLES/OpenSLES_Android.h b/ndk/platforms/android-20/include/SLES/OpenSLES_Android.h
new file mode 100644
index 0000000..dcf3432
--- /dev/null
+++ b/ndk/platforms/android-20/include/SLES/OpenSLES_Android.h
@@ -0,0 +1,373 @@
+/*
+ * 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.
+ */
+
+#ifndef OPENSL_ES_ANDROID_H_
+#define OPENSL_ES_ANDROID_H_
+
+#include "OpenSLES_AndroidConfiguration.h"
+#include "OpenSLES_AndroidMetadata.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "OpenSLES.h"
+
+/*---------------------------------------------------------------------------*/
+/* Android common types                                                      */
+/*---------------------------------------------------------------------------*/
+
+typedef sl_int64_t             SLAint64;          /* 64 bit signed integer   */
+
+typedef sl_uint64_t            SLAuint64;         /* 64 bit unsigned integer */
+
+/*---------------------------------------------------------------------------*/
+/* Android PCM Data Format                                                   */
+/*---------------------------------------------------------------------------*/
+
+/* The following pcm representations and data formats map to those in OpenSLES 1.1 */
+#define SL_ANDROID_PCM_REPRESENTATION_SIGNED_INT       ((SLuint32) 0x00000001)
+#define SL_ANDROID_PCM_REPRESENTATION_UNSIGNED_INT     ((SLuint32) 0x00000002)
+#define SL_ANDROID_PCM_REPRESENTATION_FLOAT            ((SLuint32) 0x00000003)
+
+#define SL_ANDROID_DATAFORMAT_PCM_EX    ((SLuint32) 0x00000004)
+
+typedef struct SLAndroidDataFormat_PCM_EX_ {
+    SLuint32         formatType;
+    SLuint32         numChannels;
+    SLuint32         sampleRate;
+    SLuint32         bitsPerSample;
+    SLuint32         containerSize;
+    SLuint32         channelMask;
+    SLuint32         endianness;
+    SLuint32         representation;
+} SLAndroidDataFormat_PCM_EX;
+
+/*---------------------------------------------------------------------------*/
+/* Android Effect interface                                                  */
+/*---------------------------------------------------------------------------*/
+
+extern SL_API const SLInterfaceID SL_IID_ANDROIDEFFECT;
+
+/** Android Effect interface methods */
+
+struct SLAndroidEffectItf_;
+typedef const struct SLAndroidEffectItf_ * const * SLAndroidEffectItf;
+
+struct SLAndroidEffectItf_ {
+
+    SLresult (*CreateEffect) (SLAndroidEffectItf self,
+            SLInterfaceID effectImplementationId);
+
+    SLresult (*ReleaseEffect) (SLAndroidEffectItf self,
+            SLInterfaceID effectImplementationId);
+
+    SLresult (*SetEnabled) (SLAndroidEffectItf self,
+            SLInterfaceID effectImplementationId,
+            SLboolean enabled);
+
+    SLresult (*IsEnabled) (SLAndroidEffectItf self,
+            SLInterfaceID effectImplementationId,
+            SLboolean *pEnabled);
+
+    SLresult (*SendCommand) (SLAndroidEffectItf self,
+            SLInterfaceID effectImplementationId,
+            SLuint32 command,
+            SLuint32 commandSize,
+            void *pCommandData,
+            SLuint32 *replySize,
+            void *pReplyData);
+};
+
+
+/*---------------------------------------------------------------------------*/
+/* Android Effect Send interface                                             */
+/*---------------------------------------------------------------------------*/
+
+extern SL_API const SLInterfaceID SL_IID_ANDROIDEFFECTSEND;
+
+/** Android Effect Send interface methods */
+
+struct SLAndroidEffectSendItf_;
+typedef const struct SLAndroidEffectSendItf_ * const * SLAndroidEffectSendItf;
+
+struct SLAndroidEffectSendItf_ {
+    SLresult (*EnableEffectSend) (
+        SLAndroidEffectSendItf self,
+        SLInterfaceID effectImplementationId,
+        SLboolean enable,
+        SLmillibel initialLevel
+    );
+    SLresult (*IsEnabled) (
+        SLAndroidEffectSendItf self,
+        SLInterfaceID effectImplementationId,
+        SLboolean *pEnable
+    );
+    SLresult (*SetDirectLevel) (
+        SLAndroidEffectSendItf self,
+        SLmillibel directLevel
+    );
+    SLresult (*GetDirectLevel) (
+        SLAndroidEffectSendItf self,
+        SLmillibel *pDirectLevel
+    );
+    SLresult (*SetSendLevel) (
+        SLAndroidEffectSendItf self,
+        SLInterfaceID effectImplementationId,
+        SLmillibel sendLevel
+    );
+    SLresult (*GetSendLevel)(
+        SLAndroidEffectSendItf self,
+        SLInterfaceID effectImplementationId,
+        SLmillibel *pSendLevel
+    );
+};
+
+
+/*---------------------------------------------------------------------------*/
+/* Android Effect Capabilities interface                                     */
+/*---------------------------------------------------------------------------*/
+
+extern SL_API const SLInterfaceID SL_IID_ANDROIDEFFECTCAPABILITIES;
+
+/** Android Effect Capabilities interface methods */
+
+struct SLAndroidEffectCapabilitiesItf_;
+typedef const struct SLAndroidEffectCapabilitiesItf_ * const * SLAndroidEffectCapabilitiesItf;
+
+struct SLAndroidEffectCapabilitiesItf_ {
+
+    SLresult (*QueryNumEffects) (SLAndroidEffectCapabilitiesItf self,
+            SLuint32 *pNumSupportedEffects);
+
+
+    SLresult (*QueryEffect) (SLAndroidEffectCapabilitiesItf self,
+            SLuint32 index,
+            SLInterfaceID *pEffectType,
+            SLInterfaceID *pEffectImplementation,
+            SLchar *pName,
+            SLuint16 *pNameSize);
+};
+
+
+/*---------------------------------------------------------------------------*/
+/* Android Configuration interface                                           */
+/*---------------------------------------------------------------------------*/
+extern SL_API const SLInterfaceID SL_IID_ANDROIDCONFIGURATION;
+
+/** Android Configuration interface methods */
+
+struct SLAndroidConfigurationItf_;
+typedef const struct SLAndroidConfigurationItf_ * const * SLAndroidConfigurationItf;
+
+struct SLAndroidConfigurationItf_ {
+
+    SLresult (*SetConfiguration) (SLAndroidConfigurationItf self,
+            const SLchar *configKey,
+            const void *pConfigValue,
+            SLuint32 valueSize);
+
+    SLresult (*GetConfiguration) (SLAndroidConfigurationItf self,
+           const SLchar *configKey,
+           SLuint32 *pValueSize,
+           void *pConfigValue
+       );
+};
+
+
+/*---------------------------------------------------------------------------*/
+/* Android Simple Buffer Queue Interface                                     */
+/*---------------------------------------------------------------------------*/
+
+extern SL_API const SLInterfaceID SL_IID_ANDROIDSIMPLEBUFFERQUEUE;
+
+struct SLAndroidSimpleBufferQueueItf_;
+typedef const struct SLAndroidSimpleBufferQueueItf_ * const * SLAndroidSimpleBufferQueueItf;
+
+typedef void (SLAPIENTRY *slAndroidSimpleBufferQueueCallback)(
+	SLAndroidSimpleBufferQueueItf caller,
+	void *pContext
+);
+
+/** Android simple buffer queue state **/
+
+typedef struct SLAndroidSimpleBufferQueueState_ {
+	SLuint32	count;
+	SLuint32	index;
+} SLAndroidSimpleBufferQueueState;
+
+
+struct SLAndroidSimpleBufferQueueItf_ {
+	SLresult (*Enqueue) (
+		SLAndroidSimpleBufferQueueItf self,
+		const void *pBuffer,
+		SLuint32 size
+	);
+	SLresult (*Clear) (
+		SLAndroidSimpleBufferQueueItf self
+	);
+	SLresult (*GetState) (
+		SLAndroidSimpleBufferQueueItf self,
+		SLAndroidSimpleBufferQueueState *pState
+	);
+	SLresult (*RegisterCallback) (
+		SLAndroidSimpleBufferQueueItf self,
+		slAndroidSimpleBufferQueueCallback callback,
+		void* pContext
+	);
+};
+
+
+/*---------------------------------------------------------------------------*/
+/* Android Buffer Queue Interface                                            */
+/*---------------------------------------------------------------------------*/
+
+extern SL_API const SLInterfaceID SL_IID_ANDROIDBUFFERQUEUESOURCE;
+
+struct SLAndroidBufferQueueItf_;
+typedef const struct SLAndroidBufferQueueItf_ * const * SLAndroidBufferQueueItf;
+
+#define SL_ANDROID_ITEMKEY_NONE             ((SLuint32) 0x00000000)
+#define SL_ANDROID_ITEMKEY_EOS              ((SLuint32) 0x00000001)
+#define SL_ANDROID_ITEMKEY_DISCONTINUITY    ((SLuint32) 0x00000002)
+#define SL_ANDROID_ITEMKEY_BUFFERQUEUEEVENT ((SLuint32) 0x00000003)
+#define SL_ANDROID_ITEMKEY_FORMAT_CHANGE    ((SLuint32) 0x00000004)
+
+#define SL_ANDROIDBUFFERQUEUEEVENT_NONE        ((SLuint32) 0x00000000)
+#define SL_ANDROIDBUFFERQUEUEEVENT_PROCESSED   ((SLuint32) 0x00000001)
+#if 0   // reserved for future use
+#define SL_ANDROIDBUFFERQUEUEEVENT_UNREALIZED  ((SLuint32) 0x00000002)
+#define SL_ANDROIDBUFFERQUEUEEVENT_CLEARED     ((SLuint32) 0x00000004)
+#define SL_ANDROIDBUFFERQUEUEEVENT_STOPPED     ((SLuint32) 0x00000008)
+#define SL_ANDROIDBUFFERQUEUEEVENT_ERROR       ((SLuint32) 0x00000010)
+#define SL_ANDROIDBUFFERQUEUEEVENT_CONTENT_END ((SLuint32) 0x00000020)
+#endif
+
+typedef struct SLAndroidBufferItem_ {
+    SLuint32 itemKey;  // identifies the item
+    SLuint32 itemSize;
+    SLuint8  itemData[0];
+} SLAndroidBufferItem;
+
+typedef SLresult (SLAPIENTRY *slAndroidBufferQueueCallback)(
+    SLAndroidBufferQueueItf caller,/* input */
+    void *pCallbackContext,        /* input */
+    void *pBufferContext,          /* input */
+    void *pBufferData,             /* input */
+    SLuint32 dataSize,             /* input */
+    SLuint32 dataUsed,             /* input */
+    const SLAndroidBufferItem *pItems,/* input */
+    SLuint32 itemsLength           /* input */
+);
+
+typedef struct SLAndroidBufferQueueState_ {
+    SLuint32    count;
+    SLuint32    index;
+} SLAndroidBufferQueueState;
+
+struct SLAndroidBufferQueueItf_ {
+    SLresult (*RegisterCallback) (
+        SLAndroidBufferQueueItf self,
+        slAndroidBufferQueueCallback callback,
+        void* pCallbackContext
+    );
+
+    SLresult (*Clear) (
+        SLAndroidBufferQueueItf self
+    );
+
+    SLresult (*Enqueue) (
+        SLAndroidBufferQueueItf self,
+        void *pBufferContext,
+        void *pData,
+        SLuint32 dataLength,
+        const SLAndroidBufferItem *pItems,
+        SLuint32 itemsLength
+    );
+
+    SLresult (*GetState) (
+        SLAndroidBufferQueueItf self,
+        SLAndroidBufferQueueState *pState
+    );
+
+    SLresult (*SetCallbackEventsMask) (
+            SLAndroidBufferQueueItf self,
+            SLuint32 eventFlags
+    );
+
+    SLresult (*GetCallbackEventsMask) (
+            SLAndroidBufferQueueItf self,
+            SLuint32 *pEventFlags
+    );
+};
+
+
+/*---------------------------------------------------------------------------*/
+/* Android File Descriptor Data Locator                                      */
+/*---------------------------------------------------------------------------*/
+
+/** Addendum to Data locator macros  */
+#define SL_DATALOCATOR_ANDROIDFD                ((SLuint32) 0x800007BC)
+
+#define SL_DATALOCATOR_ANDROIDFD_USE_FILE_SIZE ((SLAint64) 0xFFFFFFFFFFFFFFFFll)
+
+/** File Descriptor-based data locator definition, locatorType must be SL_DATALOCATOR_ANDROIDFD */
+typedef struct SLDataLocator_AndroidFD_ {
+    SLuint32        locatorType;
+    SLint32         fd;
+    SLAint64        offset;
+    SLAint64        length;
+} SLDataLocator_AndroidFD;
+
+
+/*---------------------------------------------------------------------------*/
+/* Android Android Simple Buffer Queue Data Locator                          */
+/*---------------------------------------------------------------------------*/
+
+/** Addendum to Data locator macros  */
+#define SL_DATALOCATOR_ANDROIDSIMPLEBUFFERQUEUE ((SLuint32) 0x800007BD)
+
+/** BufferQueue-based data locator definition where locatorType must be SL_DATALOCATOR_ANDROIDSIMPLEBUFFERQUEUE*/
+typedef struct SLDataLocator_AndroidSimpleBufferQueue {
+	SLuint32	locatorType;
+	SLuint32	numBuffers;
+} SLDataLocator_AndroidSimpleBufferQueue;
+
+
+/*---------------------------------------------------------------------------*/
+/* Android Buffer Queue Data Locator                                         */
+/*---------------------------------------------------------------------------*/
+
+/** Addendum to Data locator macros  */
+#define SL_DATALOCATOR_ANDROIDBUFFERQUEUE       ((SLuint32) 0x800007BE)
+
+/** Android Buffer Queue-based data locator definition,
+ *  locatorType must be SL_DATALOCATOR_ANDROIDBUFFERQUEUE */
+typedef struct SLDataLocator_AndroidBufferQueue_ {
+    SLuint32    locatorType;
+    SLuint32    numBuffers;
+} SLDataLocator_AndroidBufferQueue;
+
+/**
+ * MIME types required for data in Android Buffer Queues
+ */
+#define SL_ANDROID_MIME_AACADTS            ((SLchar *) "audio/vnd.android.aac-adts")
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* OPENSL_ES_ANDROID_H_ */
diff --git a/ndk/platforms/android-20/include/SLES/OpenSLES_AndroidConfiguration.h b/ndk/platforms/android-20/include/SLES/OpenSLES_AndroidConfiguration.h
new file mode 100644
index 0000000..01f460d
--- /dev/null
+++ b/ndk/platforms/android-20/include/SLES/OpenSLES_AndroidConfiguration.h
@@ -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.
+ */
+
+#ifndef OPENSL_ES_ANDROIDCONFIGURATION_H_
+#define OPENSL_ES_ANDROIDCONFIGURATION_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*---------------------------------------------------------------------------*/
+/* Android AudioRecorder configuration                                       */
+/*---------------------------------------------------------------------------*/
+
+/** Audio recording preset */
+/** Audio recording preset key */
+#define SL_ANDROID_KEY_RECORDING_PRESET ((const SLchar*) "androidRecordingPreset")
+/** Audio recording preset values */
+/**   preset "none" cannot be set, it is used to indicate the current settings
+ *     do not match any of the presets. */
+#define SL_ANDROID_RECORDING_PRESET_NONE                ((SLuint32) 0x00000000)
+/**   generic recording configuration on the platform */
+#define SL_ANDROID_RECORDING_PRESET_GENERIC             ((SLuint32) 0x00000001)
+/**   uses the microphone audio source with the same orientation as the camera
+ *     if available, the main device microphone otherwise */
+#define SL_ANDROID_RECORDING_PRESET_CAMCORDER           ((SLuint32) 0x00000002)
+/**   uses the main microphone tuned for voice recognition */
+#define SL_ANDROID_RECORDING_PRESET_VOICE_RECOGNITION   ((SLuint32) 0x00000003)
+/**   uses the main microphone tuned for audio communications */
+#define SL_ANDROID_RECORDING_PRESET_VOICE_COMMUNICATION ((SLuint32) 0x00000004)
+
+/*---------------------------------------------------------------------------*/
+/* Android AudioPlayer configuration                                         */
+/*---------------------------------------------------------------------------*/
+
+/** Audio playback stream type */
+/** Audio playback stream type key */
+#define SL_ANDROID_KEY_STREAM_TYPE ((const SLchar*) "androidPlaybackStreamType")
+
+/** Audio playback stream type  values */
+/*      same as android.media.AudioManager.STREAM_VOICE_CALL */
+#define SL_ANDROID_STREAM_VOICE        ((SLint32) 0x00000000)
+/*      same as android.media.AudioManager.STREAM_SYSTEM */
+#define SL_ANDROID_STREAM_SYSTEM       ((SLint32) 0x00000001)
+/*      same as android.media.AudioManager.STREAM_RING */
+#define SL_ANDROID_STREAM_RING         ((SLint32) 0x00000002)
+/*      same as android.media.AudioManager.STREAM_MUSIC */
+#define SL_ANDROID_STREAM_MEDIA        ((SLint32) 0x00000003)
+/*      same as android.media.AudioManager.STREAM_ALARM */
+#define SL_ANDROID_STREAM_ALARM        ((SLint32) 0x00000004)
+/*      same as android.media.AudioManager.STREAM_NOTIFICATION */
+#define SL_ANDROID_STREAM_NOTIFICATION ((SLint32) 0x00000005)
+
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* OPENSL_ES_ANDROIDCONFIGURATION_H_ */
diff --git a/ndk/platforms/android-20/include/SLES/OpenSLES_AndroidMetadata.h b/ndk/platforms/android-20/include/SLES/OpenSLES_AndroidMetadata.h
new file mode 100644
index 0000000..01e33b8
--- /dev/null
+++ b/ndk/platforms/android-20/include/SLES/OpenSLES_AndroidMetadata.h
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+#ifndef OPENSL_ES_ANDROIDMETADATA_H_
+#define OPENSL_ES_ANDROIDMETADATA_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*---------------------------------------------------------------------------*/
+/* Android metadata keys                                                     */
+/*---------------------------------------------------------------------------*/
+
+/**
+ * Additional metadata keys to be used in SLMetadataExtractionItf:
+ *   the ANDROID_KEY_PCMFORMAT_* keys follow the fields of the SLDataFormat_PCM struct, and as such
+ *   all values corresponding to these keys are of SLuint32 type, and are defined as the fields
+ *   of the same name in SLDataFormat_PCM.  The exception is that sample rate is expressed here
+ *   in Hz units, rather than in milliHz units.
+ */
+#define ANDROID_KEY_PCMFORMAT_NUMCHANNELS   "AndroidPcmFormatNumChannels"
+#define ANDROID_KEY_PCMFORMAT_SAMPLERATE    "AndroidPcmFormatSampleRate"
+#define ANDROID_KEY_PCMFORMAT_BITSPERSAMPLE "AndroidPcmFormatBitsPerSample"
+#define ANDROID_KEY_PCMFORMAT_CONTAINERSIZE "AndroidPcmFormatContainerSize"
+#define ANDROID_KEY_PCMFORMAT_CHANNELMASK   "AndroidPcmFormatChannelMask"
+#define ANDROID_KEY_PCMFORMAT_ENDIANNESS    "AndroidPcmFormatEndianness"
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* OPENSL_ES_ANDROIDMETADATA_H_ */
diff --git a/ndk/platforms/android-20/include/SLES/OpenSLES_Platform.h b/ndk/platforms/android-20/include/SLES/OpenSLES_Platform.h
new file mode 100644
index 0000000..527693d
--- /dev/null
+++ b/ndk/platforms/android-20/include/SLES/OpenSLES_Platform.h
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 2007-2009 The Khronos Group Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and /or associated documentation files (the "Materials "), to
+ * deal in the Materials without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Materials, and to permit persons to whom the Materials are
+ * furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Materials.
+ *
+ * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN THE
+ * MATERIALS.
+ *
+ * OpenSLES_Platform.h - OpenSL ES version 1.0
+ *
+ */
+
+/****************************************************************************/
+/* NOTE: This file contains definitions for the base types and the          */
+/* SLAPIENTRY macro. This file **WILL NEED TO BE EDITED** to provide        */
+/* the correct definitions specific to the platform being used.             */
+/****************************************************************************/
+
+#ifndef _OPENSLES_PLATFORM_H_
+#define _OPENSLES_PLATFORM_H_
+
+typedef unsigned char               sl_uint8_t;
+typedef signed char                 sl_int8_t;
+typedef unsigned short              sl_uint16_t;
+typedef signed short                sl_int16_t;
+typedef unsigned int /*long*/       sl_uint32_t;
+typedef signed int /*long*/         sl_int32_t;
+typedef long long                   sl_int64_t;
+typedef unsigned long long          sl_uint64_t;
+
+#ifndef SL_API
+#ifdef __GNUC__
+#define SL_API                 /* override per-platform */
+#else
+#define SL_API __declspec(dllimport)
+#endif
+#endif
+
+#ifndef SLAPIENTRY
+#define SLAPIENTRY
+#endif
+
+#endif /* _OPENSLES_PLATFORM_H_ */
diff --git a/ndk/platforms/android-20/include/dirent.h b/ndk/platforms/android-20/include/dirent.h
deleted file mode 100644
index 71eb2e7..0000000
--- a/ndk/platforms/android-20/include/dirent.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef _DIRENT_H_
-#define _DIRENT_H_
-
-#include <stdint.h>
-#include <sys/cdefs.h>
-
-__BEGIN_DECLS
-
-#ifndef DT_UNKNOWN
-#define DT_UNKNOWN 0
-#define DT_FIFO 1
-#define DT_CHR 2
-#define DT_DIR 4
-#define DT_BLK 6
-#define DT_REG 8
-#define DT_LNK 10
-#define DT_SOCK 12
-#define DT_WHT 14
-#endif
-
-#define __DIRENT64_BODY \
-    uint64_t         d_ino; \
-    int64_t          d_off; \
-    unsigned short   d_reclen; \
-    unsigned char    d_type; \
-    char             d_name[256]; \
-
-struct dirent { __DIRENT64_BODY };
-struct dirent64 { __DIRENT64_BODY };
-
-#undef __DIRENT64_BODY
-
-#define d_fileno d_ino
-
-typedef struct DIR DIR;
-
-extern DIR* opendir(const char*);
-extern DIR* fdopendir(int);
-extern struct dirent* readdir(DIR*);
-extern struct dirent64* readdir64(DIR*);
-extern int readdir_r(DIR*, struct dirent*, struct dirent**);
-extern int readdir64_r(DIR*, struct dirent64*, struct dirent64**);
-extern int closedir(DIR*);
-extern void rewinddir(DIR*);
-extern int dirfd(DIR*);
-extern int alphasort(const struct dirent**, const struct dirent**);
-extern int alphasort64(const struct dirent64**, const struct dirent64**);
-extern int scandir(const char*, struct dirent***, int (*)(const struct dirent*), int (*)(const struct dirent**, const struct dirent**));
-extern int scandir64(const char*, struct dirent64***, int (*)(const struct dirent64*), int (*)(const struct dirent64**, const struct dirent64**));
-extern int getdents(unsigned int, struct dirent*, unsigned int);
-
-__END_DECLS
-
-#endif /* _DIRENT_H_ */
diff --git a/ndk/platforms/android-20/include/dlfcn.h b/ndk/platforms/android-20/include/dlfcn.h
deleted file mode 100644
index 7daa8f7..0000000
--- a/ndk/platforms/android-20/include/dlfcn.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#ifndef __DLFCN_H__
-#define __DLFCN_H__
-
-#include <sys/cdefs.h>
-
-__BEGIN_DECLS
-
-typedef struct {
-    const char *dli_fname;  /* Pathname of shared object that
-                               contains address */
-    void       *dli_fbase;  /* Address at which shared object
-                               is loaded */
-    const char *dli_sname;  /* Name of nearest symbol with address
-                               lower than addr */
-    void       *dli_saddr;  /* Exact address of symbol named
-                               in dli_sname */
-} Dl_info;
-
-extern void*        dlopen(const char*  filename, int flag);
-extern int          dlclose(void*  handle);
-extern const char*  dlerror(void);
-extern void*        dlsym(void*  handle, const char*  symbol);
-extern int          dladdr(const void* addr, Dl_info *info);
-
-enum {
-  RTLD_NOW  = 0,
-  RTLD_LAZY = 1,
-
-  RTLD_LOCAL  = 0,
-  RTLD_GLOBAL = 2,
-};
-
-#define RTLD_DEFAULT  ((void*) 0xffffffff)
-#define RTLD_NEXT     ((void*) 0xfffffffe)
-
-__END_DECLS
-
-#endif /* __DLFCN_H */
-
-
diff --git a/ndk/platforms/android-20/include/errno.h b/ndk/platforms/android-20/include/errno.h
deleted file mode 100644
index 2e5ce5f..0000000
--- a/ndk/platforms/android-20/include/errno.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#ifndef _ERRNO_H
-#define _ERRNO_H
-
-#include <sys/cdefs.h>
-#include <linux/errno.h>
-
-__BEGIN_DECLS
-
-/* on Linux, ENOTSUP and EOPNOTSUPP are defined as the same error code
- * even if 1000.3 states that they should be different
- */
-#ifndef  ENOTSUP
-#define  ENOTSUP  EOPNOTSUPP
-#endif
-
-/* internal function returning the address of the thread-specific errno */
-extern volatile int*   __errno(void);
-
-/* a macro expanding to the errno l-value */
-#define  errno   (*__errno())
-
-__END_DECLS
-
-#endif /* _ERRNO_H */
diff --git a/ndk/platforms/android-20/include/fenv.h b/ndk/platforms/android-20/include/fenv.h
deleted file mode 100644
index 6966e0d..0000000
--- a/ndk/platforms/android-20/include/fenv.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*  $OpenBSD: fenv.h,v 1.2 2011/05/25 21:46:49 martynas Exp $ */
-/*  $NetBSD: fenv.h,v 1.2.4.1 2011/02/08 16:18:55 bouyer Exp $  */
-
-/*
- * Copyright (c) 2010 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef _FENV_H_
-#define _FENV_H_
-
-#include <sys/cdefs.h>
-#include <machine/fenv.h>
-
-__BEGIN_DECLS
-
-int feclearexcept(int);
-int fegetexceptflag(fexcept_t *, int);
-int feraiseexcept(int);
-int fesetexceptflag(const fexcept_t *, int);
-int fetestexcept(int);
-
-int fegetround(void);
-int fesetround(int);
-
-int fegetenv(fenv_t *);
-int feholdexcept(fenv_t *);
-int fesetenv(const fenv_t *);
-int feupdateenv(const fenv_t *);
-
-int feenableexcept(int);
-int fedisableexcept(int);
-int fegetexcept(void);
-
-/*
- * The following constant represents the default floating-point environment
- * (that is, the one installed at program startup) and has type pointer to
- * const-qualified fenv_t.
- *
- * It can be used as an argument to the functions that manage the floating-point
- * environment, namely fesetenv() and feupdateenv().
- */
-extern const fenv_t __fe_dfl_env;
-#define FE_DFL_ENV  (&__fe_dfl_env)
-
-__END_DECLS
-
-#endif  /* ! _FENV_H_ */
diff --git a/ndk/platforms/android-20/include/limits.h b/ndk/platforms/android-20/include/limits.h
deleted file mode 100644
index dc45902..0000000
--- a/ndk/platforms/android-20/include/limits.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/*	$OpenBSD: limits.h,v 1.13 2005/12/31 19:29:38 millert Exp $	*/
-/*	$NetBSD: limits.h,v 1.7 1994/10/26 00:56:00 cgd Exp $	*/
-
-/*
- * Copyright (c) 1988 The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *	@(#)limits.h	5.9 (Berkeley) 4/3/91
- */
-
-#ifndef _LIMITS_H_
-#define	_LIMITS_H_
-
-#include <sys/cdefs.h>
-
-#if __POSIX_VISIBLE
-#define	_POSIX_ARG_MAX		4096
-#define	_POSIX_CHILD_MAX	25
-#define	_POSIX_LINK_MAX		8
-#define	_POSIX_MAX_CANON	255
-#define	_POSIX_MAX_INPUT	255
-#define	_POSIX_NAME_MAX		14
-#define	_POSIX_NGROUPS_MAX	0
-#define	_POSIX_OPEN_MAX		16
-#define	_POSIX_PATH_MAX		256
-#define _POSIX_PIPE_BUF		512
-#define	_POSIX_RE_DUP_MAX	255
-#define _POSIX_SSIZE_MAX	32767
-#define _POSIX_STREAM_MAX	8
-#define _POSIX_SYMLINK_MAX	255
-#define _POSIX_SYMLOOP_MAX	8
-#define _POSIX_TZNAME_MAX	3
-
-#define	_POSIX2_BC_BASE_MAX	99
-#define	_POSIX2_BC_DIM_MAX	2048
-#define	_POSIX2_BC_SCALE_MAX	99
-#define	_POSIX2_BC_STRING_MAX	1000
-#define	_POSIX2_COLL_WEIGHTS_MAX	2
-#define	_POSIX2_EXPR_NEST_MAX	32
-#define	_POSIX2_LINE_MAX	2048
-#define	_POSIX2_RE_DUP_MAX	_POSIX_RE_DUP_MAX
-
-#if __POSIX_VISIBLE >= 200112
-#define _POSIX_TTY_NAME_MAX	9	/* includes trailing NUL */
-#define _POSIX_LOGIN_NAME_MAX	9	/* includes trailing NUL */
-#endif /* __POSIX_VISIBLE >= 200112 */
-#endif /* __POSIX_VISIBLE */
-
-#if __XPG_VISIBLE
-#define PASS_MAX		128	/* _PASSWORD_LEN from <pwd.h> */
-
-#define NL_ARGMAX		9
-#define NL_LANGMAX		14
-#define NL_MSGMAX		32767
-#define NL_NMAX			1
-#define NL_SETMAX		255
-#define NL_TEXTMAX		255
-
-#define TMP_MAX                 308915776
-#endif /* __XPG_VISIBLE */
-
-#include <sys/limits.h>
-
-#if __POSIX_VISIBLE
-#include <sys/syslimits.h>
-#endif
-
-/* GLibc compatibility definitions.
-   Note that these are defined by GCC's <limits.h>
-   only when __GNU_LIBRARY__ is defined, i.e. when
-   targetting GLibc. */
-#ifndef LONG_LONG_MIN
-#define LONG_LONG_MIN  LLONG_MIN
-#endif
-
-#ifndef LONG_LONG_MAX
-#define LONG_LONG_MAX  LLONG_MAX
-#endif
-
-#ifndef ULONG_LONG_MAX
-#define ULONG_LONG_MAX  ULLONG_MAX
-#endif
-
-/* BSD compatibility definitions. */
-#if __BSD_VISIBLE
-#define SIZE_T_MAX ULONG_MAX
-#endif /* __BSD_VISIBLE */
-
-#define SSIZE_MAX LONG_MAX
-
-#define MB_LEN_MAX 6
-
-/* New code should use sysconf(_SC_PAGE_SIZE) instead. */
-#ifndef PAGE_SIZE
-#define PAGE_SIZE 4096
-#endif
-#ifndef PAGESIZE
-#define  PAGESIZE  PAGE_SIZE
-#endif
-
-/* glibc's PAGE_MASK is the bitwise negation of BSD's! TODO: remove? */
-#define PAGE_MASK (~(PAGE_SIZE - 1))
-
-#endif /* !_LIMITS_H_ */
diff --git a/ndk/platforms/android-20/include/malloc.h b/ndk/platforms/android-20/include/malloc.h
deleted file mode 100644
index 9a4e324..0000000
--- a/ndk/platforms/android-20/include/malloc.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2012 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.
- */
-
-#ifndef LIBC_INCLUDE_MALLOC_H_
-#define LIBC_INCLUDE_MALLOC_H_
-
-/*
- * Declaration of malloc routines. Bionic uses dlmalloc (see
- * upstream-dlmalloc) but doesn't directly include it here to keep the
- * defined malloc.h interface small.
- */
-#include <sys/cdefs.h>
-#include <stddef.h>
-
-__BEGIN_DECLS
-
-extern void* malloc(size_t byte_count) __mallocfunc __wur __attribute__((alloc_size(1)));
-extern void* calloc(size_t item_count, size_t item_size) __mallocfunc __wur __attribute__((alloc_size(1,2)));
-extern void* realloc(void* p, size_t byte_count) __wur __attribute__((alloc_size(2)));
-extern void free(void* p);
-
-extern void* memalign(size_t alignment, size_t byte_count) __mallocfunc __wur __attribute__((alloc_size(2)));
-extern size_t malloc_usable_size(const void* p);
-
-extern void* valloc(size_t byte_count) __mallocfunc __wur __attribute__((alloc_size(1)));
-extern void* pvalloc(size_t byte_count) __mallocfunc __wur __attribute__((alloc_size(1)));
-
-#ifndef STRUCT_MALLINFO_DECLARED
-#define STRUCT_MALLINFO_DECLARED 1
-struct mallinfo {
-  size_t arena;    /* Total number of non-mmapped bytes currently allocated from OS. */
-  size_t ordblks;  /* Number of free chunks. */
-  size_t smblks;   /* (Unused.) */
-  size_t hblks;    /* (Unused.) */
-  size_t hblkhd;   /* Total number of bytes in mmapped regions. */
-  size_t usmblks;  /* Maximum total allocated space; greater than total if trimming has occurred. */
-  size_t fsmblks;  /* (Unused.) */
-  size_t uordblks; /* Total allocated space (normal or mmapped.) */
-  size_t fordblks; /* Total free space. */
-  size_t keepcost; /* Upper bound on number of bytes releasable by malloc_trim. */
-};
-#endif  /* STRUCT_MALLINFO_DECLARED */
-
-extern struct mallinfo mallinfo(void);
-
-__END_DECLS
-
-#endif  /* LIBC_INCLUDE_MALLOC_H_ */
diff --git a/ndk/platforms/android-20/include/math.h b/ndk/platforms/android-20/include/math.h
deleted file mode 100644
index c264583..0000000
--- a/ndk/platforms/android-20/include/math.h
+++ /dev/null
@@ -1,469 +0,0 @@
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/*
- * from: @(#)fdlibm.h 5.1 93/09/24
- * $FreeBSD$
- */
-
-#ifndef _MATH_H_
-#define	_MATH_H_
-
-#include <sys/cdefs.h>
-#include <limits.h>
-
-/*
- * ANSI/POSIX
- */
-extern const union __infinity_un {
-	unsigned char	__uc[8];
-	double		__ud;
-} __infinity;
-
-extern const union __nan_un {
-	unsigned char	__uc[sizeof(float)];
-	float		__uf;
-} __nan;
-
-#if __GNUC_PREREQ__(3, 3) || (defined(__INTEL_COMPILER) && __INTEL_COMPILER >= 800)
-#define	__MATH_BUILTIN_CONSTANTS
-#endif
-
-#if __GNUC_PREREQ__(3, 0) && !defined(__INTEL_COMPILER)
-#define	__MATH_BUILTIN_RELOPS
-#endif
-
-#ifdef __MATH_BUILTIN_CONSTANTS
-#define	HUGE_VAL	__builtin_huge_val()
-#else
-#define	HUGE_VAL	(__infinity.__ud)
-#endif
-
-#if __ISO_C_VISIBLE >= 1999
-#define	FP_ILOGB0	(-INT_MAX) /* Android-changed */
-#define	FP_ILOGBNAN	INT_MAX /* Android-changed */
-
-#ifdef __MATH_BUILTIN_CONSTANTS
-#define	HUGE_VALF	__builtin_huge_valf()
-#define	HUGE_VALL	__builtin_huge_vall()
-#define	INFINITY	__builtin_inff()
-#define	NAN		__builtin_nanf("")
-#else
-#define	HUGE_VALF	(float)HUGE_VAL
-#define	HUGE_VALL	(long double)HUGE_VAL
-#define	INFINITY	HUGE_VALF
-#define	NAN		(__nan.__uf)
-#endif /* __MATH_BUILTIN_CONSTANTS */
-
-#define	MATH_ERRNO	1
-#define	MATH_ERREXCEPT	2
-#define	math_errhandling	MATH_ERREXCEPT
-
-#define	FP_FAST_FMAF	1
-#ifdef __ia64__
-#define	FP_FAST_FMA	1
-#define	FP_FAST_FMAL	1
-#endif
-
-/* Symbolic constants to classify floating point numbers. */
-#define	FP_INFINITE	0x01
-#define	FP_NAN		0x02
-#define	FP_NORMAL	0x04
-#define	FP_SUBNORMAL	0x08
-#define	FP_ZERO		0x10
-#define	fpclassify(x) \
-    ((sizeof (x) == sizeof (float)) ? __fpclassifyf(x) \
-    : (sizeof (x) == sizeof (double)) ? __fpclassifyd(x) \
-    : __fpclassifyl(x))
-
-#define	isfinite(x)					\
-    ((sizeof (x) == sizeof (float)) ? __isfinitef(x)	\
-    : (sizeof (x) == sizeof (double)) ? __isfinite(x)	\
-    : __isfinitel(x))
-#define	isinf(x)					\
-    ((sizeof (x) == sizeof (float)) ? __isinff(x)	\
-    : (sizeof (x) == sizeof (double)) ? isinf(x)	\
-    : __isinfl(x))
-#define	isnan(x)					\
-    ((sizeof (x) == sizeof (float)) ? __isnanf(x)	\
-    : (sizeof (x) == sizeof (double)) ? isnan(x)	\
-    : __isnanl(x))
-#define	isnormal(x)					\
-    ((sizeof (x) == sizeof (float)) ? __isnormalf(x)	\
-    : (sizeof (x) == sizeof (double)) ? __isnormal(x)	\
-    : __isnormall(x))
-
-#ifdef __MATH_BUILTIN_RELOPS
-#define	isgreater(x, y)		__builtin_isgreater((x), (y))
-#define	isgreaterequal(x, y)	__builtin_isgreaterequal((x), (y))
-#define	isless(x, y)		__builtin_isless((x), (y))
-#define	islessequal(x, y)	__builtin_islessequal((x), (y))
-#define	islessgreater(x, y)	__builtin_islessgreater((x), (y))
-#define	isunordered(x, y)	__builtin_isunordered((x), (y))
-#else
-#define	isgreater(x, y)		(!isunordered((x), (y)) && (x) > (y))
-#define	isgreaterequal(x, y)	(!isunordered((x), (y)) && (x) >= (y))
-#define	isless(x, y)		(!isunordered((x), (y)) && (x) < (y))
-#define	islessequal(x, y)	(!isunordered((x), (y)) && (x) <= (y))
-#define	islessgreater(x, y)	(!isunordered((x), (y)) && \
-					((x) > (y) || (y) > (x)))
-#define	isunordered(x, y)	(isnan(x) || isnan(y))
-#endif /* __MATH_BUILTIN_RELOPS */
-
-#define	signbit(x)					\
-    ((sizeof (x) == sizeof (float)) ? __signbitf(x)	\
-    : (sizeof (x) == sizeof (double)) ? __signbit(x)	\
-    : __signbitl(x))
-
-typedef double __double_t;
-typedef __double_t double_t;
-typedef float __float_t;
-typedef __float_t float_t;
-#endif /* __ISO_C_VISIBLE >= 1999 */
-
-/*
- * XOPEN/SVID
- */
-#if __BSD_VISIBLE || __XSI_VISIBLE
-#define	M_E		2.7182818284590452354	/* e */
-#define	M_LOG2E		1.4426950408889634074	/* log 2e */
-#define	M_LOG10E	0.43429448190325182765	/* log 10e */
-#define	M_LN2		0.69314718055994530942	/* log e2 */
-#define	M_LN10		2.30258509299404568402	/* log e10 */
-#define	M_PI		3.14159265358979323846	/* pi */
-#define	M_PI_2		1.57079632679489661923	/* pi/2 */
-#define	M_PI_4		0.78539816339744830962	/* pi/4 */
-#define	M_1_PI		0.31830988618379067154	/* 1/pi */
-#define	M_2_PI		0.63661977236758134308	/* 2/pi */
-#define	M_2_SQRTPI	1.12837916709551257390	/* 2/sqrt(pi) */
-#define	M_SQRT2		1.41421356237309504880	/* sqrt(2) */
-#define	M_SQRT1_2	0.70710678118654752440	/* 1/sqrt(2) */
-
-#define	MAXFLOAT	((float)3.40282346638528860e+38)
-extern int signgam;
-#endif /* __BSD_VISIBLE || __XSI_VISIBLE */
-
-#if __BSD_VISIBLE
-#if 0
-/* Old value from 4.4BSD-Lite math.h; this is probably better. */
-#define	HUGE		HUGE_VAL
-#else
-#define	HUGE		MAXFLOAT
-#endif
-#endif /* __BSD_VISIBLE */
-
-/*
- * Most of these functions depend on the rounding mode and have the side
- * effect of raising floating-point exceptions, so they are not declared
- * as __pure2.  In C99, FENV_ACCESS affects the purity of these functions.
- */
-__BEGIN_DECLS
-/*
- * ANSI/POSIX
- */
-int	__fpclassifyd(double) __pure2;
-int	__fpclassifyf(float) __pure2;
-int	__fpclassifyl(long double) __pure2;
-int	__isfinitef(float) __pure2;
-int	__isfinite(double) __pure2;
-int	__isfinitel(long double) __pure2;
-int	__isinff(float) __pure2;
-int	__isinfl(long double) __pure2;
-int	__isnanf(float) __pure2;
-int	__isnanl(long double) __pure2;
-int	__isnormalf(float) __pure2;
-int	__isnormal(double) __pure2;
-int	__isnormall(long double) __pure2;
-int	__signbit(double) __pure2;
-int	__signbitf(float) __pure2;
-int	__signbitl(long double) __pure2;
-
-double	acos(double);
-double	asin(double);
-double	atan(double);
-double	atan2(double, double);
-double	cos(double);
-double	sin(double);
-double	tan(double);
-
-double	cosh(double);
-double	sinh(double);
-double	tanh(double);
-
-double	exp(double);
-double	frexp(double, int *);	/* fundamentally !__pure2 */
-double	ldexp(double, int);
-double	log(double);
-double	log10(double);
-double	modf(double, double *);	/* fundamentally !__pure2 */
-
-double	pow(double, double);
-double	sqrt(double);
-
-double	ceil(double);
-double	fabs(double) __pure2;
-double	floor(double);
-double	fmod(double, double);
-
-/*
- * These functions are not in C90.
- */
-#if __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE
-double	acosh(double);
-double	asinh(double);
-double	atanh(double);
-double	cbrt(double);
-double	erf(double);
-double	erfc(double);
-double	exp2(double);
-double	expm1(double);
-double	fma(double, double, double);
-double	hypot(double, double);
-int	ilogb(double) __pure2;
-int	(isinf)(double) __pure2;
-int	(isnan)(double) __pure2;
-double	lgamma(double);
-long long llrint(double);
-long long llround(double);
-double	log1p(double);
-double	log2(double);
-double	logb(double);
-long	lrint(double);
-long	lround(double);
-double	nan(const char *) __pure2;
-double	nextafter(double, double);
-double	remainder(double, double);
-double	remquo(double, double, int *);
-double	rint(double);
-#endif /* __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE */
-
-#if __BSD_VISIBLE || __XSI_VISIBLE
-double	j0(double);
-double	j1(double);
-double	jn(int, double);
-double	y0(double);
-double	y1(double);
-double	yn(int, double);
-
-#if __XSI_VISIBLE <= 500 || __BSD_VISIBLE
-double	gamma(double);
-#endif
-
-#if __XSI_VISIBLE <= 600 || __BSD_VISIBLE
-double	scalb(double, double);
-#endif
-#endif /* __BSD_VISIBLE || __XSI_VISIBLE */
-
-#if __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999
-double	copysign(double, double) __pure2;
-double	fdim(double, double);
-double	fmax(double, double) __pure2;
-double	fmin(double, double) __pure2;
-double	nearbyint(double);
-double	round(double);
-double	scalbln(double, long);
-double	scalbn(double, int);
-double	tgamma(double);
-double	trunc(double);
-#endif
-
-/*
- * BSD math library entry points
- */
-#if __BSD_VISIBLE
-double	drem(double, double);
-int	finite(double) __pure2;
-int	isnanf(float) __pure2;
-
-/*
- * Reentrant version of gamma & lgamma; passes signgam back by reference
- * as the second argument; user must allocate space for signgam.
- */
-double	gamma_r(double, int *);
-double	lgamma_r(double, int *);
-
-/*
- * IEEE Test Vector
- */
-double	significand(double);
-#endif /* __BSD_VISIBLE */
-
-/* float versions of ANSI/POSIX functions */
-#if __ISO_C_VISIBLE >= 1999
-float	acosf(float);
-float	asinf(float);
-float	atanf(float);
-float	atan2f(float, float);
-float	cosf(float);
-float	sinf(float);
-float	tanf(float);
-
-float	coshf(float);
-float	sinhf(float);
-float	tanhf(float);
-
-float	exp2f(float);
-float	expf(float);
-float	expm1f(float);
-float	frexpf(float, int *);	/* fundamentally !__pure2 */
-int	ilogbf(float) __pure2;
-float	ldexpf(float, int);
-float	log10f(float);
-float	log1pf(float);
-float	log2f(float);
-float	logf(float);
-float	modff(float, float *);	/* fundamentally !__pure2 */
-
-float	powf(float, float);
-float	sqrtf(float);
-
-float	ceilf(float);
-float	fabsf(float) __pure2;
-float	floorf(float);
-float	fmodf(float, float);
-float	roundf(float);
-
-float	erff(float);
-float	erfcf(float);
-float	hypotf(float, float);
-float	lgammaf(float);
-float	tgammaf(float);
-
-float	acoshf(float);
-float	asinhf(float);
-float	atanhf(float);
-float	cbrtf(float);
-float	logbf(float);
-float	copysignf(float, float) __pure2;
-long long llrintf(float);
-long long llroundf(float);
-long	lrintf(float);
-long	lroundf(float);
-float	nanf(const char *) __pure2;
-float	nearbyintf(float);
-float	nextafterf(float, float);
-float	remainderf(float, float);
-float	remquof(float, float, int *);
-float	rintf(float);
-float	scalblnf(float, long);
-float	scalbnf(float, int);
-float	truncf(float);
-
-float	fdimf(float, float);
-float	fmaf(float, float, float);
-float	fmaxf(float, float) __pure2;
-float	fminf(float, float) __pure2;
-#endif
-
-/*
- * float versions of BSD math library entry points
- */
-#if __BSD_VISIBLE
-float	dremf(float, float);
-int	finitef(float) __pure2;
-float	gammaf(float);
-float	j0f(float);
-float	j1f(float);
-float	jnf(int, float);
-float	scalbf(float, float);
-float	y0f(float);
-float	y1f(float);
-float	ynf(int, float);
-
-/*
- * Float versions of reentrant version of gamma & lgamma; passes
- * signgam back by reference as the second argument; user must
- * allocate space for signgam.
- */
-float	gammaf_r(float, int *);
-float	lgammaf_r(float, int *);
-
-/*
- * float version of IEEE Test Vector
- */
-float	significandf(float);
-#endif	/* __BSD_VISIBLE */
-
-/*
- * long double versions of ISO/POSIX math functions
- */
-#if __ISO_C_VISIBLE >= 1999
-long double	acoshl(long double);
-long double	acosl(long double);
-long double	asinhl(long double);
-long double	asinl(long double);
-long double	atan2l(long double, long double);
-long double	atanhl(long double);
-long double	atanl(long double);
-long double	cbrtl(long double);
-long double	ceill(long double);
-long double	copysignl(long double, long double) __pure2;
-long double	coshl(long double);
-long double	cosl(long double);
-long double	erfcl(long double);
-long double	erfl(long double);
-long double	exp2l(long double);
-long double	expl(long double);
-long double	expm1l(long double);
-long double	fabsl(long double) __pure2;
-long double	fdiml(long double, long double);
-long double	floorl(long double);
-long double	fmal(long double, long double, long double);
-long double	fmaxl(long double, long double) __pure2;
-long double	fminl(long double, long double) __pure2;
-long double	fmodl(long double, long double);
-long double	frexpl(long double value, int *); /* fundamentally !__pure2 */
-long double	hypotl(long double, long double);
-int		ilogbl(long double) __pure2;
-long double	ldexpl(long double, int);
-long double	lgammal(long double);
-long long	llrintl(long double);
-long long	llroundl(long double);
-long double	log10l(long double);
-long double	log1pl(long double);
-long double	log2l(long double);
-long double	logbl(long double);
-long double	logl(long double);
-long		lrintl(long double);
-long		lroundl(long double);
-long double	modfl(long double, long double *); /* fundamentally !__pure2 */
-long double	nanl(const char *) __pure2;
-long double	nearbyintl(long double);
-long double	nextafterl(long double, long double);
-double		nexttoward(double, long double);
-float		nexttowardf(float, long double);
-long double	nexttowardl(long double, long double);
-long double	powl(long double, long double);
-long double	remainderl(long double, long double);
-long double	remquol(long double, long double, int *);
-long double	rintl(long double);
-long double	roundl(long double);
-long double	scalblnl(long double, long);
-long double	scalbnl(long double, int);
-long double	sinhl(long double);
-long double	sinl(long double);
-long double	sqrtl(long double);
-long double	tanhl(long double);
-long double	tanl(long double);
-long double	tgammal(long double);
-long double	truncl(long double);
-
-#endif /* __ISO_C_VISIBLE >= 1999 */
-
-#if defined(_GNU_SOURCE)
-void sincos(double, double*, double*);
-void sincosf(float, float*, float*);
-void sincosl(long double, long double*, long double*);
-#endif /* _GNU_SOURCE */
-
-__END_DECLS
-
-#endif /* !_MATH_H_ */
diff --git a/ndk/platforms/android-20/include/netdb.h b/ndk/platforms/android-20/include/netdb.h
deleted file mode 100644
index ead5954..0000000
--- a/ndk/platforms/android-20/include/netdb.h
+++ /dev/null
@@ -1,250 +0,0 @@
-/*-
- * Copyright (c) 1980, 1983, 1988, 1993
- *	The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *	This product includes software developed by the University of
- *	California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * -
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies, and that
- * the name of Digital Equipment Corporation not be used in advertising or
- * publicity pertaining to distribution of the document or software without
- * specific, written prior permission.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
- * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
- * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * -
- * --Copyright--
- */
-
-/*
- *      @(#)netdb.h	8.1 (Berkeley) 6/2/93
- *      From: Id: netdb.h,v 8.9 1996/11/19 08:39:29 vixie Exp $
- * $FreeBSD: /repoman/r/ncvs/src/include/netdb.h,v 1.41 2006/04/15 16:20:26 ume Exp $
- */
-
-#ifndef _NETDB_H_
-#define _NETDB_H_
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-
-#ifndef _PATH_HEQUIV
-# define	_PATH_HEQUIV	"/system/etc/hosts.equiv"
-#endif
-#define	_PATH_HOSTS	"/system/etc/hosts"
-#define	_PATH_NETWORKS	"/system/etc/networks"
-#define	_PATH_PROTOCOLS	"/system/etc/protocols"
-#define	_PATH_SERVICES	"/system/etc/services"
-
-#define  MAXHOSTNAMELEN  256
-
-
-/*
- * Structures returned by network data base library.  All addresses are
- * supplied in host order, and returned in network order (suitable for
- * use in system calls).
- */
-struct hostent {
-	char	*h_name;	/* official name of host */
-	char	**h_aliases;	/* alias list */
-	int	h_addrtype;	/* host address type */
-	int	h_length;	/* length of address */
-	char	**h_addr_list;	/* list of addresses from name server */
-#define	h_addr	h_addr_list[0]	/* address, for backward compatibility */
-};
-
-struct netent {
-	char		*n_name;	/* official name of net */
-	char		**n_aliases;	/* alias list */
-	int		n_addrtype;	/* net address type */
-	uint32_t	n_net;		/* network # */
-};
-
-struct servent {
-	char	*s_name;	/* official service name */
-	char	**s_aliases;	/* alias list */
-	int	s_port;		/* port # */
-	char	*s_proto;	/* protocol to use */
-};
-
-struct protoent {
-	char	*p_name;	/* official protocol name */
-	char	**p_aliases;	/* alias list */
-	int	p_proto;	/* protocol # */
-};
-
-struct addrinfo {
-	int	ai_flags;	/* AI_PASSIVE, AI_CANONNAME, AI_NUMERICHOST */
-	int	ai_family;	/* PF_xxx */
-	int	ai_socktype;	/* SOCK_xxx */
-	int	ai_protocol;	/* 0 or IPPROTO_xxx for IPv4 and IPv6 */
-	socklen_t ai_addrlen;	/* length of ai_addr */
-	char	*ai_canonname;	/* canonical name for hostname */
-	struct	sockaddr *ai_addr;	/* binary address */
-	struct	addrinfo *ai_next;	/* next structure in linked list */
-};
-
-/*
- * Error return codes from gethostbyname() and gethostbyaddr()
- * (left in h_errno).
- */
-
-#define	NETDB_INTERNAL	-1	/* see errno */
-#define	NETDB_SUCCESS	0	/* no problem */
-#define	HOST_NOT_FOUND	1 /* Authoritative Answer Host not found */
-#define	TRY_AGAIN	2 /* Non-Authoritative Host not found, or SERVERFAIL */
-#define	NO_RECOVERY	3 /* Non recoverable errors, FORMERR, REFUSED, NOTIMP */
-#define	NO_DATA		4 /* Valid name, no data record of requested type */
-#define	NO_ADDRESS	NO_DATA		/* no address, look for MX record */
-
-/*
- * Error return codes from getaddrinfo()
- */
-#define	EAI_ADDRFAMILY	 1	/* address family for hostname not supported */
-#define	EAI_AGAIN	 2	/* temporary failure in name resolution */
-#define	EAI_BADFLAGS	 3	/* invalid value for ai_flags */
-#define	EAI_FAIL	 4	/* non-recoverable failure in name resolution */
-#define	EAI_FAMILY	 5	/* ai_family not supported */
-#define	EAI_MEMORY	 6	/* memory allocation failure */
-#define	EAI_NODATA	 7	/* no address associated with hostname */
-#define	EAI_NONAME	 8	/* hostname nor servname provided, or not known */
-#define	EAI_SERVICE	 9	/* servname not supported for ai_socktype */
-#define	EAI_SOCKTYPE	10	/* ai_socktype not supported */
-#define	EAI_SYSTEM	11	/* system error returned in errno */
-#define	EAI_BADHINTS	12	/* invalid value for hints */
-#define	EAI_PROTOCOL	13	/* resolved protocol is unknown */
-#define	EAI_OVERFLOW	14	/* argument buffer overflow */
-#define	EAI_MAX		15
-
-/*
- * Flag values for getaddrinfo()
- */
-#define	AI_PASSIVE	0x00000001 /* get address to use bind() */
-#define	AI_CANONNAME	0x00000002 /* fill ai_canonname */
-#define	AI_NUMERICHOST	0x00000004 /* prevent host name resolution */
-#define	AI_NUMERICSERV	0x00000008 /* prevent service name resolution */
-/* valid flags for addrinfo (not a standard def, apps should not use it) */
-#define AI_MASK \
-    (AI_PASSIVE | AI_CANONNAME | AI_NUMERICHOST | AI_NUMERICSERV | \
-    AI_ADDRCONFIG)
-
-#define	AI_ALL		0x00000100 /* IPv6 and IPv4-mapped (with AI_V4MAPPED) */
-#define	AI_V4MAPPED_CFG	0x00000200 /* accept IPv4-mapped if kernel supports */
-#define	AI_ADDRCONFIG	0x00000400 /* only if any address is assigned */
-#define	AI_V4MAPPED	0x00000800 /* accept IPv4-mapped IPv6 address */
-/* special recommended flags for getipnodebyname */
-#define	AI_DEFAULT	(AI_V4MAPPED_CFG | AI_ADDRCONFIG)
-
-/*
- * Constants for getnameinfo()
- */
-#define	NI_MAXHOST	1025
-#define	NI_MAXSERV	32
-
-/*
- * Flag values for getnameinfo()
- */
-#define	NI_NOFQDN	0x00000001
-#define	NI_NUMERICHOST	0x00000002
-#define	NI_NAMEREQD	0x00000004
-#define	NI_NUMERICSERV	0x00000008
-#define	NI_DGRAM	0x00000010
-#if 0 /* obsolete */
-#define NI_WITHSCOPEID	0x00000020
-#endif
-
-/*
- * Scope delimit character
- */
-#define	SCOPE_DELIMITER	'%'
-
-__BEGIN_DECLS
-/* BIONIC-BEGIN */
-#define  h_errno   (*__get_h_errno())
-int*  __get_h_errno(void);
-/* BIONIC-END */
-void endhostent(void);
-void endnetent(void);
-void endnetgrent(void);
-void endprotoent(void);
-void endservent(void);
-void freehostent(struct hostent *);
-struct hostent	*gethostbyaddr(const void *, socklen_t, int);
-int gethostbyaddr_r(const void *, int, int, struct hostent *, char *, size_t, struct hostent **, int *);
-struct hostent	*gethostbyname(const char *);
-int gethostbyname_r(const char *, struct hostent *, char *, size_t, struct hostent **, int *);
-struct hostent	*gethostbyname2(const char *, int);
-int gethostbyname2_r(const char *, int, struct hostent *, char *, size_t, struct hostent **, int *);
-struct hostent	*gethostent(void);
-int gethostent_r(struct hostent *, char *, size_t, struct hostent **, int *);
-struct hostent	*getipnodebyaddr(const void *, size_t, int, int *);
-struct hostent	*getipnodebyname(const char *, int, int, int *);
-struct netent	*getnetbyaddr(uint32_t, int);
-int getnetbyaddr_r(uint32_t, int, struct netent *, char *, size_t, struct netent**, int *);
-struct netent	*getnetbyname(const char *);
-int getnetbyname_r(const char *, struct netent *, char *, size_t, struct netent **, int *);
-struct netent	*getnetent(void);
-int getnetent_r(struct netent *, char *, size_t, struct netent **, int *);
-int getnetgrent(char **, char **, char **);
-struct protoent	*getprotobyname(const char *);
-int getprotobyname_r(const char *, struct protoent *, char *, size_t, struct protoent **);
-struct protoent	*getprotobynumber(int);
-int getprotobynumber_r(int, struct protoent *, char *, size_t, struct protoent **);
-struct protoent	*getprotoent(void);
-int getprotoent_r(struct protoent *, char *, size_t, struct protoent **);
-struct servent	*getservbyname(const char *, const char *);
-struct servent	*getservbyport(int, const char *);
-struct servent	*getservent(void);
-void herror(const char *);
-const char	*hstrerror(int);
-int innetgr(const char *, const char *, const char *, const char *);
-void sethostent(int);
-void setnetent(int);
-void setprotoent(int);
-int getaddrinfo(const char *, const char *, const struct addrinfo *, struct addrinfo **);
-int getnameinfo(const struct sockaddr *, socklen_t, char *, size_t, char *, size_t, int);
-void freeaddrinfo(struct addrinfo *);
-const char	*gai_strerror(int);
-void setnetgrent(const char *);
-void setservent(int);
-
-__END_DECLS
-
-#endif /* !_NETDB_H_ */
diff --git a/ndk/platforms/android-20/include/pthread.h b/ndk/platforms/android-20/include/pthread.h
deleted file mode 100644
index 49f943a..0000000
--- a/ndk/platforms/android-20/include/pthread.h
+++ /dev/null
@@ -1,272 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef _PTHREAD_H_
-#define _PTHREAD_H_
-
-#include <time.h>
-#include <signal.h>
-#include <sched.h>
-#include <limits.h>
-#include <sys/types.h>
-
-#if defined(__LP64__)
-  #define __RESERVED_INITIALIZER , {0}
-#else
-  #define __RESERVED_INITIALIZER
-#endif
-
-typedef struct {
-  int volatile value;
-#ifdef __LP64__
-  char __reserved[36];
-#endif
-} pthread_mutex_t;
-
-#define  __PTHREAD_MUTEX_INIT_VALUE            0
-#define  __PTHREAD_RECURSIVE_MUTEX_INIT_VALUE  0x4000
-#define  __PTHREAD_ERRORCHECK_MUTEX_INIT_VALUE 0x8000
-
-#define  PTHREAD_MUTEX_INITIALIZER             {__PTHREAD_MUTEX_INIT_VALUE __RESERVED_INITIALIZER}
-#define  PTHREAD_RECURSIVE_MUTEX_INITIALIZER   {__PTHREAD_RECURSIVE_MUTEX_INIT_VALUE __RESERVED_INITIALIZER}
-#define  PTHREAD_ERRORCHECK_MUTEX_INITIALIZER  {__PTHREAD_ERRORCHECK_MUTEX_INIT_VALUE __RESERVED_INITIALIZER}
-
-enum {
-    PTHREAD_MUTEX_NORMAL = 0,
-    PTHREAD_MUTEX_RECURSIVE = 1,
-    PTHREAD_MUTEX_ERRORCHECK = 2,
-
-    PTHREAD_MUTEX_ERRORCHECK_NP = PTHREAD_MUTEX_ERRORCHECK,
-    PTHREAD_MUTEX_RECURSIVE_NP  = PTHREAD_MUTEX_RECURSIVE,
-
-    PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL
-};
-
-typedef struct {
-  int volatile value;
-#ifdef __LP64__
-  char __reserved[44];
-#endif
-} pthread_cond_t;
-
-#define PTHREAD_COND_INITIALIZER  {0 __RESERVED_INITIALIZER}
-
-typedef struct {
-  uint32_t flags;
-  void* stack_base;
-  size_t stack_size;
-  size_t guard_size;
-  int32_t sched_policy;
-  int32_t sched_priority;
-#ifdef __LP64__
-  char __reserved[16];
-#endif
-} pthread_attr_t;
-
-typedef long pthread_mutexattr_t;
-typedef long pthread_condattr_t;
-
-typedef long pthread_rwlockattr_t;
-
-typedef struct {
-  pthread_mutex_t lock;
-  pthread_cond_t cond;
-  int numLocks;
-  int writerThreadId;
-  int pendingReaders;
-  int pendingWriters;
-  void* __reserved[4];
-} pthread_rwlock_t;
-
-#define PTHREAD_RWLOCK_INITIALIZER  { PTHREAD_MUTEX_INITIALIZER, PTHREAD_COND_INITIALIZER, 0, 0, 0, 0, { NULL, NULL, NULL, NULL } }
-
-typedef int pthread_key_t;
-typedef long pthread_t;
-
-typedef volatile int pthread_once_t;
-
-#define PTHREAD_ONCE_INIT 0
-
-#if defined(__LP64__)
-#define PTHREAD_STACK_MIN (4 * PAGE_SIZE)
-#else
-#define PTHREAD_STACK_MIN (2 * PAGE_SIZE)
-#endif
-
-#define PTHREAD_CREATE_DETACHED  0x00000001
-#define PTHREAD_CREATE_JOINABLE  0x00000000
-
-#define PTHREAD_PROCESS_PRIVATE  0
-#define PTHREAD_PROCESS_SHARED   1
-
-#define PTHREAD_SCOPE_SYSTEM     0
-#define PTHREAD_SCOPE_PROCESS    1
-
-__BEGIN_DECLS
-
-int pthread_atfork(void (*)(void), void (*)(void), void(*)(void));
-
-int pthread_attr_destroy(pthread_attr_t*) __nonnull((1));
-int pthread_attr_getdetachstate(const pthread_attr_t*, int*) __nonnull((1, 2));
-int pthread_attr_getguardsize(const pthread_attr_t*, size_t*) __nonnull((1, 2));
-int pthread_attr_getschedparam(const pthread_attr_t*, struct sched_param*) __nonnull((1, 2));
-int pthread_attr_getschedpolicy(const pthread_attr_t*, int*) __nonnull((1, 2));
-int pthread_attr_getscope(const pthread_attr_t*, int*) __nonnull((1, 2));
-int pthread_attr_getstack(const pthread_attr_t*, void**, size_t*) __nonnull((1, 2, 3));
-int pthread_attr_getstacksize(const pthread_attr_t*, size_t*) __nonnull((1, 2));
-int pthread_attr_init(pthread_attr_t*) __nonnull((1));
-int pthread_attr_setdetachstate(pthread_attr_t*, int) __nonnull((1));
-int pthread_attr_setguardsize(pthread_attr_t*, size_t) __nonnull((1));
-int pthread_attr_setschedparam(pthread_attr_t*, const struct sched_param*) __nonnull((1, 2));
-int pthread_attr_setschedpolicy(pthread_attr_t*, int) __nonnull((1));
-int pthread_attr_setscope(pthread_attr_t*, int) __nonnull((1));
-int pthread_attr_setstack(pthread_attr_t*, void*, size_t) __nonnull((1));
-int pthread_attr_setstacksize(pthread_attr_t*, size_t stack_size) __nonnull((1));
-
-int pthread_condattr_destroy(pthread_condattr_t*) __nonnull((1));
-int pthread_condattr_getclock(const pthread_condattr_t*, clockid_t*) __nonnull((1, 2));
-int pthread_condattr_getpshared(const pthread_condattr_t*, int*) __nonnull((1, 2));
-int pthread_condattr_init(pthread_condattr_t*) __nonnull((1));
-int pthread_condattr_setclock(pthread_condattr_t*, clockid_t) __nonnull((1));
-int pthread_condattr_setpshared(pthread_condattr_t*, int) __nonnull((1));
-
-int pthread_cond_broadcast(pthread_cond_t*) __nonnull((1));
-int pthread_cond_destroy(pthread_cond_t*) __nonnull((1));
-int pthread_cond_init(pthread_cond_t*, const pthread_condattr_t*) __nonnull((1));
-int pthread_cond_signal(pthread_cond_t*) __nonnull((1));
-int pthread_cond_timedwait(pthread_cond_t*, pthread_mutex_t*, const struct timespec*) __nonnull((1, 2, 3));
-int pthread_cond_wait(pthread_cond_t*, pthread_mutex_t*) __nonnull((1, 2));
-
-int pthread_create(pthread_t*, pthread_attr_t const*, void *(*)(void*), void*) __nonnull((1, 3));
-int pthread_detach(pthread_t);
-void pthread_exit(void*) __noreturn;
-
-int pthread_equal(pthread_t, pthread_t);
-
-int pthread_getattr_np(pthread_t, pthread_attr_t*) __nonnull((2));
-
-int pthread_getcpuclockid(pthread_t, clockid_t*) __nonnull((2));
-
-int pthread_getschedparam(pthread_t, int*, struct sched_param*) __nonnull((2, 3));
-
-void* pthread_getspecific(pthread_key_t);
-
-int pthread_join(pthread_t, void**);
-
-int pthread_key_create(pthread_key_t*, void (*)(void*)) __nonnull((1));
-int pthread_key_delete(pthread_key_t);
-
-int pthread_kill(pthread_t, int);
-
-int pthread_mutexattr_destroy(pthread_mutexattr_t*) __nonnull((1));
-int pthread_mutexattr_getpshared(const pthread_mutexattr_t*, int*) __nonnull((1, 2));
-int pthread_mutexattr_gettype(const pthread_mutexattr_t*, int*) __nonnull((1, 2));
-int pthread_mutexattr_init(pthread_mutexattr_t*) __nonnull((1));
-int pthread_mutexattr_setpshared(pthread_mutexattr_t*, int) __nonnull((1));
-int pthread_mutexattr_settype(pthread_mutexattr_t*, int) __nonnull((1));
-
-int pthread_mutex_destroy(pthread_mutex_t*) __nonnull((1));
-int pthread_mutex_init(pthread_mutex_t*, const pthread_mutexattr_t*) __nonnull((1));
-int pthread_mutex_lock(pthread_mutex_t*) __nonnull((1));
-int pthread_mutex_timedlock(pthread_mutex_t*, const struct timespec*) __nonnull((1, 2));
-int pthread_mutex_trylock(pthread_mutex_t*) __nonnull((1));
-int pthread_mutex_unlock(pthread_mutex_t*) __nonnull((1));
-
-int pthread_once(pthread_once_t*, void (*)(void)) __nonnull((1, 2));
-
-int pthread_rwlockattr_destroy(pthread_rwlockattr_t*) __nonnull((1));
-int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t*, int*) __nonnull((1, 2));
-int pthread_rwlockattr_init(pthread_rwlockattr_t*) __nonnull((1));
-int pthread_rwlockattr_setpshared(pthread_rwlockattr_t*, int) __nonnull((1));
-
-int pthread_rwlock_destroy(pthread_rwlock_t*) __nonnull((1));
-int pthread_rwlock_init(pthread_rwlock_t*, const pthread_rwlockattr_t*) __nonnull((1));
-int pthread_rwlock_rdlock(pthread_rwlock_t*) __nonnull((1));
-int pthread_rwlock_timedrdlock(pthread_rwlock_t*, const struct timespec*) __nonnull((1, 2));
-int pthread_rwlock_timedwrlock(pthread_rwlock_t*, const struct timespec*) __nonnull((1, 2));
-int pthread_rwlock_tryrdlock(pthread_rwlock_t*) __nonnull((1));
-int pthread_rwlock_trywrlock(pthread_rwlock_t*) __nonnull((1));
-int pthread_rwlock_unlock(pthread_rwlock_t *rwlock) __nonnull((1));
-int pthread_rwlock_wrlock(pthread_rwlock_t*) __nonnull((1));
-
-pthread_t pthread_self(void);
-
-int pthread_setname_np(pthread_t, const char*) __nonnull((2));
-
-int pthread_setschedparam(pthread_t, int, const struct sched_param*) __nonnull((3));
-
-int pthread_setspecific(pthread_key_t, const void*);
-
-int pthread_sigmask(int, const sigset_t*, sigset_t*);
-
-typedef void (*__pthread_cleanup_func_t)(void*);
-
-typedef struct __pthread_cleanup_t {
-  struct __pthread_cleanup_t*   __cleanup_prev;
-  __pthread_cleanup_func_t      __cleanup_routine;
-  void*                         __cleanup_arg;
-} __pthread_cleanup_t;
-
-extern void __pthread_cleanup_push(__pthread_cleanup_t* c, __pthread_cleanup_func_t, void*);
-extern void __pthread_cleanup_pop(__pthread_cleanup_t*, int);
-
-/* Believe or not, the definitions of pthread_cleanup_push and
- * pthread_cleanup_pop below are correct. Posix states that these
- * can be implemented as macros that might introduce opening and
- * closing braces, and that using setjmp/longjmp/return/break/continue
- * between them results in undefined behavior.
- */
-#define  pthread_cleanup_push(routine, arg)                      \
-    do {                                                         \
-        __pthread_cleanup_t  __cleanup;                          \
-        __pthread_cleanup_push( &__cleanup, (routine), (arg) );  \
-
-#define  pthread_cleanup_pop(execute)                  \
-        __pthread_cleanup_pop( &__cleanup, (execute)); \
-    } while (0);                                       \
-
-
-#if !defined(__LP64__)
-
-// Bionic additions that are deprecated even in the 32-bit ABI.
-//
-// TODO: Remove them once chromium_org / NFC have switched over.
-int pthread_cond_timedwait_monotonic_np(pthread_cond_t*, pthread_mutex_t*, const struct timespec*);
-int pthread_cond_timedwait_monotonic(pthread_cond_t*, pthread_mutex_t*, const struct timespec*);
-
-int pthread_cond_timedwait_relative_np(pthread_cond_t*, pthread_mutex_t*, const struct timespec*) /* TODO: __attribute__((deprecated("use pthread_cond_timedwait instead")))*/;
-#define HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE 1 /* TODO: stop defining this to push LP32 off this API sooner. */
-int pthread_cond_timeout_np(pthread_cond_t*, pthread_mutex_t*, unsigned) /* TODO: __attribute__((deprecated("use pthread_cond_timedwait instead")))*/;
-
-int pthread_mutex_lock_timeout_np(pthread_mutex_t*, unsigned) __attribute__((deprecated("use pthread_mutex_timedlock instead")));
-
-#endif /* !defined(__LP64__) */
-
-__END_DECLS
-
-#endif /* _PTHREAD_H_ */
diff --git a/ndk/platforms/android-20/include/resolv.h b/ndk/platforms/android-20/include/resolv.h
deleted file mode 100644
index 36b93ee..0000000
--- a/ndk/platforms/android-20/include/resolv.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#ifndef _RESOLV_H_
-#define _RESOLV_H_
-
-#include <sys/param.h>
-#include <sys/types.h>
-#include <sys/cdefs.h>
-#include <sys/socket.h>
-#include <stdio.h>
-#include <arpa/nameser.h>
-#include <netinet/in.h>
-
-__BEGIN_DECLS
-
-struct res_state;
-
-extern struct __res_state *__res_state(void);
-#define _res (*__res_state())
-
-#define b64_ntop __b64_ntop
-#define b64_pton __b64_pton
-extern int b64_ntop(u_char const*, size_t, char*, size_t);
-extern int b64_pton(char const*, u_char*, size_t);
-
-#define dn_comp __dn_comp
-extern int dn_comp(const char*, u_char*, int, u_char**, u_char**);
-extern int dn_expand(const u_char*, const u_char*, const u_char*, char*, int);
-
-__END_DECLS
-
-#endif /* _RESOLV_H_ */
diff --git a/ndk/platforms/android-20/include/setjmp.h b/ndk/platforms/android-20/include/setjmp.h
deleted file mode 100644
index 68fdcef..0000000
--- a/ndk/platforms/android-20/include/setjmp.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*	$OpenBSD: setjmp.h,v 1.5 2005/12/13 00:35:22 millert Exp $	*/
-/*	$NetBSD: setjmp.h,v 1.11 1994/12/20 10:35:44 cgd Exp $	*/
-
-/*-
- * Copyright (c) 1990, 1993
- *	The Regents of the University of California.  All rights reserved.
- * (c) UNIX System Laboratories, Inc.
- * All or some portions of this file are derived from material licensed
- * to the University of California by American Telephone and Telegraph
- * Co. or Unix System Laboratories, Inc. and are reproduced herein with
- * the permission of UNIX System Laboratories, Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *	@(#)setjmp.h	8.2 (Berkeley) 1/21/94
- */
-
-#ifndef _SETJMP_H_
-#define _SETJMP_H_
-
-#include <sys/cdefs.h>
-#include <machine/setjmp.h>
-
-typedef long sigjmp_buf[_JBLEN + 1];
-typedef long jmp_buf[_JBLEN];
-
-__BEGIN_DECLS
-
-int     _setjmp(jmp_buf);
-void    _longjmp(jmp_buf, int);
-void    longjmperror(void);
-
-int     setjmp(jmp_buf);
-void    longjmp(jmp_buf, int);
-
-int     sigsetjmp(sigjmp_buf, int);
-void    siglongjmp(sigjmp_buf, int);
-
-__END_DECLS
-
-#endif /* !_SETJMP_H_ */
diff --git a/ndk/platforms/android-20/include/signal.h b/ndk/platforms/android-20/include/signal.h
deleted file mode 100644
index 45c1cda..0000000
--- a/ndk/platforms/android-20/include/signal.h
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef _SIGNAL_H_
-#define _SIGNAL_H_
-
-#include <errno.h>
-#include <sys/cdefs.h>
-#include <limits.h>		/* For LONG_BIT */
-#include <string.h>		/* For memset() */
-#include <sys/types.h>
-
-#if defined(__LP64__) || defined(__mips__)
-/* For 64-bit (and mips), the kernel's struct sigaction doesn't match the POSIX one,
- * so we need to expose our own and translate behind the scenes. */
-#  define sigaction __kernel_sigaction
-#  include <linux/signal.h>
-#  undef sigaction
-#else
-/* For 32-bit, we're stuck with the definitions we already shipped,
- * even though they contain a sigset_t that's too small. */
-#  include <linux/signal.h>
-#endif
-
-__BEGIN_DECLS
-
-typedef int sig_atomic_t;
-
-/* The arm and x86 kernel header files don't define _NSIG. */
-#ifndef _KERNEL__NSIG
-#define _KERNEL__NSIG 64
-#endif
-
-/* Userspace's NSIG is the kernel's _NSIG + 1. */
-#define _NSIG (_KERNEL__NSIG + 1)
-#define NSIG _NSIG
-
-/* We take a few real-time signals for ourselves. May as well use the same names as glibc. */
-#define SIGRTMIN (__libc_current_sigrtmin())
-#define SIGRTMAX (__libc_current_sigrtmax())
-extern int __libc_current_sigrtmin(void);
-extern int __libc_current_sigrtmax(void);
-
-extern const char* const sys_siglist[];
-extern const char* const sys_signame[]; /* BSD compatibility. */
-
-typedef __sighandler_t sig_t; /* BSD compatibility. */
-typedef __sighandler_t sighandler_t; /* glibc compatibility. */
-
-#define si_timerid si_tid /* glibc compatibility. */
-
-#if defined(__LP64__)
-
-struct sigaction {
-  unsigned int sa_flags;
-  union {
-    sighandler_t sa_handler;
-    void (*sa_sigaction)(int, struct siginfo*, void*);
-  };
-  sigset_t sa_mask;
-  void (*sa_restorer)(void);
-};
-
-#elif defined(__mips__)
-
-struct sigaction {
-  unsigned int sa_flags;
-  union {
-    sighandler_t sa_handler;
-    void (*sa_sigaction) (int, struct siginfo*, void*);
-  };
-  sigset_t sa_mask;
-};
-
-#endif
-
-extern int sigaction(int, const struct sigaction*, struct sigaction*);
-
-extern sighandler_t signal(int, sighandler_t);
-extern sighandler_t bsd_signal(int, sighandler_t);
-extern sighandler_t sysv_signal(int, sighandler_t);
-
-extern int siginterrupt(int, int);
-
-extern int sigaddset(sigset_t*, int);
-extern int sigdelset(sigset_t*, int);
-extern int sigemptyset(sigset_t*);
-extern int sigfillset(sigset_t*);
-extern int sigismember(const sigset_t*, int);
-
-extern int sigpending(sigset_t*) __nonnull((1));
-extern int sigprocmask(int, const sigset_t*, sigset_t*);
-extern int sigsuspend(const sigset_t*) __nonnull((1));
-extern int sigwait(const sigset_t*, int*) __nonnull((1, 2));
-
-extern int raise(int);
-extern int kill(pid_t, int);
-extern int killpg(int, int);
-
-extern int sigaltstack(const stack_t*, stack_t*);
-
-extern void psiginfo(const siginfo_t*, const char*);
-extern void psignal(int, const char*);
-
-__END_DECLS
-
-#endif /* _SIGNAL_H_ */
diff --git a/ndk/platforms/android-20/include/stdint.h b/ndk/platforms/android-20/include/stdint.h
deleted file mode 100644
index f34843c..0000000
--- a/ndk/platforms/android-20/include/stdint.h
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef _STDINT_H
-#define _STDINT_H
-
-#include <stddef.h>
-#include <machine/wchar_limits.h>
-
-typedef __signed char __int8_t;
-typedef unsigned char __uint8_t;
-typedef short __int16_t;
-typedef unsigned short __uint16_t;
-typedef int __int32_t;
-typedef unsigned int __uint32_t;
-#if __LP64__
-typedef long __int64_t;
-typedef unsigned long __uint64_t;
-#else
-typedef long long __int64_t;
-typedef unsigned long long __uint64_t;
-#endif
-
-#if __LP64__
-typedef long __intptr_t;
-typedef unsigned long __uintptr_t;
-#else
-typedef int __intptr_t;
-typedef unsigned int __uintptr_t;
-#endif
-
-typedef __int8_t      int8_t;
-typedef __uint8_t     uint8_t;
-
-typedef __int16_t     int16_t;
-typedef __uint16_t    uint16_t;
-
-typedef __int32_t     int32_t;
-typedef __uint32_t    uint32_t;
-
-typedef __int64_t     int64_t;
-typedef __uint64_t    uint64_t;
-
-typedef __intptr_t    intptr_t;
-typedef __uintptr_t   uintptr_t;
-
-typedef int8_t        int_least8_t;
-typedef uint8_t       uint_least8_t;
-
-typedef int16_t       int_least16_t;
-typedef uint16_t      uint_least16_t;
-
-typedef int32_t       int_least32_t;
-typedef uint32_t      uint_least32_t;
-
-typedef int64_t       int_least64_t;
-typedef uint64_t      uint_least64_t;
-
-typedef int8_t        int_fast8_t;
-typedef uint8_t       uint_fast8_t;
-
-typedef int64_t       int_fast64_t;
-typedef uint64_t      uint_fast64_t;
-
-#if defined(__LP64__)
-typedef int64_t       int_fast16_t;
-typedef uint64_t      uint_fast16_t;
-typedef int64_t       int_fast32_t;
-typedef uint64_t      uint_fast32_t;
-#else
-typedef int32_t       int_fast16_t;
-typedef uint32_t      uint_fast16_t;
-typedef int32_t       int_fast32_t;
-typedef uint32_t      uint_fast32_t;
-#endif
-
-typedef uint64_t      uintmax_t;
-typedef int64_t       intmax_t;
-
-/* Keep the kernel from trying to define these types... */
-#define __BIT_TYPES_DEFINED__
-
-#define INT8_C(c)         c
-#define INT_LEAST8_C(c)   INT8_C(c)
-#define INT_FAST8_C(c)    INT8_C(c)
-
-#define UINT8_C(c)        c
-#define UINT_LEAST8_C(c)  UINT8_C(c)
-#define UINT_FAST8_C(c)   UINT8_C(c)
-
-#define INT16_C(c)        c
-#define INT_LEAST16_C(c)  INT16_C(c)
-#define INT_FAST16_C(c)   INT32_C(c)
-
-#define UINT16_C(c)       c
-#define UINT_LEAST16_C(c) UINT16_C(c)
-#define UINT_FAST16_C(c)  UINT32_C(c)
-#define INT32_C(c)        c
-#define INT_LEAST32_C(c)  INT32_C(c)
-#define INT_FAST32_C(c)   INT32_C(c)
-
-#define UINT32_C(c)       c ## U
-#define UINT_LEAST32_C(c) UINT32_C(c)
-#define UINT_FAST32_C(c)  UINT32_C(c)
-#define INT_LEAST64_C(c)  INT64_C(c)
-#define INT_FAST64_C(c)   INT64_C(c)
-
-#define UINT_LEAST64_C(c) UINT64_C(c)
-#define UINT_FAST64_C(c)  UINT64_C(c)
-
-#define INTMAX_C(c)       INT64_C(c)
-#define UINTMAX_C(c)      UINT64_C(c)
-
-#if defined(__LP64__)
-#  define INT64_C(c)      c ## L
-#  define UINT64_C(c)     c ## UL
-#  define INTPTR_C(c)     INT64_C(c)
-#  define UINTPTR_C(c)    UINT64_C(c)
-#  define PTRDIFF_C(c)    INT64_C(c)
-#else
-#  define INT64_C(c)      c ## LL
-#  define UINT64_C(c)     c ## ULL
-#  define INTPTR_C(c)     INT32_C(c)
-#  define UINTPTR_C(c)    UINT32_C(c)
-#  define PTRDIFF_C(c)    INT32_C(c)
-#endif
-
-#define INT8_MIN         (-128)
-#define INT8_MAX         (127)
-#define INT_LEAST8_MIN   INT8_MIN
-#define INT_LEAST8_MAX   INT8_MAX
-#define INT_FAST8_MIN    INT8_MIN
-#define INT_FAST8_MAX    INT8_MAX
-
-#define UINT8_MAX        (255)
-#define UINT_LEAST8_MAX  UINT8_MAX
-#define UINT_FAST8_MAX   UINT8_MAX
-
-#define INT16_MIN        (-32768)
-#define INT16_MAX        (32767)
-#define INT_LEAST16_MIN  INT16_MIN
-#define INT_LEAST16_MAX  INT16_MAX
-#define INT_FAST16_MIN   INT32_MIN
-#define INT_FAST16_MAX   INT32_MAX
-
-#define UINT16_MAX       (65535)
-#define UINT_LEAST16_MAX UINT16_MAX
-#define UINT_FAST16_MAX  UINT32_MAX
-
-#define INT32_MIN        (-2147483647-1)
-#define INT32_MAX        (2147483647)
-#define INT_LEAST32_MIN  INT32_MIN
-#define INT_LEAST32_MAX  INT32_MAX
-#define INT_FAST32_MIN   INT32_MIN
-#define INT_FAST32_MAX   INT32_MAX
-
-#define UINT32_MAX       (4294967295U)
-#define UINT_LEAST32_MAX UINT32_MAX
-#define UINT_FAST32_MAX  UINT32_MAX
-
-#define INT64_MIN        (INT64_C(-9223372036854775807)-1)
-#define INT64_MAX        (INT64_C(9223372036854775807))
-#define INT_LEAST64_MIN  INT64_MIN
-#define INT_LEAST64_MAX  INT64_MAX
-#define INT_FAST64_MIN   INT64_MIN
-#define INT_FAST64_MAX   INT64_MAX
-#define UINT64_MAX       (UINT64_C(18446744073709551615))
-
-#define UINT_LEAST64_MAX UINT64_MAX
-#define UINT_FAST64_MAX  UINT64_MAX
-
-#define INTMAX_MIN       INT64_MIN
-#define INTMAX_MAX       INT64_MAX
-#define UINTMAX_MAX      UINT64_MAX
-
-#define SIG_ATOMIC_MAX   INT32_MAX
-#define SIG_ATOMIC_MIN   INT32_MIN
-
-#if defined(__WINT_UNSIGNED__)
-#  define WINT_MAX       UINT32_MAX
-#  define WINT_MIN       UINT32_MIN
-#else
-#  define WINT_MAX       INT32_MAX
-#  define WINT_MIN       INT32_MIN
-#endif
-
-#if defined(__LP64__)
-#  define INTPTR_MIN     INT64_MIN
-#  define INTPTR_MAX     INT64_MAX
-#  define UINTPTR_MAX    UINT64_MAX
-#  define PTRDIFF_MIN    INT64_MIN
-#  define PTRDIFF_MAX    INT64_MAX
-#  define SIZE_MAX       UINT64_MAX
-#else
-#  define INTPTR_MIN     INT32_MIN
-#  define INTPTR_MAX     INT32_MAX
-#  define UINTPTR_MAX    UINT32_MAX
-#  define PTRDIFF_MIN    INT32_MIN
-#  define PTRDIFF_MAX    INT32_MAX
-#  define SIZE_MAX       UINT32_MAX
-#endif
-
-#endif /* _STDINT_H */
diff --git a/ndk/platforms/android-20/include/stdio.h b/ndk/platforms/android-20/include/stdio.h
deleted file mode 100644
index 1d89b9b..0000000
--- a/ndk/platforms/android-20/include/stdio.h
+++ /dev/null
@@ -1,468 +0,0 @@
-/*	$OpenBSD: stdio.h,v 1.35 2006/01/13 18:10:09 miod Exp $	*/
-/*	$NetBSD: stdio.h,v 1.18 1996/04/25 18:29:21 jtc Exp $	*/
-
-/*-
- * Copyright (c) 1990 The Regents of the University of California.
- * All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * Chris Torek.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *	@(#)stdio.h	5.17 (Berkeley) 6/3/91
- */
-
-#ifndef	_STDIO_H_
-#define	_STDIO_H_
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-
-#include <stdarg.h>
-#include <stddef.h>
-
-#define __need_NULL
-#include <stddef.h>
-
-#define	_FSTDIO			/* Define for new stdio with functions. */
-
-typedef off_t fpos_t;		/* stdio file position type */
-
-/*
- * NB: to fit things in six character monocase externals, the stdio
- * code uses the prefix `__s' for stdio objects, typically followed
- * by a three-character attempt at a mnemonic.
- */
-
-/* stdio buffers */
-struct __sbuf {
-	unsigned char *_base;
-	int	_size;
-};
-
-/*
- * stdio state variables.
- *
- * The following always hold:
- *
- *	if (_flags&(__SLBF|__SWR)) == (__SLBF|__SWR),
- *		_lbfsize is -_bf._size, else _lbfsize is 0
- *	if _flags&__SRD, _w is 0
- *	if _flags&__SWR, _r is 0
- *
- * This ensures that the getc and putc macros (or inline functions) never
- * try to write or read from a file that is in `read' or `write' mode.
- * (Moreover, they can, and do, automatically switch from read mode to
- * write mode, and back, on "r+" and "w+" files.)
- *
- * _lbfsize is used only to make the inline line-buffered output stream
- * code as compact as possible.
- *
- * _ub, _up, and _ur are used when ungetc() pushes back more characters
- * than fit in the current _bf, or when ungetc() pushes back a character
- * that does not match the previous one in _bf.  When this happens,
- * _ub._base becomes non-nil (i.e., a stream has ungetc() data iff
- * _ub._base!=NULL) and _up and _ur save the current values of _p and _r.
- *
- * NOTE: if you change this structure, you also need to update the
- * std() initializer in findfp.c.
- */
-typedef	struct __sFILE {
-	unsigned char *_p;	/* current position in (some) buffer */
-	int	_r;		/* read space left for getc() */
-	int	_w;		/* write space left for putc() */
-	short	_flags;		/* flags, below; this FILE is free if 0 */
-	short	_file;		/* fileno, if Unix descriptor, else -1 */
-	struct	__sbuf _bf;	/* the buffer (at least 1 byte, if !NULL) */
-	int	_lbfsize;	/* 0 or -_bf._size, for inline putc */
-
-	/* operations */
-	void	*_cookie;	/* cookie passed to io functions */
-	int	(*_close)(void *);
-	int	(*_read)(void *, char *, int);
-	fpos_t	(*_seek)(void *, fpos_t, int);
-	int	(*_write)(void *, const char *, int);
-
-	/* extension data, to avoid further ABI breakage */
-	struct	__sbuf _ext;
-	/* data for long sequences of ungetc() */
-	unsigned char *_up;	/* saved _p when _p is doing ungetc data */
-	int	_ur;		/* saved _r when _r is counting ungetc data */
-
-	/* tricks to meet minimum requirements even when malloc() fails */
-	unsigned char _ubuf[3];	/* guarantee an ungetc() buffer */
-	unsigned char _nbuf[1];	/* guarantee a getc() buffer */
-
-	/* separate buffer for fgetln() when line crosses buffer boundary */
-	struct	__sbuf _lb;	/* buffer for fgetln() */
-
-	/* Unix stdio files get aligned to block boundaries on fseek() */
-	int	_blksize;	/* stat.st_blksize (may be != _bf._size) */
-	fpos_t	_offset;	/* current lseek offset */
-} FILE;
-
-__BEGIN_DECLS
-extern FILE __sF[];
-__END_DECLS
-
-#define	__SLBF	0x0001		/* line buffered */
-#define	__SNBF	0x0002		/* unbuffered */
-#define	__SRD	0x0004		/* OK to read */
-#define	__SWR	0x0008		/* OK to write */
-	/* RD and WR are never simultaneously asserted */
-#define	__SRW	0x0010		/* open for reading & writing */
-#define	__SEOF	0x0020		/* found EOF */
-#define	__SERR	0x0040		/* found error */
-#define	__SMBF	0x0080		/* _buf is from malloc */
-#define	__SAPP	0x0100		/* fdopen()ed in append mode */
-#define	__SSTR	0x0200		/* this is an sprintf/snprintf string */
-#define	__SOPT	0x0400		/* do fseek() optimization */
-#define	__SNPT	0x0800		/* do not do fseek() optimization */
-#define	__SOFF	0x1000		/* set iff _offset is in fact correct */
-#define	__SMOD	0x2000		/* true => fgetln modified _p text */
-#define	__SALC	0x4000		/* allocate string space dynamically */
-#define	__SIGN	0x8000		/* ignore this file in _fwalk */
-
-/*
- * The following three definitions are for ANSI C, which took them
- * from System V, which brilliantly took internal interface macros and
- * made them official arguments to setvbuf(), without renaming them.
- * Hence, these ugly _IOxxx names are *supposed* to appear in user code.
- *
- * Although numbered as their counterparts above, the implementation
- * does not rely on this.
- */
-#define	_IOFBF	0		/* setvbuf should set fully buffered */
-#define	_IOLBF	1		/* setvbuf should set line buffered */
-#define	_IONBF	2		/* setvbuf should set unbuffered */
-
-#define	BUFSIZ	1024		/* size of buffer used by setbuf */
-#define	EOF	(-1)
-
-/*
- * FOPEN_MAX is a minimum maximum, and is the number of streams that
- * stdio can provide without attempting to allocate further resources
- * (which could fail).  Do not use this for anything.
- */
-
-#define	FOPEN_MAX	20	/* must be <= OPEN_MAX <sys/syslimits.h> */
-#define	FILENAME_MAX	1024	/* must be <= PATH_MAX <sys/syslimits.h> */
-
-/* System V/ANSI C; this is the wrong way to do this, do *not* use these. */
-#if __BSD_VISIBLE || __XPG_VISIBLE
-#define	P_tmpdir	"/tmp/"
-#endif
-#define	L_tmpnam	1024	/* XXX must be == PATH_MAX */
-#define	TMP_MAX		308915776
-
-/* Always ensure that these are consistent with <fcntl.h> and <unistd.h>! */
-#ifndef SEEK_SET
-#define	SEEK_SET	0	/* set file offset to offset */
-#endif
-#ifndef SEEK_CUR
-#define	SEEK_CUR	1	/* set file offset to current plus offset */
-#endif
-#ifndef SEEK_END
-#define	SEEK_END	2	/* set file offset to EOF plus offset */
-#endif
-
-#define	stdin	(&__sF[0])
-#define	stdout	(&__sF[1])
-#define	stderr	(&__sF[2])
-
-/*
- * Functions defined in ANSI C standard.
- */
-__BEGIN_DECLS
-void	 clearerr(FILE *);
-int	 fclose(FILE *);
-int	 feof(FILE *);
-int	 ferror(FILE *);
-int	 fflush(FILE *);
-int	 fgetc(FILE *);
-char	*fgets(char * __restrict, int, FILE * __restrict);
-FILE	*fopen(const char * __restrict , const char * __restrict);
-int	 fprintf(FILE * __restrict , const char * __restrict, ...)
-		__printflike(2, 3);
-int	 fputc(int, FILE *);
-int	 fputs(const char * __restrict, FILE * __restrict);
-size_t	 fread(void * __restrict, size_t, size_t, FILE * __restrict);
-FILE	*freopen(const char * __restrict, const char * __restrict,
-	    FILE * __restrict);
-int	 fscanf(FILE * __restrict, const char * __restrict, ...)
-		__scanflike(2, 3);
-int	 fseek(FILE *, long, int);
-long	 ftell(FILE *);
-size_t	 fwrite(const void * __restrict, size_t, size_t, FILE * __restrict);
-int	 getc(FILE *);
-int	 getchar(void);
-ssize_t	 getdelim(char ** __restrict, size_t * __restrict, int,
-	    FILE * __restrict);
-ssize_t	 getline(char ** __restrict, size_t * __restrict, FILE * __restrict);
-
-#if __BSD_VISIBLE && !defined(__SYS_ERRLIST)
-#define __SYS_ERRLIST
-extern int sys_nerr;			/* perror(3) external variables */
-extern char *sys_errlist[];
-#endif
-
-void	 perror(const char *);
-int	 printf(const char * __restrict, ...)
-		__printflike(1, 2);
-int	 putc(int, FILE *);
-int	 putchar(int);
-int	 puts(const char *);
-int	 remove(const char *);
-void	 rewind(FILE *);
-int	 scanf(const char * __restrict, ...)
-		__scanflike(1, 2);
-void	 setbuf(FILE * __restrict, char * __restrict);
-int	 setvbuf(FILE * __restrict, char * __restrict, int, size_t);
-int	 sscanf(const char * __restrict, const char * __restrict, ...)
-		__scanflike(2, 3);
-FILE	*tmpfile(void);
-int	 ungetc(int, FILE *);
-int	 vfprintf(FILE * __restrict, const char * __restrict, __va_list)
-		__printflike(2, 0);
-int	 vprintf(const char * __restrict, __va_list)
-		__printflike(1, 0);
-
-#ifndef __AUDIT__
-char* gets(char*) __warnattr("gets is very unsafe; consider using fgets");
-int sprintf(char* __restrict, const char* __restrict, ...)
-    __printflike(2, 3); //__warnattr("sprintf is often misused; please use snprintf");
-char* tmpnam(char*) __warnattr("tmpnam possibly used unsafely; consider using mkstemp");
-int vsprintf(char* __restrict, const char* __restrict, __va_list)
-    __printflike(2, 0); //__warnattr("vsprintf is often misused; please use vsnprintf");
-#if __XPG_VISIBLE
-char* tempnam(const char*, const char*)
-    __warnattr("tempnam possibly used unsafely; consider using mkstemp");
-#endif
-#endif
-
-extern int rename(const char*, const char*);
-extern int renameat(int, const char*, int, const char*);
-
-int	 fgetpos(FILE * __restrict, fpos_t * __restrict);
-int	 fsetpos(FILE *, const fpos_t *);
-
-int	 fseeko(FILE *, off_t, int);
-off_t	 ftello(FILE *);
-
-#if __ISO_C_VISIBLE >= 1999 || __BSD_VISIBLE
-int	 snprintf(char * __restrict, size_t, const char * __restrict, ...)
-		__printflike(3, 4);
-int	 vfscanf(FILE * __restrict, const char * __restrict, __va_list)
-		__scanflike(2, 0);
-int	 vscanf(const char *, __va_list)
-		__scanflike(1, 0);
-int	 vsnprintf(char * __restrict, size_t, const char * __restrict, __va_list)
-		__printflike(3, 0);
-int	 vsscanf(const char * __restrict, const char * __restrict, __va_list)
-		__scanflike(2, 0);
-#endif /* __ISO_C_VISIBLE >= 1999 || __BSD_VISIBLE */
-
-__END_DECLS
-
-
-/*
- * Functions defined in POSIX 1003.1.
- */
-#if __BSD_VISIBLE || __POSIX_VISIBLE || __XPG_VISIBLE
-#define	L_ctermid	1024	/* size for ctermid(); PATH_MAX */
-#define L_cuserid	9	/* size for cuserid(); UT_NAMESIZE + 1 */
-
-__BEGIN_DECLS
-#if 0 /* MISSING FROM BIONIC */
-char	*ctermid(char *);
-char	*cuserid(char *);
-#endif /* MISSING */
-FILE	*fdopen(int, const char *);
-int	 fileno(FILE *);
-
-#if (__POSIX_VISIBLE >= 199209)
-int	 pclose(FILE *);
-FILE	*popen(const char *, const char *);
-#endif
-
-#if __POSIX_VISIBLE >= 199506
-void	 flockfile(FILE *);
-int	 ftrylockfile(FILE *);
-void	 funlockfile(FILE *);
-
-/*
- * These are normally used through macros as defined below, but POSIX
- * requires functions as well.
- */
-int	 getc_unlocked(FILE *);
-int	 getchar_unlocked(void);
-int	 putc_unlocked(int, FILE *);
-int	 putchar_unlocked(int);
-#endif /* __POSIX_VISIBLE >= 199506 */
-
-__END_DECLS
-
-#endif /* __BSD_VISIBLE || __POSIX_VISIBLE || __XPG_VISIBLE */
-
-/*
- * Routines that are purely local.
- */
-#if __BSD_VISIBLE
-__BEGIN_DECLS
-int	 asprintf(char ** __restrict, const char * __restrict, ...)
-		__printflike(2, 3);
-char	*fgetln(FILE * __restrict, size_t * __restrict);
-int	 fpurge(FILE *);
-int	 getw(FILE *);
-int	 putw(int, FILE *);
-void	 setbuffer(FILE *, char *, int);
-int	 setlinebuf(FILE *);
-int	 vasprintf(char ** __restrict, const char * __restrict,
-    __va_list)
-		__printflike(2, 0);
-__END_DECLS
-
-/*
- * Stdio function-access interface.
- */
-__BEGIN_DECLS
-FILE	*funopen(const void *,
-		int (*)(void *, char *, int),
-		int (*)(void *, const char *, int),
-		fpos_t (*)(void *, fpos_t, int),
-		int (*)(void *));
-__END_DECLS
-#define	fropen(cookie, fn) funopen(cookie, fn, 0, 0, 0)
-#define	fwopen(cookie, fn) funopen(cookie, 0, fn, 0, 0)
-#endif /* __BSD_VISIBLE */
-
-#ifdef _GNU_SOURCE
-/*
- * glibc defines dprintf(int, const char*, ...), which is poorly named
- * and likely to conflict with locally defined debugging printfs
- * fdprintf is a better name, and some programs that use fdprintf use a
- * #define fdprintf dprintf for compatibility
- */
-__BEGIN_DECLS
-int fdprintf(int, const char*, ...)
-		__printflike(2, 3);
-int vfdprintf(int, const char*, __va_list)
-		__printflike(2, 0);
-__END_DECLS
-#endif /* _GNU_SOURCE */
-
-#if defined(__BIONIC_FORTIFY)
-
-__BEGIN_DECLS
-
-__BIONIC_FORTIFY_INLINE
-__printflike(3, 0)
-int vsnprintf(char *dest, size_t size, const char *format, __va_list ap)
-{
-    return __builtin___vsnprintf_chk(dest, size, 0, __bos(dest), format, ap);
-}
-
-__BIONIC_FORTIFY_INLINE
-__printflike(2, 0)
-int vsprintf(char *dest, const char *format, __va_list ap)
-{
-    return __builtin___vsprintf_chk(dest, 0, __bos(dest), format, ap);
-}
-
-#if defined(__clang__)
-  #if !defined(snprintf)
-    #define __wrap_snprintf(dest, size, ...) __builtin___snprintf_chk(dest, size, 0, __bos(dest), __VA_ARGS__)
-    #define snprintf(...) __wrap_snprintf(__VA_ARGS__)
-  #endif
-#else
-__BIONIC_FORTIFY_INLINE
-__printflike(3, 4)
-int snprintf(char *dest, size_t size, const char *format, ...)
-{
-    return __builtin___snprintf_chk(dest, size, 0,
-        __bos(dest), format, __builtin_va_arg_pack());
-}
-#endif
-
-#if defined(__clang__)
-  #if !defined(sprintf)
-    #define __wrap_sprintf(dest, ...) __builtin___sprintf_chk(dest, 0, __bos(dest), __VA_ARGS__)
-    #define sprintf(...) __wrap_sprintf(__VA_ARGS__)
-  #endif
-#else
-__BIONIC_FORTIFY_INLINE
-__printflike(2, 3)
-int sprintf(char *dest, const char *format, ...)
-{
-    return __builtin___sprintf_chk(dest, 0,
-        __bos(dest), format, __builtin_va_arg_pack());
-}
-#endif
-
-extern char* __fgets_chk(char*, int, FILE*, size_t);
-extern char* __fgets_real(char*, int, FILE*) __asm__(__USER_LABEL_PREFIX__ "fgets");
-__errordecl(__fgets_too_big_error, "fgets called with size bigger than buffer");
-__errordecl(__fgets_too_small_error, "fgets called with size less than zero");
-
-#if !defined(__clang__)
-
-__BIONIC_FORTIFY_INLINE
-char *fgets(char* dest, int size, FILE* stream) {
-    size_t bos = __bos(dest);
-
-    // Compiler can prove, at compile time, that the passed in size
-    // is always negative. Force a compiler error.
-    if (__builtin_constant_p(size) && (size < 0)) {
-        __fgets_too_small_error();
-    }
-
-    // Compiler doesn't know destination size. Don't call __fgets_chk
-    if (bos == __BIONIC_FORTIFY_UNKNOWN_SIZE) {
-        return __fgets_real(dest, size, stream);
-    }
-
-    // Compiler can prove, at compile time, that the passed in size
-    // is always <= the actual object size. Don't call __fgets_chk
-    if (__builtin_constant_p(size) && (size <= (int) bos)) {
-        return __fgets_real(dest, size, stream);
-    }
-
-    // Compiler can prove, at compile time, that the passed in size
-    // is always > the actual object size. Force a compiler error.
-    if (__builtin_constant_p(size) && (size > (int) bos)) {
-        __fgets_too_big_error();
-    }
-
-    return __fgets_chk(dest, size, stream, bos);
-}
-
-#endif /* !defined(__clang__) */
-
-__END_DECLS
-
-#endif /* defined(__BIONIC_FORTIFY) */
-
-#endif /* _STDIO_H_ */
diff --git a/ndk/platforms/android-20/include/stdlib.h b/ndk/platforms/android-20/include/stdlib.h
deleted file mode 100644
index 834dcda..0000000
--- a/ndk/platforms/android-20/include/stdlib.h
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#ifndef _STDLIB_H_
-#define _STDLIB_H_
-
-#include <sys/cdefs.h>
-
-#include <stddef.h>
-#include <string.h>
-#include <alloca.h>
-#include <strings.h>
-#include <memory.h>
-
-__BEGIN_DECLS
-
-#define EXIT_FAILURE 1
-#define EXIT_SUCCESS 0
-
-extern __noreturn void abort(void);
-extern __noreturn void exit(int);
-extern __noreturn void _Exit(int);
-extern int atexit(void (*)(void));
-
-#if __ISO_C_VISIBLE >= 2011 || __cplusplus >= 201103L
-int at_quick_exit(void (*)(void));
-void quick_exit(int) __noreturn;
-#endif
-
-extern char* getenv(const char*);
-extern int putenv(char*);
-extern int setenv(const char*, const char*, int);
-extern int unsetenv(const char*);
-extern int clearenv(void);
-
-extern char* mkdtemp(char*);
-extern char* mktemp(char*) __warnattr("mktemp possibly used unsafely; consider using mkstemp");
-extern int mkstemp(char*);
-extern int mkstemp64(char*);
-
-extern long strtol(const char *, char **, int);
-extern long long strtoll(const char *, char **, int);
-extern unsigned long strtoul(const char *, char **, int);
-extern unsigned long long strtoull(const char *, char **, int);
-
-extern int posix_memalign(void **memptr, size_t alignment, size_t size);
-
-extern double atof(const char*);
-
-extern double strtod(const char*, char**) __LIBC_ABI_PUBLIC__;
-extern float strtof(const char*, char**) __LIBC_ABI_PUBLIC__;
-extern long double strtold(const char*, char**) __LIBC_ABI_PUBLIC__;
-
-extern int atoi(const char*) __purefunc;
-extern long atol(const char*) __purefunc;
-extern long long atoll(const char*) __purefunc;
-
-extern int abs(int) __pure2;
-extern long labs(long) __pure2;
-extern long long llabs(long long) __pure2;
-
-extern char * realpath(const char *path, char *resolved);
-extern int system(const char * string);
-
-extern void * bsearch(const void *key, const void *base0,
-	size_t nmemb, size_t size,
-	int (*compar)(const void *, const void *));
-
-extern void qsort(void *, size_t, size_t, int (*)(const void *, const void *));
-
-extern long jrand48(unsigned short *);
-extern long mrand48(void);
-extern long nrand48(unsigned short *);
-extern long lrand48(void);
-extern unsigned short *seed48(unsigned short*);
-extern double erand48(unsigned short xsubi[3]);
-extern double drand48(void);
-extern void srand48(long);
-extern unsigned int arc4random(void);
-extern void arc4random_stir(void);
-extern void arc4random_addrandom(unsigned char *, int);
-
-#define RAND_MAX 0x7fffffff
-static __inline__ int rand(void) {
-    return (int)lrand48();
-}
-static __inline__ void srand(unsigned int __s) {
-    srand48(__s);
-}
-static __inline__ long random(void)
-{
-    return lrand48();
-}
-static __inline__ void srandom(unsigned int __s)
-{
-    srand48(__s);
-}
-
-/* Basic PTY functions.  These only work if devpts is mounted! */
-
-extern int    unlockpt(int);
-extern char*  ptsname(int);
-extern int    ptsname_r(int, char*, size_t);
-extern int    getpt(void);
-
-static __inline__ int grantpt(int __fd __attribute((unused)))
-{
-  (void)__fd;
-  return 0;     /* devpts does this all for us! */
-}
-
-typedef struct {
-    int  quot;
-    int  rem;
-} div_t;
-
-extern div_t   div(int, int);
-
-typedef struct {
-    long int  quot;
-    long int  rem;
-} ldiv_t;
-
-extern ldiv_t   ldiv(long, long);
-
-typedef struct {
-    long long int  quot;
-    long long int  rem;
-} lldiv_t;
-
-extern lldiv_t   lldiv(long long, long long);
-
-/* BSD compatibility. */
-extern const char* getprogname(void);
-extern void setprogname(const char*);
-
-/* make STLPort happy */
-extern int      mblen(const char *, size_t);
-extern size_t   mbstowcs(wchar_t *, const char *, size_t);
-extern int      mbtowc(wchar_t *, const char *, size_t);
-
-/* Likewise, make libstdc++-v3 happy.  */
-extern int	wctomb(char *, wchar_t);
-extern size_t	wcstombs(char *, const wchar_t *, size_t);
-
-#define MB_CUR_MAX 1
-
-#if 0 /* MISSING FROM BIONIC */
-extern int on_exit(void (*)(int, void *), void *);
-#endif /* MISSING */
-
-__END_DECLS
-
-#endif /* _STDLIB_H_ */
diff --git a/ndk/platforms/android-20/include/string.h b/ndk/platforms/android-20/include/string.h
deleted file mode 100644
index c9ae03b..0000000
--- a/ndk/platforms/android-20/include/string.h
+++ /dev/null
@@ -1,324 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#ifndef _STRING_H_
-#define _STRING_H_
-
-#include <sys/cdefs.h>
-#include <stddef.h>
-#include <malloc.h>
-
-__BEGIN_DECLS
-
-extern void*  memccpy(void* __restrict, const void* __restrict, int, size_t);
-extern void*  memchr(const void *, int, size_t) __purefunc;
-extern void*  memrchr(const void *, int, size_t) __purefunc;
-extern int    memcmp(const void *, const void *, size_t) __purefunc;
-extern void*  memcpy(void* __restrict, const void* __restrict, size_t);
-extern void*  memmove(void *, const void *, size_t);
-extern void*  memset(void *, int, size_t);
-extern void*  memmem(const void *, size_t, const void *, size_t) __purefunc;
-
-extern char*  index(const char *, int) __purefunc;
-extern char*  strchr(const char *, int) __purefunc;
-extern char* __strchr_chk(const char *, int, size_t);
-
-extern char*  strrchr(const char *, int) __purefunc;
-extern char* __strrchr_chk(const char *, int, size_t);
-
-extern size_t strlen(const char *) __purefunc;
-extern size_t __strlen_chk(const char *, size_t);
-extern int    strcmp(const char *, const char *) __purefunc;
-extern char*  stpcpy(char* __restrict, const char* __restrict);
-extern char*  strcpy(char* __restrict, const char* __restrict);
-extern char*  strcat(char* __restrict, const char* __restrict);
-
-extern int    strcasecmp(const char *, const char *) __purefunc;
-extern int    strncasecmp(const char *, const char *, size_t) __purefunc;
-extern char*  strdup(const char *);
-
-extern char*  strstr(const char *, const char *) __purefunc;
-extern char*  strcasestr(const char *haystack, const char *needle) __purefunc;
-extern char*  strtok(char* __restrict, const char* __restrict);
-extern char*  strtok_r(char* __restrict, const char* __restrict, char** __restrict);
-
-extern char*  strerror(int);
-extern int    strerror_r(int errnum, char *buf, size_t n);
-
-extern size_t strnlen(const char *, size_t) __purefunc;
-extern char*  strncat(char* __restrict, const char* __restrict, size_t);
-extern char*  strndup(const char *, size_t);
-extern int    strncmp(const char *, const char *, size_t) __purefunc;
-extern char*  stpncpy(char* __restrict, const char* __restrict, size_t);
-extern char*  strncpy(char* __restrict, const char* __restrict, size_t);
-
-extern size_t strlcat(char* __restrict, const char* __restrict, size_t);
-extern size_t strlcpy(char* __restrict, const char* __restrict, size_t);
-
-extern size_t strcspn(const char *, const char *) __purefunc;
-extern char*  strpbrk(const char *, const char *) __purefunc;
-extern char*  strsep(char** __restrict, const char* __restrict);
-extern size_t strspn(const char *, const char *);
-
-extern char*  strsignal(int  sig);
-
-extern int    strcoll(const char *, const char *) __purefunc;
-extern size_t strxfrm(char* __restrict, const char* __restrict, size_t);
-
-#if defined(__BIONIC_FORTIFY)
-
-__errordecl(__memcpy_dest_size_error, "memcpy: prevented write past end of buffer");
-__errordecl(__memcpy_src_size_error, "memcpy: prevented read past end of buffer");
-
-__BIONIC_FORTIFY_INLINE
-void* memcpy(void* __restrict dest, const void* __restrict src, size_t copy_amount) {
-    char *d = (char *) dest;
-    const char *s = (const char *) src;
-    size_t s_len = __bos0(s);
-    size_t d_len = __bos0(d);
-
-    if (__builtin_constant_p(copy_amount) && (copy_amount > d_len)) {
-        __memcpy_dest_size_error();
-    }
-
-    if (__builtin_constant_p(copy_amount) && (copy_amount > s_len)) {
-        __memcpy_src_size_error();
-    }
-
-    return __builtin___memcpy_chk(dest, src, copy_amount, d_len);
-}
-
-__BIONIC_FORTIFY_INLINE
-void* memmove(void *dest, const void *src, size_t len) {
-    return __builtin___memmove_chk(dest, src, len, __bos0(dest));
-}
-
-__BIONIC_FORTIFY_INLINE
-char* stpcpy(char* __restrict dest, const char* __restrict src) {
-    return __builtin___stpcpy_chk(dest, src, __bos(dest));
-}
-
-__BIONIC_FORTIFY_INLINE
-char* strcpy(char* __restrict dest, const char* __restrict src) {
-    return __builtin___strcpy_chk(dest, src, __bos(dest));
-}
-
-__errordecl(__stpncpy_error, "stpncpy: prevented write past end of buffer");
-extern char* __stpncpy_chk2(char* __restrict, const char* __restrict, size_t, size_t, size_t);
-
-__BIONIC_FORTIFY_INLINE
-char* stpncpy(char* __restrict dest, const char* __restrict src, size_t n) {
-    size_t bos_dest = __bos(dest);
-    size_t bos_src = __bos(src);
-    if (__builtin_constant_p(n) && (n > bos_dest)) {
-        __stpncpy_error();
-    }
-
-    if (bos_src == __BIONIC_FORTIFY_UNKNOWN_SIZE) {
-        return __builtin___stpncpy_chk(dest, src, n, bos_dest);
-    }
-
-    if (__builtin_constant_p(n) && (n <= bos_src)) {
-        return __builtin___stpncpy_chk(dest, src, n, bos_dest);
-    }
-
-    size_t slen = __builtin_strlen(src);
-    if (__builtin_constant_p(slen)) {
-        return __builtin___stpncpy_chk(dest, src, n, bos_dest);
-    }
-
-    return __stpncpy_chk2(dest, src, n, bos_dest, bos_src);
-}
-
-__errordecl(__strncpy_error, "strncpy: prevented write past end of buffer");
-extern char* __strncpy_chk2(char* __restrict, const char* __restrict, size_t, size_t, size_t);
-
-__BIONIC_FORTIFY_INLINE
-char* strncpy(char* __restrict dest, const char* __restrict src, size_t n) {
-    size_t bos_dest = __bos(dest);
-    size_t bos_src = __bos(src);
-    if (__builtin_constant_p(n) && (n > bos_dest)) {
-        __strncpy_error();
-    }
-
-    if (bos_src == __BIONIC_FORTIFY_UNKNOWN_SIZE) {
-        return __builtin___strncpy_chk(dest, src, n, bos_dest);
-    }
-
-    if (__builtin_constant_p(n) && (n <= bos_src)) {
-        return __builtin___strncpy_chk(dest, src, n, bos_dest);
-    }
-
-    size_t slen = __builtin_strlen(src);
-    if (__builtin_constant_p(slen)) {
-        return __builtin___strncpy_chk(dest, src, n, bos_dest);
-    }
-
-    return __strncpy_chk2(dest, src, n, bos_dest, bos_src);
-}
-
-__BIONIC_FORTIFY_INLINE
-char* strcat(char* __restrict dest, const char* __restrict src) {
-    return __builtin___strcat_chk(dest, src, __bos(dest));
-}
-
-__BIONIC_FORTIFY_INLINE
-char *strncat(char* __restrict dest, const char* __restrict src, size_t n) {
-    return __builtin___strncat_chk(dest, src, n, __bos(dest));
-}
-
-__BIONIC_FORTIFY_INLINE
-void* memset(void *s, int c, size_t n) {
-    return __builtin___memset_chk(s, c, n, __bos0(s));
-}
-
-extern size_t __strlcpy_real(char* __restrict, const char* __restrict, size_t)
-    __asm__(__USER_LABEL_PREFIX__ "strlcpy");
-__errordecl(__strlcpy_error, "strlcpy: prevented write past end of buffer");
-extern size_t __strlcpy_chk(char *, const char *, size_t, size_t);
-
-__BIONIC_FORTIFY_INLINE
-size_t strlcpy(char* __restrict dest, const char* __restrict src, size_t size) {
-    size_t bos = __bos(dest);
-
-#if !defined(__clang__)
-    // Compiler doesn't know destination size. Don't call __strlcpy_chk
-    if (bos == __BIONIC_FORTIFY_UNKNOWN_SIZE) {
-        return __strlcpy_real(dest, src, size);
-    }
-
-    // Compiler can prove, at compile time, that the passed in size
-    // is always <= the actual object size. Don't call __strlcpy_chk
-    if (__builtin_constant_p(size) && (size <= bos)) {
-        return __strlcpy_real(dest, src, size);
-    }
-
-    // Compiler can prove, at compile time, that the passed in size
-    // is always > the actual object size. Force a compiler error.
-    if (__builtin_constant_p(size) && (size > bos)) {
-        __strlcpy_error();
-    }
-#endif /* !defined(__clang__) */
-
-    return __strlcpy_chk(dest, src, size, bos);
-}
-
-extern size_t __strlcat_real(char* __restrict, const char* __restrict, size_t)
-    __asm__(__USER_LABEL_PREFIX__ "strlcat");
-__errordecl(__strlcat_error, "strlcat: prevented write past end of buffer");
-extern size_t __strlcat_chk(char* __restrict, const char* __restrict, size_t, size_t);
-
-
-__BIONIC_FORTIFY_INLINE
-size_t strlcat(char* __restrict dest, const char* __restrict src, size_t size) {
-    size_t bos = __bos(dest);
-
-#if !defined(__clang__)
-    // Compiler doesn't know destination size. Don't call __strlcat_chk
-    if (bos == __BIONIC_FORTIFY_UNKNOWN_SIZE) {
-        return __strlcat_real(dest, src, size);
-    }
-
-    // Compiler can prove, at compile time, that the passed in size
-    // is always <= the actual object size. Don't call __strlcat_chk
-    if (__builtin_constant_p(size) && (size <= bos)) {
-        return __strlcat_real(dest, src, size);
-    }
-
-    // Compiler can prove, at compile time, that the passed in size
-    // is always > the actual object size. Force a compiler error.
-    if (__builtin_constant_p(size) && (size > bos)) {
-        __strlcat_error();
-    }
-#endif /* !defined(__clang__) */
-
-    return __strlcat_chk(dest, src, size, bos);
-}
-
-__BIONIC_FORTIFY_INLINE
-size_t strlen(const char *s) {
-    size_t bos = __bos(s);
-
-#if !defined(__clang__)
-    // Compiler doesn't know destination size. Don't call __strlen_chk
-    if (bos == __BIONIC_FORTIFY_UNKNOWN_SIZE) {
-        return __builtin_strlen(s);
-    }
-
-    size_t slen = __builtin_strlen(s);
-    if (__builtin_constant_p(slen)) {
-        return slen;
-    }
-#endif /* !defined(__clang__) */
-
-    return __strlen_chk(s, bos);
-}
-
-__BIONIC_FORTIFY_INLINE
-char* strchr(const char *s, int c) {
-    size_t bos = __bos(s);
-
-#if !defined(__clang__)
-    // Compiler doesn't know destination size. Don't call __strchr_chk
-    if (bos == __BIONIC_FORTIFY_UNKNOWN_SIZE) {
-        return __builtin_strchr(s, c);
-    }
-
-    size_t slen = __builtin_strlen(s);
-    if (__builtin_constant_p(slen) && (slen < bos)) {
-        return __builtin_strchr(s, c);
-    }
-#endif /* !defined(__clang__) */
-
-    return __strchr_chk(s, c, bos);
-}
-
-__BIONIC_FORTIFY_INLINE
-char* strrchr(const char *s, int c) {
-    size_t bos = __bos(s);
-
-#if !defined(__clang__)
-    // Compiler doesn't know destination size. Don't call __strrchr_chk
-    if (bos == __BIONIC_FORTIFY_UNKNOWN_SIZE) {
-        return __builtin_strrchr(s, c);
-    }
-
-    size_t slen = __builtin_strlen(s);
-    if (__builtin_constant_p(slen) && (slen < bos)) {
-        return __builtin_strrchr(s, c);
-    }
-#endif /* !defined(__clang__) */
-
-    return __strrchr_chk(s, c, bos);
-}
-
-
-#endif /* defined(__BIONIC_FORTIFY) */
-
-__END_DECLS
-
-#endif /* _STRING_H_ */
diff --git a/ndk/platforms/android-20/include/strings.h b/ndk/platforms/android-20/include/strings.h
deleted file mode 100644
index e72798b..0000000
--- a/ndk/platforms/android-20/include/strings.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*	$NetBSD: strings.h,v 1.10 2005/02/03 04:39:32 perry Exp $	*/
-
-/*-
- * Copyright (c) 1998 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Klaus Klein.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *        This product includes software developed by the NetBSD
- *        Foundation, Inc. and its contributors.
- * 4. Neither the name of The NetBSD Foundation nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef _STRINGS_H_
-#define _STRINGS_H_
-
-#include <sys/types.h>
-#include <sys/cdefs.h>
-
-__BEGIN_DECLS
-void	 bcopy(const void *, void *, size_t);
-void	 bzero(void *, size_t);
-int	 ffs(int);
-char	*index(const char *, int);
-int	 strcasecmp(const char *, const char *);
-int	 strncasecmp(const char *, const char *, size_t);
-
-#if defined(__BIONIC_FORTIFY)
-__BIONIC_FORTIFY_INLINE
-void bzero (void *s, size_t n) {
-    __builtin___memset_chk(s, '\0', n, __builtin_object_size (s, 0));
-}
-#endif /* defined(__BIONIC_FORTIFY) */
-
-__END_DECLS
-
-#endif /* !defined(_STRINGS_H_) */
diff --git a/ndk/platforms/android-20/include/sys/_errdefs.h b/ndk/platforms/android-20/include/sys/_errdefs.h
deleted file mode 100644
index 3eeadf4..0000000
--- a/ndk/platforms/android-20/include/sys/_errdefs.h
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/* the following corresponds to the error codes of the Linux kernel used by the Android platform
- * these are distinct from the OpenBSD ones, which is why we need to redeclare them here
- *
- * this file may be included several times to define either error constants or their
- * string representation
- */
-
-#ifndef __BIONIC_ERRDEF
-#error "__BIONIC_ERRDEF must be defined before including this file"
-#endif
-__BIONIC_ERRDEF( 0              ,   0, "Success" )
-__BIONIC_ERRDEF( EPERM          ,   1, "Operation not permitted" )
-__BIONIC_ERRDEF( ENOENT         ,   2, "No such file or directory" )
-__BIONIC_ERRDEF( ESRCH          ,   3, "No such process" )
-__BIONIC_ERRDEF( EINTR          ,   4, "Interrupted system call" )
-__BIONIC_ERRDEF( EIO            ,   5, "I/O error" )
-__BIONIC_ERRDEF( ENXIO          ,   6, "No such device or address" )
-__BIONIC_ERRDEF( E2BIG          ,   7, "Argument list too long" )
-__BIONIC_ERRDEF( ENOEXEC        ,   8, "Exec format error" )
-__BIONIC_ERRDEF( EBADF          ,   9, "Bad file number" )
-__BIONIC_ERRDEF( ECHILD         ,  10, "No child processes" )
-__BIONIC_ERRDEF( EAGAIN         ,  11, "Try again" )
-__BIONIC_ERRDEF( ENOMEM         ,  12, "Out of memory" )
-__BIONIC_ERRDEF( EACCES         ,  13, "Permission denied" )
-__BIONIC_ERRDEF( EFAULT         ,  14, "Bad address" )
-__BIONIC_ERRDEF( ENOTBLK        ,  15, "Block device required" )
-__BIONIC_ERRDEF( EBUSY          ,  16, "Device or resource busy" )
-__BIONIC_ERRDEF( EEXIST         ,  17, "File exists" )
-__BIONIC_ERRDEF( EXDEV          ,  18, "Cross-device link" )
-__BIONIC_ERRDEF( ENODEV         ,  19, "No such device" )
-__BIONIC_ERRDEF( ENOTDIR        ,  20, "Not a directory" )
-__BIONIC_ERRDEF( EISDIR         ,  21, "Is a directory" )
-__BIONIC_ERRDEF( EINVAL         ,  22, "Invalid argument" )
-__BIONIC_ERRDEF( ENFILE         ,  23, "File table overflow" )
-__BIONIC_ERRDEF( EMFILE         ,  24, "Too many open files" )
-__BIONIC_ERRDEF( ENOTTY         ,  25, "Not a typewriter" )
-__BIONIC_ERRDEF( ETXTBSY        ,  26, "Text file busy" )
-__BIONIC_ERRDEF( EFBIG          ,  27, "File too large" )
-__BIONIC_ERRDEF( ENOSPC         ,  28, "No space left on device" )
-__BIONIC_ERRDEF( ESPIPE         ,  29, "Illegal seek" )
-__BIONIC_ERRDEF( EROFS          ,  30, "Read-only file system" )
-__BIONIC_ERRDEF( EMLINK         ,  31, "Too many links" )
-__BIONIC_ERRDEF( EPIPE          ,  32, "Broken pipe" )
-__BIONIC_ERRDEF( EDOM           ,  33, "Math argument out of domain of func" )
-__BIONIC_ERRDEF( ERANGE         ,  34, "Math result not representable" )
-__BIONIC_ERRDEF( EDEADLK        ,  35, "Resource deadlock would occur" )
-__BIONIC_ERRDEF( ENAMETOOLONG   ,  36, "File name too long" )
-__BIONIC_ERRDEF( ENOLCK         ,  37, "No record locks available" )
-__BIONIC_ERRDEF( ENOSYS         ,  38, "Function not implemented" )
-__BIONIC_ERRDEF( ENOTEMPTY      ,  39, "Directory not empty" )
-__BIONIC_ERRDEF( ELOOP          ,  40, "Too many symbolic links encountered" )
-__BIONIC_ERRDEF( ENOMSG         ,  42, "No message of desired type" )
-__BIONIC_ERRDEF( EIDRM          ,  43, "Identifier removed" )
-__BIONIC_ERRDEF( ECHRNG         ,  44, "Channel number out of range" )
-__BIONIC_ERRDEF( EL2NSYNC       ,  45, "Level 2 not synchronized" )
-__BIONIC_ERRDEF( EL3HLT         ,  46, "Level 3 halted" )
-__BIONIC_ERRDEF( EL3RST         ,  47, "Level 3 reset" )
-__BIONIC_ERRDEF( ELNRNG         ,  48, "Link number out of range" )
-__BIONIC_ERRDEF( EUNATCH        ,  49, "Protocol driver not attached" )
-__BIONIC_ERRDEF( ENOCSI         ,  50, "No CSI structure available" )
-__BIONIC_ERRDEF( EL2HLT         ,  51, "Level 2 halted" )
-__BIONIC_ERRDEF( EBADE          ,  52, "Invalid exchange" )
-__BIONIC_ERRDEF( EBADR          ,  53, "Invalid request descriptor" )
-__BIONIC_ERRDEF( EXFULL         ,  54, "Exchange full" )
-__BIONIC_ERRDEF( ENOANO         ,  55, "No anode" )
-__BIONIC_ERRDEF( EBADRQC        ,  56, "Invalid request code" )
-__BIONIC_ERRDEF( EBADSLT        ,  57, "Invalid slot" )
-__BIONIC_ERRDEF( EBFONT         ,  59, "Bad font file format" )
-__BIONIC_ERRDEF( ENOSTR         ,  60, "Device not a stream" )
-__BIONIC_ERRDEF( ENODATA        ,  61, "No data available" )
-__BIONIC_ERRDEF( ETIME          ,  62, "Timer expired" )
-__BIONIC_ERRDEF( ENOSR          ,  63, "Out of streams resources" )
-__BIONIC_ERRDEF( ENONET         ,  64, "Machine is not on the network" )
-__BIONIC_ERRDEF( ENOPKG         ,  65, "Package not installed" )
-__BIONIC_ERRDEF( EREMOTE        ,  66, "Object is remote" )
-__BIONIC_ERRDEF( ENOLINK        ,  67, "Link has been severed" )
-__BIONIC_ERRDEF( EADV           ,  68, "Advertise error" )
-__BIONIC_ERRDEF( ESRMNT         ,  69, "Srmount error" )
-__BIONIC_ERRDEF( ECOMM          ,  70, "Communication error on send" )
-__BIONIC_ERRDEF( EPROTO         ,  71, "Protocol error" )
-__BIONIC_ERRDEF( EMULTIHOP      ,  72, "Multihop attempted" )
-__BIONIC_ERRDEF( EDOTDOT        ,  73, "RFS specific error" )
-__BIONIC_ERRDEF( EBADMSG        ,  74, "Not a data message" )
-__BIONIC_ERRDEF( EOVERFLOW      ,  75, "Value too large for defined data type" )
-__BIONIC_ERRDEF( ENOTUNIQ       ,  76, "Name not unique on network" )
-__BIONIC_ERRDEF( EBADFD         ,  77, "File descriptor in bad state" )
-__BIONIC_ERRDEF( EREMCHG        ,  78, "Remote address changed" )
-__BIONIC_ERRDEF( ELIBACC        ,  79, "Can not access a needed shared library" )
-__BIONIC_ERRDEF( ELIBBAD        ,  80, "Accessing a corrupted shared library" )
-__BIONIC_ERRDEF( ELIBSCN        ,  81, ".lib section in a.out corrupted" )
-__BIONIC_ERRDEF( ELIBMAX        ,  82, "Attempting to link in too many shared libraries" )
-__BIONIC_ERRDEF( ELIBEXEC       ,  83, "Cannot exec a shared library directly" )
-__BIONIC_ERRDEF( EILSEQ         ,  84, "Illegal byte sequence" )
-__BIONIC_ERRDEF( ERESTART       ,  85, "Interrupted system call should be restarted" )
-__BIONIC_ERRDEF( ESTRPIPE       ,  86, "Streams pipe error" )
-__BIONIC_ERRDEF( EUSERS         ,  87, "Too many users" )
-__BIONIC_ERRDEF( ENOTSOCK       ,  88, "Socket operation on non-socket" )
-__BIONIC_ERRDEF( EDESTADDRREQ   ,  89, "Destination address required" )
-__BIONIC_ERRDEF( EMSGSIZE       ,  90, "Message too long" )
-__BIONIC_ERRDEF( EPROTOTYPE     ,  91, "Protocol wrong type for socket" )
-__BIONIC_ERRDEF( ENOPROTOOPT    ,  92, "Protocol not available" )
-__BIONIC_ERRDEF( EPROTONOSUPPORT,  93, "Protocol not supported" )
-__BIONIC_ERRDEF( ESOCKTNOSUPPORT,  94, "Socket type not supported" )
-__BIONIC_ERRDEF( EOPNOTSUPP     ,  95, "Operation not supported on transport endpoint" )
-__BIONIC_ERRDEF( EPFNOSUPPORT   ,  96, "Protocol family not supported" )
-__BIONIC_ERRDEF( EAFNOSUPPORT   ,  97, "Address family not supported by protocol" )
-__BIONIC_ERRDEF( EADDRINUSE     ,  98, "Address already in use" )
-__BIONIC_ERRDEF( EADDRNOTAVAIL  ,  99, "Cannot assign requested address" )
-__BIONIC_ERRDEF( ENETDOWN       , 100, "Network is down" )
-__BIONIC_ERRDEF( ENETUNREACH    , 101, "Network is unreachable" )
-__BIONIC_ERRDEF( ENETRESET      , 102, "Network dropped connection because of reset" )
-__BIONIC_ERRDEF( ECONNABORTED   , 103, "Software caused connection abort" )
-__BIONIC_ERRDEF( ECONNRESET     , 104, "Connection reset by peer" )
-__BIONIC_ERRDEF( ENOBUFS        , 105, "No buffer space available" )
-__BIONIC_ERRDEF( EISCONN        , 106, "Transport endpoint is already connected" )
-__BIONIC_ERRDEF( ENOTCONN       , 107, "Transport endpoint is not connected" )
-__BIONIC_ERRDEF( ESHUTDOWN      , 108, "Cannot send after transport endpoint shutdown" )
-__BIONIC_ERRDEF( ETOOMANYREFS   , 109, "Too many references: cannot splice" )
-__BIONIC_ERRDEF( ETIMEDOUT      , 110, "Connection timed out" )
-__BIONIC_ERRDEF( ECONNREFUSED   , 111, "Connection refused" )
-__BIONIC_ERRDEF( EHOSTDOWN      , 112, "Host is down" )
-__BIONIC_ERRDEF( EHOSTUNREACH   , 113, "No route to host" )
-__BIONIC_ERRDEF( EALREADY       , 114, "Operation already in progress" )
-__BIONIC_ERRDEF( EINPROGRESS    , 115, "Operation now in progress" )
-__BIONIC_ERRDEF( ESTALE         , 116, "Stale NFS file handle" )
-__BIONIC_ERRDEF( EUCLEAN        , 117, "Structure needs cleaning" )
-__BIONIC_ERRDEF( ENOTNAM        , 118, "Not a XENIX named type file" )
-__BIONIC_ERRDEF( ENAVAIL        , 119, "No XENIX semaphores available" )
-__BIONIC_ERRDEF( EISNAM         , 120, "Is a named type file" )
-__BIONIC_ERRDEF( EREMOTEIO      , 121, "Remote I/O error" )
-__BIONIC_ERRDEF( EDQUOT         , 122, "Quota exceeded" )
-__BIONIC_ERRDEF( ENOMEDIUM      , 123, "No medium found" )
-__BIONIC_ERRDEF( EMEDIUMTYPE    , 124, "Wrong medium type" )
-__BIONIC_ERRDEF( ECANCELED      , 125, "Operation Canceled" )
-__BIONIC_ERRDEF( ENOKEY         , 126, "Required key not available" )
-__BIONIC_ERRDEF( EKEYEXPIRED    , 127, "Key has expired" )
-__BIONIC_ERRDEF( EKEYREVOKED    , 128, "Key has been revoked" )
-__BIONIC_ERRDEF( EKEYREJECTED   , 129, "Key was rejected by service" )
-__BIONIC_ERRDEF( EOWNERDEAD     , 130, "Owner died" )
-__BIONIC_ERRDEF( ENOTRECOVERABLE, 131, "State not recoverable" )
-
-#undef __BIONIC_ERRDEF
diff --git a/ndk/platforms/android-20/include/sys/_sigdefs.h b/ndk/platforms/android-20/include/sys/_sigdefs.h
deleted file mode 100644
index 44d60d9..0000000
--- a/ndk/platforms/android-20/include/sys/_sigdefs.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * this header is used to define signal constants and names;
- * it might be included several times
- */
-
-#ifndef __BIONIC_SIGDEF
-#error __BIONIC_SIGDEF not defined
-#endif
-
-__BIONIC_SIGDEF(SIGHUP,    "Hangup")
-__BIONIC_SIGDEF(SIGINT,    "Interrupt")
-__BIONIC_SIGDEF(SIGQUIT,   "Quit")
-__BIONIC_SIGDEF(SIGILL,    "Illegal instruction")
-__BIONIC_SIGDEF(SIGTRAP,   "Trap")
-__BIONIC_SIGDEF(SIGABRT,   "Aborted")
-#ifdef SIGEMT
-__BIONIC_SIGDEF(SIGEMT,    "EMT")
-#endif
-__BIONIC_SIGDEF(SIGFPE,    "Floating point exception")
-__BIONIC_SIGDEF(SIGKILL,   "Killed")
-__BIONIC_SIGDEF(SIGBUS,    "Bus error")
-__BIONIC_SIGDEF(SIGSEGV,   "Segmentation fault")
-__BIONIC_SIGDEF(SIGPIPE,   "Broken pipe")
-__BIONIC_SIGDEF(SIGALRM,   "Alarm clock")
-__BIONIC_SIGDEF(SIGTERM,   "Terminated")
-__BIONIC_SIGDEF(SIGUSR1,   "User signal 1")
-__BIONIC_SIGDEF(SIGUSR2,   "User signal 2")
-__BIONIC_SIGDEF(SIGCHLD,   "Child exited")
-__BIONIC_SIGDEF(SIGPWR,    "Power failure")
-__BIONIC_SIGDEF(SIGWINCH,  "Window size changed")
-__BIONIC_SIGDEF(SIGURG,    "Urgent I/O condition")
-__BIONIC_SIGDEF(SIGIO,     "I/O possible")
-__BIONIC_SIGDEF(SIGSTOP,   "Stopped (signal)")
-__BIONIC_SIGDEF(SIGTSTP,   "Stopped")
-__BIONIC_SIGDEF(SIGCONT,   "Continue")
-__BIONIC_SIGDEF(SIGTTIN,   "Stopped (tty input)")
-__BIONIC_SIGDEF(SIGTTOU,   "Stopped (tty output)")
-__BIONIC_SIGDEF(SIGVTALRM, "Virtual timer expired")
-__BIONIC_SIGDEF(SIGPROF,   "Profiling timer expired")
-__BIONIC_SIGDEF(SIGXCPU,   "CPU time limit exceeded")
-__BIONIC_SIGDEF(SIGXFSZ,   "File size limit exceeded")
-#if defined(SIGSTKFLT)
-__BIONIC_SIGDEF(SIGSTKFLT, "Stack fault")
-#endif
-__BIONIC_SIGDEF(SIGSYS,    "Bad system call")
-
-#undef __BIONIC_SIGDEF
diff --git a/ndk/platforms/android-20/include/sys/_system_properties.h b/ndk/platforms/android-20/include/sys/_system_properties.h
deleted file mode 100644
index 5a681df..0000000
--- a/ndk/platforms/android-20/include/sys/_system_properties.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef _INCLUDE_SYS__SYSTEM_PROPERTIES_H
-#define _INCLUDE_SYS__SYSTEM_PROPERTIES_H
-
-#ifndef _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_
-#error you should #include <sys/system_properties.h> instead
-#else
-#include <sys/system_properties.h>
-
-typedef struct prop_msg prop_msg;
-
-#define PROP_AREA_MAGIC   0x504f5250
-#define PROP_AREA_VERSION 0xfc6ed0ab
-#define PROP_AREA_VERSION_COMPAT 0x45434f76
-
-#define PROP_SERVICE_NAME "property_service"
-#define PROP_FILENAME "/dev/__properties__"
-
-#define PA_SIZE         (128 * 1024)
-
-#define SERIAL_VALUE_LEN(serial) ((serial) >> 24)
-#define SERIAL_DIRTY(serial) ((serial) & 1)
-
-__BEGIN_DECLS
-
-struct prop_msg 
-{
-    unsigned cmd;
-    char name[PROP_NAME_MAX];
-    char value[PROP_VALUE_MAX];
-};
-
-#define PROP_MSG_SETPROP 1
-    
-/*
-** Rules:
-**
-** - there is only one writer, but many readers
-** - prop_area.count will never decrease in value
-** - once allocated, a prop_info's name will not change
-** - once allocated, a prop_info's offset will not change
-** - reading a value requires the following steps
-**   1. serial = pi->serial
-**   2. if SERIAL_DIRTY(serial), wait*, then goto 1
-**   3. memcpy(local, pi->value, SERIAL_VALUE_LEN(serial) + 1)
-**   4. if pi->serial != serial, goto 2
-**
-** - writing a value requires the following steps
-**   1. pi->serial = pi->serial | 1
-**   2. memcpy(pi->value, local_value, value_len)
-**   3. pi->serial = (value_len << 24) | ((pi->serial + 1) & 0xffffff)
-*/
-
-#define PROP_PATH_RAMDISK_DEFAULT  "/default.prop"
-#define PROP_PATH_SYSTEM_BUILD     "/system/build.prop"
-#define PROP_PATH_SYSTEM_DEFAULT   "/system/default.prop"
-#define PROP_PATH_LOCAL_OVERRIDE   "/data/local.prop"
-#define PROP_PATH_FACTORY          "/factory/factory.prop"
-
-/*
-** Map the property area from the specified filename.  This
-** method is for testing only.
-*/
-int __system_property_set_filename(const char *filename);
-
-/*
-** Initialize the area to be used to store properties.  Can
-** only be done by a single process that has write access to
-** the property area.
-*/
-int __system_property_area_init();
-
-/* Add a new system property.  Can only be done by a single
-** process that has write access to the property area, and
-** that process must handle sequencing to ensure the property
-** does not already exist and that only one property is added
-** or updated at a time.
-**
-** Returns 0 on success, -1 if the property area is full.
-*/
-int __system_property_add(const char *name, unsigned int namelen,
-			const char *value, unsigned int valuelen);
-
-/* Update the value of a system property returned by
-** __system_property_find.  Can only be done by a single process
-** that has write access to the property area, and that process
-** must handle sequencing to ensure that only one property is
-** updated at a time.
-**
-** Returns 0 on success, -1 if the parameters are incorrect.
-*/
-int __system_property_update(prop_info *pi, const char *value, unsigned int len);
-
-/* Read the serial number of a system property returned by
-** __system_property_find.
-**
-** Returns the serial number on success, -1 on error.
-*/
-unsigned int __system_property_serial(const prop_info *pi);
-
-/* Wait for any system property to be updated.  Caller must pass
-** in 0 the first time, and the previous return value on each
-** successive call. */
-unsigned int __system_property_wait_any(unsigned int serial);
-
-/*  Compatibility functions to support using an old init with a new libc,
- ** mostly for the OTA updater binary.  These can be deleted once OTAs from
- ** a pre-K release no longer needed to be supported. */
-const prop_info *__system_property_find_compat(const char *name);
-int __system_property_read_compat(const prop_info *pi, char *name, char *value);
-int __system_property_foreach_compat(
-        void (*propfn)(const prop_info *pi, void *cookie),
-        void *cookie);
-
-/* Initialize the system properties area in read only mode.
- * Should be done by all processes that need to read system
- * properties.
- *
- * Returns 0 on success, -1 otherwise.
- */
-int __system_properties_init();
-
-__END_DECLS
-
-#endif
-#endif
diff --git a/ndk/platforms/android-20/include/sys/atomics.h b/ndk/platforms/android-20/include/sys/atomics.h
deleted file mode 100644
index 143bc4b..0000000
--- a/ndk/platforms/android-20/include/sys/atomics.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#ifndef _SYS_ATOMICS_H
-#define _SYS_ATOMICS_H
-
-#include <sys/cdefs.h>
-#include <sys/time.h>
-
-__BEGIN_DECLS
-
-/* Note: atomic operations that were exported by the C library didn't
- *       provide any memory barriers, which created potential issues on
- *       multi-core devices. We now define them as inlined calls to
- *       GCC sync builtins, which always provide a full barrier.
- *
- *       NOTE: The C library still exports atomic functions by the same
- *              name to ensure ABI stability for existing NDK machine code.
- *
- *       If you are an NDK developer, we encourage you to rebuild your
- *       unmodified sources against this header as soon as possible.
- */
-#define __ATOMIC_INLINE__ static __inline__ __attribute__((always_inline))
-
-__ATOMIC_INLINE__ int
-__atomic_cmpxchg(int old_value, int new_value, volatile int* ptr)
-{
-    /* We must return 0 on success */
-    return __sync_val_compare_and_swap(ptr, old_value, new_value) != old_value;
-}
-
-__ATOMIC_INLINE__ int
-__atomic_swap(int new_value, volatile int *ptr)
-{
-    int old_value;
-    do {
-        old_value = *ptr;
-    } while (__sync_val_compare_and_swap(ptr, old_value, new_value) != old_value);
-    return old_value;
-}
-
-__ATOMIC_INLINE__ int
-__atomic_dec(volatile int *ptr)
-{
-  return __sync_fetch_and_sub (ptr, 1);
-}
-
-__ATOMIC_INLINE__ int
-__atomic_inc(volatile int *ptr)
-{
-  return __sync_fetch_and_add (ptr, 1);
-}
-
-
-int __futex_wait(volatile void *ftx, int val, const struct timespec *timeout);
-int __futex_wake(volatile void *ftx, int count);
-
-__END_DECLS
-
-#endif /* _SYS_ATOMICS_H */
diff --git a/ndk/platforms/android-20/include/sys/cdefs.h b/ndk/platforms/android-20/include/sys/cdefs.h
deleted file mode 100644
index 8ab5b47..0000000
--- a/ndk/platforms/android-20/include/sys/cdefs.h
+++ /dev/null
@@ -1,575 +0,0 @@
-/*	$NetBSD: cdefs.h,v 1.58 2004/12/11 05:59:00 christos Exp $	*/
-
-/*
- * Copyright (c) 1991, 1993
- *	The Regents of the University of California.  All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * Berkeley Software Design, Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *	@(#)cdefs.h	8.8 (Berkeley) 1/9/95
- */
-
-#ifndef	_SYS_CDEFS_H_
-#define	_SYS_CDEFS_H_
-
-/*
- * Macro to test if we're using a GNU C compiler of a specific vintage
- * or later, for e.g. features that appeared in a particular version
- * of GNU C.  Usage:
- *
- *	#if __GNUC_PREREQ__(major, minor)
- *	...cool feature...
- *	#else
- *	...delete feature...
- *	#endif
- */
-#ifdef __GNUC__
-#define	__GNUC_PREREQ__(x, y)						\
-	((__GNUC__ == (x) && __GNUC_MINOR__ >= (y)) ||			\
-	 (__GNUC__ > (x)))
-#else
-#define	__GNUC_PREREQ__(x, y)	0
-#endif
-
-#include <sys/cdefs_elf.h>
-
-#if defined(__cplusplus)
-#define	__BEGIN_DECLS		extern "C" {
-#define	__END_DECLS		}
-#define	__static_cast(x,y)	static_cast<x>(y)
-#else
-#define	__BEGIN_DECLS
-#define	__END_DECLS
-#define	__static_cast(x,y)	(x)y
-#endif
-
-/*
- * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
- * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
- * The __CONCAT macro is a bit tricky -- make sure you don't put spaces
- * in between its arguments.  __CONCAT can also concatenate double-quoted
- * strings produced by the __STRING macro, but this only works with ANSI C.
- */
-
-#define	___STRING(x)	__STRING(x)
-#define	___CONCAT(x,y)	__CONCAT(x,y)
-
-#if defined(__STDC__) || defined(__cplusplus)
-#define	__P(protos)	protos		/* full-blown ANSI C */
-#define	__CONCAT(x,y)	x ## y
-#define	__STRING(x)	#x
-
-#define	__const		const		/* define reserved names to standard */
-#define	__signed	signed
-#define	__volatile	volatile
-#if defined(__cplusplus)
-#define	__inline	inline		/* convert to C++ keyword */
-#else
-#if !defined(__GNUC__) && !defined(__lint__)
-#define	__inline			/* delete GCC keyword */
-#endif /* !__GNUC__  && !__lint__ */
-#endif /* !__cplusplus */
-
-#else	/* !(__STDC__ || __cplusplus) */
-#define	__P(protos)	()		/* traditional C preprocessor */
-#define	__CONCAT(x,y)	x/**/y
-#define	__STRING(x)	"x"
-
-#ifndef __GNUC__
-#define	__const				/* delete pseudo-ANSI C keywords */
-#define	__inline
-#define	__signed
-#define	__volatile
-#endif	/* !__GNUC__ */
-
-/*
- * In non-ANSI C environments, new programs will want ANSI-only C keywords
- * deleted from the program and old programs will want them left alone.
- * Programs using the ANSI C keywords const, inline etc. as normal
- * identifiers should define -DNO_ANSI_KEYWORDS.
- */
-#ifndef	NO_ANSI_KEYWORDS
-#define	const		__const		/* convert ANSI C keywords */
-#define	inline		__inline
-#define	signed		__signed
-#define	volatile	__volatile
-#endif /* !NO_ANSI_KEYWORDS */
-#endif	/* !(__STDC__ || __cplusplus) */
-
-/*
- * Used for internal auditing of the NetBSD source tree.
- */
-#ifdef __AUDIT__
-#define	__aconst	__const
-#else
-#define	__aconst
-#endif
-
-/*
- * The following macro is used to remove const cast-away warnings
- * from gcc -Wcast-qual; it should be used with caution because it
- * can hide valid errors; in particular most valid uses are in
- * situations where the API requires it, not to cast away string
- * constants. We don't use *intptr_t on purpose here and we are
- * explicit about unsigned long so that we don't have additional
- * dependencies.
- */
-#define __UNCONST(a)	((void *)(unsigned long)(const void *)(a))
-
-/*
- * GCC2 provides __extension__ to suppress warnings for various GNU C
- * language extensions under "-ansi -pedantic".
- */
-#if !__GNUC_PREREQ__(2, 0)
-#define	__extension__		/* delete __extension__ if non-gcc or gcc1 */
-#endif
-
-/*
- * GCC1 and some versions of GCC2 declare dead (non-returning) and
- * pure (no side effects) functions using "volatile" and "const";
- * unfortunately, these then cause warnings under "-ansi -pedantic".
- * GCC2 uses a new, peculiar __attribute__((attrs)) style.  All of
- * these work for GNU C++ (modulo a slight glitch in the C++ grammar
- * in the distribution version of 2.5.5).
- */
-#if !__GNUC_PREREQ__(2, 5)
-#define	__attribute__(x)	/* delete __attribute__ if non-gcc or gcc1 */
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define	__dead		__volatile
-#define	__pure		__const
-#endif
-#endif
-
-/* Delete pseudo-keywords wherever they are not available or needed. */
-#ifndef __dead
-#define	__dead
-#define	__pure
-#endif
-
-#if __GNUC_PREREQ__(2, 7)
-#define	__unused	__attribute__((__unused__))
-#else
-#define	__unused	/* delete */
-#endif
-
-#define __pure2 __attribute__((__const__)) /* Android-added: used by FreeBSD libm */
-
-#if __GNUC_PREREQ__(3, 1)
-#define	__used		__attribute__((__used__))
-#else
-#define	__used		/* delete */
-#endif
-
-#if __GNUC_PREREQ__(2, 7)
-#define	__packed	__attribute__((__packed__))
-#define	__aligned(x)	__attribute__((__aligned__(x)))
-#define	__section(x)	__attribute__((__section__(x)))
-#elif defined(__lint__)
-#define	__packed	/* delete */
-#define	__aligned(x)	/* delete */
-#define	__section(x)	/* delete */
-#else
-#define	__packed	error: no __packed for this compiler
-#define	__aligned(x)	error: no __aligned for this compiler
-#define	__section(x)	error: no __section for this compiler
-#endif
-
-#if !__GNUC_PREREQ__(2, 8)
-#define	__extension__
-#endif
-
-#if __GNUC_PREREQ__(2, 8)
-#define __statement(x)	__extension__(x)
-#elif defined(lint)
-#define __statement(x)	(0)
-#else
-#define __statement(x)	(x)
-#endif
-
-#define __nonnull(args) __attribute__((__nonnull__ args))
-
-#define __printflike(x, y) __attribute__((__format__(printf, x, y))) __nonnull((x))
-#define __scanflike(x, y) __attribute__((__format__(scanf, x, y))) __nonnull((x))
-
-/*
- * C99 defines the restrict type qualifier keyword, which was made available
- * in GCC 2.92.
- */
-#if defined(__STDC__VERSION__) && __STDC_VERSION__ >= 199901L
-#define	__restrict	restrict
-#else
-#if !__GNUC_PREREQ__(2, 92)
-#define	__restrict	/* delete __restrict when not supported */
-#endif
-#endif
-
-/*
- * C99 defines __func__ predefined identifier, which was made available
- * in GCC 2.95.
- */
-#if !defined(__STDC_VERSION__) || !(__STDC_VERSION__ >= 199901L)
-#if __GNUC_PREREQ__(2, 6)
-#define	__func__	__PRETTY_FUNCTION__
-#elif __GNUC_PREREQ__(2, 4)
-#define	__func__	__FUNCTION__
-#else
-#define	__func__	""
-#endif
-#endif /* !(__STDC_VERSION__ >= 199901L) */
-
-#if defined(_KERNEL)
-#if defined(NO_KERNEL_RCSIDS)
-#undef __KERNEL_RCSID
-#define	__KERNEL_RCSID(_n, _s)		/* nothing */
-#endif /* NO_KERNEL_RCSIDS */
-#endif /* _KERNEL */
-
-#if !defined(_STANDALONE) && !defined(_KERNEL)
-#ifdef __GNUC__
-#define	__RENAME(x)	___RENAME(x)
-#else
-#ifdef __lint__
-#define	__RENAME(x)	__symbolrename(x)
-#else
-#error "No function renaming possible"
-#endif /* __lint__ */
-#endif /* __GNUC__ */
-#else /* _STANDALONE || _KERNEL */
-#define	__RENAME(x)	no renaming in kernel or standalone environment
-#endif
-
-/*
- * A barrier to stop the optimizer from moving code or assume live
- * register values. This is gcc specific, the version is more or less
- * arbitrary, might work with older compilers.
- */
-#if __GNUC_PREREQ__(2, 95)
-#define	__insn_barrier()	__asm __volatile("":::"memory")
-#else
-#define	__insn_barrier()	/* */
-#endif
-
-/*
- * GNU C version 2.96 adds explicit branch prediction so that
- * the CPU back-end can hint the processor and also so that
- * code blocks can be reordered such that the predicted path
- * sees a more linear flow, thus improving cache behavior, etc.
- *
- * The following two macros provide us with a way to use this
- * compiler feature.  Use __predict_true() if you expect the expression
- * to evaluate to true, and __predict_false() if you expect the
- * expression to evaluate to false.
- *
- * A few notes about usage:
- *
- *	* Generally, __predict_false() error condition checks (unless
- *	  you have some _strong_ reason to do otherwise, in which case
- *	  document it), and/or __predict_true() `no-error' condition
- *	  checks, assuming you want to optimize for the no-error case.
- *
- *	* Other than that, if you don't know the likelihood of a test
- *	  succeeding from empirical or other `hard' evidence, don't
- *	  make predictions.
- *
- *	* These are meant to be used in places that are run `a lot'.
- *	  It is wasteful to make predictions in code that is run
- *	  seldomly (e.g. at subsystem initialization time) as the
- *	  basic block reordering that this affects can often generate
- *	  larger code.
- */
-#if __GNUC_PREREQ__(2, 96)
-#define	__predict_true(exp)	__builtin_expect((exp) != 0, 1)
-#define	__predict_false(exp)	__builtin_expect((exp) != 0, 0)
-#else
-#define	__predict_true(exp)	(exp)
-#define	__predict_false(exp)	(exp)
-#endif
-
-#if __GNUC_PREREQ__(2, 96)
-#define __noreturn    __attribute__((__noreturn__))
-#define __mallocfunc  __attribute__((malloc))
-#define __purefunc    __attribute__((pure))
-#else
-#define __noreturn
-#define __mallocfunc
-#define __purefunc
-#endif
-
-#if __GNUC_PREREQ__(3, 1)
-#define __always_inline __attribute__((__always_inline__))
-#else
-#define __always_inline
-#endif
-
-#if __GNUC_PREREQ__(3, 4)
-#define __wur __attribute__((__warn_unused_result__))
-#else
-#define __wur
-#endif
-
-#if __GNUC_PREREQ__(4, 3)
-#define __errordecl(name, msg) extern void name(void) __attribute__((__error__(msg)))
-#define __warnattr(msg) __attribute__((__warning__(msg)))
-#else
-#define __errordecl(name, msg) extern void name(void)
-#define __warnattr(msg)
-#endif
-
-/*
- * Macros for manipulating "link sets".  Link sets are arrays of pointers
- * to objects, which are gathered up by the linker.
- *
- * Object format-specific code has provided us with the following macros:
- *
- *	__link_set_add_text(set, sym)
- *		Add a reference to the .text symbol `sym' to `set'.
- *
- *	__link_set_add_rodata(set, sym)
- *		Add a reference to the .rodata symbol `sym' to `set'.
- *
- *	__link_set_add_data(set, sym)
- *		Add a reference to the .data symbol `sym' to `set'.
- *
- *	__link_set_add_bss(set, sym)
- *		Add a reference to the .bss symbol `sym' to `set'.
- *
- *	__link_set_decl(set, ptype)
- *		Provide an extern declaration of the set `set', which
- *		contains an array of the pointer type `ptype'.  This
- *		macro must be used by any code which wishes to reference
- *		the elements of a link set.
- *
- *	__link_set_start(set)
- *		This points to the first slot in the link set.
- *
- *	__link_set_end(set)
- *		This points to the (non-existent) slot after the last
- *		entry in the link set.
- *
- *	__link_set_count(set)
- *		Count the number of entries in link set `set'.
- *
- * In addition, we provide the following macros for accessing link sets:
- *
- *	__link_set_foreach(pvar, set)
- *		Iterate over the link set `set'.  Because a link set is
- *		an array of pointers, pvar must be declared as "type **pvar",
- *		and the actual entry accessed as "*pvar".
- *
- *	__link_set_entry(set, idx)
- *		Access the link set entry at index `idx' from set `set'.
- */
-#define	__link_set_foreach(pvar, set)					\
-	for (pvar = __link_set_start(set); pvar < __link_set_end(set); pvar++)
-
-#define	__link_set_entry(set, idx)	(__link_set_begin(set)[idx])
-
-/*
- * Some of the FreeBSD sources used in Bionic need this.
- * Originally, this is used to embed the rcs versions of each source file
- * in the generated binary. We certainly don't want this in Bionic.
- */
-#define __FBSDID(s) /* nothing */
-
-/*-
- * The following definitions are an extension of the behavior originally
- * implemented in <sys/_posix.h>, but with a different level of granularity.
- * POSIX.1 requires that the macros we test be defined before any standard
- * header file is included.
- *
- * Here's a quick run-down of the versions:
- *  defined(_POSIX_SOURCE)		1003.1-1988
- *  _POSIX_C_SOURCE == 1		1003.1-1990
- *  _POSIX_C_SOURCE == 2		1003.2-1992 C Language Binding Option
- *  _POSIX_C_SOURCE == 199309		1003.1b-1993
- *  _POSIX_C_SOURCE == 199506		1003.1c-1995, 1003.1i-1995,
- *					and the omnibus ISO/IEC 9945-1: 1996
- *  _POSIX_C_SOURCE == 200112		1003.1-2001
- *  _POSIX_C_SOURCE == 200809		1003.1-2008
- *
- * In addition, the X/Open Portability Guide, which is now the Single UNIX
- * Specification, defines a feature-test macro which indicates the version of
- * that specification, and which subsumes _POSIX_C_SOURCE.
- *
- * Our macros begin with two underscores to avoid namespace screwage.
- */
-
-/* Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. */
-#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE == 1
-#undef _POSIX_C_SOURCE		/* Probably illegal, but beyond caring now. */
-#define	_POSIX_C_SOURCE		199009
-#endif
-
-/* Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2. */
-#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE == 2
-#undef _POSIX_C_SOURCE
-#define	_POSIX_C_SOURCE		199209
-#endif
-
-/* Deal with various X/Open Portability Guides and Single UNIX Spec. */
-#ifdef _XOPEN_SOURCE
-#if _XOPEN_SOURCE - 0 >= 700
-#define	__XSI_VISIBLE		700
-#undef _POSIX_C_SOURCE
-#define	_POSIX_C_SOURCE		200809
-#elif _XOPEN_SOURCE - 0 >= 600
-#define	__XSI_VISIBLE		600
-#undef _POSIX_C_SOURCE
-#define	_POSIX_C_SOURCE		200112
-#elif _XOPEN_SOURCE - 0 >= 500
-#define	__XSI_VISIBLE		500
-#undef _POSIX_C_SOURCE
-#define	_POSIX_C_SOURCE		199506
-#endif
-#endif
-
-/*
- * Deal with all versions of POSIX.  The ordering relative to the tests above is
- * important.
- */
-#if defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE)
-#define	_POSIX_C_SOURCE		198808
-#endif
-#ifdef _POSIX_C_SOURCE
-#if _POSIX_C_SOURCE >= 200809
-#define	__POSIX_VISIBLE		200809
-#define	__ISO_C_VISIBLE		1999
-#elif _POSIX_C_SOURCE >= 200112
-#define	__POSIX_VISIBLE		200112
-#define	__ISO_C_VISIBLE		1999
-#elif _POSIX_C_SOURCE >= 199506
-#define	__POSIX_VISIBLE		199506
-#define	__ISO_C_VISIBLE		1990
-#elif _POSIX_C_SOURCE >= 199309
-#define	__POSIX_VISIBLE		199309
-#define	__ISO_C_VISIBLE		1990
-#elif _POSIX_C_SOURCE >= 199209
-#define	__POSIX_VISIBLE		199209
-#define	__ISO_C_VISIBLE		1990
-#elif _POSIX_C_SOURCE >= 199009
-#define	__POSIX_VISIBLE		199009
-#define	__ISO_C_VISIBLE		1990
-#else
-#define	__POSIX_VISIBLE		198808
-#define	__ISO_C_VISIBLE		0
-#endif /* _POSIX_C_SOURCE */
-#else
-/*-
- * Deal with _ANSI_SOURCE:
- * If it is defined, and no other compilation environment is explicitly
- * requested, then define our internal feature-test macros to zero.  This
- * makes no difference to the preprocessor (undefined symbols in preprocessing
- * expressions are defined to have value zero), but makes it more convenient for
- * a test program to print out the values.
- *
- * If a program mistakenly defines _ANSI_SOURCE and some other macro such as
- * _POSIX_C_SOURCE, we will assume that it wants the broader compilation
- * environment (and in fact we will never get here).
- */
-#if defined(_ANSI_SOURCE)	/* Hide almost everything. */
-#define	__POSIX_VISIBLE		0
-#define	__XSI_VISIBLE		0
-#define	__BSD_VISIBLE		0
-#define	__ISO_C_VISIBLE		1990
-#elif defined(_C99_SOURCE)	/* Localism to specify strict C99 env. */
-#define	__POSIX_VISIBLE		0
-#define	__XSI_VISIBLE		0
-#define	__BSD_VISIBLE		0
-#define	__ISO_C_VISIBLE		1999
-#else				/* Default environment: show everything. */
-#define	__POSIX_VISIBLE		200809
-#define	__XSI_VISIBLE		700
-#define	__BSD_VISIBLE		1
-#define	__ISO_C_VISIBLE		1999
-#endif
-#endif
-
-/*
- * Default values.
- */
-#ifndef __XPG_VISIBLE
-# define __XPG_VISIBLE          700
-#endif
-#ifndef __POSIX_VISIBLE
-# define __POSIX_VISIBLE        200809
-#endif
-#ifndef __ISO_C_VISIBLE
-# define __ISO_C_VISIBLE        1999
-#endif
-#ifndef __BSD_VISIBLE
-# define __BSD_VISIBLE          1
-#endif
-
-#define  __BIONIC__   1
-#include <android/api-level.h>
-
-/* glibc compatibility. */
-#if __LP64__
-#define __WORDSIZE 64
-#else
-#define __WORDSIZE 32
-#endif
-
-/*
- * When _FORTIFY_SOURCE is defined, automatic bounds checking is
- * added to commonly used libc functions. If a buffer overrun is
- * detected, the program is safely aborted.
- *
- * See
- * http://gcc.gnu.org/onlinedocs/gcc/Object-Size-Checking.html for details.
- */
-#if defined(_FORTIFY_SOURCE) && _FORTIFY_SOURCE > 0 && defined(__OPTIMIZE__) && __OPTIMIZE__ > 0
-#define __BIONIC_FORTIFY 1
-#if _FORTIFY_SOURCE == 2
-#define __bos(s) __builtin_object_size((s), 1)
-#else
-#define __bos(s) __builtin_object_size((s), 0)
-#endif
-#define __bos0(s) __builtin_object_size((s), 0)
-
-#define __BIONIC_FORTIFY_INLINE \
-    extern __inline__ \
-    __attribute__ ((always_inline)) \
-    __attribute__ ((gnu_inline))
-#endif
-#define __BIONIC_FORTIFY_UNKNOWN_SIZE ((size_t) -1)
-
-
-#if defined(__ANDROID__) && !__LP64__ && defined( __arm__)
-#define __NDK_FPABI__ __attribute__((pcs("aapcs")))
-#else
-#define __NDK_FPABI__
-#endif
-
-#if (!defined(_NDK_MATH_NO_SOFTFP) || _NDK_MATH_NO_SOFTFP != 1) && !defined(__clang__)
-#define __NDK_FPABI_MATH__ __NDK_FPABI__
-#else
-#define __NDK_FPABI_MATH__  /* nothing */
-#endif
-
-#endif /* !_SYS_CDEFS_H_ */
diff --git a/ndk/platforms/android-20/include/sys/ioctl.h b/ndk/platforms/android-20/include/sys/ioctl.h
deleted file mode 100644
index 49d452c..0000000
--- a/ndk/platforms/android-20/include/sys/ioctl.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#ifndef _SYS_IOCTL_H_
-#define _SYS_IOCTL_H_
-
-#include <sys/cdefs.h>
-#include <linux/ioctl.h>
-/*
- * NetBSD and glibc's <sys/ioctl.h> provide some of the
- * terminal-related ioctl data structures such as struct winsize.
- */
-#include <linux/termios.h>
-#include <asm/ioctls.h>
-#include <asm/termbits.h>
-#include <sys/ioctl_compat.h>
-
-__BEGIN_DECLS
-
-extern int ioctl(int, int, ...);
-
-__END_DECLS
-
-#endif /* _SYS_IOCTL_H_ */
diff --git a/ndk/platforms/android-20/include/sys/timeb.h b/ndk/platforms/android-20/include/sys/timeb.h
deleted file mode 100644
index cf6f255..0000000
--- a/ndk/platforms/android-20/include/sys/timeb.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#ifndef _SYS_TIMEB_H
-#define _SYS_TIMEB_H
-
-#include <sys/cdefs.h>
-#include <sys/time.h>
-
-__BEGIN_DECLS
-
-struct timeb {
-    time_t          time;
-    unsigned short  millitm;
-    short           timezone;
-    short           dstflag;
-};
-
-extern int  ftime(struct timeb*  timebuf);
-
-__END_DECLS
-
-#endif /* _SYS_TIMEB_H */
diff --git a/ndk/platforms/android-20/include/sys/ucontext.h b/ndk/platforms/android-20/include/sys/ucontext.h
deleted file mode 100644
index f150ac7..0000000
--- a/ndk/platforms/android-20/include/sys/ucontext.h
+++ /dev/null
@@ -1,288 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef _SYS_UCONTEXT_H_
-#define _SYS_UCONTEXT_H_
-
-#include <signal.h>
-#include <sys/user.h>
-
-__BEGIN_DECLS
-
-#if defined(__arm__)
-
-enum {
-  REG_R0 = 0,
-  REG_R1,
-  REG_R2,
-  REG_R3,
-  REG_R4,
-  REG_R5,
-  REG_R6,
-  REG_R7,
-  REG_R8,
-  REG_R9,
-  REG_R10,
-  REG_R11,
-  REG_R12,
-  REG_R13,
-  REG_R14,
-  REG_R15,
-};
-
-#define NGREG 18 /* Like glibc. */
-
-typedef int greg_t;
-typedef greg_t gregset_t[NGREG];
-
-/* TODO: fpregset_t. */
-
-#include <asm/sigcontext.h>
-typedef struct sigcontext mcontext_t;
-
-typedef struct ucontext {
-  unsigned long uc_flags;
-  struct ucontext* uc_link;
-  stack_t uc_stack;
-  mcontext_t uc_mcontext;
-  sigset_t uc_sigmask;
-  /* TODO: uc_regspace */
-} ucontext_t;
-
-#elif defined(__aarch64__)
-
-/* TODO: gregset_t and fpregset_t. */
-
-#include <asm/sigcontext.h>
-typedef struct sigcontext mcontext_t;
-
-typedef struct ucontext {
-  unsigned long uc_flags;
-  struct ucontext *uc_link;
-  stack_t uc_stack;
-  sigset_t uc_sigmask;
-  char __padding[128 - sizeof(sigset_t)];
-  mcontext_t uc_mcontext;
-} ucontext_t;
-
-#elif defined(__i386__)
-
-enum {
-  REG_GS = 0,
-  REG_FS,
-  REG_ES,
-  REG_DS,
-  REG_EDI,
-  REG_ESI,
-  REG_EBP,
-  REG_ESP,
-  REG_EBX,
-  REG_EDX,
-  REG_ECX,
-  REG_EAX,
-  REG_TRAPNO,
-  REG_ERR,
-  REG_EIP,
-  REG_CS,
-  REG_EFL,
-  REG_UESP,
-  REG_SS,
-  NGREG
-};
-
-typedef int greg_t;
-typedef greg_t gregset_t[NGREG];
-
-struct _libc_fpreg {
-  unsigned short significand[4];
-  unsigned short exponent;
-};
-
-struct _libc_fpstate {
-  unsigned long cw;
-  unsigned long sw;
-  unsigned long tag;
-  unsigned long ipoff;
-  unsigned long cssel;
-  unsigned long dataoff;
-  unsigned long datasel;
-  struct _libc_fpreg _st[8];
-  unsigned long status;
-};
-
-typedef struct _libc_fpstate* fpregset_t;
-
-typedef struct {
-  gregset_t gregs;
-  fpregset_t fpregs;
-  unsigned long oldmask;
-  unsigned long cr2;
-} mcontext_t;
-
-typedef struct ucontext {
-  unsigned long uc_flags;
-  struct ucontext* uc_link;
-  stack_t uc_stack;
-  mcontext_t uc_mcontext;
-  sigset_t uc_sigmask;
-  char __padding[128 - sizeof(sigset_t)];
-  struct _libc_fpstate __fpregs_mem;
-} ucontext_t;
-
-#elif defined(__mips__)
-
-/* glibc doesn't have names for MIPS registers. */
-
-#define NGREG 32
-#define NFPREG 32
-
-typedef unsigned long long greg_t;
-typedef greg_t gregset_t[NGREG];
-
-typedef struct fpregset {
-  union {
-    double fp_dregs[NFPREG];
-    struct {
-      float _fp_fregs;
-      unsigned _fp_pad;
-    } fp_fregs[NFPREG];
-  } fp_r;
-} fpregset_t;
-
-typedef struct {
-  unsigned regmask;
-  unsigned status;
-  greg_t pc;
-  gregset_t gregs;
-  fpregset_t fpregs;
-  unsigned fp_owned;
-  unsigned fpc_csr;
-  unsigned fpc_eir;
-  unsigned used_math;
-  unsigned dsp;
-  greg_t mdhi;
-  greg_t mdlo;
-  unsigned long hi1;
-  unsigned long lo1;
-  unsigned long hi2;
-  unsigned long lo2;
-  unsigned long hi3;
-  unsigned long lo3;
-} mcontext_t;
-
-typedef struct ucontext {
-  unsigned long uc_flags;
-  struct ucontext* uc_link;
-  stack_t uc_stack;
-  mcontext_t uc_mcontext;
-  sigset_t uc_sigmask;
-} ucontext_t;
-
-#elif defined(__mips64__)
-
-#error TODO
-
-#elif defined(__x86_64__)
-
-enum {
-  REG_R8 = 0,
-  REG_R9,
-  REG_R10,
-  REG_R11,
-  REG_R12,
-  REG_R13,
-  REG_R14,
-  REG_R15,
-  REG_RDI,
-  REG_RSI,
-  REG_RBP,
-  REG_RBX,
-  REG_RDX,
-  REG_RAX,
-  REG_RCX,
-  REG_RSP,
-  REG_RIP,
-  REG_EFL,
-  REG_CSGSFS,
-  REG_ERR,
-  REG_TRAPNO,
-  REG_OLDMASK,
-  REG_CR2,
-  NGREG
-};
-
-typedef long greg_t;
-typedef greg_t gregset_t[NGREG];
-
-struct _libc_fpxreg {
-  unsigned short significand[4];
-  unsigned short exponent;
-  unsigned short padding[3];
-};
-
-struct _libc_xmmreg {
-  uint32_t element[4];
-};
-
-struct _libc_fpstate {
-  uint16_t cwd;
-  uint16_t swd;
-  uint16_t ftw;
-  uint16_t fop;
-  uint64_t rip;
-  uint64_t rdp;
-  uint32_t mxcsr;
-  uint32_t mxcr_mask;
-  struct _libc_fpxreg _st[8];
-  struct _libc_xmmreg _xmm[16];
-  uint32_t padding[24];
-};
-
-typedef struct _libc_fpstate* fpregset_t;
-
-typedef struct {
-  gregset_t gregs;
-  fpregset_t fpregs;
-  unsigned long __reserved1[8];
-} mcontext_t;
-
-typedef struct ucontext {
-  unsigned long uc_flags;
-  struct ucontext* uc_link;
-  stack_t uc_stack;
-  mcontext_t uc_mcontext;
-  sigset_t uc_sigmask;
-  char __padding[128 - sizeof(sigset_t)];
-  struct _libc_fpstate __fpregs_mem;
-} ucontext_t;
-
-#endif
-
-__END_DECLS
-
-#endif /* _SYS_UCONTEXT_H_ */
diff --git a/ndk/platforms/android-20/include/sys/user.h b/ndk/platforms/android-20/include/sys/user.h
deleted file mode 100644
index 705e0e9..0000000
--- a/ndk/platforms/android-20/include/sys/user.h
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef _SYS_USER_H_
-#define _SYS_USER_H_
-
-#include <sys/cdefs.h>
-#include <limits.h> /* For PAGE_SIZE. */
-
-__BEGIN_DECLS
-
-#if __i386__
-
-struct user_fpregs_struct {
-  long cwd;
-  long swd;
-  long twd;
-  long fip;
-  long fcs;
-  long foo;
-  long fos;
-  long st_space[20];
-};
-struct user_fxsr_struct {
-  unsigned short cwd;
-  unsigned short swd;
-  unsigned short twd;
-  unsigned short fop;
-  long fip;
-  long fcs;
-  long foo;
-  long fos;
-  long mxcsr;
-  long reserved;
-  long st_space[32];
-  long xmm_space[32];
-  long padding[56];
-};
-struct user_regs_struct {
-  long ebx;
-  long ecx;
-  long edx;
-  long esi;
-  long edi;
-  long ebp;
-  long eax;
-  long xds;
-  long xes;
-  long xfs;
-  long xgs;
-  long orig_eax;
-  long eip;
-  long xcs;
-  long eflags;
-  long esp;
-  long xss;
-};
-struct user {
-  struct user_regs_struct regs;
-  int u_fpvalid;
-  struct user_fpregs_struct i387;
-  unsigned long int u_tsize;
-  unsigned long int u_dsize;
-  unsigned long int u_ssize;
-  unsigned long start_code;
-  unsigned long start_stack;
-  long int signal;
-  int reserved;
-  unsigned long u_ar0;
-  struct user_fpregs_struct* u_fpstate;
-  unsigned long magic;
-  char u_comm[32];
-  int u_debugreg[8];
-};
-
-#elif defined(__x86_64__)
-
-struct user_fpregs_struct {
-  unsigned short cwd;
-  unsigned short swd;
-  unsigned short ftw;
-  unsigned short fop;
-  __u64 rip;
-  __u64 rdp;
-  __u32 mxcsr;
-  __u32 mxcsr_mask;
-  __u32 st_space[32];
-  __u32 xmm_space[64];
-  __u32 padding[24];
-};
-struct user_regs_struct {
-  unsigned long r15;
-  unsigned long r14;
-  unsigned long r13;
-  unsigned long r12;
-  unsigned long rbp;
-  unsigned long rbx;
-  unsigned long r11;
-  unsigned long r10;
-  unsigned long r9;
-  unsigned long r8;
-  unsigned long rax;
-  unsigned long rcx;
-  unsigned long rdx;
-  unsigned long rsi;
-  unsigned long rdi;
-  unsigned long orig_rax;
-  unsigned long rip;
-  unsigned long cs;
-  unsigned long eflags;
-  unsigned long rsp;
-  unsigned long ss;
-  unsigned long fs_base;
-  unsigned long gs_base;
-  unsigned long ds;
-  unsigned long es;
-  unsigned long fs;
-  unsigned long gs;
-};
-struct user {
-  struct user_regs_struct regs;
-  int u_fpvalid;
-  int pad0;
-  struct user_fpregs_struct i387;
-  unsigned long int u_tsize;
-  unsigned long int u_dsize;
-  unsigned long int u_ssize;
-  unsigned long start_code;
-  unsigned long start_stack;
-  long int signal;
-  int reserved;
-  int pad1;
-  unsigned long u_ar0;
-  struct user_fpregs_struct* u_fpstate;
-  unsigned long magic;
-  char u_comm[32];
-  unsigned long u_debugreg[8];
-  unsigned long error_code;
-  unsigned long fault_address;
-};
-
-#elif defined(__mips__)
-struct user_regs_struct 
-{
-  unsigned long a[180];
-};
-
-struct user {
-  unsigned long regs[180 / sizeof(unsigned long) + 64];
-  size_t u_tsize;
-  size_t u_dsize;
-  size_t u_ssize;
-  unsigned long start_code;
-  unsigned long start_data;
-  unsigned long start_stack;
-  long int signal;
-  unsigned long u_ar0;
-  unsigned long magic;
-  char u_comm[32];
-};
-
-#elif defined(__arm__)
-
-struct user_fpregs {
-  struct fp_reg {
-    unsigned int sign1:1;
-    unsigned int unused:15;
-    unsigned int sign2:1;
-    unsigned int exponent:14;
-    unsigned int j:1;
-    unsigned int mantissa1:31;
-    unsigned int mantissa0:32;
-  } fpregs[8];
-  unsigned int fpsr:32;
-  unsigned int fpcr:32;
-  unsigned char ftype[8];
-  unsigned int init_flag;
-};
-struct user_regs {
-  unsigned long uregs[18];
-};
-struct user_vfp {
-  unsigned long long fpregs[32];
-  unsigned long fpscr;
-};
-struct user_vfp_exc {
-  unsigned long fpexc;
-  unsigned long fpinst;
-  unsigned long fpinst2;
-};
-struct user {
-  struct user_regs regs;
-  int u_fpvalid;
-  unsigned long int u_tsize;
-  unsigned long int u_dsize;
-  unsigned long int u_ssize;
-  unsigned long start_code;
-  unsigned long start_stack;
-  long int signal;
-  int reserved;
-  struct user_regs* u_ar0;
-  unsigned long magic;
-  char u_comm[32];
-  int u_debugreg[8];
-  struct user_fpregs u_fp;
-  struct user_fpregs* u_fp0;
-};
-
-#elif defined(__aarch64__)
-
-// There are no user structures for 64 bit arm.
-
-#else
-
-#error "Unsupported architecture."
-
-#endif
-
-__END_DECLS
-
-#endif  /* _SYS_USER_H_ */
diff --git a/ndk/platforms/android-20/include/sys/wait.h b/ndk/platforms/android-20/include/sys/wait.h
deleted file mode 100644
index b30b7ec..0000000
--- a/ndk/platforms/android-20/include/sys/wait.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#ifndef _SYS_WAIT_H_
-#define _SYS_WAIT_H_
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-#include <sys/resource.h>
-#include <linux/wait.h>
-#include <signal.h>
-
-__BEGIN_DECLS
-
-#define WEXITSTATUS(s)  (((s) & 0xff00) >> 8)
-#define WCOREDUMP(s)    ((s) & 0x80)
-#define WTERMSIG(s)     ((s) & 0x7f)
-#define WSTOPSIG(s)     WEXITSTATUS(s)
-
-#define WIFEXITED(s)    (WTERMSIG(s) == 0)
-#define WIFSTOPPED(s)   (WTERMSIG(s) == 0x7f)
-#define WIFSIGNALED(s)  (WTERMSIG((s)+1) >= 2)
-
-extern pid_t  wait(int *);
-extern pid_t  waitpid(pid_t, int *, int);
-extern pid_t  wait3(int *, int, struct rusage *);
-extern pid_t  wait4(pid_t, int *, int, struct rusage *);
-
-/* Posix states that idtype_t should be an enumeration type, but
- * the kernel headers define P_ALL, P_PID and P_PGID as constant macros
- * instead.
- */
-typedef int idtype_t;
-
-extern int  waitid(idtype_t which, id_t id, siginfo_t *info, int options);
-
-__END_DECLS
-
-#endif /* _SYS_WAIT_H_ */
diff --git a/ndk/platforms/android-20/include/syslog.h b/ndk/platforms/android-20/include/syslog.h
deleted file mode 100644
index 4677c14..0000000
--- a/ndk/platforms/android-20/include/syslog.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#ifndef _SYSLOG_H
-#define _SYSLOG_H
-
-#include <stdio.h>
-#include <sys/cdefs.h>
-#include <stdarg.h>
-
-__BEGIN_DECLS
-
-/* Alert levels */
-#define LOG_EMERG	0
-#define LOG_ALERT	1
-#define LOG_CRIT	2
-#define LOG_ERR		3
-#define LOG_WARNING	4
-#define LOG_NOTICE	5
-#define LOG_INFO	6
-#define LOG_DEBUG	7
-
-#define LOG_PRIMASK	7
-#define LOG_PRI(x)	((x) & LOG_PRIMASK)
-
-
-/* Facilities; not actually used */
-#define LOG_KERN	0000
-#define LOG_USER	0010
-#define LOG_MAIL	0020
-#define LOG_DAEMON	0030
-#define LOG_AUTH	0040
-#define LOG_SYSLOG	0050
-#define LOG_LPR		0060
-#define LOG_NEWS	0070
-#define LOG_UUCP	0100
-#define LOG_CRON	0110
-#define LOG_AUTHPRIV	0120
-#define LOG_FTP		0130
-#define LOG_LOCAL0	0200
-#define LOG_LOCAL1	0210
-#define LOG_LOCAL2	0220
-#define LOG_LOCAL3	0230
-#define LOG_LOCAL4	0240
-#define LOG_LOCAL5	0250
-#define LOG_LOCAL6	0260
-#define LOG_LOCAL7	0270
-
-#define LOG_FACMASK	01770
-#define LOG_FAC(x)	(((x) >> 3) & (LOG_FACMASK >> 3))
-
-#define	LOG_MASK(pri)	(1 << (pri))		/* mask for one priority */
-#define	LOG_UPTO(pri)	((1 << ((pri)+1)) - 1)	/* all priorities through pri */
-
-/* openlog() flags; only LOG_PID and LOG_PERROR supported */
-#define        LOG_PID         0x01    /* include pid with message */
-#define        LOG_CONS        0x02    /* write to console on logger error */
-#define        LOG_ODELAY      0x04    /* delay connection until syslog() */
-#define        LOG_NDELAY      0x08    /* open connection immediately */
-#define        LOG_NOWAIT      0x10    /* wait for child processes (unused on linux) */
-#define        LOG_PERROR      0x20    /* additional logging to stderr */
-
-/* BIONIC: the following definitions are from OpenBSD's sys/syslog.h
- */
-struct syslog_data {
-	int	log_file;
-        int	connected;
-        int	opened;
-        int	log_stat;
-        const char 	*log_tag;
-        int 	log_fac;
-        int 	log_mask;
-};
-
-#define SYSLOG_DATA_INIT {-1, 0, 0, 0, (const char *)0, LOG_USER, 0xff}
-
-#define _PATH_LOG  "/dev/syslog"
-
-extern void	closelog(void);
-extern void	openlog(const char *, int, int);
-extern int	setlogmask(int);
-extern void	syslog(int, const char *, ...) __printflike(2, 3);
-extern void	vsyslog(int, const char *, va_list) __printflike(2, 0);
-extern void	closelog_r(struct syslog_data *);
-extern void	openlog_r(const char *, int, int, struct syslog_data *);
-extern int	setlogmask_r(int, struct syslog_data *);
-extern void	syslog_r(int, struct syslog_data *, const char *, ...) __printflike(3, 4);
-extern void	vsyslog_r(int, struct syslog_data *, const char *, va_list) __printflike(3, 0);
-
-__END_DECLS
-
-#endif /* _SYSLOG_H */
diff --git a/ndk/platforms/android-20/include/time.h b/ndk/platforms/android-20/include/time.h
deleted file mode 100644
index 0f86fd3..0000000
--- a/ndk/platforms/android-20/include/time.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef _TIME_H_
-#define _TIME_H_
-
-#include <sys/cdefs.h>
-#include <sys/time.h>
-
-__BEGIN_DECLS
-
-#define CLOCKS_PER_SEC 1000000
-
-extern char* tzname[];
-extern int daylight;
-extern long int timezone;
-
-struct sigevent;
-
-struct tm {
-  int tm_sec;
-  int tm_min;
-  int tm_hour;
-  int tm_mday;
-  int tm_mon;
-  int tm_year;
-  int tm_wday;
-  int tm_yday;
-  int tm_isdst;
-  long int tm_gmtoff;
-  const char* tm_zone;
-};
-
-#define TM_ZONE tm_zone
-
-extern time_t time(time_t*);
-extern int nanosleep(const struct timespec*, struct timespec*);
-
-extern char* asctime(const struct tm*);
-extern char* asctime_r(const struct tm*, char*);
-
-extern double difftime(time_t, time_t);
-extern time_t mktime(struct tm*);
-
-extern struct tm* localtime(const time_t*);
-extern struct tm* localtime_r(const time_t*, struct tm*);
-
-extern struct tm* gmtime(const time_t*);
-extern struct tm* gmtime_r(const time_t*, struct tm*);
-
-extern char* strptime(const char*, const char*, struct tm*);
-extern size_t strftime(char*, size_t, const char*, const struct tm*);
-
-extern char* ctime(const time_t*);
-extern char* ctime_r(const time_t*, char*);
-
-extern void tzset(void);
-
-extern clock_t clock(void);
-
-extern int clock_getres(int, struct timespec*);
-extern int clock_gettime(int, struct timespec*);
-
-extern int timer_create(int, struct sigevent*, timer_t*);
-extern int timer_delete(timer_t);
-extern int timer_settime(timer_t, int, const struct itimerspec*, struct itimerspec*);
-extern int timer_gettime(timer_t, struct itimerspec*);
-extern int timer_getoverrun(timer_t);
-
-extern time_t timelocal(struct tm*);
-extern time_t timegm(struct tm*);
-extern time_t time2posix(time_t);
-extern time_t posix2time(time_t);
-
-__END_DECLS
-
-#endif /* _TIME_H_ */
diff --git a/ndk/platforms/android-20/include/unistd.h b/ndk/platforms/android-20/include/unistd.h
deleted file mode 100644
index 6cb36d8..0000000
--- a/ndk/platforms/android-20/include/unistd.h
+++ /dev/null
@@ -1,251 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#ifndef _UNISTD_H_
-#define _UNISTD_H_
-
-#include <stddef.h>
-#include <sys/cdefs.h>
-#include <sys/types.h>
-#include <sys/select.h>
-#include <sys/sysconf.h>
-#include <pathconf.h>
-
-__BEGIN_DECLS
-
-/* Standard file descriptor numbers. */
-#define STDIN_FILENO	0
-#define STDOUT_FILENO	1
-#define STDERR_FILENO	2
-
-/* Values for whence in fseek and lseek */
-#define SEEK_SET 0
-#define SEEK_CUR 1
-#define SEEK_END 2
-
-extern char** environ;
-
-extern __noreturn void _exit(int);
-
-extern pid_t  fork(void);
-extern pid_t  vfork(void);
-extern pid_t  getpid(void);
-extern pid_t  gettid(void);
-extern pid_t  getpgid(pid_t);
-extern int    setpgid(pid_t, pid_t);
-extern pid_t  getppid(void);
-extern pid_t  getpgrp(void);
-extern int    setpgrp(void);
-extern pid_t  getsid(pid_t);
-extern pid_t  setsid(void);
-
-extern int execv(const char *, char * const *);
-extern int execvp(const char *, char * const *);
-extern int execvpe(const char *, char * const *, char * const *);
-extern int execve(const char *, char * const *, char * const *);
-extern int execl(const char *, const char *, ...);
-extern int execlp(const char *, const char *, ...);
-extern int execle(const char *, const char *, ...);
-
-/* IMPORTANT: See comment under <sys/prctl.h> about this declaration */
-extern int prctl(int  option, ...);
-
-extern int nice(int);
-
-extern int setuid(uid_t);
-extern uid_t getuid(void);
-extern int seteuid(uid_t);
-extern uid_t geteuid(void);
-extern int setgid(gid_t);
-extern gid_t getgid(void);
-extern int setegid(gid_t);
-extern gid_t getegid(void);
-extern int getgroups(int, gid_t *);
-extern int setgroups(size_t, const gid_t *);
-extern int setreuid(uid_t, uid_t);
-extern int setregid(gid_t, gid_t);
-extern int setresuid(uid_t, uid_t, uid_t);
-extern int setresgid(gid_t, gid_t, gid_t);
-extern int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid);
-extern int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid);
-extern int issetugid(void);
-extern char* getlogin(void);
-extern char* getusershell(void);
-extern void setusershell(void);
-extern void endusershell(void);
-
-
-
-/* Macros for access() */
-#define R_OK  4  /* Read */
-#define W_OK  2  /* Write */
-#define X_OK  1  /* Execute */
-#define F_OK  0  /* Existence */
-
-extern int access(const char*, int);
-extern int faccessat(int, const char*, int, int);
-extern int link(const char*, const char*);
-extern int linkat(int, const char*, int, const char*, int);
-extern int unlink(const char*);
-extern int unlinkat(int, const char*, int);
-extern int chdir(const char *);
-extern int fchdir(int);
-extern int rmdir(const char *);
-extern int pipe(int *);
-#ifdef _GNU_SOURCE
-extern int pipe2(int *, int);
-#endif
-extern int chroot(const char *);
-extern int symlink(const char*, const char*);
-extern int symlinkat(const char*, int, const char*);
-extern ssize_t readlink(const char*, char*, size_t);
-extern ssize_t readlinkat(int, const char*, char*, size_t);
-extern int chown(const char *, uid_t, gid_t);
-extern int fchown(int, uid_t, gid_t);
-extern int fchownat(int, const char*, uid_t, gid_t, int);
-extern int lchown(const char *, uid_t, gid_t);
-extern int truncate(const char *, off_t);
-extern int truncate64(const char *, off64_t);
-extern char *getcwd(char *, size_t);
-
-extern int sync(void);
-
-extern int close(int);
-extern off_t lseek(int, off_t, int);
-extern off64_t lseek64(int, off64_t, int);
-
-extern ssize_t read(int, void *, size_t);
-extern ssize_t write(int, const void *, size_t);
-extern ssize_t pread(int, void *, size_t, off_t);
-extern ssize_t pread64(int, void *, size_t, off64_t);
-extern ssize_t pwrite(int, const void *, size_t, off_t);
-extern ssize_t pwrite64(int, const void *, size_t, off64_t);
-
-extern int dup(int);
-extern int dup2(int, int);
-#ifdef _GNU_SOURCE
-extern int dup3(int, int, int);
-#endif
-extern int fcntl(int, int, ...);
-extern int ioctl(int, int, ...);
-extern int flock(int, int);
-extern int fsync(int);
-extern int fdatasync(int);
-extern int ftruncate(int, off_t);
-extern int ftruncate64(int, off64_t);
-
-extern int pause(void);
-extern unsigned int alarm(unsigned int);
-extern unsigned int sleep(unsigned int);
-extern int usleep(useconds_t);
-
-extern int gethostname(char *, size_t);
-
-extern int getdtablesize(void);
-
-extern void *__brk(void *);
-extern int brk(void *);
-extern void *sbrk(ptrdiff_t);
-
-extern int getopt(int, char * const *, const char *);
-extern char *optarg;
-extern int optind, opterr, optopt;
-
-extern int isatty(int);
-extern char* ttyname(int);
-extern int ttyname_r(int, char*, size_t);
-
-extern int  acct(const char*  filepath);
-
-int getpagesize(void);
-
-extern int sysconf(int  name);
-
-extern int daemon(int, int);
-
-#if defined(__arm__) || (defined(__mips__) && !defined(__LP64__))
-extern int cacheflush(long, long, long);
-    /* __attribute__((deprecated("use __builtin___clear_cache instead"))); */
-#endif
-
-extern pid_t tcgetpgrp(int fd);
-extern int   tcsetpgrp(int fd, pid_t _pid);
-
-#if 0 /* MISSING FROM BIONIC */
-extern int execlpe(const char *, const char *, ...);
-extern int getfsuid(uid_t);
-extern int setfsuid(uid_t);
-extern int getlogin_r(char* name, size_t namesize);
-extern int sethostname(const char *, size_t);
-extern int getdomainname(char *, size_t);
-extern int setdomainname(const char *, size_t);
-#endif /* MISSING */
-
-/* Used to retry syscalls that can return EINTR. */
-#define TEMP_FAILURE_RETRY(exp) ({         \
-    typeof (exp) _rc;                      \
-    do {                                   \
-        _rc = (exp);                       \
-    } while (_rc == -1 && errno == EINTR); \
-    _rc; })
-
-#if defined(__BIONIC_FORTIFY)
-extern ssize_t __read_chk(int, void*, size_t, size_t);
-__errordecl(__read_dest_size_error, "read called with size bigger than destination");
-__errordecl(__read_count_toobig_error, "read called with count > SSIZE_MAX");
-extern ssize_t __read_real(int, void*, size_t)
-    __asm__(__USER_LABEL_PREFIX__ "read");
-
-__BIONIC_FORTIFY_INLINE
-ssize_t read(int fd, void* buf, size_t count) {
-    size_t bos = __bos0(buf);
-
-#if !defined(__clang__)
-    if (__builtin_constant_p(count) && (count > SSIZE_MAX)) {
-        __read_count_toobig_error();
-    }
-
-    if (bos == __BIONIC_FORTIFY_UNKNOWN_SIZE) {
-        return __read_real(fd, buf, count);
-    }
-
-    if (__builtin_constant_p(count) && (count > bos)) {
-        __read_dest_size_error();
-    }
-
-    if (__builtin_constant_p(count) && (count <= bos)) {
-        return __read_real(fd, buf, count);
-    }
-#endif
-
-    return __read_chk(fd, buf, count, bos);
-}
-#endif /* defined(__BIONIC_FORTIFY) */
-
-__END_DECLS
-
-#endif /* _UNISTD_H_ */
diff --git a/ndk/platforms/android-20/include/wchar.h b/ndk/platforms/android-20/include/wchar.h
deleted file mode 100644
index af7593f..0000000
--- a/ndk/platforms/android-20/include/wchar.h
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#ifndef _WCHAR_H_
-#define _WCHAR_H_
-
-#include <sys/cdefs.h>
-#include <stdio.h>
-
-#include <stdarg.h>
-#include <stddef.h>
-#include <time.h>
-
-#include <machine/wchar_limits.h>
-
-__BEGIN_DECLS
-
-typedef __WINT_TYPE__  wint_t;
-typedef struct {
-  uint8_t __seq[4];
-#ifdef __LP64__
-  char __reserved[4];
-#endif
-} mbstate_t;
-
-enum {
-    WC_TYPE_INVALID = 0,
-    WC_TYPE_ALNUM,
-    WC_TYPE_ALPHA,
-    WC_TYPE_BLANK,
-    WC_TYPE_CNTRL,
-    WC_TYPE_DIGIT,
-    WC_TYPE_GRAPH,
-    WC_TYPE_LOWER,
-    WC_TYPE_PRINT,
-    WC_TYPE_PUNCT,
-    WC_TYPE_SPACE,
-    WC_TYPE_UPPER,
-    WC_TYPE_XDIGIT,
-    WC_TYPE_MAX
-};
-
-typedef long wctype_t;
-
-#define  WEOF        ((wint_t)(-1))
-
-extern wint_t            btowc(int);
-extern int               fwprintf(FILE *, const wchar_t *, ...);
-extern int               fwscanf(FILE *, const wchar_t *, ...);
-extern int               iswalnum(wint_t);
-extern int               iswalpha(wint_t);
-extern int               iswblank(wint_t);
-extern int               iswcntrl(wint_t);
-extern int               iswdigit(wint_t);
-extern int               iswgraph(wint_t);
-extern int               iswlower(wint_t);
-extern int               iswprint(wint_t);
-extern int               iswpunct(wint_t);
-extern int               iswspace(wint_t);
-extern int               iswupper(wint_t);
-extern int               iswxdigit(wint_t);
-extern int               iswctype(wint_t, wctype_t);
-extern wint_t            fgetwc(FILE *);
-extern wchar_t          *fgetws(wchar_t *, int, FILE *);
-extern wint_t            fputwc(wchar_t, FILE *);
-extern int               fputws(const wchar_t *, FILE *);
-extern int               fwide(FILE *, int);
-extern wint_t            getwc(FILE *);
-extern wint_t            getwchar(void);
-extern int               mbsinit(const mbstate_t *);
-extern size_t            mbrlen(const char *, size_t, mbstate_t *);
-extern size_t            mbrtowc(wchar_t *, const char *, size_t, mbstate_t *);
-extern size_t mbsrtowcs(wchar_t*, const char**, size_t, mbstate_t*);
-extern size_t mbsnrtowcs(wchar_t*, const char**, size_t, size_t, mbstate_t*);
-extern size_t            mbstowcs(wchar_t *, const char *, size_t);
-extern wint_t            putwc(wchar_t, FILE *);
-extern wint_t            putwchar(wchar_t);
-extern int               swprintf(wchar_t *, size_t, const wchar_t *, ...);
-extern int               swscanf(const wchar_t *, const wchar_t *, ...);
-extern wint_t            towlower(wint_t);
-extern wint_t            towupper(wint_t);
-extern wint_t            ungetwc(wint_t, FILE *);
-extern int vfwprintf(FILE*, const wchar_t*, va_list);
-extern int vfwscanf(FILE*, const wchar_t*, va_list);
-extern int vswprintf(wchar_t*, size_t, const wchar_t*, va_list);
-extern int vswscanf(const wchar_t*, const wchar_t*, va_list);
-extern int vwprintf(const wchar_t*, va_list);
-extern int vwscanf(const wchar_t*, va_list);
-extern size_t            wcrtomb(char *, wchar_t, mbstate_t *);
-extern int               wcscasecmp(const wchar_t *, const wchar_t *);
-extern wchar_t          *wcscat(wchar_t *, const wchar_t *);
-extern wchar_t          *wcschr(const wchar_t *, wchar_t);
-extern int               wcscmp(const wchar_t *, const wchar_t *);
-extern int               wcscoll(const wchar_t *, const wchar_t *);
-extern wchar_t          *wcscpy(wchar_t *, const wchar_t *);
-extern size_t            wcscspn(const wchar_t *, const wchar_t *);
-extern size_t            wcsftime(wchar_t *, size_t, const wchar_t *, const struct tm *);
-extern size_t            wcslen(const wchar_t *);
-extern int               wcsncasecmp(const wchar_t *, const wchar_t *, size_t);
-extern wchar_t          *wcsncat(wchar_t *, const wchar_t *, size_t);
-extern int               wcsncmp(const wchar_t *, const wchar_t *, size_t);
-extern wchar_t          *wcsncpy(wchar_t *, const wchar_t *, size_t);
-extern size_t wcsnrtombs(char*, const wchar_t**, size_t, size_t, mbstate_t*);
-extern wchar_t          *wcspbrk(const wchar_t *, const wchar_t *);
-extern wchar_t          *wcsrchr(const wchar_t *, wchar_t);
-extern size_t wcsrtombs(char*, const wchar_t**, size_t, mbstate_t*);
-extern size_t            wcsspn(const wchar_t *, const wchar_t *);
-extern wchar_t          *wcsstr(const wchar_t *, const wchar_t *);
-extern double wcstod(const wchar_t*, wchar_t**);
-extern float wcstof(const wchar_t*, wchar_t**);
-extern wchar_t* wcstok(wchar_t*, const wchar_t*, wchar_t**);
-extern long wcstol(const wchar_t*, wchar_t**, int);
-extern long long wcstoll(const wchar_t*, wchar_t**, int);
-extern long double wcstold(const wchar_t*, wchar_t**);
-extern unsigned long wcstoul(const wchar_t*, wchar_t**, int);
-extern unsigned long long wcstoull(const wchar_t*, wchar_t**, int);
-extern wchar_t          *wcswcs(const wchar_t *, const wchar_t *);
-extern int               wcswidth(const wchar_t *, size_t);
-extern size_t            wcsxfrm(wchar_t *, const wchar_t *, size_t);
-extern int               wctob(wint_t);
-extern wctype_t          wctype(const char *);
-extern int               wcwidth(wchar_t);
-extern wchar_t          *wmemchr(const wchar_t *, wchar_t, size_t);
-extern int               wmemcmp(const wchar_t *, const wchar_t *, size_t);
-extern wchar_t          *wmemcpy(wchar_t *, const wchar_t *, size_t);
-extern wchar_t          *wmemmove(wchar_t *, const wchar_t *, size_t);
-extern wchar_t          *wmemset(wchar_t *, wchar_t, size_t);
-extern int               wprintf(const wchar_t *, ...);
-extern int               wscanf(const wchar_t *, ...);
-
-extern size_t wcslcat(wchar_t*, const wchar_t*, size_t);
-extern size_t wcslcpy(wchar_t*, const wchar_t*, size_t);
-
-typedef void *wctrans_t;
-extern wint_t towctrans(wint_t, wctrans_t);
-extern wctrans_t wctrans(const char*);
-
-#if __POSIX_VISIBLE >= 200809
-wchar_t* wcsdup(const wchar_t*);
-size_t wcsnlen(const wchar_t*, size_t);
-#endif
-
-__END_DECLS
-
-#endif /* _WCHAR_H_ */
diff --git a/ndk/platforms/android-20/samples/native-codec/AndroidManifest.xml b/ndk/platforms/android-20/samples/native-codec/AndroidManifest.xml
new file mode 100644
index 0000000..addf1f0
--- /dev/null
+++ b/ndk/platforms/android-20/samples/native-codec/AndroidManifest.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+      package="com.example.nativecodec">
+
+    <uses-feature android:glEsVersion="0x00020000" />
+
+    <application android:icon="@drawable/icon" android:label="@string/app_name">
+        <activity android:name=".NativeCodec"
+                  android:label="@string/app_name">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+
+    </application>
+
+    <uses-sdk android:minSdkVersion="19" />
+
+    <!-- INTERNET is needed to use a URI-based media player, depending on the URI -->
+    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
+    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
+
+</manifest>
diff --git a/ndk/platforms/android-20/samples/native-codec/README.txt b/ndk/platforms/android-20/samples/native-codec/README.txt
new file mode 100644
index 0000000..446941a
--- /dev/null
+++ b/ndk/platforms/android-20/samples/native-codec/README.txt
@@ -0,0 +1,2 @@
+This sample app requires a video file to be placed in /sdcard/testfile.mp4
+For demonstration purposes we have supplied such a file.
diff --git a/ndk/platforms/android-20/samples/native-codec/default.properties b/ndk/platforms/android-20/samples/native-codec/default.properties
new file mode 100644
index 0000000..5874172
--- /dev/null
+++ b/ndk/platforms/android-20/samples/native-codec/default.properties
@@ -0,0 +1,4 @@
+# Indicates whether an apk should be generated for each density.
+split.density=false
+# Project target.
+target=android-20
diff --git a/ndk/platforms/android-20/samples/native-codec/jni/Android.mk b/ndk/platforms/android-20/samples/native-codec/jni/Android.mk
new file mode 100644
index 0000000..34300c4
--- /dev/null
+++ b/ndk/platforms/android-20/samples/native-codec/jni/Android.mk
@@ -0,0 +1,30 @@
+# 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)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE    := native-codec-jni
+LOCAL_SRC_FILES := native-codec-jni.cpp looper.cpp
+# for native multimedia
+LOCAL_LDLIBS    += -lOpenMAXAL -lmediandk
+# for logging
+LOCAL_LDLIBS    += -llog
+# for native windows
+LOCAL_LDLIBS    += -landroid
+
+LOCAL_CFLAGS    += -UNDEBUG
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/ndk/platforms/android-20/samples/native-codec/jni/Application.mk b/ndk/platforms/android-20/samples/native-codec/jni/Application.mk
new file mode 100644
index 0000000..b02fc24
--- /dev/null
+++ b/ndk/platforms/android-20/samples/native-codec/jni/Application.mk
@@ -0,0 +1,2 @@
+APP_PLATFORM := android-20
+APP_ABI := all
diff --git a/ndk/platforms/android-20/samples/native-codec/jni/looper.cpp b/ndk/platforms/android-20/samples/native-codec/jni/looper.cpp
new file mode 100644
index 0000000..98112f4
--- /dev/null
+++ b/ndk/platforms/android-20/samples/native-codec/jni/looper.cpp
@@ -0,0 +1,152 @@
+/*
+ * 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.
+ */
+
+#include "looper.h"
+
+#include <assert.h>
+#include <jni.h>
+#include <pthread.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <limits.h>
+#include <semaphore.h>
+
+// for __android_log_print(ANDROID_LOG_INFO, "YourApp", "formatted message");
+#include <android/log.h>
+#define TAG "NativeCodec-looper"
+#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, TAG, __VA_ARGS__)
+
+
+struct loopermessage;
+typedef struct loopermessage loopermessage;
+
+struct loopermessage {
+    int what;
+    void *obj;
+    loopermessage *next;
+    bool quit;
+};
+
+
+
+void* looper::trampoline(void* p) {
+    ((looper*)p)->loop();
+    return NULL;
+}
+
+looper::looper() {
+    sem_init(&headdataavailable, 0, 0);
+    sem_init(&headwriteprotect, 0, 1);
+    pthread_attr_t attr;
+    pthread_attr_init(&attr);
+
+    pthread_create(&worker, &attr, trampoline, this);
+    running = true;
+}
+
+
+looper::~looper() {
+    if (running) {
+        LOGV("Looper deleted while still running. Some messages will not be processed");
+        quit();
+    }
+}
+
+void looper::post(int what, void *data, bool flush) {
+    loopermessage *msg = new loopermessage();
+    msg->what = what;
+    msg->obj = data;
+    msg->next = NULL;
+    msg->quit = false;
+    addmsg(msg, flush);
+}
+
+void looper::addmsg(loopermessage *msg, bool flush) {
+    sem_wait(&headwriteprotect);
+    loopermessage *h = head;
+
+    if (flush) {
+        while(h) {
+            loopermessage *next = h->next;
+            delete h;
+            h = next;
+        }
+        h = NULL;
+    }
+    if (h) {
+        while (h->next) {
+            h = h->next;
+        }
+        h->next = msg;
+    } else {
+        head = msg;
+    }
+    LOGV("post msg %d", msg->what);
+    sem_post(&headwriteprotect);
+    sem_post(&headdataavailable);
+}
+
+void looper::loop() {
+    while(true) {
+        // wait for available message
+        sem_wait(&headdataavailable);
+
+        // get next available message
+        sem_wait(&headwriteprotect);
+        loopermessage *msg = head;
+        if (msg == NULL) {
+            LOGV("no msg");
+            sem_post(&headwriteprotect);
+            continue;
+        }
+        head = msg->next;
+        sem_post(&headwriteprotect);
+
+        if (msg->quit) {
+            LOGV("quitting");
+            delete msg;
+            return;
+        }
+        LOGV("processing msg %d", msg->what);
+        handle(msg->what, msg->obj);
+        delete msg;
+    }
+}
+
+void looper::quit() {
+    LOGV("quit");
+    loopermessage *msg = new loopermessage();
+    msg->what = 0;
+    msg->obj = NULL;
+    msg->next = NULL;
+    msg->quit = true;
+    addmsg(msg, false);
+    void *retval;
+    pthread_join(worker, &retval);
+    sem_destroy(&headdataavailable);
+    sem_destroy(&headwriteprotect);
+    running = false;
+}
+
+void looper::handle(int what, void* obj) {
+    LOGV("dropping msg %d %p", what, obj);
+}
+
diff --git a/ndk/platforms/android-20/samples/native-codec/jni/looper.h b/ndk/platforms/android-20/samples/native-codec/jni/looper.h
new file mode 100644
index 0000000..531a7cb
--- /dev/null
+++ b/ndk/platforms/android-20/samples/native-codec/jni/looper.h
@@ -0,0 +1,41 @@
+/*
+ * 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.
+ */
+
+#include <pthread.h>
+#include <semaphore.h>
+
+struct loopermessage;
+
+class looper {
+    public:
+        looper();
+        ~looper();
+
+        void post(int what, void *data, bool flush = false);
+        void quit();
+
+        virtual void handle(int what, void *data);
+
+    private:
+        void addmsg(loopermessage *msg, bool flush);
+        static void* trampoline(void* p);
+        void loop();
+        loopermessage *head;
+        pthread_t worker;
+        sem_t headwriteprotect;
+        sem_t headdataavailable;
+        bool running;
+};
diff --git a/ndk/platforms/android-20/samples/native-codec/jni/native-codec-jni.cpp b/ndk/platforms/android-20/samples/native-codec/jni/native-codec-jni.cpp
new file mode 100644
index 0000000..6053abe
--- /dev/null
+++ b/ndk/platforms/android-20/samples/native-codec/jni/native-codec-jni.cpp
@@ -0,0 +1,328 @@
+/*
+ * 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.
+ */
+
+/* This is a JNI example where we use native methods to play video
+ * using the native AMedia* APIs.
+ * See the corresponding Java source file located at:
+ *
+ *   src/com/example/nativecodec/NativeMedia.java
+ *
+ * In this example we use assert() for "impossible" error conditions,
+ * and explicit handling and recovery for more likely error conditions.
+ */
+
+#include <assert.h>
+#include <jni.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <limits.h>
+
+#include "looper.h"
+#include "media/NdkMediaCodec.h"
+#include "media/NdkMediaExtractor.h"
+
+// for __android_log_print(ANDROID_LOG_INFO, "YourApp", "formatted message");
+#include <android/log.h>
+#define TAG "NativeCodec"
+#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, TAG, __VA_ARGS__)
+
+// for native window JNI
+#include <android/native_window_jni.h>
+
+typedef struct {
+    int fd;
+    ANativeWindow* window;
+    AMediaExtractor* ex;
+    AMediaCodec *codec;
+    int64_t renderstart;
+    bool sawInputEOS;
+    bool sawOutputEOS;
+    bool isPlaying;
+    bool renderonce;
+} workerdata;
+
+workerdata data = {-1, NULL, NULL, NULL, 0, false, false, false, false};
+
+enum {
+    kMsgCodecBuffer,
+    kMsgPause,
+    kMsgResume,
+    kMsgPauseAck,
+    kMsgDecodeDone,
+    kMsgSeek,
+};
+
+
+
+class mylooper: public looper {
+    virtual void handle(int what, void* obj);
+};
+
+static mylooper *mlooper = NULL;
+
+int64_t systemnanotime() {
+    timespec now;
+    clock_gettime(CLOCK_MONOTONIC, &now);
+    return now.tv_sec * 1000000000LL + now.tv_nsec;
+}
+
+void doCodecWork(workerdata *d) {
+
+    ssize_t bufidx = -1;
+    if (!d->sawInputEOS) {
+        bufidx = AMediaCodec_dequeueInputBuffer(d->codec, 2000);
+        LOGV("input buffer %zd", bufidx);
+        if (bufidx >= 0) {
+            size_t bufsize;
+            uint8_t *buf = AMediaCodec_getInputBuffer(d->codec, bufidx, &bufsize);
+            ssize_t sampleSize = AMediaExtractor_readSampleData(d->ex, buf, bufsize);
+            if (sampleSize < 0) {
+                sampleSize = 0;
+                d->sawInputEOS = true;
+                LOGV("EOS");
+            }
+            int64_t presentationTimeUs = AMediaExtractor_getSampleTime(d->ex);
+
+            AMediaCodec_queueInputBuffer(d->codec, bufidx, 0, sampleSize, presentationTimeUs,
+                    d->sawInputEOS ? AMEDIACODEC_BUFFER_FLAG_END_OF_STREAM : 0);
+            AMediaExtractor_advance(d->ex);
+        }
+    }
+
+    if (!d->sawOutputEOS) {
+        AMediaCodecBufferInfo info;
+        ssize_t status = AMediaCodec_dequeueOutputBuffer(d->codec, &info, 0);
+        if (status >= 0) {
+            if (info.flags & AMEDIACODEC_BUFFER_FLAG_END_OF_STREAM) {
+                LOGV("output EOS");
+                d->sawOutputEOS = true;
+            }
+            int64_t presentationNano = info.presentationTimeUs * 1000;
+            if (d->renderstart < 0) {
+                d->renderstart = systemnanotime() - presentationNano;
+            }
+            int64_t delay = (d->renderstart + presentationNano) - systemnanotime();
+            if (delay > 0) {
+                usleep(delay / 1000);
+            }
+            AMediaCodec_releaseOutputBuffer(d->codec, status, info.size != 0);
+            if (d->renderonce) {
+                d->renderonce = false;
+                return;
+            }
+        } else if (status == AMEDIACODEC_INFO_OUTPUT_BUFFERS_CHANGED) {
+            LOGV("output buffers changed");
+        } else if (status == AMEDIACODEC_INFO_OUTPUT_FORMAT_CHANGED) {
+            AMediaFormat *format = NULL;
+            format = AMediaCodec_getOutputFormat(d->codec);
+            LOGV("format changed to: %s", AMediaFormat_toString(format));
+            AMediaFormat_delete(format);
+        } else if (status == AMEDIACODEC_INFO_TRY_AGAIN_LATER) {
+            LOGV("no output buffer right now");
+        } else {
+            LOGV("unexpected info code: %zd", status);
+        }
+    }
+
+    if (!d->sawInputEOS || !d->sawOutputEOS) {
+        mlooper->post(kMsgCodecBuffer, d);
+    }
+}
+
+void mylooper::handle(int what, void* obj) {
+    switch (what) {
+        case kMsgCodecBuffer:
+            doCodecWork((workerdata*)obj);
+            break;
+
+        case kMsgDecodeDone:
+        {
+            workerdata *d = (workerdata*)obj;
+            AMediaCodec_stop(d->codec);
+            AMediaCodec_delete(d->codec);
+            AMediaExtractor_delete(d->ex);
+            d->sawInputEOS = true;
+            d->sawOutputEOS = true;
+        }
+        break;
+
+        case kMsgSeek:
+        {
+            workerdata *d = (workerdata*)obj;
+            AMediaExtractor_seekTo(d->ex, 0, AMEDIAEXTRACTOR_SEEK_NEXT_SYNC);
+            AMediaCodec_flush(d->codec);
+            d->renderstart = -1;
+            d->sawInputEOS = false;
+            d->sawOutputEOS = false;
+            if (!d->isPlaying) {
+                d->renderonce = true;
+                post(kMsgCodecBuffer, d);
+            }
+            LOGV("seeked");
+        }
+        break;
+
+        case kMsgPause:
+        {
+            workerdata *d = (workerdata*)obj;
+            if (d->isPlaying) {
+                // flush all outstanding codecbuffer messages with a no-op message
+                d->isPlaying = false;
+                post(kMsgPauseAck, NULL, true);
+            }
+        }
+        break;
+
+        case kMsgResume:
+        {
+            workerdata *d = (workerdata*)obj;
+            if (!d->isPlaying) {
+                d->renderstart = -1;
+                d->isPlaying = true;
+                post(kMsgCodecBuffer, d);
+            }
+        }
+        break;
+    }
+}
+
+
+
+
+extern "C" {
+
+jboolean Java_com_example_nativecodec_NativeCodec_createStreamingMediaPlayer(JNIEnv* env,
+        jclass clazz, jstring filename)
+{
+    LOGV("@@@ create");
+
+    // convert Java string to UTF-8
+    const char *utf8 = env->GetStringUTFChars(filename, NULL);
+    LOGV("opening %s", utf8);
+    int fd = open(utf8, O_RDONLY);
+    env->ReleaseStringUTFChars(filename, utf8);
+    if (fd < 0) {
+        LOGV("failed: %d (%s)", fd, strerror(errno));
+        return JNI_FALSE;
+    }
+
+    data.fd = fd;
+
+    workerdata *d = &data;
+
+    AMediaExtractor *ex = AMediaExtractor_new();
+    media_status_t err = AMediaExtractor_setDataSourceFd(ex, d->fd, 0 , LONG_MAX);
+    close(d->fd);
+    if (err != AMEDIA_OK) {
+        LOGV("setDataSource error: %d", err);
+        return JNI_FALSE;
+    }
+
+    int numtracks = AMediaExtractor_getTrackCount(ex);
+
+    AMediaCodec *codec = NULL;
+
+    LOGV("input has %d tracks", numtracks);
+    for (int i = 0; i < numtracks; i++) {
+        AMediaFormat *format = AMediaExtractor_getTrackFormat(ex, i);
+        const char *s = AMediaFormat_toString(format);
+        LOGV("track %d format: %s", i, s);
+        const char *mime;
+        if (!AMediaFormat_getString(format, AMEDIAFORMAT_KEY_MIME, &mime)) {
+            LOGV("no mime type");
+            return JNI_FALSE;
+        } else if (!strncmp(mime, "video/", 6)) {
+            // Omitting most error handling for clarity.
+            // Production code should check for errors.
+            AMediaExtractor_selectTrack(ex, i);
+            codec = AMediaCodec_createDecoderByType(mime);
+            AMediaCodec_configure(codec, format, d->window, NULL, 0);
+            d->ex = ex;
+            d->codec = codec;
+            d->renderstart = -1;
+            d->sawInputEOS = false;
+            d->sawOutputEOS = false;
+            d->isPlaying = false;
+            d->renderonce = true;
+            AMediaCodec_start(codec);
+        }
+        AMediaFormat_delete(format);
+    }
+
+    mlooper = new mylooper();
+    mlooper->post(kMsgCodecBuffer, d);
+
+    return JNI_TRUE;
+}
+
+// set the playing state for the streaming media player
+void Java_com_example_nativecodec_NativeCodec_setPlayingStreamingMediaPlayer(JNIEnv* env,
+        jclass clazz, jboolean isPlaying)
+{
+    LOGV("@@@ playpause: %d", isPlaying);
+    if (mlooper) {
+        if (isPlaying) {
+            mlooper->post(kMsgResume, &data);
+        } else {
+            mlooper->post(kMsgPause, &data);
+        }
+    }
+}
+
+
+// shut down the native media system
+void Java_com_example_nativecodec_NativeCodec_shutdown(JNIEnv* env, jclass clazz)
+{
+    LOGV("@@@ shutdown");
+    if (mlooper) {
+        mlooper->post(kMsgDecodeDone, &data, true /* flush */);
+        mlooper->quit();
+        delete mlooper;
+        mlooper = NULL;
+    }
+    if (data.window) {
+        ANativeWindow_release(data.window);
+        data.window = NULL;
+    }
+}
+
+
+// set the surface
+void Java_com_example_nativecodec_NativeCodec_setSurface(JNIEnv *env, jclass clazz, jobject surface)
+{
+    // obtain a native window from a Java surface
+    if (data.window) {
+        ANativeWindow_release(data.window);
+        data.window = NULL;
+    }
+    data.window = ANativeWindow_fromSurface(env, surface);
+    LOGV("@@@ setsurface %p", data.window);
+}
+
+
+// rewind the streaming media player
+void Java_com_example_nativecodec_NativeCodec_rewindStreamingMediaPlayer(JNIEnv *env, jclass clazz)
+{
+    LOGV("@@@ rewind");
+    mlooper->post(kMsgSeek, &data);
+}
+
+}
diff --git a/ndk/platforms/android-20/samples/native-codec/res/drawable/icon.png b/ndk/platforms/android-20/samples/native-codec/res/drawable/icon.png
new file mode 100644
index 0000000..a07c69f
--- /dev/null
+++ b/ndk/platforms/android-20/samples/native-codec/res/drawable/icon.png
Binary files differ
diff --git a/ndk/platforms/android-20/samples/native-codec/res/layout/main.xml b/ndk/platforms/android-20/samples/native-codec/res/layout/main.xml
new file mode 100644
index 0000000..4e94a7b
--- /dev/null
+++ b/ndk/platforms/android-20/samples/native-codec/res/layout/main.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent"
+    >
+    <LinearLayout
+        android:orientation="horizontal"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_margin="8dip"
+        >
+        <TextView
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:text="@string/source_select"
+            />
+        <Spinner
+            android:id="@+id/source_spinner"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:text="@string/source_prompt"
+            />
+    </LinearLayout>
+
+    <LinearLayout
+        android:orientation="horizontal"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_margin="8dip"
+        >
+        <Button
+            android:id="@+id/start_native"
+            android:text="@string/start_native"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            />
+        <Button
+            android:id="@+id/rewind_native"
+            android:text="@string/rewind_native"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            />
+    </LinearLayout>
+
+    <LinearLayout
+        android:orientation="horizontal"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_margin="8dip"
+        >
+        <RadioButton
+            android:id="@+id/radio1"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:padding="10dip"
+        />
+        <SurfaceView
+            android:id="@+id/surfaceview1"
+            android:layout_width="640px"
+            android:layout_height="480px"
+            />
+    </LinearLayout>
+
+    <LinearLayout
+        android:orientation="horizontal"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_margin="8dip"
+        >
+        <RadioButton
+            android:id="@+id/radio2"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:padding="10dip"
+        />
+        <com.example.nativecodec.MyGLSurfaceView
+            android:id="@+id/glsurfaceview1"
+            android:layout_width="640px"
+            android:layout_height="480px"
+            />
+    </LinearLayout>
+
+</LinearLayout>
diff --git a/ndk/platforms/android-20/samples/native-codec/res/values/strings.xml b/ndk/platforms/android-20/samples/native-codec/res/values/strings.xml
new file mode 100644
index 0000000..03169fc
--- /dev/null
+++ b/ndk/platforms/android-20/samples/native-codec/res/values/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <string name="app_name">NativeCodec</string>
+    <string name="start_java">Start/Pause\nJava MediaPlayer</string>
+    <string name="start_native">Start/Pause</string>
+
+    <string name="rewind_native">Rewind</string>
+
+    <string name="source_select">Please select the media source</string>
+    <string name="source_prompt">Media source</string>
+    <string-array name="source_array">
+        <item>/sdcard/testfile.mp4</item>
+    </string-array>
+
+    <string name="sink_select">Please select the video sink</string>
+    <string name="sink_prompt">Video sink</string>
+    <string-array name="sink_array">
+        <item>Surface</item>
+        <item>Texture</item>
+    </string-array>
+
+</resources>
diff --git a/ndk/platforms/android-20/samples/native-codec/src/com/example/nativecodec/MyGLSurfaceView.java b/ndk/platforms/android-20/samples/native-codec/src/com/example/nativecodec/MyGLSurfaceView.java
new file mode 100644
index 0000000..8897feb
--- /dev/null
+++ b/ndk/platforms/android-20/samples/native-codec/src/com/example/nativecodec/MyGLSurfaceView.java
@@ -0,0 +1,354 @@
+/*
+ * 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.
+ */
+
+package com.example.nativecodec;
+
+import android.graphics.SurfaceTexture;
+import android.util.Log;
+
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.nio.FloatBuffer;
+
+import javax.microedition.khronos.egl.EGLConfig;
+import javax.microedition.khronos.opengles.GL10;
+
+import android.content.Context;
+import android.opengl.GLES20;
+import android.opengl.GLSurfaceView;
+import android.opengl.Matrix;
+import android.os.SystemClock;
+import android.util.AttributeSet;
+
+public class MyGLSurfaceView extends GLSurfaceView {
+
+    MyRenderer mRenderer;
+
+    public MyGLSurfaceView(Context context) {
+        this(context, null);
+    }
+
+    public MyGLSurfaceView(Context context, AttributeSet attributeSet) {
+        super(context, attributeSet);
+        init();
+    }
+
+    private void init() {
+        setEGLContextClientVersion(2);
+        mRenderer = new MyRenderer();
+        setRenderer(mRenderer);
+        Log.i("@@@", "setrenderer");
+    }
+
+    @Override
+    public void onPause() {
+        mRenderer.onPause();
+        super.onPause();
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        mRenderer.onResume();
+    }
+
+    public SurfaceTexture getSurfaceTexture() {
+        return mRenderer.getSurfaceTexture();
+    }
+}
+
+class MyRenderer implements GLSurfaceView.Renderer, SurfaceTexture.OnFrameAvailableListener {
+
+    public MyRenderer() {
+        mVertices = ByteBuffer.allocateDirect(mVerticesData.length
+                * FLOAT_SIZE_BYTES).order(ByteOrder.nativeOrder()).asFloatBuffer();
+        mVertices.put(mVerticesData).position(0);
+
+        Matrix.setIdentityM(mSTMatrix, 0);
+    }
+    public void onPause() {
+    }
+
+    public void onResume() {
+        mLastTime = SystemClock.elapsedRealtimeNanos();
+    }
+
+    @Override
+    public void onDrawFrame(GL10 glUnused) {
+        synchronized(this) {
+            if (updateSurface) {
+                mSurface.updateTexImage();
+
+                mSurface.getTransformMatrix(mSTMatrix);
+                updateSurface = false;
+            }
+        }
+
+        // Ignore the passed-in GL10 interface, and use the GLES20
+        // class's static methods instead.
+        GLES20.glClear( GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);
+        GLES20.glUseProgram(mProgram);
+        checkGlError("glUseProgram");
+
+        GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
+        GLES20.glBindTexture(GL_TEXTURE_EXTERNAL_OES, mTextureID);
+
+        mVertices.position(VERTICES_DATA_POS_OFFSET);
+        GLES20.glVertexAttribPointer(maPositionHandle, 3, GLES20.GL_FLOAT, false,
+                VERTICES_DATA_STRIDE_BYTES, mVertices);
+        checkGlError("glVertexAttribPointer maPosition");
+        GLES20.glEnableVertexAttribArray(maPositionHandle);
+        checkGlError("glEnableVertexAttribArray maPositionHandle");
+
+        mVertices.position(VERTICES_DATA_UV_OFFSET);
+        GLES20.glVertexAttribPointer(maTextureHandle, 3, GLES20.GL_FLOAT, false,
+                VERTICES_DATA_STRIDE_BYTES, mVertices);
+        checkGlError("glVertexAttribPointer maTextureHandle");
+        GLES20.glEnableVertexAttribArray(maTextureHandle);
+        checkGlError("glEnableVertexAttribArray maTextureHandle");
+
+        long now = SystemClock.elapsedRealtimeNanos();
+        mRunTime += (now - mLastTime);
+        mLastTime = now;
+        double d = ((double)mRunTime) / 1000000000;
+        Matrix.setIdentityM(mMMatrix, 0);
+        Matrix.rotateM(mMMatrix, 0, 30, (float)Math.sin(d), (float)Math.cos(d), 0);
+        Matrix.multiplyMM(mMVPMatrix, 0, mVMatrix, 0, mMMatrix, 0);
+        Matrix.multiplyMM(mMVPMatrix, 0, mProjMatrix, 0, mMVPMatrix, 0);
+
+        GLES20.glUniformMatrix4fv(muMVPMatrixHandle, 1, false, mMVPMatrix, 0);
+        GLES20.glUniformMatrix4fv(muSTMatrixHandle, 1, false, mSTMatrix, 0);
+
+        GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4);
+        checkGlError("glDrawArrays");
+    }
+
+    @Override
+    public void onSurfaceChanged(GL10 glUnused, int width, int height) {
+        // Ignore the passed-in GL10 interface, and use the GLES20
+        // class's static methods instead.
+        GLES20.glViewport(0, 0, width, height);
+        mRatio = (float) width / height;
+        Matrix.frustumM(mProjMatrix, 0, -mRatio, mRatio, -1, 1, 3, 7);
+    }
+
+    @Override
+    public void onSurfaceCreated(GL10 glUnused, EGLConfig config) {
+        // Ignore the passed-in GL10 interface, and use the GLES20
+        // class's static methods instead.
+
+        /* Set up alpha blending and an Android background color */
+        GLES20.glEnable(GLES20.GL_BLEND);
+        GLES20.glBlendFunc(GLES20.GL_SRC_ALPHA, GLES20.GL_ONE_MINUS_SRC_ALPHA);
+        GLES20.glClearColor(0.643f, 0.776f, 0.223f, 1.0f);
+
+        /* Set up shaders and handles to their variables */
+        mProgram = createProgram(mVertexShader, mFragmentShader);
+        if (mProgram == 0) {
+            return;
+        }
+        maPositionHandle = GLES20.glGetAttribLocation(mProgram, "aPosition");
+        checkGlError("glGetAttribLocation aPosition");
+        if (maPositionHandle == -1) {
+            throw new RuntimeException("Could not get attrib location for aPosition");
+        }
+        maTextureHandle = GLES20.glGetAttribLocation(mProgram, "aTextureCoord");
+        checkGlError("glGetAttribLocation aTextureCoord");
+        if (maTextureHandle == -1) {
+            throw new RuntimeException("Could not get attrib location for aTextureCoord");
+        }
+
+        muMVPMatrixHandle = GLES20.glGetUniformLocation(mProgram, "uMVPMatrix");
+        checkGlError("glGetUniformLocation uMVPMatrix");
+        if (muMVPMatrixHandle == -1) {
+            throw new RuntimeException("Could not get attrib location for uMVPMatrix");
+        }
+
+        muSTMatrixHandle = GLES20.glGetUniformLocation(mProgram, "uSTMatrix");
+        checkGlError("glGetUniformLocation uSTMatrix");
+        if (muMVPMatrixHandle == -1) {
+            throw new RuntimeException("Could not get attrib location for uSTMatrix");
+        }
+
+        checkGlError("glGetUniformLocation uCRatio");
+        if (muMVPMatrixHandle == -1) {
+            throw new RuntimeException("Could not get attrib location for uCRatio");
+        }
+
+        /*
+         * Create our texture. This has to be done each time the
+         * surface is created.
+         */
+
+        int[] textures = new int[1];
+        GLES20.glGenTextures(1, textures, 0);
+
+        mTextureID = textures[0];
+        GLES20.glBindTexture(GL_TEXTURE_EXTERNAL_OES, mTextureID);
+        checkGlError("glBindTexture mTextureID");
+
+        // Can't do mipmapping with camera source
+        GLES20.glTexParameterf(GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MIN_FILTER,
+                GLES20.GL_NEAREST);
+        GLES20.glTexParameterf(GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MAG_FILTER,
+                GLES20.GL_LINEAR);
+        // Clamp to edge is the only option
+        GLES20.glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_WRAP_S,
+                GLES20.GL_CLAMP_TO_EDGE);
+        GLES20.glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_WRAP_T,
+                GLES20.GL_CLAMP_TO_EDGE);
+        checkGlError("glTexParameteri mTextureID");
+
+        /*
+         * Create the SurfaceTexture that will feed this textureID, and pass it to the camera
+         */
+
+        mSurface = new SurfaceTexture(mTextureID);
+        mSurface.setOnFrameAvailableListener(this);
+
+        Matrix.setLookAtM(mVMatrix, 0, 0, 0, 4f, 0f, 0f, 0f, 0f, 1.0f, 0.0f);
+
+        synchronized(this) {
+            updateSurface = false;
+        }
+    }
+
+    @Override
+    synchronized public void onFrameAvailable(SurfaceTexture surface) {
+        /* For simplicity, SurfaceTexture calls here when it has new
+         * data available.  Call may come in from some random thread,
+         * so let's be safe and use synchronize. No OpenGL calls can be done here.
+         */
+        updateSurface = true;
+        //Log.v(TAG, "onFrameAvailable " + surface.getTimestamp());
+    }
+
+    private int loadShader(int shaderType, String source) {
+        int shader = GLES20.glCreateShader(shaderType);
+        if (shader != 0) {
+            GLES20.glShaderSource(shader, source);
+            GLES20.glCompileShader(shader);
+            int[] compiled = new int[1];
+            GLES20.glGetShaderiv(shader, GLES20.GL_COMPILE_STATUS, compiled, 0);
+            if (compiled[0] == 0) {
+                Log.e(TAG, "Could not compile shader " + shaderType + ":");
+                Log.e(TAG, GLES20.glGetShaderInfoLog(shader));
+                GLES20.glDeleteShader(shader);
+                shader = 0;
+            }
+        }
+        return shader;
+    }
+
+    private int createProgram(String vertexSource, String fragmentSource) {
+        int vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, vertexSource);
+        if (vertexShader == 0) {
+            return 0;
+        }
+        int pixelShader = loadShader(GLES20.GL_FRAGMENT_SHADER, fragmentSource);
+        if (pixelShader == 0) {
+            return 0;
+        }
+
+        int program = GLES20.glCreateProgram();
+        if (program != 0) {
+            GLES20.glAttachShader(program, vertexShader);
+            checkGlError("glAttachShader");
+            GLES20.glAttachShader(program, pixelShader);
+            checkGlError("glAttachShader");
+            GLES20.glLinkProgram(program);
+            int[] linkStatus = new int[1];
+            GLES20.glGetProgramiv(program, GLES20.GL_LINK_STATUS, linkStatus, 0);
+            if (linkStatus[0] != GLES20.GL_TRUE) {
+                Log.e(TAG, "Could not link program: ");
+                Log.e(TAG, GLES20.glGetProgramInfoLog(program));
+                GLES20.glDeleteProgram(program);
+                program = 0;
+            }
+        }
+        return program;
+    }
+
+    private void checkGlError(String op) {
+        int error;
+        while ((error = GLES20.glGetError()) != GLES20.GL_NO_ERROR) {
+            Log.e(TAG, op + ": glError " + error);
+            throw new RuntimeException(op + ": glError " + error);
+        }
+    }
+
+    private static final int FLOAT_SIZE_BYTES = 4;
+    private static final int VERTICES_DATA_STRIDE_BYTES = 5 * FLOAT_SIZE_BYTES;
+    private static final int VERTICES_DATA_POS_OFFSET = 0;
+    private static final int VERTICES_DATA_UV_OFFSET = 3;
+    private final float[] mVerticesData = {
+        // X, Y, Z, U, V
+        -1.25f, -1.0f, 0, 0.f, 0.f,
+         1.25f, -1.0f, 0, 1.f, 0.f,
+        -1.25f,  1.0f, 0, 0.f, 1.f,
+         1.25f,  1.0f, 0, 1.f, 1.f,
+    };
+
+    private FloatBuffer mVertices;
+
+    private final String mVertexShader =
+        "uniform mat4 uMVPMatrix;\n" +
+        "uniform mat4 uSTMatrix;\n" +
+        "attribute vec4 aPosition;\n" +
+        "attribute vec4 aTextureCoord;\n" +
+        "varying vec2 vTextureCoord;\n" +
+        "void main() {\n" +
+        "  gl_Position = uMVPMatrix * aPosition;\n" +
+        "  vTextureCoord = (uSTMatrix * aTextureCoord).xy;\n" +
+        "}\n";
+
+    private final String mFragmentShader =
+        "#extension GL_OES_EGL_image_external : require\n" +
+        "precision mediump float;\n" +
+        "varying vec2 vTextureCoord;\n" +
+        "uniform samplerExternalOES sTexture;\n" +
+        "void main() {\n" +
+        "  gl_FragColor = texture2D(sTexture, vTextureCoord);\n" +
+        "}\n";
+
+    private float[] mMVPMatrix = new float[16];
+    private float[] mProjMatrix = new float[16];
+    private float[] mMMatrix = new float[16];
+    private float[] mVMatrix = new float[16];
+    private float[] mSTMatrix = new float[16];
+
+    private int mProgram;
+    private int mTextureID;
+    private int muMVPMatrixHandle;
+    private int muSTMatrixHandle;
+    private int maPositionHandle;
+    private int maTextureHandle;
+
+    private float mRatio = 1.0f;
+    private SurfaceTexture mSurface;
+    private boolean updateSurface = false;
+    private long mLastTime = -1;
+    private long mRunTime = 0;
+
+    private static final String TAG = "MyRenderer";
+
+    // Magic key
+    private static final int GL_TEXTURE_EXTERNAL_OES = 0x8D65;
+
+    public SurfaceTexture getSurfaceTexture() {
+        return mSurface;
+    }
+}
diff --git a/ndk/platforms/android-20/samples/native-codec/src/com/example/nativecodec/NativeCodec.java b/ndk/platforms/android-20/samples/native-codec/src/com/example/nativecodec/NativeCodec.java
new file mode 100644
index 0000000..babd55f
--- /dev/null
+++ b/ndk/platforms/android-20/samples/native-codec/src/com/example/nativecodec/NativeCodec.java
@@ -0,0 +1,319 @@
+/*
+ * 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.
+ */
+
+package com.example.nativecodec;
+
+import android.app.Activity;
+import android.graphics.SurfaceTexture;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.Surface;
+import android.view.SurfaceHolder;
+import android.view.SurfaceView;
+import android.view.View;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
+import android.widget.RadioButton;
+import android.widget.Spinner;
+
+import java.io.IOException;
+
+public class NativeCodec extends Activity {
+    static final String TAG = "NativeCodec";
+
+    String mSourceString = null;
+
+    SurfaceView mSurfaceView1;
+    SurfaceHolder mSurfaceHolder1;
+
+    VideoSink mSelectedVideoSink;
+    VideoSink mNativeCodecPlayerVideoSink;
+
+    SurfaceHolderVideoSink mSurfaceHolder1VideoSink;
+    GLViewVideoSink mGLView1VideoSink;
+
+    boolean mCreated = false;
+    boolean mIsPlaying = false;
+
+    /** Called when the activity is first created. */
+    @Override
+    public void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+        setContentView(R.layout.main);
+
+        mGLView1 = (MyGLSurfaceView) findViewById(R.id.glsurfaceview1);
+
+        // set up the Surface 1 video sink
+        mSurfaceView1 = (SurfaceView) findViewById(R.id.surfaceview1);
+        mSurfaceHolder1 = mSurfaceView1.getHolder();
+
+        mSurfaceHolder1.addCallback(new SurfaceHolder.Callback() {
+
+            @Override
+            public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
+                Log.v(TAG, "surfaceChanged format=" + format + ", width=" + width + ", height="
+                        + height);
+            }
+
+            @Override
+            public void surfaceCreated(SurfaceHolder holder) {
+                Log.v(TAG, "surfaceCreated");
+                if (mRadio1.isChecked()) {
+                    setSurface(holder.getSurface());
+                }
+            }
+
+            @Override
+            public void surfaceDestroyed(SurfaceHolder holder) {
+                Log.v(TAG, "surfaceDestroyed");
+            }
+
+        });
+
+        // initialize content source spinner
+        Spinner sourceSpinner = (Spinner) findViewById(R.id.source_spinner);
+        ArrayAdapter<CharSequence> sourceAdapter = ArrayAdapter.createFromResource(
+                this, R.array.source_array, android.R.layout.simple_spinner_item);
+        sourceAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+        sourceSpinner.setAdapter(sourceAdapter);
+        sourceSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+
+            @Override
+            public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
+                mSourceString = parent.getItemAtPosition(pos).toString();
+                Log.v(TAG, "onItemSelected " + mSourceString);
+            }
+
+            @Override
+            public void onNothingSelected(AdapterView parent) {
+                Log.v(TAG, "onNothingSelected");
+                mSourceString = null;
+            }
+
+        });
+
+        mRadio1 = (RadioButton) findViewById(R.id.radio1);
+        mRadio2 = (RadioButton) findViewById(R.id.radio2);
+
+        OnCheckedChangeListener checklistener = new CompoundButton.OnCheckedChangeListener() {
+
+          @Override
+          public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+              Log.i("@@@@", "oncheckedchanged");
+              if (buttonView == mRadio1 && isChecked) {
+                  mRadio2.setChecked(false);
+              }
+              if (buttonView == mRadio2 && isChecked) {
+                  mRadio1.setChecked(false);
+              }
+              if (isChecked) {
+                  if (mRadio1.isChecked()) {
+                      if (mSurfaceHolder1VideoSink == null) {
+                          mSurfaceHolder1VideoSink = new SurfaceHolderVideoSink(mSurfaceHolder1);
+                      }
+                      mSelectedVideoSink = mSurfaceHolder1VideoSink;
+                      mGLView1.onPause();
+                      Log.i("@@@@", "glview pause");
+                  } else {
+                      mGLView1.onResume();
+                      if (mGLView1VideoSink == null) {
+                          mGLView1VideoSink = new GLViewVideoSink(mGLView1);
+                      }
+                      mSelectedVideoSink = mGLView1VideoSink;
+                  }
+                  switchSurface();
+              }
+          }
+        };
+        mRadio1.setOnCheckedChangeListener(checklistener);
+        mRadio2.setOnCheckedChangeListener(checklistener);
+        mRadio2.toggle();
+
+        // the surfaces themselves are easier targets than the radio buttons
+        mSurfaceView1.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                mRadio1.toggle();
+            }
+        });
+        mGLView1.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                mRadio2.toggle();
+            }
+      });
+
+        // initialize button click handlers
+
+        // native MediaPlayer start/pause
+        ((Button) findViewById(R.id.start_native)).setOnClickListener(new View.OnClickListener() {
+
+            @Override
+            public void onClick(View view) {
+                if (!mCreated) {
+                    if (mNativeCodecPlayerVideoSink == null) {
+                        if (mSelectedVideoSink == null) {
+                            return;
+                        }
+                        mSelectedVideoSink.useAsSinkForNative();
+                        mNativeCodecPlayerVideoSink = mSelectedVideoSink;
+                    }
+                    if (mSourceString != null) {
+                        mCreated = createStreamingMediaPlayer(mSourceString);
+                    }
+                }
+                if (mCreated) {
+                    mIsPlaying = !mIsPlaying;
+                    setPlayingStreamingMediaPlayer(mIsPlaying);
+                }
+            }
+
+        });
+
+
+        // native MediaPlayer rewind
+        ((Button) findViewById(R.id.rewind_native)).setOnClickListener(new View.OnClickListener() {
+
+            @Override
+            public void onClick(View view) {
+                if (mNativeCodecPlayerVideoSink != null) {
+                    rewindStreamingMediaPlayer();
+                }
+            }
+
+        });
+
+    }
+
+    void switchSurface() {
+        if (mCreated && mNativeCodecPlayerVideoSink != mSelectedVideoSink) {
+            // shutdown and recreate on other surface
+          Log.i("@@@", "shutting down player");
+            shutdown();
+            mCreated = false;
+            mSelectedVideoSink.useAsSinkForNative();
+            mNativeCodecPlayerVideoSink = mSelectedVideoSink;
+            if (mSourceString != null) {
+                Log.i("@@@", "recreating player");
+                mCreated = createStreamingMediaPlayer(mSourceString);
+                mIsPlaying = false;
+            }
+        }
+    }
+
+    /** Called when the activity is about to be paused. */
+    @Override
+    protected void onPause()
+    {
+        mIsPlaying = false;
+        setPlayingStreamingMediaPlayer(false);
+        mGLView1.onPause();
+        super.onPause();
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        if (mRadio2.isChecked()) {
+            mGLView1.onResume();
+        }
+    }
+
+    /** Called when the activity is about to be destroyed. */
+    @Override
+    protected void onDestroy()
+    {
+        shutdown();
+        mCreated = false;
+        super.onDestroy();
+    }
+
+    private MyGLSurfaceView mGLView1;
+
+    private RadioButton mRadio1;
+
+    private RadioButton mRadio2;
+
+    /** Native methods, implemented in jni folder */
+    public static native void createEngine();
+    public static native boolean createStreamingMediaPlayer(String filename);
+    public static native void setPlayingStreamingMediaPlayer(boolean isPlaying);
+    public static native void shutdown();
+    public static native void setSurface(Surface surface);
+    public static native void rewindStreamingMediaPlayer();
+
+    /** Load jni .so on initialization */
+    static {
+         System.loadLibrary("native-codec-jni");
+    }
+
+    // VideoSink abstracts out the difference between Surface and SurfaceTexture
+    // aka SurfaceHolder and GLSurfaceView
+    static abstract class VideoSink {
+
+        abstract void setFixedSize(int width, int height);
+        abstract void useAsSinkForNative();
+
+    }
+
+    static class SurfaceHolderVideoSink extends VideoSink {
+
+        private final SurfaceHolder mSurfaceHolder;
+
+        SurfaceHolderVideoSink(SurfaceHolder surfaceHolder) {
+            mSurfaceHolder = surfaceHolder;
+        }
+
+        @Override
+        void setFixedSize(int width, int height) {
+            mSurfaceHolder.setFixedSize(width, height);
+        }
+
+        @Override
+        void useAsSinkForNative() {
+            Surface s = mSurfaceHolder.getSurface();
+            Log.i("@@@", "setting surface " + s);
+            setSurface(s);
+        }
+
+    }
+
+    static class GLViewVideoSink extends VideoSink {
+
+        private final MyGLSurfaceView mMyGLSurfaceView;
+
+        GLViewVideoSink(MyGLSurfaceView myGLSurfaceView) {
+            mMyGLSurfaceView = myGLSurfaceView;
+        }
+
+        @Override
+        void setFixedSize(int width, int height) {
+        }
+
+        @Override
+        void useAsSinkForNative() {
+            SurfaceTexture st = mMyGLSurfaceView.getSurfaceTexture();
+            Surface s = new Surface(st);
+            setSurface(s);
+            s.release();
+        }
+
+    }
+
+}
diff --git a/ndk/platforms/android-20/samples/native-codec/testfile.mp4 b/ndk/platforms/android-20/samples/native-codec/testfile.mp4
new file mode 100644
index 0000000..571ff44
--- /dev/null
+++ b/ndk/platforms/android-20/samples/native-codec/testfile.mp4
Binary files differ
diff --git a/ndk/platforms/android-3/arch-arm/lib/libm_hard.a b/ndk/platforms/android-3/arch-arm/lib/libm_hard.a
index 2ff6e1d..1ab948e 100644
--- a/ndk/platforms/android-3/arch-arm/lib/libm_hard.a
+++ b/ndk/platforms/android-3/arch-arm/lib/libm_hard.a
Binary files differ
diff --git a/ndk/platforms/android-3/include/stdint.h b/ndk/platforms/android-3/include/stdint.h
index 7ae2595..244dd4d 100644
--- a/ndk/platforms/android-3/include/stdint.h
+++ b/ndk/platforms/android-3/include/stdint.h
@@ -251,7 +251,7 @@
 /* size_t is defined by the GCC-specific <stddef.h> */
 #ifndef _SSIZE_T_DEFINED_
 #define _SSIZE_T_DEFINED_
-typedef long int  ssize_t;
+typedef int  ssize_t;
 #endif
 
 #define _BITSIZE 32
diff --git a/ndk/platforms/android-3/include/sys/_wchar_limits.h b/ndk/platforms/android-3/include/sys/_wchar_limits.h
index 644792f..12bc6b1 100644
--- a/ndk/platforms/android-3/include/sys/_wchar_limits.h
+++ b/ndk/platforms/android-3/include/sys/_wchar_limits.h
@@ -86,21 +86,14 @@
 #  else
   /* Otherwise, the value is derived from the toolchain configuration.
    * to avoid putting explicit CPU checks in this header. */
-#    ifndef __WCHAR_MAX__
-#      error "__WCHAR_MAX__ is not defined. Check your toolchain!"
+#    define WCHAR_MAX __WCHAR_MAX__
+
+  /* Clang does not define __WCHAR_MIN__ */
+#    if defined(__WCHAR_UNSIGNED__)
+#      define WCHAR_MIN L'\0'
+#    else
+#      define WCHAR_MIN (-(WCHAR_MAX) - 1)
 #    endif
-  /* Clang does define __WCHAR_MAX__, but not __WCHAR_MIN__ */
-#    ifndef __WCHAR_MIN__
-#      if __WCHAR_MAX__ == 4294967295
-#        define __WCHAR_MIN__  (0U)
-#      elif __WCHAR_MAX__ == 2147483647
-#        define __WCHAR_MIN__  (-2147483647 - 1)
-#      else
-#        error "Invalid __WCHAR_MAX__ value. Check your toolchain!"
-#      endif
-#    endif /* !__WCHAR_MIN__ */
-#    define WCHAR_MIN    __WCHAR_MIN__
-#    define WCHAR_MAX    __WCHAR_MAX__
 #  endif /* !_WCHAR_IS_ALWAYS_SIGNED */
 
 #endif /* !WCHAR_MIN */
diff --git a/ndk/platforms/android-3/include/sys/cdefs.h b/ndk/platforms/android-3/include/sys/cdefs.h
index e840064..10743f6 100644
--- a/ndk/platforms/android-3/include/sys/cdefs.h
+++ b/ndk/platforms/android-3/include/sys/cdefs.h
@@ -545,7 +545,7 @@
                 ^
            a.i:564:6: note: previous declaration is here
  */
-#if defined(__ANDROID__) && !__LP64__ && defined( __arm__)
+#if defined(__ANDROID__) && !defined(__LP64__) && defined( __arm__)
 #define __NDK_FPABI__ __attribute__((pcs("aapcs")))
 #else
 #define __NDK_FPABI__
diff --git a/ndk/platforms/android-3/include/sys/types.h b/ndk/platforms/android-3/include/sys/types.h
index 15ecb37..f7f986c 100644
--- a/ndk/platforms/android-3/include/sys/types.h
+++ b/ndk/platforms/android-3/include/sys/types.h
@@ -87,7 +87,7 @@
 
 #ifndef _SSIZE_T_DEFINED_
 #define _SSIZE_T_DEFINED_
-typedef long int  ssize_t;
+typedef int  ssize_t;
 #endif
 
 typedef __kernel_suseconds_t  suseconds_t;
diff --git a/ndk/platforms/android-4/samples/san-angeles/jni/Application.mk b/ndk/platforms/android-4/samples/san-angeles/jni/Application.mk
new file mode 100644
index 0000000..e619d92
--- /dev/null
+++ b/ndk/platforms/android-4/samples/san-angeles/jni/Application.mk
@@ -0,0 +1 @@
+APP_ABI := all
\ No newline at end of file
diff --git a/ndk/platforms/android-5/samples/hello-gl2/jni/Application.mk b/ndk/platforms/android-5/samples/hello-gl2/jni/Application.mk
new file mode 100644
index 0000000..a252a72
--- /dev/null
+++ b/ndk/platforms/android-5/samples/hello-gl2/jni/Application.mk
@@ -0,0 +1 @@
+APP_ABI := all
diff --git a/ndk/platforms/android-8/samples/bitmap-plasma/jni/Application.mk b/ndk/platforms/android-8/samples/bitmap-plasma/jni/Application.mk
index 8c85307..9c50d46 100644
--- a/ndk/platforms/android-8/samples/bitmap-plasma/jni/Application.mk
+++ b/ndk/platforms/android-8/samples/bitmap-plasma/jni/Application.mk
@@ -1,3 +1,2 @@
-# The ARMv7 is significanly faster due to the use of the hardware FPU
-APP_ABI := armeabi armeabi-v7a
+APP_ABI := all
 APP_PLATFORM := android-8
diff --git a/ndk/platforms/android-8/samples/bitmap-plasma/jni/plasma.c b/ndk/platforms/android-8/samples/bitmap-plasma/jni/plasma.c
index d5f98fb..88f35e6 100644
--- a/ndk/platforms/android-8/samples/bitmap-plasma/jni/plasma.c
+++ b/ndk/platforms/android-8/samples/bitmap-plasma/jni/plasma.c
@@ -215,7 +215,7 @@
         uint16_t*  line_end = line + info->width;
 
         if (line < line_end) {
-            if (((uint32_t)line & 3) != 0) {
+            if (((uint32_t)(uintptr_t)line & 3) != 0) {
                 Fixed ii = base + fixed_sin(xt1) + fixed_sin(xt2);
 
                 xt1 += XT1_INCR;
diff --git a/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib/crtbegin_dynamic.o b/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib/crtbegin_dynamic.o
new file mode 100644
index 0000000..8d2d680
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib/crtbegin_dynamic.o
Binary files differ
diff --git a/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib/crtend_android.o b/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib/crtend_android.o
new file mode 100644
index 0000000..20a1a26
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib/crtend_android.o
Binary files differ
diff --git a/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib/libc.so b/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib/libc.so
new file mode 100755
index 0000000..3e8871d
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib/libc.so
Binary files differ
diff --git a/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib/libdl.so b/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib/libdl.so
new file mode 100755
index 0000000..3c9e279
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib/libdl.so
Binary files differ
diff --git a/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib32/crtbegin_dynamic.o b/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib32/crtbegin_dynamic.o
new file mode 100644
index 0000000..c8951c4
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib32/crtbegin_dynamic.o
Binary files differ
diff --git a/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib32/crtend_android.o b/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib32/crtend_android.o
new file mode 100644
index 0000000..d646968
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib32/crtend_android.o
Binary files differ
diff --git a/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib32/libc.so b/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib32/libc.so
new file mode 100755
index 0000000..9554957
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib32/libc.so
Binary files differ
diff --git a/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib32/libdl.so b/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib32/libdl.so
new file mode 100755
index 0000000..66e219c
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib32/libdl.so
Binary files differ
diff --git a/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib64/crtbegin_dynamic.o b/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib64/crtbegin_dynamic.o
new file mode 100644
index 0000000..da6f081
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib64/crtbegin_dynamic.o
Binary files differ
diff --git a/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib64/crtend_android.o b/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib64/crtend_android.o
new file mode 100644
index 0000000..1211dc6
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib64/crtend_android.o
Binary files differ
diff --git a/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib64/libc.so b/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib64/libc.so
new file mode 100755
index 0000000..1de0b20
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib64/libc.so
Binary files differ
diff --git a/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib64/libdl.so b/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib64/libdl.so
new file mode 100755
index 0000000..86f9fa8
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/lib-bootstrap/lib64/libdl.so
Binary files differ
diff --git a/ndk/platforms/android-9/include/sys/cdefs.h b/ndk/platforms/android-9/include/sys/cdefs.h
index beb35c4..e17e361 100644
--- a/ndk/platforms/android-9/include/sys/cdefs.h
+++ b/ndk/platforms/android-9/include/sys/cdefs.h
@@ -514,7 +514,7 @@
                 ^
            a.i:564:6: note: previous declaration is here
  */
-#if defined(__ANDROID__) && !__LP64__ && defined( __arm__)
+#if defined(__ANDROID__) && !defined(__LP64__) && defined( __arm__)
 #define __NDK_FPABI__ __attribute__((pcs("aapcs")))
 #else
 #define __NDK_FPABI__
diff --git a/ndk/platforms/android-9/samples/native-activity/jni/Application.mk b/ndk/platforms/android-9/samples/native-activity/jni/Application.mk
index 682f11b..a304c8f 100644
--- a/ndk/platforms/android-9/samples/native-activity/jni/Application.mk
+++ b/ndk/platforms/android-9/samples/native-activity/jni/Application.mk
@@ -1 +1,2 @@
+APP_ABI := all
 APP_PLATFORM := android-10
diff --git a/ndk/platforms/android-9/samples/native-audio/jni/Application.mk b/ndk/platforms/android-9/samples/native-audio/jni/Application.mk
new file mode 100644
index 0000000..e619d92
--- /dev/null
+++ b/ndk/platforms/android-9/samples/native-audio/jni/Application.mk
@@ -0,0 +1 @@
+APP_ABI := all
\ No newline at end of file
diff --git a/ndk/platforms/android-9/samples/native-plasma/jni/Application.mk b/ndk/platforms/android-9/samples/native-plasma/jni/Application.mk
index 70bbb62..a304c8f 100644
--- a/ndk/platforms/android-9/samples/native-plasma/jni/Application.mk
+++ b/ndk/platforms/android-9/samples/native-plasma/jni/Application.mk
@@ -1,3 +1,2 @@
-# The ARMv7 is significanly faster due to the use of the hardware FPU
-APP_ABI := armeabi armeabi-v7a
+APP_ABI := all
 APP_PLATFORM := android-10
diff --git a/ndk/platforms/android-9/samples/native-plasma/jni/plasma.c b/ndk/platforms/android-9/samples/native-plasma/jni/plasma.c
index 6175033..50e136d 100644
--- a/ndk/platforms/android-9/samples/native-plasma/jni/plasma.c
+++ b/ndk/platforms/android-9/samples/native-plasma/jni/plasma.c
@@ -224,7 +224,7 @@
         uint16_t*  line_end = line + buffer->width;
 
         if (line < line_end) {
-            if (((uint32_t)line & 3) != 0) {
+            if (((uint32_t)(uintptr_t)line & 3) != 0) {
                 Fixed ii = base + fixed_sin(xt1) + fixed_sin(xt2);
 
                 xt1 += XT1_INCR;
diff --git a/ndk/platforms/android-20/arch-arm/include/asm/a.out.h b/ndk/platforms/android-L/arch-arm/include/asm/a.out.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/asm/a.out.h
rename to ndk/platforms/android-L/arch-arm/include/asm/a.out.h
diff --git a/ndk/platforms/android-20/arch-arm/include/asm/auxvec.h b/ndk/platforms/android-L/arch-arm/include/asm/auxvec.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/asm/auxvec.h
rename to ndk/platforms/android-L/arch-arm/include/asm/auxvec.h
diff --git a/ndk/platforms/android-20/arch-arm/include/asm/bitsperlong.h b/ndk/platforms/android-L/arch-arm/include/asm/bitsperlong.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/asm/bitsperlong.h
rename to ndk/platforms/android-L/arch-arm/include/asm/bitsperlong.h
diff --git a/ndk/platforms/android-20/arch-arm/include/asm/byteorder.h b/ndk/platforms/android-L/arch-arm/include/asm/byteorder.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/asm/byteorder.h
rename to ndk/platforms/android-L/arch-arm/include/asm/byteorder.h
diff --git a/ndk/platforms/android-20/arch-arm/include/asm/errno.h b/ndk/platforms/android-L/arch-arm/include/asm/errno.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/asm/errno.h
rename to ndk/platforms/android-L/arch-arm/include/asm/errno.h
diff --git a/ndk/platforms/android-20/arch-arm/include/asm/fcntl.h b/ndk/platforms/android-L/arch-arm/include/asm/fcntl.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/asm/fcntl.h
rename to ndk/platforms/android-L/arch-arm/include/asm/fcntl.h
diff --git a/ndk/platforms/android-20/arch-arm/include/asm/hwcap.h b/ndk/platforms/android-L/arch-arm/include/asm/hwcap.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/asm/hwcap.h
rename to ndk/platforms/android-L/arch-arm/include/asm/hwcap.h
diff --git a/ndk/platforms/android-20/arch-arm/include/asm/ioctl.h b/ndk/platforms/android-L/arch-arm/include/asm/ioctl.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/asm/ioctl.h
rename to ndk/platforms/android-L/arch-arm/include/asm/ioctl.h
diff --git a/ndk/platforms/android-20/arch-arm/include/asm/ioctls.h b/ndk/platforms/android-L/arch-arm/include/asm/ioctls.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/asm/ioctls.h
rename to ndk/platforms/android-L/arch-arm/include/asm/ioctls.h
diff --git a/ndk/platforms/android-20/arch-arm/include/asm/ipcbuf.h b/ndk/platforms/android-L/arch-arm/include/asm/ipcbuf.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/asm/ipcbuf.h
rename to ndk/platforms/android-L/arch-arm/include/asm/ipcbuf.h
diff --git a/ndk/platforms/android-20/arch-arm/include/asm/kvm.h b/ndk/platforms/android-L/arch-arm/include/asm/kvm.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/asm/kvm.h
rename to ndk/platforms/android-L/arch-arm/include/asm/kvm.h
diff --git a/ndk/platforms/android-20/arch-arm/include/asm/kvm_para.h b/ndk/platforms/android-L/arch-arm/include/asm/kvm_para.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/asm/kvm_para.h
rename to ndk/platforms/android-L/arch-arm/include/asm/kvm_para.h
diff --git a/ndk/platforms/android-20/arch-arm/include/asm/mman.h b/ndk/platforms/android-L/arch-arm/include/asm/mman.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/asm/mman.h
rename to ndk/platforms/android-L/arch-arm/include/asm/mman.h
diff --git a/ndk/platforms/android-20/arch-arm/include/asm/msgbuf.h b/ndk/platforms/android-L/arch-arm/include/asm/msgbuf.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/asm/msgbuf.h
rename to ndk/platforms/android-L/arch-arm/include/asm/msgbuf.h
diff --git a/ndk/platforms/android-20/arch-arm/include/asm/param.h b/ndk/platforms/android-L/arch-arm/include/asm/param.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/asm/param.h
rename to ndk/platforms/android-L/arch-arm/include/asm/param.h
diff --git a/ndk/platforms/android-20/arch-arm/include/asm/poll.h b/ndk/platforms/android-L/arch-arm/include/asm/poll.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/asm/poll.h
rename to ndk/platforms/android-L/arch-arm/include/asm/poll.h
diff --git a/ndk/platforms/android-20/arch-arm/include/asm/posix_types.h b/ndk/platforms/android-L/arch-arm/include/asm/posix_types.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/asm/posix_types.h
rename to ndk/platforms/android-L/arch-arm/include/asm/posix_types.h
diff --git a/ndk/platforms/android-20/arch-arm/include/asm/ptrace.h b/ndk/platforms/android-L/arch-arm/include/asm/ptrace.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/asm/ptrace.h
rename to ndk/platforms/android-L/arch-arm/include/asm/ptrace.h
diff --git a/ndk/platforms/android-20/arch-arm/include/asm/resource.h b/ndk/platforms/android-L/arch-arm/include/asm/resource.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/asm/resource.h
rename to ndk/platforms/android-L/arch-arm/include/asm/resource.h
diff --git a/ndk/platforms/android-20/arch-arm/include/asm/sembuf.h b/ndk/platforms/android-L/arch-arm/include/asm/sembuf.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/asm/sembuf.h
rename to ndk/platforms/android-L/arch-arm/include/asm/sembuf.h
diff --git a/ndk/platforms/android-20/arch-arm/include/asm/setup.h b/ndk/platforms/android-L/arch-arm/include/asm/setup.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/asm/setup.h
rename to ndk/platforms/android-L/arch-arm/include/asm/setup.h
diff --git a/ndk/platforms/android-20/arch-arm/include/asm/shmbuf.h b/ndk/platforms/android-L/arch-arm/include/asm/shmbuf.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/asm/shmbuf.h
rename to ndk/platforms/android-L/arch-arm/include/asm/shmbuf.h
diff --git a/ndk/platforms/android-20/arch-arm/include/asm/sigcontext.h b/ndk/platforms/android-L/arch-arm/include/asm/sigcontext.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/asm/sigcontext.h
rename to ndk/platforms/android-L/arch-arm/include/asm/sigcontext.h
diff --git a/ndk/platforms/android-20/arch-arm/include/asm/siginfo.h b/ndk/platforms/android-L/arch-arm/include/asm/siginfo.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/asm/siginfo.h
rename to ndk/platforms/android-L/arch-arm/include/asm/siginfo.h
diff --git a/ndk/platforms/android-20/arch-arm/include/asm/signal.h b/ndk/platforms/android-L/arch-arm/include/asm/signal.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/asm/signal.h
rename to ndk/platforms/android-L/arch-arm/include/asm/signal.h
diff --git a/ndk/platforms/android-20/arch-arm/include/asm/socket.h b/ndk/platforms/android-L/arch-arm/include/asm/socket.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/asm/socket.h
rename to ndk/platforms/android-L/arch-arm/include/asm/socket.h
diff --git a/ndk/platforms/android-20/arch-arm/include/asm/sockios.h b/ndk/platforms/android-L/arch-arm/include/asm/sockios.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/asm/sockios.h
rename to ndk/platforms/android-L/arch-arm/include/asm/sockios.h
diff --git a/ndk/platforms/android-20/arch-arm/include/asm/stat.h b/ndk/platforms/android-L/arch-arm/include/asm/stat.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/asm/stat.h
rename to ndk/platforms/android-L/arch-arm/include/asm/stat.h
diff --git a/ndk/platforms/android-20/arch-arm/include/asm/statfs.h b/ndk/platforms/android-L/arch-arm/include/asm/statfs.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/asm/statfs.h
rename to ndk/platforms/android-L/arch-arm/include/asm/statfs.h
diff --git a/ndk/platforms/android-20/arch-arm/include/asm/swab.h b/ndk/platforms/android-L/arch-arm/include/asm/swab.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/asm/swab.h
rename to ndk/platforms/android-L/arch-arm/include/asm/swab.h
diff --git a/ndk/platforms/android-20/arch-arm/include/asm/termbits.h b/ndk/platforms/android-L/arch-arm/include/asm/termbits.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/asm/termbits.h
rename to ndk/platforms/android-L/arch-arm/include/asm/termbits.h
diff --git a/ndk/platforms/android-20/arch-arm/include/asm/termios.h b/ndk/platforms/android-L/arch-arm/include/asm/termios.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/asm/termios.h
rename to ndk/platforms/android-L/arch-arm/include/asm/termios.h
diff --git a/ndk/platforms/android-20/arch-arm/include/asm/types.h b/ndk/platforms/android-L/arch-arm/include/asm/types.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/asm/types.h
rename to ndk/platforms/android-L/arch-arm/include/asm/types.h
diff --git a/ndk/platforms/android-20/arch-arm/include/asm/unistd.h b/ndk/platforms/android-L/arch-arm/include/asm/unistd.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/asm/unistd.h
rename to ndk/platforms/android-L/arch-arm/include/asm/unistd.h
diff --git a/ndk/platforms/android-20/arch-arm/include/machine/asm.h b/ndk/platforms/android-L/arch-arm/include/machine/asm.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/machine/asm.h
rename to ndk/platforms/android-L/arch-arm/include/machine/asm.h
diff --git a/ndk/platforms/android-20/arch-arm/include/machine/cpu-features.h b/ndk/platforms/android-L/arch-arm/include/machine/cpu-features.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/machine/cpu-features.h
rename to ndk/platforms/android-L/arch-arm/include/machine/cpu-features.h
diff --git a/ndk/platforms/android-20/arch-arm/include/machine/elf_machdep.h b/ndk/platforms/android-L/arch-arm/include/machine/elf_machdep.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/machine/elf_machdep.h
rename to ndk/platforms/android-L/arch-arm/include/machine/elf_machdep.h
diff --git a/ndk/platforms/android-L/arch-arm/include/machine/endian.h b/ndk/platforms/android-L/arch-arm/include/machine/endian.h
new file mode 100644
index 0000000..f63e7b7
--- /dev/null
+++ b/ndk/platforms/android-L/arch-arm/include/machine/endian.h
@@ -0,0 +1,89 @@
+/*	$OpenBSD: endian.h,v 1.3 2005/12/13 00:35:23 millert Exp $	*/
+
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _ARM_ENDIAN_H_
+#define _ARM_ENDIAN_H_
+
+#ifdef __GNUC__
+
+/*
+ * REV and REV16 weren't available on ARM5 or ARM4.
+ * We don't include <machine/cpu-features.h> because it pollutes the
+ * namespace with macros like PLD.
+ */
+#if !defined __ARM_ARCH_5__ && !defined __ARM_ARCH_5T__ && \
+    !defined __ARM_ARCH_5TE__ && !defined __ARM_ARCH_5TEJ__ && \
+    !defined __ARM_ARCH_4T__ && !defined __ARM_ARCH_4__
+
+/* According to RealView Assembler User's Guide, REV and REV16 are available
+ * in Thumb code and 16-bit instructions when used in Thumb-2 code.
+ *
+ * REV Rd, Rm
+ *   Rd and Rm must both be Lo registers.
+ *
+ * REV16 Rd, Rm
+ *   Rd and Rm must both be Lo registers.
+ *
+ * The +l constraint takes care of this without constraining us in ARM mode.
+ */
+#define __swap16md(x) ({                                        \
+    register u_int16_t _x = (x);                                \
+    __asm__ __volatile__("rev16 %0, %0" : "+l" (_x));           \
+    _x;                                                         \
+})
+
+#define __swap32md(x) ({                                        \
+    register u_int32_t _x = (x);                                \
+    __asm__ __volatile__("rev %0, %0" : "+l" (_x));             \
+    _x;                                                         \
+})
+
+#define __swap64md(x) ({                                        \
+    u_int64_t _swap64md_x = (x);                                \
+    (u_int64_t) __swap32md(_swap64md_x >> 32) |                 \
+        (u_int64_t) __swap32md(_swap64md_x & 0xffffffff) << 32; \
+})
+
+/* Tell sys/endian.h we have MD variants of the swap macros.  */
+#define MD_SWAP
+
+#endif  /* __ARM_ARCH__ */
+#endif  /* __GNUC__ */
+
+#if defined(__ARMEB__)
+#define _BYTE_ORDER _BIG_ENDIAN
+#else
+#define _BYTE_ORDER _LITTLE_ENDIAN
+#endif
+#define __STRICT_ALIGNMENT
+#include <sys/types.h>
+#include <sys/endian.h>
+
+#endif  /* !_ARM_ENDIAN_H_ */
diff --git a/ndk/platforms/android-20/arch-arm/include/machine/exec.h b/ndk/platforms/android-L/arch-arm/include/machine/exec.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/machine/exec.h
rename to ndk/platforms/android-L/arch-arm/include/machine/exec.h
diff --git a/ndk/platforms/android-L/arch-arm/include/machine/fenv.h b/ndk/platforms/android-L/arch-arm/include/machine/fenv.h
new file mode 100644
index 0000000..0e483e3
--- /dev/null
+++ b/ndk/platforms/android-L/arch-arm/include/machine/fenv.h
@@ -0,0 +1,63 @@
+/*-
+ * Copyright (c) 2004-2005 David Schultz <das@FreeBSD.ORG>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD: src/lib/msun/arm/fenv.h,v 1.5 2005/03/16 19:03:45 das Exp $
+ */
+
+/*
+ * Rewritten for Android.
+ *
+ * The ARM FPSCR is described here:
+ * http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0344b/Chdfafia.html
+ */
+
+#ifndef _ARM_FENV_H_
+#define _ARM_FENV_H_
+
+#include <sys/types.h>
+
+__BEGIN_DECLS
+
+typedef __uint32_t fenv_t;
+typedef __uint32_t fexcept_t;
+
+/* Exception flags. */
+#define FE_INVALID    0x01
+#define FE_DIVBYZERO  0x02
+#define FE_OVERFLOW   0x04
+#define FE_UNDERFLOW  0x08
+#define FE_INEXACT    0x10
+#define FE_ALL_EXCEPT (FE_DIVBYZERO | FE_INEXACT | FE_INVALID | \
+                       FE_OVERFLOW | FE_UNDERFLOW)
+
+/* Rounding modes. */
+#define FE_TONEAREST  0x0
+#define FE_UPWARD     0x1
+#define FE_DOWNWARD   0x2
+#define FE_TOWARDZERO 0x3
+
+__END_DECLS
+
+#endif /* !_ARM_FENV_H_ */
diff --git a/ndk/platforms/android-20/arch-arm/include/machine/setjmp.h b/ndk/platforms/android-L/arch-arm/include/machine/setjmp.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/include/machine/setjmp.h
rename to ndk/platforms/android-L/arch-arm/include/machine/setjmp.h
diff --git a/ndk/platforms/android-L/arch-arm/lib/libc.a b/ndk/platforms/android-L/arch-arm/lib/libc.a
new file mode 100644
index 0000000..b05b703
--- /dev/null
+++ b/ndk/platforms/android-L/arch-arm/lib/libc.a
Binary files differ
diff --git a/ndk/platforms/android-L/arch-arm/lib/libm.a b/ndk/platforms/android-L/arch-arm/lib/libm.a
new file mode 100644
index 0000000..e6658b3
--- /dev/null
+++ b/ndk/platforms/android-L/arch-arm/lib/libm.a
Binary files differ
diff --git a/ndk/platforms/android-L/arch-arm/lib/libstdc++.a b/ndk/platforms/android-L/arch-arm/lib/libstdc++.a
new file mode 100644
index 0000000..c166534
--- /dev/null
+++ b/ndk/platforms/android-L/arch-arm/lib/libstdc++.a
Binary files differ
diff --git a/ndk/platforms/android-20/arch-arm/lib/libz.a b/ndk/platforms/android-L/arch-arm/lib/libz.a
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/lib/libz.a
rename to ndk/platforms/android-L/arch-arm/lib/libz.a
Binary files differ
diff --git a/ndk/platforms/android-20/arch-arm/symbols/libOpenMAXAL.so.functions.txt b/ndk/platforms/android-L/arch-arm/symbols/libOpenMAXAL.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/symbols/libOpenMAXAL.so.functions.txt
rename to ndk/platforms/android-L/arch-arm/symbols/libOpenMAXAL.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-arm/symbols/libOpenMAXAL.so.variables.txt b/ndk/platforms/android-L/arch-arm/symbols/libOpenMAXAL.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/symbols/libOpenMAXAL.so.variables.txt
rename to ndk/platforms/android-L/arch-arm/symbols/libOpenMAXAL.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-arm/symbols/libOpenSLES.so.functions.txt b/ndk/platforms/android-L/arch-arm/symbols/libOpenSLES.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/symbols/libOpenSLES.so.functions.txt
rename to ndk/platforms/android-L/arch-arm/symbols/libOpenSLES.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-arm/symbols/libOpenSLES.so.variables.txt b/ndk/platforms/android-L/arch-arm/symbols/libOpenSLES.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/symbols/libOpenSLES.so.variables.txt
rename to ndk/platforms/android-L/arch-arm/symbols/libOpenSLES.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-arm/symbols/libandroid.so.functions.txt b/ndk/platforms/android-L/arch-arm/symbols/libandroid.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/symbols/libandroid.so.functions.txt
rename to ndk/platforms/android-L/arch-arm/symbols/libandroid.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-arm/symbols/libandroid.so.variables.txt b/ndk/platforms/android-L/arch-arm/symbols/libandroid.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/symbols/libandroid.so.variables.txt
rename to ndk/platforms/android-L/arch-arm/symbols/libandroid.so.variables.txt
diff --git a/ndk/platforms/android-L/arch-arm/symbols/libc.so.functions.txt b/ndk/platforms/android-L/arch-arm/symbols/libc.so.functions.txt
new file mode 100644
index 0000000..5c69eb5
--- /dev/null
+++ b/ndk/platforms/android-L/arch-arm/symbols/libc.so.functions.txt
@@ -0,0 +1,1239 @@
+SHA1Final
+SHA1Init
+SHA1Transform
+SHA1Update
+_Exit
+_Unwind_Backtrace
+_Unwind_Complete
+_Unwind_DeleteException
+_Unwind_ForcedUnwind
+_Unwind_GetCFA
+_Unwind_GetDataRelBase
+_Unwind_GetLanguageSpecificData
+_Unwind_GetRegionStart
+_Unwind_GetTextRelBase
+_Unwind_RaiseException
+_Unwind_Resume
+_Unwind_Resume_or_Rethrow
+_Unwind_VRS_Get
+_Unwind_VRS_Pop
+_Unwind_VRS_Set
+_ZdaPv
+_ZdaPvRKSt9nothrow_t
+_ZdlPv
+_ZdlPvRKSt9nothrow_t
+_Znaj
+_ZnajRKSt9nothrow_t
+_Znwj
+_ZnwjRKSt9nothrow_t
+__FD_CLR_chk
+__FD_ISSET_chk
+__FD_SET_chk
+___Unwind_Backtrace
+___Unwind_ForcedUnwind
+___Unwind_RaiseException
+___Unwind_Resume
+___Unwind_Resume_or_Rethrow
+__accept4
+__adddf3
+__addsf3
+__aeabi_atexit
+__aeabi_cdcmpeq
+__aeabi_cdcmple
+__aeabi_cdrcmple
+__aeabi_d2f
+__aeabi_d2iz
+__aeabi_dadd
+__aeabi_dcmpeq
+__aeabi_dcmpge
+__aeabi_dcmpgt
+__aeabi_dcmple
+__aeabi_dcmplt
+__aeabi_dcmpun
+__aeabi_ddiv
+__aeabi_dmul
+__aeabi_drsub
+__aeabi_dsub
+__aeabi_f2d
+__aeabi_f2iz
+__aeabi_f2uiz
+__aeabi_fadd
+__aeabi_fcmpun
+__aeabi_fdiv
+__aeabi_fmul
+__aeabi_frsub
+__aeabi_fsub
+__aeabi_i2d
+__aeabi_i2f
+__aeabi_idiv
+__aeabi_idiv0
+__aeabi_idivmod
+__aeabi_l2d
+__aeabi_l2f
+__aeabi_lasr
+__aeabi_ldiv0
+__aeabi_ldivmod
+__aeabi_llsl
+__aeabi_llsr
+__aeabi_lmul
+__aeabi_memclr
+__aeabi_memclr4
+__aeabi_memclr8
+__aeabi_memcpy
+__aeabi_memcpy4
+__aeabi_memcpy8
+__aeabi_memmove
+__aeabi_memmove4
+__aeabi_memmove8
+__aeabi_memset
+__aeabi_memset4
+__aeabi_memset8
+__aeabi_ui2d
+__aeabi_ui2f
+__aeabi_uidiv
+__aeabi_uidivmod
+__aeabi_ul2d
+__aeabi_ul2f
+__aeabi_uldivmod
+__aeabi_unwind_cpp_pr0
+__aeabi_unwind_cpp_pr1
+__aeabi_unwind_cpp_pr2
+__android_set_abort_message
+__ashldi3
+__ashrdi3
+__assert
+__assert2
+__atomic_cmpxchg
+__atomic_dec
+__atomic_inc
+__atomic_swap
+__b64_ntop
+__b64_pton
+__bionic_name_mem
+__brk
+__cmpdf2
+__connect
+__cxa_atexit
+__cxa_finalize
+__cxa_guard_abort
+__cxa_guard_acquire
+__cxa_guard_release
+__cxa_pure_virtual
+__divdf3
+__divdi3
+__divsf3
+__divsi3
+__dn_comp
+__dn_count_labels
+__dn_skipname
+__epoll_pwait
+__eqdf2
+__errno
+__exit
+__extendsfdf2
+__fcntl64
+__fgets_chk
+__findenv
+__fixdfsi
+__fixsfsi
+__fixunssfsi
+__floatdidf
+__floatdisf
+__floatsidf
+__floatsisf
+__floatundidf
+__floatundisf
+__floatunsidf
+__floatunsisf
+__fp_nquery
+__fp_query
+__fpclassify
+__fpclassifyd
+__fpclassifyf
+__fpclassifyl
+__fstatfs64
+__futex_wait
+__futex_wake
+__gedf2
+__get_h_errno
+__get_tls
+__getcpu
+__getcwd
+__getdents64
+__getpriority
+__gnu_Unwind_Backtrace
+__gnu_Unwind_Find_exidx
+__gnu_Unwind_ForcedUnwind
+__gnu_Unwind_RaiseException
+__gnu_Unwind_Restore_VFP
+__gnu_Unwind_Restore_VFP_D
+__gnu_Unwind_Restore_VFP_D_16_to_31
+__gnu_Unwind_Restore_WMMXC
+__gnu_Unwind_Restore_WMMXD
+__gnu_Unwind_Resume
+__gnu_Unwind_Resume_or_Rethrow
+__gnu_Unwind_Save_VFP
+__gnu_Unwind_Save_VFP_D
+__gnu_Unwind_Save_VFP_D_16_to_31
+__gnu_Unwind_Save_WMMXC
+__gnu_Unwind_Save_WMMXD
+__gnu_ldivmod_helper
+__gnu_uldivmod_helper
+__gnu_unwind_execute
+__gnu_unwind_frame
+__gtdf2
+__hostalias
+__ioctl
+__isfinite
+__isfinitef
+__isfinitel
+__isinf
+__isinff
+__isinfl
+__isnan
+__isnanf
+__isnanl
+__isnormal
+__isnormalf
+__isnormall
+__ledf2
+__libc_current_sigrtmax
+__libc_current_sigrtmin
+__libc_init
+__llseek
+__loc_aton
+__loc_ntoa
+__lshrdi3
+__ltdf2
+__memcpy_chk
+__memmove_chk
+__memset_chk
+__mmap2
+__muldf3
+__muldi3
+__mulsf3
+__nedf2
+__open
+__open_2
+__openat
+__openat_2
+__p_cdname
+__p_cdnname
+__p_class
+__p_fqname
+__p_fqnname
+__p_option
+__p_query
+__p_rcode
+__p_secstodate
+__p_time
+__p_type
+__popcountsi2
+__ppoll
+__pselect6
+__pthread_cleanup_pop
+__pthread_cleanup_push
+__pthread_gettid
+__ptrace
+__putlong
+__putshort
+__read_chk
+__reboot
+__recvfrom_chk
+__res_close
+__res_dnok
+__res_hnok
+__res_hostalias
+__res_isourserver
+__res_mailok
+__res_nameinquery
+__res_nclose
+__res_ninit
+__res_nmkquery
+__res_nquery
+__res_nquerydomain
+__res_nsearch
+__res_nsend
+__res_ownok
+__res_queriesmatch
+__res_querydomain
+__res_randomid
+__res_send
+__res_send_setqhook
+__res_send_setrhook
+__restore_core_regs
+__rt_sigaction
+__rt_sigpending
+__rt_sigprocmask
+__rt_sigsuspend
+__rt_sigtimedwait
+__sched_cpualloc
+__sched_cpucount
+__sched_cpufree
+__sched_getaffinity
+__set_errno
+__set_tid_address
+__set_tls
+__sigaction
+__signalfd4
+__snprintf_chk
+__socket
+__sprintf_chk
+__srefill
+__srget
+__stack_chk_fail
+__statfs64
+__stpcpy_chk
+__stpncpy_chk
+__stpncpy_chk2
+__strcat_chk
+__strchr_chk
+__strcpy_chk
+__strlcat_chk
+__strlcpy_chk
+__strlen_chk
+__strncat_chk
+__strncpy_chk
+__strncpy_chk2
+__strrchr_chk
+__subdf3
+__subsf3
+__swbuf
+__sym_ntop
+__sym_ntos
+__sym_ston
+__system_properties_init
+__system_property_add
+__system_property_area_init
+__system_property_find
+__system_property_find_nth
+__system_property_foreach
+__system_property_get
+__system_property_read
+__system_property_serial
+__system_property_set
+__system_property_set_filename
+__system_property_update
+__system_property_wait_any
+__timer_create
+__timer_delete
+__timer_getoverrun
+__timer_gettime
+__timer_settime
+__truncdfsf2
+__udivdi3
+__udivsi3
+__umask_chk
+__unorddf2
+__unordsf2
+__vsnprintf_chk
+__vsprintf_chk
+__wait4
+__waitid
+_exit
+_getlong
+_getshort
+_longjmp
+_resolv_flush_cache_for_net
+_resolv_set_nameservers_for_net
+_setjmp
+_thread_created_hook
+_tolower
+_toupper
+abort
+abs
+accept
+accept4
+access
+acct
+alarm
+alphasort
+alphasort64
+android_getaddrinfofornet
+android_gethostbyaddrfornet
+android_gethostbynamefornet
+arc4random
+arc4random_addrandom
+arc4random_buf
+arc4random_stir
+arc4random_uniform
+asctime
+asctime64
+asctime64_r
+asctime_r
+asprintf
+at_quick_exit
+atexit
+atof
+atoi
+atol
+atoll
+basename
+basename_r
+bcopy
+bind
+bindresvport
+brk
+bsd_signal
+bsearch
+btowc
+bzero
+c16rtomb
+c32rtomb
+cacheflush
+calloc
+capget
+capset
+cfgetispeed
+cfgetospeed
+cfmakeraw
+cfsetispeed
+cfsetospeed
+cfsetspeed
+chdir
+chmod
+chown
+chroot
+clearenv
+clearerr
+clock
+clock_getres
+clock_gettime
+clock_nanosleep
+clock_settime
+clone
+close
+closedir
+closelog
+closelog_r
+cmsg_nxthdr
+connect
+creat
+creat64
+ctime
+ctime64
+ctime64_r
+ctime_r
+daemon
+delete_module
+difftime
+dirfd
+dirname
+dirname_r
+div
+dlmalloc_inspect_all
+dlmalloc_trim
+dn_expand
+dprintf
+drand48
+dup
+dup2
+dup3
+duplocale
+endmntent
+endpwent
+endservent
+endusershell
+endutent
+epoll_create
+epoll_create1
+epoll_ctl
+epoll_pwait
+epoll_wait
+erand48
+err
+errx
+ether_aton
+ether_aton_r
+ether_ntoa
+ether_ntoa_r
+eventfd
+eventfd_read
+eventfd_write
+execl
+execle
+execlp
+execv
+execve
+execvp
+execvpe
+exit
+faccessat
+fallocate
+fallocate64
+fchdir
+fchmod
+fchmodat
+fchown
+fchownat
+fclose
+fcntl
+fdatasync
+fdopen
+fdopendir
+fdprintf
+feof
+ferror
+fflush
+ffs
+fgetc
+fgetln
+fgetpos
+fgets
+fgetwc
+fgetws
+fgetxattr
+fileno
+flistxattr
+flock
+flockfile
+fnmatch
+fopen
+fork
+fpathconf
+fprintf
+fpurge
+fputc
+fputs
+fputwc
+fputws
+fread
+free
+freeaddrinfo
+freelocale
+fremovexattr
+freopen
+fscanf
+fseek
+fseeko
+fsetpos
+fsetxattr
+fstat
+fstat64
+fstatat
+fstatat64
+fstatfs
+fstatfs64
+fstatvfs
+fstatvfs64
+fsync
+ftell
+ftello
+ftime
+ftok
+ftruncate
+ftruncate64
+ftrylockfile
+fts_children
+fts_close
+fts_open
+fts_read
+fts_set
+ftw
+ftw64
+funlockfile
+funopen
+futimens
+fwide
+fwprintf
+fwrite
+fwscanf
+gai_strerror
+get_malloc_leak_info
+getaddrinfo
+getauxval
+getc
+getc_unlocked
+getchar
+getchar_unlocked
+getcwd
+getdelim
+getdents
+getdtablesize
+getegid
+getenv
+geteuid
+getgid
+getgrgid
+getgrnam
+getgrouplist
+getgroups
+gethostbyaddr
+gethostbyname
+gethostbyname2
+gethostbyname_r
+gethostent
+gethostname
+getitimer
+getline
+getlogin
+getmntent
+getmntent_r
+getnameinfo
+getnetbyaddr
+getnetbyname
+getopt
+getopt_long
+getopt_long_only
+getpagesize
+getpeername
+getpgid
+getpgrp
+getpid
+getppid
+getpriority
+getprogname
+getprotobyname
+getprotobynumber
+getpt
+getpwnam
+getpwnam_r
+getpwuid
+getpwuid_r
+getresgid
+getresuid
+getrlimit
+getrlimit64
+getrusage
+gets
+getservbyname
+getservbyport
+getservent
+getsid
+getsockname
+getsockopt
+gettid
+gettimeofday
+getuid
+getusershell
+getutent
+getwc
+getwchar
+getxattr
+gmtime
+gmtime64
+gmtime64_r
+gmtime_r
+herror
+hstrerror
+htonl
+htons
+if_indextoname
+if_nametoindex
+imaxabs
+imaxdiv
+index
+inet_addr
+inet_aton
+inet_lnaof
+inet_makeaddr
+inet_netof
+inet_network
+inet_ntoa
+inet_ntop
+inet_pton
+init_module
+initgroups
+initstate
+inotify_add_watch
+inotify_init
+inotify_init1
+inotify_rm_watch
+ioctl
+isalnum
+isalpha
+isascii
+isatty
+isblank
+iscntrl
+isdigit
+isfinite
+isfinitef
+isfinitel
+isgraph
+isinf
+isinff
+isinfl
+islower
+isnan
+isnanf
+isnanl
+isnormal
+isnormalf
+isnormall
+isprint
+ispunct
+issetugid
+isspace
+isupper
+iswalnum
+iswalpha
+iswblank
+iswcntrl
+iswctype
+iswdigit
+iswgraph
+iswlower
+iswprint
+iswpunct
+iswspace
+iswupper
+iswxdigit
+isxdigit
+jrand48
+kill
+killpg
+klogctl
+labs
+lchown
+ldexp
+ldiv
+lfind
+lgetxattr
+link
+linkat
+listen
+listxattr
+llabs
+lldiv
+llistxattr
+localeconv
+localtime
+localtime64
+localtime64_r
+localtime_r
+localtime_tz
+longjmp
+lrand48
+lremovexattr
+lsearch
+lseek
+lseek64
+lsetxattr
+lstat
+lstat64
+madvise
+mallinfo
+malloc
+malloc_usable_size
+mbrlen
+mbrtoc16
+mbrtoc32
+mbrtowc
+mbsinit
+mbsnrtowcs
+mbsrtowcs
+mbstowcs
+mbtowc
+memalign
+memccpy
+memchr
+memcmp
+memcpy
+memmem
+memmove
+memrchr
+memset
+memswap
+mincore
+mkdir
+mkdirat
+mkdtemp
+mkfifo
+mknod
+mknodat
+mkstemp
+mkstemp64
+mkstemps
+mktemp
+mktime
+mktime64
+mktime_tz
+mlock
+mlockall
+mmap
+mmap64
+mount
+mprotect
+mrand48
+mremap
+msync
+munlock
+munlockall
+munmap
+nanosleep
+newlocale
+nftw
+nftw64
+nice
+nrand48
+ntohl
+ntohs
+open
+open64
+openat
+openat64
+opendir
+openlog
+openlog_r
+pathconf
+pause
+pclose
+perror
+personality
+pipe
+pipe2
+poll
+popen
+posix_fallocate
+posix_fallocate64
+posix_memalign
+ppoll
+prctl
+pread
+pread64
+printf
+prlimit64
+pselect
+psiginfo
+psignal
+pthread_atfork
+pthread_attr_destroy
+pthread_attr_getdetachstate
+pthread_attr_getguardsize
+pthread_attr_getschedparam
+pthread_attr_getschedpolicy
+pthread_attr_getscope
+pthread_attr_getstack
+pthread_attr_getstackaddr
+pthread_attr_getstacksize
+pthread_attr_init
+pthread_attr_setdetachstate
+pthread_attr_setguardsize
+pthread_attr_setschedparam
+pthread_attr_setschedpolicy
+pthread_attr_setscope
+pthread_attr_setstack
+pthread_attr_setstackaddr
+pthread_attr_setstacksize
+pthread_cond_broadcast
+pthread_cond_destroy
+pthread_cond_init
+pthread_cond_signal
+pthread_cond_timedwait
+pthread_cond_timedwait_monotonic
+pthread_cond_timedwait_monotonic_np
+pthread_cond_timedwait_relative_np
+pthread_cond_timeout_np
+pthread_cond_wait
+pthread_condattr_destroy
+pthread_condattr_getclock
+pthread_condattr_getpshared
+pthread_condattr_init
+pthread_condattr_setclock
+pthread_condattr_setpshared
+pthread_create
+pthread_detach
+pthread_equal
+pthread_exit
+pthread_getattr_np
+pthread_getcpuclockid
+pthread_getschedparam
+pthread_getspecific
+pthread_join
+pthread_key_create
+pthread_key_delete
+pthread_kill
+pthread_mutex_destroy
+pthread_mutex_init
+pthread_mutex_lock
+pthread_mutex_lock_timeout_np
+pthread_mutex_timedlock
+pthread_mutex_trylock
+pthread_mutex_unlock
+pthread_mutexattr_destroy
+pthread_mutexattr_getpshared
+pthread_mutexattr_gettype
+pthread_mutexattr_init
+pthread_mutexattr_setpshared
+pthread_mutexattr_settype
+pthread_once
+pthread_rwlock_destroy
+pthread_rwlock_init
+pthread_rwlock_rdlock
+pthread_rwlock_timedrdlock
+pthread_rwlock_timedwrlock
+pthread_rwlock_tryrdlock
+pthread_rwlock_trywrlock
+pthread_rwlock_unlock
+pthread_rwlock_wrlock
+pthread_rwlockattr_destroy
+pthread_rwlockattr_getpshared
+pthread_rwlockattr_init
+pthread_rwlockattr_setpshared
+pthread_self
+pthread_setname_np
+pthread_setschedparam
+pthread_setspecific
+pthread_sigmask
+ptrace
+ptsname
+ptsname_r
+putc
+putc_unlocked
+putchar
+putchar_unlocked
+putenv
+puts
+pututline
+putw
+putwc
+putwchar
+pvalloc
+pwrite
+pwrite64
+qsort
+quick_exit
+raise
+rand
+rand_r
+random
+read
+readahead
+readdir
+readdir64
+readdir64_r
+readdir_r
+readlink
+readlinkat
+readv
+realloc
+realpath
+reboot
+recv
+recvfrom
+recvmmsg
+recvmsg
+regcomp
+regerror
+regexec
+regfree
+remove
+removexattr
+rename
+renameat
+res_init
+res_mkquery
+res_query
+res_search
+restore_core_regs
+rewind
+rewinddir
+rmdir
+sbrk
+scandir
+scandir64
+scanf
+sched_get_priority_max
+sched_get_priority_min
+sched_getaffinity
+sched_getcpu
+sched_getparam
+sched_getscheduler
+sched_rr_get_interval
+sched_setaffinity
+sched_setparam
+sched_setscheduler
+sched_yield
+seed48
+select
+sem_close
+sem_destroy
+sem_getvalue
+sem_init
+sem_open
+sem_post
+sem_timedwait
+sem_trywait
+sem_unlink
+sem_wait
+send
+sendfile
+sendfile64
+sendmmsg
+sendmsg
+sendto
+setbuf
+setbuffer
+setegid
+setenv
+seteuid
+setgid
+setgroups
+setitimer
+setjmp
+setlinebuf
+setlocale
+setlogmask
+setlogmask_r
+setmntent
+setns
+setpgid
+setpgrp
+setpriority
+setprogname
+setregid
+setresgid
+setresuid
+setreuid
+setrlimit
+setrlimit64
+setservent
+setsid
+setsockopt
+setstate
+settimeofday
+setuid
+setusershell
+setutent
+setvbuf
+setxattr
+shutdown
+sigaction
+sigaddset
+sigaltstack
+sigblock
+sigdelset
+sigemptyset
+sigfillset
+siginterrupt
+sigismember
+siglongjmp
+signal
+signalfd
+sigpending
+sigprocmask
+sigsetjmp
+sigsetmask
+sigsuspend
+sigwait
+sleep
+snprintf
+socket
+socketpair
+sprintf
+srand
+srand48
+srandom
+sscanf
+stat
+stat64
+statfs
+statfs64
+statvfs
+statvfs64
+stpcpy
+stpncpy
+strcasecmp
+strcasestr
+strcat
+strchr
+strcmp
+strcoll
+strcpy
+strcspn
+strdup
+strerror
+strerror_r
+strftime
+strftime_tz
+strlcat
+strlcpy
+strlen
+strncasecmp
+strncat
+strncmp
+strncpy
+strndup
+strnlen
+strntoimax
+strntoumax
+strpbrk
+strptime
+strrchr
+strsep
+strsignal
+strspn
+strstr
+strtod
+strtof
+strtoimax
+strtok
+strtok_r
+strtol
+strtold
+strtoll
+strtoq
+strtotimeval
+strtoul
+strtoull
+strtoumax
+strtouq
+strxfrm
+swapoff
+swapon
+swprintf
+swscanf
+symlink
+symlinkat
+sync
+syscall
+sysconf
+sysinfo
+syslog
+syslog_r
+system
+sysv_signal
+tcdrain
+tcflow
+tcflush
+tcgetattr
+tcgetpgrp
+tcgetsid
+tcsendbreak
+tcsetattr
+tcsetpgrp
+tdelete
+tdestroy
+tempnam
+tfind
+tgkill
+time
+timegm
+timegm64
+timelocal
+timelocal64
+timer_create
+timer_delete
+timer_getoverrun
+timer_gettime
+timer_settime
+timerfd_create
+timerfd_gettime
+timerfd_settime
+times
+tkill
+tmpfile
+tmpnam
+toascii
+tolower
+toupper
+towlower
+towupper
+truncate
+truncate64
+tsearch
+ttyname
+ttyname_r
+tzset
+umask
+umount
+umount2
+uname
+ungetc
+ungetwc
+unlink
+unlinkat
+unlockpt
+unsetenv
+unshare
+uselocale
+usleep
+utime
+utimensat
+utimes
+utmpname
+valloc
+vasprintf
+vdprintf
+verr
+verrx
+vfdprintf
+vfork
+vfprintf
+vfscanf
+vfwprintf
+vfwscanf
+vprintf
+vscanf
+vsnprintf
+vsprintf
+vsscanf
+vswprintf
+vswscanf
+vsyslog
+vsyslog_r
+vwarn
+vwarnx
+vwprintf
+vwscanf
+wait
+wait3
+wait4
+waitid
+waitpid
+warn
+warnx
+wcpcpy
+wcpncpy
+wcrtomb
+wcscasecmp
+wcscat
+wcschr
+wcscmp
+wcscoll
+wcscpy
+wcscspn
+wcsdup
+wcsftime
+wcslcat
+wcslcpy
+wcslen
+wcsncasecmp
+wcsncat
+wcsncmp
+wcsncpy
+wcsnlen
+wcsnrtombs
+wcspbrk
+wcsrchr
+wcsrtombs
+wcsspn
+wcsstr
+wcstod
+wcstof
+wcstoimax
+wcstok
+wcstol
+wcstold
+wcstoll
+wcstombs
+wcstoul
+wcstoull
+wcstoumax
+wcswcs
+wcswidth
+wcsxfrm
+wctob
+wctomb
+wctype
+wcwidth
+wmemchr
+wmemcmp
+wmemcpy
+wmemmove
+wmemset
+wprintf
+write
+writev
+wscanf
diff --git a/ndk/platforms/android-L/arch-arm/symbols/libc.so.variables.txt b/ndk/platforms/android-L/arch-arm/symbols/libc.so.variables.txt
new file mode 100644
index 0000000..fcefcee
--- /dev/null
+++ b/ndk/platforms/android-L/arch-arm/symbols/libc.so.variables.txt
@@ -0,0 +1,32 @@
+_C_ctype_
+_C_tolower_
+_C_toupper_
+_ZSt7nothrow
+__bionic_brk
+__bionic_libgcc_compat_symbols
+__dso_handle
+__isthreaded
+__libc_malloc_dispatch
+__p_class_syms
+__p_type_syms
+__page_shift
+__page_size
+__popcount_tab
+__progname
+__sF
+__stack_chk_guard
+__system_property_area__
+_ctype_
+_tolower_tab_
+_toupper_tab_
+daylight
+environ
+optarg
+opterr
+optind
+optopt
+optreset
+sys_siglist
+sys_signame
+timezone
+tzname
diff --git a/ndk/platforms/android-20/arch-arm/symbols/libdl.so.functions.txt b/ndk/platforms/android-L/arch-arm/symbols/libdl.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/symbols/libdl.so.functions.txt
rename to ndk/platforms/android-L/arch-arm/symbols/libdl.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-arm/symbols/libdl.so.variables.txt b/ndk/platforms/android-L/arch-arm/symbols/libdl.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/symbols/libdl.so.variables.txt
rename to ndk/platforms/android-L/arch-arm/symbols/libdl.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-arm/symbols/libjnigraphics.so.functions.txt b/ndk/platforms/android-L/arch-arm/symbols/libjnigraphics.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/symbols/libjnigraphics.so.functions.txt
rename to ndk/platforms/android-L/arch-arm/symbols/libjnigraphics.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-arm/symbols/libjnigraphics.so.variables.txt b/ndk/platforms/android-L/arch-arm/symbols/libjnigraphics.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/symbols/libjnigraphics.so.variables.txt
rename to ndk/platforms/android-L/arch-arm/symbols/libjnigraphics.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-arm/symbols/liblog.so.functions.txt b/ndk/platforms/android-L/arch-arm/symbols/liblog.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/symbols/liblog.so.functions.txt
rename to ndk/platforms/android-L/arch-arm/symbols/liblog.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-arm/symbols/liblog.so.variables.txt b/ndk/platforms/android-L/arch-arm/symbols/liblog.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/symbols/liblog.so.variables.txt
rename to ndk/platforms/android-L/arch-arm/symbols/liblog.so.variables.txt
diff --git a/ndk/platforms/android-L/arch-arm/symbols/libm.so.functions.txt b/ndk/platforms/android-L/arch-arm/symbols/libm.so.functions.txt
new file mode 100644
index 0000000..3989fcf
--- /dev/null
+++ b/ndk/platforms/android-L/arch-arm/symbols/libm.so.functions.txt
@@ -0,0 +1,245 @@
+__aeabi_cfcmpeq
+__aeabi_cfcmple
+__aeabi_cfrcmple
+__aeabi_d2lz
+__aeabi_d2uiz
+__aeabi_d2ulz
+__aeabi_f2lz
+__aeabi_f2ulz
+__aeabi_fcmpeq
+__aeabi_fcmpge
+__aeabi_fcmpgt
+__aeabi_fcmple
+__aeabi_fcmplt
+__cmpsf2
+__eqsf2
+__fixdfdi
+__fixsfdi
+__fixunsdfdi
+__fixunsdfsi
+__fixunssfdi
+__gesf2
+__gtsf2
+__lesf2
+__ltsf2
+__nesf2
+__signbit
+__signbitf
+__signbitl
+acos
+acosf
+acosh
+acoshf
+acoshl
+acosl
+asin
+asinf
+asinh
+asinhf
+asinhl
+asinl
+atan
+atan2
+atan2f
+atan2l
+atanf
+atanh
+atanhf
+atanhl
+atanl
+cabsl
+cbrt
+cbrtf
+cbrtl
+ceil
+ceilf
+ceill
+copysign
+copysignf
+copysignl
+cos
+cosf
+cosh
+coshf
+coshl
+cosl
+cprojl
+csqrtl
+drem
+dremf
+erf
+erfc
+erfcf
+erfcl
+erff
+erfl
+exp
+exp2
+exp2f
+exp2l
+expf
+expl
+expm1
+expm1f
+expm1l
+fabs
+fabsf
+fabsl
+fdim
+fdimf
+fdiml
+feclearexcept
+fedisableexcept
+feenableexcept
+fegetenv
+fegetexcept
+fegetexceptflag
+fegetround
+feholdexcept
+feraiseexcept
+fesetenv
+fesetexceptflag
+fesetround
+fetestexcept
+feupdateenv
+finite
+finitef
+floor
+floorf
+floorl
+fma
+fmaf
+fmal
+fmax
+fmaxf
+fmaxl
+fmin
+fminf
+fminl
+fmod
+fmodf
+fmodl
+frexp
+frexpf
+frexpl
+gamma
+gamma_r
+gammaf
+gammaf_r
+hypot
+hypotf
+hypotl
+ilogb
+ilogbf
+ilogbl
+j0
+j0f
+j1
+j1f
+jn
+jnf
+ldexpf
+ldexpl
+lgamma
+lgamma_r
+lgammaf
+lgammaf_r
+lgammal
+llrint
+llrintf
+llrintl
+llround
+llroundf
+llroundl
+log
+log10
+log10f
+log10l
+log1p
+log1pf
+log1pl
+log2
+log2f
+log2l
+logb
+logbf
+logbl
+logf
+logl
+lrint
+lrintf
+lrintl
+lround
+lroundf
+lroundl
+modf
+modff
+modfl
+nan
+nanf
+nanl
+nearbyint
+nearbyintf
+nearbyintl
+nextafter
+nextafterf
+nextafterl
+nexttoward
+nexttowardf
+nexttowardl
+pow
+powf
+powl
+remainder
+remainderf
+remainderl
+remquo
+remquof
+remquol
+rint
+rintf
+rintl
+round
+roundf
+roundl
+scalb
+scalbf
+scalbln
+scalblnf
+scalblnl
+scalbn
+scalbnf
+scalbnl
+significand
+significandf
+significandl
+sin
+sincos
+sincosf
+sincosl
+sinf
+sinh
+sinhf
+sinhl
+sinl
+sqrt
+sqrtf
+sqrtl
+tan
+tanf
+tanh
+tanhf
+tanhl
+tanl
+tgamma
+tgammaf
+tgammal
+trunc
+truncf
+truncl
+y0
+y0f
+y1
+y1f
+yn
+ynf
diff --git a/ndk/platforms/android-20/arch-arm/symbols/libm.so.variables.txt b/ndk/platforms/android-L/arch-arm/symbols/libm.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-arm/symbols/libm.so.variables.txt
rename to ndk/platforms/android-L/arch-arm/symbols/libm.so.variables.txt
diff --git a/ndk/platforms/android-L/arch-arm/symbols/libstdc++.so.functions.txt b/ndk/platforms/android-L/arch-arm/symbols/libstdc++.so.functions.txt
new file mode 100644
index 0000000..7e337ad
--- /dev/null
+++ b/ndk/platforms/android-L/arch-arm/symbols/libstdc++.so.functions.txt
@@ -0,0 +1 @@
+__this_library_is_now_part_of_libc
diff --git a/ndk/platforms/android-20/arch-arm/symbols/libdl.so.variables.txt b/ndk/platforms/android-L/arch-arm/symbols/libstdc++.so.variables.txt
similarity index 100%
copy from ndk/platforms/android-20/arch-arm/symbols/libdl.so.variables.txt
copy to ndk/platforms/android-L/arch-arm/symbols/libstdc++.so.variables.txt
diff --git a/ndk/platforms/android-L/arch-arm/symbols/libz.so.functions.txt b/ndk/platforms/android-L/arch-arm/symbols/libz.so.functions.txt
new file mode 100644
index 0000000..4c900ab
--- /dev/null
+++ b/ndk/platforms/android-L/arch-arm/symbols/libz.so.functions.txt
@@ -0,0 +1,130 @@
+_Unwind_Backtrace
+_Unwind_Complete
+_Unwind_DeleteException
+_Unwind_ForcedUnwind
+_Unwind_GetCFA
+_Unwind_GetDataRelBase
+_Unwind_GetLanguageSpecificData
+_Unwind_GetRegionStart
+_Unwind_GetTextRelBase
+_Unwind_RaiseException
+_Unwind_Resume
+_Unwind_Resume_or_Rethrow
+_Unwind_VRS_Get
+_Unwind_VRS_Pop
+_Unwind_VRS_Set
+___Unwind_Backtrace
+___Unwind_ForcedUnwind
+___Unwind_RaiseException
+___Unwind_Resume
+___Unwind_Resume_or_Rethrow
+__aeabi_unwind_cpp_pr0
+__aeabi_unwind_cpp_pr1
+__aeabi_unwind_cpp_pr2
+__gnu_Unwind_Backtrace
+__gnu_Unwind_ForcedUnwind
+__gnu_Unwind_RaiseException
+__gnu_Unwind_Restore_VFP
+__gnu_Unwind_Restore_VFP_D
+__gnu_Unwind_Restore_VFP_D_16_to_31
+__gnu_Unwind_Restore_WMMXC
+__gnu_Unwind_Restore_WMMXD
+__gnu_Unwind_Resume
+__gnu_Unwind_Resume_or_Rethrow
+__gnu_Unwind_Save_VFP
+__gnu_Unwind_Save_VFP_D
+__gnu_Unwind_Save_VFP_D_16_to_31
+__gnu_Unwind_Save_WMMXC
+__gnu_Unwind_Save_WMMXD
+__gnu_unwind_execute
+__gnu_unwind_frame
+__restore_core_regs
+_tr_align
+_tr_flush_bits
+_tr_flush_block
+_tr_init
+_tr_stored_block
+_tr_tally
+adler32
+adler32_combine
+adler32_combine64
+compress
+compress2
+compressBound
+crc32
+crc32_combine
+crc32_combine64
+deflate
+deflateBound
+deflateCopy
+deflateEnd
+deflateInit2_
+deflateInit_
+deflateParams
+deflatePending
+deflatePrime
+deflateReset
+deflateResetKeep
+deflateSetDictionary
+deflateSetHeader
+deflateTune
+get_crc_table
+gz_error
+gzbuffer
+gzclearerr
+gzclose
+gzclose_r
+gzclose_w
+gzdirect
+gzdopen
+gzeof
+gzerror
+gzflush
+gzgetc
+gzgetc_
+gzgets
+gzoffset
+gzoffset64
+gzopen
+gzopen64
+gzprintf
+gzputc
+gzputs
+gzread
+gzrewind
+gzseek
+gzseek64
+gzsetparams
+gztell
+gztell64
+gzungetc
+gzvprintf
+gzwrite
+inflate
+inflateBack
+inflateBackEnd
+inflateBackInit_
+inflateCopy
+inflateEnd
+inflateGetDictionary
+inflateGetHeader
+inflateInit2_
+inflateInit_
+inflateMark
+inflatePrime
+inflateReset
+inflateReset2
+inflateResetKeep
+inflateSetDictionary
+inflateSync
+inflateSyncPoint
+inflateUndermine
+inflate_fast
+inflate_table
+restore_core_regs
+uncompress
+zError
+zcalloc
+zcfree
+zlibCompileFlags
+zlibVersion
diff --git a/ndk/platforms/android-L/arch-arm/symbols/libz.so.variables.txt b/ndk/platforms/android-L/arch-arm/symbols/libz.so.variables.txt
new file mode 100644
index 0000000..c653ee5
--- /dev/null
+++ b/ndk/platforms/android-L/arch-arm/symbols/libz.so.variables.txt
@@ -0,0 +1,5 @@
+_dist_code
+_length_code
+deflate_copyright
+inflate_copyright
+z_errmsg
diff --git a/ndk/platforms/android-20/arch-arm64/include/asm/auxvec.h b/ndk/platforms/android-L/arch-arm64/include/asm/auxvec.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/asm/auxvec.h
rename to ndk/platforms/android-L/arch-arm64/include/asm/auxvec.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/asm/bitsperlong.h b/ndk/platforms/android-L/arch-arm64/include/asm/bitsperlong.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/asm/bitsperlong.h
rename to ndk/platforms/android-L/arch-arm64/include/asm/bitsperlong.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/asm/byteorder.h b/ndk/platforms/android-L/arch-arm64/include/asm/byteorder.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/asm/byteorder.h
rename to ndk/platforms/android-L/arch-arm64/include/asm/byteorder.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/asm/errno.h b/ndk/platforms/android-L/arch-arm64/include/asm/errno.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/asm/errno.h
rename to ndk/platforms/android-L/arch-arm64/include/asm/errno.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/asm/fcntl.h b/ndk/platforms/android-L/arch-arm64/include/asm/fcntl.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/asm/fcntl.h
rename to ndk/platforms/android-L/arch-arm64/include/asm/fcntl.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/asm/hwcap.h b/ndk/platforms/android-L/arch-arm64/include/asm/hwcap.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/asm/hwcap.h
rename to ndk/platforms/android-L/arch-arm64/include/asm/hwcap.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/asm/ioctl.h b/ndk/platforms/android-L/arch-arm64/include/asm/ioctl.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/asm/ioctl.h
rename to ndk/platforms/android-L/arch-arm64/include/asm/ioctl.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/asm/ioctls.h b/ndk/platforms/android-L/arch-arm64/include/asm/ioctls.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/asm/ioctls.h
rename to ndk/platforms/android-L/arch-arm64/include/asm/ioctls.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/asm/ipcbuf.h b/ndk/platforms/android-L/arch-arm64/include/asm/ipcbuf.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/asm/ipcbuf.h
rename to ndk/platforms/android-L/arch-arm64/include/asm/ipcbuf.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/asm/kvm_para.h b/ndk/platforms/android-L/arch-arm64/include/asm/kvm_para.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/asm/kvm_para.h
rename to ndk/platforms/android-L/arch-arm64/include/asm/kvm_para.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/asm/mman.h b/ndk/platforms/android-L/arch-arm64/include/asm/mman.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/asm/mman.h
rename to ndk/platforms/android-L/arch-arm64/include/asm/mman.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/asm/msgbuf.h b/ndk/platforms/android-L/arch-arm64/include/asm/msgbuf.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/asm/msgbuf.h
rename to ndk/platforms/android-L/arch-arm64/include/asm/msgbuf.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/asm/param.h b/ndk/platforms/android-L/arch-arm64/include/asm/param.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/asm/param.h
rename to ndk/platforms/android-L/arch-arm64/include/asm/param.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/asm/poll.h b/ndk/platforms/android-L/arch-arm64/include/asm/poll.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/asm/poll.h
rename to ndk/platforms/android-L/arch-arm64/include/asm/poll.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/asm/posix_types.h b/ndk/platforms/android-L/arch-arm64/include/asm/posix_types.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/asm/posix_types.h
rename to ndk/platforms/android-L/arch-arm64/include/asm/posix_types.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/asm/ptrace.h b/ndk/platforms/android-L/arch-arm64/include/asm/ptrace.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/asm/ptrace.h
rename to ndk/platforms/android-L/arch-arm64/include/asm/ptrace.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/asm/resource.h b/ndk/platforms/android-L/arch-arm64/include/asm/resource.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/asm/resource.h
rename to ndk/platforms/android-L/arch-arm64/include/asm/resource.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/asm/sembuf.h b/ndk/platforms/android-L/arch-arm64/include/asm/sembuf.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/asm/sembuf.h
rename to ndk/platforms/android-L/arch-arm64/include/asm/sembuf.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/asm/setup.h b/ndk/platforms/android-L/arch-arm64/include/asm/setup.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/asm/setup.h
rename to ndk/platforms/android-L/arch-arm64/include/asm/setup.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/asm/shmbuf.h b/ndk/platforms/android-L/arch-arm64/include/asm/shmbuf.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/asm/shmbuf.h
rename to ndk/platforms/android-L/arch-arm64/include/asm/shmbuf.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/asm/sigcontext.h b/ndk/platforms/android-L/arch-arm64/include/asm/sigcontext.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/asm/sigcontext.h
rename to ndk/platforms/android-L/arch-arm64/include/asm/sigcontext.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/asm/siginfo.h b/ndk/platforms/android-L/arch-arm64/include/asm/siginfo.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/asm/siginfo.h
rename to ndk/platforms/android-L/arch-arm64/include/asm/siginfo.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/asm/signal.h b/ndk/platforms/android-L/arch-arm64/include/asm/signal.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/asm/signal.h
rename to ndk/platforms/android-L/arch-arm64/include/asm/signal.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/asm/socket.h b/ndk/platforms/android-L/arch-arm64/include/asm/socket.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/asm/socket.h
rename to ndk/platforms/android-L/arch-arm64/include/asm/socket.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/asm/sockios.h b/ndk/platforms/android-L/arch-arm64/include/asm/sockios.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/asm/sockios.h
rename to ndk/platforms/android-L/arch-arm64/include/asm/sockios.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/asm/stat.h b/ndk/platforms/android-L/arch-arm64/include/asm/stat.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/asm/stat.h
rename to ndk/platforms/android-L/arch-arm64/include/asm/stat.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/asm/statfs.h b/ndk/platforms/android-L/arch-arm64/include/asm/statfs.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/asm/statfs.h
rename to ndk/platforms/android-L/arch-arm64/include/asm/statfs.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/asm/swab.h b/ndk/platforms/android-L/arch-arm64/include/asm/swab.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/asm/swab.h
rename to ndk/platforms/android-L/arch-arm64/include/asm/swab.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/asm/termbits.h b/ndk/platforms/android-L/arch-arm64/include/asm/termbits.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/asm/termbits.h
rename to ndk/platforms/android-L/arch-arm64/include/asm/termbits.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/asm/termios.h b/ndk/platforms/android-L/arch-arm64/include/asm/termios.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/asm/termios.h
rename to ndk/platforms/android-L/arch-arm64/include/asm/termios.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/asm/types.h b/ndk/platforms/android-L/arch-arm64/include/asm/types.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/asm/types.h
rename to ndk/platforms/android-L/arch-arm64/include/asm/types.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/asm/unistd.h b/ndk/platforms/android-L/arch-arm64/include/asm/unistd.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/asm/unistd.h
rename to ndk/platforms/android-L/arch-arm64/include/asm/unistd.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/machine/asm.h b/ndk/platforms/android-L/arch-arm64/include/machine/asm.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/machine/asm.h
rename to ndk/platforms/android-L/arch-arm64/include/machine/asm.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/machine/elf_machdep.h b/ndk/platforms/android-L/arch-arm64/include/machine/elf_machdep.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/machine/elf_machdep.h
rename to ndk/platforms/android-L/arch-arm64/include/machine/elf_machdep.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/machine/endian.h b/ndk/platforms/android-L/arch-arm64/include/machine/endian.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/machine/endian.h
rename to ndk/platforms/android-L/arch-arm64/include/machine/endian.h
diff --git a/ndk/platforms/android-20/arch-arm64/include/machine/exec.h b/ndk/platforms/android-L/arch-arm64/include/machine/exec.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/machine/exec.h
rename to ndk/platforms/android-L/arch-arm64/include/machine/exec.h
diff --git a/ndk/platforms/android-L/arch-arm64/include/machine/fenv.h b/ndk/platforms/android-L/arch-arm64/include/machine/fenv.h
new file mode 100644
index 0000000..a8568b8
--- /dev/null
+++ b/ndk/platforms/android-L/arch-arm64/include/machine/fenv.h
@@ -0,0 +1,102 @@
+/*-
+ * Copyright (c) 2004-2005 David Schultz <das@FreeBSD.ORG>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD: src/lib/msun/arm/fenv.h,v 1.5 2005/03/16 19:03:45 das Exp $
+ */
+
+/*
+ * In ARMv8, AArch64 state, floating-point operation is controlled by:
+ *
+ *  * FPCR - 32Bit Floating-Point Control Register:
+ *      * [31:27] - Reserved, Res0;
+ *      * [26]    - AHP, Alternative half-precision control bit;
+ *      * [25]    - DN, Default NaN mode control bit;
+ *      * [24]    - FZ, Flush-to-zero mode control bit;
+ *      * [23:22] - RMode, Rounding Mode control field:
+ *            * 00  - Round to Nearest (RN) mode;
+ *            * 01  - Round towards Plus Infinity (RP) mode;
+ *            * 10  - Round towards Minus Infinity (RM) mode;
+ *            * 11  - Round towards Zero (RZ) mode.
+ *      * [21:20] - Stride, ignored during AArch64 execution;
+ *      * [19]    - Reserved, Res0;
+ *      * [18:16] - Len, ignored during AArch64 execution;
+ *      * [15]    - IDE, Input Denormal exception trap;
+ *      * [14:13] - Reserved, Res0;
+ *      * [12]    - IXE, Inexact exception trap;
+ *      * [11]    - UFE, Underflow exception trap;
+ *      * [10]    - OFE, Overflow exception trap;
+ *      * [9]     - DZE, Division by Zero exception;
+ *      * [8]     - IOE, Invalid Operation exception;
+ *      * [7:0]   - Reserved, Res0.
+ *
+ *  * FPSR - 32Bit Floating-Point Status Register:
+ *      * [31]    - N, Negative condition flag for AArch32 (AArch64 sets PSTATE.N);
+ *      * [30]    - Z, Zero condition flag for AArch32 (AArch64 sets PSTATE.Z);
+ *      * [29]    - C, Carry conditon flag for AArch32 (AArch64 sets PSTATE.C);
+ *      * [28]    - V, Overflow conditon flag for AArch32 (AArch64 sets PSTATE.V);
+ *      * [27]    - QC, Cumulative saturation bit, Advanced SIMD only;
+ *      * [26:8]  - Reserved, Res0;
+ *      * [7]     - IDC, Input Denormal cumulative exception;
+ *      * [6:5]   - Reserved, Res0;
+ *      * [4]     - IXC, Inexact cumulative exception;
+ *      * [3]     - UFC, Underflow cumulative exception;
+ *      * [2]     - OFC, Overflow cumulative exception;
+ *      * [1]     - DZC, Division by Zero cumulative exception;
+ *      * [0]     - IOC, Invalid Operation cumulative exception.
+ */
+
+#ifndef _ARM64_FENV_H_
+#define _ARM64_FENV_H_
+
+#include <sys/types.h>
+
+__BEGIN_DECLS
+
+typedef struct {
+  __uint32_t __control;     /* FPCR, Floating-point Control Register */
+  __uint32_t __status;      /* FPSR, Floating-point Status Register */
+} fenv_t;
+
+typedef __uint32_t fexcept_t;
+
+/* Exception flags. */
+#define FE_INVALID    0x01
+#define FE_DIVBYZERO  0x02
+#define FE_OVERFLOW   0x04
+#define FE_UNDERFLOW  0x08
+#define FE_INEXACT    0x10
+#define FE_DENORMAL   0x80
+#define FE_ALL_EXCEPT (FE_DIVBYZERO | FE_INEXACT | FE_INVALID | \
+                       FE_OVERFLOW | FE_UNDERFLOW | FE_DENORMAL)
+
+/* Rounding modes. */
+#define FE_TONEAREST  0x0
+#define FE_UPWARD     0x1
+#define FE_DOWNWARD   0x2
+#define FE_TOWARDZERO 0x3
+
+__END_DECLS
+
+#endif /* !_ARM64_FENV_H_ */
diff --git a/ndk/platforms/android-20/arch-arm64/include/machine/setjmp.h b/ndk/platforms/android-L/arch-arm64/include/machine/setjmp.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/include/machine/setjmp.h
rename to ndk/platforms/android-L/arch-arm64/include/machine/setjmp.h
diff --git a/ndk/platforms/android-20/arch-arm64/lib-bootstrap/crtbegin_dynamic.o b/ndk/platforms/android-L/arch-arm64/lib-bootstrap/crtbegin_dynamic.o
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/lib-bootstrap/crtbegin_dynamic.o
rename to ndk/platforms/android-L/arch-arm64/lib-bootstrap/crtbegin_dynamic.o
Binary files differ
diff --git a/ndk/platforms/android-20/arch-arm64/lib-bootstrap/crtend_android.o b/ndk/platforms/android-L/arch-arm64/lib-bootstrap/crtend_android.o
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/lib-bootstrap/crtend_android.o
rename to ndk/platforms/android-L/arch-arm64/lib-bootstrap/crtend_android.o
Binary files differ
diff --git a/ndk/platforms/android-20/arch-arm64/lib-bootstrap/libc.so b/ndk/platforms/android-L/arch-arm64/lib-bootstrap/libc.so
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/lib-bootstrap/libc.so
rename to ndk/platforms/android-L/arch-arm64/lib-bootstrap/libc.so
Binary files differ
diff --git a/ndk/platforms/android-20/arch-arm64/lib-bootstrap/libdl.so b/ndk/platforms/android-L/arch-arm64/lib-bootstrap/libdl.so
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/lib-bootstrap/libdl.so
rename to ndk/platforms/android-L/arch-arm64/lib-bootstrap/libdl.so
Binary files differ
diff --git a/ndk/platforms/android-L/arch-arm64/lib/libc.a b/ndk/platforms/android-L/arch-arm64/lib/libc.a
new file mode 100644
index 0000000..1d2ae12
--- /dev/null
+++ b/ndk/platforms/android-L/arch-arm64/lib/libc.a
Binary files differ
diff --git a/ndk/platforms/android-L/arch-arm64/lib/libm.a b/ndk/platforms/android-L/arch-arm64/lib/libm.a
new file mode 100644
index 0000000..63c94f3
--- /dev/null
+++ b/ndk/platforms/android-L/arch-arm64/lib/libm.a
Binary files differ
diff --git a/ndk/platforms/android-L/arch-arm64/lib/libstdc++.a b/ndk/platforms/android-L/arch-arm64/lib/libstdc++.a
new file mode 100644
index 0000000..e556cfd
--- /dev/null
+++ b/ndk/platforms/android-L/arch-arm64/lib/libstdc++.a
Binary files differ
diff --git a/ndk/platforms/android-L/arch-arm64/lib/libz.a b/ndk/platforms/android-L/arch-arm64/lib/libz.a
new file mode 100644
index 0000000..27aa034
--- /dev/null
+++ b/ndk/platforms/android-L/arch-arm64/lib/libz.a
Binary files differ
diff --git a/ndk/platforms/android-20/arch-arm64/src/atexit.h b/ndk/platforms/android-L/arch-arm64/src/atexit.h
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/src/atexit.h
rename to ndk/platforms/android-L/arch-arm64/src/atexit.h
diff --git a/ndk/platforms/android-20/arch-arm64/src/crtbegin.c b/ndk/platforms/android-L/arch-arm64/src/crtbegin.c
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/src/crtbegin.c
rename to ndk/platforms/android-L/arch-arm64/src/crtbegin.c
diff --git a/ndk/platforms/android-20/arch-arm64/src/crtbegin_so.c b/ndk/platforms/android-L/arch-arm64/src/crtbegin_so.c
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/src/crtbegin_so.c
rename to ndk/platforms/android-L/arch-arm64/src/crtbegin_so.c
diff --git a/ndk/platforms/android-20/arch-arm64/src/crtend.S b/ndk/platforms/android-L/arch-arm64/src/crtend.S
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/src/crtend.S
rename to ndk/platforms/android-L/arch-arm64/src/crtend.S
diff --git a/ndk/platforms/android-20/arch-arm64/src/crtend_so.S b/ndk/platforms/android-L/arch-arm64/src/crtend_so.S
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/src/crtend_so.S
rename to ndk/platforms/android-L/arch-arm64/src/crtend_so.S
diff --git a/ndk/platforms/android-20/arch-arm64/symbols/libEGL.so.functions.txt b/ndk/platforms/android-L/arch-arm64/symbols/libEGL.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/symbols/libEGL.so.functions.txt
rename to ndk/platforms/android-L/arch-arm64/symbols/libEGL.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-arm64/symbols/libEGL.so.variables.txt b/ndk/platforms/android-L/arch-arm64/symbols/libEGL.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/symbols/libEGL.so.variables.txt
rename to ndk/platforms/android-L/arch-arm64/symbols/libEGL.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-arm64/symbols/libGLESv1_CM.so.functions.txt b/ndk/platforms/android-L/arch-arm64/symbols/libGLESv1_CM.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/symbols/libGLESv1_CM.so.functions.txt
rename to ndk/platforms/android-L/arch-arm64/symbols/libGLESv1_CM.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-arm64/symbols/libGLESv1_CM.so.variables.txt b/ndk/platforms/android-L/arch-arm64/symbols/libGLESv1_CM.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/symbols/libGLESv1_CM.so.variables.txt
rename to ndk/platforms/android-L/arch-arm64/symbols/libGLESv1_CM.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-arm64/symbols/libGLESv2.so.functions.txt b/ndk/platforms/android-L/arch-arm64/symbols/libGLESv2.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/symbols/libGLESv2.so.functions.txt
rename to ndk/platforms/android-L/arch-arm64/symbols/libGLESv2.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-arm64/symbols/libGLESv2.so.variables.txt b/ndk/platforms/android-L/arch-arm64/symbols/libGLESv2.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/symbols/libGLESv2.so.variables.txt
rename to ndk/platforms/android-L/arch-arm64/symbols/libGLESv2.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-arm64/symbols/libGLESv3.so.functions.txt b/ndk/platforms/android-L/arch-arm64/symbols/libGLESv3.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/symbols/libGLESv3.so.functions.txt
rename to ndk/platforms/android-L/arch-arm64/symbols/libGLESv3.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-arm64/symbols/libGLESv3.so.variables.txt b/ndk/platforms/android-L/arch-arm64/symbols/libGLESv3.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/symbols/libGLESv3.so.variables.txt
rename to ndk/platforms/android-L/arch-arm64/symbols/libGLESv3.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-arm64/symbols/libOpenMAXAL.so.functions.txt b/ndk/platforms/android-L/arch-arm64/symbols/libOpenMAXAL.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/symbols/libOpenMAXAL.so.functions.txt
rename to ndk/platforms/android-L/arch-arm64/symbols/libOpenMAXAL.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-arm64/symbols/libOpenMAXAL.so.variables.txt b/ndk/platforms/android-L/arch-arm64/symbols/libOpenMAXAL.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/symbols/libOpenMAXAL.so.variables.txt
rename to ndk/platforms/android-L/arch-arm64/symbols/libOpenMAXAL.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-arm64/symbols/libOpenSLES.so.functions.txt b/ndk/platforms/android-L/arch-arm64/symbols/libOpenSLES.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/symbols/libOpenSLES.so.functions.txt
rename to ndk/platforms/android-L/arch-arm64/symbols/libOpenSLES.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-arm64/symbols/libOpenSLES.so.variables.txt b/ndk/platforms/android-L/arch-arm64/symbols/libOpenSLES.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/symbols/libOpenSLES.so.variables.txt
rename to ndk/platforms/android-L/arch-arm64/symbols/libOpenSLES.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-arm64/symbols/libandroid.so.functions.txt b/ndk/platforms/android-L/arch-arm64/symbols/libandroid.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/symbols/libandroid.so.functions.txt
rename to ndk/platforms/android-L/arch-arm64/symbols/libandroid.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-arm64/symbols/libandroid.so.variables.txt b/ndk/platforms/android-L/arch-arm64/symbols/libandroid.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/symbols/libandroid.so.variables.txt
rename to ndk/platforms/android-L/arch-arm64/symbols/libandroid.so.variables.txt
diff --git a/ndk/platforms/android-L/arch-arm64/symbols/libc.so.functions.txt b/ndk/platforms/android-L/arch-arm64/symbols/libc.so.functions.txt
new file mode 100644
index 0000000..3ac1f02
--- /dev/null
+++ b/ndk/platforms/android-L/arch-arm64/symbols/libc.so.functions.txt
@@ -0,0 +1,1034 @@
+SHA1Final
+SHA1Init
+SHA1Transform
+SHA1Update
+_Exit
+_Unwind_Backtrace
+_Unwind_DeleteException
+_Unwind_FindEnclosingFunction
+_Unwind_Find_FDE
+_Unwind_ForcedUnwind
+_Unwind_GetCFA
+_Unwind_GetDataRelBase
+_Unwind_GetGR
+_Unwind_GetIP
+_Unwind_GetIPInfo
+_Unwind_GetLanguageSpecificData
+_Unwind_GetRegionStart
+_Unwind_GetTextRelBase
+_Unwind_RaiseException
+_Unwind_Resume
+_Unwind_Resume_or_Rethrow
+_Unwind_SetGR
+_Unwind_SetIP
+_ZdaPv
+_ZdaPvRKSt9nothrow_t
+_ZdlPv
+_ZdlPvRKSt9nothrow_t
+_Znam
+_ZnamRKSt9nothrow_t
+_Znwm
+_ZnwmRKSt9nothrow_t
+__FD_CLR_chk
+__FD_ISSET_chk
+__FD_SET_chk
+__android_set_abort_message
+__assert
+__assert2
+__b64_ntop
+__b64_pton
+__bionic_name_mem
+__cxa_atexit
+__cxa_finalize
+__cxa_guard_abort
+__cxa_guard_acquire
+__cxa_guard_release
+__cxa_pure_virtual
+__deregister_frame
+__deregister_frame_info
+__deregister_frame_info_bases
+__dn_comp
+__dn_count_labels
+__dn_skipname
+__errno
+__fgets_chk
+__findenv
+__fp_nquery
+__fp_query
+__fpclassify
+__fpclassifyd
+__fpclassifyf
+__fpclassifyl
+__frame_state_for
+__get_h_errno
+__hostalias
+__isfinite
+__isfinitef
+__isfinitel
+__isinf
+__isinff
+__isinfl
+__isnan
+__isnanf
+__isnanl
+__isnormal
+__isnormalf
+__isnormall
+__libc_current_sigrtmax
+__libc_current_sigrtmin
+__libc_init
+__loc_aton
+__loc_ntoa
+__memcpy_chk
+__memmove_chk
+__memset_chk
+__multf3
+__open_2
+__openat_2
+__p_cdname
+__p_cdnname
+__p_class
+__p_fqname
+__p_fqnname
+__p_option
+__p_query
+__p_rcode
+__p_secstodate
+__p_time
+__p_type
+__popcountdi2
+__pthread_cleanup_pop
+__pthread_cleanup_push
+__pthread_gettid
+__putlong
+__putshort
+__read_chk
+__recvfrom_chk
+__register_frame
+__register_frame_info
+__register_frame_info_bases
+__register_frame_info_table
+__register_frame_info_table_bases
+__register_frame_table
+__res_close
+__res_dnok
+__res_hnok
+__res_hostalias
+__res_isourserver
+__res_mailok
+__res_nameinquery
+__res_nclose
+__res_ninit
+__res_nmkquery
+__res_nquery
+__res_nquerydomain
+__res_nsearch
+__res_nsend
+__res_ownok
+__res_queriesmatch
+__res_querydomain
+__res_randomid
+__res_send
+__res_send_setqhook
+__res_send_setrhook
+__sched_cpualloc
+__sched_cpucount
+__sched_cpufree
+__sfp_handle_exceptions
+__snprintf_chk
+__sprintf_chk
+__srefill
+__stack_chk_fail
+__stpcpy_chk
+__stpncpy_chk
+__stpncpy_chk2
+__strcat_chk
+__strchr_chk
+__strcpy_chk
+__strlcat_chk
+__strlcpy_chk
+__strlen_chk
+__strncat_chk
+__strncpy_chk
+__strncpy_chk2
+__strrchr_chk
+__sym_ntop
+__sym_ntos
+__sym_ston
+__system_properties_init
+__system_property_add
+__system_property_area_init
+__system_property_find
+__system_property_find_nth
+__system_property_foreach
+__system_property_get
+__system_property_read
+__system_property_serial
+__system_property_set
+__system_property_set_filename
+__system_property_update
+__system_property_wait_any
+__umask_chk
+__vsnprintf_chk
+__vsprintf_chk
+_exit
+_getlong
+_getshort
+_longjmp
+_resolv_flush_cache_for_net
+_resolv_set_nameservers_for_net
+_setjmp
+_thread_created_hook
+_tolower
+_toupper
+abort
+abs
+accept
+accept4
+access
+acct
+alarm
+alphasort
+alphasort64
+android_getaddrinfofornet
+android_gethostbyaddrfornet
+android_gethostbynamefornet
+arc4random
+arc4random_addrandom
+arc4random_buf
+arc4random_stir
+arc4random_uniform
+asctime
+asctime_r
+asprintf
+at_quick_exit
+atof
+atoi
+atol
+atoll
+basename
+basename_r
+bind
+bindresvport
+brk
+bsearch
+btowc
+c16rtomb
+c32rtomb
+calloc
+capget
+capset
+cfgetispeed
+cfgetospeed
+cfmakeraw
+cfsetispeed
+cfsetospeed
+cfsetspeed
+chdir
+chmod
+chown
+chroot
+clearenv
+clearerr
+clock
+clock_getres
+clock_gettime
+clock_nanosleep
+clock_settime
+clone
+close
+closedir
+closelog
+cmsg_nxthdr
+connect
+creat
+creat64
+ctime
+ctime_r
+daemon
+delete_module
+difftime
+dirfd
+dirname
+dirname_r
+div
+dlmalloc_inspect_all
+dlmalloc_trim
+dn_expand
+dprintf
+drand48
+dup
+dup2
+dup3
+duplocale
+endmntent
+endpwent
+endservent
+endusershell
+endutent
+epoll_create
+epoll_create1
+epoll_ctl
+epoll_pwait
+epoll_wait
+erand48
+err
+errx
+ether_aton
+ether_aton_r
+ether_ntoa
+ether_ntoa_r
+eventfd
+eventfd_read
+eventfd_write
+execl
+execle
+execlp
+execv
+execve
+execvp
+execvpe
+exit
+faccessat
+fallocate
+fallocate64
+fchdir
+fchmod
+fchmodat
+fchown
+fchownat
+fclose
+fcntl
+fdatasync
+fdopen
+fdopendir
+feof
+ferror
+fflush
+ffs
+fgetc
+fgetln
+fgetpos
+fgets
+fgetwc
+fgetws
+fgetxattr
+fileno
+flistxattr
+flock
+flockfile
+fnmatch
+fopen
+fork
+fpathconf
+fprintf
+fpurge
+fputc
+fputs
+fputwc
+fputws
+fread
+free
+freeaddrinfo
+freelocale
+fremovexattr
+freopen
+fscanf
+fseek
+fseeko
+fsetpos
+fsetxattr
+fstat
+fstat64
+fstatat
+fstatat64
+fstatfs
+fstatfs64
+fstatvfs
+fstatvfs64
+fsync
+ftell
+ftello
+ftok
+ftruncate
+ftruncate64
+ftrylockfile
+fts_children
+fts_close
+fts_open
+fts_read
+fts_set
+ftw
+ftw64
+funlockfile
+funopen
+futimens
+fwide
+fwprintf
+fwrite
+fwscanf
+gai_strerror
+get_malloc_leak_info
+getaddrinfo
+getauxval
+getc
+getc_unlocked
+getchar
+getchar_unlocked
+getcwd
+getdelim
+getegid
+getenv
+geteuid
+getgid
+getgrgid
+getgrnam
+getgrouplist
+getgroups
+gethostbyaddr
+gethostbyname
+gethostbyname2
+gethostbyname_r
+gethostent
+gethostname
+getitimer
+getline
+getlogin
+getmntent
+getmntent_r
+getnameinfo
+getnetbyaddr
+getnetbyname
+getopt
+getopt_long
+getopt_long_only
+getpagesize
+getpeername
+getpgid
+getpgrp
+getpid
+getppid
+getpriority
+getprogname
+getprotobyname
+getprotobynumber
+getpt
+getpwnam
+getpwnam_r
+getpwuid
+getpwuid_r
+getresgid
+getresuid
+getrlimit
+getrlimit64
+getrusage
+gets
+getservbyname
+getservbyport
+getservent
+getsid
+getsockname
+getsockopt
+gettid
+gettimeofday
+getuid
+getusershell
+getutent
+getwc
+getwchar
+getxattr
+gmtime
+gmtime_r
+herror
+hstrerror
+htonl
+htons
+if_indextoname
+if_nametoindex
+imaxabs
+imaxdiv
+inet_addr
+inet_aton
+inet_lnaof
+inet_makeaddr
+inet_netof
+inet_network
+inet_ntoa
+inet_ntop
+inet_pton
+init_module
+initgroups
+initstate
+inotify_add_watch
+inotify_init
+inotify_init1
+inotify_rm_watch
+ioctl
+isalnum
+isalpha
+isascii
+isatty
+isblank
+iscntrl
+isdigit
+isfinite
+isfinitef
+isfinitel
+isgraph
+isinf
+isinff
+isinfl
+islower
+isnan
+isnanf
+isnanl
+isnormal
+isnormalf
+isnormall
+isprint
+ispunct
+isspace
+isupper
+iswalnum
+iswalpha
+iswblank
+iswcntrl
+iswctype
+iswdigit
+iswgraph
+iswlower
+iswprint
+iswpunct
+iswspace
+iswupper
+iswxdigit
+isxdigit
+jrand48
+kill
+killpg
+klogctl
+labs
+lchown
+ldexp
+ldiv
+lfind
+lgetxattr
+link
+linkat
+listen
+listxattr
+llabs
+lldiv
+llistxattr
+localeconv
+localtime
+localtime_r
+localtime_tz
+longjmp
+lrand48
+lremovexattr
+lsearch
+lseek
+lseek64
+lsetxattr
+lstat
+lstat64
+madvise
+mallinfo
+malloc
+malloc_usable_size
+mbrlen
+mbrtoc16
+mbrtoc32
+mbrtowc
+mbsinit
+mbsnrtowcs
+mbsrtowcs
+mbstowcs
+mbtowc
+memalign
+memccpy
+memchr
+memcmp
+memcpy
+memmem
+memmove
+memrchr
+memset
+mincore
+mkdir
+mkdirat
+mkdtemp
+mkfifo
+mknod
+mknodat
+mkstemp
+mkstemp64
+mkstemps
+mktemp
+mktime
+mktime_tz
+mlock
+mlockall
+mmap
+mmap64
+mount
+mprotect
+mrand48
+mremap
+msync
+munlock
+munlockall
+munmap
+nanosleep
+newlocale
+nftw
+nftw64
+nice
+nrand48
+ntohl
+ntohs
+open
+open64
+openat
+openat64
+opendir
+openlog
+pathconf
+pause
+pclose
+perror
+personality
+pipe
+pipe2
+poll
+popen
+posix_fallocate
+posix_fallocate64
+posix_memalign
+ppoll
+prctl
+pread
+pread64
+printf
+prlimit
+prlimit64
+pselect
+psiginfo
+psignal
+pthread_atfork
+pthread_attr_destroy
+pthread_attr_getdetachstate
+pthread_attr_getguardsize
+pthread_attr_getschedparam
+pthread_attr_getschedpolicy
+pthread_attr_getscope
+pthread_attr_getstack
+pthread_attr_getstacksize
+pthread_attr_init
+pthread_attr_setdetachstate
+pthread_attr_setguardsize
+pthread_attr_setschedparam
+pthread_attr_setschedpolicy
+pthread_attr_setscope
+pthread_attr_setstack
+pthread_attr_setstacksize
+pthread_cond_broadcast
+pthread_cond_destroy
+pthread_cond_init
+pthread_cond_signal
+pthread_cond_timedwait
+pthread_cond_wait
+pthread_condattr_destroy
+pthread_condattr_getclock
+pthread_condattr_getpshared
+pthread_condattr_init
+pthread_condattr_setclock
+pthread_condattr_setpshared
+pthread_create
+pthread_detach
+pthread_equal
+pthread_exit
+pthread_getattr_np
+pthread_getcpuclockid
+pthread_getschedparam
+pthread_getspecific
+pthread_join
+pthread_key_create
+pthread_key_delete
+pthread_kill
+pthread_mutex_destroy
+pthread_mutex_init
+pthread_mutex_lock
+pthread_mutex_timedlock
+pthread_mutex_trylock
+pthread_mutex_unlock
+pthread_mutexattr_destroy
+pthread_mutexattr_getpshared
+pthread_mutexattr_gettype
+pthread_mutexattr_init
+pthread_mutexattr_setpshared
+pthread_mutexattr_settype
+pthread_once
+pthread_rwlock_destroy
+pthread_rwlock_init
+pthread_rwlock_rdlock
+pthread_rwlock_timedrdlock
+pthread_rwlock_timedwrlock
+pthread_rwlock_tryrdlock
+pthread_rwlock_trywrlock
+pthread_rwlock_unlock
+pthread_rwlock_wrlock
+pthread_rwlockattr_destroy
+pthread_rwlockattr_getpshared
+pthread_rwlockattr_init
+pthread_rwlockattr_setpshared
+pthread_self
+pthread_setname_np
+pthread_setschedparam
+pthread_setspecific
+pthread_sigmask
+ptrace
+ptsname
+ptsname_r
+putc
+putc_unlocked
+putchar
+putchar_unlocked
+putenv
+puts
+pututline
+putwc
+putwchar
+pwrite
+pwrite64
+qsort
+quick_exit
+raise
+rand
+rand_r
+random
+read
+readahead
+readdir
+readdir64
+readdir64_r
+readdir_r
+readlink
+readlinkat
+readv
+realloc
+realpath
+reboot
+recv
+recvfrom
+recvmmsg
+recvmsg
+regcomp
+regerror
+regexec
+regfree
+remove
+removexattr
+rename
+renameat
+res_init
+res_mkquery
+res_query
+res_search
+rewind
+rewinddir
+rmdir
+sbrk
+scandir
+scandir64
+scanf
+sched_get_priority_max
+sched_get_priority_min
+sched_getaffinity
+sched_getcpu
+sched_getparam
+sched_getscheduler
+sched_rr_get_interval
+sched_setaffinity
+sched_setparam
+sched_setscheduler
+sched_yield
+seed48
+select
+sem_close
+sem_destroy
+sem_getvalue
+sem_init
+sem_open
+sem_post
+sem_timedwait
+sem_trywait
+sem_unlink
+sem_wait
+send
+sendfile
+sendfile64
+sendmmsg
+sendmsg
+sendto
+setbuf
+setbuffer
+setegid
+setenv
+seteuid
+setgid
+setgroups
+setitimer
+setjmp
+setlinebuf
+setlocale
+setlogmask
+setmntent
+setns
+setpgid
+setpgrp
+setpriority
+setprogname
+setregid
+setresgid
+setresuid
+setreuid
+setrlimit
+setrlimit64
+setservent
+setsid
+setsockopt
+setstate
+settimeofday
+setuid
+setusershell
+setutent
+setvbuf
+setxattr
+shutdown
+sigaction
+sigaddset
+sigaltstack
+sigblock
+sigdelset
+sigemptyset
+sigfillset
+siginterrupt
+sigismember
+siglongjmp
+signal
+signalfd
+sigpending
+sigprocmask
+sigsetjmp
+sigsetmask
+sigsuspend
+sigwait
+sleep
+snprintf
+socket
+socketpair
+sprintf
+srand
+srand48
+srandom
+sscanf
+stat
+stat64
+statfs
+statfs64
+statvfs
+statvfs64
+stpcpy
+stpncpy
+strcasecmp
+strcasestr
+strcat
+strchr
+strcmp
+strcoll
+strcpy
+strcspn
+strdup
+strerror
+strerror_r
+strftime
+strftime_tz
+strlcat
+strlcpy
+strlen
+strncasecmp
+strncat
+strncmp
+strncpy
+strndup
+strnlen
+strpbrk
+strptime
+strrchr
+strsep
+strsignal
+strspn
+strstr
+strtod
+strtof
+strtoimax
+strtok
+strtok_r
+strtol
+strtold
+strtoll
+strtoq
+strtoul
+strtoull
+strtoumax
+strtouq
+strxfrm
+swapoff
+swapon
+swprintf
+swscanf
+symlink
+symlinkat
+sync
+syscall
+sysconf
+sysinfo
+syslog
+system
+tcdrain
+tcflow
+tcflush
+tcgetattr
+tcgetpgrp
+tcgetsid
+tcsendbreak
+tcsetattr
+tcsetpgrp
+tdelete
+tdestroy
+tempnam
+tfind
+tgkill
+time
+timegm
+timelocal
+timer_create
+timer_delete
+timer_getoverrun
+timer_gettime
+timer_settime
+timerfd_create
+timerfd_gettime
+timerfd_settime
+times
+tmpfile
+tmpnam
+toascii
+tolower
+toupper
+towlower
+towupper
+truncate
+truncate64
+tsearch
+ttyname
+ttyname_r
+tzset
+umask
+umount
+umount2
+uname
+ungetc
+ungetwc
+unlink
+unlinkat
+unlockpt
+unsetenv
+unshare
+uselocale
+usleep
+utime
+utimensat
+utimes
+utmpname
+vasprintf
+vdprintf
+verr
+verrx
+vfork
+vfprintf
+vfscanf
+vfwprintf
+vfwscanf
+vprintf
+vscanf
+vsnprintf
+vsprintf
+vsscanf
+vswprintf
+vswscanf
+vsyslog
+vwarn
+vwarnx
+vwprintf
+vwscanf
+wait
+wait4
+waitid
+waitpid
+warn
+warnx
+wcpcpy
+wcpncpy
+wcrtomb
+wcscasecmp
+wcscat
+wcschr
+wcscmp
+wcscoll
+wcscpy
+wcscspn
+wcsdup
+wcsftime
+wcslcat
+wcslcpy
+wcslen
+wcsncasecmp
+wcsncat
+wcsncmp
+wcsncpy
+wcsnlen
+wcsnrtombs
+wcspbrk
+wcsrchr
+wcsrtombs
+wcsspn
+wcsstr
+wcstod
+wcstof
+wcstoimax
+wcstok
+wcstol
+wcstold
+wcstoll
+wcstombs
+wcstoul
+wcstoull
+wcstoumax
+wcswidth
+wcsxfrm
+wctob
+wctomb
+wctype
+wcwidth
+wmemchr
+wmemcmp
+wmemcpy
+wmemmove
+wmemset
+wprintf
+write
+writev
+wscanf
diff --git a/ndk/platforms/android-L/arch-arm64/symbols/libc.so.variables.txt b/ndk/platforms/android-L/arch-arm64/symbols/libc.so.variables.txt
new file mode 100644
index 0000000..8115363
--- /dev/null
+++ b/ndk/platforms/android-L/arch-arm64/symbols/libc.so.variables.txt
@@ -0,0 +1,26 @@
+_C_ctype_
+_C_tolower_
+_C_toupper_
+_ZSt7nothrow
+__isthreaded
+__libc_malloc_dispatch
+__p_class_syms
+__p_type_syms
+__progname
+__sF
+__stack_chk_guard
+__system_property_area__
+_ctype_
+_tolower_tab_
+_toupper_tab_
+daylight
+environ
+optarg
+opterr
+optind
+optopt
+optreset
+sys_siglist
+sys_signame
+timezone
+tzname
diff --git a/ndk/platforms/android-20/arch-arm64/symbols/libdl.so.functions.txt b/ndk/platforms/android-L/arch-arm64/symbols/libdl.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/symbols/libdl.so.functions.txt
rename to ndk/platforms/android-L/arch-arm64/symbols/libdl.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-arm64/symbols/libdl.so.variables.txt b/ndk/platforms/android-L/arch-arm64/symbols/libdl.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/symbols/libdl.so.variables.txt
rename to ndk/platforms/android-L/arch-arm64/symbols/libdl.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-arm64/symbols/libjnigraphics.so.functions.txt b/ndk/platforms/android-L/arch-arm64/symbols/libjnigraphics.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/symbols/libjnigraphics.so.functions.txt
rename to ndk/platforms/android-L/arch-arm64/symbols/libjnigraphics.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-arm64/symbols/libjnigraphics.so.variables.txt b/ndk/platforms/android-L/arch-arm64/symbols/libjnigraphics.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/symbols/libjnigraphics.so.variables.txt
rename to ndk/platforms/android-L/arch-arm64/symbols/libjnigraphics.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-arm64/symbols/liblog.so.functions.txt b/ndk/platforms/android-L/arch-arm64/symbols/liblog.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/symbols/liblog.so.functions.txt
rename to ndk/platforms/android-L/arch-arm64/symbols/liblog.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-arm64/symbols/liblog.so.variables.txt b/ndk/platforms/android-L/arch-arm64/symbols/liblog.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-arm64/symbols/liblog.so.variables.txt
rename to ndk/platforms/android-L/arch-arm64/symbols/liblog.so.variables.txt
diff --git a/ndk/platforms/android-L/arch-arm64/symbols/libm.so.functions.txt b/ndk/platforms/android-L/arch-arm64/symbols/libm.so.functions.txt
new file mode 100644
index 0000000..82e7a57
--- /dev/null
+++ b/ndk/platforms/android-L/arch-arm64/symbols/libm.so.functions.txt
@@ -0,0 +1,233 @@
+__addtf3
+__divtf3
+__eqtf2
+__extenddftf2
+__extendsftf2
+__fixtfdi
+__fixtfsi
+__floatsitf
+__getf2
+__gttf2
+__letf2
+__lttf2
+__netf2
+__signbit
+__signbitf
+__signbitl
+__subtf3
+__trunctfdf2
+__trunctfsf2
+acos
+acosf
+acosh
+acoshf
+acoshl
+acosl
+asin
+asinf
+asinh
+asinhf
+asinhl
+asinl
+atan
+atan2
+atan2f
+atan2l
+atanf
+atanh
+atanhf
+atanhl
+atanl
+cbrt
+cbrtf
+cbrtl
+ceil
+ceilf
+ceill
+copysign
+copysignf
+copysignl
+cos
+cosf
+cosh
+coshf
+coshl
+cosl
+drem
+dremf
+erf
+erfc
+erfcf
+erfcl
+erff
+erfl
+exp
+exp2
+exp2f
+exp2l
+expf
+expl
+expm1
+expm1f
+expm1l
+fabs
+fabsf
+fabsl
+fdim
+fdimf
+fdiml
+feclearexcept
+fedisableexcept
+feenableexcept
+fegetenv
+fegetexcept
+fegetexceptflag
+fegetround
+feholdexcept
+feraiseexcept
+fesetenv
+fesetexceptflag
+fesetround
+fetestexcept
+feupdateenv
+finite
+finitef
+floor
+floorf
+floorl
+fma
+fmaf
+fmal
+fmax
+fmaxf
+fmaxl
+fmin
+fminf
+fminl
+fmod
+fmodf
+fmodl
+frexp
+frexpf
+frexpl
+gamma
+gamma_r
+gammaf
+gammaf_r
+hypot
+hypotf
+hypotl
+ilogb
+ilogbf
+ilogbl
+j0
+j0f
+j1
+j1f
+jn
+jnf
+ldexpf
+ldexpl
+lgamma
+lgamma_r
+lgammaf
+lgammaf_r
+lgammal
+llrint
+llrintf
+llrintl
+llround
+llroundf
+llroundl
+log
+log10
+log10f
+log10l
+log1p
+log1pf
+log1pl
+log2
+log2f
+log2l
+logb
+logbf
+logbl
+logf
+logl
+lrint
+lrintf
+lrintl
+lround
+lroundf
+lroundl
+modf
+modff
+modfl
+nan
+nanf
+nanl
+nearbyint
+nearbyintf
+nearbyintl
+nextafter
+nextafterf
+nextafterl
+nexttoward
+nexttowardf
+nexttowardl
+pow
+powf
+powl
+remainder
+remainderf
+remainderl
+remquo
+remquof
+remquol
+rint
+rintf
+rintl
+round
+roundf
+roundl
+scalb
+scalbf
+scalbln
+scalblnf
+scalblnl
+scalbn
+scalbnf
+scalbnl
+significand
+significandf
+significandl
+sin
+sincos
+sincosf
+sincosl
+sinf
+sinh
+sinhf
+sinhl
+sinl
+sqrt
+sqrtf
+sqrtl
+tan
+tanf
+tanh
+tanhf
+tanhl
+tanl
+tgamma
+tgammaf
+tgammal
+trunc
+truncf
+truncl
+y0
+y0f
+y1
+y1f
+yn
+ynf
diff --git a/ndk/platforms/android-20/arch-arm/symbols/libm.so.variables.txt b/ndk/platforms/android-L/arch-arm64/symbols/libm.so.variables.txt
similarity index 100%
copy from ndk/platforms/android-20/arch-arm/symbols/libm.so.variables.txt
copy to ndk/platforms/android-L/arch-arm64/symbols/libm.so.variables.txt
diff --git a/ndk/platforms/android-L/arch-arm64/symbols/libstdc++.so.functions.txt b/ndk/platforms/android-L/arch-arm64/symbols/libstdc++.so.functions.txt
new file mode 100644
index 0000000..7e337ad
--- /dev/null
+++ b/ndk/platforms/android-L/arch-arm64/symbols/libstdc++.so.functions.txt
@@ -0,0 +1 @@
+__this_library_is_now_part_of_libc
diff --git a/ndk/platforms/android-20/arch-arm64/symbols/libEGL.so.variables.txt b/ndk/platforms/android-L/arch-arm64/symbols/libstdc++.so.variables.txt
similarity index 100%
copy from ndk/platforms/android-20/arch-arm64/symbols/libEGL.so.variables.txt
copy to ndk/platforms/android-L/arch-arm64/symbols/libstdc++.so.variables.txt
diff --git a/ndk/platforms/android-L/arch-arm64/symbols/libz.so.functions.txt b/ndk/platforms/android-L/arch-arm64/symbols/libz.so.functions.txt
new file mode 100644
index 0000000..bbd634e
--- /dev/null
+++ b/ndk/platforms/android-L/arch-arm64/symbols/libz.so.functions.txt
@@ -0,0 +1,88 @@
+_tr_align
+_tr_flush_bits
+_tr_flush_block
+_tr_init
+_tr_stored_block
+_tr_tally
+adler32
+adler32_combine
+adler32_combine64
+compress
+compress2
+compressBound
+crc32
+crc32_combine
+crc32_combine64
+deflate
+deflateBound
+deflateCopy
+deflateEnd
+deflateInit2_
+deflateInit_
+deflateParams
+deflatePending
+deflatePrime
+deflateReset
+deflateResetKeep
+deflateSetDictionary
+deflateSetHeader
+deflateTune
+get_crc_table
+gz_error
+gzbuffer
+gzclearerr
+gzclose
+gzclose_r
+gzclose_w
+gzdirect
+gzdopen
+gzeof
+gzerror
+gzflush
+gzgetc
+gzgetc_
+gzgets
+gzoffset
+gzoffset64
+gzopen
+gzopen64
+gzprintf
+gzputc
+gzputs
+gzread
+gzrewind
+gzseek
+gzseek64
+gzsetparams
+gztell
+gztell64
+gzungetc
+gzvprintf
+gzwrite
+inflate
+inflateBack
+inflateBackEnd
+inflateBackInit_
+inflateCopy
+inflateEnd
+inflateGetDictionary
+inflateGetHeader
+inflateInit2_
+inflateInit_
+inflateMark
+inflatePrime
+inflateReset
+inflateReset2
+inflateResetKeep
+inflateSetDictionary
+inflateSync
+inflateSyncPoint
+inflateUndermine
+inflate_fast
+inflate_table
+uncompress
+zError
+zcalloc
+zcfree
+zlibCompileFlags
+zlibVersion
diff --git a/ndk/platforms/android-L/arch-arm64/symbols/libz.so.variables.txt b/ndk/platforms/android-L/arch-arm64/symbols/libz.so.variables.txt
new file mode 100644
index 0000000..c653ee5
--- /dev/null
+++ b/ndk/platforms/android-L/arch-arm64/symbols/libz.so.variables.txt
@@ -0,0 +1,5 @@
+_dist_code
+_length_code
+deflate_copyright
+inflate_copyright
+z_errmsg
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/auxvec.h b/ndk/platforms/android-L/arch-mips/include/asm/auxvec.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/auxvec.h
rename to ndk/platforms/android-L/arch-mips/include/asm/auxvec.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/bitsperlong.h b/ndk/platforms/android-L/arch-mips/include/asm/bitsperlong.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/bitsperlong.h
rename to ndk/platforms/android-L/arch-mips/include/asm/bitsperlong.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/break.h b/ndk/platforms/android-L/arch-mips/include/asm/break.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/break.h
rename to ndk/platforms/android-L/arch-mips/include/asm/break.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/byteorder.h b/ndk/platforms/android-L/arch-mips/include/asm/byteorder.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/byteorder.h
rename to ndk/platforms/android-L/arch-mips/include/asm/byteorder.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/cachectl.h b/ndk/platforms/android-L/arch-mips/include/asm/cachectl.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/cachectl.h
rename to ndk/platforms/android-L/arch-mips/include/asm/cachectl.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/errno.h b/ndk/platforms/android-L/arch-mips/include/asm/errno.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/errno.h
rename to ndk/platforms/android-L/arch-mips/include/asm/errno.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/fcntl.h b/ndk/platforms/android-L/arch-mips/include/asm/fcntl.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/fcntl.h
rename to ndk/platforms/android-L/arch-mips/include/asm/fcntl.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/inst.h b/ndk/platforms/android-L/arch-mips/include/asm/inst.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/inst.h
rename to ndk/platforms/android-L/arch-mips/include/asm/inst.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/ioctl.h b/ndk/platforms/android-L/arch-mips/include/asm/ioctl.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/ioctl.h
rename to ndk/platforms/android-L/arch-mips/include/asm/ioctl.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/ioctls.h b/ndk/platforms/android-L/arch-mips/include/asm/ioctls.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/ioctls.h
rename to ndk/platforms/android-L/arch-mips/include/asm/ioctls.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/ipcbuf.h b/ndk/platforms/android-L/arch-mips/include/asm/ipcbuf.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/ipcbuf.h
rename to ndk/platforms/android-L/arch-mips/include/asm/ipcbuf.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/kvm.h b/ndk/platforms/android-L/arch-mips/include/asm/kvm.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/kvm.h
rename to ndk/platforms/android-L/arch-mips/include/asm/kvm.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/kvm_para.h b/ndk/platforms/android-L/arch-mips/include/asm/kvm_para.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/kvm_para.h
rename to ndk/platforms/android-L/arch-mips/include/asm/kvm_para.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/mman.h b/ndk/platforms/android-L/arch-mips/include/asm/mman.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/mman.h
rename to ndk/platforms/android-L/arch-mips/include/asm/mman.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/msgbuf.h b/ndk/platforms/android-L/arch-mips/include/asm/msgbuf.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/msgbuf.h
rename to ndk/platforms/android-L/arch-mips/include/asm/msgbuf.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/param.h b/ndk/platforms/android-L/arch-mips/include/asm/param.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/param.h
rename to ndk/platforms/android-L/arch-mips/include/asm/param.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/poll.h b/ndk/platforms/android-L/arch-mips/include/asm/poll.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/poll.h
rename to ndk/platforms/android-L/arch-mips/include/asm/poll.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/posix_types.h b/ndk/platforms/android-L/arch-mips/include/asm/posix_types.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/posix_types.h
rename to ndk/platforms/android-L/arch-mips/include/asm/posix_types.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/ptrace.h b/ndk/platforms/android-L/arch-mips/include/asm/ptrace.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/ptrace.h
rename to ndk/platforms/android-L/arch-mips/include/asm/ptrace.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/resource.h b/ndk/platforms/android-L/arch-mips/include/asm/resource.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/resource.h
rename to ndk/platforms/android-L/arch-mips/include/asm/resource.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/sembuf.h b/ndk/platforms/android-L/arch-mips/include/asm/sembuf.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/sembuf.h
rename to ndk/platforms/android-L/arch-mips/include/asm/sembuf.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/setup.h b/ndk/platforms/android-L/arch-mips/include/asm/setup.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/setup.h
rename to ndk/platforms/android-L/arch-mips/include/asm/setup.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/sgidefs.h b/ndk/platforms/android-L/arch-mips/include/asm/sgidefs.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/sgidefs.h
rename to ndk/platforms/android-L/arch-mips/include/asm/sgidefs.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/shmbuf.h b/ndk/platforms/android-L/arch-mips/include/asm/shmbuf.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/shmbuf.h
rename to ndk/platforms/android-L/arch-mips/include/asm/shmbuf.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/sigcontext.h b/ndk/platforms/android-L/arch-mips/include/asm/sigcontext.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/sigcontext.h
rename to ndk/platforms/android-L/arch-mips/include/asm/sigcontext.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/siginfo.h b/ndk/platforms/android-L/arch-mips/include/asm/siginfo.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/siginfo.h
rename to ndk/platforms/android-L/arch-mips/include/asm/siginfo.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/signal.h b/ndk/platforms/android-L/arch-mips/include/asm/signal.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/signal.h
rename to ndk/platforms/android-L/arch-mips/include/asm/signal.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/socket.h b/ndk/platforms/android-L/arch-mips/include/asm/socket.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/socket.h
rename to ndk/platforms/android-L/arch-mips/include/asm/socket.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/sockios.h b/ndk/platforms/android-L/arch-mips/include/asm/sockios.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/sockios.h
rename to ndk/platforms/android-L/arch-mips/include/asm/sockios.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/stat.h b/ndk/platforms/android-L/arch-mips/include/asm/stat.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/stat.h
rename to ndk/platforms/android-L/arch-mips/include/asm/stat.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/statfs.h b/ndk/platforms/android-L/arch-mips/include/asm/statfs.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/statfs.h
rename to ndk/platforms/android-L/arch-mips/include/asm/statfs.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/swab.h b/ndk/platforms/android-L/arch-mips/include/asm/swab.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/swab.h
rename to ndk/platforms/android-L/arch-mips/include/asm/swab.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/sysmips.h b/ndk/platforms/android-L/arch-mips/include/asm/sysmips.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/sysmips.h
rename to ndk/platforms/android-L/arch-mips/include/asm/sysmips.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/termbits.h b/ndk/platforms/android-L/arch-mips/include/asm/termbits.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/termbits.h
rename to ndk/platforms/android-L/arch-mips/include/asm/termbits.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/termios.h b/ndk/platforms/android-L/arch-mips/include/asm/termios.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/termios.h
rename to ndk/platforms/android-L/arch-mips/include/asm/termios.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/types.h b/ndk/platforms/android-L/arch-mips/include/asm/types.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/types.h
rename to ndk/platforms/android-L/arch-mips/include/asm/types.h
diff --git a/ndk/platforms/android-20/arch-mips/include/asm/unistd.h b/ndk/platforms/android-L/arch-mips/include/asm/unistd.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/asm/unistd.h
rename to ndk/platforms/android-L/arch-mips/include/asm/unistd.h
diff --git a/ndk/platforms/android-20/arch-mips/include/machine/asm.h b/ndk/platforms/android-L/arch-mips/include/machine/asm.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/machine/asm.h
rename to ndk/platforms/android-L/arch-mips/include/machine/asm.h
diff --git a/ndk/platforms/android-20/arch-mips/include/machine/elf_machdep.h b/ndk/platforms/android-L/arch-mips/include/machine/elf_machdep.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/machine/elf_machdep.h
rename to ndk/platforms/android-L/arch-mips/include/machine/elf_machdep.h
diff --git a/ndk/platforms/android-20/arch-mips/include/machine/endian.h b/ndk/platforms/android-L/arch-mips/include/machine/endian.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/machine/endian.h
rename to ndk/platforms/android-L/arch-mips/include/machine/endian.h
diff --git a/ndk/platforms/android-20/arch-mips/include/machine/exec.h b/ndk/platforms/android-L/arch-mips/include/machine/exec.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/machine/exec.h
rename to ndk/platforms/android-L/arch-mips/include/machine/exec.h
diff --git a/ndk/platforms/android-L/arch-mips/include/machine/fenv.h b/ndk/platforms/android-L/arch-mips/include/machine/fenv.h
new file mode 100644
index 0000000..689e1cb
--- /dev/null
+++ b/ndk/platforms/android-L/arch-mips/include/machine/fenv.h
@@ -0,0 +1,98 @@
+/*-
+ * Copyright (c) 2004-2005 David Schultz <das@FreeBSD.ORG>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD: src/lib/msun/arm/fenv.h,v 1.5 2005/03/16 19:03:45 das Exp $
+ */
+
+/*
+   Rewritten for Android.
+*/
+
+/* MIPS FPU floating point control register bits.
+ *
+ * 31-25  -> floating point conditions code bits set by FP compare
+ *           instructions
+ * 24     -> flush denormalized results to zero instead of
+ *           causing unimplemented operation exception.
+ * 23     -> Condition bit
+ * 22     -> In conjunction with FS detects denormalized
+ *           operands and replaces them internally with 0.
+ * 21     -> In conjunction with FS forces denormalized operands
+ *           to the closest normalized value.
+ * 20-18  -> reserved (read as 0, write with 0)
+ * 17     -> cause bit for unimplemented operation
+ * 16     -> cause bit for invalid exception
+ * 15     -> cause bit for division by zero exception
+ * 14     -> cause bit for overflow exception
+ * 13     -> cause bit for underflow exception
+ * 12     -> cause bit for inexact exception
+ * 11     -> enable exception for invalid exception
+ * 10     -> enable exception for division by zero exception
+ *  9     -> enable exception for overflow exception
+ *  8     -> enable exception for underflow exception
+ *  7     -> enable exception for inexact exception
+ *  6     -> flag invalid exception
+ *  5     -> flag division by zero exception
+ *  4     -> flag overflow exception
+ *  3     -> flag underflow exception
+ *  2     -> flag inexact exception
+ *  1-0   -> rounding control
+ *
+ *
+ * Rounding Control:
+ * 00 - rounding to nearest (RN)
+ * 01 - rounding toward zero (RZ)
+ * 10 - rounding (up) toward plus infinity (RP)
+ * 11 - rounding (down)toward minus infinity (RM)
+ */
+
+#ifndef _MIPS_FENV_H_
+#define _MIPS_FENV_H_
+
+#include <sys/types.h>
+
+__BEGIN_DECLS
+
+typedef __uint32_t fenv_t;
+typedef __uint32_t fexcept_t;
+
+/* Exception flags */
+#define FE_INVALID    0x40
+#define FE_DIVBYZERO  0x20
+#define FE_OVERFLOW   0x10
+#define FE_UNDERFLOW  0x08
+#define FE_INEXACT    0x04
+#define FE_ALL_EXCEPT (FE_DIVBYZERO | FE_INEXACT | \
+                       FE_INVALID | FE_OVERFLOW | FE_UNDERFLOW)
+
+/* Rounding modes */
+#define FE_TONEAREST  0x0000
+#define FE_TOWARDZERO 0x0001
+#define FE_UPWARD     0x0002
+#define FE_DOWNWARD   0x0003
+
+__END_DECLS
+
+#endif /* !_MIPS_FENV_H_ */
diff --git a/ndk/platforms/android-20/arch-mips/include/machine/regdef.h b/ndk/platforms/android-L/arch-mips/include/machine/regdef.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/machine/regdef.h
rename to ndk/platforms/android-L/arch-mips/include/machine/regdef.h
diff --git a/ndk/platforms/android-20/arch-mips/include/machine/regnum.h b/ndk/platforms/android-L/arch-mips/include/machine/regnum.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/machine/regnum.h
rename to ndk/platforms/android-L/arch-mips/include/machine/regnum.h
diff --git a/ndk/platforms/android-20/arch-mips/include/machine/setjmp.h b/ndk/platforms/android-L/arch-mips/include/machine/setjmp.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/machine/setjmp.h
rename to ndk/platforms/android-L/arch-mips/include/machine/setjmp.h
diff --git a/ndk/platforms/android-20/arch-mips/include/machine/signal.h b/ndk/platforms/android-L/arch-mips/include/machine/signal.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/include/machine/signal.h
rename to ndk/platforms/android-L/arch-mips/include/machine/signal.h
diff --git a/ndk/platforms/android-L/arch-mips/lib/libc.a b/ndk/platforms/android-L/arch-mips/lib/libc.a
new file mode 100644
index 0000000..fa74c92
--- /dev/null
+++ b/ndk/platforms/android-L/arch-mips/lib/libc.a
Binary files differ
diff --git a/ndk/platforms/android-L/arch-mips/lib/libm.a b/ndk/platforms/android-L/arch-mips/lib/libm.a
new file mode 100644
index 0000000..bd6fe98
--- /dev/null
+++ b/ndk/platforms/android-L/arch-mips/lib/libm.a
Binary files differ
diff --git a/ndk/platforms/android-L/arch-mips/lib/libstdc++.a b/ndk/platforms/android-L/arch-mips/lib/libstdc++.a
new file mode 100644
index 0000000..b9d7450
--- /dev/null
+++ b/ndk/platforms/android-L/arch-mips/lib/libstdc++.a
Binary files differ
diff --git a/ndk/platforms/android-L/arch-mips/lib/libz.a b/ndk/platforms/android-L/arch-mips/lib/libz.a
new file mode 100644
index 0000000..19ecf3f
--- /dev/null
+++ b/ndk/platforms/android-L/arch-mips/lib/libz.a
Binary files differ
diff --git a/ndk/platforms/android-20/arch-mips/symbols/libOpenMAXAL.so.functions.txt b/ndk/platforms/android-L/arch-mips/symbols/libOpenMAXAL.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/symbols/libOpenMAXAL.so.functions.txt
rename to ndk/platforms/android-L/arch-mips/symbols/libOpenMAXAL.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-mips/symbols/libOpenMAXAL.so.variables.txt b/ndk/platforms/android-L/arch-mips/symbols/libOpenMAXAL.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/symbols/libOpenMAXAL.so.variables.txt
rename to ndk/platforms/android-L/arch-mips/symbols/libOpenMAXAL.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-mips/symbols/libOpenSLES.so.functions.txt b/ndk/platforms/android-L/arch-mips/symbols/libOpenSLES.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/symbols/libOpenSLES.so.functions.txt
rename to ndk/platforms/android-L/arch-mips/symbols/libOpenSLES.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-mips/symbols/libOpenSLES.so.variables.txt b/ndk/platforms/android-L/arch-mips/symbols/libOpenSLES.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/symbols/libOpenSLES.so.variables.txt
rename to ndk/platforms/android-L/arch-mips/symbols/libOpenSLES.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-mips/symbols/libandroid.so.functions.txt b/ndk/platforms/android-L/arch-mips/symbols/libandroid.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/symbols/libandroid.so.functions.txt
rename to ndk/platforms/android-L/arch-mips/symbols/libandroid.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-mips/symbols/libandroid.so.variables.txt b/ndk/platforms/android-L/arch-mips/symbols/libandroid.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/symbols/libandroid.so.variables.txt
rename to ndk/platforms/android-L/arch-mips/symbols/libandroid.so.variables.txt
diff --git a/ndk/platforms/android-L/arch-mips/symbols/libc.so.functions.txt b/ndk/platforms/android-L/arch-mips/symbols/libc.so.functions.txt
new file mode 100644
index 0000000..61e1429
--- /dev/null
+++ b/ndk/platforms/android-L/arch-mips/symbols/libc.so.functions.txt
@@ -0,0 +1,1128 @@
+SHA1Final
+SHA1Init
+SHA1Transform
+SHA1Update
+_Exit
+_Unwind_Backtrace
+_Unwind_DeleteException
+_Unwind_FindEnclosingFunction
+_Unwind_Find_FDE
+_Unwind_ForcedUnwind
+_Unwind_GetCFA
+_Unwind_GetDataRelBase
+_Unwind_GetGR
+_Unwind_GetIP
+_Unwind_GetIPInfo
+_Unwind_GetLanguageSpecificData
+_Unwind_GetRegionStart
+_Unwind_GetTextRelBase
+_Unwind_RaiseException
+_Unwind_Resume
+_Unwind_Resume_or_Rethrow
+_Unwind_SetGR
+_Unwind_SetIP
+_ZdaPv
+_ZdaPvRKSt9nothrow_t
+_ZdlPv
+_ZdlPvRKSt9nothrow_t
+_Znaj
+_ZnajRKSt9nothrow_t
+_Znwj
+_ZnwjRKSt9nothrow_t
+__FD_CLR_chk
+__FD_ISSET_chk
+__FD_SET_chk
+__accept4
+__android_set_abort_message
+__assert
+__assert2
+__b64_ntop
+__b64_pton
+__bionic_name_mem
+__brk
+__connect
+__cxa_atexit
+__cxa_finalize
+__cxa_guard_abort
+__cxa_guard_acquire
+__cxa_guard_release
+__cxa_pure_virtual
+__deregister_frame
+__deregister_frame_info
+__deregister_frame_info_bases
+__divdi3
+__dn_comp
+__dn_count_labels
+__dn_skipname
+__epoll_pwait
+__errno
+__exit
+__fcntl64
+__fgets_chk
+__findenv
+__fp_nquery
+__fp_query
+__fpclassify
+__fpclassifyd
+__fpclassifyf
+__fpclassifyl
+__frame_state_for
+__fstatfs64
+__futex_wait
+__futex_wake
+__get_h_errno
+__get_tls
+__getcpu
+__getcwd
+__getdents64
+__getpriority
+__hostalias
+__ioctl
+__isfinite
+__isfinitef
+__isfinitel
+__isinf
+__isinff
+__isinfl
+__isnan
+__isnanf
+__isnanl
+__isnormal
+__isnormalf
+__isnormall
+__libc_current_sigrtmax
+__libc_current_sigrtmin
+__libc_init
+__llseek
+__loc_aton
+__loc_ntoa
+__memcpy_chk
+__memmove_chk
+__memset_chk
+__mmap2
+__moddi3
+__open
+__open_2
+__openat
+__openat_2
+__p_cdname
+__p_cdnname
+__p_class
+__p_fqname
+__p_fqnname
+__p_option
+__p_query
+__p_rcode
+__p_secstodate
+__p_time
+__p_type
+__popcountsi2
+__ppoll
+__pselect6
+__pthread_cleanup_pop
+__pthread_cleanup_push
+__pthread_gettid
+__ptrace
+__putlong
+__putshort
+__read_chk
+__reboot
+__recvfrom_chk
+__register_frame
+__register_frame_info
+__register_frame_info_bases
+__register_frame_info_table
+__register_frame_info_table_bases
+__register_frame_table
+__res_close
+__res_dnok
+__res_hnok
+__res_hostalias
+__res_isourserver
+__res_mailok
+__res_nameinquery
+__res_nclose
+__res_ninit
+__res_nmkquery
+__res_nquery
+__res_nquerydomain
+__res_nsearch
+__res_nsend
+__res_ownok
+__res_queriesmatch
+__res_querydomain
+__res_randomid
+__res_send
+__res_send_setqhook
+__res_send_setrhook
+__rt_sigaction
+__rt_sigpending
+__rt_sigprocmask
+__rt_sigsuspend
+__rt_sigtimedwait
+__sched_cpualloc
+__sched_cpucount
+__sched_cpufree
+__sched_getaffinity
+__set_errno
+__set_tid_address
+__set_tls
+__sigaction
+__signalfd4
+__snprintf_chk
+__socket
+__sprintf_chk
+__srefill
+__srget
+__stack_chk_fail
+__statfs64
+__stpcpy_chk
+__stpncpy_chk
+__stpncpy_chk2
+__strcat_chk
+__strchr_chk
+__strcpy_chk
+__strlcat_chk
+__strlcpy_chk
+__strlen_chk
+__strncat_chk
+__strncpy_chk
+__strncpy_chk2
+__strrchr_chk
+__swbuf
+__sym_ntop
+__sym_ntos
+__sym_ston
+__system_properties_init
+__system_property_add
+__system_property_area_init
+__system_property_find
+__system_property_find_nth
+__system_property_foreach
+__system_property_get
+__system_property_read
+__system_property_serial
+__system_property_set
+__system_property_set_filename
+__system_property_update
+__system_property_wait_any
+__timer_create
+__timer_delete
+__timer_getoverrun
+__timer_gettime
+__timer_settime
+__udivdi3
+__umask_chk
+__umoddi3
+__vsnprintf_chk
+__vsprintf_chk
+__wait4
+__waitid
+_exit
+_flush_cache
+_getlong
+_getshort
+_longjmp
+_memset16
+_memset32
+_resolv_flush_cache_for_net
+_resolv_set_nameservers_for_net
+_setjmp
+_thread_created_hook
+_tolower
+_toupper
+abort
+abs
+accept
+accept4
+access
+acct
+alarm
+alphasort
+alphasort64
+android_getaddrinfofornet
+android_gethostbyaddrfornet
+android_gethostbynamefornet
+arc4random
+arc4random_addrandom
+arc4random_buf
+arc4random_stir
+arc4random_uniform
+asctime
+asctime64
+asctime64_r
+asctime_r
+asprintf
+at_quick_exit
+atof
+atoi
+atol
+atoll
+basename
+basename_r
+bcopy
+bind
+bindresvport
+brk
+bsd_signal
+bsearch
+btowc
+bzero
+c16rtomb
+c32rtomb
+cacheflush
+calloc
+capget
+capset
+cfgetispeed
+cfgetospeed
+cfmakeraw
+cfsetispeed
+cfsetospeed
+cfsetspeed
+chdir
+chmod
+chown
+chroot
+clearenv
+clearerr
+clock
+clock_getres
+clock_gettime
+clock_nanosleep
+clock_settime
+clone
+close
+closedir
+closelog
+closelog_r
+cmsg_nxthdr
+connect
+creat
+creat64
+ctime
+ctime64
+ctime64_r
+ctime_r
+daemon
+delete_module
+difftime
+dirfd
+dirname
+dirname_r
+div
+dlmalloc_inspect_all
+dlmalloc_trim
+dn_expand
+dprintf
+drand48
+dup
+dup2
+dup3
+duplocale
+endmntent
+endpwent
+endservent
+endusershell
+endutent
+epoll_create
+epoll_create1
+epoll_ctl
+epoll_pwait
+epoll_wait
+erand48
+err
+errx
+ether_aton
+ether_aton_r
+ether_ntoa
+ether_ntoa_r
+eventfd
+eventfd_read
+eventfd_write
+execl
+execle
+execlp
+execv
+execve
+execvp
+execvpe
+exit
+faccessat
+fallocate
+fallocate64
+fchdir
+fchmod
+fchmodat
+fchown
+fchownat
+fclose
+fcntl
+fdatasync
+fdopen
+fdopendir
+fdprintf
+feof
+ferror
+fflush
+ffs
+fgetc
+fgetln
+fgetpos
+fgets
+fgetwc
+fgetws
+fgetxattr
+fileno
+flistxattr
+flock
+flockfile
+fnmatch
+fopen
+fork
+fpathconf
+fprintf
+fpurge
+fputc
+fputs
+fputwc
+fputws
+fread
+free
+freeaddrinfo
+freelocale
+fremovexattr
+freopen
+fscanf
+fseek
+fseeko
+fsetpos
+fsetxattr
+fstat
+fstat64
+fstatat
+fstatat64
+fstatfs
+fstatfs64
+fstatvfs
+fstatvfs64
+fsync
+ftell
+ftello
+ftime
+ftok
+ftruncate
+ftruncate64
+ftrylockfile
+fts_children
+fts_close
+fts_open
+fts_read
+fts_set
+ftw
+ftw64
+funlockfile
+funopen
+futimens
+fwide
+fwprintf
+fwrite
+fwscanf
+gai_strerror
+get_malloc_leak_info
+getaddrinfo
+getauxval
+getc
+getc_unlocked
+getchar
+getchar_unlocked
+getcwd
+getdelim
+getdents
+getdtablesize
+getegid
+getenv
+geteuid
+getgid
+getgrgid
+getgrnam
+getgrouplist
+getgroups
+gethostbyaddr
+gethostbyname
+gethostbyname2
+gethostbyname_r
+gethostent
+gethostname
+getitimer
+getline
+getlogin
+getmntent
+getmntent_r
+getnameinfo
+getnetbyaddr
+getnetbyname
+getopt
+getopt_long
+getopt_long_only
+getpagesize
+getpeername
+getpgid
+getpgrp
+getpid
+getppid
+getpriority
+getprogname
+getprotobyname
+getprotobynumber
+getpt
+getpwnam
+getpwnam_r
+getpwuid
+getpwuid_r
+getresgid
+getresuid
+getrlimit
+getrlimit64
+getrusage
+gets
+getservbyname
+getservbyport
+getservent
+getsid
+getsockname
+getsockopt
+gettid
+gettimeofday
+getuid
+getusershell
+getutent
+getwc
+getwchar
+getxattr
+gmtime
+gmtime64
+gmtime64_r
+gmtime_r
+herror
+hstrerror
+htonl
+htons
+if_indextoname
+if_nametoindex
+imaxabs
+imaxdiv
+index
+inet_addr
+inet_aton
+inet_lnaof
+inet_makeaddr
+inet_netof
+inet_network
+inet_ntoa
+inet_ntop
+inet_pton
+init_module
+initgroups
+initstate
+inotify_add_watch
+inotify_init
+inotify_init1
+inotify_rm_watch
+ioctl
+isalnum
+isalpha
+isascii
+isatty
+isblank
+iscntrl
+isdigit
+isfinite
+isfinitef
+isfinitel
+isgraph
+isinf
+isinff
+isinfl
+islower
+isnan
+isnanf
+isnanl
+isnormal
+isnormalf
+isnormall
+isprint
+ispunct
+issetugid
+isspace
+isupper
+iswalnum
+iswalpha
+iswblank
+iswcntrl
+iswctype
+iswdigit
+iswgraph
+iswlower
+iswprint
+iswpunct
+iswspace
+iswupper
+iswxdigit
+isxdigit
+jrand48
+kill
+killpg
+klogctl
+labs
+lchown
+ldexp
+ldiv
+lfind
+lgetxattr
+link
+linkat
+listen
+listxattr
+llabs
+lldiv
+llistxattr
+localeconv
+localtime
+localtime64
+localtime64_r
+localtime_r
+localtime_tz
+longjmp
+lrand48
+lremovexattr
+lsearch
+lseek
+lseek64
+lsetxattr
+lstat
+lstat64
+madvise
+mallinfo
+malloc
+malloc_usable_size
+mbrlen
+mbrtoc16
+mbrtoc32
+mbrtowc
+mbsinit
+mbsnrtowcs
+mbsrtowcs
+mbstowcs
+mbtowc
+memalign
+memccpy
+memchr
+memcmp
+memcpy
+memmem
+memmove
+memrchr
+memset
+memswap
+mincore
+mkdir
+mkdirat
+mkdtemp
+mkfifo
+mknod
+mknodat
+mkstemp
+mkstemp64
+mkstemps
+mktemp
+mktime
+mktime64
+mktime_tz
+mlock
+mlockall
+mmap
+mmap64
+mount
+mprotect
+mrand48
+mremap
+msync
+munlock
+munlockall
+munmap
+nanosleep
+newlocale
+nftw
+nftw64
+nice
+nrand48
+ntohl
+ntohs
+open
+open64
+openat
+openat64
+opendir
+openlog
+openlog_r
+pathconf
+pause
+pclose
+perror
+personality
+pipe
+pipe2
+poll
+popen
+posix_fallocate
+posix_fallocate64
+posix_memalign
+ppoll
+prctl
+pread
+pread64
+printf
+prlimit64
+pselect
+psiginfo
+psignal
+pthread_atfork
+pthread_attr_destroy
+pthread_attr_getdetachstate
+pthread_attr_getguardsize
+pthread_attr_getschedparam
+pthread_attr_getschedpolicy
+pthread_attr_getscope
+pthread_attr_getstack
+pthread_attr_getstackaddr
+pthread_attr_getstacksize
+pthread_attr_init
+pthread_attr_setdetachstate
+pthread_attr_setguardsize
+pthread_attr_setschedparam
+pthread_attr_setschedpolicy
+pthread_attr_setscope
+pthread_attr_setstack
+pthread_attr_setstackaddr
+pthread_attr_setstacksize
+pthread_cond_broadcast
+pthread_cond_destroy
+pthread_cond_init
+pthread_cond_signal
+pthread_cond_timedwait
+pthread_cond_timedwait_monotonic
+pthread_cond_timedwait_monotonic_np
+pthread_cond_timedwait_relative_np
+pthread_cond_timeout_np
+pthread_cond_wait
+pthread_condattr_destroy
+pthread_condattr_getclock
+pthread_condattr_getpshared
+pthread_condattr_init
+pthread_condattr_setclock
+pthread_condattr_setpshared
+pthread_create
+pthread_detach
+pthread_equal
+pthread_exit
+pthread_getattr_np
+pthread_getcpuclockid
+pthread_getschedparam
+pthread_getspecific
+pthread_join
+pthread_key_create
+pthread_key_delete
+pthread_kill
+pthread_mutex_destroy
+pthread_mutex_init
+pthread_mutex_lock
+pthread_mutex_lock_timeout_np
+pthread_mutex_timedlock
+pthread_mutex_trylock
+pthread_mutex_unlock
+pthread_mutexattr_destroy
+pthread_mutexattr_getpshared
+pthread_mutexattr_gettype
+pthread_mutexattr_init
+pthread_mutexattr_setpshared
+pthread_mutexattr_settype
+pthread_once
+pthread_rwlock_destroy
+pthread_rwlock_init
+pthread_rwlock_rdlock
+pthread_rwlock_timedrdlock
+pthread_rwlock_timedwrlock
+pthread_rwlock_tryrdlock
+pthread_rwlock_trywrlock
+pthread_rwlock_unlock
+pthread_rwlock_wrlock
+pthread_rwlockattr_destroy
+pthread_rwlockattr_getpshared
+pthread_rwlockattr_init
+pthread_rwlockattr_setpshared
+pthread_self
+pthread_setname_np
+pthread_setschedparam
+pthread_setspecific
+pthread_sigmask
+ptrace
+ptsname
+ptsname_r
+putc
+putc_unlocked
+putchar
+putchar_unlocked
+putenv
+puts
+pututline
+putw
+putwc
+putwchar
+pvalloc
+pwrite
+pwrite64
+qsort
+quick_exit
+raise
+rand
+rand_r
+random
+read
+readahead
+readdir
+readdir64
+readdir64_r
+readdir_r
+readlink
+readlinkat
+readv
+realloc
+realpath
+reboot
+recv
+recvfrom
+recvmmsg
+recvmsg
+regcomp
+regerror
+regexec
+regfree
+remove
+removexattr
+rename
+renameat
+res_init
+res_mkquery
+res_query
+res_search
+rewind
+rewinddir
+rmdir
+sbrk
+scandir
+scandir64
+scanf
+sched_get_priority_max
+sched_get_priority_min
+sched_getaffinity
+sched_getcpu
+sched_getparam
+sched_getscheduler
+sched_rr_get_interval
+sched_setaffinity
+sched_setparam
+sched_setscheduler
+sched_yield
+seed48
+select
+sem_close
+sem_destroy
+sem_getvalue
+sem_init
+sem_open
+sem_post
+sem_timedwait
+sem_trywait
+sem_unlink
+sem_wait
+send
+sendfile
+sendfile64
+sendmmsg
+sendmsg
+sendto
+setbuf
+setbuffer
+setegid
+setenv
+seteuid
+setgid
+setgroups
+setitimer
+setjmp
+setlinebuf
+setlocale
+setlogmask
+setlogmask_r
+setmntent
+setns
+setpgid
+setpgrp
+setpriority
+setprogname
+setregid
+setresgid
+setresuid
+setreuid
+setrlimit
+setrlimit64
+setservent
+setsid
+setsockopt
+setstate
+settimeofday
+setuid
+setusershell
+setutent
+setvbuf
+setxattr
+shutdown
+sigaction
+sigaddset
+sigaltstack
+sigblock
+sigdelset
+sigemptyset
+sigfillset
+siginterrupt
+sigismember
+siglongjmp
+signal
+signalfd
+sigpending
+sigprocmask
+sigsetjmp
+sigsetmask
+sigsuspend
+sigwait
+sleep
+snprintf
+socket
+socketpair
+sprintf
+srand
+srand48
+srandom
+sscanf
+stat
+stat64
+statfs
+statfs64
+statvfs
+statvfs64
+stpcpy
+stpncpy
+strcasecmp
+strcasestr
+strcat
+strchr
+strcmp
+strcoll
+strcpy
+strcspn
+strdup
+strerror
+strerror_r
+strftime
+strftime_tz
+strlcat
+strlcpy
+strlen
+strncasecmp
+strncat
+strncmp
+strncpy
+strndup
+strnlen
+strntoimax
+strntoumax
+strpbrk
+strptime
+strrchr
+strsep
+strsignal
+strspn
+strstr
+strtod
+strtof
+strtoimax
+strtok
+strtok_r
+strtol
+strtold
+strtoll
+strtoq
+strtotimeval
+strtoul
+strtoull
+strtoumax
+strtouq
+strxfrm
+swapoff
+swapon
+swprintf
+swscanf
+symlink
+symlinkat
+sync
+syscall
+sysconf
+sysinfo
+syslog
+syslog_r
+system
+sysv_signal
+tcdrain
+tcflow
+tcflush
+tcgetattr
+tcgetpgrp
+tcgetsid
+tcsendbreak
+tcsetattr
+tcsetpgrp
+tdelete
+tdestroy
+tempnam
+tfind
+tgkill
+time
+timegm
+timegm64
+timelocal
+timelocal64
+timer_create
+timer_delete
+timer_getoverrun
+timer_gettime
+timer_settime
+timerfd_create
+timerfd_gettime
+timerfd_settime
+times
+tkill
+tmpfile
+tmpnam
+toascii
+tolower
+toupper
+towlower
+towupper
+truncate
+truncate64
+tsearch
+ttyname
+ttyname_r
+tzset
+umask
+umount
+umount2
+uname
+ungetc
+ungetwc
+unlink
+unlinkat
+unlockpt
+unsetenv
+unshare
+uselocale
+usleep
+utime
+utimensat
+utimes
+utmpname
+valloc
+vasprintf
+vdprintf
+verr
+verrx
+vfdprintf
+vfork
+vfprintf
+vfscanf
+vfwprintf
+vfwscanf
+vprintf
+vscanf
+vsnprintf
+vsprintf
+vsscanf
+vswprintf
+vswscanf
+vsyslog
+vsyslog_r
+vwarn
+vwarnx
+vwprintf
+vwscanf
+wait
+wait3
+wait4
+waitid
+waitpid
+warn
+warnx
+wcpcpy
+wcpncpy
+wcrtomb
+wcscasecmp
+wcscat
+wcschr
+wcscmp
+wcscoll
+wcscpy
+wcscspn
+wcsdup
+wcsftime
+wcslcat
+wcslcpy
+wcslen
+wcsncasecmp
+wcsncat
+wcsncmp
+wcsncpy
+wcsnlen
+wcsnrtombs
+wcspbrk
+wcsrchr
+wcsrtombs
+wcsspn
+wcsstr
+wcstod
+wcstof
+wcstoimax
+wcstok
+wcstol
+wcstold
+wcstoll
+wcstombs
+wcstoul
+wcstoull
+wcstoumax
+wcswcs
+wcswidth
+wcsxfrm
+wctob
+wctomb
+wctype
+wcwidth
+wmemchr
+wmemcmp
+wmemcpy
+wmemmove
+wmemset
+wprintf
+write
+writev
+wscanf
diff --git a/ndk/platforms/android-L/arch-mips/symbols/libc.so.variables.txt b/ndk/platforms/android-L/arch-mips/symbols/libc.so.variables.txt
new file mode 100644
index 0000000..785e924
--- /dev/null
+++ b/ndk/platforms/android-L/arch-mips/symbols/libc.so.variables.txt
@@ -0,0 +1,30 @@
+_C_ctype_
+_C_tolower_
+_C_toupper_
+_ZSt7nothrow
+__bionic_brk
+__isthreaded
+__libc_malloc_dispatch
+__p_class_syms
+__p_type_syms
+__page_shift
+__page_size
+__popcount_tab
+__progname
+__sF
+__stack_chk_guard
+__system_property_area__
+_ctype_
+_tolower_tab_
+_toupper_tab_
+daylight
+environ
+optarg
+opterr
+optind
+optopt
+optreset
+sys_siglist
+sys_signame
+timezone
+tzname
diff --git a/ndk/platforms/android-20/arch-mips/symbols/libdl.so.functions.txt b/ndk/platforms/android-L/arch-mips/symbols/libdl.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/symbols/libdl.so.functions.txt
rename to ndk/platforms/android-L/arch-mips/symbols/libdl.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-mips/symbols/libdl.so.variables.txt b/ndk/platforms/android-L/arch-mips/symbols/libdl.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/symbols/libdl.so.variables.txt
rename to ndk/platforms/android-L/arch-mips/symbols/libdl.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-mips/symbols/libjnigraphics.so.functions.txt b/ndk/platforms/android-L/arch-mips/symbols/libjnigraphics.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/symbols/libjnigraphics.so.functions.txt
rename to ndk/platforms/android-L/arch-mips/symbols/libjnigraphics.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-mips/symbols/libjnigraphics.so.variables.txt b/ndk/platforms/android-L/arch-mips/symbols/libjnigraphics.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/symbols/libjnigraphics.so.variables.txt
rename to ndk/platforms/android-L/arch-mips/symbols/libjnigraphics.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-mips/symbols/liblog.so.functions.txt b/ndk/platforms/android-L/arch-mips/symbols/liblog.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/symbols/liblog.so.functions.txt
rename to ndk/platforms/android-L/arch-mips/symbols/liblog.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-mips/symbols/liblog.so.variables.txt b/ndk/platforms/android-L/arch-mips/symbols/liblog.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/symbols/liblog.so.variables.txt
rename to ndk/platforms/android-L/arch-mips/symbols/liblog.so.variables.txt
diff --git a/ndk/platforms/android-L/arch-mips/symbols/libm.so.functions.txt b/ndk/platforms/android-L/arch-mips/symbols/libm.so.functions.txt
new file mode 100644
index 0000000..8c3ccda
--- /dev/null
+++ b/ndk/platforms/android-L/arch-mips/symbols/libm.so.functions.txt
@@ -0,0 +1,224 @@
+__fixdfdi
+__fixsfdi
+__fixunsdfdi
+__fixunssfdi
+__signbit
+__signbitf
+__signbitl
+acos
+acosf
+acosh
+acoshf
+acoshl
+acosl
+asin
+asinf
+asinh
+asinhf
+asinhl
+asinl
+atan
+atan2
+atan2f
+atan2l
+atanf
+atanh
+atanhf
+atanhl
+atanl
+cabsl
+cbrt
+cbrtf
+cbrtl
+ceil
+ceilf
+ceill
+copysign
+copysignf
+copysignl
+cos
+cosf
+cosh
+coshf
+coshl
+cosl
+cprojl
+csqrtl
+drem
+dremf
+erf
+erfc
+erfcf
+erfcl
+erff
+erfl
+exp
+exp2
+exp2f
+exp2l
+expf
+expl
+expm1
+expm1f
+expm1l
+fabs
+fabsf
+fabsl
+fdim
+fdimf
+fdiml
+feclearexcept
+fedisableexcept
+feenableexcept
+fegetenv
+fegetexcept
+fegetexceptflag
+fegetround
+feholdexcept
+feraiseexcept
+fesetenv
+fesetexceptflag
+fesetround
+fetestexcept
+feupdateenv
+finite
+finitef
+floor
+floorf
+floorl
+fma
+fmaf
+fmal
+fmax
+fmaxf
+fmaxl
+fmin
+fminf
+fminl
+fmod
+fmodf
+fmodl
+frexp
+frexpf
+frexpl
+gamma
+gamma_r
+gammaf
+gammaf_r
+hypot
+hypotf
+hypotl
+ilogb
+ilogbf
+ilogbl
+j0
+j0f
+j1
+j1f
+jn
+jnf
+ldexpf
+ldexpl
+lgamma
+lgamma_r
+lgammaf
+lgammaf_r
+lgammal
+llrint
+llrintf
+llrintl
+llround
+llroundf
+llroundl
+log
+log10
+log10f
+log10l
+log1p
+log1pf
+log1pl
+log2
+log2f
+log2l
+logb
+logbf
+logbl
+logf
+logl
+lrint
+lrintf
+lrintl
+lround
+lroundf
+lroundl
+modf
+modff
+modfl
+nan
+nanf
+nanl
+nearbyint
+nearbyintf
+nearbyintl
+nextafter
+nextafterf
+nextafterl
+nexttoward
+nexttowardf
+nexttowardl
+pow
+powf
+powl
+remainder
+remainderf
+remainderl
+remquo
+remquof
+remquol
+rint
+rintf
+rintl
+round
+roundf
+roundl
+scalb
+scalbf
+scalbln
+scalblnf
+scalblnl
+scalbn
+scalbnf
+scalbnl
+significand
+significandf
+significandl
+sin
+sincos
+sincosf
+sincosl
+sinf
+sinh
+sinhf
+sinhl
+sinl
+sqrt
+sqrtf
+sqrtl
+tan
+tanf
+tanh
+tanhf
+tanhl
+tanl
+tgamma
+tgammaf
+tgammal
+trunc
+truncf
+truncl
+y0
+y0f
+y1
+y1f
+yn
+ynf
diff --git a/ndk/platforms/android-20/arch-mips/symbols/libm.so.variables.txt b/ndk/platforms/android-L/arch-mips/symbols/libm.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-mips/symbols/libm.so.variables.txt
rename to ndk/platforms/android-L/arch-mips/symbols/libm.so.variables.txt
diff --git a/ndk/platforms/android-L/arch-mips/symbols/libstdc++.so.functions.txt b/ndk/platforms/android-L/arch-mips/symbols/libstdc++.so.functions.txt
new file mode 100644
index 0000000..7e337ad
--- /dev/null
+++ b/ndk/platforms/android-L/arch-mips/symbols/libstdc++.so.functions.txt
@@ -0,0 +1 @@
+__this_library_is_now_part_of_libc
diff --git a/ndk/platforms/android-20/arch-mips/symbols/libdl.so.variables.txt b/ndk/platforms/android-L/arch-mips/symbols/libstdc++.so.variables.txt
similarity index 100%
copy from ndk/platforms/android-20/arch-mips/symbols/libdl.so.variables.txt
copy to ndk/platforms/android-L/arch-mips/symbols/libstdc++.so.variables.txt
diff --git a/ndk/platforms/android-L/arch-mips/symbols/libz.so.functions.txt b/ndk/platforms/android-L/arch-mips/symbols/libz.so.functions.txt
new file mode 100644
index 0000000..bbd634e
--- /dev/null
+++ b/ndk/platforms/android-L/arch-mips/symbols/libz.so.functions.txt
@@ -0,0 +1,88 @@
+_tr_align
+_tr_flush_bits
+_tr_flush_block
+_tr_init
+_tr_stored_block
+_tr_tally
+adler32
+adler32_combine
+adler32_combine64
+compress
+compress2
+compressBound
+crc32
+crc32_combine
+crc32_combine64
+deflate
+deflateBound
+deflateCopy
+deflateEnd
+deflateInit2_
+deflateInit_
+deflateParams
+deflatePending
+deflatePrime
+deflateReset
+deflateResetKeep
+deflateSetDictionary
+deflateSetHeader
+deflateTune
+get_crc_table
+gz_error
+gzbuffer
+gzclearerr
+gzclose
+gzclose_r
+gzclose_w
+gzdirect
+gzdopen
+gzeof
+gzerror
+gzflush
+gzgetc
+gzgetc_
+gzgets
+gzoffset
+gzoffset64
+gzopen
+gzopen64
+gzprintf
+gzputc
+gzputs
+gzread
+gzrewind
+gzseek
+gzseek64
+gzsetparams
+gztell
+gztell64
+gzungetc
+gzvprintf
+gzwrite
+inflate
+inflateBack
+inflateBackEnd
+inflateBackInit_
+inflateCopy
+inflateEnd
+inflateGetDictionary
+inflateGetHeader
+inflateInit2_
+inflateInit_
+inflateMark
+inflatePrime
+inflateReset
+inflateReset2
+inflateResetKeep
+inflateSetDictionary
+inflateSync
+inflateSyncPoint
+inflateUndermine
+inflate_fast
+inflate_table
+uncompress
+zError
+zcalloc
+zcfree
+zlibCompileFlags
+zlibVersion
diff --git a/ndk/platforms/android-L/arch-mips/symbols/libz.so.variables.txt b/ndk/platforms/android-L/arch-mips/symbols/libz.so.variables.txt
new file mode 100644
index 0000000..c653ee5
--- /dev/null
+++ b/ndk/platforms/android-L/arch-mips/symbols/libz.so.variables.txt
@@ -0,0 +1,5 @@
+_dist_code
+_length_code
+deflate_copyright
+inflate_copyright
+z_errmsg
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/auxvec.h b/ndk/platforms/android-L/arch-mips64/include/asm/auxvec.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/auxvec.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/auxvec.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/bitsperlong.h b/ndk/platforms/android-L/arch-mips64/include/asm/bitsperlong.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/bitsperlong.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/bitsperlong.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/break.h b/ndk/platforms/android-L/arch-mips64/include/asm/break.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/break.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/break.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/byteorder.h b/ndk/platforms/android-L/arch-mips64/include/asm/byteorder.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/byteorder.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/byteorder.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/cachectl.h b/ndk/platforms/android-L/arch-mips64/include/asm/cachectl.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/cachectl.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/cachectl.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/errno.h b/ndk/platforms/android-L/arch-mips64/include/asm/errno.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/errno.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/errno.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/fcntl.h b/ndk/platforms/android-L/arch-mips64/include/asm/fcntl.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/fcntl.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/fcntl.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/inst.h b/ndk/platforms/android-L/arch-mips64/include/asm/inst.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/inst.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/inst.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/ioctl.h b/ndk/platforms/android-L/arch-mips64/include/asm/ioctl.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/ioctl.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/ioctl.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/ioctls.h b/ndk/platforms/android-L/arch-mips64/include/asm/ioctls.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/ioctls.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/ioctls.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/ipcbuf.h b/ndk/platforms/android-L/arch-mips64/include/asm/ipcbuf.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/ipcbuf.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/ipcbuf.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/kvm.h b/ndk/platforms/android-L/arch-mips64/include/asm/kvm.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/kvm.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/kvm.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/kvm_para.h b/ndk/platforms/android-L/arch-mips64/include/asm/kvm_para.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/kvm_para.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/kvm_para.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/mman.h b/ndk/platforms/android-L/arch-mips64/include/asm/mman.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/mman.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/mman.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/msgbuf.h b/ndk/platforms/android-L/arch-mips64/include/asm/msgbuf.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/msgbuf.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/msgbuf.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/param.h b/ndk/platforms/android-L/arch-mips64/include/asm/param.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/param.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/param.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/poll.h b/ndk/platforms/android-L/arch-mips64/include/asm/poll.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/poll.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/poll.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/posix_types.h b/ndk/platforms/android-L/arch-mips64/include/asm/posix_types.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/posix_types.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/posix_types.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/ptrace.h b/ndk/platforms/android-L/arch-mips64/include/asm/ptrace.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/ptrace.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/ptrace.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/resource.h b/ndk/platforms/android-L/arch-mips64/include/asm/resource.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/resource.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/resource.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/sembuf.h b/ndk/platforms/android-L/arch-mips64/include/asm/sembuf.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/sembuf.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/sembuf.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/setup.h b/ndk/platforms/android-L/arch-mips64/include/asm/setup.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/setup.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/setup.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/sgidefs.h b/ndk/platforms/android-L/arch-mips64/include/asm/sgidefs.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/sgidefs.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/sgidefs.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/shmbuf.h b/ndk/platforms/android-L/arch-mips64/include/asm/shmbuf.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/shmbuf.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/shmbuf.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/sigcontext.h b/ndk/platforms/android-L/arch-mips64/include/asm/sigcontext.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/sigcontext.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/sigcontext.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/siginfo.h b/ndk/platforms/android-L/arch-mips64/include/asm/siginfo.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/siginfo.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/siginfo.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/signal.h b/ndk/platforms/android-L/arch-mips64/include/asm/signal.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/signal.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/signal.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/socket.h b/ndk/platforms/android-L/arch-mips64/include/asm/socket.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/socket.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/socket.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/sockios.h b/ndk/platforms/android-L/arch-mips64/include/asm/sockios.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/sockios.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/sockios.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/stat.h b/ndk/platforms/android-L/arch-mips64/include/asm/stat.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/stat.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/stat.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/statfs.h b/ndk/platforms/android-L/arch-mips64/include/asm/statfs.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/statfs.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/statfs.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/swab.h b/ndk/platforms/android-L/arch-mips64/include/asm/swab.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/swab.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/swab.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/sysmips.h b/ndk/platforms/android-L/arch-mips64/include/asm/sysmips.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/sysmips.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/sysmips.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/termbits.h b/ndk/platforms/android-L/arch-mips64/include/asm/termbits.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/termbits.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/termbits.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/termios.h b/ndk/platforms/android-L/arch-mips64/include/asm/termios.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/termios.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/termios.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/types.h b/ndk/platforms/android-L/arch-mips64/include/asm/types.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/types.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/types.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/asm/unistd.h b/ndk/platforms/android-L/arch-mips64/include/asm/unistd.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/asm/unistd.h
rename to ndk/platforms/android-L/arch-mips64/include/asm/unistd.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/machine/asm.h b/ndk/platforms/android-L/arch-mips64/include/machine/asm.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/machine/asm.h
rename to ndk/platforms/android-L/arch-mips64/include/machine/asm.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/machine/elf_machdep.h b/ndk/platforms/android-L/arch-mips64/include/machine/elf_machdep.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/machine/elf_machdep.h
rename to ndk/platforms/android-L/arch-mips64/include/machine/elf_machdep.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/machine/endian.h b/ndk/platforms/android-L/arch-mips64/include/machine/endian.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/machine/endian.h
rename to ndk/platforms/android-L/arch-mips64/include/machine/endian.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/machine/exec.h b/ndk/platforms/android-L/arch-mips64/include/machine/exec.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/machine/exec.h
rename to ndk/platforms/android-L/arch-mips64/include/machine/exec.h
diff --git a/ndk/platforms/android-L/arch-mips64/include/machine/fenv.h b/ndk/platforms/android-L/arch-mips64/include/machine/fenv.h
new file mode 100644
index 0000000..689e1cb
--- /dev/null
+++ b/ndk/platforms/android-L/arch-mips64/include/machine/fenv.h
@@ -0,0 +1,98 @@
+/*-
+ * Copyright (c) 2004-2005 David Schultz <das@FreeBSD.ORG>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD: src/lib/msun/arm/fenv.h,v 1.5 2005/03/16 19:03:45 das Exp $
+ */
+
+/*
+   Rewritten for Android.
+*/
+
+/* MIPS FPU floating point control register bits.
+ *
+ * 31-25  -> floating point conditions code bits set by FP compare
+ *           instructions
+ * 24     -> flush denormalized results to zero instead of
+ *           causing unimplemented operation exception.
+ * 23     -> Condition bit
+ * 22     -> In conjunction with FS detects denormalized
+ *           operands and replaces them internally with 0.
+ * 21     -> In conjunction with FS forces denormalized operands
+ *           to the closest normalized value.
+ * 20-18  -> reserved (read as 0, write with 0)
+ * 17     -> cause bit for unimplemented operation
+ * 16     -> cause bit for invalid exception
+ * 15     -> cause bit for division by zero exception
+ * 14     -> cause bit for overflow exception
+ * 13     -> cause bit for underflow exception
+ * 12     -> cause bit for inexact exception
+ * 11     -> enable exception for invalid exception
+ * 10     -> enable exception for division by zero exception
+ *  9     -> enable exception for overflow exception
+ *  8     -> enable exception for underflow exception
+ *  7     -> enable exception for inexact exception
+ *  6     -> flag invalid exception
+ *  5     -> flag division by zero exception
+ *  4     -> flag overflow exception
+ *  3     -> flag underflow exception
+ *  2     -> flag inexact exception
+ *  1-0   -> rounding control
+ *
+ *
+ * Rounding Control:
+ * 00 - rounding to nearest (RN)
+ * 01 - rounding toward zero (RZ)
+ * 10 - rounding (up) toward plus infinity (RP)
+ * 11 - rounding (down)toward minus infinity (RM)
+ */
+
+#ifndef _MIPS_FENV_H_
+#define _MIPS_FENV_H_
+
+#include <sys/types.h>
+
+__BEGIN_DECLS
+
+typedef __uint32_t fenv_t;
+typedef __uint32_t fexcept_t;
+
+/* Exception flags */
+#define FE_INVALID    0x40
+#define FE_DIVBYZERO  0x20
+#define FE_OVERFLOW   0x10
+#define FE_UNDERFLOW  0x08
+#define FE_INEXACT    0x04
+#define FE_ALL_EXCEPT (FE_DIVBYZERO | FE_INEXACT | \
+                       FE_INVALID | FE_OVERFLOW | FE_UNDERFLOW)
+
+/* Rounding modes */
+#define FE_TONEAREST  0x0000
+#define FE_TOWARDZERO 0x0001
+#define FE_UPWARD     0x0002
+#define FE_DOWNWARD   0x0003
+
+__END_DECLS
+
+#endif /* !_MIPS_FENV_H_ */
diff --git a/ndk/platforms/android-20/arch-mips64/include/machine/regdef.h b/ndk/platforms/android-L/arch-mips64/include/machine/regdef.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/machine/regdef.h
rename to ndk/platforms/android-L/arch-mips64/include/machine/regdef.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/machine/regnum.h b/ndk/platforms/android-L/arch-mips64/include/machine/regnum.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/machine/regnum.h
rename to ndk/platforms/android-L/arch-mips64/include/machine/regnum.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/machine/setjmp.h b/ndk/platforms/android-L/arch-mips64/include/machine/setjmp.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/machine/setjmp.h
rename to ndk/platforms/android-L/arch-mips64/include/machine/setjmp.h
diff --git a/ndk/platforms/android-20/arch-mips64/include/machine/signal.h b/ndk/platforms/android-L/arch-mips64/include/machine/signal.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/include/machine/signal.h
rename to ndk/platforms/android-L/arch-mips64/include/machine/signal.h
diff --git a/ndk/platforms/android-L/arch-mips64/lib b/ndk/platforms/android-L/arch-mips64/lib
new file mode 120000
index 0000000..94053f7
--- /dev/null
+++ b/ndk/platforms/android-L/arch-mips64/lib
@@ -0,0 +1 @@
+../arch-mips/lib
\ No newline at end of file
diff --git a/ndk/platforms/android-L/arch-mips64/lib-bootstrap b/ndk/platforms/android-L/arch-mips64/lib-bootstrap
new file mode 120000
index 0000000..7c180e0
--- /dev/null
+++ b/ndk/platforms/android-L/arch-mips64/lib-bootstrap
@@ -0,0 +1 @@
+../../android-9/arch-mips/lib-bootstrap
\ No newline at end of file
diff --git a/ndk/platforms/android-L/arch-mips64/lib64/libc.a b/ndk/platforms/android-L/arch-mips64/lib64/libc.a
new file mode 100644
index 0000000..a9a58d2
--- /dev/null
+++ b/ndk/platforms/android-L/arch-mips64/lib64/libc.a
Binary files differ
diff --git a/ndk/platforms/android-L/arch-mips64/lib64/libm.a b/ndk/platforms/android-L/arch-mips64/lib64/libm.a
new file mode 100644
index 0000000..747dc76
--- /dev/null
+++ b/ndk/platforms/android-L/arch-mips64/lib64/libm.a
Binary files differ
diff --git a/ndk/platforms/android-L/arch-mips64/lib64/libstdc++.a b/ndk/platforms/android-L/arch-mips64/lib64/libstdc++.a
new file mode 100644
index 0000000..59b6a85
--- /dev/null
+++ b/ndk/platforms/android-L/arch-mips64/lib64/libstdc++.a
Binary files differ
diff --git a/ndk/platforms/android-L/arch-mips64/lib64/libz.a b/ndk/platforms/android-L/arch-mips64/lib64/libz.a
new file mode 100644
index 0000000..8c25fff
--- /dev/null
+++ b/ndk/platforms/android-L/arch-mips64/lib64/libz.a
Binary files differ
diff --git a/ndk/platforms/android-20/arch-mips64/src/atexit.h b/ndk/platforms/android-L/arch-mips64/src/atexit.h
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/src/atexit.h
rename to ndk/platforms/android-L/arch-mips64/src/atexit.h
diff --git a/ndk/platforms/android-20/arch-mips64/src/crtbegin.c b/ndk/platforms/android-L/arch-mips64/src/crtbegin.c
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/src/crtbegin.c
rename to ndk/platforms/android-L/arch-mips64/src/crtbegin.c
diff --git a/ndk/platforms/android-20/arch-mips64/src/crtbegin_so.c b/ndk/platforms/android-L/arch-mips64/src/crtbegin_so.c
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/src/crtbegin_so.c
rename to ndk/platforms/android-L/arch-mips64/src/crtbegin_so.c
diff --git a/ndk/platforms/android-20/arch-mips64/src/crtend_android.S b/ndk/platforms/android-L/arch-mips64/src/crtend_android.S
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/src/crtend_android.S
rename to ndk/platforms/android-L/arch-mips64/src/crtend_android.S
diff --git a/ndk/platforms/android-20/arch-mips64/src/crtend_so.S b/ndk/platforms/android-L/arch-mips64/src/crtend_so.S
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/src/crtend_so.S
rename to ndk/platforms/android-L/arch-mips64/src/crtend_so.S
diff --git a/ndk/platforms/android-20/arch-mips64/symbols/libEGL.so.functions.txt b/ndk/platforms/android-L/arch-mips64/symbols/libEGL.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/symbols/libEGL.so.functions.txt
rename to ndk/platforms/android-L/arch-mips64/symbols/libEGL.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-mips64/symbols/libEGL.so.variables.txt b/ndk/platforms/android-L/arch-mips64/symbols/libEGL.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/symbols/libEGL.so.variables.txt
rename to ndk/platforms/android-L/arch-mips64/symbols/libEGL.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-mips64/symbols/libGLESv1_CM.so.functions.txt b/ndk/platforms/android-L/arch-mips64/symbols/libGLESv1_CM.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/symbols/libGLESv1_CM.so.functions.txt
rename to ndk/platforms/android-L/arch-mips64/symbols/libGLESv1_CM.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-mips64/symbols/libGLESv1_CM.so.variables.txt b/ndk/platforms/android-L/arch-mips64/symbols/libGLESv1_CM.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/symbols/libGLESv1_CM.so.variables.txt
rename to ndk/platforms/android-L/arch-mips64/symbols/libGLESv1_CM.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-mips64/symbols/libGLESv2.so.functions.txt b/ndk/platforms/android-L/arch-mips64/symbols/libGLESv2.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/symbols/libGLESv2.so.functions.txt
rename to ndk/platforms/android-L/arch-mips64/symbols/libGLESv2.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-mips64/symbols/libGLESv2.so.variables.txt b/ndk/platforms/android-L/arch-mips64/symbols/libGLESv2.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/symbols/libGLESv2.so.variables.txt
rename to ndk/platforms/android-L/arch-mips64/symbols/libGLESv2.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-mips64/symbols/libGLESv3.so.functions.txt b/ndk/platforms/android-L/arch-mips64/symbols/libGLESv3.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/symbols/libGLESv3.so.functions.txt
rename to ndk/platforms/android-L/arch-mips64/symbols/libGLESv3.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-mips64/symbols/libGLESv3.so.variables.txt b/ndk/platforms/android-L/arch-mips64/symbols/libGLESv3.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/symbols/libGLESv3.so.variables.txt
rename to ndk/platforms/android-L/arch-mips64/symbols/libGLESv3.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-mips64/symbols/libOpenMAXAL.so.functions.txt b/ndk/platforms/android-L/arch-mips64/symbols/libOpenMAXAL.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/symbols/libOpenMAXAL.so.functions.txt
rename to ndk/platforms/android-L/arch-mips64/symbols/libOpenMAXAL.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-mips64/symbols/libOpenMAXAL.so.variables.txt b/ndk/platforms/android-L/arch-mips64/symbols/libOpenMAXAL.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/symbols/libOpenMAXAL.so.variables.txt
rename to ndk/platforms/android-L/arch-mips64/symbols/libOpenMAXAL.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-mips64/symbols/libOpenSLES.so.functions.txt b/ndk/platforms/android-L/arch-mips64/symbols/libOpenSLES.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/symbols/libOpenSLES.so.functions.txt
rename to ndk/platforms/android-L/arch-mips64/symbols/libOpenSLES.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-mips64/symbols/libOpenSLES.so.variables.txt b/ndk/platforms/android-L/arch-mips64/symbols/libOpenSLES.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/symbols/libOpenSLES.so.variables.txt
rename to ndk/platforms/android-L/arch-mips64/symbols/libOpenSLES.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-mips64/symbols/libandroid.so.functions.txt b/ndk/platforms/android-L/arch-mips64/symbols/libandroid.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/symbols/libandroid.so.functions.txt
rename to ndk/platforms/android-L/arch-mips64/symbols/libandroid.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-mips64/symbols/libandroid.so.variables.txt b/ndk/platforms/android-L/arch-mips64/symbols/libandroid.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/symbols/libandroid.so.variables.txt
rename to ndk/platforms/android-L/arch-mips64/symbols/libandroid.so.variables.txt
diff --git a/ndk/platforms/android-L/arch-mips64/symbols/libc.so.functions.txt b/ndk/platforms/android-L/arch-mips64/symbols/libc.so.functions.txt
new file mode 100644
index 0000000..aca418c
--- /dev/null
+++ b/ndk/platforms/android-L/arch-mips64/symbols/libc.so.functions.txt
@@ -0,0 +1,1034 @@
+SHA1Final
+SHA1Init
+SHA1Transform
+SHA1Update
+_Exit
+_Unwind_Backtrace
+_Unwind_DeleteException
+_Unwind_FindEnclosingFunction
+_Unwind_Find_FDE
+_Unwind_ForcedUnwind
+_Unwind_GetCFA
+_Unwind_GetDataRelBase
+_Unwind_GetGR
+_Unwind_GetIP
+_Unwind_GetIPInfo
+_Unwind_GetLanguageSpecificData
+_Unwind_GetRegionStart
+_Unwind_GetTextRelBase
+_Unwind_RaiseException
+_Unwind_Resume
+_Unwind_Resume_or_Rethrow
+_Unwind_SetGR
+_Unwind_SetIP
+_ZdaPv
+_ZdaPvRKSt9nothrow_t
+_ZdlPv
+_ZdlPvRKSt9nothrow_t
+_Znam
+_ZnamRKSt9nothrow_t
+_Znwm
+_ZnwmRKSt9nothrow_t
+__FD_CLR_chk
+__FD_ISSET_chk
+__FD_SET_chk
+__android_set_abort_message
+__assert
+__assert2
+__b64_ntop
+__b64_pton
+__bionic_name_mem
+__cxa_atexit
+__cxa_finalize
+__cxa_guard_abort
+__cxa_guard_acquire
+__cxa_guard_release
+__cxa_pure_virtual
+__deregister_frame
+__deregister_frame_info
+__deregister_frame_info_bases
+__dn_comp
+__dn_count_labels
+__dn_skipname
+__errno
+__fgets_chk
+__findenv
+__fp_nquery
+__fp_query
+__fpclassify
+__fpclassifyd
+__fpclassifyf
+__fpclassifyl
+__frame_state_for
+__get_h_errno
+__hostalias
+__isfinite
+__isfinitef
+__isfinitel
+__isinf
+__isinff
+__isinfl
+__isnan
+__isnanf
+__isnanl
+__isnormal
+__isnormalf
+__isnormall
+__libc_current_sigrtmax
+__libc_current_sigrtmin
+__libc_init
+__loc_aton
+__loc_ntoa
+__memcpy_chk
+__memmove_chk
+__memset_chk
+__multf3
+__open_2
+__openat_2
+__p_cdname
+__p_cdnname
+__p_class
+__p_fqname
+__p_fqnname
+__p_option
+__p_query
+__p_rcode
+__p_secstodate
+__p_time
+__p_type
+__popcountdi2
+__pthread_cleanup_pop
+__pthread_cleanup_push
+__pthread_gettid
+__putlong
+__putshort
+__read_chk
+__recvfrom_chk
+__register_frame
+__register_frame_info
+__register_frame_info_bases
+__register_frame_info_table
+__register_frame_info_table_bases
+__register_frame_table
+__res_close
+__res_dnok
+__res_hnok
+__res_hostalias
+__res_isourserver
+__res_mailok
+__res_nameinquery
+__res_nclose
+__res_ninit
+__res_nmkquery
+__res_nquery
+__res_nquerydomain
+__res_nsearch
+__res_nsend
+__res_ownok
+__res_queriesmatch
+__res_querydomain
+__res_randomid
+__res_send
+__res_send_setqhook
+__res_send_setrhook
+__sched_cpualloc
+__sched_cpucount
+__sched_cpufree
+__snprintf_chk
+__sprintf_chk
+__srefill
+__stack_chk_fail
+__stpcpy_chk
+__stpncpy_chk
+__stpncpy_chk2
+__strcat_chk
+__strchr_chk
+__strcpy_chk
+__strlcat_chk
+__strlcpy_chk
+__strlen_chk
+__strncat_chk
+__strncpy_chk
+__strncpy_chk2
+__strrchr_chk
+__sym_ntop
+__sym_ntos
+__sym_ston
+__system_properties_init
+__system_property_add
+__system_property_area_init
+__system_property_find
+__system_property_find_nth
+__system_property_foreach
+__system_property_get
+__system_property_read
+__system_property_serial
+__system_property_set
+__system_property_set_filename
+__system_property_update
+__system_property_wait_any
+__umask_chk
+__vsnprintf_chk
+__vsprintf_chk
+_exit
+_flush_cache
+_getlong
+_getshort
+_longjmp
+_resolv_flush_cache_for_net
+_resolv_set_nameservers_for_net
+_setjmp
+_thread_created_hook
+_tolower
+_toupper
+abort
+abs
+accept
+accept4
+access
+acct
+alarm
+alphasort
+alphasort64
+android_getaddrinfofornet
+android_gethostbyaddrfornet
+android_gethostbynamefornet
+arc4random
+arc4random_addrandom
+arc4random_buf
+arc4random_stir
+arc4random_uniform
+asctime
+asctime_r
+asprintf
+at_quick_exit
+atof
+atoi
+atol
+atoll
+basename
+basename_r
+bind
+bindresvport
+brk
+bsearch
+btowc
+c16rtomb
+c32rtomb
+calloc
+capget
+capset
+cfgetispeed
+cfgetospeed
+cfmakeraw
+cfsetispeed
+cfsetospeed
+cfsetspeed
+chdir
+chmod
+chown
+chroot
+clearenv
+clearerr
+clock
+clock_getres
+clock_gettime
+clock_nanosleep
+clock_settime
+clone
+close
+closedir
+closelog
+cmsg_nxthdr
+connect
+creat
+creat64
+ctime
+ctime_r
+daemon
+delete_module
+difftime
+dirfd
+dirname
+dirname_r
+div
+dlmalloc_inspect_all
+dlmalloc_trim
+dn_expand
+dprintf
+drand48
+dup
+dup2
+dup3
+duplocale
+endmntent
+endpwent
+endservent
+endusershell
+endutent
+epoll_create
+epoll_create1
+epoll_ctl
+epoll_pwait
+epoll_wait
+erand48
+err
+errx
+ether_aton
+ether_aton_r
+ether_ntoa
+ether_ntoa_r
+eventfd
+eventfd_read
+eventfd_write
+execl
+execle
+execlp
+execv
+execve
+execvp
+execvpe
+exit
+faccessat
+fallocate
+fallocate64
+fchdir
+fchmod
+fchmodat
+fchown
+fchownat
+fclose
+fcntl
+fdatasync
+fdopen
+fdopendir
+feof
+ferror
+fflush
+ffs
+fgetc
+fgetln
+fgetpos
+fgets
+fgetwc
+fgetws
+fgetxattr
+fileno
+flistxattr
+flock
+flockfile
+fnmatch
+fopen
+fork
+fpathconf
+fprintf
+fpurge
+fputc
+fputs
+fputwc
+fputws
+fread
+free
+freeaddrinfo
+freelocale
+fremovexattr
+freopen
+fscanf
+fseek
+fseeko
+fsetpos
+fsetxattr
+fstat
+fstat64
+fstatat
+fstatat64
+fstatfs
+fstatfs64
+fstatvfs
+fstatvfs64
+fsync
+ftell
+ftello
+ftok
+ftruncate
+ftruncate64
+ftrylockfile
+fts_children
+fts_close
+fts_open
+fts_read
+fts_set
+ftw
+ftw64
+funlockfile
+funopen
+futimens
+fwide
+fwprintf
+fwrite
+fwscanf
+gai_strerror
+get_malloc_leak_info
+getaddrinfo
+getauxval
+getc
+getc_unlocked
+getchar
+getchar_unlocked
+getcwd
+getdelim
+getegid
+getenv
+geteuid
+getgid
+getgrgid
+getgrnam
+getgrouplist
+getgroups
+gethostbyaddr
+gethostbyname
+gethostbyname2
+gethostbyname_r
+gethostent
+gethostname
+getitimer
+getline
+getlogin
+getmntent
+getmntent_r
+getnameinfo
+getnetbyaddr
+getnetbyname
+getopt
+getopt_long
+getopt_long_only
+getpagesize
+getpeername
+getpgid
+getpgrp
+getpid
+getppid
+getpriority
+getprogname
+getprotobyname
+getprotobynumber
+getpt
+getpwnam
+getpwnam_r
+getpwuid
+getpwuid_r
+getresgid
+getresuid
+getrlimit
+getrlimit64
+getrusage
+gets
+getservbyname
+getservbyport
+getservent
+getsid
+getsockname
+getsockopt
+gettid
+gettimeofday
+getuid
+getusershell
+getutent
+getwc
+getwchar
+getxattr
+gmtime
+gmtime_r
+herror
+hstrerror
+htonl
+htons
+if_indextoname
+if_nametoindex
+imaxabs
+imaxdiv
+inet_addr
+inet_aton
+inet_lnaof
+inet_makeaddr
+inet_netof
+inet_network
+inet_ntoa
+inet_ntop
+inet_pton
+init_module
+initgroups
+initstate
+inotify_add_watch
+inotify_init
+inotify_init1
+inotify_rm_watch
+ioctl
+isalnum
+isalpha
+isascii
+isatty
+isblank
+iscntrl
+isdigit
+isfinite
+isfinitef
+isfinitel
+isgraph
+isinf
+isinff
+isinfl
+islower
+isnan
+isnanf
+isnanl
+isnormal
+isnormalf
+isnormall
+isprint
+ispunct
+isspace
+isupper
+iswalnum
+iswalpha
+iswblank
+iswcntrl
+iswctype
+iswdigit
+iswgraph
+iswlower
+iswprint
+iswpunct
+iswspace
+iswupper
+iswxdigit
+isxdigit
+jrand48
+kill
+killpg
+klogctl
+labs
+lchown
+ldexp
+ldiv
+lfind
+lgetxattr
+link
+linkat
+listen
+listxattr
+llabs
+lldiv
+llistxattr
+localeconv
+localtime
+localtime_r
+localtime_tz
+longjmp
+lrand48
+lremovexattr
+lsearch
+lseek
+lseek64
+lsetxattr
+lstat
+lstat64
+madvise
+mallinfo
+malloc
+malloc_usable_size
+mbrlen
+mbrtoc16
+mbrtoc32
+mbrtowc
+mbsinit
+mbsnrtowcs
+mbsrtowcs
+mbstowcs
+mbtowc
+memalign
+memccpy
+memchr
+memcmp
+memcpy
+memmem
+memmove
+memrchr
+memset
+mincore
+mkdir
+mkdirat
+mkdtemp
+mkfifo
+mknod
+mknodat
+mkstemp
+mkstemp64
+mkstemps
+mktemp
+mktime
+mktime_tz
+mlock
+mlockall
+mmap
+mmap64
+mount
+mprotect
+mrand48
+mremap
+msync
+munlock
+munlockall
+munmap
+nanosleep
+newlocale
+nftw
+nftw64
+nice
+nrand48
+ntohl
+ntohs
+open
+open64
+openat
+openat64
+opendir
+openlog
+pathconf
+pause
+pclose
+perror
+personality
+pipe
+pipe2
+poll
+popen
+posix_fallocate
+posix_fallocate64
+posix_memalign
+ppoll
+prctl
+pread
+pread64
+printf
+prlimit
+prlimit64
+pselect
+psiginfo
+psignal
+pthread_atfork
+pthread_attr_destroy
+pthread_attr_getdetachstate
+pthread_attr_getguardsize
+pthread_attr_getschedparam
+pthread_attr_getschedpolicy
+pthread_attr_getscope
+pthread_attr_getstack
+pthread_attr_getstacksize
+pthread_attr_init
+pthread_attr_setdetachstate
+pthread_attr_setguardsize
+pthread_attr_setschedparam
+pthread_attr_setschedpolicy
+pthread_attr_setscope
+pthread_attr_setstack
+pthread_attr_setstacksize
+pthread_cond_broadcast
+pthread_cond_destroy
+pthread_cond_init
+pthread_cond_signal
+pthread_cond_timedwait
+pthread_cond_wait
+pthread_condattr_destroy
+pthread_condattr_getclock
+pthread_condattr_getpshared
+pthread_condattr_init
+pthread_condattr_setclock
+pthread_condattr_setpshared
+pthread_create
+pthread_detach
+pthread_equal
+pthread_exit
+pthread_getattr_np
+pthread_getcpuclockid
+pthread_getschedparam
+pthread_getspecific
+pthread_join
+pthread_key_create
+pthread_key_delete
+pthread_kill
+pthread_mutex_destroy
+pthread_mutex_init
+pthread_mutex_lock
+pthread_mutex_timedlock
+pthread_mutex_trylock
+pthread_mutex_unlock
+pthread_mutexattr_destroy
+pthread_mutexattr_getpshared
+pthread_mutexattr_gettype
+pthread_mutexattr_init
+pthread_mutexattr_setpshared
+pthread_mutexattr_settype
+pthread_once
+pthread_rwlock_destroy
+pthread_rwlock_init
+pthread_rwlock_rdlock
+pthread_rwlock_timedrdlock
+pthread_rwlock_timedwrlock
+pthread_rwlock_tryrdlock
+pthread_rwlock_trywrlock
+pthread_rwlock_unlock
+pthread_rwlock_wrlock
+pthread_rwlockattr_destroy
+pthread_rwlockattr_getpshared
+pthread_rwlockattr_init
+pthread_rwlockattr_setpshared
+pthread_self
+pthread_setname_np
+pthread_setschedparam
+pthread_setspecific
+pthread_sigmask
+ptrace
+ptsname
+ptsname_r
+putc
+putc_unlocked
+putchar
+putchar_unlocked
+putenv
+puts
+pututline
+putwc
+putwchar
+pwrite
+pwrite64
+qsort
+quick_exit
+raise
+rand
+rand_r
+random
+read
+readahead
+readdir
+readdir64
+readdir64_r
+readdir_r
+readlink
+readlinkat
+readv
+realloc
+realpath
+reboot
+recv
+recvfrom
+recvmmsg
+recvmsg
+regcomp
+regerror
+regexec
+regfree
+remove
+removexattr
+rename
+renameat
+res_init
+res_mkquery
+res_query
+res_search
+rewind
+rewinddir
+rmdir
+sbrk
+scandir
+scandir64
+scanf
+sched_get_priority_max
+sched_get_priority_min
+sched_getaffinity
+sched_getcpu
+sched_getparam
+sched_getscheduler
+sched_rr_get_interval
+sched_setaffinity
+sched_setparam
+sched_setscheduler
+sched_yield
+seed48
+select
+sem_close
+sem_destroy
+sem_getvalue
+sem_init
+sem_open
+sem_post
+sem_timedwait
+sem_trywait
+sem_unlink
+sem_wait
+send
+sendfile
+sendfile64
+sendmmsg
+sendmsg
+sendto
+setbuf
+setbuffer
+setegid
+setenv
+seteuid
+setgid
+setgroups
+setitimer
+setjmp
+setlinebuf
+setlocale
+setlogmask
+setmntent
+setns
+setpgid
+setpgrp
+setpriority
+setprogname
+setregid
+setresgid
+setresuid
+setreuid
+setrlimit
+setrlimit64
+setservent
+setsid
+setsockopt
+setstate
+settimeofday
+setuid
+setusershell
+setutent
+setvbuf
+setxattr
+shutdown
+sigaction
+sigaddset
+sigaltstack
+sigblock
+sigdelset
+sigemptyset
+sigfillset
+siginterrupt
+sigismember
+siglongjmp
+signal
+signalfd
+sigpending
+sigprocmask
+sigsetjmp
+sigsetmask
+sigsuspend
+sigwait
+sleep
+snprintf
+socket
+socketpair
+sprintf
+srand
+srand48
+srandom
+sscanf
+stat
+stat64
+statfs
+statfs64
+statvfs
+statvfs64
+stpcpy
+stpncpy
+strcasecmp
+strcasestr
+strcat
+strchr
+strcmp
+strcoll
+strcpy
+strcspn
+strdup
+strerror
+strerror_r
+strftime
+strftime_tz
+strlcat
+strlcpy
+strlen
+strncasecmp
+strncat
+strncmp
+strncpy
+strndup
+strnlen
+strpbrk
+strptime
+strrchr
+strsep
+strsignal
+strspn
+strstr
+strtod
+strtof
+strtoimax
+strtok
+strtok_r
+strtol
+strtold
+strtoll
+strtoq
+strtoul
+strtoull
+strtoumax
+strtouq
+strxfrm
+swapoff
+swapon
+swprintf
+swscanf
+symlink
+symlinkat
+sync
+syscall
+sysconf
+sysinfo
+syslog
+system
+tcdrain
+tcflow
+tcflush
+tcgetattr
+tcgetpgrp
+tcgetsid
+tcsendbreak
+tcsetattr
+tcsetpgrp
+tdelete
+tdestroy
+tempnam
+tfind
+tgkill
+time
+timegm
+timelocal
+timer_create
+timer_delete
+timer_getoverrun
+timer_gettime
+timer_settime
+timerfd_create
+timerfd_gettime
+timerfd_settime
+times
+tmpfile
+tmpnam
+toascii
+tolower
+toupper
+towlower
+towupper
+truncate
+truncate64
+tsearch
+ttyname
+ttyname_r
+tzset
+umask
+umount
+umount2
+uname
+ungetc
+ungetwc
+unlink
+unlinkat
+unlockpt
+unsetenv
+unshare
+uselocale
+usleep
+utime
+utimensat
+utimes
+utmpname
+vasprintf
+vdprintf
+verr
+verrx
+vfork
+vfprintf
+vfscanf
+vfwprintf
+vfwscanf
+vprintf
+vscanf
+vsnprintf
+vsprintf
+vsscanf
+vswprintf
+vswscanf
+vsyslog
+vwarn
+vwarnx
+vwprintf
+vwscanf
+wait
+wait4
+waitid
+waitpid
+warn
+warnx
+wcpcpy
+wcpncpy
+wcrtomb
+wcscasecmp
+wcscat
+wcschr
+wcscmp
+wcscoll
+wcscpy
+wcscspn
+wcsdup
+wcsftime
+wcslcat
+wcslcpy
+wcslen
+wcsncasecmp
+wcsncat
+wcsncmp
+wcsncpy
+wcsnlen
+wcsnrtombs
+wcspbrk
+wcsrchr
+wcsrtombs
+wcsspn
+wcsstr
+wcstod
+wcstof
+wcstoimax
+wcstok
+wcstol
+wcstold
+wcstoll
+wcstombs
+wcstoul
+wcstoull
+wcstoumax
+wcswidth
+wcsxfrm
+wctob
+wctomb
+wctype
+wcwidth
+wmemchr
+wmemcmp
+wmemcpy
+wmemmove
+wmemset
+wprintf
+write
+writev
+wscanf
diff --git a/ndk/platforms/android-L/arch-mips64/symbols/libc.so.variables.txt b/ndk/platforms/android-L/arch-mips64/symbols/libc.so.variables.txt
new file mode 100644
index 0000000..8115363
--- /dev/null
+++ b/ndk/platforms/android-L/arch-mips64/symbols/libc.so.variables.txt
@@ -0,0 +1,26 @@
+_C_ctype_
+_C_tolower_
+_C_toupper_
+_ZSt7nothrow
+__isthreaded
+__libc_malloc_dispatch
+__p_class_syms
+__p_type_syms
+__progname
+__sF
+__stack_chk_guard
+__system_property_area__
+_ctype_
+_tolower_tab_
+_toupper_tab_
+daylight
+environ
+optarg
+opterr
+optind
+optopt
+optreset
+sys_siglist
+sys_signame
+timezone
+tzname
diff --git a/ndk/platforms/android-20/arch-mips64/symbols/libdl.so.functions.txt b/ndk/platforms/android-L/arch-mips64/symbols/libdl.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/symbols/libdl.so.functions.txt
rename to ndk/platforms/android-L/arch-mips64/symbols/libdl.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-mips64/symbols/libdl.so.variables.txt b/ndk/platforms/android-L/arch-mips64/symbols/libdl.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/symbols/libdl.so.variables.txt
rename to ndk/platforms/android-L/arch-mips64/symbols/libdl.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-mips64/symbols/libjnigraphics.so.functions.txt b/ndk/platforms/android-L/arch-mips64/symbols/libjnigraphics.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/symbols/libjnigraphics.so.functions.txt
rename to ndk/platforms/android-L/arch-mips64/symbols/libjnigraphics.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-mips64/symbols/libjnigraphics.so.variables.txt b/ndk/platforms/android-L/arch-mips64/symbols/libjnigraphics.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/symbols/libjnigraphics.so.variables.txt
rename to ndk/platforms/android-L/arch-mips64/symbols/libjnigraphics.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-mips64/symbols/liblog.so.functions.txt b/ndk/platforms/android-L/arch-mips64/symbols/liblog.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/symbols/liblog.so.functions.txt
rename to ndk/platforms/android-L/arch-mips64/symbols/liblog.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-mips64/symbols/liblog.so.variables.txt b/ndk/platforms/android-L/arch-mips64/symbols/liblog.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-mips64/symbols/liblog.so.variables.txt
rename to ndk/platforms/android-L/arch-mips64/symbols/liblog.so.variables.txt
diff --git a/ndk/platforms/android-L/arch-mips64/symbols/libm.so.functions.txt b/ndk/platforms/android-L/arch-mips64/symbols/libm.so.functions.txt
new file mode 100644
index 0000000..82e7a57
--- /dev/null
+++ b/ndk/platforms/android-L/arch-mips64/symbols/libm.so.functions.txt
@@ -0,0 +1,233 @@
+__addtf3
+__divtf3
+__eqtf2
+__extenddftf2
+__extendsftf2
+__fixtfdi
+__fixtfsi
+__floatsitf
+__getf2
+__gttf2
+__letf2
+__lttf2
+__netf2
+__signbit
+__signbitf
+__signbitl
+__subtf3
+__trunctfdf2
+__trunctfsf2
+acos
+acosf
+acosh
+acoshf
+acoshl
+acosl
+asin
+asinf
+asinh
+asinhf
+asinhl
+asinl
+atan
+atan2
+atan2f
+atan2l
+atanf
+atanh
+atanhf
+atanhl
+atanl
+cbrt
+cbrtf
+cbrtl
+ceil
+ceilf
+ceill
+copysign
+copysignf
+copysignl
+cos
+cosf
+cosh
+coshf
+coshl
+cosl
+drem
+dremf
+erf
+erfc
+erfcf
+erfcl
+erff
+erfl
+exp
+exp2
+exp2f
+exp2l
+expf
+expl
+expm1
+expm1f
+expm1l
+fabs
+fabsf
+fabsl
+fdim
+fdimf
+fdiml
+feclearexcept
+fedisableexcept
+feenableexcept
+fegetenv
+fegetexcept
+fegetexceptflag
+fegetround
+feholdexcept
+feraiseexcept
+fesetenv
+fesetexceptflag
+fesetround
+fetestexcept
+feupdateenv
+finite
+finitef
+floor
+floorf
+floorl
+fma
+fmaf
+fmal
+fmax
+fmaxf
+fmaxl
+fmin
+fminf
+fminl
+fmod
+fmodf
+fmodl
+frexp
+frexpf
+frexpl
+gamma
+gamma_r
+gammaf
+gammaf_r
+hypot
+hypotf
+hypotl
+ilogb
+ilogbf
+ilogbl
+j0
+j0f
+j1
+j1f
+jn
+jnf
+ldexpf
+ldexpl
+lgamma
+lgamma_r
+lgammaf
+lgammaf_r
+lgammal
+llrint
+llrintf
+llrintl
+llround
+llroundf
+llroundl
+log
+log10
+log10f
+log10l
+log1p
+log1pf
+log1pl
+log2
+log2f
+log2l
+logb
+logbf
+logbl
+logf
+logl
+lrint
+lrintf
+lrintl
+lround
+lroundf
+lroundl
+modf
+modff
+modfl
+nan
+nanf
+nanl
+nearbyint
+nearbyintf
+nearbyintl
+nextafter
+nextafterf
+nextafterl
+nexttoward
+nexttowardf
+nexttowardl
+pow
+powf
+powl
+remainder
+remainderf
+remainderl
+remquo
+remquof
+remquol
+rint
+rintf
+rintl
+round
+roundf
+roundl
+scalb
+scalbf
+scalbln
+scalblnf
+scalblnl
+scalbn
+scalbnf
+scalbnl
+significand
+significandf
+significandl
+sin
+sincos
+sincosf
+sincosl
+sinf
+sinh
+sinhf
+sinhl
+sinl
+sqrt
+sqrtf
+sqrtl
+tan
+tanf
+tanh
+tanhf
+tanhl
+tanl
+tgamma
+tgammaf
+tgammal
+trunc
+truncf
+truncl
+y0
+y0f
+y1
+y1f
+yn
+ynf
diff --git a/ndk/platforms/android-20/arch-arm/symbols/libm.so.variables.txt b/ndk/platforms/android-L/arch-mips64/symbols/libm.so.variables.txt
similarity index 100%
copy from ndk/platforms/android-20/arch-arm/symbols/libm.so.variables.txt
copy to ndk/platforms/android-L/arch-mips64/symbols/libm.so.variables.txt
diff --git a/ndk/platforms/android-L/arch-mips64/symbols/libstdc++.so.functions.txt b/ndk/platforms/android-L/arch-mips64/symbols/libstdc++.so.functions.txt
new file mode 100644
index 0000000..7e337ad
--- /dev/null
+++ b/ndk/platforms/android-L/arch-mips64/symbols/libstdc++.so.functions.txt
@@ -0,0 +1 @@
+__this_library_is_now_part_of_libc
diff --git a/ndk/platforms/android-20/arch-mips64/symbols/libEGL.so.variables.txt b/ndk/platforms/android-L/arch-mips64/symbols/libstdc++.so.variables.txt
similarity index 100%
copy from ndk/platforms/android-20/arch-mips64/symbols/libEGL.so.variables.txt
copy to ndk/platforms/android-L/arch-mips64/symbols/libstdc++.so.variables.txt
diff --git a/ndk/platforms/android-L/arch-mips64/symbols/libz.so.functions.txt b/ndk/platforms/android-L/arch-mips64/symbols/libz.so.functions.txt
new file mode 100644
index 0000000..bbd634e
--- /dev/null
+++ b/ndk/platforms/android-L/arch-mips64/symbols/libz.so.functions.txt
@@ -0,0 +1,88 @@
+_tr_align
+_tr_flush_bits
+_tr_flush_block
+_tr_init
+_tr_stored_block
+_tr_tally
+adler32
+adler32_combine
+adler32_combine64
+compress
+compress2
+compressBound
+crc32
+crc32_combine
+crc32_combine64
+deflate
+deflateBound
+deflateCopy
+deflateEnd
+deflateInit2_
+deflateInit_
+deflateParams
+deflatePending
+deflatePrime
+deflateReset
+deflateResetKeep
+deflateSetDictionary
+deflateSetHeader
+deflateTune
+get_crc_table
+gz_error
+gzbuffer
+gzclearerr
+gzclose
+gzclose_r
+gzclose_w
+gzdirect
+gzdopen
+gzeof
+gzerror
+gzflush
+gzgetc
+gzgetc_
+gzgets
+gzoffset
+gzoffset64
+gzopen
+gzopen64
+gzprintf
+gzputc
+gzputs
+gzread
+gzrewind
+gzseek
+gzseek64
+gzsetparams
+gztell
+gztell64
+gzungetc
+gzvprintf
+gzwrite
+inflate
+inflateBack
+inflateBackEnd
+inflateBackInit_
+inflateCopy
+inflateEnd
+inflateGetDictionary
+inflateGetHeader
+inflateInit2_
+inflateInit_
+inflateMark
+inflatePrime
+inflateReset
+inflateReset2
+inflateResetKeep
+inflateSetDictionary
+inflateSync
+inflateSyncPoint
+inflateUndermine
+inflate_fast
+inflate_table
+uncompress
+zError
+zcalloc
+zcfree
+zlibCompileFlags
+zlibVersion
diff --git a/ndk/platforms/android-L/arch-mips64/symbols/libz.so.variables.txt b/ndk/platforms/android-L/arch-mips64/symbols/libz.so.variables.txt
new file mode 100644
index 0000000..c653ee5
--- /dev/null
+++ b/ndk/platforms/android-L/arch-mips64/symbols/libz.so.variables.txt
@@ -0,0 +1,5 @@
+_dist_code
+_length_code
+deflate_copyright
+inflate_copyright
+z_errmsg
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/a.out.h b/ndk/platforms/android-L/arch-x86/include/asm/a.out.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/a.out.h
rename to ndk/platforms/android-L/arch-x86/include/asm/a.out.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/auxvec.h b/ndk/platforms/android-L/arch-x86/include/asm/auxvec.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/auxvec.h
rename to ndk/platforms/android-L/arch-x86/include/asm/auxvec.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/bitsperlong.h b/ndk/platforms/android-L/arch-x86/include/asm/bitsperlong.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/bitsperlong.h
rename to ndk/platforms/android-L/arch-x86/include/asm/bitsperlong.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/boot.h b/ndk/platforms/android-L/arch-x86/include/asm/boot.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/boot.h
rename to ndk/platforms/android-L/arch-x86/include/asm/boot.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/bootparam.h b/ndk/platforms/android-L/arch-x86/include/asm/bootparam.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/bootparam.h
rename to ndk/platforms/android-L/arch-x86/include/asm/bootparam.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/byteorder.h b/ndk/platforms/android-L/arch-x86/include/asm/byteorder.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/byteorder.h
rename to ndk/platforms/android-L/arch-x86/include/asm/byteorder.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/debugreg.h b/ndk/platforms/android-L/arch-x86/include/asm/debugreg.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/debugreg.h
rename to ndk/platforms/android-L/arch-x86/include/asm/debugreg.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/e820.h b/ndk/platforms/android-L/arch-x86/include/asm/e820.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/e820.h
rename to ndk/platforms/android-L/arch-x86/include/asm/e820.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/errno.h b/ndk/platforms/android-L/arch-x86/include/asm/errno.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/errno.h
rename to ndk/platforms/android-L/arch-x86/include/asm/errno.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/fcntl.h b/ndk/platforms/android-L/arch-x86/include/asm/fcntl.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/fcntl.h
rename to ndk/platforms/android-L/arch-x86/include/asm/fcntl.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/hw_breakpoint.h b/ndk/platforms/android-L/arch-x86/include/asm/hw_breakpoint.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/hw_breakpoint.h
rename to ndk/platforms/android-L/arch-x86/include/asm/hw_breakpoint.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/hyperv.h b/ndk/platforms/android-L/arch-x86/include/asm/hyperv.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/hyperv.h
rename to ndk/platforms/android-L/arch-x86/include/asm/hyperv.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/ioctl.h b/ndk/platforms/android-L/arch-x86/include/asm/ioctl.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/ioctl.h
rename to ndk/platforms/android-L/arch-x86/include/asm/ioctl.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/ioctls.h b/ndk/platforms/android-L/arch-x86/include/asm/ioctls.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/ioctls.h
rename to ndk/platforms/android-L/arch-x86/include/asm/ioctls.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/ipcbuf.h b/ndk/platforms/android-L/arch-x86/include/asm/ipcbuf.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/ipcbuf.h
rename to ndk/platforms/android-L/arch-x86/include/asm/ipcbuf.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/ist.h b/ndk/platforms/android-L/arch-x86/include/asm/ist.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/ist.h
rename to ndk/platforms/android-L/arch-x86/include/asm/ist.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/kvm.h b/ndk/platforms/android-L/arch-x86/include/asm/kvm.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/kvm.h
rename to ndk/platforms/android-L/arch-x86/include/asm/kvm.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/kvm_para.h b/ndk/platforms/android-L/arch-x86/include/asm/kvm_para.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/kvm_para.h
rename to ndk/platforms/android-L/arch-x86/include/asm/kvm_para.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/ldt.h b/ndk/platforms/android-L/arch-x86/include/asm/ldt.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/ldt.h
rename to ndk/platforms/android-L/arch-x86/include/asm/ldt.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/mce.h b/ndk/platforms/android-L/arch-x86/include/asm/mce.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/mce.h
rename to ndk/platforms/android-L/arch-x86/include/asm/mce.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/mman.h b/ndk/platforms/android-L/arch-x86/include/asm/mman.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/mman.h
rename to ndk/platforms/android-L/arch-x86/include/asm/mman.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/msgbuf.h b/ndk/platforms/android-L/arch-x86/include/asm/msgbuf.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/msgbuf.h
rename to ndk/platforms/android-L/arch-x86/include/asm/msgbuf.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/msr-index.h b/ndk/platforms/android-L/arch-x86/include/asm/msr-index.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/msr-index.h
rename to ndk/platforms/android-L/arch-x86/include/asm/msr-index.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/msr.h b/ndk/platforms/android-L/arch-x86/include/asm/msr.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/msr.h
rename to ndk/platforms/android-L/arch-x86/include/asm/msr.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/mtrr.h b/ndk/platforms/android-L/arch-x86/include/asm/mtrr.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/mtrr.h
rename to ndk/platforms/android-L/arch-x86/include/asm/mtrr.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/param.h b/ndk/platforms/android-L/arch-x86/include/asm/param.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/param.h
rename to ndk/platforms/android-L/arch-x86/include/asm/param.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/perf_regs.h b/ndk/platforms/android-L/arch-x86/include/asm/perf_regs.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/perf_regs.h
rename to ndk/platforms/android-L/arch-x86/include/asm/perf_regs.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/poll.h b/ndk/platforms/android-L/arch-x86/include/asm/poll.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/poll.h
rename to ndk/platforms/android-L/arch-x86/include/asm/poll.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/posix_types.h b/ndk/platforms/android-L/arch-x86/include/asm/posix_types.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/posix_types.h
rename to ndk/platforms/android-L/arch-x86/include/asm/posix_types.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/posix_types_32.h b/ndk/platforms/android-L/arch-x86/include/asm/posix_types_32.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/posix_types_32.h
rename to ndk/platforms/android-L/arch-x86/include/asm/posix_types_32.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/posix_types_64.h b/ndk/platforms/android-L/arch-x86/include/asm/posix_types_64.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/posix_types_64.h
rename to ndk/platforms/android-L/arch-x86/include/asm/posix_types_64.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/posix_types_x32.h b/ndk/platforms/android-L/arch-x86/include/asm/posix_types_x32.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/posix_types_x32.h
rename to ndk/platforms/android-L/arch-x86/include/asm/posix_types_x32.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/prctl.h b/ndk/platforms/android-L/arch-x86/include/asm/prctl.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/prctl.h
rename to ndk/platforms/android-L/arch-x86/include/asm/prctl.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/processor-flags.h b/ndk/platforms/android-L/arch-x86/include/asm/processor-flags.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/processor-flags.h
rename to ndk/platforms/android-L/arch-x86/include/asm/processor-flags.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/ptrace-abi.h b/ndk/platforms/android-L/arch-x86/include/asm/ptrace-abi.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/ptrace-abi.h
rename to ndk/platforms/android-L/arch-x86/include/asm/ptrace-abi.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/ptrace.h b/ndk/platforms/android-L/arch-x86/include/asm/ptrace.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/ptrace.h
rename to ndk/platforms/android-L/arch-x86/include/asm/ptrace.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/resource.h b/ndk/platforms/android-L/arch-x86/include/asm/resource.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/resource.h
rename to ndk/platforms/android-L/arch-x86/include/asm/resource.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/sembuf.h b/ndk/platforms/android-L/arch-x86/include/asm/sembuf.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/sembuf.h
rename to ndk/platforms/android-L/arch-x86/include/asm/sembuf.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/setup.h b/ndk/platforms/android-L/arch-x86/include/asm/setup.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/setup.h
rename to ndk/platforms/android-L/arch-x86/include/asm/setup.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/shmbuf.h b/ndk/platforms/android-L/arch-x86/include/asm/shmbuf.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/shmbuf.h
rename to ndk/platforms/android-L/arch-x86/include/asm/shmbuf.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/sigcontext.h b/ndk/platforms/android-L/arch-x86/include/asm/sigcontext.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/sigcontext.h
rename to ndk/platforms/android-L/arch-x86/include/asm/sigcontext.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/sigcontext32.h b/ndk/platforms/android-L/arch-x86/include/asm/sigcontext32.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/sigcontext32.h
rename to ndk/platforms/android-L/arch-x86/include/asm/sigcontext32.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/siginfo.h b/ndk/platforms/android-L/arch-x86/include/asm/siginfo.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/siginfo.h
rename to ndk/platforms/android-L/arch-x86/include/asm/siginfo.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/signal.h b/ndk/platforms/android-L/arch-x86/include/asm/signal.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/signal.h
rename to ndk/platforms/android-L/arch-x86/include/asm/signal.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/socket.h b/ndk/platforms/android-L/arch-x86/include/asm/socket.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/socket.h
rename to ndk/platforms/android-L/arch-x86/include/asm/socket.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/sockios.h b/ndk/platforms/android-L/arch-x86/include/asm/sockios.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/sockios.h
rename to ndk/platforms/android-L/arch-x86/include/asm/sockios.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/stat.h b/ndk/platforms/android-L/arch-x86/include/asm/stat.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/stat.h
rename to ndk/platforms/android-L/arch-x86/include/asm/stat.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/statfs.h b/ndk/platforms/android-L/arch-x86/include/asm/statfs.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/statfs.h
rename to ndk/platforms/android-L/arch-x86/include/asm/statfs.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/svm.h b/ndk/platforms/android-L/arch-x86/include/asm/svm.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/svm.h
rename to ndk/platforms/android-L/arch-x86/include/asm/svm.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/swab.h b/ndk/platforms/android-L/arch-x86/include/asm/swab.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/swab.h
rename to ndk/platforms/android-L/arch-x86/include/asm/swab.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/termbits.h b/ndk/platforms/android-L/arch-x86/include/asm/termbits.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/termbits.h
rename to ndk/platforms/android-L/arch-x86/include/asm/termbits.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/termios.h b/ndk/platforms/android-L/arch-x86/include/asm/termios.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/termios.h
rename to ndk/platforms/android-L/arch-x86/include/asm/termios.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/types.h b/ndk/platforms/android-L/arch-x86/include/asm/types.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/types.h
rename to ndk/platforms/android-L/arch-x86/include/asm/types.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/ucontext.h b/ndk/platforms/android-L/arch-x86/include/asm/ucontext.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/ucontext.h
rename to ndk/platforms/android-L/arch-x86/include/asm/ucontext.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/unistd.h b/ndk/platforms/android-L/arch-x86/include/asm/unistd.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/unistd.h
rename to ndk/platforms/android-L/arch-x86/include/asm/unistd.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/unistd_32.h b/ndk/platforms/android-L/arch-x86/include/asm/unistd_32.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/unistd_32.h
rename to ndk/platforms/android-L/arch-x86/include/asm/unistd_32.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/unistd_64.h b/ndk/platforms/android-L/arch-x86/include/asm/unistd_64.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/unistd_64.h
rename to ndk/platforms/android-L/arch-x86/include/asm/unistd_64.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/unistd_x32.h b/ndk/platforms/android-L/arch-x86/include/asm/unistd_x32.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/unistd_x32.h
rename to ndk/platforms/android-L/arch-x86/include/asm/unistd_x32.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/vm86.h b/ndk/platforms/android-L/arch-x86/include/asm/vm86.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/vm86.h
rename to ndk/platforms/android-L/arch-x86/include/asm/vm86.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/vmx.h b/ndk/platforms/android-L/arch-x86/include/asm/vmx.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/vmx.h
rename to ndk/platforms/android-L/arch-x86/include/asm/vmx.h
diff --git a/ndk/platforms/android-20/arch-x86/include/asm/vsyscall.h b/ndk/platforms/android-L/arch-x86/include/asm/vsyscall.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/asm/vsyscall.h
rename to ndk/platforms/android-L/arch-x86/include/asm/vsyscall.h
diff --git a/ndk/platforms/android-20/arch-x86/include/i386/elf_machdep.h b/ndk/platforms/android-L/arch-x86/include/i386/elf_machdep.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/i386/elf_machdep.h
rename to ndk/platforms/android-L/arch-x86/include/i386/elf_machdep.h
diff --git a/ndk/platforms/android-20/arch-x86/include/machine/asm.h b/ndk/platforms/android-L/arch-x86/include/machine/asm.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/machine/asm.h
rename to ndk/platforms/android-L/arch-x86/include/machine/asm.h
diff --git a/ndk/platforms/android-20/arch-x86/include/machine/elf_machdep.h b/ndk/platforms/android-L/arch-x86/include/machine/elf_machdep.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/machine/elf_machdep.h
rename to ndk/platforms/android-L/arch-x86/include/machine/elf_machdep.h
diff --git a/ndk/platforms/android-20/arch-x86/include/machine/endian.h b/ndk/platforms/android-L/arch-x86/include/machine/endian.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/machine/endian.h
rename to ndk/platforms/android-L/arch-x86/include/machine/endian.h
diff --git a/ndk/platforms/android-20/arch-x86/include/machine/exec.h b/ndk/platforms/android-L/arch-x86/include/machine/exec.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/machine/exec.h
rename to ndk/platforms/android-L/arch-x86/include/machine/exec.h
diff --git a/ndk/platforms/android-L/arch-x86/include/machine/fenv.h b/ndk/platforms/android-L/arch-x86/include/machine/fenv.h
new file mode 100644
index 0000000..de45add
--- /dev/null
+++ b/ndk/platforms/android-L/arch-x86/include/machine/fenv.h
@@ -0,0 +1,69 @@
+/*-
+ * Copyright (c) 2004-2005 David Schultz <das@FreeBSD.ORG>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD: src/lib/msun/i387/fenv.h,v 1.4 2005/03/17 22:21:46 das Exp $
+ */
+
+#ifndef _I387_FENV_H_
+#define _I387_FENV_H_
+
+#include <sys/types.h>
+
+__BEGIN_DECLS
+
+/*
+ * To preserve binary compatibility with FreeBSD 5.3, we pack the
+ * mxcsr into some reserved fields, rather than changing sizeof(fenv_t).
+ */
+typedef struct {
+  __uint16_t __control;
+  __uint16_t __mxcsr_hi;
+  __uint16_t __status;
+  __uint16_t __mxcsr_lo;
+  __uint32_t __tag;
+  char       __other[16];
+} fenv_t;
+
+typedef __uint16_t fexcept_t;
+
+/* Exception flags */
+#define FE_INVALID    0x01
+#define FE_DENORMAL   0x02
+#define FE_DIVBYZERO  0x04
+#define FE_OVERFLOW   0x08
+#define FE_UNDERFLOW  0x10
+#define FE_INEXACT    0x20
+#define FE_ALL_EXCEPT (FE_DIVBYZERO | FE_DENORMAL | FE_INEXACT | \
+                       FE_INVALID | FE_OVERFLOW | FE_UNDERFLOW)
+
+/* Rounding modes */
+#define FE_TONEAREST  0x0000
+#define FE_DOWNWARD   0x0400
+#define FE_UPWARD     0x0800
+#define FE_TOWARDZERO 0x0c00
+
+__END_DECLS
+
+#endif /* !I387_FENV_H_ */
diff --git a/ndk/platforms/android-20/arch-x86/include/machine/setjmp.h b/ndk/platforms/android-L/arch-x86/include/machine/setjmp.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/include/machine/setjmp.h
rename to ndk/platforms/android-L/arch-x86/include/machine/setjmp.h
diff --git a/ndk/platforms/android-L/arch-x86/lib/libc.a b/ndk/platforms/android-L/arch-x86/lib/libc.a
new file mode 100644
index 0000000..648dd66
--- /dev/null
+++ b/ndk/platforms/android-L/arch-x86/lib/libc.a
Binary files differ
diff --git a/ndk/platforms/android-L/arch-x86/lib/libm.a b/ndk/platforms/android-L/arch-x86/lib/libm.a
new file mode 100644
index 0000000..5b75f1d
--- /dev/null
+++ b/ndk/platforms/android-L/arch-x86/lib/libm.a
Binary files differ
diff --git a/ndk/platforms/android-L/arch-x86/lib/libstdc++.a b/ndk/platforms/android-L/arch-x86/lib/libstdc++.a
new file mode 100644
index 0000000..73adc5f
--- /dev/null
+++ b/ndk/platforms/android-L/arch-x86/lib/libstdc++.a
Binary files differ
diff --git a/ndk/platforms/android-L/arch-x86/lib/libz.a b/ndk/platforms/android-L/arch-x86/lib/libz.a
new file mode 100644
index 0000000..75ae50e
--- /dev/null
+++ b/ndk/platforms/android-L/arch-x86/lib/libz.a
Binary files differ
diff --git a/ndk/platforms/android-20/arch-x86/symbols/libOpenMAXAL.so.functions.txt b/ndk/platforms/android-L/arch-x86/symbols/libOpenMAXAL.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/symbols/libOpenMAXAL.so.functions.txt
rename to ndk/platforms/android-L/arch-x86/symbols/libOpenMAXAL.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-x86/symbols/libOpenMAXAL.so.variables.txt b/ndk/platforms/android-L/arch-x86/symbols/libOpenMAXAL.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/symbols/libOpenMAXAL.so.variables.txt
rename to ndk/platforms/android-L/arch-x86/symbols/libOpenMAXAL.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-x86/symbols/libOpenSLES.so.functions.txt b/ndk/platforms/android-L/arch-x86/symbols/libOpenSLES.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/symbols/libOpenSLES.so.functions.txt
rename to ndk/platforms/android-L/arch-x86/symbols/libOpenSLES.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-x86/symbols/libOpenSLES.so.variables.txt b/ndk/platforms/android-L/arch-x86/symbols/libOpenSLES.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/symbols/libOpenSLES.so.variables.txt
rename to ndk/platforms/android-L/arch-x86/symbols/libOpenSLES.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-x86/symbols/libandroid.so.functions.txt b/ndk/platforms/android-L/arch-x86/symbols/libandroid.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/symbols/libandroid.so.functions.txt
rename to ndk/platforms/android-L/arch-x86/symbols/libandroid.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-x86/symbols/libandroid.so.variables.txt b/ndk/platforms/android-L/arch-x86/symbols/libandroid.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/symbols/libandroid.so.variables.txt
rename to ndk/platforms/android-L/arch-x86/symbols/libandroid.so.variables.txt
diff --git a/ndk/platforms/android-L/arch-x86/symbols/libc.so.functions.txt b/ndk/platforms/android-L/arch-x86/symbols/libc.so.functions.txt
new file mode 100644
index 0000000..5e02c50
--- /dev/null
+++ b/ndk/platforms/android-L/arch-x86/symbols/libc.so.functions.txt
@@ -0,0 +1,1124 @@
+SHA1Final
+SHA1Init
+SHA1Transform
+SHA1Update
+_Exit
+_Unwind_Backtrace
+_Unwind_DeleteException
+_Unwind_FindEnclosingFunction
+_Unwind_Find_FDE
+_Unwind_ForcedUnwind
+_Unwind_GetCFA
+_Unwind_GetDataRelBase
+_Unwind_GetGR
+_Unwind_GetIP
+_Unwind_GetIPInfo
+_Unwind_GetLanguageSpecificData
+_Unwind_GetRegionStart
+_Unwind_GetTextRelBase
+_Unwind_RaiseException
+_Unwind_Resume
+_Unwind_Resume_or_Rethrow
+_Unwind_SetGR
+_Unwind_SetIP
+_ZdaPv
+_ZdaPvRKSt9nothrow_t
+_ZdlPv
+_ZdlPvRKSt9nothrow_t
+_Znaj
+_ZnajRKSt9nothrow_t
+_Znwj
+_ZnwjRKSt9nothrow_t
+__FD_CLR_chk
+__FD_ISSET_chk
+__FD_SET_chk
+__accept4
+__android_set_abort_message
+__assert
+__assert2
+__b64_ntop
+__b64_pton
+__bionic_name_mem
+__brk
+__connect
+__cxa_atexit
+__cxa_finalize
+__cxa_guard_abort
+__cxa_guard_acquire
+__cxa_guard_release
+__cxa_pure_virtual
+__deregister_frame
+__deregister_frame_info
+__deregister_frame_info_bases
+__divdi3
+__dn_comp
+__dn_count_labels
+__dn_skipname
+__epoll_pwait
+__errno
+__exit
+__fcntl64
+__fgets_chk
+__findenv
+__fp_nquery
+__fp_query
+__fpclassify
+__fpclassifyd
+__fpclassifyf
+__fpclassifyl
+__frame_state_for
+__fstatfs64
+__futex_wait
+__futex_wake
+__get_h_errno
+__get_tls
+__getcpu
+__getcwd
+__getdents64
+__getpriority
+__hostalias
+__ioctl
+__isfinite
+__isfinitef
+__isfinitel
+__isinf
+__isinff
+__isinfl
+__isnan
+__isnanf
+__isnanl
+__isnormal
+__isnormalf
+__isnormall
+__libc_current_sigrtmax
+__libc_current_sigrtmin
+__libc_init
+__llseek
+__loc_aton
+__loc_ntoa
+__memcpy_chk
+__memmove_chk
+__memset_chk
+__mmap2
+__moddi3
+__open
+__open_2
+__openat
+__openat_2
+__p_cdname
+__p_cdnname
+__p_class
+__p_fqname
+__p_fqnname
+__p_option
+__p_query
+__p_rcode
+__p_secstodate
+__p_time
+__p_type
+__popcountsi2
+__ppoll
+__pselect6
+__pthread_cleanup_pop
+__pthread_cleanup_push
+__pthread_gettid
+__ptrace
+__putlong
+__putshort
+__read_chk
+__reboot
+__recvfrom_chk
+__register_frame
+__register_frame_info
+__register_frame_info_bases
+__register_frame_info_table
+__register_frame_info_table_bases
+__register_frame_table
+__res_close
+__res_dnok
+__res_hnok
+__res_hostalias
+__res_isourserver
+__res_mailok
+__res_nameinquery
+__res_nclose
+__res_ninit
+__res_nmkquery
+__res_nquery
+__res_nquerydomain
+__res_nsearch
+__res_nsend
+__res_ownok
+__res_queriesmatch
+__res_querydomain
+__res_randomid
+__res_send
+__res_send_setqhook
+__res_send_setrhook
+__rt_sigaction
+__rt_sigpending
+__rt_sigprocmask
+__rt_sigsuspend
+__rt_sigtimedwait
+__sched_cpualloc
+__sched_cpucount
+__sched_cpufree
+__sched_getaffinity
+__set_errno
+__set_thread_area
+__set_tid_address
+__sigaction
+__signalfd4
+__snprintf_chk
+__socket
+__sprintf_chk
+__srefill
+__srget
+__stack_chk_fail
+__statfs64
+__stpcpy_chk
+__stpncpy_chk
+__stpncpy_chk2
+__strcat_chk
+__strchr_chk
+__strcpy_chk
+__strlcat_chk
+__strlcpy_chk
+__strlen_chk
+__strncat_chk
+__strncpy_chk
+__strncpy_chk2
+__strrchr_chk
+__swbuf
+__sym_ntop
+__sym_ntos
+__sym_ston
+__system_properties_init
+__system_property_add
+__system_property_area_init
+__system_property_find
+__system_property_find_nth
+__system_property_foreach
+__system_property_get
+__system_property_read
+__system_property_serial
+__system_property_set
+__system_property_set_filename
+__system_property_update
+__system_property_wait_any
+__timer_create
+__timer_delete
+__timer_getoverrun
+__timer_gettime
+__timer_settime
+__udivdi3
+__umask_chk
+__umoddi3
+__vsnprintf_chk
+__vsprintf_chk
+__wait4
+__waitid
+_exit
+_getlong
+_getshort
+_longjmp
+_resolv_flush_cache_for_net
+_resolv_set_nameservers_for_net
+_setjmp
+_thread_created_hook
+_tolower
+_toupper
+abort
+abs
+accept
+accept4
+access
+acct
+alarm
+alphasort
+alphasort64
+android_getaddrinfofornet
+android_gethostbyaddrfornet
+android_gethostbynamefornet
+arc4random
+arc4random_addrandom
+arc4random_buf
+arc4random_stir
+arc4random_uniform
+asctime
+asctime64
+asctime64_r
+asctime_r
+asprintf
+at_quick_exit
+atof
+atoi
+atol
+atoll
+basename
+basename_r
+bcopy
+bind
+bindresvport
+brk
+bsd_signal
+bsearch
+btowc
+bzero
+c16rtomb
+c32rtomb
+calloc
+capget
+capset
+cfgetispeed
+cfgetospeed
+cfmakeraw
+cfsetispeed
+cfsetospeed
+cfsetspeed
+chdir
+chmod
+chown
+chroot
+clearenv
+clearerr
+clock
+clock_getres
+clock_gettime
+clock_nanosleep
+clock_settime
+clone
+close
+closedir
+closelog
+closelog_r
+cmsg_nxthdr
+connect
+creat
+creat64
+ctime
+ctime64
+ctime64_r
+ctime_r
+daemon
+delete_module
+difftime
+dirfd
+dirname
+dirname_r
+div
+dlmalloc_inspect_all
+dlmalloc_trim
+dn_expand
+dprintf
+drand48
+dup
+dup2
+dup3
+duplocale
+endmntent
+endpwent
+endservent
+endusershell
+endutent
+epoll_create
+epoll_create1
+epoll_ctl
+epoll_pwait
+epoll_wait
+erand48
+err
+errx
+ether_aton
+ether_aton_r
+ether_ntoa
+ether_ntoa_r
+eventfd
+eventfd_read
+eventfd_write
+execl
+execle
+execlp
+execv
+execve
+execvp
+execvpe
+exit
+faccessat
+fallocate
+fallocate64
+fchdir
+fchmod
+fchmodat
+fchown
+fchownat
+fclose
+fcntl
+fdatasync
+fdopen
+fdopendir
+fdprintf
+feof
+ferror
+fflush
+ffs
+fgetc
+fgetln
+fgetpos
+fgets
+fgetwc
+fgetws
+fgetxattr
+fileno
+flistxattr
+flock
+flockfile
+fnmatch
+fopen
+fork
+fpathconf
+fprintf
+fpurge
+fputc
+fputs
+fputwc
+fputws
+fread
+free
+freeaddrinfo
+freelocale
+fremovexattr
+freopen
+fscanf
+fseek
+fseeko
+fsetpos
+fsetxattr
+fstat
+fstat64
+fstatat
+fstatat64
+fstatfs
+fstatfs64
+fstatvfs
+fstatvfs64
+fsync
+ftell
+ftello
+ftime
+ftok
+ftruncate
+ftruncate64
+ftrylockfile
+fts_children
+fts_close
+fts_open
+fts_read
+fts_set
+ftw
+ftw64
+funlockfile
+funopen
+futimens
+fwide
+fwprintf
+fwrite
+fwscanf
+gai_strerror
+get_malloc_leak_info
+getaddrinfo
+getauxval
+getc
+getc_unlocked
+getchar
+getchar_unlocked
+getcwd
+getdelim
+getdents
+getdtablesize
+getegid
+getenv
+geteuid
+getgid
+getgrgid
+getgrnam
+getgrouplist
+getgroups
+gethostbyaddr
+gethostbyname
+gethostbyname2
+gethostbyname_r
+gethostent
+gethostname
+getitimer
+getline
+getlogin
+getmntent
+getmntent_r
+getnameinfo
+getnetbyaddr
+getnetbyname
+getopt
+getopt_long
+getopt_long_only
+getpagesize
+getpeername
+getpgid
+getpgrp
+getpid
+getppid
+getpriority
+getprogname
+getprotobyname
+getprotobynumber
+getpt
+getpwnam
+getpwnam_r
+getpwuid
+getpwuid_r
+getresgid
+getresuid
+getrlimit
+getrlimit64
+getrusage
+gets
+getservbyname
+getservbyport
+getservent
+getsid
+getsockname
+getsockopt
+gettid
+gettimeofday
+getuid
+getusershell
+getutent
+getwc
+getwchar
+getxattr
+gmtime
+gmtime64
+gmtime64_r
+gmtime_r
+herror
+hstrerror
+htonl
+htons
+if_indextoname
+if_nametoindex
+imaxabs
+imaxdiv
+index
+inet_addr
+inet_aton
+inet_lnaof
+inet_makeaddr
+inet_netof
+inet_network
+inet_ntoa
+inet_ntop
+inet_pton
+init_module
+initgroups
+initstate
+inotify_add_watch
+inotify_init
+inotify_init1
+inotify_rm_watch
+ioctl
+isalnum
+isalpha
+isascii
+isatty
+isblank
+iscntrl
+isdigit
+isfinite
+isfinitef
+isfinitel
+isgraph
+isinf
+isinff
+isinfl
+islower
+isnan
+isnanf
+isnanl
+isnormal
+isnormalf
+isnormall
+isprint
+ispunct
+issetugid
+isspace
+isupper
+iswalnum
+iswalpha
+iswblank
+iswcntrl
+iswctype
+iswdigit
+iswgraph
+iswlower
+iswprint
+iswpunct
+iswspace
+iswupper
+iswxdigit
+isxdigit
+jrand48
+kill
+killpg
+klogctl
+labs
+lchown
+ldexp
+ldiv
+lfind
+lgetxattr
+link
+linkat
+listen
+listxattr
+llabs
+lldiv
+llistxattr
+localeconv
+localtime
+localtime64
+localtime64_r
+localtime_r
+localtime_tz
+longjmp
+lrand48
+lremovexattr
+lsearch
+lseek
+lseek64
+lsetxattr
+lstat
+lstat64
+madvise
+mallinfo
+malloc
+malloc_usable_size
+mbrlen
+mbrtoc16
+mbrtoc32
+mbrtowc
+mbsinit
+mbsnrtowcs
+mbsrtowcs
+mbstowcs
+mbtowc
+memalign
+memccpy
+memchr
+memcmp
+memcpy
+memmem
+memmove
+memrchr
+memset
+memswap
+mincore
+mkdir
+mkdirat
+mkdtemp
+mkfifo
+mknod
+mknodat
+mkstemp
+mkstemp64
+mkstemps
+mktemp
+mktime
+mktime64
+mktime_tz
+mlock
+mlockall
+mmap
+mmap64
+mount
+mprotect
+mrand48
+mremap
+msync
+munlock
+munlockall
+munmap
+nanosleep
+newlocale
+nftw
+nftw64
+nice
+nrand48
+ntohl
+ntohs
+open
+open64
+openat
+openat64
+opendir
+openlog
+openlog_r
+pathconf
+pause
+pclose
+perror
+personality
+pipe
+pipe2
+poll
+popen
+posix_fallocate
+posix_fallocate64
+posix_memalign
+ppoll
+prctl
+pread
+pread64
+printf
+prlimit64
+pselect
+psiginfo
+psignal
+pthread_atfork
+pthread_attr_destroy
+pthread_attr_getdetachstate
+pthread_attr_getguardsize
+pthread_attr_getschedparam
+pthread_attr_getschedpolicy
+pthread_attr_getscope
+pthread_attr_getstack
+pthread_attr_getstackaddr
+pthread_attr_getstacksize
+pthread_attr_init
+pthread_attr_setdetachstate
+pthread_attr_setguardsize
+pthread_attr_setschedparam
+pthread_attr_setschedpolicy
+pthread_attr_setscope
+pthread_attr_setstack
+pthread_attr_setstackaddr
+pthread_attr_setstacksize
+pthread_cond_broadcast
+pthread_cond_destroy
+pthread_cond_init
+pthread_cond_signal
+pthread_cond_timedwait
+pthread_cond_timedwait_monotonic
+pthread_cond_timedwait_monotonic_np
+pthread_cond_timedwait_relative_np
+pthread_cond_timeout_np
+pthread_cond_wait
+pthread_condattr_destroy
+pthread_condattr_getclock
+pthread_condattr_getpshared
+pthread_condattr_init
+pthread_condattr_setclock
+pthread_condattr_setpshared
+pthread_create
+pthread_detach
+pthread_equal
+pthread_exit
+pthread_getattr_np
+pthread_getcpuclockid
+pthread_getschedparam
+pthread_getspecific
+pthread_join
+pthread_key_create
+pthread_key_delete
+pthread_kill
+pthread_mutex_destroy
+pthread_mutex_init
+pthread_mutex_lock
+pthread_mutex_lock_timeout_np
+pthread_mutex_timedlock
+pthread_mutex_trylock
+pthread_mutex_unlock
+pthread_mutexattr_destroy
+pthread_mutexattr_getpshared
+pthread_mutexattr_gettype
+pthread_mutexattr_init
+pthread_mutexattr_setpshared
+pthread_mutexattr_settype
+pthread_once
+pthread_rwlock_destroy
+pthread_rwlock_init
+pthread_rwlock_rdlock
+pthread_rwlock_timedrdlock
+pthread_rwlock_timedwrlock
+pthread_rwlock_tryrdlock
+pthread_rwlock_trywrlock
+pthread_rwlock_unlock
+pthread_rwlock_wrlock
+pthread_rwlockattr_destroy
+pthread_rwlockattr_getpshared
+pthread_rwlockattr_init
+pthread_rwlockattr_setpshared
+pthread_self
+pthread_setname_np
+pthread_setschedparam
+pthread_setspecific
+pthread_sigmask
+ptrace
+ptsname
+ptsname_r
+putc
+putc_unlocked
+putchar
+putchar_unlocked
+putenv
+puts
+pututline
+putw
+putwc
+putwchar
+pvalloc
+pwrite
+pwrite64
+qsort
+quick_exit
+raise
+rand
+rand_r
+random
+read
+readahead
+readdir
+readdir64
+readdir64_r
+readdir_r
+readlink
+readlinkat
+readv
+realloc
+realpath
+reboot
+recv
+recvfrom
+recvmmsg
+recvmsg
+regcomp
+regerror
+regexec
+regfree
+remove
+removexattr
+rename
+renameat
+res_init
+res_mkquery
+res_query
+res_search
+rewind
+rewinddir
+rmdir
+sbrk
+scandir
+scandir64
+scanf
+sched_get_priority_max
+sched_get_priority_min
+sched_getaffinity
+sched_getcpu
+sched_getparam
+sched_getscheduler
+sched_rr_get_interval
+sched_setaffinity
+sched_setparam
+sched_setscheduler
+sched_yield
+seed48
+select
+sem_close
+sem_destroy
+sem_getvalue
+sem_init
+sem_open
+sem_post
+sem_timedwait
+sem_trywait
+sem_unlink
+sem_wait
+send
+sendfile
+sendfile64
+sendmmsg
+sendmsg
+sendto
+setbuf
+setbuffer
+setegid
+setenv
+seteuid
+setgid
+setgroups
+setitimer
+setjmp
+setlinebuf
+setlocale
+setlogmask
+setlogmask_r
+setmntent
+setns
+setpgid
+setpgrp
+setpriority
+setprogname
+setregid
+setresgid
+setresuid
+setreuid
+setrlimit
+setrlimit64
+setservent
+setsid
+setsockopt
+setstate
+settimeofday
+setuid
+setusershell
+setutent
+setvbuf
+setxattr
+shutdown
+sigaction
+sigaddset
+sigaltstack
+sigblock
+sigdelset
+sigemptyset
+sigfillset
+siginterrupt
+sigismember
+siglongjmp
+signal
+signalfd
+sigpending
+sigprocmask
+sigsetjmp
+sigsetmask
+sigsuspend
+sigwait
+sleep
+snprintf
+socket
+socketpair
+sprintf
+srand
+srand48
+srandom
+sscanf
+stat
+stat64
+statfs
+statfs64
+statvfs
+statvfs64
+stpcpy
+stpncpy
+strcasecmp
+strcasestr
+strcat
+strchr
+strcmp
+strcoll
+strcpy
+strcspn
+strdup
+strerror
+strerror_r
+strftime
+strftime_tz
+strlcat
+strlcpy
+strlen
+strncasecmp
+strncat
+strncmp
+strncpy
+strndup
+strnlen
+strntoimax
+strntoumax
+strpbrk
+strptime
+strrchr
+strsep
+strsignal
+strspn
+strstr
+strtod
+strtof
+strtoimax
+strtok
+strtok_r
+strtol
+strtold
+strtoll
+strtoq
+strtotimeval
+strtoul
+strtoull
+strtoumax
+strtouq
+strxfrm
+swapoff
+swapon
+swprintf
+swscanf
+symlink
+symlinkat
+sync
+syscall
+sysconf
+sysinfo
+syslog
+syslog_r
+system
+sysv_signal
+tcdrain
+tcflow
+tcflush
+tcgetattr
+tcgetpgrp
+tcgetsid
+tcsendbreak
+tcsetattr
+tcsetpgrp
+tdelete
+tdestroy
+tempnam
+tfind
+tgkill
+time
+timegm
+timegm64
+timelocal
+timelocal64
+timer_create
+timer_delete
+timer_getoverrun
+timer_gettime
+timer_settime
+timerfd_create
+timerfd_gettime
+timerfd_settime
+times
+tkill
+tmpfile
+tmpnam
+toascii
+tolower
+toupper
+towlower
+towupper
+truncate
+truncate64
+tsearch
+ttyname
+ttyname_r
+tzset
+umask
+umount
+umount2
+uname
+ungetc
+ungetwc
+unlink
+unlinkat
+unlockpt
+unsetenv
+unshare
+uselocale
+usleep
+utime
+utimensat
+utimes
+utmpname
+valloc
+vasprintf
+vdprintf
+verr
+verrx
+vfdprintf
+vfork
+vfprintf
+vfscanf
+vfwprintf
+vfwscanf
+vprintf
+vscanf
+vsnprintf
+vsprintf
+vsscanf
+vswprintf
+vswscanf
+vsyslog
+vsyslog_r
+vwarn
+vwarnx
+vwprintf
+vwscanf
+wait
+wait3
+wait4
+waitid
+waitpid
+warn
+warnx
+wcpcpy
+wcpncpy
+wcrtomb
+wcscasecmp
+wcscat
+wcschr
+wcscmp
+wcscoll
+wcscpy
+wcscspn
+wcsdup
+wcsftime
+wcslcat
+wcslcpy
+wcslen
+wcsncasecmp
+wcsncat
+wcsncmp
+wcsncpy
+wcsnlen
+wcsnrtombs
+wcspbrk
+wcsrchr
+wcsrtombs
+wcsspn
+wcsstr
+wcstod
+wcstof
+wcstoimax
+wcstok
+wcstol
+wcstold
+wcstoll
+wcstombs
+wcstoul
+wcstoull
+wcstoumax
+wcswcs
+wcswidth
+wcsxfrm
+wctob
+wctomb
+wctype
+wcwidth
+wmemchr
+wmemcmp
+wmemcpy
+wmemmove
+wmemset
+wprintf
+write
+writev
+wscanf
diff --git a/ndk/platforms/android-L/arch-x86/symbols/libc.so.variables.txt b/ndk/platforms/android-L/arch-x86/symbols/libc.so.variables.txt
new file mode 100644
index 0000000..785e924
--- /dev/null
+++ b/ndk/platforms/android-L/arch-x86/symbols/libc.so.variables.txt
@@ -0,0 +1,30 @@
+_C_ctype_
+_C_tolower_
+_C_toupper_
+_ZSt7nothrow
+__bionic_brk
+__isthreaded
+__libc_malloc_dispatch
+__p_class_syms
+__p_type_syms
+__page_shift
+__page_size
+__popcount_tab
+__progname
+__sF
+__stack_chk_guard
+__system_property_area__
+_ctype_
+_tolower_tab_
+_toupper_tab_
+daylight
+environ
+optarg
+opterr
+optind
+optopt
+optreset
+sys_siglist
+sys_signame
+timezone
+tzname
diff --git a/ndk/platforms/android-20/arch-x86/symbols/libdl.so.functions.txt b/ndk/platforms/android-L/arch-x86/symbols/libdl.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/symbols/libdl.so.functions.txt
rename to ndk/platforms/android-L/arch-x86/symbols/libdl.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-x86/symbols/libdl.so.variables.txt b/ndk/platforms/android-L/arch-x86/symbols/libdl.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/symbols/libdl.so.variables.txt
rename to ndk/platforms/android-L/arch-x86/symbols/libdl.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-x86/symbols/libjnigraphics.so.functions.txt b/ndk/platforms/android-L/arch-x86/symbols/libjnigraphics.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/symbols/libjnigraphics.so.functions.txt
rename to ndk/platforms/android-L/arch-x86/symbols/libjnigraphics.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-x86/symbols/libjnigraphics.so.variables.txt b/ndk/platforms/android-L/arch-x86/symbols/libjnigraphics.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/symbols/libjnigraphics.so.variables.txt
rename to ndk/platforms/android-L/arch-x86/symbols/libjnigraphics.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-x86/symbols/liblog.so.functions.txt b/ndk/platforms/android-L/arch-x86/symbols/liblog.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/symbols/liblog.so.functions.txt
rename to ndk/platforms/android-L/arch-x86/symbols/liblog.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-x86/symbols/liblog.so.variables.txt b/ndk/platforms/android-L/arch-x86/symbols/liblog.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-x86/symbols/liblog.so.variables.txt
rename to ndk/platforms/android-L/arch-x86/symbols/liblog.so.variables.txt
diff --git a/ndk/platforms/android-L/arch-x86/symbols/libm.so.functions.txt b/ndk/platforms/android-L/arch-x86/symbols/libm.so.functions.txt
new file mode 100644
index 0000000..787bec3
--- /dev/null
+++ b/ndk/platforms/android-L/arch-x86/symbols/libm.so.functions.txt
@@ -0,0 +1,220 @@
+__signbit
+__signbitf
+__signbitl
+acos
+acosf
+acosh
+acoshf
+acoshl
+acosl
+asin
+asinf
+asinh
+asinhf
+asinhl
+asinl
+atan
+atan2
+atan2f
+atan2l
+atanf
+atanh
+atanhf
+atanhl
+atanl
+cabsl
+cbrt
+cbrtf
+cbrtl
+ceil
+ceilf
+ceill
+copysign
+copysignf
+copysignl
+cos
+cosf
+cosh
+coshf
+coshl
+cosl
+cprojl
+csqrtl
+drem
+dremf
+erf
+erfc
+erfcf
+erfcl
+erff
+erfl
+exp
+exp2
+exp2f
+exp2l
+expf
+expl
+expm1
+expm1f
+expm1l
+fabs
+fabsf
+fabsl
+fdim
+fdimf
+fdiml
+feclearexcept
+fedisableexcept
+feenableexcept
+fegetenv
+fegetexcept
+fegetexceptflag
+fegetround
+feholdexcept
+feraiseexcept
+fesetenv
+fesetexceptflag
+fesetround
+fetestexcept
+feupdateenv
+finite
+finitef
+floor
+floorf
+floorl
+fma
+fmaf
+fmal
+fmax
+fmaxf
+fmaxl
+fmin
+fminf
+fminl
+fmod
+fmodf
+fmodl
+frexp
+frexpf
+frexpl
+gamma
+gamma_r
+gammaf
+gammaf_r
+hypot
+hypotf
+hypotl
+ilogb
+ilogbf
+ilogbl
+j0
+j0f
+j1
+j1f
+jn
+jnf
+ldexpf
+ldexpl
+lgamma
+lgamma_r
+lgammaf
+lgammaf_r
+lgammal
+llrint
+llrintf
+llrintl
+llround
+llroundf
+llroundl
+log
+log10
+log10f
+log10l
+log1p
+log1pf
+log1pl
+log2
+log2f
+log2l
+logb
+logbf
+logbl
+logf
+logl
+lrint
+lrintf
+lrintl
+lround
+lroundf
+lroundl
+modf
+modff
+modfl
+nan
+nanf
+nanl
+nearbyint
+nearbyintf
+nearbyintl
+nextafter
+nextafterf
+nextafterl
+nexttoward
+nexttowardf
+nexttowardl
+pow
+powf
+powl
+remainder
+remainderf
+remainderl
+remquo
+remquof
+remquol
+rint
+rintf
+rintl
+round
+roundf
+roundl
+scalb
+scalbf
+scalbln
+scalblnf
+scalblnl
+scalbn
+scalbnf
+scalbnl
+significand
+significandf
+significandl
+sin
+sincos
+sincosf
+sincosl
+sinf
+sinh
+sinhf
+sinhl
+sinl
+sqrt
+sqrtf
+sqrtl
+tan
+tanf
+tanh
+tanhf
+tanhl
+tanl
+tgamma
+tgammaf
+tgammal
+trunc
+truncf
+truncl
+y0
+y0f
+y1
+y1f
+yn
+ynf
diff --git a/ndk/platforms/android-20/arch-arm/symbols/libm.so.variables.txt b/ndk/platforms/android-L/arch-x86/symbols/libm.so.variables.txt
similarity index 100%
copy from ndk/platforms/android-20/arch-arm/symbols/libm.so.variables.txt
copy to ndk/platforms/android-L/arch-x86/symbols/libm.so.variables.txt
diff --git a/ndk/platforms/android-L/arch-x86/symbols/libstdc++.so.functions.txt b/ndk/platforms/android-L/arch-x86/symbols/libstdc++.so.functions.txt
new file mode 100644
index 0000000..7e337ad
--- /dev/null
+++ b/ndk/platforms/android-L/arch-x86/symbols/libstdc++.so.functions.txt
@@ -0,0 +1 @@
+__this_library_is_now_part_of_libc
diff --git a/ndk/platforms/android-20/arch-x86/symbols/libdl.so.variables.txt b/ndk/platforms/android-L/arch-x86/symbols/libstdc++.so.variables.txt
similarity index 100%
copy from ndk/platforms/android-20/arch-x86/symbols/libdl.so.variables.txt
copy to ndk/platforms/android-L/arch-x86/symbols/libstdc++.so.variables.txt
diff --git a/ndk/platforms/android-L/arch-x86/symbols/libz.so.functions.txt b/ndk/platforms/android-L/arch-x86/symbols/libz.so.functions.txt
new file mode 100644
index 0000000..bbd634e
--- /dev/null
+++ b/ndk/platforms/android-L/arch-x86/symbols/libz.so.functions.txt
@@ -0,0 +1,88 @@
+_tr_align
+_tr_flush_bits
+_tr_flush_block
+_tr_init
+_tr_stored_block
+_tr_tally
+adler32
+adler32_combine
+adler32_combine64
+compress
+compress2
+compressBound
+crc32
+crc32_combine
+crc32_combine64
+deflate
+deflateBound
+deflateCopy
+deflateEnd
+deflateInit2_
+deflateInit_
+deflateParams
+deflatePending
+deflatePrime
+deflateReset
+deflateResetKeep
+deflateSetDictionary
+deflateSetHeader
+deflateTune
+get_crc_table
+gz_error
+gzbuffer
+gzclearerr
+gzclose
+gzclose_r
+gzclose_w
+gzdirect
+gzdopen
+gzeof
+gzerror
+gzflush
+gzgetc
+gzgetc_
+gzgets
+gzoffset
+gzoffset64
+gzopen
+gzopen64
+gzprintf
+gzputc
+gzputs
+gzread
+gzrewind
+gzseek
+gzseek64
+gzsetparams
+gztell
+gztell64
+gzungetc
+gzvprintf
+gzwrite
+inflate
+inflateBack
+inflateBackEnd
+inflateBackInit_
+inflateCopy
+inflateEnd
+inflateGetDictionary
+inflateGetHeader
+inflateInit2_
+inflateInit_
+inflateMark
+inflatePrime
+inflateReset
+inflateReset2
+inflateResetKeep
+inflateSetDictionary
+inflateSync
+inflateSyncPoint
+inflateUndermine
+inflate_fast
+inflate_table
+uncompress
+zError
+zcalloc
+zcfree
+zlibCompileFlags
+zlibVersion
diff --git a/ndk/platforms/android-L/arch-x86/symbols/libz.so.variables.txt b/ndk/platforms/android-L/arch-x86/symbols/libz.so.variables.txt
new file mode 100644
index 0000000..c653ee5
--- /dev/null
+++ b/ndk/platforms/android-L/arch-x86/symbols/libz.so.variables.txt
@@ -0,0 +1,5 @@
+_dist_code
+_length_code
+deflate_copyright
+inflate_copyright
+z_errmsg
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/a.out.h b/ndk/platforms/android-L/arch-x86_64/include/asm/a.out.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/a.out.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/a.out.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/auxvec.h b/ndk/platforms/android-L/arch-x86_64/include/asm/auxvec.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/auxvec.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/auxvec.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/bitsperlong.h b/ndk/platforms/android-L/arch-x86_64/include/asm/bitsperlong.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/bitsperlong.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/bitsperlong.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/boot.h b/ndk/platforms/android-L/arch-x86_64/include/asm/boot.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/boot.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/boot.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/bootparam.h b/ndk/platforms/android-L/arch-x86_64/include/asm/bootparam.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/bootparam.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/bootparam.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/byteorder.h b/ndk/platforms/android-L/arch-x86_64/include/asm/byteorder.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/byteorder.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/byteorder.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/debugreg.h b/ndk/platforms/android-L/arch-x86_64/include/asm/debugreg.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/debugreg.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/debugreg.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/e820.h b/ndk/platforms/android-L/arch-x86_64/include/asm/e820.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/e820.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/e820.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/errno.h b/ndk/platforms/android-L/arch-x86_64/include/asm/errno.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/errno.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/errno.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/fcntl.h b/ndk/platforms/android-L/arch-x86_64/include/asm/fcntl.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/fcntl.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/fcntl.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/hw_breakpoint.h b/ndk/platforms/android-L/arch-x86_64/include/asm/hw_breakpoint.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/hw_breakpoint.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/hw_breakpoint.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/hyperv.h b/ndk/platforms/android-L/arch-x86_64/include/asm/hyperv.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/hyperv.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/hyperv.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/ioctl.h b/ndk/platforms/android-L/arch-x86_64/include/asm/ioctl.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/ioctl.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/ioctl.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/ioctls.h b/ndk/platforms/android-L/arch-x86_64/include/asm/ioctls.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/ioctls.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/ioctls.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/ipcbuf.h b/ndk/platforms/android-L/arch-x86_64/include/asm/ipcbuf.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/ipcbuf.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/ipcbuf.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/ist.h b/ndk/platforms/android-L/arch-x86_64/include/asm/ist.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/ist.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/ist.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/kvm.h b/ndk/platforms/android-L/arch-x86_64/include/asm/kvm.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/kvm.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/kvm.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/kvm_para.h b/ndk/platforms/android-L/arch-x86_64/include/asm/kvm_para.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/kvm_para.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/kvm_para.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/ldt.h b/ndk/platforms/android-L/arch-x86_64/include/asm/ldt.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/ldt.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/ldt.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/mce.h b/ndk/platforms/android-L/arch-x86_64/include/asm/mce.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/mce.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/mce.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/mman.h b/ndk/platforms/android-L/arch-x86_64/include/asm/mman.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/mman.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/mman.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/msgbuf.h b/ndk/platforms/android-L/arch-x86_64/include/asm/msgbuf.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/msgbuf.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/msgbuf.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/msr-index.h b/ndk/platforms/android-L/arch-x86_64/include/asm/msr-index.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/msr-index.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/msr-index.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/msr.h b/ndk/platforms/android-L/arch-x86_64/include/asm/msr.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/msr.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/msr.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/mtrr.h b/ndk/platforms/android-L/arch-x86_64/include/asm/mtrr.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/mtrr.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/mtrr.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/param.h b/ndk/platforms/android-L/arch-x86_64/include/asm/param.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/param.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/param.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/perf_regs.h b/ndk/platforms/android-L/arch-x86_64/include/asm/perf_regs.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/perf_regs.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/perf_regs.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/poll.h b/ndk/platforms/android-L/arch-x86_64/include/asm/poll.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/poll.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/poll.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/posix_types.h b/ndk/platforms/android-L/arch-x86_64/include/asm/posix_types.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/posix_types.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/posix_types.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/posix_types_32.h b/ndk/platforms/android-L/arch-x86_64/include/asm/posix_types_32.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/posix_types_32.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/posix_types_32.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/posix_types_64.h b/ndk/platforms/android-L/arch-x86_64/include/asm/posix_types_64.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/posix_types_64.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/posix_types_64.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/posix_types_x32.h b/ndk/platforms/android-L/arch-x86_64/include/asm/posix_types_x32.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/posix_types_x32.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/posix_types_x32.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/prctl.h b/ndk/platforms/android-L/arch-x86_64/include/asm/prctl.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/prctl.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/prctl.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/processor-flags.h b/ndk/platforms/android-L/arch-x86_64/include/asm/processor-flags.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/processor-flags.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/processor-flags.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/ptrace-abi.h b/ndk/platforms/android-L/arch-x86_64/include/asm/ptrace-abi.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/ptrace-abi.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/ptrace-abi.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/ptrace.h b/ndk/platforms/android-L/arch-x86_64/include/asm/ptrace.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/ptrace.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/ptrace.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/resource.h b/ndk/platforms/android-L/arch-x86_64/include/asm/resource.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/resource.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/resource.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/sembuf.h b/ndk/platforms/android-L/arch-x86_64/include/asm/sembuf.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/sembuf.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/sembuf.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/setup.h b/ndk/platforms/android-L/arch-x86_64/include/asm/setup.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/setup.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/setup.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/shmbuf.h b/ndk/platforms/android-L/arch-x86_64/include/asm/shmbuf.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/shmbuf.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/shmbuf.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/sigcontext.h b/ndk/platforms/android-L/arch-x86_64/include/asm/sigcontext.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/sigcontext.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/sigcontext.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/sigcontext32.h b/ndk/platforms/android-L/arch-x86_64/include/asm/sigcontext32.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/sigcontext32.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/sigcontext32.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/siginfo.h b/ndk/platforms/android-L/arch-x86_64/include/asm/siginfo.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/siginfo.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/siginfo.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/signal.h b/ndk/platforms/android-L/arch-x86_64/include/asm/signal.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/signal.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/signal.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/socket.h b/ndk/platforms/android-L/arch-x86_64/include/asm/socket.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/socket.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/socket.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/sockios.h b/ndk/platforms/android-L/arch-x86_64/include/asm/sockios.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/sockios.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/sockios.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/stat.h b/ndk/platforms/android-L/arch-x86_64/include/asm/stat.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/stat.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/stat.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/statfs.h b/ndk/platforms/android-L/arch-x86_64/include/asm/statfs.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/statfs.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/statfs.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/svm.h b/ndk/platforms/android-L/arch-x86_64/include/asm/svm.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/svm.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/svm.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/swab.h b/ndk/platforms/android-L/arch-x86_64/include/asm/swab.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/swab.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/swab.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/termbits.h b/ndk/platforms/android-L/arch-x86_64/include/asm/termbits.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/termbits.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/termbits.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/termios.h b/ndk/platforms/android-L/arch-x86_64/include/asm/termios.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/termios.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/termios.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/types.h b/ndk/platforms/android-L/arch-x86_64/include/asm/types.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/types.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/types.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/ucontext.h b/ndk/platforms/android-L/arch-x86_64/include/asm/ucontext.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/ucontext.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/ucontext.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/unistd.h b/ndk/platforms/android-L/arch-x86_64/include/asm/unistd.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/unistd.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/unistd.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/unistd_32.h b/ndk/platforms/android-L/arch-x86_64/include/asm/unistd_32.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/unistd_32.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/unistd_32.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/unistd_64.h b/ndk/platforms/android-L/arch-x86_64/include/asm/unistd_64.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/unistd_64.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/unistd_64.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/unistd_x32.h b/ndk/platforms/android-L/arch-x86_64/include/asm/unistd_x32.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/unistd_x32.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/unistd_x32.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/vm86.h b/ndk/platforms/android-L/arch-x86_64/include/asm/vm86.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/vm86.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/vm86.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/vmx.h b/ndk/platforms/android-L/arch-x86_64/include/asm/vmx.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/vmx.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/vmx.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/asm/vsyscall.h b/ndk/platforms/android-L/arch-x86_64/include/asm/vsyscall.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/asm/vsyscall.h
rename to ndk/platforms/android-L/arch-x86_64/include/asm/vsyscall.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/i386/elf_machdep.h b/ndk/platforms/android-L/arch-x86_64/include/i386/elf_machdep.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/i386/elf_machdep.h
rename to ndk/platforms/android-L/arch-x86_64/include/i386/elf_machdep.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/machine/asm.h b/ndk/platforms/android-L/arch-x86_64/include/machine/asm.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/machine/asm.h
rename to ndk/platforms/android-L/arch-x86_64/include/machine/asm.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/machine/elf_machdep.h b/ndk/platforms/android-L/arch-x86_64/include/machine/elf_machdep.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/machine/elf_machdep.h
rename to ndk/platforms/android-L/arch-x86_64/include/machine/elf_machdep.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/machine/endian.h b/ndk/platforms/android-L/arch-x86_64/include/machine/endian.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/machine/endian.h
rename to ndk/platforms/android-L/arch-x86_64/include/machine/endian.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/machine/exec.h b/ndk/platforms/android-L/arch-x86_64/include/machine/exec.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/machine/exec.h
rename to ndk/platforms/android-L/arch-x86_64/include/machine/exec.h
diff --git a/ndk/platforms/android-L/arch-x86_64/include/machine/fenv.h b/ndk/platforms/android-L/arch-x86_64/include/machine/fenv.h
new file mode 100644
index 0000000..c2b25ed
--- /dev/null
+++ b/ndk/platforms/android-L/arch-x86_64/include/machine/fenv.h
@@ -0,0 +1,95 @@
+/*-
+ * Copyright (c) 2004-2005 David Schultz <das (at) FreeBSD.ORG>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _AMD64_FENV_H_
+#define _AMD64_FENV_H_
+
+#include <sys/types.h>
+
+__BEGIN_DECLS
+
+/*
+ * Each symbol representing a floating point exception expands to an integer
+ * constant expression with values, such that bitwise-inclusive ORs of _all
+ * combinations_ of the constants result in distinct values.
+ *
+ * We use such values that allow direct bitwise operations on FPU/SSE registers.
+ */
+#define FE_INVALID    0x01
+#define FE_DENORMAL   0x02
+#define FE_DIVBYZERO  0x04
+#define FE_OVERFLOW   0x08
+#define FE_UNDERFLOW  0x10
+#define FE_INEXACT    0x20
+
+/*
+ * The following symbol is simply the bitwise-inclusive OR of all floating-point
+ * exception constants defined above.
+ */
+#define FE_ALL_EXCEPT   (FE_INVALID | FE_DENORMAL | FE_DIVBYZERO | \
+                         FE_OVERFLOW | FE_UNDERFLOW | FE_INEXACT)
+
+/*
+ * Each symbol representing the rounding direction, expands to an integer
+ * constant expression whose value is distinct non-negative value.
+ *
+ * We use such values that allow direct bitwise operations on FPU/SSE registers.
+ */
+#define FE_TONEAREST  0x000
+#define FE_DOWNWARD   0x400
+#define FE_UPWARD     0x800
+#define FE_TOWARDZERO 0xc00
+
+/*
+ * fenv_t represents the entire floating-point environment.
+ */
+typedef struct {
+  struct {
+    __uint32_t __control;   /* Control word register */
+    __uint32_t __status;    /* Status word register */
+    __uint32_t __tag;       /* Tag word register */
+    __uint32_t __others[4]; /* EIP, Pointer Selector, etc */
+  } __x87;
+  __uint32_t __mxcsr;       /* Control, status register */
+} fenv_t;
+
+/*
+ * fexcept_t represents the floating-point status flags collectively, including
+ * any status the implementation associates with the flags.
+ *
+ * A floating-point status flag is a system variable whose value is set (but
+ * never cleared) when a floating-point exception is raised, which occurs as a
+ * side effect of exceptional floating-point arithmetic to provide auxiliary
+ * information.
+ *
+ * A floating-point control mode is a system variable whose value may be set by
+ * the user to affect the subsequent behavior of floating-point arithmetic.
+ */
+typedef __uint32_t fexcept_t;
+
+__END_DECLS
+
+#endif /* !_AMD64_FENV_H_ */
diff --git a/ndk/platforms/android-20/arch-x86_64/include/machine/fpu.h b/ndk/platforms/android-L/arch-x86_64/include/machine/fpu.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/machine/fpu.h
rename to ndk/platforms/android-L/arch-x86_64/include/machine/fpu.h
diff --git a/ndk/platforms/android-20/arch-x86_64/include/machine/setjmp.h b/ndk/platforms/android-L/arch-x86_64/include/machine/setjmp.h
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/include/machine/setjmp.h
rename to ndk/platforms/android-L/arch-x86_64/include/machine/setjmp.h
diff --git a/ndk/platforms/android-L/arch-x86_64/lib b/ndk/platforms/android-L/arch-x86_64/lib
new file mode 120000
index 0000000..c01c3e2
--- /dev/null
+++ b/ndk/platforms/android-L/arch-x86_64/lib
@@ -0,0 +1 @@
+../arch-x86/lib
\ No newline at end of file
diff --git a/ndk/platforms/android-20/arch-x86_64/lib-bootstrap b/ndk/platforms/android-L/arch-x86_64/lib-bootstrap
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/lib-bootstrap
rename to ndk/platforms/android-L/arch-x86_64/lib-bootstrap
diff --git a/ndk/platforms/android-L/arch-x86_64/lib64/libc.a b/ndk/platforms/android-L/arch-x86_64/lib64/libc.a
new file mode 100644
index 0000000..559e23a
--- /dev/null
+++ b/ndk/platforms/android-L/arch-x86_64/lib64/libc.a
Binary files differ
diff --git a/ndk/platforms/android-L/arch-x86_64/lib64/libm.a b/ndk/platforms/android-L/arch-x86_64/lib64/libm.a
new file mode 100644
index 0000000..05f19b6
--- /dev/null
+++ b/ndk/platforms/android-L/arch-x86_64/lib64/libm.a
Binary files differ
diff --git a/ndk/platforms/android-L/arch-x86_64/lib64/libstdc++.a b/ndk/platforms/android-L/arch-x86_64/lib64/libstdc++.a
new file mode 100644
index 0000000..ace8279
--- /dev/null
+++ b/ndk/platforms/android-L/arch-x86_64/lib64/libstdc++.a
Binary files differ
diff --git a/ndk/platforms/android-L/arch-x86_64/lib64/libz.a b/ndk/platforms/android-L/arch-x86_64/lib64/libz.a
new file mode 100644
index 0000000..6faf419
--- /dev/null
+++ b/ndk/platforms/android-L/arch-x86_64/lib64/libz.a
Binary files differ
diff --git a/ndk/platforms/android-20/arch-x86_64/src b/ndk/platforms/android-L/arch-x86_64/src
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/src
rename to ndk/platforms/android-L/arch-x86_64/src
diff --git a/ndk/platforms/android-20/arch-x86_64/symbols/libEGL.so.functions.txt b/ndk/platforms/android-L/arch-x86_64/symbols/libEGL.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/symbols/libEGL.so.functions.txt
rename to ndk/platforms/android-L/arch-x86_64/symbols/libEGL.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-x86_64/symbols/libEGL.so.variables.txt b/ndk/platforms/android-L/arch-x86_64/symbols/libEGL.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/symbols/libEGL.so.variables.txt
rename to ndk/platforms/android-L/arch-x86_64/symbols/libEGL.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-x86_64/symbols/libGLESv1_CM.so.functions.txt b/ndk/platforms/android-L/arch-x86_64/symbols/libGLESv1_CM.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/symbols/libGLESv1_CM.so.functions.txt
rename to ndk/platforms/android-L/arch-x86_64/symbols/libGLESv1_CM.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-x86_64/symbols/libGLESv1_CM.so.variables.txt b/ndk/platforms/android-L/arch-x86_64/symbols/libGLESv1_CM.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/symbols/libGLESv1_CM.so.variables.txt
rename to ndk/platforms/android-L/arch-x86_64/symbols/libGLESv1_CM.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-x86_64/symbols/libGLESv2.so.functions.txt b/ndk/platforms/android-L/arch-x86_64/symbols/libGLESv2.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/symbols/libGLESv2.so.functions.txt
rename to ndk/platforms/android-L/arch-x86_64/symbols/libGLESv2.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-x86_64/symbols/libGLESv2.so.variables.txt b/ndk/platforms/android-L/arch-x86_64/symbols/libGLESv2.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/symbols/libGLESv2.so.variables.txt
rename to ndk/platforms/android-L/arch-x86_64/symbols/libGLESv2.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-x86_64/symbols/libGLESv3.so.functions.txt b/ndk/platforms/android-L/arch-x86_64/symbols/libGLESv3.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/symbols/libGLESv3.so.functions.txt
rename to ndk/platforms/android-L/arch-x86_64/symbols/libGLESv3.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-x86_64/symbols/libGLESv3.so.variables.txt b/ndk/platforms/android-L/arch-x86_64/symbols/libGLESv3.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/symbols/libGLESv3.so.variables.txt
rename to ndk/platforms/android-L/arch-x86_64/symbols/libGLESv3.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-x86_64/symbols/libOpenMAXAL.so.functions.txt b/ndk/platforms/android-L/arch-x86_64/symbols/libOpenMAXAL.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/symbols/libOpenMAXAL.so.functions.txt
rename to ndk/platforms/android-L/arch-x86_64/symbols/libOpenMAXAL.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-x86_64/symbols/libOpenMAXAL.so.variables.txt b/ndk/platforms/android-L/arch-x86_64/symbols/libOpenMAXAL.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/symbols/libOpenMAXAL.so.variables.txt
rename to ndk/platforms/android-L/arch-x86_64/symbols/libOpenMAXAL.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-x86_64/symbols/libOpenSLES.so.functions.txt b/ndk/platforms/android-L/arch-x86_64/symbols/libOpenSLES.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/symbols/libOpenSLES.so.functions.txt
rename to ndk/platforms/android-L/arch-x86_64/symbols/libOpenSLES.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-x86_64/symbols/libOpenSLES.so.variables.txt b/ndk/platforms/android-L/arch-x86_64/symbols/libOpenSLES.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/symbols/libOpenSLES.so.variables.txt
rename to ndk/platforms/android-L/arch-x86_64/symbols/libOpenSLES.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-x86_64/symbols/libandroid.so.functions.txt b/ndk/platforms/android-L/arch-x86_64/symbols/libandroid.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/symbols/libandroid.so.functions.txt
rename to ndk/platforms/android-L/arch-x86_64/symbols/libandroid.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-x86_64/symbols/libandroid.so.variables.txt b/ndk/platforms/android-L/arch-x86_64/symbols/libandroid.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/symbols/libandroid.so.variables.txt
rename to ndk/platforms/android-L/arch-x86_64/symbols/libandroid.so.variables.txt
diff --git a/ndk/platforms/android-L/arch-x86_64/symbols/libc.so.functions.txt b/ndk/platforms/android-L/arch-x86_64/symbols/libc.so.functions.txt
new file mode 100644
index 0000000..3ac1f02
--- /dev/null
+++ b/ndk/platforms/android-L/arch-x86_64/symbols/libc.so.functions.txt
@@ -0,0 +1,1034 @@
+SHA1Final
+SHA1Init
+SHA1Transform
+SHA1Update
+_Exit
+_Unwind_Backtrace
+_Unwind_DeleteException
+_Unwind_FindEnclosingFunction
+_Unwind_Find_FDE
+_Unwind_ForcedUnwind
+_Unwind_GetCFA
+_Unwind_GetDataRelBase
+_Unwind_GetGR
+_Unwind_GetIP
+_Unwind_GetIPInfo
+_Unwind_GetLanguageSpecificData
+_Unwind_GetRegionStart
+_Unwind_GetTextRelBase
+_Unwind_RaiseException
+_Unwind_Resume
+_Unwind_Resume_or_Rethrow
+_Unwind_SetGR
+_Unwind_SetIP
+_ZdaPv
+_ZdaPvRKSt9nothrow_t
+_ZdlPv
+_ZdlPvRKSt9nothrow_t
+_Znam
+_ZnamRKSt9nothrow_t
+_Znwm
+_ZnwmRKSt9nothrow_t
+__FD_CLR_chk
+__FD_ISSET_chk
+__FD_SET_chk
+__android_set_abort_message
+__assert
+__assert2
+__b64_ntop
+__b64_pton
+__bionic_name_mem
+__cxa_atexit
+__cxa_finalize
+__cxa_guard_abort
+__cxa_guard_acquire
+__cxa_guard_release
+__cxa_pure_virtual
+__deregister_frame
+__deregister_frame_info
+__deregister_frame_info_bases
+__dn_comp
+__dn_count_labels
+__dn_skipname
+__errno
+__fgets_chk
+__findenv
+__fp_nquery
+__fp_query
+__fpclassify
+__fpclassifyd
+__fpclassifyf
+__fpclassifyl
+__frame_state_for
+__get_h_errno
+__hostalias
+__isfinite
+__isfinitef
+__isfinitel
+__isinf
+__isinff
+__isinfl
+__isnan
+__isnanf
+__isnanl
+__isnormal
+__isnormalf
+__isnormall
+__libc_current_sigrtmax
+__libc_current_sigrtmin
+__libc_init
+__loc_aton
+__loc_ntoa
+__memcpy_chk
+__memmove_chk
+__memset_chk
+__multf3
+__open_2
+__openat_2
+__p_cdname
+__p_cdnname
+__p_class
+__p_fqname
+__p_fqnname
+__p_option
+__p_query
+__p_rcode
+__p_secstodate
+__p_time
+__p_type
+__popcountdi2
+__pthread_cleanup_pop
+__pthread_cleanup_push
+__pthread_gettid
+__putlong
+__putshort
+__read_chk
+__recvfrom_chk
+__register_frame
+__register_frame_info
+__register_frame_info_bases
+__register_frame_info_table
+__register_frame_info_table_bases
+__register_frame_table
+__res_close
+__res_dnok
+__res_hnok
+__res_hostalias
+__res_isourserver
+__res_mailok
+__res_nameinquery
+__res_nclose
+__res_ninit
+__res_nmkquery
+__res_nquery
+__res_nquerydomain
+__res_nsearch
+__res_nsend
+__res_ownok
+__res_queriesmatch
+__res_querydomain
+__res_randomid
+__res_send
+__res_send_setqhook
+__res_send_setrhook
+__sched_cpualloc
+__sched_cpucount
+__sched_cpufree
+__sfp_handle_exceptions
+__snprintf_chk
+__sprintf_chk
+__srefill
+__stack_chk_fail
+__stpcpy_chk
+__stpncpy_chk
+__stpncpy_chk2
+__strcat_chk
+__strchr_chk
+__strcpy_chk
+__strlcat_chk
+__strlcpy_chk
+__strlen_chk
+__strncat_chk
+__strncpy_chk
+__strncpy_chk2
+__strrchr_chk
+__sym_ntop
+__sym_ntos
+__sym_ston
+__system_properties_init
+__system_property_add
+__system_property_area_init
+__system_property_find
+__system_property_find_nth
+__system_property_foreach
+__system_property_get
+__system_property_read
+__system_property_serial
+__system_property_set
+__system_property_set_filename
+__system_property_update
+__system_property_wait_any
+__umask_chk
+__vsnprintf_chk
+__vsprintf_chk
+_exit
+_getlong
+_getshort
+_longjmp
+_resolv_flush_cache_for_net
+_resolv_set_nameservers_for_net
+_setjmp
+_thread_created_hook
+_tolower
+_toupper
+abort
+abs
+accept
+accept4
+access
+acct
+alarm
+alphasort
+alphasort64
+android_getaddrinfofornet
+android_gethostbyaddrfornet
+android_gethostbynamefornet
+arc4random
+arc4random_addrandom
+arc4random_buf
+arc4random_stir
+arc4random_uniform
+asctime
+asctime_r
+asprintf
+at_quick_exit
+atof
+atoi
+atol
+atoll
+basename
+basename_r
+bind
+bindresvport
+brk
+bsearch
+btowc
+c16rtomb
+c32rtomb
+calloc
+capget
+capset
+cfgetispeed
+cfgetospeed
+cfmakeraw
+cfsetispeed
+cfsetospeed
+cfsetspeed
+chdir
+chmod
+chown
+chroot
+clearenv
+clearerr
+clock
+clock_getres
+clock_gettime
+clock_nanosleep
+clock_settime
+clone
+close
+closedir
+closelog
+cmsg_nxthdr
+connect
+creat
+creat64
+ctime
+ctime_r
+daemon
+delete_module
+difftime
+dirfd
+dirname
+dirname_r
+div
+dlmalloc_inspect_all
+dlmalloc_trim
+dn_expand
+dprintf
+drand48
+dup
+dup2
+dup3
+duplocale
+endmntent
+endpwent
+endservent
+endusershell
+endutent
+epoll_create
+epoll_create1
+epoll_ctl
+epoll_pwait
+epoll_wait
+erand48
+err
+errx
+ether_aton
+ether_aton_r
+ether_ntoa
+ether_ntoa_r
+eventfd
+eventfd_read
+eventfd_write
+execl
+execle
+execlp
+execv
+execve
+execvp
+execvpe
+exit
+faccessat
+fallocate
+fallocate64
+fchdir
+fchmod
+fchmodat
+fchown
+fchownat
+fclose
+fcntl
+fdatasync
+fdopen
+fdopendir
+feof
+ferror
+fflush
+ffs
+fgetc
+fgetln
+fgetpos
+fgets
+fgetwc
+fgetws
+fgetxattr
+fileno
+flistxattr
+flock
+flockfile
+fnmatch
+fopen
+fork
+fpathconf
+fprintf
+fpurge
+fputc
+fputs
+fputwc
+fputws
+fread
+free
+freeaddrinfo
+freelocale
+fremovexattr
+freopen
+fscanf
+fseek
+fseeko
+fsetpos
+fsetxattr
+fstat
+fstat64
+fstatat
+fstatat64
+fstatfs
+fstatfs64
+fstatvfs
+fstatvfs64
+fsync
+ftell
+ftello
+ftok
+ftruncate
+ftruncate64
+ftrylockfile
+fts_children
+fts_close
+fts_open
+fts_read
+fts_set
+ftw
+ftw64
+funlockfile
+funopen
+futimens
+fwide
+fwprintf
+fwrite
+fwscanf
+gai_strerror
+get_malloc_leak_info
+getaddrinfo
+getauxval
+getc
+getc_unlocked
+getchar
+getchar_unlocked
+getcwd
+getdelim
+getegid
+getenv
+geteuid
+getgid
+getgrgid
+getgrnam
+getgrouplist
+getgroups
+gethostbyaddr
+gethostbyname
+gethostbyname2
+gethostbyname_r
+gethostent
+gethostname
+getitimer
+getline
+getlogin
+getmntent
+getmntent_r
+getnameinfo
+getnetbyaddr
+getnetbyname
+getopt
+getopt_long
+getopt_long_only
+getpagesize
+getpeername
+getpgid
+getpgrp
+getpid
+getppid
+getpriority
+getprogname
+getprotobyname
+getprotobynumber
+getpt
+getpwnam
+getpwnam_r
+getpwuid
+getpwuid_r
+getresgid
+getresuid
+getrlimit
+getrlimit64
+getrusage
+gets
+getservbyname
+getservbyport
+getservent
+getsid
+getsockname
+getsockopt
+gettid
+gettimeofday
+getuid
+getusershell
+getutent
+getwc
+getwchar
+getxattr
+gmtime
+gmtime_r
+herror
+hstrerror
+htonl
+htons
+if_indextoname
+if_nametoindex
+imaxabs
+imaxdiv
+inet_addr
+inet_aton
+inet_lnaof
+inet_makeaddr
+inet_netof
+inet_network
+inet_ntoa
+inet_ntop
+inet_pton
+init_module
+initgroups
+initstate
+inotify_add_watch
+inotify_init
+inotify_init1
+inotify_rm_watch
+ioctl
+isalnum
+isalpha
+isascii
+isatty
+isblank
+iscntrl
+isdigit
+isfinite
+isfinitef
+isfinitel
+isgraph
+isinf
+isinff
+isinfl
+islower
+isnan
+isnanf
+isnanl
+isnormal
+isnormalf
+isnormall
+isprint
+ispunct
+isspace
+isupper
+iswalnum
+iswalpha
+iswblank
+iswcntrl
+iswctype
+iswdigit
+iswgraph
+iswlower
+iswprint
+iswpunct
+iswspace
+iswupper
+iswxdigit
+isxdigit
+jrand48
+kill
+killpg
+klogctl
+labs
+lchown
+ldexp
+ldiv
+lfind
+lgetxattr
+link
+linkat
+listen
+listxattr
+llabs
+lldiv
+llistxattr
+localeconv
+localtime
+localtime_r
+localtime_tz
+longjmp
+lrand48
+lremovexattr
+lsearch
+lseek
+lseek64
+lsetxattr
+lstat
+lstat64
+madvise
+mallinfo
+malloc
+malloc_usable_size
+mbrlen
+mbrtoc16
+mbrtoc32
+mbrtowc
+mbsinit
+mbsnrtowcs
+mbsrtowcs
+mbstowcs
+mbtowc
+memalign
+memccpy
+memchr
+memcmp
+memcpy
+memmem
+memmove
+memrchr
+memset
+mincore
+mkdir
+mkdirat
+mkdtemp
+mkfifo
+mknod
+mknodat
+mkstemp
+mkstemp64
+mkstemps
+mktemp
+mktime
+mktime_tz
+mlock
+mlockall
+mmap
+mmap64
+mount
+mprotect
+mrand48
+mremap
+msync
+munlock
+munlockall
+munmap
+nanosleep
+newlocale
+nftw
+nftw64
+nice
+nrand48
+ntohl
+ntohs
+open
+open64
+openat
+openat64
+opendir
+openlog
+pathconf
+pause
+pclose
+perror
+personality
+pipe
+pipe2
+poll
+popen
+posix_fallocate
+posix_fallocate64
+posix_memalign
+ppoll
+prctl
+pread
+pread64
+printf
+prlimit
+prlimit64
+pselect
+psiginfo
+psignal
+pthread_atfork
+pthread_attr_destroy
+pthread_attr_getdetachstate
+pthread_attr_getguardsize
+pthread_attr_getschedparam
+pthread_attr_getschedpolicy
+pthread_attr_getscope
+pthread_attr_getstack
+pthread_attr_getstacksize
+pthread_attr_init
+pthread_attr_setdetachstate
+pthread_attr_setguardsize
+pthread_attr_setschedparam
+pthread_attr_setschedpolicy
+pthread_attr_setscope
+pthread_attr_setstack
+pthread_attr_setstacksize
+pthread_cond_broadcast
+pthread_cond_destroy
+pthread_cond_init
+pthread_cond_signal
+pthread_cond_timedwait
+pthread_cond_wait
+pthread_condattr_destroy
+pthread_condattr_getclock
+pthread_condattr_getpshared
+pthread_condattr_init
+pthread_condattr_setclock
+pthread_condattr_setpshared
+pthread_create
+pthread_detach
+pthread_equal
+pthread_exit
+pthread_getattr_np
+pthread_getcpuclockid
+pthread_getschedparam
+pthread_getspecific
+pthread_join
+pthread_key_create
+pthread_key_delete
+pthread_kill
+pthread_mutex_destroy
+pthread_mutex_init
+pthread_mutex_lock
+pthread_mutex_timedlock
+pthread_mutex_trylock
+pthread_mutex_unlock
+pthread_mutexattr_destroy
+pthread_mutexattr_getpshared
+pthread_mutexattr_gettype
+pthread_mutexattr_init
+pthread_mutexattr_setpshared
+pthread_mutexattr_settype
+pthread_once
+pthread_rwlock_destroy
+pthread_rwlock_init
+pthread_rwlock_rdlock
+pthread_rwlock_timedrdlock
+pthread_rwlock_timedwrlock
+pthread_rwlock_tryrdlock
+pthread_rwlock_trywrlock
+pthread_rwlock_unlock
+pthread_rwlock_wrlock
+pthread_rwlockattr_destroy
+pthread_rwlockattr_getpshared
+pthread_rwlockattr_init
+pthread_rwlockattr_setpshared
+pthread_self
+pthread_setname_np
+pthread_setschedparam
+pthread_setspecific
+pthread_sigmask
+ptrace
+ptsname
+ptsname_r
+putc
+putc_unlocked
+putchar
+putchar_unlocked
+putenv
+puts
+pututline
+putwc
+putwchar
+pwrite
+pwrite64
+qsort
+quick_exit
+raise
+rand
+rand_r
+random
+read
+readahead
+readdir
+readdir64
+readdir64_r
+readdir_r
+readlink
+readlinkat
+readv
+realloc
+realpath
+reboot
+recv
+recvfrom
+recvmmsg
+recvmsg
+regcomp
+regerror
+regexec
+regfree
+remove
+removexattr
+rename
+renameat
+res_init
+res_mkquery
+res_query
+res_search
+rewind
+rewinddir
+rmdir
+sbrk
+scandir
+scandir64
+scanf
+sched_get_priority_max
+sched_get_priority_min
+sched_getaffinity
+sched_getcpu
+sched_getparam
+sched_getscheduler
+sched_rr_get_interval
+sched_setaffinity
+sched_setparam
+sched_setscheduler
+sched_yield
+seed48
+select
+sem_close
+sem_destroy
+sem_getvalue
+sem_init
+sem_open
+sem_post
+sem_timedwait
+sem_trywait
+sem_unlink
+sem_wait
+send
+sendfile
+sendfile64
+sendmmsg
+sendmsg
+sendto
+setbuf
+setbuffer
+setegid
+setenv
+seteuid
+setgid
+setgroups
+setitimer
+setjmp
+setlinebuf
+setlocale
+setlogmask
+setmntent
+setns
+setpgid
+setpgrp
+setpriority
+setprogname
+setregid
+setresgid
+setresuid
+setreuid
+setrlimit
+setrlimit64
+setservent
+setsid
+setsockopt
+setstate
+settimeofday
+setuid
+setusershell
+setutent
+setvbuf
+setxattr
+shutdown
+sigaction
+sigaddset
+sigaltstack
+sigblock
+sigdelset
+sigemptyset
+sigfillset
+siginterrupt
+sigismember
+siglongjmp
+signal
+signalfd
+sigpending
+sigprocmask
+sigsetjmp
+sigsetmask
+sigsuspend
+sigwait
+sleep
+snprintf
+socket
+socketpair
+sprintf
+srand
+srand48
+srandom
+sscanf
+stat
+stat64
+statfs
+statfs64
+statvfs
+statvfs64
+stpcpy
+stpncpy
+strcasecmp
+strcasestr
+strcat
+strchr
+strcmp
+strcoll
+strcpy
+strcspn
+strdup
+strerror
+strerror_r
+strftime
+strftime_tz
+strlcat
+strlcpy
+strlen
+strncasecmp
+strncat
+strncmp
+strncpy
+strndup
+strnlen
+strpbrk
+strptime
+strrchr
+strsep
+strsignal
+strspn
+strstr
+strtod
+strtof
+strtoimax
+strtok
+strtok_r
+strtol
+strtold
+strtoll
+strtoq
+strtoul
+strtoull
+strtoumax
+strtouq
+strxfrm
+swapoff
+swapon
+swprintf
+swscanf
+symlink
+symlinkat
+sync
+syscall
+sysconf
+sysinfo
+syslog
+system
+tcdrain
+tcflow
+tcflush
+tcgetattr
+tcgetpgrp
+tcgetsid
+tcsendbreak
+tcsetattr
+tcsetpgrp
+tdelete
+tdestroy
+tempnam
+tfind
+tgkill
+time
+timegm
+timelocal
+timer_create
+timer_delete
+timer_getoverrun
+timer_gettime
+timer_settime
+timerfd_create
+timerfd_gettime
+timerfd_settime
+times
+tmpfile
+tmpnam
+toascii
+tolower
+toupper
+towlower
+towupper
+truncate
+truncate64
+tsearch
+ttyname
+ttyname_r
+tzset
+umask
+umount
+umount2
+uname
+ungetc
+ungetwc
+unlink
+unlinkat
+unlockpt
+unsetenv
+unshare
+uselocale
+usleep
+utime
+utimensat
+utimes
+utmpname
+vasprintf
+vdprintf
+verr
+verrx
+vfork
+vfprintf
+vfscanf
+vfwprintf
+vfwscanf
+vprintf
+vscanf
+vsnprintf
+vsprintf
+vsscanf
+vswprintf
+vswscanf
+vsyslog
+vwarn
+vwarnx
+vwprintf
+vwscanf
+wait
+wait4
+waitid
+waitpid
+warn
+warnx
+wcpcpy
+wcpncpy
+wcrtomb
+wcscasecmp
+wcscat
+wcschr
+wcscmp
+wcscoll
+wcscpy
+wcscspn
+wcsdup
+wcsftime
+wcslcat
+wcslcpy
+wcslen
+wcsncasecmp
+wcsncat
+wcsncmp
+wcsncpy
+wcsnlen
+wcsnrtombs
+wcspbrk
+wcsrchr
+wcsrtombs
+wcsspn
+wcsstr
+wcstod
+wcstof
+wcstoimax
+wcstok
+wcstol
+wcstold
+wcstoll
+wcstombs
+wcstoul
+wcstoull
+wcstoumax
+wcswidth
+wcsxfrm
+wctob
+wctomb
+wctype
+wcwidth
+wmemchr
+wmemcmp
+wmemcpy
+wmemmove
+wmemset
+wprintf
+write
+writev
+wscanf
diff --git a/ndk/platforms/android-L/arch-x86_64/symbols/libc.so.variables.txt b/ndk/platforms/android-L/arch-x86_64/symbols/libc.so.variables.txt
new file mode 100644
index 0000000..4e8b2d8
--- /dev/null
+++ b/ndk/platforms/android-L/arch-x86_64/symbols/libc.so.variables.txt
@@ -0,0 +1,27 @@
+_C_ctype_
+_C_tolower_
+_C_toupper_
+_ZSt7nothrow
+__isthreaded
+__libc_malloc_dispatch
+__p_class_syms
+__p_type_syms
+__popcount_tab
+__progname
+__sF
+__stack_chk_guard
+__system_property_area__
+_ctype_
+_tolower_tab_
+_toupper_tab_
+daylight
+environ
+optarg
+opterr
+optind
+optopt
+optreset
+sys_siglist
+sys_signame
+timezone
+tzname
diff --git a/ndk/platforms/android-20/arch-x86_64/symbols/libdl.so.functions.txt b/ndk/platforms/android-L/arch-x86_64/symbols/libdl.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/symbols/libdl.so.functions.txt
rename to ndk/platforms/android-L/arch-x86_64/symbols/libdl.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-x86_64/symbols/libdl.so.variables.txt b/ndk/platforms/android-L/arch-x86_64/symbols/libdl.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/symbols/libdl.so.variables.txt
rename to ndk/platforms/android-L/arch-x86_64/symbols/libdl.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-x86_64/symbols/libjnigraphics.so.functions.txt b/ndk/platforms/android-L/arch-x86_64/symbols/libjnigraphics.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/symbols/libjnigraphics.so.functions.txt
rename to ndk/platforms/android-L/arch-x86_64/symbols/libjnigraphics.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-x86_64/symbols/libjnigraphics.so.variables.txt b/ndk/platforms/android-L/arch-x86_64/symbols/libjnigraphics.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/symbols/libjnigraphics.so.variables.txt
rename to ndk/platforms/android-L/arch-x86_64/symbols/libjnigraphics.so.variables.txt
diff --git a/ndk/platforms/android-20/arch-x86_64/symbols/liblog.so.functions.txt b/ndk/platforms/android-L/arch-x86_64/symbols/liblog.so.functions.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/symbols/liblog.so.functions.txt
rename to ndk/platforms/android-L/arch-x86_64/symbols/liblog.so.functions.txt
diff --git a/ndk/platforms/android-20/arch-x86_64/symbols/liblog.so.variables.txt b/ndk/platforms/android-L/arch-x86_64/symbols/liblog.so.variables.txt
similarity index 100%
rename from ndk/platforms/android-20/arch-x86_64/symbols/liblog.so.variables.txt
rename to ndk/platforms/android-L/arch-x86_64/symbols/liblog.so.variables.txt
diff --git a/ndk/platforms/android-L/arch-x86_64/symbols/libm.so.functions.txt b/ndk/platforms/android-L/arch-x86_64/symbols/libm.so.functions.txt
new file mode 100644
index 0000000..82e7a57
--- /dev/null
+++ b/ndk/platforms/android-L/arch-x86_64/symbols/libm.so.functions.txt
@@ -0,0 +1,233 @@
+__addtf3
+__divtf3
+__eqtf2
+__extenddftf2
+__extendsftf2
+__fixtfdi
+__fixtfsi
+__floatsitf
+__getf2
+__gttf2
+__letf2
+__lttf2
+__netf2
+__signbit
+__signbitf
+__signbitl
+__subtf3
+__trunctfdf2
+__trunctfsf2
+acos
+acosf
+acosh
+acoshf
+acoshl
+acosl
+asin
+asinf
+asinh
+asinhf
+asinhl
+asinl
+atan
+atan2
+atan2f
+atan2l
+atanf
+atanh
+atanhf
+atanhl
+atanl
+cbrt
+cbrtf
+cbrtl
+ceil
+ceilf
+ceill
+copysign
+copysignf
+copysignl
+cos
+cosf
+cosh
+coshf
+coshl
+cosl
+drem
+dremf
+erf
+erfc
+erfcf
+erfcl
+erff
+erfl
+exp
+exp2
+exp2f
+exp2l
+expf
+expl
+expm1
+expm1f
+expm1l
+fabs
+fabsf
+fabsl
+fdim
+fdimf
+fdiml
+feclearexcept
+fedisableexcept
+feenableexcept
+fegetenv
+fegetexcept
+fegetexceptflag
+fegetround
+feholdexcept
+feraiseexcept
+fesetenv
+fesetexceptflag
+fesetround
+fetestexcept
+feupdateenv
+finite
+finitef
+floor
+floorf
+floorl
+fma
+fmaf
+fmal
+fmax
+fmaxf
+fmaxl
+fmin
+fminf
+fminl
+fmod
+fmodf
+fmodl
+frexp
+frexpf
+frexpl
+gamma
+gamma_r
+gammaf
+gammaf_r
+hypot
+hypotf
+hypotl
+ilogb
+ilogbf
+ilogbl
+j0
+j0f
+j1
+j1f
+jn
+jnf
+ldexpf
+ldexpl
+lgamma
+lgamma_r
+lgammaf
+lgammaf_r
+lgammal
+llrint
+llrintf
+llrintl
+llround
+llroundf
+llroundl
+log
+log10
+log10f
+log10l
+log1p
+log1pf
+log1pl
+log2
+log2f
+log2l
+logb
+logbf
+logbl
+logf
+logl
+lrint
+lrintf
+lrintl
+lround
+lroundf
+lroundl
+modf
+modff
+modfl
+nan
+nanf
+nanl
+nearbyint
+nearbyintf
+nearbyintl
+nextafter
+nextafterf
+nextafterl
+nexttoward
+nexttowardf
+nexttowardl
+pow
+powf
+powl
+remainder
+remainderf
+remainderl
+remquo
+remquof
+remquol
+rint
+rintf
+rintl
+round
+roundf
+roundl
+scalb
+scalbf
+scalbln
+scalblnf
+scalblnl
+scalbn
+scalbnf
+scalbnl
+significand
+significandf
+significandl
+sin
+sincos
+sincosf
+sincosl
+sinf
+sinh
+sinhf
+sinhl
+sinl
+sqrt
+sqrtf
+sqrtl
+tan
+tanf
+tanh
+tanhf
+tanhl
+tanl
+tgamma
+tgammaf
+tgammal
+trunc
+truncf
+truncl
+y0
+y0f
+y1
+y1f
+yn
+ynf
diff --git a/ndk/platforms/android-20/arch-arm/symbols/libm.so.variables.txt b/ndk/platforms/android-L/arch-x86_64/symbols/libm.so.variables.txt
similarity index 100%
copy from ndk/platforms/android-20/arch-arm/symbols/libm.so.variables.txt
copy to ndk/platforms/android-L/arch-x86_64/symbols/libm.so.variables.txt
diff --git a/ndk/platforms/android-L/arch-x86_64/symbols/libstdc++.so.functions.txt b/ndk/platforms/android-L/arch-x86_64/symbols/libstdc++.so.functions.txt
new file mode 100644
index 0000000..7e337ad
--- /dev/null
+++ b/ndk/platforms/android-L/arch-x86_64/symbols/libstdc++.so.functions.txt
@@ -0,0 +1 @@
+__this_library_is_now_part_of_libc
diff --git a/ndk/platforms/android-20/arch-x86_64/symbols/libEGL.so.variables.txt b/ndk/platforms/android-L/arch-x86_64/symbols/libstdc++.so.variables.txt
similarity index 100%
copy from ndk/platforms/android-20/arch-x86_64/symbols/libEGL.so.variables.txt
copy to ndk/platforms/android-L/arch-x86_64/symbols/libstdc++.so.variables.txt
diff --git a/ndk/platforms/android-L/arch-x86_64/symbols/libz.so.functions.txt b/ndk/platforms/android-L/arch-x86_64/symbols/libz.so.functions.txt
new file mode 100644
index 0000000..bbd634e
--- /dev/null
+++ b/ndk/platforms/android-L/arch-x86_64/symbols/libz.so.functions.txt
@@ -0,0 +1,88 @@
+_tr_align
+_tr_flush_bits
+_tr_flush_block
+_tr_init
+_tr_stored_block
+_tr_tally
+adler32
+adler32_combine
+adler32_combine64
+compress
+compress2
+compressBound
+crc32
+crc32_combine
+crc32_combine64
+deflate
+deflateBound
+deflateCopy
+deflateEnd
+deflateInit2_
+deflateInit_
+deflateParams
+deflatePending
+deflatePrime
+deflateReset
+deflateResetKeep
+deflateSetDictionary
+deflateSetHeader
+deflateTune
+get_crc_table
+gz_error
+gzbuffer
+gzclearerr
+gzclose
+gzclose_r
+gzclose_w
+gzdirect
+gzdopen
+gzeof
+gzerror
+gzflush
+gzgetc
+gzgetc_
+gzgets
+gzoffset
+gzoffset64
+gzopen
+gzopen64
+gzprintf
+gzputc
+gzputs
+gzread
+gzrewind
+gzseek
+gzseek64
+gzsetparams
+gztell
+gztell64
+gzungetc
+gzvprintf
+gzwrite
+inflate
+inflateBack
+inflateBackEnd
+inflateBackInit_
+inflateCopy
+inflateEnd
+inflateGetDictionary
+inflateGetHeader
+inflateInit2_
+inflateInit_
+inflateMark
+inflatePrime
+inflateReset
+inflateReset2
+inflateResetKeep
+inflateSetDictionary
+inflateSync
+inflateSyncPoint
+inflateUndermine
+inflate_fast
+inflate_table
+uncompress
+zError
+zcalloc
+zcfree
+zlibCompileFlags
+zlibVersion
diff --git a/ndk/platforms/android-L/arch-x86_64/symbols/libz.so.variables.txt b/ndk/platforms/android-L/arch-x86_64/symbols/libz.so.variables.txt
new file mode 100644
index 0000000..c653ee5
--- /dev/null
+++ b/ndk/platforms/android-L/arch-x86_64/symbols/libz.so.variables.txt
@@ -0,0 +1,5 @@
+_dist_code
+_length_code
+deflate_copyright
+inflate_copyright
+z_errmsg
diff --git a/ndk/platforms/android-20/include/alloca.h b/ndk/platforms/android-L/include/alloca.h
similarity index 100%
rename from ndk/platforms/android-20/include/alloca.h
rename to ndk/platforms/android-L/include/alloca.h
diff --git a/ndk/platforms/android-20/include/android/api-level.h b/ndk/platforms/android-L/include/android/api-level.h
similarity index 100%
rename from ndk/platforms/android-20/include/android/api-level.h
rename to ndk/platforms/android-L/include/android/api-level.h
diff --git a/ndk/platforms/android-20/include/android/dlext.h b/ndk/platforms/android-L/include/android/dlext.h
similarity index 100%
rename from ndk/platforms/android-20/include/android/dlext.h
rename to ndk/platforms/android-L/include/android/dlext.h
diff --git a/ndk/platforms/android-20/include/ar.h b/ndk/platforms/android-L/include/ar.h
similarity index 100%
rename from ndk/platforms/android-20/include/ar.h
rename to ndk/platforms/android-L/include/ar.h
diff --git a/ndk/platforms/android-20/include/arpa/inet.h b/ndk/platforms/android-L/include/arpa/inet.h
similarity index 100%
rename from ndk/platforms/android-20/include/arpa/inet.h
rename to ndk/platforms/android-L/include/arpa/inet.h
diff --git a/ndk/platforms/android-20/include/arpa/nameser.h b/ndk/platforms/android-L/include/arpa/nameser.h
similarity index 100%
rename from ndk/platforms/android-20/include/arpa/nameser.h
rename to ndk/platforms/android-L/include/arpa/nameser.h
diff --git a/ndk/platforms/android-20/include/arpa/nameser_compat.h b/ndk/platforms/android-L/include/arpa/nameser_compat.h
similarity index 100%
rename from ndk/platforms/android-20/include/arpa/nameser_compat.h
rename to ndk/platforms/android-L/include/arpa/nameser_compat.h
diff --git a/ndk/platforms/android-20/include/arpa/telnet.h b/ndk/platforms/android-L/include/arpa/telnet.h
similarity index 100%
rename from ndk/platforms/android-20/include/arpa/telnet.h
rename to ndk/platforms/android-L/include/arpa/telnet.h
diff --git a/ndk/platforms/android-20/include/asm-generic/auxvec.h b/ndk/platforms/android-L/include/asm-generic/auxvec.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/auxvec.h
rename to ndk/platforms/android-L/include/asm-generic/auxvec.h
diff --git a/ndk/platforms/android-20/include/asm-generic/bitsperlong.h b/ndk/platforms/android-L/include/asm-generic/bitsperlong.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/bitsperlong.h
rename to ndk/platforms/android-L/include/asm-generic/bitsperlong.h
diff --git a/ndk/platforms/android-20/include/asm-generic/errno-base.h b/ndk/platforms/android-L/include/asm-generic/errno-base.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/errno-base.h
rename to ndk/platforms/android-L/include/asm-generic/errno-base.h
diff --git a/ndk/platforms/android-20/include/asm-generic/errno.h b/ndk/platforms/android-L/include/asm-generic/errno.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/errno.h
rename to ndk/platforms/android-L/include/asm-generic/errno.h
diff --git a/ndk/platforms/android-20/include/asm-generic/fcntl.h b/ndk/platforms/android-L/include/asm-generic/fcntl.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/fcntl.h
rename to ndk/platforms/android-L/include/asm-generic/fcntl.h
diff --git a/ndk/platforms/android-20/include/asm-generic/int-l64.h b/ndk/platforms/android-L/include/asm-generic/int-l64.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/int-l64.h
rename to ndk/platforms/android-L/include/asm-generic/int-l64.h
diff --git a/ndk/platforms/android-20/include/asm-generic/int-ll64.h b/ndk/platforms/android-L/include/asm-generic/int-ll64.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/int-ll64.h
rename to ndk/platforms/android-L/include/asm-generic/int-ll64.h
diff --git a/ndk/platforms/android-20/include/asm-generic/ioctl.h b/ndk/platforms/android-L/include/asm-generic/ioctl.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/ioctl.h
rename to ndk/platforms/android-L/include/asm-generic/ioctl.h
diff --git a/ndk/platforms/android-20/include/asm-generic/ioctls.h b/ndk/platforms/android-L/include/asm-generic/ioctls.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/ioctls.h
rename to ndk/platforms/android-L/include/asm-generic/ioctls.h
diff --git a/ndk/platforms/android-20/include/asm-generic/ipcbuf.h b/ndk/platforms/android-L/include/asm-generic/ipcbuf.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/ipcbuf.h
rename to ndk/platforms/android-L/include/asm-generic/ipcbuf.h
diff --git a/ndk/platforms/android-20/include/asm-generic/kvm_para.h b/ndk/platforms/android-L/include/asm-generic/kvm_para.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/kvm_para.h
rename to ndk/platforms/android-L/include/asm-generic/kvm_para.h
diff --git a/ndk/platforms/android-20/include/asm-generic/mman-common.h b/ndk/platforms/android-L/include/asm-generic/mman-common.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/mman-common.h
rename to ndk/platforms/android-L/include/asm-generic/mman-common.h
diff --git a/ndk/platforms/android-20/include/asm-generic/mman.h b/ndk/platforms/android-L/include/asm-generic/mman.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/mman.h
rename to ndk/platforms/android-L/include/asm-generic/mman.h
diff --git a/ndk/platforms/android-20/include/asm-generic/msgbuf.h b/ndk/platforms/android-L/include/asm-generic/msgbuf.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/msgbuf.h
rename to ndk/platforms/android-L/include/asm-generic/msgbuf.h
diff --git a/ndk/platforms/android-20/include/asm-generic/param.h b/ndk/platforms/android-L/include/asm-generic/param.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/param.h
rename to ndk/platforms/android-L/include/asm-generic/param.h
diff --git a/ndk/platforms/android-20/include/asm-generic/poll.h b/ndk/platforms/android-L/include/asm-generic/poll.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/poll.h
rename to ndk/platforms/android-L/include/asm-generic/poll.h
diff --git a/ndk/platforms/android-20/include/asm-generic/posix_types.h b/ndk/platforms/android-L/include/asm-generic/posix_types.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/posix_types.h
rename to ndk/platforms/android-L/include/asm-generic/posix_types.h
diff --git a/ndk/platforms/android-20/include/asm-generic/resource.h b/ndk/platforms/android-L/include/asm-generic/resource.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/resource.h
rename to ndk/platforms/android-L/include/asm-generic/resource.h
diff --git a/ndk/platforms/android-20/include/asm-generic/sembuf.h b/ndk/platforms/android-L/include/asm-generic/sembuf.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/sembuf.h
rename to ndk/platforms/android-L/include/asm-generic/sembuf.h
diff --git a/ndk/platforms/android-20/include/asm-generic/setup.h b/ndk/platforms/android-L/include/asm-generic/setup.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/setup.h
rename to ndk/platforms/android-L/include/asm-generic/setup.h
diff --git a/ndk/platforms/android-20/include/asm-generic/shmbuf.h b/ndk/platforms/android-L/include/asm-generic/shmbuf.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/shmbuf.h
rename to ndk/platforms/android-L/include/asm-generic/shmbuf.h
diff --git a/ndk/platforms/android-20/include/asm-generic/shmparam.h b/ndk/platforms/android-L/include/asm-generic/shmparam.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/shmparam.h
rename to ndk/platforms/android-L/include/asm-generic/shmparam.h
diff --git a/ndk/platforms/android-20/include/asm-generic/siginfo.h b/ndk/platforms/android-L/include/asm-generic/siginfo.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/siginfo.h
rename to ndk/platforms/android-L/include/asm-generic/siginfo.h
diff --git a/ndk/platforms/android-20/include/asm-generic/signal-defs.h b/ndk/platforms/android-L/include/asm-generic/signal-defs.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/signal-defs.h
rename to ndk/platforms/android-L/include/asm-generic/signal-defs.h
diff --git a/ndk/platforms/android-20/include/asm-generic/signal.h b/ndk/platforms/android-L/include/asm-generic/signal.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/signal.h
rename to ndk/platforms/android-L/include/asm-generic/signal.h
diff --git a/ndk/platforms/android-20/include/asm-generic/socket.h b/ndk/platforms/android-L/include/asm-generic/socket.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/socket.h
rename to ndk/platforms/android-L/include/asm-generic/socket.h
diff --git a/ndk/platforms/android-20/include/asm-generic/sockios.h b/ndk/platforms/android-L/include/asm-generic/sockios.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/sockios.h
rename to ndk/platforms/android-L/include/asm-generic/sockios.h
diff --git a/ndk/platforms/android-20/include/asm-generic/stat.h b/ndk/platforms/android-L/include/asm-generic/stat.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/stat.h
rename to ndk/platforms/android-L/include/asm-generic/stat.h
diff --git a/ndk/platforms/android-20/include/asm-generic/statfs.h b/ndk/platforms/android-L/include/asm-generic/statfs.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/statfs.h
rename to ndk/platforms/android-L/include/asm-generic/statfs.h
diff --git a/ndk/platforms/android-20/include/asm-generic/swab.h b/ndk/platforms/android-L/include/asm-generic/swab.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/swab.h
rename to ndk/platforms/android-L/include/asm-generic/swab.h
diff --git a/ndk/platforms/android-20/include/asm-generic/termbits.h b/ndk/platforms/android-L/include/asm-generic/termbits.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/termbits.h
rename to ndk/platforms/android-L/include/asm-generic/termbits.h
diff --git a/ndk/platforms/android-20/include/asm-generic/termios.h b/ndk/platforms/android-L/include/asm-generic/termios.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/termios.h
rename to ndk/platforms/android-L/include/asm-generic/termios.h
diff --git a/ndk/platforms/android-20/include/asm-generic/types.h b/ndk/platforms/android-L/include/asm-generic/types.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/types.h
rename to ndk/platforms/android-L/include/asm-generic/types.h
diff --git a/ndk/platforms/android-20/include/asm-generic/ucontext.h b/ndk/platforms/android-L/include/asm-generic/ucontext.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/ucontext.h
rename to ndk/platforms/android-L/include/asm-generic/ucontext.h
diff --git a/ndk/platforms/android-20/include/asm-generic/unistd.h b/ndk/platforms/android-L/include/asm-generic/unistd.h
similarity index 100%
rename from ndk/platforms/android-20/include/asm-generic/unistd.h
rename to ndk/platforms/android-L/include/asm-generic/unistd.h
diff --git a/ndk/platforms/android-20/include/assert.h b/ndk/platforms/android-L/include/assert.h
similarity index 100%
rename from ndk/platforms/android-20/include/assert.h
rename to ndk/platforms/android-L/include/assert.h
diff --git a/ndk/platforms/android-20/include/byteswap.h b/ndk/platforms/android-L/include/byteswap.h
similarity index 100%
rename from ndk/platforms/android-20/include/byteswap.h
rename to ndk/platforms/android-L/include/byteswap.h
diff --git a/ndk/platforms/android-20/include/complex.h b/ndk/platforms/android-L/include/complex.h
similarity index 100%
rename from ndk/platforms/android-20/include/complex.h
rename to ndk/platforms/android-L/include/complex.h
diff --git a/ndk/platforms/android-20/include/ctype.h b/ndk/platforms/android-L/include/ctype.h
similarity index 100%
rename from ndk/platforms/android-20/include/ctype.h
rename to ndk/platforms/android-L/include/ctype.h
diff --git a/ndk/platforms/android-L/include/dirent.h b/ndk/platforms/android-L/include/dirent.h
new file mode 100644
index 0000000..a849a61
--- /dev/null
+++ b/ndk/platforms/android-L/include/dirent.h
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _DIRENT_H_
+#define _DIRENT_H_
+
+#include <stdint.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+
+#ifndef DT_UNKNOWN
+#define DT_UNKNOWN 0
+#define DT_FIFO 1
+#define DT_CHR 2
+#define DT_DIR 4
+#define DT_BLK 6
+#define DT_REG 8
+#define DT_LNK 10
+#define DT_SOCK 12
+#define DT_WHT 14
+#endif
+
+#define __DIRENT64_BODY \
+    uint64_t         d_ino; \
+    int64_t          d_off; \
+    unsigned short   d_reclen; \
+    unsigned char    d_type; \
+    char             d_name[256]; \
+
+struct dirent { __DIRENT64_BODY };
+struct dirent64 { __DIRENT64_BODY };
+
+#undef __DIRENT64_BODY
+
+#define d_fileno d_ino
+
+typedef struct DIR DIR;
+
+extern DIR* opendir(const char*);
+extern DIR* fdopendir(int);
+extern struct dirent* readdir(DIR*);
+extern struct dirent64* readdir64(DIR*);
+extern int readdir_r(DIR*, struct dirent*, struct dirent**);
+extern int readdir64_r(DIR*, struct dirent64*, struct dirent64**);
+extern int closedir(DIR*);
+extern void rewinddir(DIR*);
+extern int dirfd(DIR*);
+extern int alphasort(const struct dirent**, const struct dirent**);
+extern int alphasort64(const struct dirent64**, const struct dirent64**);
+extern int scandir(const char*, struct dirent***, int (*)(const struct dirent*), int (*)(const struct dirent**, const struct dirent**));
+extern int scandir64(const char*, struct dirent64***, int (*)(const struct dirent64*), int (*)(const struct dirent64**, const struct dirent64**));
+
+__END_DECLS
+
+#endif /* _DIRENT_H_ */
diff --git a/ndk/platforms/android-L/include/dlfcn.h b/ndk/platforms/android-L/include/dlfcn.h
new file mode 100644
index 0000000..8dde08c
--- /dev/null
+++ b/ndk/platforms/android-L/include/dlfcn.h
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+#ifndef __DLFCN_H__
+#define __DLFCN_H__
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+
+typedef struct {
+    const char *dli_fname;  /* Pathname of shared object that
+                               contains address */
+    void       *dli_fbase;  /* Address at which shared object
+                               is loaded */
+    const char *dli_sname;  /* Name of nearest symbol with address
+                               lower than addr */
+    void       *dli_saddr;  /* Exact address of symbol named
+                               in dli_sname */
+} Dl_info;
+
+extern void*        dlopen(const char*  filename, int flag);
+extern int          dlclose(void*  handle);
+extern const char*  dlerror(void);
+extern void*        dlsym(void*  handle, const char*  symbol);
+extern int          dladdr(const void* addr, Dl_info *info);
+
+enum {
+#if defined(__LP64__)
+  RTLD_NOW  = 2,
+#else
+  RTLD_NOW  = 0,
+#endif
+  RTLD_LAZY = 1,
+
+  RTLD_LOCAL  = 0,
+#if defined(__LP64__)
+  RTLD_GLOBAL = 0x00100,
+#else
+  RTLD_GLOBAL = 2,
+#endif
+  RTLD_NOLOAD = 4,
+};
+
+#if defined (__LP64__)
+#define RTLD_DEFAULT  ((void*) 0)
+#define RTLD_NEXT     ((void*) -1L)
+#else
+#define RTLD_DEFAULT  ((void*) 0xffffffff)
+#define RTLD_NEXT     ((void*) 0xfffffffe)
+#endif
+
+__END_DECLS
+
+#endif /* __DLFCN_H */
+
+
diff --git a/ndk/platforms/android-20/include/elf.h b/ndk/platforms/android-L/include/elf.h
similarity index 100%
rename from ndk/platforms/android-20/include/elf.h
rename to ndk/platforms/android-L/include/elf.h
diff --git a/ndk/platforms/android-20/include/endian.h b/ndk/platforms/android-L/include/endian.h
similarity index 100%
rename from ndk/platforms/android-20/include/endian.h
rename to ndk/platforms/android-L/include/endian.h
diff --git a/ndk/platforms/android-20/include/err.h b/ndk/platforms/android-L/include/err.h
similarity index 100%
rename from ndk/platforms/android-20/include/err.h
rename to ndk/platforms/android-L/include/err.h
diff --git a/ndk/platforms/android-L/include/errno.h b/ndk/platforms/android-L/include/errno.h
new file mode 100644
index 0000000..1a36b7a
--- /dev/null
+++ b/ndk/platforms/android-L/include/errno.h
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+#ifndef _ERRNO_H
+#define _ERRNO_H
+
+#include <sys/cdefs.h>
+#include <linux/errno.h>
+
+__BEGIN_DECLS
+
+/* on Linux, ENOTSUP and EOPNOTSUPP are defined as the same error code
+ * even if 1000.3 states that they should be different
+ */
+#ifndef  ENOTSUP
+#define  ENOTSUP  EOPNOTSUPP
+#endif
+
+/* internal function returning the address of the thread-specific errno */
+extern volatile int* __errno(void) __pure2;
+
+/* a macro expanding to the errno l-value */
+#define  errno   (*__errno())
+
+__END_DECLS
+
+#endif /* _ERRNO_H */
diff --git a/ndk/platforms/android-20/include/fcntl.h b/ndk/platforms/android-L/include/fcntl.h
similarity index 100%
rename from ndk/platforms/android-20/include/fcntl.h
rename to ndk/platforms/android-L/include/fcntl.h
diff --git a/ndk/platforms/android-20/include/features.h b/ndk/platforms/android-L/include/features.h
similarity index 100%
rename from ndk/platforms/android-20/include/features.h
rename to ndk/platforms/android-L/include/features.h
diff --git a/ndk/platforms/android-L/include/fenv.h b/ndk/platforms/android-L/include/fenv.h
new file mode 100644
index 0000000..73ecc80
--- /dev/null
+++ b/ndk/platforms/android-L/include/fenv.h
@@ -0,0 +1,71 @@
+/*  $OpenBSD: fenv.h,v 1.2 2011/05/25 21:46:49 martynas Exp $ */
+/*  $NetBSD: fenv.h,v 1.2.4.1 2011/02/08 16:18:55 bouyer Exp $  */
+
+/*
+ * Copyright (c) 2010 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _FENV_H_
+#define _FENV_H_
+
+#include <sys/cdefs.h>
+#include <machine/fenv.h>
+
+__BEGIN_DECLS
+#pragma GCC visibility push(default)
+
+int feclearexcept(int);
+int fegetexceptflag(fexcept_t *, int);
+int feraiseexcept(int);
+int fesetexceptflag(const fexcept_t *, int);
+int fetestexcept(int);
+
+int fegetround(void);
+int fesetround(int);
+
+int fegetenv(fenv_t *);
+int feholdexcept(fenv_t *);
+int fesetenv(const fenv_t *);
+int feupdateenv(const fenv_t *);
+
+int feenableexcept(int);
+int fedisableexcept(int);
+int fegetexcept(void);
+
+/*
+ * The following constant represents the default floating-point environment
+ * (that is, the one installed at program startup) and has type pointer to
+ * const-qualified fenv_t.
+ *
+ * It can be used as an argument to the functions that manage the floating-point
+ * environment, namely fesetenv() and feupdateenv().
+ */
+extern const fenv_t __fe_dfl_env;
+#define FE_DFL_ENV  (&__fe_dfl_env)
+
+#pragma GCC visibility pop
+__END_DECLS
+
+#endif  /* ! _FENV_H_ */
diff --git a/ndk/platforms/android-20/include/fnmatch.h b/ndk/platforms/android-L/include/fnmatch.h
similarity index 100%
rename from ndk/platforms/android-20/include/fnmatch.h
rename to ndk/platforms/android-L/include/fnmatch.h
diff --git a/ndk/platforms/android-20/include/fts.h b/ndk/platforms/android-L/include/fts.h
similarity index 100%
rename from ndk/platforms/android-20/include/fts.h
rename to ndk/platforms/android-L/include/fts.h
diff --git a/ndk/platforms/android-20/include/ftw.h b/ndk/platforms/android-L/include/ftw.h
similarity index 100%
rename from ndk/platforms/android-20/include/ftw.h
rename to ndk/platforms/android-L/include/ftw.h
diff --git a/ndk/platforms/android-20/include/getopt.h b/ndk/platforms/android-L/include/getopt.h
similarity index 100%
rename from ndk/platforms/android-20/include/getopt.h
rename to ndk/platforms/android-L/include/getopt.h
diff --git a/ndk/platforms/android-20/include/grp.h b/ndk/platforms/android-L/include/grp.h
similarity index 100%
rename from ndk/platforms/android-20/include/grp.h
rename to ndk/platforms/android-L/include/grp.h
diff --git a/ndk/platforms/android-20/include/inttypes.h b/ndk/platforms/android-L/include/inttypes.h
similarity index 100%
rename from ndk/platforms/android-20/include/inttypes.h
rename to ndk/platforms/android-L/include/inttypes.h
diff --git a/ndk/platforms/android-20/include/lastlog.h b/ndk/platforms/android-L/include/lastlog.h
similarity index 100%
rename from ndk/platforms/android-20/include/lastlog.h
rename to ndk/platforms/android-L/include/lastlog.h
diff --git a/ndk/platforms/android-20/include/libgen.h b/ndk/platforms/android-L/include/libgen.h
similarity index 100%
rename from ndk/platforms/android-20/include/libgen.h
rename to ndk/platforms/android-L/include/libgen.h
diff --git a/ndk/platforms/android-L/include/limits.h b/ndk/platforms/android-L/include/limits.h
new file mode 100644
index 0000000..fb09657
--- /dev/null
+++ b/ndk/platforms/android-L/include/limits.h
@@ -0,0 +1,128 @@
+/*	$OpenBSD: limits.h,v 1.13 2005/12/31 19:29:38 millert Exp $	*/
+/*	$NetBSD: limits.h,v 1.7 1994/10/26 00:56:00 cgd Exp $	*/
+
+/*
+ * Copyright (c) 1988 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)limits.h	5.9 (Berkeley) 4/3/91
+ */
+
+#ifndef _LIMITS_H_
+#define	_LIMITS_H_
+
+#include <sys/cdefs.h>
+
+#if __POSIX_VISIBLE
+#define	_POSIX_ARG_MAX		4096
+#define	_POSIX_CHILD_MAX	25
+#define	_POSIX_LINK_MAX		8
+#define	_POSIX_MAX_CANON	255
+#define	_POSIX_MAX_INPUT	255
+#define	_POSIX_NAME_MAX		14
+#define	_POSIX_NGROUPS_MAX	0
+#define	_POSIX_OPEN_MAX		16
+#define	_POSIX_PATH_MAX		256
+#define _POSIX_PIPE_BUF		512
+#define	_POSIX_RE_DUP_MAX	255
+#define _POSIX_SSIZE_MAX	32767
+#define _POSIX_STREAM_MAX	8
+#define _POSIX_SYMLINK_MAX	255
+#define _POSIX_SYMLOOP_MAX	8
+#define _POSIX_TZNAME_MAX	3
+
+#define	_POSIX2_BC_BASE_MAX	99
+#define	_POSIX2_BC_DIM_MAX	2048
+#define	_POSIX2_BC_SCALE_MAX	99
+#define	_POSIX2_BC_STRING_MAX	1000
+#define	_POSIX2_COLL_WEIGHTS_MAX	2
+#define	_POSIX2_EXPR_NEST_MAX	32
+#define	_POSIX2_LINE_MAX	2048
+#define	_POSIX2_RE_DUP_MAX	_POSIX_RE_DUP_MAX
+
+#if __POSIX_VISIBLE >= 200112
+#define _POSIX_TTY_NAME_MAX	9	/* includes trailing NUL */
+#define _POSIX_LOGIN_NAME_MAX	9	/* includes trailing NUL */
+#endif /* __POSIX_VISIBLE >= 200112 */
+#endif /* __POSIX_VISIBLE */
+
+#if __XPG_VISIBLE
+#define PASS_MAX		128	/* _PASSWORD_LEN from <pwd.h> */
+
+#define NL_ARGMAX		9
+#define NL_LANGMAX		14
+#define NL_MSGMAX		32767
+#define NL_NMAX			1
+#define NL_SETMAX		255
+#define NL_TEXTMAX		255
+
+#define TMP_MAX                 308915776
+#endif /* __XPG_VISIBLE */
+
+#include <sys/limits.h>
+
+#if __POSIX_VISIBLE
+#include <sys/syslimits.h>
+#endif
+
+/* GLibc compatibility definitions.
+   Note that these are defined by GCC's <limits.h>
+   only when __GNU_LIBRARY__ is defined, i.e. when
+   targetting GLibc. */
+#ifndef LONG_LONG_MIN
+#define LONG_LONG_MIN  LLONG_MIN
+#endif
+
+#ifndef LONG_LONG_MAX
+#define LONG_LONG_MAX  LLONG_MAX
+#endif
+
+#ifndef ULONG_LONG_MAX
+#define ULONG_LONG_MAX  ULLONG_MAX
+#endif
+
+/* BSD compatibility definitions. */
+#if __BSD_VISIBLE
+#define SIZE_T_MAX ULONG_MAX
+#endif /* __BSD_VISIBLE */
+
+#define SSIZE_MAX LONG_MAX
+
+#define MB_LEN_MAX 4
+
+/* New code should use sysconf(_SC_PAGE_SIZE) instead. */
+#ifndef PAGE_SIZE
+#define PAGE_SIZE 4096
+#endif
+#ifndef PAGESIZE
+#define  PAGESIZE  PAGE_SIZE
+#endif
+
+/* glibc's PAGE_MASK is the bitwise negation of BSD's! TODO: remove? */
+#define PAGE_MASK (~(PAGE_SIZE - 1))
+
+#endif /* !_LIMITS_H_ */
diff --git a/ndk/platforms/android-20/include/link.h b/ndk/platforms/android-L/include/link.h
similarity index 100%
rename from ndk/platforms/android-20/include/link.h
rename to ndk/platforms/android-L/include/link.h
diff --git a/ndk/platforms/android-20/include/linux/a.out.h b/ndk/platforms/android-L/include/linux/a.out.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/a.out.h
rename to ndk/platforms/android-L/include/linux/a.out.h
diff --git a/ndk/platforms/android-20/include/linux/acct.h b/ndk/platforms/android-L/include/linux/acct.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/acct.h
rename to ndk/platforms/android-L/include/linux/acct.h
diff --git a/ndk/platforms/android-20/include/linux/adb.h b/ndk/platforms/android-L/include/linux/adb.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/adb.h
rename to ndk/platforms/android-L/include/linux/adb.h
diff --git a/ndk/platforms/android-20/include/linux/adfs_fs.h b/ndk/platforms/android-L/include/linux/adfs_fs.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/adfs_fs.h
rename to ndk/platforms/android-L/include/linux/adfs_fs.h
diff --git a/ndk/platforms/android-20/include/linux/affs_hardblocks.h b/ndk/platforms/android-L/include/linux/affs_hardblocks.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/affs_hardblocks.h
rename to ndk/platforms/android-L/include/linux/affs_hardblocks.h
diff --git a/ndk/platforms/android-20/include/linux/agpgart.h b/ndk/platforms/android-L/include/linux/agpgart.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/agpgart.h
rename to ndk/platforms/android-L/include/linux/agpgart.h
diff --git a/ndk/platforms/android-20/include/linux/aio_abi.h b/ndk/platforms/android-L/include/linux/aio_abi.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/aio_abi.h
rename to ndk/platforms/android-L/include/linux/aio_abi.h
diff --git a/ndk/platforms/android-20/include/linux/android_alarm.h b/ndk/platforms/android-L/include/linux/android_alarm.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/android_alarm.h
rename to ndk/platforms/android-L/include/linux/android_alarm.h
diff --git a/ndk/platforms/android-20/include/linux/apm_bios.h b/ndk/platforms/android-L/include/linux/apm_bios.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/apm_bios.h
rename to ndk/platforms/android-L/include/linux/apm_bios.h
diff --git a/ndk/platforms/android-20/include/linux/arcfb.h b/ndk/platforms/android-L/include/linux/arcfb.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/arcfb.h
rename to ndk/platforms/android-L/include/linux/arcfb.h
diff --git a/ndk/platforms/android-20/include/linux/ashmem.h b/ndk/platforms/android-L/include/linux/ashmem.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/ashmem.h
rename to ndk/platforms/android-L/include/linux/ashmem.h
diff --git a/ndk/platforms/android-20/include/linux/atalk.h b/ndk/platforms/android-L/include/linux/atalk.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/atalk.h
rename to ndk/platforms/android-L/include/linux/atalk.h
diff --git a/ndk/platforms/android-20/include/linux/atm.h b/ndk/platforms/android-L/include/linux/atm.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/atm.h
rename to ndk/platforms/android-L/include/linux/atm.h
diff --git a/ndk/platforms/android-20/include/linux/atm_eni.h b/ndk/platforms/android-L/include/linux/atm_eni.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/atm_eni.h
rename to ndk/platforms/android-L/include/linux/atm_eni.h
diff --git a/ndk/platforms/android-20/include/linux/atm_he.h b/ndk/platforms/android-L/include/linux/atm_he.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/atm_he.h
rename to ndk/platforms/android-L/include/linux/atm_he.h
diff --git a/ndk/platforms/android-20/include/linux/atm_idt77105.h b/ndk/platforms/android-L/include/linux/atm_idt77105.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/atm_idt77105.h
rename to ndk/platforms/android-L/include/linux/atm_idt77105.h
diff --git a/ndk/platforms/android-20/include/linux/atm_nicstar.h b/ndk/platforms/android-L/include/linux/atm_nicstar.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/atm_nicstar.h
rename to ndk/platforms/android-L/include/linux/atm_nicstar.h
diff --git a/ndk/platforms/android-20/include/linux/atm_tcp.h b/ndk/platforms/android-L/include/linux/atm_tcp.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/atm_tcp.h
rename to ndk/platforms/android-L/include/linux/atm_tcp.h
diff --git a/ndk/platforms/android-20/include/linux/atm_zatm.h b/ndk/platforms/android-L/include/linux/atm_zatm.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/atm_zatm.h
rename to ndk/platforms/android-L/include/linux/atm_zatm.h
diff --git a/ndk/platforms/android-20/include/linux/atmapi.h b/ndk/platforms/android-L/include/linux/atmapi.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/atmapi.h
rename to ndk/platforms/android-L/include/linux/atmapi.h
diff --git a/ndk/platforms/android-20/include/linux/atmarp.h b/ndk/platforms/android-L/include/linux/atmarp.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/atmarp.h
rename to ndk/platforms/android-L/include/linux/atmarp.h
diff --git a/ndk/platforms/android-20/include/linux/atmbr2684.h b/ndk/platforms/android-L/include/linux/atmbr2684.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/atmbr2684.h
rename to ndk/platforms/android-L/include/linux/atmbr2684.h
diff --git a/ndk/platforms/android-20/include/linux/atmclip.h b/ndk/platforms/android-L/include/linux/atmclip.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/atmclip.h
rename to ndk/platforms/android-L/include/linux/atmclip.h
diff --git a/ndk/platforms/android-20/include/linux/atmdev.h b/ndk/platforms/android-L/include/linux/atmdev.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/atmdev.h
rename to ndk/platforms/android-L/include/linux/atmdev.h
diff --git a/ndk/platforms/android-20/include/linux/atmioc.h b/ndk/platforms/android-L/include/linux/atmioc.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/atmioc.h
rename to ndk/platforms/android-L/include/linux/atmioc.h
diff --git a/ndk/platforms/android-20/include/linux/atmlec.h b/ndk/platforms/android-L/include/linux/atmlec.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/atmlec.h
rename to ndk/platforms/android-L/include/linux/atmlec.h
diff --git a/ndk/platforms/android-20/include/linux/atmmpc.h b/ndk/platforms/android-L/include/linux/atmmpc.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/atmmpc.h
rename to ndk/platforms/android-L/include/linux/atmmpc.h
diff --git a/ndk/platforms/android-20/include/linux/atmppp.h b/ndk/platforms/android-L/include/linux/atmppp.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/atmppp.h
rename to ndk/platforms/android-L/include/linux/atmppp.h
diff --git a/ndk/platforms/android-20/include/linux/atmsap.h b/ndk/platforms/android-L/include/linux/atmsap.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/atmsap.h
rename to ndk/platforms/android-L/include/linux/atmsap.h
diff --git a/ndk/platforms/android-20/include/linux/atmsvc.h b/ndk/platforms/android-L/include/linux/atmsvc.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/atmsvc.h
rename to ndk/platforms/android-L/include/linux/atmsvc.h
diff --git a/ndk/platforms/android-20/include/linux/audit.h b/ndk/platforms/android-L/include/linux/audit.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/audit.h
rename to ndk/platforms/android-L/include/linux/audit.h
diff --git a/ndk/platforms/android-20/include/linux/auto_fs.h b/ndk/platforms/android-L/include/linux/auto_fs.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/auto_fs.h
rename to ndk/platforms/android-L/include/linux/auto_fs.h
diff --git a/ndk/platforms/android-20/include/linux/auto_fs4.h b/ndk/platforms/android-L/include/linux/auto_fs4.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/auto_fs4.h
rename to ndk/platforms/android-L/include/linux/auto_fs4.h
diff --git a/ndk/platforms/android-20/include/linux/auxvec.h b/ndk/platforms/android-L/include/linux/auxvec.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/auxvec.h
rename to ndk/platforms/android-L/include/linux/auxvec.h
diff --git a/ndk/platforms/android-20/include/linux/ax25.h b/ndk/platforms/android-L/include/linux/ax25.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/ax25.h
rename to ndk/platforms/android-L/include/linux/ax25.h
diff --git a/ndk/platforms/android-20/include/linux/b1lli.h b/ndk/platforms/android-L/include/linux/b1lli.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/b1lli.h
rename to ndk/platforms/android-L/include/linux/b1lli.h
diff --git a/ndk/platforms/android-20/include/linux/baycom.h b/ndk/platforms/android-L/include/linux/baycom.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/baycom.h
rename to ndk/platforms/android-L/include/linux/baycom.h
diff --git a/ndk/platforms/android-20/include/linux/bcm933xx_hcs.h b/ndk/platforms/android-L/include/linux/bcm933xx_hcs.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/bcm933xx_hcs.h
rename to ndk/platforms/android-L/include/linux/bcm933xx_hcs.h
diff --git a/ndk/platforms/android-20/include/linux/bfs_fs.h b/ndk/platforms/android-L/include/linux/bfs_fs.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/bfs_fs.h
rename to ndk/platforms/android-L/include/linux/bfs_fs.h
diff --git a/ndk/platforms/android-20/include/linux/binder.h b/ndk/platforms/android-L/include/linux/binder.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/binder.h
rename to ndk/platforms/android-L/include/linux/binder.h
diff --git a/ndk/platforms/android-20/include/linux/binfmts.h b/ndk/platforms/android-L/include/linux/binfmts.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/binfmts.h
rename to ndk/platforms/android-L/include/linux/binfmts.h
diff --git a/ndk/platforms/android-20/include/linux/blkpg.h b/ndk/platforms/android-L/include/linux/blkpg.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/blkpg.h
rename to ndk/platforms/android-L/include/linux/blkpg.h
diff --git a/ndk/platforms/android-20/include/linux/blktrace_api.h b/ndk/platforms/android-L/include/linux/blktrace_api.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/blktrace_api.h
rename to ndk/platforms/android-L/include/linux/blktrace_api.h
diff --git a/ndk/platforms/android-20/include/linux/bpqether.h b/ndk/platforms/android-L/include/linux/bpqether.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/bpqether.h
rename to ndk/platforms/android-L/include/linux/bpqether.h
diff --git a/ndk/platforms/android-20/include/linux/bsg.h b/ndk/platforms/android-L/include/linux/bsg.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/bsg.h
rename to ndk/platforms/android-L/include/linux/bsg.h
diff --git a/ndk/platforms/android-20/include/linux/btrfs.h b/ndk/platforms/android-L/include/linux/btrfs.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/btrfs.h
rename to ndk/platforms/android-L/include/linux/btrfs.h
diff --git a/ndk/platforms/android-20/include/linux/byteorder/big_endian.h b/ndk/platforms/android-L/include/linux/byteorder/big_endian.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/byteorder/big_endian.h
rename to ndk/platforms/android-L/include/linux/byteorder/big_endian.h
diff --git a/ndk/platforms/android-20/include/linux/byteorder/little_endian.h b/ndk/platforms/android-L/include/linux/byteorder/little_endian.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/byteorder/little_endian.h
rename to ndk/platforms/android-L/include/linux/byteorder/little_endian.h
diff --git a/ndk/platforms/android-20/include/linux/caif/caif_socket.h b/ndk/platforms/android-L/include/linux/caif/caif_socket.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/caif/caif_socket.h
rename to ndk/platforms/android-L/include/linux/caif/caif_socket.h
diff --git a/ndk/platforms/android-20/include/linux/caif/if_caif.h b/ndk/platforms/android-L/include/linux/caif/if_caif.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/caif/if_caif.h
rename to ndk/platforms/android-L/include/linux/caif/if_caif.h
diff --git a/ndk/platforms/android-20/include/linux/can.h b/ndk/platforms/android-L/include/linux/can.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/can.h
rename to ndk/platforms/android-L/include/linux/can.h
diff --git a/ndk/platforms/android-20/include/linux/can/bcm.h b/ndk/platforms/android-L/include/linux/can/bcm.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/can/bcm.h
rename to ndk/platforms/android-L/include/linux/can/bcm.h
diff --git a/ndk/platforms/android-20/include/linux/can/error.h b/ndk/platforms/android-L/include/linux/can/error.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/can/error.h
rename to ndk/platforms/android-L/include/linux/can/error.h
diff --git a/ndk/platforms/android-20/include/linux/can/gw.h b/ndk/platforms/android-L/include/linux/can/gw.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/can/gw.h
rename to ndk/platforms/android-L/include/linux/can/gw.h
diff --git a/ndk/platforms/android-20/include/linux/can/netlink.h b/ndk/platforms/android-L/include/linux/can/netlink.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/can/netlink.h
rename to ndk/platforms/android-L/include/linux/can/netlink.h
diff --git a/ndk/platforms/android-20/include/linux/can/raw.h b/ndk/platforms/android-L/include/linux/can/raw.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/can/raw.h
rename to ndk/platforms/android-L/include/linux/can/raw.h
diff --git a/ndk/platforms/android-20/include/linux/capability.h b/ndk/platforms/android-L/include/linux/capability.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/capability.h
rename to ndk/platforms/android-L/include/linux/capability.h
diff --git a/ndk/platforms/android-20/include/linux/capi.h b/ndk/platforms/android-L/include/linux/capi.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/capi.h
rename to ndk/platforms/android-L/include/linux/capi.h
diff --git a/ndk/platforms/android-20/include/linux/cciss_defs.h b/ndk/platforms/android-L/include/linux/cciss_defs.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/cciss_defs.h
rename to ndk/platforms/android-L/include/linux/cciss_defs.h
diff --git a/ndk/platforms/android-20/include/linux/cciss_ioctl.h b/ndk/platforms/android-L/include/linux/cciss_ioctl.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/cciss_ioctl.h
rename to ndk/platforms/android-L/include/linux/cciss_ioctl.h
diff --git a/ndk/platforms/android-20/include/linux/cdrom.h b/ndk/platforms/android-L/include/linux/cdrom.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/cdrom.h
rename to ndk/platforms/android-L/include/linux/cdrom.h
diff --git a/ndk/platforms/android-20/include/linux/cgroupstats.h b/ndk/platforms/android-L/include/linux/cgroupstats.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/cgroupstats.h
rename to ndk/platforms/android-L/include/linux/cgroupstats.h
diff --git a/ndk/platforms/android-20/include/linux/chio.h b/ndk/platforms/android-L/include/linux/chio.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/chio.h
rename to ndk/platforms/android-L/include/linux/chio.h
diff --git a/ndk/platforms/android-20/include/linux/cm4000_cs.h b/ndk/platforms/android-L/include/linux/cm4000_cs.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/cm4000_cs.h
rename to ndk/platforms/android-L/include/linux/cm4000_cs.h
diff --git a/ndk/platforms/android-20/include/linux/cn_proc.h b/ndk/platforms/android-L/include/linux/cn_proc.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/cn_proc.h
rename to ndk/platforms/android-L/include/linux/cn_proc.h
diff --git a/ndk/platforms/android-20/include/linux/coda.h b/ndk/platforms/android-L/include/linux/coda.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/coda.h
rename to ndk/platforms/android-L/include/linux/coda.h
diff --git a/ndk/platforms/android-20/include/linux/coda_psdev.h b/ndk/platforms/android-L/include/linux/coda_psdev.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/coda_psdev.h
rename to ndk/platforms/android-L/include/linux/coda_psdev.h
diff --git a/ndk/platforms/android-20/include/linux/coff.h b/ndk/platforms/android-L/include/linux/coff.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/coff.h
rename to ndk/platforms/android-L/include/linux/coff.h
diff --git a/ndk/platforms/android-20/include/linux/compiler.h b/ndk/platforms/android-L/include/linux/compiler.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/compiler.h
rename to ndk/platforms/android-L/include/linux/compiler.h
diff --git a/ndk/platforms/android-20/include/linux/connector.h b/ndk/platforms/android-L/include/linux/connector.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/connector.h
rename to ndk/platforms/android-L/include/linux/connector.h
diff --git a/ndk/platforms/android-20/include/linux/const.h b/ndk/platforms/android-L/include/linux/const.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/const.h
rename to ndk/platforms/android-L/include/linux/const.h
diff --git a/ndk/platforms/android-20/include/linux/cramfs_fs.h b/ndk/platforms/android-L/include/linux/cramfs_fs.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/cramfs_fs.h
rename to ndk/platforms/android-L/include/linux/cramfs_fs.h
diff --git a/ndk/platforms/android-20/include/linux/cuda.h b/ndk/platforms/android-L/include/linux/cuda.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/cuda.h
rename to ndk/platforms/android-L/include/linux/cuda.h
diff --git a/ndk/platforms/android-20/include/linux/cyclades.h b/ndk/platforms/android-L/include/linux/cyclades.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/cyclades.h
rename to ndk/platforms/android-L/include/linux/cyclades.h
diff --git a/ndk/platforms/android-20/include/linux/cycx_cfm.h b/ndk/platforms/android-L/include/linux/cycx_cfm.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/cycx_cfm.h
rename to ndk/platforms/android-L/include/linux/cycx_cfm.h
diff --git a/ndk/platforms/android-20/include/linux/dcbnl.h b/ndk/platforms/android-L/include/linux/dcbnl.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/dcbnl.h
rename to ndk/platforms/android-L/include/linux/dcbnl.h
diff --git a/ndk/platforms/android-20/include/linux/dccp.h b/ndk/platforms/android-L/include/linux/dccp.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/dccp.h
rename to ndk/platforms/android-L/include/linux/dccp.h
diff --git a/ndk/platforms/android-20/include/linux/dlm.h b/ndk/platforms/android-L/include/linux/dlm.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/dlm.h
rename to ndk/platforms/android-L/include/linux/dlm.h
diff --git a/ndk/platforms/android-20/include/linux/dlm_device.h b/ndk/platforms/android-L/include/linux/dlm_device.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/dlm_device.h
rename to ndk/platforms/android-L/include/linux/dlm_device.h
diff --git a/ndk/platforms/android-20/include/linux/dlm_netlink.h b/ndk/platforms/android-L/include/linux/dlm_netlink.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/dlm_netlink.h
rename to ndk/platforms/android-L/include/linux/dlm_netlink.h
diff --git a/ndk/platforms/android-20/include/linux/dlm_plock.h b/ndk/platforms/android-L/include/linux/dlm_plock.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/dlm_plock.h
rename to ndk/platforms/android-L/include/linux/dlm_plock.h
diff --git a/ndk/platforms/android-20/include/linux/dlmconstants.h b/ndk/platforms/android-L/include/linux/dlmconstants.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/dlmconstants.h
rename to ndk/platforms/android-L/include/linux/dlmconstants.h
diff --git a/ndk/platforms/android-20/include/linux/dm-ioctl.h b/ndk/platforms/android-L/include/linux/dm-ioctl.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/dm-ioctl.h
rename to ndk/platforms/android-L/include/linux/dm-ioctl.h
diff --git a/ndk/platforms/android-20/include/linux/dm-log-userspace.h b/ndk/platforms/android-L/include/linux/dm-log-userspace.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/dm-log-userspace.h
rename to ndk/platforms/android-L/include/linux/dm-log-userspace.h
diff --git a/ndk/platforms/android-20/include/linux/dn.h b/ndk/platforms/android-L/include/linux/dn.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/dn.h
rename to ndk/platforms/android-L/include/linux/dn.h
diff --git a/ndk/platforms/android-20/include/linux/dqblk_xfs.h b/ndk/platforms/android-L/include/linux/dqblk_xfs.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/dqblk_xfs.h
rename to ndk/platforms/android-L/include/linux/dqblk_xfs.h
diff --git a/ndk/platforms/android-20/include/linux/dvb/audio.h b/ndk/platforms/android-L/include/linux/dvb/audio.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/dvb/audio.h
rename to ndk/platforms/android-L/include/linux/dvb/audio.h
diff --git a/ndk/platforms/android-20/include/linux/dvb/ca.h b/ndk/platforms/android-L/include/linux/dvb/ca.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/dvb/ca.h
rename to ndk/platforms/android-L/include/linux/dvb/ca.h
diff --git a/ndk/platforms/android-20/include/linux/dvb/dmx.h b/ndk/platforms/android-L/include/linux/dvb/dmx.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/dvb/dmx.h
rename to ndk/platforms/android-L/include/linux/dvb/dmx.h
diff --git a/ndk/platforms/android-20/include/linux/dvb/frontend.h b/ndk/platforms/android-L/include/linux/dvb/frontend.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/dvb/frontend.h
rename to ndk/platforms/android-L/include/linux/dvb/frontend.h
diff --git a/ndk/platforms/android-20/include/linux/dvb/net.h b/ndk/platforms/android-L/include/linux/dvb/net.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/dvb/net.h
rename to ndk/platforms/android-L/include/linux/dvb/net.h
diff --git a/ndk/platforms/android-20/include/linux/dvb/osd.h b/ndk/platforms/android-L/include/linux/dvb/osd.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/dvb/osd.h
rename to ndk/platforms/android-L/include/linux/dvb/osd.h
diff --git a/ndk/platforms/android-20/include/linux/dvb/version.h b/ndk/platforms/android-L/include/linux/dvb/version.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/dvb/version.h
rename to ndk/platforms/android-L/include/linux/dvb/version.h
diff --git a/ndk/platforms/android-20/include/linux/dvb/video.h b/ndk/platforms/android-L/include/linux/dvb/video.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/dvb/video.h
rename to ndk/platforms/android-L/include/linux/dvb/video.h
diff --git a/ndk/platforms/android-20/include/linux/edd.h b/ndk/platforms/android-L/include/linux/edd.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/edd.h
rename to ndk/platforms/android-L/include/linux/edd.h
diff --git a/ndk/platforms/android-20/include/linux/efs_fs_sb.h b/ndk/platforms/android-L/include/linux/efs_fs_sb.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/efs_fs_sb.h
rename to ndk/platforms/android-L/include/linux/efs_fs_sb.h
diff --git a/ndk/platforms/android-20/include/linux/elf-em.h b/ndk/platforms/android-L/include/linux/elf-em.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/elf-em.h
rename to ndk/platforms/android-L/include/linux/elf-em.h
diff --git a/ndk/platforms/android-20/include/linux/elf-fdpic.h b/ndk/platforms/android-L/include/linux/elf-fdpic.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/elf-fdpic.h
rename to ndk/platforms/android-L/include/linux/elf-fdpic.h
diff --git a/ndk/platforms/android-20/include/linux/elf.h b/ndk/platforms/android-L/include/linux/elf.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/elf.h
rename to ndk/platforms/android-L/include/linux/elf.h
diff --git a/ndk/platforms/android-20/include/linux/elfcore.h b/ndk/platforms/android-L/include/linux/elfcore.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/elfcore.h
rename to ndk/platforms/android-L/include/linux/elfcore.h
diff --git a/ndk/platforms/android-20/include/linux/errno.h b/ndk/platforms/android-L/include/linux/errno.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/errno.h
rename to ndk/platforms/android-L/include/linux/errno.h
diff --git a/ndk/platforms/android-20/include/linux/errqueue.h b/ndk/platforms/android-L/include/linux/errqueue.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/errqueue.h
rename to ndk/platforms/android-L/include/linux/errqueue.h
diff --git a/ndk/platforms/android-20/include/linux/ethtool.h b/ndk/platforms/android-L/include/linux/ethtool.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/ethtool.h
rename to ndk/platforms/android-L/include/linux/ethtool.h
diff --git a/ndk/platforms/android-20/include/linux/eventpoll.h b/ndk/platforms/android-L/include/linux/eventpoll.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/eventpoll.h
rename to ndk/platforms/android-L/include/linux/eventpoll.h
diff --git a/ndk/platforms/android-20/include/linux/fadvise.h b/ndk/platforms/android-L/include/linux/fadvise.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/fadvise.h
rename to ndk/platforms/android-L/include/linux/fadvise.h
diff --git a/ndk/platforms/android-20/include/linux/falloc.h b/ndk/platforms/android-L/include/linux/falloc.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/falloc.h
rename to ndk/platforms/android-L/include/linux/falloc.h
diff --git a/ndk/platforms/android-20/include/linux/fanotify.h b/ndk/platforms/android-L/include/linux/fanotify.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/fanotify.h
rename to ndk/platforms/android-L/include/linux/fanotify.h
diff --git a/ndk/platforms/android-20/include/linux/fb.h b/ndk/platforms/android-L/include/linux/fb.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/fb.h
rename to ndk/platforms/android-L/include/linux/fb.h
diff --git a/ndk/platforms/android-20/include/linux/fcntl.h b/ndk/platforms/android-L/include/linux/fcntl.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/fcntl.h
rename to ndk/platforms/android-L/include/linux/fcntl.h
diff --git a/ndk/platforms/android-20/include/linux/fd.h b/ndk/platforms/android-L/include/linux/fd.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/fd.h
rename to ndk/platforms/android-L/include/linux/fd.h
diff --git a/ndk/platforms/android-20/include/linux/fdreg.h b/ndk/platforms/android-L/include/linux/fdreg.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/fdreg.h
rename to ndk/platforms/android-L/include/linux/fdreg.h
diff --git a/ndk/platforms/android-20/include/linux/fib_rules.h b/ndk/platforms/android-L/include/linux/fib_rules.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/fib_rules.h
rename to ndk/platforms/android-L/include/linux/fib_rules.h
diff --git a/ndk/platforms/android-20/include/linux/fiemap.h b/ndk/platforms/android-L/include/linux/fiemap.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/fiemap.h
rename to ndk/platforms/android-L/include/linux/fiemap.h
diff --git a/ndk/platforms/android-20/include/linux/filter.h b/ndk/platforms/android-L/include/linux/filter.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/filter.h
rename to ndk/platforms/android-L/include/linux/filter.h
diff --git a/ndk/platforms/android-20/include/linux/firewire-cdev.h b/ndk/platforms/android-L/include/linux/firewire-cdev.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/firewire-cdev.h
rename to ndk/platforms/android-L/include/linux/firewire-cdev.h
diff --git a/ndk/platforms/android-20/include/linux/firewire-constants.h b/ndk/platforms/android-L/include/linux/firewire-constants.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/firewire-constants.h
rename to ndk/platforms/android-L/include/linux/firewire-constants.h
diff --git a/ndk/platforms/android-20/include/linux/flat.h b/ndk/platforms/android-L/include/linux/flat.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/flat.h
rename to ndk/platforms/android-L/include/linux/flat.h
diff --git a/ndk/platforms/android-20/include/linux/fs.h b/ndk/platforms/android-L/include/linux/fs.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/fs.h
rename to ndk/platforms/android-L/include/linux/fs.h
diff --git a/ndk/platforms/android-20/include/linux/fsl_hypervisor.h b/ndk/platforms/android-L/include/linux/fsl_hypervisor.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/fsl_hypervisor.h
rename to ndk/platforms/android-L/include/linux/fsl_hypervisor.h
diff --git a/ndk/platforms/android-20/include/linux/fuse.h b/ndk/platforms/android-L/include/linux/fuse.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/fuse.h
rename to ndk/platforms/android-L/include/linux/fuse.h
diff --git a/ndk/platforms/android-20/include/linux/futex.h b/ndk/platforms/android-L/include/linux/futex.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/futex.h
rename to ndk/platforms/android-L/include/linux/futex.h
diff --git a/ndk/platforms/android-20/include/linux/gameport.h b/ndk/platforms/android-L/include/linux/gameport.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/gameport.h
rename to ndk/platforms/android-L/include/linux/gameport.h
diff --git a/ndk/platforms/android-20/include/linux/gen_stats.h b/ndk/platforms/android-L/include/linux/gen_stats.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/gen_stats.h
rename to ndk/platforms/android-L/include/linux/gen_stats.h
diff --git a/ndk/platforms/android-20/include/linux/genetlink.h b/ndk/platforms/android-L/include/linux/genetlink.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/genetlink.h
rename to ndk/platforms/android-L/include/linux/genetlink.h
diff --git a/ndk/platforms/android-20/include/linux/gfs2_ondisk.h b/ndk/platforms/android-L/include/linux/gfs2_ondisk.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/gfs2_ondisk.h
rename to ndk/platforms/android-L/include/linux/gfs2_ondisk.h
diff --git a/ndk/platforms/android-20/include/linux/gigaset_dev.h b/ndk/platforms/android-L/include/linux/gigaset_dev.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/gigaset_dev.h
rename to ndk/platforms/android-L/include/linux/gigaset_dev.h
diff --git a/ndk/platforms/android-20/include/linux/hdlc.h b/ndk/platforms/android-L/include/linux/hdlc.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/hdlc.h
rename to ndk/platforms/android-L/include/linux/hdlc.h
diff --git a/ndk/platforms/android-20/include/linux/hdlc/ioctl.h b/ndk/platforms/android-L/include/linux/hdlc/ioctl.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/hdlc/ioctl.h
rename to ndk/platforms/android-L/include/linux/hdlc/ioctl.h
diff --git a/ndk/platforms/android-20/include/linux/hdlcdrv.h b/ndk/platforms/android-L/include/linux/hdlcdrv.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/hdlcdrv.h
rename to ndk/platforms/android-L/include/linux/hdlcdrv.h
diff --git a/ndk/platforms/android-20/include/linux/hdreg.h b/ndk/platforms/android-L/include/linux/hdreg.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/hdreg.h
rename to ndk/platforms/android-L/include/linux/hdreg.h
diff --git a/ndk/platforms/android-20/include/linux/hid.h b/ndk/platforms/android-L/include/linux/hid.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/hid.h
rename to ndk/platforms/android-L/include/linux/hid.h
diff --git a/ndk/platforms/android-20/include/linux/hiddev.h b/ndk/platforms/android-L/include/linux/hiddev.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/hiddev.h
rename to ndk/platforms/android-L/include/linux/hiddev.h
diff --git a/ndk/platforms/android-20/include/linux/hidraw.h b/ndk/platforms/android-L/include/linux/hidraw.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/hidraw.h
rename to ndk/platforms/android-L/include/linux/hidraw.h
diff --git a/ndk/platforms/android-20/include/linux/hpet.h b/ndk/platforms/android-L/include/linux/hpet.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/hpet.h
rename to ndk/platforms/android-L/include/linux/hpet.h
diff --git a/ndk/platforms/android-20/include/linux/hsi/hsi_char.h b/ndk/platforms/android-L/include/linux/hsi/hsi_char.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/hsi/hsi_char.h
rename to ndk/platforms/android-L/include/linux/hsi/hsi_char.h
diff --git a/ndk/platforms/android-20/include/linux/hw_breakpoint.h b/ndk/platforms/android-L/include/linux/hw_breakpoint.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/hw_breakpoint.h
rename to ndk/platforms/android-L/include/linux/hw_breakpoint.h
diff --git a/ndk/platforms/android-20/include/linux/hysdn_if.h b/ndk/platforms/android-L/include/linux/hysdn_if.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/hysdn_if.h
rename to ndk/platforms/android-L/include/linux/hysdn_if.h
diff --git a/ndk/platforms/android-20/include/linux/i2c-dev.h b/ndk/platforms/android-L/include/linux/i2c-dev.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/i2c-dev.h
rename to ndk/platforms/android-L/include/linux/i2c-dev.h
diff --git a/ndk/platforms/android-20/include/linux/i2c.h b/ndk/platforms/android-L/include/linux/i2c.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/i2c.h
rename to ndk/platforms/android-L/include/linux/i2c.h
diff --git a/ndk/platforms/android-20/include/linux/i2o-dev.h b/ndk/platforms/android-L/include/linux/i2o-dev.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/i2o-dev.h
rename to ndk/platforms/android-L/include/linux/i2o-dev.h
diff --git a/ndk/platforms/android-20/include/linux/i8k.h b/ndk/platforms/android-L/include/linux/i8k.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/i8k.h
rename to ndk/platforms/android-L/include/linux/i8k.h
diff --git a/ndk/platforms/android-20/include/linux/icmp.h b/ndk/platforms/android-L/include/linux/icmp.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/icmp.h
rename to ndk/platforms/android-L/include/linux/icmp.h
diff --git a/ndk/platforms/android-20/include/linux/icmpv6.h b/ndk/platforms/android-L/include/linux/icmpv6.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/icmpv6.h
rename to ndk/platforms/android-L/include/linux/icmpv6.h
diff --git a/ndk/platforms/android-20/include/linux/if.h b/ndk/platforms/android-L/include/linux/if.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/if.h
rename to ndk/platforms/android-L/include/linux/if.h
diff --git a/ndk/platforms/android-20/include/linux/if_addr.h b/ndk/platforms/android-L/include/linux/if_addr.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/if_addr.h
rename to ndk/platforms/android-L/include/linux/if_addr.h
diff --git a/ndk/platforms/android-20/include/linux/if_addrlabel.h b/ndk/platforms/android-L/include/linux/if_addrlabel.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/if_addrlabel.h
rename to ndk/platforms/android-L/include/linux/if_addrlabel.h
diff --git a/ndk/platforms/android-20/include/linux/if_alg.h b/ndk/platforms/android-L/include/linux/if_alg.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/if_alg.h
rename to ndk/platforms/android-L/include/linux/if_alg.h
diff --git a/ndk/platforms/android-20/include/linux/if_arcnet.h b/ndk/platforms/android-L/include/linux/if_arcnet.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/if_arcnet.h
rename to ndk/platforms/android-L/include/linux/if_arcnet.h
diff --git a/ndk/platforms/android-20/include/linux/if_arp.h b/ndk/platforms/android-L/include/linux/if_arp.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/if_arp.h
rename to ndk/platforms/android-L/include/linux/if_arp.h
diff --git a/ndk/platforms/android-20/include/linux/if_bonding.h b/ndk/platforms/android-L/include/linux/if_bonding.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/if_bonding.h
rename to ndk/platforms/android-L/include/linux/if_bonding.h
diff --git a/ndk/platforms/android-20/include/linux/if_bridge.h b/ndk/platforms/android-L/include/linux/if_bridge.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/if_bridge.h
rename to ndk/platforms/android-L/include/linux/if_bridge.h
diff --git a/ndk/platforms/android-20/include/linux/if_cablemodem.h b/ndk/platforms/android-L/include/linux/if_cablemodem.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/if_cablemodem.h
rename to ndk/platforms/android-L/include/linux/if_cablemodem.h
diff --git a/ndk/platforms/android-20/include/linux/if_eql.h b/ndk/platforms/android-L/include/linux/if_eql.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/if_eql.h
rename to ndk/platforms/android-L/include/linux/if_eql.h
diff --git a/ndk/platforms/android-20/include/linux/if_ether.h b/ndk/platforms/android-L/include/linux/if_ether.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/if_ether.h
rename to ndk/platforms/android-L/include/linux/if_ether.h
diff --git a/ndk/platforms/android-20/include/linux/if_fc.h b/ndk/platforms/android-L/include/linux/if_fc.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/if_fc.h
rename to ndk/platforms/android-L/include/linux/if_fc.h
diff --git a/ndk/platforms/android-20/include/linux/if_fddi.h b/ndk/platforms/android-L/include/linux/if_fddi.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/if_fddi.h
rename to ndk/platforms/android-L/include/linux/if_fddi.h
diff --git a/ndk/platforms/android-20/include/linux/if_frad.h b/ndk/platforms/android-L/include/linux/if_frad.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/if_frad.h
rename to ndk/platforms/android-L/include/linux/if_frad.h
diff --git a/ndk/platforms/android-20/include/linux/if_hippi.h b/ndk/platforms/android-L/include/linux/if_hippi.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/if_hippi.h
rename to ndk/platforms/android-L/include/linux/if_hippi.h
diff --git a/ndk/platforms/android-20/include/linux/if_infiniband.h b/ndk/platforms/android-L/include/linux/if_infiniband.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/if_infiniband.h
rename to ndk/platforms/android-L/include/linux/if_infiniband.h
diff --git a/ndk/platforms/android-20/include/linux/if_link.h b/ndk/platforms/android-L/include/linux/if_link.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/if_link.h
rename to ndk/platforms/android-L/include/linux/if_link.h
diff --git a/ndk/platforms/android-20/include/linux/if_ltalk.h b/ndk/platforms/android-L/include/linux/if_ltalk.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/if_ltalk.h
rename to ndk/platforms/android-L/include/linux/if_ltalk.h
diff --git a/ndk/platforms/android-20/include/linux/if_packet.h b/ndk/platforms/android-L/include/linux/if_packet.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/if_packet.h
rename to ndk/platforms/android-L/include/linux/if_packet.h
diff --git a/ndk/platforms/android-20/include/linux/if_phonet.h b/ndk/platforms/android-L/include/linux/if_phonet.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/if_phonet.h
rename to ndk/platforms/android-L/include/linux/if_phonet.h
diff --git a/ndk/platforms/android-20/include/linux/if_plip.h b/ndk/platforms/android-L/include/linux/if_plip.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/if_plip.h
rename to ndk/platforms/android-L/include/linux/if_plip.h
diff --git a/ndk/platforms/android-20/include/linux/if_ppp.h b/ndk/platforms/android-L/include/linux/if_ppp.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/if_ppp.h
rename to ndk/platforms/android-L/include/linux/if_ppp.h
diff --git a/ndk/platforms/android-20/include/linux/if_pppol2tp.h b/ndk/platforms/android-L/include/linux/if_pppol2tp.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/if_pppol2tp.h
rename to ndk/platforms/android-L/include/linux/if_pppol2tp.h
diff --git a/ndk/platforms/android-20/include/linux/if_pppolac.h b/ndk/platforms/android-L/include/linux/if_pppolac.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/if_pppolac.h
rename to ndk/platforms/android-L/include/linux/if_pppolac.h
diff --git a/ndk/platforms/android-20/include/linux/if_pppopns.h b/ndk/platforms/android-L/include/linux/if_pppopns.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/if_pppopns.h
rename to ndk/platforms/android-L/include/linux/if_pppopns.h
diff --git a/ndk/platforms/android-20/include/linux/if_pppox.h b/ndk/platforms/android-L/include/linux/if_pppox.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/if_pppox.h
rename to ndk/platforms/android-L/include/linux/if_pppox.h
diff --git a/ndk/platforms/android-20/include/linux/if_slip.h b/ndk/platforms/android-L/include/linux/if_slip.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/if_slip.h
rename to ndk/platforms/android-L/include/linux/if_slip.h
diff --git a/ndk/platforms/android-20/include/linux/if_team.h b/ndk/platforms/android-L/include/linux/if_team.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/if_team.h
rename to ndk/platforms/android-L/include/linux/if_team.h
diff --git a/ndk/platforms/android-20/include/linux/if_tun.h b/ndk/platforms/android-L/include/linux/if_tun.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/if_tun.h
rename to ndk/platforms/android-L/include/linux/if_tun.h
diff --git a/ndk/platforms/android-20/include/linux/if_tunnel.h b/ndk/platforms/android-L/include/linux/if_tunnel.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/if_tunnel.h
rename to ndk/platforms/android-L/include/linux/if_tunnel.h
diff --git a/ndk/platforms/android-20/include/linux/if_vlan.h b/ndk/platforms/android-L/include/linux/if_vlan.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/if_vlan.h
rename to ndk/platforms/android-L/include/linux/if_vlan.h
diff --git a/ndk/platforms/android-20/include/linux/if_x25.h b/ndk/platforms/android-L/include/linux/if_x25.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/if_x25.h
rename to ndk/platforms/android-L/include/linux/if_x25.h
diff --git a/ndk/platforms/android-20/include/linux/igmp.h b/ndk/platforms/android-L/include/linux/igmp.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/igmp.h
rename to ndk/platforms/android-L/include/linux/igmp.h
diff --git a/ndk/platforms/android-20/include/linux/in.h b/ndk/platforms/android-L/include/linux/in.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/in.h
rename to ndk/platforms/android-L/include/linux/in.h
diff --git a/ndk/platforms/android-20/include/linux/in6.h b/ndk/platforms/android-L/include/linux/in6.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/in6.h
rename to ndk/platforms/android-L/include/linux/in6.h
diff --git a/ndk/platforms/android-20/include/linux/in_route.h b/ndk/platforms/android-L/include/linux/in_route.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/in_route.h
rename to ndk/platforms/android-L/include/linux/in_route.h
diff --git a/ndk/platforms/android-20/include/linux/inet_diag.h b/ndk/platforms/android-L/include/linux/inet_diag.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/inet_diag.h
rename to ndk/platforms/android-L/include/linux/inet_diag.h
diff --git a/ndk/platforms/android-20/include/linux/inotify.h b/ndk/platforms/android-L/include/linux/inotify.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/inotify.h
rename to ndk/platforms/android-L/include/linux/inotify.h
diff --git a/ndk/platforms/android-20/include/linux/input.h b/ndk/platforms/android-L/include/linux/input.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/input.h
rename to ndk/platforms/android-L/include/linux/input.h
diff --git a/ndk/platforms/android-20/include/linux/ioctl.h b/ndk/platforms/android-L/include/linux/ioctl.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/ioctl.h
rename to ndk/platforms/android-L/include/linux/ioctl.h
diff --git a/ndk/platforms/android-20/include/linux/ion.h b/ndk/platforms/android-L/include/linux/ion.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/ion.h
rename to ndk/platforms/android-L/include/linux/ion.h
diff --git a/ndk/platforms/android-20/include/linux/ioprio.h b/ndk/platforms/android-L/include/linux/ioprio.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/ioprio.h
rename to ndk/platforms/android-L/include/linux/ioprio.h
diff --git a/ndk/platforms/android-20/include/linux/ip.h b/ndk/platforms/android-L/include/linux/ip.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/ip.h
rename to ndk/platforms/android-L/include/linux/ip.h
diff --git a/ndk/platforms/android-20/include/linux/ip6_tunnel.h b/ndk/platforms/android-L/include/linux/ip6_tunnel.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/ip6_tunnel.h
rename to ndk/platforms/android-L/include/linux/ip6_tunnel.h
diff --git a/ndk/platforms/android-20/include/linux/ip_vs.h b/ndk/platforms/android-L/include/linux/ip_vs.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/ip_vs.h
rename to ndk/platforms/android-L/include/linux/ip_vs.h
diff --git a/ndk/platforms/android-20/include/linux/ipc.h b/ndk/platforms/android-L/include/linux/ipc.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/ipc.h
rename to ndk/platforms/android-L/include/linux/ipc.h
diff --git a/ndk/platforms/android-20/include/linux/ipmi.h b/ndk/platforms/android-L/include/linux/ipmi.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/ipmi.h
rename to ndk/platforms/android-L/include/linux/ipmi.h
diff --git a/ndk/platforms/android-20/include/linux/ipmi_msgdefs.h b/ndk/platforms/android-L/include/linux/ipmi_msgdefs.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/ipmi_msgdefs.h
rename to ndk/platforms/android-L/include/linux/ipmi_msgdefs.h
diff --git a/ndk/platforms/android-20/include/linux/ipsec.h b/ndk/platforms/android-L/include/linux/ipsec.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/ipsec.h
rename to ndk/platforms/android-L/include/linux/ipsec.h
diff --git a/ndk/platforms/android-20/include/linux/ipv6.h b/ndk/platforms/android-L/include/linux/ipv6.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/ipv6.h
rename to ndk/platforms/android-L/include/linux/ipv6.h
diff --git a/ndk/platforms/android-20/include/linux/ipv6_route.h b/ndk/platforms/android-L/include/linux/ipv6_route.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/ipv6_route.h
rename to ndk/platforms/android-L/include/linux/ipv6_route.h
diff --git a/ndk/platforms/android-20/include/linux/ipx.h b/ndk/platforms/android-L/include/linux/ipx.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/ipx.h
rename to ndk/platforms/android-L/include/linux/ipx.h
diff --git a/ndk/platforms/android-20/include/linux/irda.h b/ndk/platforms/android-L/include/linux/irda.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/irda.h
rename to ndk/platforms/android-L/include/linux/irda.h
diff --git a/ndk/platforms/android-20/include/linux/irqnr.h b/ndk/platforms/android-L/include/linux/irqnr.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/irqnr.h
rename to ndk/platforms/android-L/include/linux/irqnr.h
diff --git a/ndk/platforms/android-20/include/linux/isdn.h b/ndk/platforms/android-L/include/linux/isdn.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/isdn.h
rename to ndk/platforms/android-L/include/linux/isdn.h
diff --git a/ndk/platforms/android-20/include/linux/isdn/capicmd.h b/ndk/platforms/android-L/include/linux/isdn/capicmd.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/isdn/capicmd.h
rename to ndk/platforms/android-L/include/linux/isdn/capicmd.h
diff --git a/ndk/platforms/android-20/include/linux/isdn_divertif.h b/ndk/platforms/android-L/include/linux/isdn_divertif.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/isdn_divertif.h
rename to ndk/platforms/android-L/include/linux/isdn_divertif.h
diff --git a/ndk/platforms/android-20/include/linux/isdn_ppp.h b/ndk/platforms/android-L/include/linux/isdn_ppp.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/isdn_ppp.h
rename to ndk/platforms/android-L/include/linux/isdn_ppp.h
diff --git a/ndk/platforms/android-20/include/linux/isdnif.h b/ndk/platforms/android-L/include/linux/isdnif.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/isdnif.h
rename to ndk/platforms/android-L/include/linux/isdnif.h
diff --git a/ndk/platforms/android-20/include/linux/iso_fs.h b/ndk/platforms/android-L/include/linux/iso_fs.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/iso_fs.h
rename to ndk/platforms/android-L/include/linux/iso_fs.h
diff --git a/ndk/platforms/android-20/include/linux/ivtv.h b/ndk/platforms/android-L/include/linux/ivtv.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/ivtv.h
rename to ndk/platforms/android-L/include/linux/ivtv.h
diff --git a/ndk/platforms/android-20/include/linux/ivtvfb.h b/ndk/platforms/android-L/include/linux/ivtvfb.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/ivtvfb.h
rename to ndk/platforms/android-L/include/linux/ivtvfb.h
diff --git a/ndk/platforms/android-20/include/linux/ixjuser.h b/ndk/platforms/android-L/include/linux/ixjuser.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/ixjuser.h
rename to ndk/platforms/android-L/include/linux/ixjuser.h
diff --git a/ndk/platforms/android-20/include/linux/jffs2.h b/ndk/platforms/android-L/include/linux/jffs2.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/jffs2.h
rename to ndk/platforms/android-L/include/linux/jffs2.h
diff --git a/ndk/platforms/android-20/include/linux/joystick.h b/ndk/platforms/android-L/include/linux/joystick.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/joystick.h
rename to ndk/platforms/android-L/include/linux/joystick.h
diff --git a/ndk/platforms/android-20/include/linux/kd.h b/ndk/platforms/android-L/include/linux/kd.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/kd.h
rename to ndk/platforms/android-L/include/linux/kd.h
diff --git a/ndk/platforms/android-20/include/linux/kdev_t.h b/ndk/platforms/android-L/include/linux/kdev_t.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/kdev_t.h
rename to ndk/platforms/android-L/include/linux/kdev_t.h
diff --git a/ndk/platforms/android-20/include/linux/kernel-page-flags.h b/ndk/platforms/android-L/include/linux/kernel-page-flags.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/kernel-page-flags.h
rename to ndk/platforms/android-L/include/linux/kernel-page-flags.h
diff --git a/ndk/platforms/android-20/include/linux/kernel.h b/ndk/platforms/android-L/include/linux/kernel.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/kernel.h
rename to ndk/platforms/android-L/include/linux/kernel.h
diff --git a/ndk/platforms/android-20/include/linux/kernelcapi.h b/ndk/platforms/android-L/include/linux/kernelcapi.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/kernelcapi.h
rename to ndk/platforms/android-L/include/linux/kernelcapi.h
diff --git a/ndk/platforms/android-20/include/linux/kexec.h b/ndk/platforms/android-L/include/linux/kexec.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/kexec.h
rename to ndk/platforms/android-L/include/linux/kexec.h
diff --git a/ndk/platforms/android-20/include/linux/keyboard.h b/ndk/platforms/android-L/include/linux/keyboard.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/keyboard.h
rename to ndk/platforms/android-L/include/linux/keyboard.h
diff --git a/ndk/platforms/android-20/include/linux/keychord.h b/ndk/platforms/android-L/include/linux/keychord.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/keychord.h
rename to ndk/platforms/android-L/include/linux/keychord.h
diff --git a/ndk/platforms/android-20/include/linux/keyctl.h b/ndk/platforms/android-L/include/linux/keyctl.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/keyctl.h
rename to ndk/platforms/android-L/include/linux/keyctl.h
diff --git a/ndk/platforms/android-20/include/linux/kvm.h b/ndk/platforms/android-L/include/linux/kvm.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/kvm.h
rename to ndk/platforms/android-L/include/linux/kvm.h
diff --git a/ndk/platforms/android-20/include/linux/kvm_para.h b/ndk/platforms/android-L/include/linux/kvm_para.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/kvm_para.h
rename to ndk/platforms/android-L/include/linux/kvm_para.h
diff --git a/ndk/platforms/android-20/include/linux/l2tp.h b/ndk/platforms/android-L/include/linux/l2tp.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/l2tp.h
rename to ndk/platforms/android-L/include/linux/l2tp.h
diff --git a/ndk/platforms/android-20/include/linux/limits.h b/ndk/platforms/android-L/include/linux/limits.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/limits.h
rename to ndk/platforms/android-L/include/linux/limits.h
diff --git a/ndk/platforms/android-20/include/linux/llc.h b/ndk/platforms/android-L/include/linux/llc.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/llc.h
rename to ndk/platforms/android-L/include/linux/llc.h
diff --git a/ndk/platforms/android-20/include/linux/loop.h b/ndk/platforms/android-L/include/linux/loop.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/loop.h
rename to ndk/platforms/android-L/include/linux/loop.h
diff --git a/ndk/platforms/android-20/include/linux/lp.h b/ndk/platforms/android-L/include/linux/lp.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/lp.h
rename to ndk/platforms/android-L/include/linux/lp.h
diff --git a/ndk/platforms/android-20/include/linux/magic.h b/ndk/platforms/android-L/include/linux/magic.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/magic.h
rename to ndk/platforms/android-L/include/linux/magic.h
diff --git a/ndk/platforms/android-20/include/linux/major.h b/ndk/platforms/android-L/include/linux/major.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/major.h
rename to ndk/platforms/android-L/include/linux/major.h
diff --git a/ndk/platforms/android-20/include/linux/map_to_7segment.h b/ndk/platforms/android-L/include/linux/map_to_7segment.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/map_to_7segment.h
rename to ndk/platforms/android-L/include/linux/map_to_7segment.h
diff --git a/ndk/platforms/android-20/include/linux/matroxfb.h b/ndk/platforms/android-L/include/linux/matroxfb.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/matroxfb.h
rename to ndk/platforms/android-L/include/linux/matroxfb.h
diff --git a/ndk/platforms/android-20/include/linux/mdio.h b/ndk/platforms/android-L/include/linux/mdio.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/mdio.h
rename to ndk/platforms/android-L/include/linux/mdio.h
diff --git a/ndk/platforms/android-20/include/linux/media.h b/ndk/platforms/android-L/include/linux/media.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/media.h
rename to ndk/platforms/android-L/include/linux/media.h
diff --git a/ndk/platforms/android-20/include/linux/mei.h b/ndk/platforms/android-L/include/linux/mei.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/mei.h
rename to ndk/platforms/android-L/include/linux/mei.h
diff --git a/ndk/platforms/android-20/include/linux/mempolicy.h b/ndk/platforms/android-L/include/linux/mempolicy.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/mempolicy.h
rename to ndk/platforms/android-L/include/linux/mempolicy.h
diff --git a/ndk/platforms/android-20/include/linux/meye.h b/ndk/platforms/android-L/include/linux/meye.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/meye.h
rename to ndk/platforms/android-L/include/linux/meye.h
diff --git a/ndk/platforms/android-20/include/linux/mii.h b/ndk/platforms/android-L/include/linux/mii.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/mii.h
rename to ndk/platforms/android-L/include/linux/mii.h
diff --git a/ndk/platforms/android-20/include/linux/minix_fs.h b/ndk/platforms/android-L/include/linux/minix_fs.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/minix_fs.h
rename to ndk/platforms/android-L/include/linux/minix_fs.h
diff --git a/ndk/platforms/android-20/include/linux/mman.h b/ndk/platforms/android-L/include/linux/mman.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/mman.h
rename to ndk/platforms/android-L/include/linux/mman.h
diff --git a/ndk/platforms/android-20/include/linux/mmc/ioctl.h b/ndk/platforms/android-L/include/linux/mmc/ioctl.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/mmc/ioctl.h
rename to ndk/platforms/android-L/include/linux/mmc/ioctl.h
diff --git a/ndk/platforms/android-20/include/linux/mmtimer.h b/ndk/platforms/android-L/include/linux/mmtimer.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/mmtimer.h
rename to ndk/platforms/android-L/include/linux/mmtimer.h
diff --git a/ndk/platforms/android-20/include/linux/module.h b/ndk/platforms/android-L/include/linux/module.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/module.h
rename to ndk/platforms/android-L/include/linux/module.h
diff --git a/ndk/platforms/android-20/include/linux/mqueue.h b/ndk/platforms/android-L/include/linux/mqueue.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/mqueue.h
rename to ndk/platforms/android-L/include/linux/mqueue.h
diff --git a/ndk/platforms/android-20/include/linux/mroute.h b/ndk/platforms/android-L/include/linux/mroute.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/mroute.h
rename to ndk/platforms/android-L/include/linux/mroute.h
diff --git a/ndk/platforms/android-20/include/linux/mroute6.h b/ndk/platforms/android-L/include/linux/mroute6.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/mroute6.h
rename to ndk/platforms/android-L/include/linux/mroute6.h
diff --git a/ndk/platforms/android-20/include/linux/msdos_fs.h b/ndk/platforms/android-L/include/linux/msdos_fs.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/msdos_fs.h
rename to ndk/platforms/android-L/include/linux/msdos_fs.h
diff --git a/ndk/platforms/android-20/include/linux/msg.h b/ndk/platforms/android-L/include/linux/msg.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/msg.h
rename to ndk/platforms/android-L/include/linux/msg.h
diff --git a/ndk/platforms/android-20/include/linux/mtio.h b/ndk/platforms/android-L/include/linux/mtio.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/mtio.h
rename to ndk/platforms/android-L/include/linux/mtio.h
diff --git a/ndk/platforms/android-20/include/linux/n_r3964.h b/ndk/platforms/android-L/include/linux/n_r3964.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/n_r3964.h
rename to ndk/platforms/android-L/include/linux/n_r3964.h
diff --git a/ndk/platforms/android-20/include/linux/nbd.h b/ndk/platforms/android-L/include/linux/nbd.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/nbd.h
rename to ndk/platforms/android-L/include/linux/nbd.h
diff --git a/ndk/platforms/android-20/include/linux/ncp.h b/ndk/platforms/android-L/include/linux/ncp.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/ncp.h
rename to ndk/platforms/android-L/include/linux/ncp.h
diff --git a/ndk/platforms/android-20/include/linux/ncp_fs.h b/ndk/platforms/android-L/include/linux/ncp_fs.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/ncp_fs.h
rename to ndk/platforms/android-L/include/linux/ncp_fs.h
diff --git a/ndk/platforms/android-20/include/linux/ncp_mount.h b/ndk/platforms/android-L/include/linux/ncp_mount.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/ncp_mount.h
rename to ndk/platforms/android-L/include/linux/ncp_mount.h
diff --git a/ndk/platforms/android-20/include/linux/ncp_no.h b/ndk/platforms/android-L/include/linux/ncp_no.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/ncp_no.h
rename to ndk/platforms/android-L/include/linux/ncp_no.h
diff --git a/ndk/platforms/android-20/include/linux/neighbour.h b/ndk/platforms/android-L/include/linux/neighbour.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/neighbour.h
rename to ndk/platforms/android-L/include/linux/neighbour.h
diff --git a/ndk/platforms/android-20/include/linux/net.h b/ndk/platforms/android-L/include/linux/net.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/net.h
rename to ndk/platforms/android-L/include/linux/net.h
diff --git a/ndk/platforms/android-20/include/linux/net_dropmon.h b/ndk/platforms/android-L/include/linux/net_dropmon.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/net_dropmon.h
rename to ndk/platforms/android-L/include/linux/net_dropmon.h
diff --git a/ndk/platforms/android-20/include/linux/net_tstamp.h b/ndk/platforms/android-L/include/linux/net_tstamp.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/net_tstamp.h
rename to ndk/platforms/android-L/include/linux/net_tstamp.h
diff --git a/ndk/platforms/android-20/include/linux/netconf.h b/ndk/platforms/android-L/include/linux/netconf.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netconf.h
rename to ndk/platforms/android-L/include/linux/netconf.h
diff --git a/ndk/platforms/android-20/include/linux/netdevice.h b/ndk/platforms/android-L/include/linux/netdevice.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netdevice.h
rename to ndk/platforms/android-L/include/linux/netdevice.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter.h b/ndk/platforms/android-L/include/linux/netfilter.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter.h
rename to ndk/platforms/android-L/include/linux/netfilter.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/ipset/ip_set.h b/ndk/platforms/android-L/include/linux/netfilter/ipset/ip_set.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/ipset/ip_set.h
rename to ndk/platforms/android-L/include/linux/netfilter/ipset/ip_set.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/ipset/ip_set_bitmap.h b/ndk/platforms/android-L/include/linux/netfilter/ipset/ip_set_bitmap.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/ipset/ip_set_bitmap.h
rename to ndk/platforms/android-L/include/linux/netfilter/ipset/ip_set_bitmap.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/ipset/ip_set_hash.h b/ndk/platforms/android-L/include/linux/netfilter/ipset/ip_set_hash.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/ipset/ip_set_hash.h
rename to ndk/platforms/android-L/include/linux/netfilter/ipset/ip_set_hash.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/ipset/ip_set_list.h b/ndk/platforms/android-L/include/linux/netfilter/ipset/ip_set_list.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/ipset/ip_set_list.h
rename to ndk/platforms/android-L/include/linux/netfilter/ipset/ip_set_list.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/nf_conntrack_common.h b/ndk/platforms/android-L/include/linux/netfilter/nf_conntrack_common.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/nf_conntrack_common.h
rename to ndk/platforms/android-L/include/linux/netfilter/nf_conntrack_common.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/nf_conntrack_ftp.h b/ndk/platforms/android-L/include/linux/netfilter/nf_conntrack_ftp.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/nf_conntrack_ftp.h
rename to ndk/platforms/android-L/include/linux/netfilter/nf_conntrack_ftp.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/nf_conntrack_sctp.h b/ndk/platforms/android-L/include/linux/netfilter/nf_conntrack_sctp.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/nf_conntrack_sctp.h
rename to ndk/platforms/android-L/include/linux/netfilter/nf_conntrack_sctp.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/nf_conntrack_tcp.h b/ndk/platforms/android-L/include/linux/netfilter/nf_conntrack_tcp.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/nf_conntrack_tcp.h
rename to ndk/platforms/android-L/include/linux/netfilter/nf_conntrack_tcp.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/nf_conntrack_tuple_common.h b/ndk/platforms/android-L/include/linux/netfilter/nf_conntrack_tuple_common.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/nf_conntrack_tuple_common.h
rename to ndk/platforms/android-L/include/linux/netfilter/nf_conntrack_tuple_common.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/nf_nat.h b/ndk/platforms/android-L/include/linux/netfilter/nf_nat.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/nf_nat.h
rename to ndk/platforms/android-L/include/linux/netfilter/nf_nat.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/nfnetlink.h b/ndk/platforms/android-L/include/linux/netfilter/nfnetlink.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/nfnetlink.h
rename to ndk/platforms/android-L/include/linux/netfilter/nfnetlink.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/nfnetlink_acct.h b/ndk/platforms/android-L/include/linux/netfilter/nfnetlink_acct.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/nfnetlink_acct.h
rename to ndk/platforms/android-L/include/linux/netfilter/nfnetlink_acct.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/nfnetlink_compat.h b/ndk/platforms/android-L/include/linux/netfilter/nfnetlink_compat.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/nfnetlink_compat.h
rename to ndk/platforms/android-L/include/linux/netfilter/nfnetlink_compat.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/nfnetlink_conntrack.h b/ndk/platforms/android-L/include/linux/netfilter/nfnetlink_conntrack.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/nfnetlink_conntrack.h
rename to ndk/platforms/android-L/include/linux/netfilter/nfnetlink_conntrack.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/nfnetlink_cthelper.h b/ndk/platforms/android-L/include/linux/netfilter/nfnetlink_cthelper.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/nfnetlink_cthelper.h
rename to ndk/platforms/android-L/include/linux/netfilter/nfnetlink_cthelper.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/nfnetlink_cttimeout.h b/ndk/platforms/android-L/include/linux/netfilter/nfnetlink_cttimeout.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/nfnetlink_cttimeout.h
rename to ndk/platforms/android-L/include/linux/netfilter/nfnetlink_cttimeout.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/nfnetlink_log.h b/ndk/platforms/android-L/include/linux/netfilter/nfnetlink_log.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/nfnetlink_log.h
rename to ndk/platforms/android-L/include/linux/netfilter/nfnetlink_log.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/nfnetlink_queue.h b/ndk/platforms/android-L/include/linux/netfilter/nfnetlink_queue.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/nfnetlink_queue.h
rename to ndk/platforms/android-L/include/linux/netfilter/nfnetlink_queue.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/x_tables.h b/ndk/platforms/android-L/include/linux/netfilter/x_tables.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/x_tables.h
rename to ndk/platforms/android-L/include/linux/netfilter/x_tables.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_AUDIT.h b/ndk/platforms/android-L/include/linux/netfilter/xt_AUDIT.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_AUDIT.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_AUDIT.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_CHECKSUM.h b/ndk/platforms/android-L/include/linux/netfilter/xt_CHECKSUM.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_CHECKSUM.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_CHECKSUM.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_CLASSIFY.h b/ndk/platforms/android-L/include/linux/netfilter/xt_CLASSIFY.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_CLASSIFY.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_CLASSIFY.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_CONNMARK.h b/ndk/platforms/android-L/include/linux/netfilter/xt_CONNMARK.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_CONNMARK.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_CONNMARK.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_CONNSECMARK.h b/ndk/platforms/android-L/include/linux/netfilter/xt_CONNSECMARK.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_CONNSECMARK.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_CONNSECMARK.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_CT.h b/ndk/platforms/android-L/include/linux/netfilter/xt_CT.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_CT.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_CT.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_DSCP.h b/ndk/platforms/android-L/include/linux/netfilter/xt_DSCP.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_DSCP.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_DSCP.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_IDLETIMER.h b/ndk/platforms/android-L/include/linux/netfilter/xt_IDLETIMER.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_IDLETIMER.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_IDLETIMER.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_LED.h b/ndk/platforms/android-L/include/linux/netfilter/xt_LED.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_LED.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_LED.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_LOG.h b/ndk/platforms/android-L/include/linux/netfilter/xt_LOG.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_LOG.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_LOG.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_MARK.h b/ndk/platforms/android-L/include/linux/netfilter/xt_MARK.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_MARK.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_MARK.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_NFLOG.h b/ndk/platforms/android-L/include/linux/netfilter/xt_NFLOG.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_NFLOG.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_NFLOG.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_NFQUEUE.h b/ndk/platforms/android-L/include/linux/netfilter/xt_NFQUEUE.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_NFQUEUE.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_NFQUEUE.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_RATEEST.h b/ndk/platforms/android-L/include/linux/netfilter/xt_RATEEST.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_RATEEST.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_RATEEST.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_SECMARK.h b/ndk/platforms/android-L/include/linux/netfilter/xt_SECMARK.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_SECMARK.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_SECMARK.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_TCPMSS.h b/ndk/platforms/android-L/include/linux/netfilter/xt_TCPMSS.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_TCPMSS.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_TCPMSS.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_TCPOPTSTRIP.h b/ndk/platforms/android-L/include/linux/netfilter/xt_TCPOPTSTRIP.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_TCPOPTSTRIP.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_TCPOPTSTRIP.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_TEE.h b/ndk/platforms/android-L/include/linux/netfilter/xt_TEE.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_TEE.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_TEE.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_TPROXY.h b/ndk/platforms/android-L/include/linux/netfilter/xt_TPROXY.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_TPROXY.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_TPROXY.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_addrtype.h b/ndk/platforms/android-L/include/linux/netfilter/xt_addrtype.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_addrtype.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_addrtype.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_bpf.h b/ndk/platforms/android-L/include/linux/netfilter/xt_bpf.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_bpf.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_bpf.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_cluster.h b/ndk/platforms/android-L/include/linux/netfilter/xt_cluster.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_cluster.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_cluster.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_comment.h b/ndk/platforms/android-L/include/linux/netfilter/xt_comment.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_comment.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_comment.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_connbytes.h b/ndk/platforms/android-L/include/linux/netfilter/xt_connbytes.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_connbytes.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_connbytes.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_connlabel.h b/ndk/platforms/android-L/include/linux/netfilter/xt_connlabel.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_connlabel.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_connlabel.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_connlimit.h b/ndk/platforms/android-L/include/linux/netfilter/xt_connlimit.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_connlimit.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_connlimit.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_connmark.h b/ndk/platforms/android-L/include/linux/netfilter/xt_connmark.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_connmark.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_connmark.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_conntrack.h b/ndk/platforms/android-L/include/linux/netfilter/xt_conntrack.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_conntrack.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_conntrack.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_cpu.h b/ndk/platforms/android-L/include/linux/netfilter/xt_cpu.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_cpu.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_cpu.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_dccp.h b/ndk/platforms/android-L/include/linux/netfilter/xt_dccp.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_dccp.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_dccp.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_devgroup.h b/ndk/platforms/android-L/include/linux/netfilter/xt_devgroup.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_devgroup.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_devgroup.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_dscp.h b/ndk/platforms/android-L/include/linux/netfilter/xt_dscp.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_dscp.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_dscp.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_ecn.h b/ndk/platforms/android-L/include/linux/netfilter/xt_ecn.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_ecn.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_ecn.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_esp.h b/ndk/platforms/android-L/include/linux/netfilter/xt_esp.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_esp.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_esp.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_hashlimit.h b/ndk/platforms/android-L/include/linux/netfilter/xt_hashlimit.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_hashlimit.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_hashlimit.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_helper.h b/ndk/platforms/android-L/include/linux/netfilter/xt_helper.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_helper.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_helper.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_iprange.h b/ndk/platforms/android-L/include/linux/netfilter/xt_iprange.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_iprange.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_iprange.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_ipvs.h b/ndk/platforms/android-L/include/linux/netfilter/xt_ipvs.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_ipvs.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_ipvs.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_length.h b/ndk/platforms/android-L/include/linux/netfilter/xt_length.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_length.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_length.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_limit.h b/ndk/platforms/android-L/include/linux/netfilter/xt_limit.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_limit.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_limit.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_mac.h b/ndk/platforms/android-L/include/linux/netfilter/xt_mac.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_mac.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_mac.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_mark.h b/ndk/platforms/android-L/include/linux/netfilter/xt_mark.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_mark.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_mark.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_multiport.h b/ndk/platforms/android-L/include/linux/netfilter/xt_multiport.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_multiport.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_multiport.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_nfacct.h b/ndk/platforms/android-L/include/linux/netfilter/xt_nfacct.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_nfacct.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_nfacct.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_osf.h b/ndk/platforms/android-L/include/linux/netfilter/xt_osf.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_osf.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_osf.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_owner.h b/ndk/platforms/android-L/include/linux/netfilter/xt_owner.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_owner.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_owner.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_physdev.h b/ndk/platforms/android-L/include/linux/netfilter/xt_physdev.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_physdev.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_physdev.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_pkttype.h b/ndk/platforms/android-L/include/linux/netfilter/xt_pkttype.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_pkttype.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_pkttype.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_policy.h b/ndk/platforms/android-L/include/linux/netfilter/xt_policy.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_policy.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_policy.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_quota.h b/ndk/platforms/android-L/include/linux/netfilter/xt_quota.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_quota.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_quota.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_rateest.h b/ndk/platforms/android-L/include/linux/netfilter/xt_rateest.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_rateest.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_rateest.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_realm.h b/ndk/platforms/android-L/include/linux/netfilter/xt_realm.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_realm.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_realm.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_recent.h b/ndk/platforms/android-L/include/linux/netfilter/xt_recent.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_recent.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_recent.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_sctp.h b/ndk/platforms/android-L/include/linux/netfilter/xt_sctp.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_sctp.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_sctp.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_set.h b/ndk/platforms/android-L/include/linux/netfilter/xt_set.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_set.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_set.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_socket.h b/ndk/platforms/android-L/include/linux/netfilter/xt_socket.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_socket.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_socket.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_state.h b/ndk/platforms/android-L/include/linux/netfilter/xt_state.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_state.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_state.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_statistic.h b/ndk/platforms/android-L/include/linux/netfilter/xt_statistic.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_statistic.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_statistic.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_string.h b/ndk/platforms/android-L/include/linux/netfilter/xt_string.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_string.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_string.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_tcpmss.h b/ndk/platforms/android-L/include/linux/netfilter/xt_tcpmss.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_tcpmss.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_tcpmss.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_tcpudp.h b/ndk/platforms/android-L/include/linux/netfilter/xt_tcpudp.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_tcpudp.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_tcpudp.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_time.h b/ndk/platforms/android-L/include/linux/netfilter/xt_time.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_time.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_time.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter/xt_u32.h b/ndk/platforms/android-L/include/linux/netfilter/xt_u32.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter/xt_u32.h
rename to ndk/platforms/android-L/include/linux/netfilter/xt_u32.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_arp.h b/ndk/platforms/android-L/include/linux/netfilter_arp.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_arp.h
rename to ndk/platforms/android-L/include/linux/netfilter_arp.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_arp/arp_tables.h b/ndk/platforms/android-L/include/linux/netfilter_arp/arp_tables.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_arp/arp_tables.h
rename to ndk/platforms/android-L/include/linux/netfilter_arp/arp_tables.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_arp/arpt_mangle.h b/ndk/platforms/android-L/include/linux/netfilter_arp/arpt_mangle.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_arp/arpt_mangle.h
rename to ndk/platforms/android-L/include/linux/netfilter_arp/arpt_mangle.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_bridge.h b/ndk/platforms/android-L/include/linux/netfilter_bridge.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_bridge.h
rename to ndk/platforms/android-L/include/linux/netfilter_bridge.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_bridge/ebt_802_3.h b/ndk/platforms/android-L/include/linux/netfilter_bridge/ebt_802_3.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_bridge/ebt_802_3.h
rename to ndk/platforms/android-L/include/linux/netfilter_bridge/ebt_802_3.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_bridge/ebt_among.h b/ndk/platforms/android-L/include/linux/netfilter_bridge/ebt_among.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_bridge/ebt_among.h
rename to ndk/platforms/android-L/include/linux/netfilter_bridge/ebt_among.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_bridge/ebt_arp.h b/ndk/platforms/android-L/include/linux/netfilter_bridge/ebt_arp.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_bridge/ebt_arp.h
rename to ndk/platforms/android-L/include/linux/netfilter_bridge/ebt_arp.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_bridge/ebt_arpreply.h b/ndk/platforms/android-L/include/linux/netfilter_bridge/ebt_arpreply.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_bridge/ebt_arpreply.h
rename to ndk/platforms/android-L/include/linux/netfilter_bridge/ebt_arpreply.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_bridge/ebt_ip.h b/ndk/platforms/android-L/include/linux/netfilter_bridge/ebt_ip.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_bridge/ebt_ip.h
rename to ndk/platforms/android-L/include/linux/netfilter_bridge/ebt_ip.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_bridge/ebt_ip6.h b/ndk/platforms/android-L/include/linux/netfilter_bridge/ebt_ip6.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_bridge/ebt_ip6.h
rename to ndk/platforms/android-L/include/linux/netfilter_bridge/ebt_ip6.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_bridge/ebt_limit.h b/ndk/platforms/android-L/include/linux/netfilter_bridge/ebt_limit.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_bridge/ebt_limit.h
rename to ndk/platforms/android-L/include/linux/netfilter_bridge/ebt_limit.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_bridge/ebt_log.h b/ndk/platforms/android-L/include/linux/netfilter_bridge/ebt_log.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_bridge/ebt_log.h
rename to ndk/platforms/android-L/include/linux/netfilter_bridge/ebt_log.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_bridge/ebt_mark_m.h b/ndk/platforms/android-L/include/linux/netfilter_bridge/ebt_mark_m.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_bridge/ebt_mark_m.h
rename to ndk/platforms/android-L/include/linux/netfilter_bridge/ebt_mark_m.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_bridge/ebt_mark_t.h b/ndk/platforms/android-L/include/linux/netfilter_bridge/ebt_mark_t.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_bridge/ebt_mark_t.h
rename to ndk/platforms/android-L/include/linux/netfilter_bridge/ebt_mark_t.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_bridge/ebt_nat.h b/ndk/platforms/android-L/include/linux/netfilter_bridge/ebt_nat.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_bridge/ebt_nat.h
rename to ndk/platforms/android-L/include/linux/netfilter_bridge/ebt_nat.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_bridge/ebt_nflog.h b/ndk/platforms/android-L/include/linux/netfilter_bridge/ebt_nflog.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_bridge/ebt_nflog.h
rename to ndk/platforms/android-L/include/linux/netfilter_bridge/ebt_nflog.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_bridge/ebt_pkttype.h b/ndk/platforms/android-L/include/linux/netfilter_bridge/ebt_pkttype.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_bridge/ebt_pkttype.h
rename to ndk/platforms/android-L/include/linux/netfilter_bridge/ebt_pkttype.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_bridge/ebt_redirect.h b/ndk/platforms/android-L/include/linux/netfilter_bridge/ebt_redirect.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_bridge/ebt_redirect.h
rename to ndk/platforms/android-L/include/linux/netfilter_bridge/ebt_redirect.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_bridge/ebt_stp.h b/ndk/platforms/android-L/include/linux/netfilter_bridge/ebt_stp.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_bridge/ebt_stp.h
rename to ndk/platforms/android-L/include/linux/netfilter_bridge/ebt_stp.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_bridge/ebt_ulog.h b/ndk/platforms/android-L/include/linux/netfilter_bridge/ebt_ulog.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_bridge/ebt_ulog.h
rename to ndk/platforms/android-L/include/linux/netfilter_bridge/ebt_ulog.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_bridge/ebt_vlan.h b/ndk/platforms/android-L/include/linux/netfilter_bridge/ebt_vlan.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_bridge/ebt_vlan.h
rename to ndk/platforms/android-L/include/linux/netfilter_bridge/ebt_vlan.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_bridge/ebtables.h b/ndk/platforms/android-L/include/linux/netfilter_bridge/ebtables.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_bridge/ebtables.h
rename to ndk/platforms/android-L/include/linux/netfilter_bridge/ebtables.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_decnet.h b/ndk/platforms/android-L/include/linux/netfilter_decnet.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_decnet.h
rename to ndk/platforms/android-L/include/linux/netfilter_decnet.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_ipv4.h b/ndk/platforms/android-L/include/linux/netfilter_ipv4.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_ipv4.h
rename to ndk/platforms/android-L/include/linux/netfilter_ipv4.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_ipv4/ip_tables.h b/ndk/platforms/android-L/include/linux/netfilter_ipv4/ip_tables.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_ipv4/ip_tables.h
rename to ndk/platforms/android-L/include/linux/netfilter_ipv4/ip_tables.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h b/ndk/platforms/android-L/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h
rename to ndk/platforms/android-L/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_ipv4/ipt_ECN.h b/ndk/platforms/android-L/include/linux/netfilter_ipv4/ipt_ECN.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_ipv4/ipt_ECN.h
rename to ndk/platforms/android-L/include/linux/netfilter_ipv4/ipt_ECN.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_ipv4/ipt_LOG.h b/ndk/platforms/android-L/include/linux/netfilter_ipv4/ipt_LOG.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_ipv4/ipt_LOG.h
rename to ndk/platforms/android-L/include/linux/netfilter_ipv4/ipt_LOG.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_ipv4/ipt_REJECT.h b/ndk/platforms/android-L/include/linux/netfilter_ipv4/ipt_REJECT.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_ipv4/ipt_REJECT.h
rename to ndk/platforms/android-L/include/linux/netfilter_ipv4/ipt_REJECT.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_ipv4/ipt_TTL.h b/ndk/platforms/android-L/include/linux/netfilter_ipv4/ipt_TTL.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_ipv4/ipt_TTL.h
rename to ndk/platforms/android-L/include/linux/netfilter_ipv4/ipt_TTL.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_ipv4/ipt_ULOG.h b/ndk/platforms/android-L/include/linux/netfilter_ipv4/ipt_ULOG.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_ipv4/ipt_ULOG.h
rename to ndk/platforms/android-L/include/linux/netfilter_ipv4/ipt_ULOG.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_ipv4/ipt_ah.h b/ndk/platforms/android-L/include/linux/netfilter_ipv4/ipt_ah.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_ipv4/ipt_ah.h
rename to ndk/platforms/android-L/include/linux/netfilter_ipv4/ipt_ah.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_ipv4/ipt_ecn.h b/ndk/platforms/android-L/include/linux/netfilter_ipv4/ipt_ecn.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_ipv4/ipt_ecn.h
rename to ndk/platforms/android-L/include/linux/netfilter_ipv4/ipt_ecn.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_ipv4/ipt_ttl.h b/ndk/platforms/android-L/include/linux/netfilter_ipv4/ipt_ttl.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_ipv4/ipt_ttl.h
rename to ndk/platforms/android-L/include/linux/netfilter_ipv4/ipt_ttl.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_ipv6.h b/ndk/platforms/android-L/include/linux/netfilter_ipv6.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_ipv6.h
rename to ndk/platforms/android-L/include/linux/netfilter_ipv6.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_ipv6/ip6_tables.h b/ndk/platforms/android-L/include/linux/netfilter_ipv6/ip6_tables.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_ipv6/ip6_tables.h
rename to ndk/platforms/android-L/include/linux/netfilter_ipv6/ip6_tables.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_ipv6/ip6t_HL.h b/ndk/platforms/android-L/include/linux/netfilter_ipv6/ip6t_HL.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_ipv6/ip6t_HL.h
rename to ndk/platforms/android-L/include/linux/netfilter_ipv6/ip6t_HL.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_ipv6/ip6t_LOG.h b/ndk/platforms/android-L/include/linux/netfilter_ipv6/ip6t_LOG.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_ipv6/ip6t_LOG.h
rename to ndk/platforms/android-L/include/linux/netfilter_ipv6/ip6t_LOG.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_ipv6/ip6t_NPT.h b/ndk/platforms/android-L/include/linux/netfilter_ipv6/ip6t_NPT.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_ipv6/ip6t_NPT.h
rename to ndk/platforms/android-L/include/linux/netfilter_ipv6/ip6t_NPT.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_ipv6/ip6t_REJECT.h b/ndk/platforms/android-L/include/linux/netfilter_ipv6/ip6t_REJECT.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_ipv6/ip6t_REJECT.h
rename to ndk/platforms/android-L/include/linux/netfilter_ipv6/ip6t_REJECT.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_ipv6/ip6t_ah.h b/ndk/platforms/android-L/include/linux/netfilter_ipv6/ip6t_ah.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_ipv6/ip6t_ah.h
rename to ndk/platforms/android-L/include/linux/netfilter_ipv6/ip6t_ah.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_ipv6/ip6t_frag.h b/ndk/platforms/android-L/include/linux/netfilter_ipv6/ip6t_frag.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_ipv6/ip6t_frag.h
rename to ndk/platforms/android-L/include/linux/netfilter_ipv6/ip6t_frag.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_ipv6/ip6t_hl.h b/ndk/platforms/android-L/include/linux/netfilter_ipv6/ip6t_hl.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_ipv6/ip6t_hl.h
rename to ndk/platforms/android-L/include/linux/netfilter_ipv6/ip6t_hl.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_ipv6/ip6t_ipv6header.h b/ndk/platforms/android-L/include/linux/netfilter_ipv6/ip6t_ipv6header.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_ipv6/ip6t_ipv6header.h
rename to ndk/platforms/android-L/include/linux/netfilter_ipv6/ip6t_ipv6header.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_ipv6/ip6t_mh.h b/ndk/platforms/android-L/include/linux/netfilter_ipv6/ip6t_mh.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_ipv6/ip6t_mh.h
rename to ndk/platforms/android-L/include/linux/netfilter_ipv6/ip6t_mh.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_ipv6/ip6t_opts.h b/ndk/platforms/android-L/include/linux/netfilter_ipv6/ip6t_opts.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_ipv6/ip6t_opts.h
rename to ndk/platforms/android-L/include/linux/netfilter_ipv6/ip6t_opts.h
diff --git a/ndk/platforms/android-20/include/linux/netfilter_ipv6/ip6t_rt.h b/ndk/platforms/android-L/include/linux/netfilter_ipv6/ip6t_rt.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netfilter_ipv6/ip6t_rt.h
rename to ndk/platforms/android-L/include/linux/netfilter_ipv6/ip6t_rt.h
diff --git a/ndk/platforms/android-20/include/linux/netlink.h b/ndk/platforms/android-L/include/linux/netlink.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netlink.h
rename to ndk/platforms/android-L/include/linux/netlink.h
diff --git a/ndk/platforms/android-20/include/linux/netlink_diag.h b/ndk/platforms/android-L/include/linux/netlink_diag.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netlink_diag.h
rename to ndk/platforms/android-L/include/linux/netlink_diag.h
diff --git a/ndk/platforms/android-20/include/linux/netrom.h b/ndk/platforms/android-L/include/linux/netrom.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/netrom.h
rename to ndk/platforms/android-L/include/linux/netrom.h
diff --git a/ndk/platforms/android-20/include/linux/nfc.h b/ndk/platforms/android-L/include/linux/nfc.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/nfc.h
rename to ndk/platforms/android-L/include/linux/nfc.h
diff --git a/ndk/platforms/android-20/include/linux/nfs.h b/ndk/platforms/android-L/include/linux/nfs.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/nfs.h
rename to ndk/platforms/android-L/include/linux/nfs.h
diff --git a/ndk/platforms/android-20/include/linux/nfs2.h b/ndk/platforms/android-L/include/linux/nfs2.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/nfs2.h
rename to ndk/platforms/android-L/include/linux/nfs2.h
diff --git a/ndk/platforms/android-20/include/linux/nfs3.h b/ndk/platforms/android-L/include/linux/nfs3.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/nfs3.h
rename to ndk/platforms/android-L/include/linux/nfs3.h
diff --git a/ndk/platforms/android-20/include/linux/nfs4.h b/ndk/platforms/android-L/include/linux/nfs4.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/nfs4.h
rename to ndk/platforms/android-L/include/linux/nfs4.h
diff --git a/ndk/platforms/android-20/include/linux/nfs4_mount.h b/ndk/platforms/android-L/include/linux/nfs4_mount.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/nfs4_mount.h
rename to ndk/platforms/android-L/include/linux/nfs4_mount.h
diff --git a/ndk/platforms/android-20/include/linux/nfs_fs.h b/ndk/platforms/android-L/include/linux/nfs_fs.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/nfs_fs.h
rename to ndk/platforms/android-L/include/linux/nfs_fs.h
diff --git a/ndk/platforms/android-20/include/linux/nfs_idmap.h b/ndk/platforms/android-L/include/linux/nfs_idmap.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/nfs_idmap.h
rename to ndk/platforms/android-L/include/linux/nfs_idmap.h
diff --git a/ndk/platforms/android-20/include/linux/nfs_mount.h b/ndk/platforms/android-L/include/linux/nfs_mount.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/nfs_mount.h
rename to ndk/platforms/android-L/include/linux/nfs_mount.h
diff --git a/ndk/platforms/android-20/include/linux/nfsacl.h b/ndk/platforms/android-L/include/linux/nfsacl.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/nfsacl.h
rename to ndk/platforms/android-L/include/linux/nfsacl.h
diff --git a/ndk/platforms/android-20/include/linux/nfsd/cld.h b/ndk/platforms/android-L/include/linux/nfsd/cld.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/nfsd/cld.h
rename to ndk/platforms/android-L/include/linux/nfsd/cld.h
diff --git a/ndk/platforms/android-20/include/linux/nfsd/debug.h b/ndk/platforms/android-L/include/linux/nfsd/debug.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/nfsd/debug.h
rename to ndk/platforms/android-L/include/linux/nfsd/debug.h
diff --git a/ndk/platforms/android-20/include/linux/nfsd/export.h b/ndk/platforms/android-L/include/linux/nfsd/export.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/nfsd/export.h
rename to ndk/platforms/android-L/include/linux/nfsd/export.h
diff --git a/ndk/platforms/android-20/include/linux/nfsd/nfsfh.h b/ndk/platforms/android-L/include/linux/nfsd/nfsfh.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/nfsd/nfsfh.h
rename to ndk/platforms/android-L/include/linux/nfsd/nfsfh.h
diff --git a/ndk/platforms/android-20/include/linux/nfsd/stats.h b/ndk/platforms/android-L/include/linux/nfsd/stats.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/nfsd/stats.h
rename to ndk/platforms/android-L/include/linux/nfsd/stats.h
diff --git a/ndk/platforms/android-20/include/linux/nl80211.h b/ndk/platforms/android-L/include/linux/nl80211.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/nl80211.h
rename to ndk/platforms/android-L/include/linux/nl80211.h
diff --git a/ndk/platforms/android-20/include/linux/nubus.h b/ndk/platforms/android-L/include/linux/nubus.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/nubus.h
rename to ndk/platforms/android-L/include/linux/nubus.h
diff --git a/ndk/platforms/android-20/include/linux/nvram.h b/ndk/platforms/android-L/include/linux/nvram.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/nvram.h
rename to ndk/platforms/android-L/include/linux/nvram.h
diff --git a/ndk/platforms/android-20/include/linux/omap3isp.h b/ndk/platforms/android-L/include/linux/omap3isp.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/omap3isp.h
rename to ndk/platforms/android-L/include/linux/omap3isp.h
diff --git a/ndk/platforms/android-20/include/linux/omapfb.h b/ndk/platforms/android-L/include/linux/omapfb.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/omapfb.h
rename to ndk/platforms/android-L/include/linux/omapfb.h
diff --git a/ndk/platforms/android-20/include/linux/oom.h b/ndk/platforms/android-L/include/linux/oom.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/oom.h
rename to ndk/platforms/android-L/include/linux/oom.h
diff --git a/ndk/platforms/android-20/include/linux/openvswitch.h b/ndk/platforms/android-L/include/linux/openvswitch.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/openvswitch.h
rename to ndk/platforms/android-L/include/linux/openvswitch.h
diff --git a/ndk/platforms/android-20/include/linux/packet_diag.h b/ndk/platforms/android-L/include/linux/packet_diag.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/packet_diag.h
rename to ndk/platforms/android-L/include/linux/packet_diag.h
diff --git a/ndk/platforms/android-20/include/linux/param.h b/ndk/platforms/android-L/include/linux/param.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/param.h
rename to ndk/platforms/android-L/include/linux/param.h
diff --git a/ndk/platforms/android-20/include/linux/parport.h b/ndk/platforms/android-L/include/linux/parport.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/parport.h
rename to ndk/platforms/android-L/include/linux/parport.h
diff --git a/ndk/platforms/android-20/include/linux/patchkey.h b/ndk/platforms/android-L/include/linux/patchkey.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/patchkey.h
rename to ndk/platforms/android-L/include/linux/patchkey.h
diff --git a/ndk/platforms/android-20/include/linux/pci.h b/ndk/platforms/android-L/include/linux/pci.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/pci.h
rename to ndk/platforms/android-L/include/linux/pci.h
diff --git a/ndk/platforms/android-20/include/linux/pci_regs.h b/ndk/platforms/android-L/include/linux/pci_regs.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/pci_regs.h
rename to ndk/platforms/android-L/include/linux/pci_regs.h
diff --git a/ndk/platforms/android-20/include/linux/perf_event.h b/ndk/platforms/android-L/include/linux/perf_event.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/perf_event.h
rename to ndk/platforms/android-L/include/linux/perf_event.h
diff --git a/ndk/platforms/android-20/include/linux/personality.h b/ndk/platforms/android-L/include/linux/personality.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/personality.h
rename to ndk/platforms/android-L/include/linux/personality.h
diff --git a/ndk/platforms/android-20/include/linux/pfkeyv2.h b/ndk/platforms/android-L/include/linux/pfkeyv2.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/pfkeyv2.h
rename to ndk/platforms/android-L/include/linux/pfkeyv2.h
diff --git a/ndk/platforms/android-20/include/linux/pg.h b/ndk/platforms/android-L/include/linux/pg.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/pg.h
rename to ndk/platforms/android-L/include/linux/pg.h
diff --git a/ndk/platforms/android-20/include/linux/phantom.h b/ndk/platforms/android-L/include/linux/phantom.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/phantom.h
rename to ndk/platforms/android-L/include/linux/phantom.h
diff --git a/ndk/platforms/android-20/include/linux/phonet.h b/ndk/platforms/android-L/include/linux/phonet.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/phonet.h
rename to ndk/platforms/android-L/include/linux/phonet.h
diff --git a/ndk/platforms/android-20/include/linux/pkt_cls.h b/ndk/platforms/android-L/include/linux/pkt_cls.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/pkt_cls.h
rename to ndk/platforms/android-L/include/linux/pkt_cls.h
diff --git a/ndk/platforms/android-20/include/linux/pkt_sched.h b/ndk/platforms/android-L/include/linux/pkt_sched.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/pkt_sched.h
rename to ndk/platforms/android-L/include/linux/pkt_sched.h
diff --git a/ndk/platforms/android-20/include/linux/pktcdvd.h b/ndk/platforms/android-L/include/linux/pktcdvd.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/pktcdvd.h
rename to ndk/platforms/android-L/include/linux/pktcdvd.h
diff --git a/ndk/platforms/android-20/include/linux/pmu.h b/ndk/platforms/android-L/include/linux/pmu.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/pmu.h
rename to ndk/platforms/android-L/include/linux/pmu.h
diff --git a/ndk/platforms/android-20/include/linux/poll.h b/ndk/platforms/android-L/include/linux/poll.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/poll.h
rename to ndk/platforms/android-L/include/linux/poll.h
diff --git a/ndk/platforms/android-20/include/linux/posix_types.h b/ndk/platforms/android-L/include/linux/posix_types.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/posix_types.h
rename to ndk/platforms/android-L/include/linux/posix_types.h
diff --git a/ndk/platforms/android-20/include/linux/ppdev.h b/ndk/platforms/android-L/include/linux/ppdev.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/ppdev.h
rename to ndk/platforms/android-L/include/linux/ppdev.h
diff --git a/ndk/platforms/android-20/include/linux/ppp-comp.h b/ndk/platforms/android-L/include/linux/ppp-comp.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/ppp-comp.h
rename to ndk/platforms/android-L/include/linux/ppp-comp.h
diff --git a/ndk/platforms/android-20/include/linux/ppp-ioctl.h b/ndk/platforms/android-L/include/linux/ppp-ioctl.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/ppp-ioctl.h
rename to ndk/platforms/android-L/include/linux/ppp-ioctl.h
diff --git a/ndk/platforms/android-20/include/linux/ppp_defs.h b/ndk/platforms/android-L/include/linux/ppp_defs.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/ppp_defs.h
rename to ndk/platforms/android-L/include/linux/ppp_defs.h
diff --git a/ndk/platforms/android-20/include/linux/pps.h b/ndk/platforms/android-L/include/linux/pps.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/pps.h
rename to ndk/platforms/android-L/include/linux/pps.h
diff --git a/ndk/platforms/android-20/include/linux/prctl.h b/ndk/platforms/android-L/include/linux/prctl.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/prctl.h
rename to ndk/platforms/android-L/include/linux/prctl.h
diff --git a/ndk/platforms/android-20/include/linux/ptp_clock.h b/ndk/platforms/android-L/include/linux/ptp_clock.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/ptp_clock.h
rename to ndk/platforms/android-L/include/linux/ptp_clock.h
diff --git a/ndk/platforms/android-20/include/linux/ptrace.h b/ndk/platforms/android-L/include/linux/ptrace.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/ptrace.h
rename to ndk/platforms/android-L/include/linux/ptrace.h
diff --git a/ndk/platforms/android-20/include/linux/qnx4_fs.h b/ndk/platforms/android-L/include/linux/qnx4_fs.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/qnx4_fs.h
rename to ndk/platforms/android-L/include/linux/qnx4_fs.h
diff --git a/ndk/platforms/android-20/include/linux/qnxtypes.h b/ndk/platforms/android-L/include/linux/qnxtypes.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/qnxtypes.h
rename to ndk/platforms/android-L/include/linux/qnxtypes.h
diff --git a/ndk/platforms/android-20/include/linux/quota.h b/ndk/platforms/android-L/include/linux/quota.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/quota.h
rename to ndk/platforms/android-L/include/linux/quota.h
diff --git a/ndk/platforms/android-20/include/linux/radeonfb.h b/ndk/platforms/android-L/include/linux/radeonfb.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/radeonfb.h
rename to ndk/platforms/android-L/include/linux/radeonfb.h
diff --git a/ndk/platforms/android-20/include/linux/raid/md_p.h b/ndk/platforms/android-L/include/linux/raid/md_p.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/raid/md_p.h
rename to ndk/platforms/android-L/include/linux/raid/md_p.h
diff --git a/ndk/platforms/android-20/include/linux/raid/md_u.h b/ndk/platforms/android-L/include/linux/raid/md_u.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/raid/md_u.h
rename to ndk/platforms/android-L/include/linux/raid/md_u.h
diff --git a/ndk/platforms/android-20/include/linux/random.h b/ndk/platforms/android-L/include/linux/random.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/random.h
rename to ndk/platforms/android-L/include/linux/random.h
diff --git a/ndk/platforms/android-20/include/linux/raw.h b/ndk/platforms/android-L/include/linux/raw.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/raw.h
rename to ndk/platforms/android-L/include/linux/raw.h
diff --git a/ndk/platforms/android-20/include/linux/rds.h b/ndk/platforms/android-L/include/linux/rds.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/rds.h
rename to ndk/platforms/android-L/include/linux/rds.h
diff --git a/ndk/platforms/android-20/include/linux/reboot.h b/ndk/platforms/android-L/include/linux/reboot.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/reboot.h
rename to ndk/platforms/android-L/include/linux/reboot.h
diff --git a/ndk/platforms/android-20/include/linux/reiserfs_fs.h b/ndk/platforms/android-L/include/linux/reiserfs_fs.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/reiserfs_fs.h
rename to ndk/platforms/android-L/include/linux/reiserfs_fs.h
diff --git a/ndk/platforms/android-20/include/linux/reiserfs_xattr.h b/ndk/platforms/android-L/include/linux/reiserfs_xattr.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/reiserfs_xattr.h
rename to ndk/platforms/android-L/include/linux/reiserfs_xattr.h
diff --git a/ndk/platforms/android-20/include/linux/resource.h b/ndk/platforms/android-L/include/linux/resource.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/resource.h
rename to ndk/platforms/android-L/include/linux/resource.h
diff --git a/ndk/platforms/android-20/include/linux/rfkill.h b/ndk/platforms/android-L/include/linux/rfkill.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/rfkill.h
rename to ndk/platforms/android-L/include/linux/rfkill.h
diff --git a/ndk/platforms/android-20/include/linux/romfs_fs.h b/ndk/platforms/android-L/include/linux/romfs_fs.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/romfs_fs.h
rename to ndk/platforms/android-L/include/linux/romfs_fs.h
diff --git a/ndk/platforms/android-20/include/linux/rose.h b/ndk/platforms/android-L/include/linux/rose.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/rose.h
rename to ndk/platforms/android-L/include/linux/rose.h
diff --git a/ndk/platforms/android-20/include/linux/route.h b/ndk/platforms/android-L/include/linux/route.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/route.h
rename to ndk/platforms/android-L/include/linux/route.h
diff --git a/ndk/platforms/android-20/include/linux/rtc.h b/ndk/platforms/android-L/include/linux/rtc.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/rtc.h
rename to ndk/platforms/android-L/include/linux/rtc.h
diff --git a/ndk/platforms/android-20/include/linux/rtnetlink.h b/ndk/platforms/android-L/include/linux/rtnetlink.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/rtnetlink.h
rename to ndk/platforms/android-L/include/linux/rtnetlink.h
diff --git a/ndk/platforms/android-20/include/linux/scc.h b/ndk/platforms/android-L/include/linux/scc.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/scc.h
rename to ndk/platforms/android-L/include/linux/scc.h
diff --git a/ndk/platforms/android-20/include/linux/sched.h b/ndk/platforms/android-L/include/linux/sched.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/sched.h
rename to ndk/platforms/android-L/include/linux/sched.h
diff --git a/ndk/platforms/android-20/include/linux/screen_info.h b/ndk/platforms/android-L/include/linux/screen_info.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/screen_info.h
rename to ndk/platforms/android-L/include/linux/screen_info.h
diff --git a/ndk/platforms/android-20/include/linux/sctp.h b/ndk/platforms/android-L/include/linux/sctp.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/sctp.h
rename to ndk/platforms/android-L/include/linux/sctp.h
diff --git a/ndk/platforms/android-20/include/linux/sdla.h b/ndk/platforms/android-L/include/linux/sdla.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/sdla.h
rename to ndk/platforms/android-L/include/linux/sdla.h
diff --git a/ndk/platforms/android-20/include/linux/seccomp.h b/ndk/platforms/android-L/include/linux/seccomp.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/seccomp.h
rename to ndk/platforms/android-L/include/linux/seccomp.h
diff --git a/ndk/platforms/android-20/include/linux/securebits.h b/ndk/platforms/android-L/include/linux/securebits.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/securebits.h
rename to ndk/platforms/android-L/include/linux/securebits.h
diff --git a/ndk/platforms/android-20/include/linux/selinux_netlink.h b/ndk/platforms/android-L/include/linux/selinux_netlink.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/selinux_netlink.h
rename to ndk/platforms/android-L/include/linux/selinux_netlink.h
diff --git a/ndk/platforms/android-20/include/linux/sem.h b/ndk/platforms/android-L/include/linux/sem.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/sem.h
rename to ndk/platforms/android-L/include/linux/sem.h
diff --git a/ndk/platforms/android-20/include/linux/serial.h b/ndk/platforms/android-L/include/linux/serial.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/serial.h
rename to ndk/platforms/android-L/include/linux/serial.h
diff --git a/ndk/platforms/android-20/include/linux/serial_core.h b/ndk/platforms/android-L/include/linux/serial_core.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/serial_core.h
rename to ndk/platforms/android-L/include/linux/serial_core.h
diff --git a/ndk/platforms/android-20/include/linux/serial_reg.h b/ndk/platforms/android-L/include/linux/serial_reg.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/serial_reg.h
rename to ndk/platforms/android-L/include/linux/serial_reg.h
diff --git a/ndk/platforms/android-20/include/linux/serio.h b/ndk/platforms/android-L/include/linux/serio.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/serio.h
rename to ndk/platforms/android-L/include/linux/serio.h
diff --git a/ndk/platforms/android-20/include/linux/shm.h b/ndk/platforms/android-L/include/linux/shm.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/shm.h
rename to ndk/platforms/android-L/include/linux/shm.h
diff --git a/ndk/platforms/android-20/include/linux/signal.h b/ndk/platforms/android-L/include/linux/signal.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/signal.h
rename to ndk/platforms/android-L/include/linux/signal.h
diff --git a/ndk/platforms/android-20/include/linux/signalfd.h b/ndk/platforms/android-L/include/linux/signalfd.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/signalfd.h
rename to ndk/platforms/android-L/include/linux/signalfd.h
diff --git a/ndk/platforms/android-20/include/linux/snmp.h b/ndk/platforms/android-L/include/linux/snmp.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/snmp.h
rename to ndk/platforms/android-L/include/linux/snmp.h
diff --git a/ndk/platforms/android-20/include/linux/sock_diag.h b/ndk/platforms/android-L/include/linux/sock_diag.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/sock_diag.h
rename to ndk/platforms/android-L/include/linux/sock_diag.h
diff --git a/ndk/platforms/android-20/include/linux/socket.h b/ndk/platforms/android-L/include/linux/socket.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/socket.h
rename to ndk/platforms/android-L/include/linux/socket.h
diff --git a/ndk/platforms/android-20/include/linux/sockios.h b/ndk/platforms/android-L/include/linux/sockios.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/sockios.h
rename to ndk/platforms/android-L/include/linux/sockios.h
diff --git a/ndk/platforms/android-20/include/linux/som.h b/ndk/platforms/android-L/include/linux/som.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/som.h
rename to ndk/platforms/android-L/include/linux/som.h
diff --git a/ndk/platforms/android-20/include/linux/sonet.h b/ndk/platforms/android-L/include/linux/sonet.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/sonet.h
rename to ndk/platforms/android-L/include/linux/sonet.h
diff --git a/ndk/platforms/android-20/include/linux/sonypi.h b/ndk/platforms/android-L/include/linux/sonypi.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/sonypi.h
rename to ndk/platforms/android-L/include/linux/sonypi.h
diff --git a/ndk/platforms/android-20/include/linux/sound.h b/ndk/platforms/android-L/include/linux/sound.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/sound.h
rename to ndk/platforms/android-L/include/linux/sound.h
diff --git a/ndk/platforms/android-20/include/linux/soundcard.h b/ndk/platforms/android-L/include/linux/soundcard.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/soundcard.h
rename to ndk/platforms/android-L/include/linux/soundcard.h
diff --git a/ndk/platforms/android-20/include/linux/spi/spidev.h b/ndk/platforms/android-L/include/linux/spi/spidev.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/spi/spidev.h
rename to ndk/platforms/android-L/include/linux/spi/spidev.h
diff --git a/ndk/platforms/android-20/include/linux/stat.h b/ndk/platforms/android-L/include/linux/stat.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/stat.h
rename to ndk/platforms/android-L/include/linux/stat.h
diff --git a/ndk/platforms/android-20/include/linux/stddef.h b/ndk/platforms/android-L/include/linux/stddef.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/stddef.h
rename to ndk/platforms/android-L/include/linux/stddef.h
diff --git a/ndk/platforms/android-20/include/linux/string.h b/ndk/platforms/android-L/include/linux/string.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/string.h
rename to ndk/platforms/android-L/include/linux/string.h
diff --git a/ndk/platforms/android-20/include/linux/sunrpc/debug.h b/ndk/platforms/android-L/include/linux/sunrpc/debug.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/sunrpc/debug.h
rename to ndk/platforms/android-L/include/linux/sunrpc/debug.h
diff --git a/ndk/platforms/android-20/include/linux/suspend_ioctls.h b/ndk/platforms/android-L/include/linux/suspend_ioctls.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/suspend_ioctls.h
rename to ndk/platforms/android-L/include/linux/suspend_ioctls.h
diff --git a/ndk/platforms/android-20/include/linux/sw_sync.h b/ndk/platforms/android-L/include/linux/sw_sync.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/sw_sync.h
rename to ndk/platforms/android-L/include/linux/sw_sync.h
diff --git a/ndk/platforms/android-20/include/linux/swab.h b/ndk/platforms/android-L/include/linux/swab.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/swab.h
rename to ndk/platforms/android-L/include/linux/swab.h
diff --git a/ndk/platforms/android-20/include/linux/sync.h b/ndk/platforms/android-L/include/linux/sync.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/sync.h
rename to ndk/platforms/android-L/include/linux/sync.h
diff --git a/ndk/platforms/android-20/include/linux/synclink.h b/ndk/platforms/android-L/include/linux/synclink.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/synclink.h
rename to ndk/platforms/android-L/include/linux/synclink.h
diff --git a/ndk/platforms/android-20/include/linux/sysctl.h b/ndk/platforms/android-L/include/linux/sysctl.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/sysctl.h
rename to ndk/platforms/android-L/include/linux/sysctl.h
diff --git a/ndk/platforms/android-20/include/linux/sysinfo.h b/ndk/platforms/android-L/include/linux/sysinfo.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/sysinfo.h
rename to ndk/platforms/android-L/include/linux/sysinfo.h
diff --git a/ndk/platforms/android-20/include/linux/taskstats.h b/ndk/platforms/android-L/include/linux/taskstats.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/taskstats.h
rename to ndk/platforms/android-L/include/linux/taskstats.h
diff --git a/ndk/platforms/android-20/include/linux/tc_act/tc_csum.h b/ndk/platforms/android-L/include/linux/tc_act/tc_csum.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/tc_act/tc_csum.h
rename to ndk/platforms/android-L/include/linux/tc_act/tc_csum.h
diff --git a/ndk/platforms/android-20/include/linux/tc_act/tc_gact.h b/ndk/platforms/android-L/include/linux/tc_act/tc_gact.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/tc_act/tc_gact.h
rename to ndk/platforms/android-L/include/linux/tc_act/tc_gact.h
diff --git a/ndk/platforms/android-20/include/linux/tc_act/tc_ipt.h b/ndk/platforms/android-L/include/linux/tc_act/tc_ipt.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/tc_act/tc_ipt.h
rename to ndk/platforms/android-L/include/linux/tc_act/tc_ipt.h
diff --git a/ndk/platforms/android-20/include/linux/tc_act/tc_mirred.h b/ndk/platforms/android-L/include/linux/tc_act/tc_mirred.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/tc_act/tc_mirred.h
rename to ndk/platforms/android-L/include/linux/tc_act/tc_mirred.h
diff --git a/ndk/platforms/android-20/include/linux/tc_act/tc_nat.h b/ndk/platforms/android-L/include/linux/tc_act/tc_nat.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/tc_act/tc_nat.h
rename to ndk/platforms/android-L/include/linux/tc_act/tc_nat.h
diff --git a/ndk/platforms/android-20/include/linux/tc_act/tc_pedit.h b/ndk/platforms/android-L/include/linux/tc_act/tc_pedit.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/tc_act/tc_pedit.h
rename to ndk/platforms/android-L/include/linux/tc_act/tc_pedit.h
diff --git a/ndk/platforms/android-20/include/linux/tc_act/tc_skbedit.h b/ndk/platforms/android-L/include/linux/tc_act/tc_skbedit.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/tc_act/tc_skbedit.h
rename to ndk/platforms/android-L/include/linux/tc_act/tc_skbedit.h
diff --git a/ndk/platforms/android-20/include/linux/tc_ematch/tc_em_cmp.h b/ndk/platforms/android-L/include/linux/tc_ematch/tc_em_cmp.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/tc_ematch/tc_em_cmp.h
rename to ndk/platforms/android-L/include/linux/tc_ematch/tc_em_cmp.h
diff --git a/ndk/platforms/android-20/include/linux/tc_ematch/tc_em_meta.h b/ndk/platforms/android-L/include/linux/tc_ematch/tc_em_meta.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/tc_ematch/tc_em_meta.h
rename to ndk/platforms/android-L/include/linux/tc_ematch/tc_em_meta.h
diff --git a/ndk/platforms/android-20/include/linux/tc_ematch/tc_em_nbyte.h b/ndk/platforms/android-L/include/linux/tc_ematch/tc_em_nbyte.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/tc_ematch/tc_em_nbyte.h
rename to ndk/platforms/android-L/include/linux/tc_ematch/tc_em_nbyte.h
diff --git a/ndk/platforms/android-20/include/linux/tc_ematch/tc_em_text.h b/ndk/platforms/android-L/include/linux/tc_ematch/tc_em_text.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/tc_ematch/tc_em_text.h
rename to ndk/platforms/android-L/include/linux/tc_ematch/tc_em_text.h
diff --git a/ndk/platforms/android-20/include/linux/tcp.h b/ndk/platforms/android-L/include/linux/tcp.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/tcp.h
rename to ndk/platforms/android-L/include/linux/tcp.h
diff --git a/ndk/platforms/android-20/include/linux/tcp_metrics.h b/ndk/platforms/android-L/include/linux/tcp_metrics.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/tcp_metrics.h
rename to ndk/platforms/android-L/include/linux/tcp_metrics.h
diff --git a/ndk/platforms/android-20/include/linux/telephony.h b/ndk/platforms/android-L/include/linux/telephony.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/telephony.h
rename to ndk/platforms/android-L/include/linux/telephony.h
diff --git a/ndk/platforms/android-20/include/linux/termios.h b/ndk/platforms/android-L/include/linux/termios.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/termios.h
rename to ndk/platforms/android-L/include/linux/termios.h
diff --git a/ndk/platforms/android-20/include/linux/time.h b/ndk/platforms/android-L/include/linux/time.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/time.h
rename to ndk/platforms/android-L/include/linux/time.h
diff --git a/ndk/platforms/android-20/include/linux/times.h b/ndk/platforms/android-L/include/linux/times.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/times.h
rename to ndk/platforms/android-L/include/linux/times.h
diff --git a/ndk/platforms/android-20/include/linux/timex.h b/ndk/platforms/android-L/include/linux/timex.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/timex.h
rename to ndk/platforms/android-L/include/linux/timex.h
diff --git a/ndk/platforms/android-20/include/linux/tiocl.h b/ndk/platforms/android-L/include/linux/tiocl.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/tiocl.h
rename to ndk/platforms/android-L/include/linux/tiocl.h
diff --git a/ndk/platforms/android-20/include/linux/tipc.h b/ndk/platforms/android-L/include/linux/tipc.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/tipc.h
rename to ndk/platforms/android-L/include/linux/tipc.h
diff --git a/ndk/platforms/android-20/include/linux/tipc_config.h b/ndk/platforms/android-L/include/linux/tipc_config.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/tipc_config.h
rename to ndk/platforms/android-L/include/linux/tipc_config.h
diff --git a/ndk/platforms/android-20/include/linux/toshiba.h b/ndk/platforms/android-L/include/linux/toshiba.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/toshiba.h
rename to ndk/platforms/android-L/include/linux/toshiba.h
diff --git a/ndk/platforms/android-20/include/linux/tty.h b/ndk/platforms/android-L/include/linux/tty.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/tty.h
rename to ndk/platforms/android-L/include/linux/tty.h
diff --git a/ndk/platforms/android-20/include/linux/tty_flags.h b/ndk/platforms/android-L/include/linux/tty_flags.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/tty_flags.h
rename to ndk/platforms/android-L/include/linux/tty_flags.h
diff --git a/ndk/platforms/android-20/include/linux/types.h b/ndk/platforms/android-L/include/linux/types.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/types.h
rename to ndk/platforms/android-L/include/linux/types.h
diff --git a/ndk/platforms/android-20/include/linux/udf_fs_i.h b/ndk/platforms/android-L/include/linux/udf_fs_i.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/udf_fs_i.h
rename to ndk/platforms/android-L/include/linux/udf_fs_i.h
diff --git a/ndk/platforms/android-20/include/linux/udp.h b/ndk/platforms/android-L/include/linux/udp.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/udp.h
rename to ndk/platforms/android-L/include/linux/udp.h
diff --git a/ndk/platforms/android-20/include/linux/uhid.h b/ndk/platforms/android-L/include/linux/uhid.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/uhid.h
rename to ndk/platforms/android-L/include/linux/uhid.h
diff --git a/ndk/platforms/android-20/include/linux/uinput.h b/ndk/platforms/android-L/include/linux/uinput.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/uinput.h
rename to ndk/platforms/android-L/include/linux/uinput.h
diff --git a/ndk/platforms/android-20/include/linux/uio.h b/ndk/platforms/android-L/include/linux/uio.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/uio.h
rename to ndk/platforms/android-L/include/linux/uio.h
diff --git a/ndk/platforms/android-20/include/linux/ultrasound.h b/ndk/platforms/android-L/include/linux/ultrasound.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/ultrasound.h
rename to ndk/platforms/android-L/include/linux/ultrasound.h
diff --git a/ndk/platforms/android-20/include/linux/un.h b/ndk/platforms/android-L/include/linux/un.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/un.h
rename to ndk/platforms/android-L/include/linux/un.h
diff --git a/ndk/platforms/android-20/include/linux/unistd.h b/ndk/platforms/android-L/include/linux/unistd.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/unistd.h
rename to ndk/platforms/android-L/include/linux/unistd.h
diff --git a/ndk/platforms/android-20/include/linux/unix_diag.h b/ndk/platforms/android-L/include/linux/unix_diag.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/unix_diag.h
rename to ndk/platforms/android-L/include/linux/unix_diag.h
diff --git a/ndk/platforms/android-20/include/linux/usb/audio.h b/ndk/platforms/android-L/include/linux/usb/audio.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/usb/audio.h
rename to ndk/platforms/android-L/include/linux/usb/audio.h
diff --git a/ndk/platforms/android-20/include/linux/usb/cdc-wdm.h b/ndk/platforms/android-L/include/linux/usb/cdc-wdm.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/usb/cdc-wdm.h
rename to ndk/platforms/android-L/include/linux/usb/cdc-wdm.h
diff --git a/ndk/platforms/android-20/include/linux/usb/cdc.h b/ndk/platforms/android-L/include/linux/usb/cdc.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/usb/cdc.h
rename to ndk/platforms/android-L/include/linux/usb/cdc.h
diff --git a/ndk/platforms/android-20/include/linux/usb/ch11.h b/ndk/platforms/android-L/include/linux/usb/ch11.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/usb/ch11.h
rename to ndk/platforms/android-L/include/linux/usb/ch11.h
diff --git a/ndk/platforms/android-20/include/linux/usb/ch9.h b/ndk/platforms/android-L/include/linux/usb/ch9.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/usb/ch9.h
rename to ndk/platforms/android-L/include/linux/usb/ch9.h
diff --git a/ndk/platforms/android-20/include/linux/usb/f_accessory.h b/ndk/platforms/android-L/include/linux/usb/f_accessory.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/usb/f_accessory.h
rename to ndk/platforms/android-L/include/linux/usb/f_accessory.h
diff --git a/ndk/platforms/android-20/include/linux/usb/f_mtp.h b/ndk/platforms/android-L/include/linux/usb/f_mtp.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/usb/f_mtp.h
rename to ndk/platforms/android-L/include/linux/usb/f_mtp.h
diff --git a/ndk/platforms/android-20/include/linux/usb/functionfs.h b/ndk/platforms/android-L/include/linux/usb/functionfs.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/usb/functionfs.h
rename to ndk/platforms/android-L/include/linux/usb/functionfs.h
diff --git a/ndk/platforms/android-20/include/linux/usb/g_printer.h b/ndk/platforms/android-L/include/linux/usb/g_printer.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/usb/g_printer.h
rename to ndk/platforms/android-L/include/linux/usb/g_printer.h
diff --git a/ndk/platforms/android-20/include/linux/usb/gadgetfs.h b/ndk/platforms/android-L/include/linux/usb/gadgetfs.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/usb/gadgetfs.h
rename to ndk/platforms/android-L/include/linux/usb/gadgetfs.h
diff --git a/ndk/platforms/android-20/include/linux/usb/midi.h b/ndk/platforms/android-L/include/linux/usb/midi.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/usb/midi.h
rename to ndk/platforms/android-L/include/linux/usb/midi.h
diff --git a/ndk/platforms/android-20/include/linux/usb/tmc.h b/ndk/platforms/android-L/include/linux/usb/tmc.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/usb/tmc.h
rename to ndk/platforms/android-L/include/linux/usb/tmc.h
diff --git a/ndk/platforms/android-20/include/linux/usb/video.h b/ndk/platforms/android-L/include/linux/usb/video.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/usb/video.h
rename to ndk/platforms/android-L/include/linux/usb/video.h
diff --git a/ndk/platforms/android-20/include/linux/usbdevice_fs.h b/ndk/platforms/android-L/include/linux/usbdevice_fs.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/usbdevice_fs.h
rename to ndk/platforms/android-L/include/linux/usbdevice_fs.h
diff --git a/ndk/platforms/android-20/include/linux/utime.h b/ndk/platforms/android-L/include/linux/utime.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/utime.h
rename to ndk/platforms/android-L/include/linux/utime.h
diff --git a/ndk/platforms/android-20/include/linux/utsname.h b/ndk/platforms/android-L/include/linux/utsname.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/utsname.h
rename to ndk/platforms/android-L/include/linux/utsname.h
diff --git a/ndk/platforms/android-20/include/linux/uuid.h b/ndk/platforms/android-L/include/linux/uuid.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/uuid.h
rename to ndk/platforms/android-L/include/linux/uuid.h
diff --git a/ndk/platforms/android-20/include/linux/uvcvideo.h b/ndk/platforms/android-L/include/linux/uvcvideo.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/uvcvideo.h
rename to ndk/platforms/android-L/include/linux/uvcvideo.h
diff --git a/ndk/platforms/android-20/include/linux/v4l2-common.h b/ndk/platforms/android-L/include/linux/v4l2-common.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/v4l2-common.h
rename to ndk/platforms/android-L/include/linux/v4l2-common.h
diff --git a/ndk/platforms/android-20/include/linux/v4l2-controls.h b/ndk/platforms/android-L/include/linux/v4l2-controls.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/v4l2-controls.h
rename to ndk/platforms/android-L/include/linux/v4l2-controls.h
diff --git a/ndk/platforms/android-20/include/linux/v4l2-dv-timings.h b/ndk/platforms/android-L/include/linux/v4l2-dv-timings.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/v4l2-dv-timings.h
rename to ndk/platforms/android-L/include/linux/v4l2-dv-timings.h
diff --git a/ndk/platforms/android-20/include/linux/v4l2-mediabus.h b/ndk/platforms/android-L/include/linux/v4l2-mediabus.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/v4l2-mediabus.h
rename to ndk/platforms/android-L/include/linux/v4l2-mediabus.h
diff --git a/ndk/platforms/android-20/include/linux/v4l2-subdev.h b/ndk/platforms/android-L/include/linux/v4l2-subdev.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/v4l2-subdev.h
rename to ndk/platforms/android-L/include/linux/v4l2-subdev.h
diff --git a/ndk/platforms/android-20/include/linux/version.h b/ndk/platforms/android-L/include/linux/version.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/version.h
rename to ndk/platforms/android-L/include/linux/version.h
diff --git a/ndk/platforms/android-20/include/linux/veth.h b/ndk/platforms/android-L/include/linux/veth.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/veth.h
rename to ndk/platforms/android-L/include/linux/veth.h
diff --git a/ndk/platforms/android-20/include/linux/vfio.h b/ndk/platforms/android-L/include/linux/vfio.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/vfio.h
rename to ndk/platforms/android-L/include/linux/vfio.h
diff --git a/ndk/platforms/android-20/include/linux/vhost.h b/ndk/platforms/android-L/include/linux/vhost.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/vhost.h
rename to ndk/platforms/android-L/include/linux/vhost.h
diff --git a/ndk/platforms/android-20/include/linux/videodev2.h b/ndk/platforms/android-L/include/linux/videodev2.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/videodev2.h
rename to ndk/platforms/android-L/include/linux/videodev2.h
diff --git a/ndk/platforms/android-20/include/linux/virtio_9p.h b/ndk/platforms/android-L/include/linux/virtio_9p.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/virtio_9p.h
rename to ndk/platforms/android-L/include/linux/virtio_9p.h
diff --git a/ndk/platforms/android-20/include/linux/virtio_balloon.h b/ndk/platforms/android-L/include/linux/virtio_balloon.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/virtio_balloon.h
rename to ndk/platforms/android-L/include/linux/virtio_balloon.h
diff --git a/ndk/platforms/android-20/include/linux/virtio_blk.h b/ndk/platforms/android-L/include/linux/virtio_blk.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/virtio_blk.h
rename to ndk/platforms/android-L/include/linux/virtio_blk.h
diff --git a/ndk/platforms/android-20/include/linux/virtio_config.h b/ndk/platforms/android-L/include/linux/virtio_config.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/virtio_config.h
rename to ndk/platforms/android-L/include/linux/virtio_config.h
diff --git a/ndk/platforms/android-20/include/linux/virtio_console.h b/ndk/platforms/android-L/include/linux/virtio_console.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/virtio_console.h
rename to ndk/platforms/android-L/include/linux/virtio_console.h
diff --git a/ndk/platforms/android-20/include/linux/virtio_ids.h b/ndk/platforms/android-L/include/linux/virtio_ids.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/virtio_ids.h
rename to ndk/platforms/android-L/include/linux/virtio_ids.h
diff --git a/ndk/platforms/android-20/include/linux/virtio_net.h b/ndk/platforms/android-L/include/linux/virtio_net.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/virtio_net.h
rename to ndk/platforms/android-L/include/linux/virtio_net.h
diff --git a/ndk/platforms/android-20/include/linux/virtio_pci.h b/ndk/platforms/android-L/include/linux/virtio_pci.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/virtio_pci.h
rename to ndk/platforms/android-L/include/linux/virtio_pci.h
diff --git a/ndk/platforms/android-20/include/linux/virtio_ring.h b/ndk/platforms/android-L/include/linux/virtio_ring.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/virtio_ring.h
rename to ndk/platforms/android-L/include/linux/virtio_ring.h
diff --git a/ndk/platforms/android-20/include/linux/virtio_rng.h b/ndk/platforms/android-L/include/linux/virtio_rng.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/virtio_rng.h
rename to ndk/platforms/android-L/include/linux/virtio_rng.h
diff --git a/ndk/platforms/android-20/include/linux/vm_sockets.h b/ndk/platforms/android-L/include/linux/vm_sockets.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/vm_sockets.h
rename to ndk/platforms/android-L/include/linux/vm_sockets.h
diff --git a/ndk/platforms/android-20/include/linux/vt.h b/ndk/platforms/android-L/include/linux/vt.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/vt.h
rename to ndk/platforms/android-L/include/linux/vt.h
diff --git a/ndk/platforms/android-20/include/linux/wait.h b/ndk/platforms/android-L/include/linux/wait.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/wait.h
rename to ndk/platforms/android-L/include/linux/wait.h
diff --git a/ndk/platforms/android-20/include/linux/wanrouter.h b/ndk/platforms/android-L/include/linux/wanrouter.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/wanrouter.h
rename to ndk/platforms/android-L/include/linux/wanrouter.h
diff --git a/ndk/platforms/android-20/include/linux/watchdog.h b/ndk/platforms/android-L/include/linux/watchdog.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/watchdog.h
rename to ndk/platforms/android-L/include/linux/watchdog.h
diff --git a/ndk/platforms/android-20/include/linux/wimax.h b/ndk/platforms/android-L/include/linux/wimax.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/wimax.h
rename to ndk/platforms/android-L/include/linux/wimax.h
diff --git a/ndk/platforms/android-20/include/linux/wimax/i2400m.h b/ndk/platforms/android-L/include/linux/wimax/i2400m.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/wimax/i2400m.h
rename to ndk/platforms/android-L/include/linux/wimax/i2400m.h
diff --git a/ndk/platforms/android-20/include/linux/wireless.h b/ndk/platforms/android-L/include/linux/wireless.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/wireless.h
rename to ndk/platforms/android-L/include/linux/wireless.h
diff --git a/ndk/platforms/android-20/include/linux/x25.h b/ndk/platforms/android-L/include/linux/x25.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/x25.h
rename to ndk/platforms/android-L/include/linux/x25.h
diff --git a/ndk/platforms/android-20/include/linux/xattr.h b/ndk/platforms/android-L/include/linux/xattr.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/xattr.h
rename to ndk/platforms/android-L/include/linux/xattr.h
diff --git a/ndk/platforms/android-20/include/linux/xfrm.h b/ndk/platforms/android-L/include/linux/xfrm.h
similarity index 100%
rename from ndk/platforms/android-20/include/linux/xfrm.h
rename to ndk/platforms/android-L/include/linux/xfrm.h
diff --git a/ndk/platforms/android-20/include/locale.h b/ndk/platforms/android-L/include/locale.h
similarity index 100%
rename from ndk/platforms/android-20/include/locale.h
rename to ndk/platforms/android-L/include/locale.h
diff --git a/ndk/platforms/android-20/include/machine/ieee.h b/ndk/platforms/android-L/include/machine/ieee.h
similarity index 100%
rename from ndk/platforms/android-20/include/machine/ieee.h
rename to ndk/platforms/android-L/include/machine/ieee.h
diff --git a/ndk/platforms/android-20/include/machine/wchar_limits.h b/ndk/platforms/android-L/include/machine/wchar_limits.h
similarity index 100%
rename from ndk/platforms/android-20/include/machine/wchar_limits.h
rename to ndk/platforms/android-L/include/machine/wchar_limits.h
diff --git a/ndk/platforms/android-L/include/malloc.h b/ndk/platforms/android-L/include/malloc.h
new file mode 100644
index 0000000..e6ea276
--- /dev/null
+++ b/ndk/platforms/android-L/include/malloc.h
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2012 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.
+ */
+
+#ifndef LIBC_INCLUDE_MALLOC_H_
+#define LIBC_INCLUDE_MALLOC_H_
+
+/*
+ * Declaration of malloc routines. Bionic uses dlmalloc (see
+ * upstream-dlmalloc) but doesn't directly include it here to keep the
+ * defined malloc.h interface small.
+ */
+#include <sys/cdefs.h>
+#include <stddef.h>
+
+__BEGIN_DECLS
+
+extern void* malloc(size_t byte_count) __mallocfunc __wur __attribute__((alloc_size(1)));
+extern void* calloc(size_t item_count, size_t item_size) __mallocfunc __wur __attribute__((alloc_size(1,2)));
+extern void* realloc(void* p, size_t byte_count) __wur __attribute__((alloc_size(2)));
+extern void free(void* p);
+
+extern void* memalign(size_t alignment, size_t byte_count) __mallocfunc __wur __attribute__((alloc_size(2)));
+extern size_t malloc_usable_size(const void* p);
+
+#ifndef STRUCT_MALLINFO_DECLARED
+#define STRUCT_MALLINFO_DECLARED 1
+struct mallinfo {
+  size_t arena;    /* Total number of non-mmapped bytes currently allocated from OS. */
+  size_t ordblks;  /* Number of free chunks. */
+  size_t smblks;   /* (Unused.) */
+  size_t hblks;    /* (Unused.) */
+  size_t hblkhd;   /* Total number of bytes in mmapped regions. */
+  size_t usmblks;  /* Maximum total allocated space; greater than total if trimming has occurred. */
+  size_t fsmblks;  /* (Unused.) */
+  size_t uordblks; /* Total allocated space (normal or mmapped.) */
+  size_t fordblks; /* Total free space. */
+  size_t keepcost; /* Upper bound on number of bytes releasable by malloc_trim. */
+};
+#endif  /* STRUCT_MALLINFO_DECLARED */
+
+extern struct mallinfo mallinfo(void);
+
+__END_DECLS
+
+#endif  /* LIBC_INCLUDE_MALLOC_H_ */
diff --git a/ndk/platforms/android-L/include/math.h b/ndk/platforms/android-L/include/math.h
new file mode 100644
index 0000000..79d9c5c
--- /dev/null
+++ b/ndk/platforms/android-L/include/math.h
@@ -0,0 +1,759 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * from: @(#)fdlibm.h 5.1 93/09/24
+ * $FreeBSD$
+ */
+
+#ifndef _MATH_H_
+#define	_MATH_H_
+
+#include <sys/cdefs.h>
+#include <limits.h>
+
+__BEGIN_DECLS
+#pragma GCC visibility push(default)
+
+/*
+ * ANSI/POSIX
+ */
+extern const union __infinity_un {
+	unsigned char	__uc[8];
+	double		__ud;
+} __infinity;
+
+extern const union __nan_un {
+	unsigned char	__uc[sizeof(float)];
+	float		__uf;
+} __nan;
+
+#if __GNUC_PREREQ__(3, 3) || (defined(__INTEL_COMPILER) && __INTEL_COMPILER >= 800)
+#define	__MATH_BUILTIN_CONSTANTS
+#endif
+
+#if __GNUC_PREREQ__(3, 0) && !defined(__INTEL_COMPILER)
+#define	__MATH_BUILTIN_RELOPS
+#endif
+
+#ifdef __MATH_BUILTIN_CONSTANTS
+#define	HUGE_VAL	__builtin_huge_val()
+#else
+#define	HUGE_VAL	(__infinity.__ud)
+#endif
+
+#if __ISO_C_VISIBLE >= 1999
+#define	FP_ILOGB0	(-INT_MAX) /* Android-changed */
+#define	FP_ILOGBNAN	INT_MAX /* Android-changed */
+
+#ifdef __MATH_BUILTIN_CONSTANTS
+#define	HUGE_VALF	__builtin_huge_valf()
+#define	HUGE_VALL	__builtin_huge_vall()
+#define	INFINITY	__builtin_inff()
+#define	NAN		__builtin_nanf("")
+#else
+#define	HUGE_VALF	(float)HUGE_VAL
+#define	HUGE_VALL	(long double)HUGE_VAL
+#define	INFINITY	HUGE_VALF
+#define	NAN		(__nan.__uf)
+#endif /* __MATH_BUILTIN_CONSTANTS */
+
+#define	MATH_ERRNO	1
+#define	MATH_ERREXCEPT	2
+#define	math_errhandling	MATH_ERREXCEPT
+
+#define	FP_FAST_FMAF	1
+#ifdef __ia64__
+#define	FP_FAST_FMA	1
+#define	FP_FAST_FMAL	1
+#endif
+
+/* Symbolic constants to classify floating point numbers. */
+#define	FP_INFINITE	0x01
+#define	FP_NAN		0x02
+#define	FP_NORMAL	0x04
+#define	FP_SUBNORMAL	0x08
+#define	FP_ZERO		0x10
+#define	fpclassify(x) \
+    ((sizeof (x) == sizeof (float)) ? __fpclassifyf(x) \
+    : (sizeof (x) == sizeof (double)) ? __fpclassifyd(x) \
+    : __fpclassifyl(x))
+
+#define	isfinite(x)					\
+    ((sizeof (x) == sizeof (float)) ? __isfinitef(x)	\
+    : (sizeof (x) == sizeof (double)) ? __isfinite(x)	\
+    : __isfinitel(x))
+#define	isinf(x)					\
+    ((sizeof (x) == sizeof (float)) ? __isinff(x)	\
+    : (sizeof (x) == sizeof (double)) ? isinf(x)	\
+    : __isinfl(x))
+#define	isnan(x)					\
+    ((sizeof (x) == sizeof (float)) ? __isnanf(x)	\
+    : (sizeof (x) == sizeof (double)) ? isnan(x)	\
+    : __isnanl(x))
+#define	isnormal(x)					\
+    ((sizeof (x) == sizeof (float)) ? __isnormalf(x)	\
+    : (sizeof (x) == sizeof (double)) ? __isnormal(x)	\
+    : __isnormall(x))
+
+#ifdef __MATH_BUILTIN_RELOPS
+#define	isgreater(x, y)		__builtin_isgreater((x), (y))
+#define	isgreaterequal(x, y)	__builtin_isgreaterequal((x), (y))
+#define	isless(x, y)		__builtin_isless((x), (y))
+#define	islessequal(x, y)	__builtin_islessequal((x), (y))
+#define	islessgreater(x, y)	__builtin_islessgreater((x), (y))
+#define	isunordered(x, y)	__builtin_isunordered((x), (y))
+#else
+#define	isgreater(x, y)		(!isunordered((x), (y)) && (x) > (y))
+#define	isgreaterequal(x, y)	(!isunordered((x), (y)) && (x) >= (y))
+#define	isless(x, y)		(!isunordered((x), (y)) && (x) < (y))
+#define	islessequal(x, y)	(!isunordered((x), (y)) && (x) <= (y))
+#define	islessgreater(x, y)	(!isunordered((x), (y)) && \
+					((x) > (y) || (y) > (x)))
+#define	isunordered(x, y)	(isnan(x) || isnan(y))
+#endif /* __MATH_BUILTIN_RELOPS */
+
+#define	signbit(x)					\
+    ((sizeof (x) == sizeof (float)) ? __signbitf(x)	\
+    : (sizeof (x) == sizeof (double)) ? __signbit(x)	\
+    : __signbitl(x))
+
+typedef double __double_t;
+typedef __double_t double_t;
+typedef float __float_t;
+typedef __float_t float_t;
+#endif /* __ISO_C_VISIBLE >= 1999 */
+
+/*
+ * XOPEN/SVID
+ */
+#if __BSD_VISIBLE || __XSI_VISIBLE
+#define	M_E		2.7182818284590452354	/* e */
+#define	M_LOG2E		1.4426950408889634074	/* log 2e */
+#define	M_LOG10E	0.43429448190325182765	/* log 10e */
+#define	M_LN2		0.69314718055994530942	/* log e2 */
+#define	M_LN10		2.30258509299404568402	/* log e10 */
+#define	M_PI		3.14159265358979323846	/* pi */
+#define	M_PI_2		1.57079632679489661923	/* pi/2 */
+#define	M_PI_4		0.78539816339744830962	/* pi/4 */
+#define	M_1_PI		0.31830988618379067154	/* 1/pi */
+#define	M_2_PI		0.63661977236758134308	/* 2/pi */
+#define	M_2_SQRTPI	1.12837916709551257390	/* 2/sqrt(pi) */
+#define	M_SQRT2		1.41421356237309504880	/* sqrt(2) */
+#define	M_SQRT1_2	0.70710678118654752440	/* 1/sqrt(2) */
+
+#define	MAXFLOAT	((float)3.40282346638528860e+38)
+extern int signgam;
+#endif /* __BSD_VISIBLE || __XSI_VISIBLE */
+
+#if __BSD_VISIBLE
+#if 0
+/* Old value from 4.4BSD-Lite math.h; this is probably better. */
+#define	HUGE		HUGE_VAL
+#else
+#define	HUGE		MAXFLOAT
+#endif
+#endif /* __BSD_VISIBLE */
+
+/*
+ * Most of these functions depend on the rounding mode and have the side
+ * effect of raising floating-point exceptions, so they are not declared
+ * as __pure2.  In C99, FENV_ACCESS affects the purity of these functions.
+ */
+
+/*
+ * ANSI/POSIX
+ */
+int	__fpclassifyd(double) __NDK_FPABI_MATH__  __pure2;
+int	__fpclassifyf(float) __NDK_FPABI_MATH__  __pure2;
+int	__fpclassifyl(long double) __NDK_FPABI_MATH__  __pure2;
+int	__isfinitef(float) __NDK_FPABI_MATH__  __pure2;
+int	__isfinite(double) __NDK_FPABI_MATH__  __pure2;
+int	__isfinitel(long double) __NDK_FPABI_MATH__  __pure2;
+int	__isinff(float) __NDK_FPABI_MATH__  __pure2;
+int	__isinfl(long double) __NDK_FPABI_MATH__  __pure2;
+int	__isnanf(float) __NDK_FPABI_MATH__  __pure2;
+int	__isnanl(long double) __NDK_FPABI_MATH__  __pure2;
+int	__isnormalf(float) __NDK_FPABI_MATH__  __pure2;
+int	__isnormal(double) __NDK_FPABI_MATH__  __pure2;
+int	__isnormall(long double) __NDK_FPABI_MATH__  __pure2;
+int	__signbit(double) __NDK_FPABI_MATH__  __pure2;
+int	__signbitf(float) __NDK_FPABI_MATH__  __pure2;
+int	__signbitl(long double) __NDK_FPABI_MATH__  __pure2;
+
+double	acos(double) __NDK_FPABI_MATH__;
+double	asin(double) __NDK_FPABI_MATH__;
+double	atan(double) __NDK_FPABI_MATH__;
+double	atan2(double, double) __NDK_FPABI_MATH__;
+double	cos(double) __NDK_FPABI_MATH__;
+double	sin(double) __NDK_FPABI_MATH__;
+double	tan(double) __NDK_FPABI_MATH__;
+
+double	cosh(double) __NDK_FPABI_MATH__;
+double	sinh(double) __NDK_FPABI_MATH__;
+double	tanh(double) __NDK_FPABI_MATH__;
+
+double	exp(double) __NDK_FPABI_MATH__;
+double	frexp(double, int *) __NDK_FPABI_MATH__;	/* fundamentally !__pure2 */
+double	ldexp(double, int) __NDK_FPABI_MATH__;
+double	log(double) __NDK_FPABI_MATH__;
+double	log10(double) __NDK_FPABI_MATH__;
+double	modf(double, double *) __NDK_FPABI_MATH__;	/* fundamentally !__pure2 */
+
+double	pow(double, double) __NDK_FPABI_MATH__;
+double	sqrt(double) __NDK_FPABI_MATH__;
+
+double	ceil(double) __NDK_FPABI_MATH__;
+double	fabs(double) __NDK_FPABI_MATH__ __pure2;
+double	floor(double) __NDK_FPABI_MATH__;
+double	fmod(double, double) __NDK_FPABI_MATH__;
+
+/*
+ * These functions are not in C90.
+ */
+#if __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE
+double	acosh(double) __NDK_FPABI_MATH__;
+double	asinh(double) __NDK_FPABI_MATH__;
+double	atanh(double) __NDK_FPABI_MATH__;
+double	cbrt(double) __NDK_FPABI_MATH__;
+double	erf(double) __NDK_FPABI_MATH__;
+double	erfc(double) __NDK_FPABI_MATH__;
+double	exp2(double) __NDK_FPABI_MATH__;
+double	expm1(double) __NDK_FPABI_MATH__;
+double	fma(double, double, double) __NDK_FPABI_MATH__;
+double	hypot(double, double) __NDK_FPABI_MATH__;
+int	ilogb(double) __NDK_FPABI_MATH__ __pure2;
+int	(isinf)(double) __NDK_FPABI_MATH__ __pure2;
+int	(isnan)(double) __NDK_FPABI_MATH__ __pure2;
+double	lgamma(double) __NDK_FPABI_MATH__;
+long long llrint(double) __NDK_FPABI_MATH__;
+long long llround(double) __NDK_FPABI_MATH__;
+double	log1p(double) __NDK_FPABI_MATH__;
+double	log2(double) __NDK_FPABI_MATH__;
+double	logb(double) __NDK_FPABI_MATH__;
+long	lrint(double) __NDK_FPABI_MATH__;
+long	lround(double) __NDK_FPABI_MATH__;
+double	nan(const char *) __NDK_FPABI_MATH__ __pure2;
+double	nextafter(double, double) __NDK_FPABI_MATH__;
+double	remainder(double, double) __NDK_FPABI_MATH__;
+double	remquo(double, double, int *) __NDK_FPABI_MATH__;
+double	rint(double) __NDK_FPABI_MATH__;
+#endif /* __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE */
+
+#if __BSD_VISIBLE || __XSI_VISIBLE
+double	j0(double) __NDK_FPABI_MATH__;
+double	j1(double) __NDK_FPABI_MATH__;
+double	jn(int, double) __NDK_FPABI_MATH__;
+double	y0(double) __NDK_FPABI_MATH__;
+double	y1(double) __NDK_FPABI_MATH__;
+double	yn(int, double) __NDK_FPABI_MATH__;
+
+#if __XSI_VISIBLE <= 500 || __BSD_VISIBLE
+double	gamma(double) __NDK_FPABI_MATH__;
+#endif
+
+#if __XSI_VISIBLE <= 600 || __BSD_VISIBLE
+double	scalb(double, double) __NDK_FPABI_MATH__;
+#endif
+#endif /* __BSD_VISIBLE || __XSI_VISIBLE */
+
+#if __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999
+double	copysign(double, double) __NDK_FPABI_MATH__ __pure2;
+double	fdim(double, double) __NDK_FPABI_MATH__;
+double	fmax(double, double) __NDK_FPABI_MATH__ __pure2;
+double	fmin(double, double) __NDK_FPABI_MATH__ __pure2;
+double	nearbyint(double) __NDK_FPABI_MATH__;
+double	round(double) __NDK_FPABI_MATH__;
+double	scalbln(double, long) __NDK_FPABI_MATH__;
+double	scalbn(double, int) __NDK_FPABI_MATH__;
+double	tgamma(double) __NDK_FPABI_MATH__;
+double	trunc(double) __NDK_FPABI_MATH__;
+#endif
+
+/*
+ * BSD math library entry points
+ */
+#if __BSD_VISIBLE
+double	drem(double, double) __NDK_FPABI_MATH__;
+int	finite(double) __NDK_FPABI_MATH__ __pure2;
+int	isnanf(float) __NDK_FPABI_MATH__ __pure2;
+long double significandl(long double) __NDK_FPABI_MATH__;
+
+/*
+ * Reentrant version of gamma & lgamma; passes signgam back by reference
+ * as the second argument; user must allocate space for signgam.
+ */
+double	gamma_r(double, int *) __NDK_FPABI_MATH__;
+double	lgamma_r(double, int *) __NDK_FPABI_MATH__;
+
+/*
+ * IEEE Test Vector
+ */
+double	significand(double) __NDK_FPABI_MATH__;
+#endif /* __BSD_VISIBLE */
+
+/* float versions of ANSI/POSIX functions */
+#if __ISO_C_VISIBLE >= 1999
+float	acosf(float) __NDK_FPABI_MATH__;
+float	asinf(float) __NDK_FPABI_MATH__;
+float	atanf(float) __NDK_FPABI_MATH__;
+float	atan2f(float, float) __NDK_FPABI_MATH__;
+float	cosf(float) __NDK_FPABI_MATH__;
+float	sinf(float) __NDK_FPABI_MATH__;
+float	tanf(float) __NDK_FPABI_MATH__;
+
+float	coshf(float) __NDK_FPABI_MATH__;
+float	sinhf(float) __NDK_FPABI_MATH__;
+float	tanhf(float) __NDK_FPABI_MATH__;
+
+float	exp2f(float) __NDK_FPABI_MATH__;
+float	expf(float) __NDK_FPABI_MATH__;
+float	expm1f(float) __NDK_FPABI_MATH__;
+float	frexpf(float, int *) __NDK_FPABI_MATH__;	/* fundamentally !__pure2 */
+int	ilogbf(float) __NDK_FPABI_MATH__ __pure2;
+float	ldexpf(float, int) __NDK_FPABI_MATH__;
+float	log10f(float) __NDK_FPABI_MATH__;
+float	log1pf(float) __NDK_FPABI_MATH__;
+float	log2f(float) __NDK_FPABI_MATH__;
+float	logf(float) __NDK_FPABI_MATH__;
+float	modff(float, float *) __NDK_FPABI_MATH__;	/* fundamentally !__pure2 */
+
+float	powf(float, float) __NDK_FPABI_MATH__;
+float	sqrtf(float) __NDK_FPABI_MATH__;
+
+float	ceilf(float) __NDK_FPABI_MATH__;
+float	fabsf(float) __NDK_FPABI_MATH__ __pure2;
+float	floorf(float) __NDK_FPABI_MATH__;
+float	fmodf(float, float) __NDK_FPABI_MATH__;
+float	roundf(float) __NDK_FPABI_MATH__;
+
+float	erff(float) __NDK_FPABI_MATH__;
+float	erfcf(float) __NDK_FPABI_MATH__;
+float	hypotf(float, float) __NDK_FPABI_MATH__;
+float	lgammaf(float) __NDK_FPABI_MATH__;
+float	tgammaf(float) __NDK_FPABI_MATH__;
+
+float	acoshf(float) __NDK_FPABI_MATH__;
+float	asinhf(float) __NDK_FPABI_MATH__;
+float	atanhf(float) __NDK_FPABI_MATH__;
+float	cbrtf(float) __NDK_FPABI_MATH__;
+float	logbf(float) __NDK_FPABI_MATH__;
+float	copysignf(float, float) __NDK_FPABI_MATH__ __pure2;
+long long llrintf(float) __NDK_FPABI_MATH__;
+long long llroundf(float) __NDK_FPABI_MATH__;
+long	lrintf(float) __NDK_FPABI_MATH__;
+long	lroundf(float) __NDK_FPABI_MATH__;
+float	nanf(const char *) __NDK_FPABI_MATH__ __pure2;
+float	nearbyintf(float) __NDK_FPABI_MATH__;
+float	nextafterf(float, float) __NDK_FPABI_MATH__;
+float	remainderf(float, float) __NDK_FPABI_MATH__;
+float	remquof(float, float, int *) __NDK_FPABI_MATH__;
+float	rintf(float) __NDK_FPABI_MATH__;
+float	scalblnf(float, long) __NDK_FPABI_MATH__;
+float	scalbnf(float, int) __NDK_FPABI_MATH__;
+float	truncf(float) __NDK_FPABI_MATH__;
+
+float	fdimf(float, float) __NDK_FPABI_MATH__;
+float	fmaf(float, float, float) __NDK_FPABI_MATH__;
+float	fmaxf(float, float) __NDK_FPABI_MATH__ __pure2;
+float	fminf(float, float) __NDK_FPABI_MATH__ __pure2;
+#endif
+
+/*
+ * float versions of BSD math library entry points
+ */
+#if __BSD_VISIBLE
+float	dremf(float, float) __NDK_FPABI_MATH__;
+int	finitef(float) __NDK_FPABI_MATH__ __pure2;
+float	gammaf(float) __NDK_FPABI_MATH__;
+float	j0f(float) __NDK_FPABI_MATH__;
+float	j1f(float) __NDK_FPABI_MATH__;
+float	jnf(int, float) __NDK_FPABI_MATH__;
+float	scalbf(float, float) __NDK_FPABI_MATH__;
+float	y0f(float) __NDK_FPABI_MATH__;
+float	y1f(float) __NDK_FPABI_MATH__;
+float	ynf(int, float) __NDK_FPABI_MATH__;
+
+/*
+ * Float versions of reentrant version of gamma & lgamma; passes
+ * signgam back by reference as the second argument; user must
+ * allocate space for signgam.
+ */
+float	gammaf_r(float, int *) __NDK_FPABI_MATH__;
+float	lgammaf_r(float, int *) __NDK_FPABI_MATH__;
+
+/*
+ * float version of IEEE Test Vector
+ */
+float	significandf(float) __NDK_FPABI_MATH__;
+#endif	/* __BSD_VISIBLE */
+
+/*
+ * long double versions of ISO/POSIX math functions
+ */
+#if __ISO_C_VISIBLE >= 1999
+long double	acoshl(long double) __NDK_FPABI_MATH__;
+long double	acosl(long double) __NDK_FPABI_MATH__;
+long double	asinhl(long double) __NDK_FPABI_MATH__;
+long double	asinl(long double) __NDK_FPABI_MATH__;
+long double	atan2l(long double, long double) __NDK_FPABI_MATH__;
+long double	atanhl(long double) __NDK_FPABI_MATH__;
+long double	atanl(long double) __NDK_FPABI_MATH__;
+long double	cbrtl(long double) __NDK_FPABI_MATH__;
+long double	ceill(long double) __NDK_FPABI_MATH__;
+long double	copysignl(long double, long double) __NDK_FPABI_MATH__ __pure2;
+long double	coshl(long double) __NDK_FPABI_MATH__;
+long double	cosl(long double) __NDK_FPABI_MATH__;
+long double	erfcl(long double) __NDK_FPABI_MATH__;
+long double	erfl(long double) __NDK_FPABI_MATH__;
+long double	exp2l(long double) __NDK_FPABI_MATH__;
+long double	expl(long double) __NDK_FPABI_MATH__;
+long double	expm1l(long double) __NDK_FPABI_MATH__;
+long double	fabsl(long double) __NDK_FPABI_MATH__ __pure2;
+long double	fdiml(long double, long double) __NDK_FPABI_MATH__;
+long double	floorl(long double) __NDK_FPABI_MATH__;
+long double	fmal(long double, long double, long double) __NDK_FPABI_MATH__;
+long double	fmaxl(long double, long double) __NDK_FPABI_MATH__ __pure2;
+long double	fminl(long double, long double) __NDK_FPABI_MATH__ __pure2;
+long double	fmodl(long double, long double) __NDK_FPABI_MATH__;
+long double	frexpl(long double value, int *) __NDK_FPABI_MATH__; /* fundamentally !__pure2 */
+long double	hypotl(long double, long double) __NDK_FPABI_MATH__;
+int		ilogbl(long double) __NDK_FPABI_MATH__ __pure2;
+long double	ldexpl(long double, int) __NDK_FPABI_MATH__;
+long double	lgammal(long double) __NDK_FPABI_MATH__;
+long long	llrintl(long double) __NDK_FPABI_MATH__;
+long long	llroundl(long double) __NDK_FPABI_MATH__;
+long double	log10l(long double) __NDK_FPABI_MATH__;
+long double	log1pl(long double) __NDK_FPABI_MATH__;
+long double	log2l(long double) __NDK_FPABI_MATH__;
+long double	logbl(long double) __NDK_FPABI_MATH__;
+long double	logl(long double) __NDK_FPABI_MATH__;
+long		lrintl(long double) __NDK_FPABI_MATH__;
+long		lroundl(long double) __NDK_FPABI_MATH__;
+long double	modfl(long double, long double *) __NDK_FPABI_MATH__; /* fundamentally !__pure2 */
+long double	nanl(const char *) __NDK_FPABI_MATH__ __pure2;
+long double	nearbyintl(long double) __NDK_FPABI_MATH__;
+long double	nextafterl(long double, long double) __NDK_FPABI_MATH__;
+double		nexttoward(double, long double) __NDK_FPABI_MATH__;
+float		nexttowardf(float, long double) __NDK_FPABI_MATH__;
+long double	nexttowardl(long double, long double) __NDK_FPABI_MATH__;
+long double	powl(long double, long double) __NDK_FPABI_MATH__;
+long double	remainderl(long double, long double) __NDK_FPABI_MATH__;
+long double	remquol(long double, long double, int *) __NDK_FPABI_MATH__;
+long double	rintl(long double) __NDK_FPABI_MATH__;
+long double	roundl(long double) __NDK_FPABI_MATH__;
+long double	scalblnl(long double, long) __NDK_FPABI_MATH__;
+long double	scalbnl(long double, int) __NDK_FPABI_MATH__;
+long double	sinhl(long double) __NDK_FPABI_MATH__;
+long double	sinl(long double) __NDK_FPABI_MATH__;
+long double	sqrtl(long double) __NDK_FPABI_MATH__;
+long double	tanhl(long double) __NDK_FPABI_MATH__;
+long double	tanl(long double) __NDK_FPABI_MATH__;
+long double	tgammal(long double) __NDK_FPABI_MATH__;
+long double	truncl(long double) __NDK_FPABI_MATH__;
+
+#endif /* __ISO_C_VISIBLE >= 1999 */
+
+#if defined(_GNU_SOURCE)
+void sincos(double, double*, double*) __NDK_FPABI_MATH__;
+void sincosf(float, float*, float*) __NDK_FPABI_MATH__;
+void sincosl(long double, long double*, long double*) __NDK_FPABI_MATH__;
+#endif /* _GNU_SOURCE */
+
+/* builtin version of all the above math functions are annotated too */
+
+double	__builtin_acos(double) __NDK_FPABI_MATH__;
+double	__builtin_asin(double) __NDK_FPABI_MATH__;
+double	__builtin_atan(double) __NDK_FPABI_MATH__;
+double	__builtin_atan2(double, double) __NDK_FPABI_MATH__;
+double	__builtin_cos(double) __NDK_FPABI_MATH__;
+double	__builtin_sin(double) __NDK_FPABI_MATH__;
+double	__builtin_tan(double) __NDK_FPABI_MATH__;
+
+double	__builtin_cosh(double) __NDK_FPABI_MATH__;
+double	__builtin_sinh(double) __NDK_FPABI_MATH__;
+double	__builtin_tanh(double) __NDK_FPABI_MATH__;
+
+double	__builtin_exp(double) __NDK_FPABI_MATH__;
+double	__builtin_frexp(double, int *) __NDK_FPABI_MATH__;	/* fundamentally !__pure2 */
+double	__builtin_ldexp(double, int) __NDK_FPABI_MATH__;
+double	__builtin_log(double) __NDK_FPABI_MATH__;
+double	__builtin_log10(double) __NDK_FPABI_MATH__;
+double	__builtin_modf(double, double *) __NDK_FPABI_MATH__;	/* fundamentally !__pure2 */
+
+double	__builtin_pow(double, double) __NDK_FPABI_MATH__;
+double	__builtin_sqrt(double) __NDK_FPABI_MATH__;
+
+double	__builtin_ceil(double) __NDK_FPABI_MATH__;
+double	__builtin_fabs(double) __NDK_FPABI_MATH__ __pure2;
+double	__builtin_floor(double) __NDK_FPABI_MATH__;
+double	__builtin_fmod(double, double) __NDK_FPABI_MATH__;
+
+/*
+ * These functions are not in C90.
+ */
+#if __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE
+double	__builtin_acosh(double) __NDK_FPABI_MATH__;
+double	__builtin_asinh(double) __NDK_FPABI_MATH__;
+double	__builtin_atanh(double) __NDK_FPABI_MATH__;
+double	__builtin_cbrt(double) __NDK_FPABI_MATH__;
+double	__builtin_erf(double) __NDK_FPABI_MATH__;
+double	__builtin_erfc(double) __NDK_FPABI_MATH__;
+double	__builtin_exp2(double) __NDK_FPABI_MATH__;
+double	__builtin_expm1(double) __NDK_FPABI_MATH__;
+double	__builtin_fma(double, double, double) __NDK_FPABI_MATH__;
+double	__builtin_hypot(double, double) __NDK_FPABI_MATH__;
+int	__builtin_ilogb(double) __NDK_FPABI_MATH__ __pure2;
+#if !defined(__clang__) || __clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 6)
+int	__builtin_isinf(double) __NDK_FPABI_MATH__ __pure2;
+int	__builtin_isnan(double) __NDK_FPABI_MATH__ __pure2;
+#else
+/* clang < 3.5 has faulty prototype for __builtin_isnan */
+#endif
+double	__builtin_lgamma(double) __NDK_FPABI_MATH__;
+long long __builtin_llrint(double) __NDK_FPABI_MATH__;
+long long __builtin_llround(double) __NDK_FPABI_MATH__;
+double	__builtin_log1p(double) __NDK_FPABI_MATH__;
+double	__builtin_log2(double) __NDK_FPABI_MATH__;
+double	__builtin_logb(double) __NDK_FPABI_MATH__;
+long	__builtin_lrint(double) __NDK_FPABI_MATH__;
+long	__builtin_lround(double) __NDK_FPABI_MATH__;
+double	__builtin_nan(const char *) __NDK_FPABI_MATH__ __pure2;
+double	__builtin_nextafter(double, double) __NDK_FPABI_MATH__;
+double	__builtin_remainder(double, double) __NDK_FPABI_MATH__;
+double	__builtin_remquo(double, double, int *) __NDK_FPABI_MATH__;
+double	__builtin_rint(double) __NDK_FPABI_MATH__;
+#endif /* __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE */
+
+#if __BSD_VISIBLE || __XSI_VISIBLE
+double	__builtin_j0(double) __NDK_FPABI_MATH__;
+double	__builtin_j1(double) __NDK_FPABI_MATH__;
+double	__builtin_jn(int, double) __NDK_FPABI_MATH__;
+double	__builtin_y0(double) __NDK_FPABI_MATH__;
+double	__builtin_y1(double) __NDK_FPABI_MATH__;
+double	__builtin_yn(int, double) __NDK_FPABI_MATH__;
+
+#if __XSI_VISIBLE <= 500 || __BSD_VISIBLE
+double	__builtin_gamma(double) __NDK_FPABI_MATH__;
+#endif
+
+#if __XSI_VISIBLE <= 600 || __BSD_VISIBLE
+double	__builtin_scalb(double, double) __NDK_FPABI_MATH__;
+#endif
+#endif /* __BSD_VISIBLE || __XSI_VISIBLE */
+
+#if __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999
+double	__builtin_copysign(double, double) __NDK_FPABI_MATH__ __pure2;
+double	__builtin_fdim(double, double) __NDK_FPABI_MATH__;
+double	__builtin_fmax(double, double) __NDK_FPABI_MATH__ __pure2;
+double	__builtin_fmin(double, double) __NDK_FPABI_MATH__ __pure2;
+double	__builtin_nearbyint(double) __NDK_FPABI_MATH__;
+double	__builtin_round(double) __NDK_FPABI_MATH__;
+double	__builtin_scalbln(double, long) __NDK_FPABI_MATH__;
+double	__builtin_scalbn(double, int) __NDK_FPABI_MATH__;
+double	__builtin_tgamma(double) __NDK_FPABI_MATH__;
+double	__builtin_trunc(double) __NDK_FPABI_MATH__;
+#endif
+
+/*
+ * BSD math library entry points
+ */
+#if __BSD_VISIBLE
+double	__builtin_drem(double, double) __NDK_FPABI_MATH__;
+int	__builtin_finite(double) __NDK_FPABI_MATH__ __pure2;
+int	__builtin_isnanf(float) __NDK_FPABI_MATH__ __pure2;
+long double significandl(long double) __NDK_FPABI_MATH__;
+
+/*
+ * Reentrant version of gamma & lgamma; passes signgam back by reference
+ * as the second argument; user must allocate space for signgam.
+ */
+double	__builtin_gamma_r(double, int *) __NDK_FPABI_MATH__;
+double	__builtin_lgamma_r(double, int *) __NDK_FPABI_MATH__;
+
+/*
+ * IEEE Test Vector
+ */
+double	__builtin_significand(double) __NDK_FPABI_MATH__;
+#endif /* __BSD_VISIBLE */
+
+/* float versions of ANSI/POSIX functions */
+#if __ISO_C_VISIBLE >= 1999
+float	__builtin_acosf(float) __NDK_FPABI_MATH__;
+float	__builtin_asinf(float) __NDK_FPABI_MATH__;
+float	__builtin_atanf(float) __NDK_FPABI_MATH__;
+float	__builtin_atan2f(float, float) __NDK_FPABI_MATH__;
+float	__builtin_cosf(float) __NDK_FPABI_MATH__;
+float	__builtin_sinf(float) __NDK_FPABI_MATH__;
+float	__builtin_tanf(float) __NDK_FPABI_MATH__;
+
+float	__builtin_coshf(float) __NDK_FPABI_MATH__;
+float	__builtin_sinhf(float) __NDK_FPABI_MATH__;
+float	__builtin_tanhf(float) __NDK_FPABI_MATH__;
+
+float	__builtin_exp2f(float) __NDK_FPABI_MATH__;
+float	__builtin_expf(float) __NDK_FPABI_MATH__;
+float	__builtin_expm1f(float) __NDK_FPABI_MATH__;
+float	__builtin_frexpf(float, int *) __NDK_FPABI_MATH__;	/* fundamentally !__pure2 */
+int	__builtin_ilogbf(float) __NDK_FPABI_MATH__ __pure2;
+float	__builtin_ldexpf(float, int) __NDK_FPABI_MATH__;
+float	__builtin_log10f(float) __NDK_FPABI_MATH__;
+float	__builtin_log1pf(float) __NDK_FPABI_MATH__;
+float	__builtin_log2f(float) __NDK_FPABI_MATH__;
+float	__builtin_logf(float) __NDK_FPABI_MATH__;
+float	__builtin_modff(float, float *) __NDK_FPABI_MATH__;	/* fundamentally !__pure2 */
+
+float	__builtin_powf(float, float) __NDK_FPABI_MATH__;
+float	__builtin_sqrtf(float) __NDK_FPABI_MATH__;
+
+float	__builtin_ceilf(float) __NDK_FPABI_MATH__;
+float	__builtin_fabsf(float) __NDK_FPABI_MATH__ __pure2;
+float	__builtin_floorf(float) __NDK_FPABI_MATH__;
+float	__builtin_fmodf(float, float) __NDK_FPABI_MATH__;
+float	__builtin_roundf(float) __NDK_FPABI_MATH__;
+
+float	__builtin_erff(float) __NDK_FPABI_MATH__;
+float	__builtin_erfcf(float) __NDK_FPABI_MATH__;
+float	__builtin_hypotf(float, float) __NDK_FPABI_MATH__;
+float	__builtin_lgammaf(float) __NDK_FPABI_MATH__;
+float	__builtin_tgammaf(float) __NDK_FPABI_MATH__;
+
+float	__builtin_acoshf(float) __NDK_FPABI_MATH__;
+float	__builtin_asinhf(float) __NDK_FPABI_MATH__;
+float	__builtin_atanhf(float) __NDK_FPABI_MATH__;
+float	__builtin_cbrtf(float) __NDK_FPABI_MATH__;
+float	__builtin_logbf(float) __NDK_FPABI_MATH__;
+float	__builtin_copysignf(float, float) __NDK_FPABI_MATH__ __pure2;
+long long __builtin_llrintf(float) __NDK_FPABI_MATH__;
+long long __builtin_llroundf(float) __NDK_FPABI_MATH__;
+long	__builtin_lrintf(float) __NDK_FPABI_MATH__;
+long	__builtin_lroundf(float) __NDK_FPABI_MATH__;
+float	__builtin_nanf(const char *) __NDK_FPABI_MATH__ __pure2;
+float	__builtin_nearbyintf(float) __NDK_FPABI_MATH__;
+float	__builtin_nextafterf(float, float) __NDK_FPABI_MATH__;
+float	__builtin_remainderf(float, float) __NDK_FPABI_MATH__;
+float	__builtin_remquof(float, float, int *) __NDK_FPABI_MATH__;
+float	__builtin_rintf(float) __NDK_FPABI_MATH__;
+float	__builtin_scalblnf(float, long) __NDK_FPABI_MATH__;
+float	__builtin_scalbnf(float, int) __NDK_FPABI_MATH__;
+float	__builtin_truncf(float) __NDK_FPABI_MATH__;
+
+float	__builtin_fdimf(float, float) __NDK_FPABI_MATH__;
+float	__builtin_fmaf(float, float, float) __NDK_FPABI_MATH__;
+float	__builtin_fmaxf(float, float) __NDK_FPABI_MATH__ __pure2;
+float	__builtin_fminf(float, float) __NDK_FPABI_MATH__ __pure2;
+#endif
+
+/*
+ * float versions of BSD math library entry points
+ */
+#if __BSD_VISIBLE
+float	__builtin_dremf(float, float) __NDK_FPABI_MATH__;
+int	__builtin_finitef(float) __NDK_FPABI_MATH__ __pure2;
+float	__builtin_gammaf(float) __NDK_FPABI_MATH__;
+float	__builtin_j0f(float) __NDK_FPABI_MATH__;
+float	__builtin_j1f(float) __NDK_FPABI_MATH__;
+float	__builtin_jnf(int, float) __NDK_FPABI_MATH__;
+float	__builtin_scalbf(float, float) __NDK_FPABI_MATH__;
+float	__builtin_y0f(float) __NDK_FPABI_MATH__;
+float	__builtin_y1f(float) __NDK_FPABI_MATH__;
+float	__builtin_ynf(int, float) __NDK_FPABI_MATH__;
+
+/*
+ * Float versions of reentrant version of gamma & lgamma; passes
+ * signgam back by reference as the second argument; user must
+ * allocate space for signgam.
+ */
+float	__builtin_gammaf_r(float, int *) __NDK_FPABI_MATH__;
+float	__builtin_lgammaf_r(float, int *) __NDK_FPABI_MATH__;
+
+/*
+ * float version of IEEE Test Vector
+ */
+float	__builtin_significandf(float) __NDK_FPABI_MATH__;
+#endif	/* __BSD_VISIBLE */
+
+/*
+ * long double versions of ISO/POSIX math functions
+ */
+#if __ISO_C_VISIBLE >= 1999
+long double	__builtin_acoshl(long double) __NDK_FPABI_MATH__;
+long double	__builtin_acosl(long double) __NDK_FPABI_MATH__;
+long double	__builtin_asinhl(long double) __NDK_FPABI_MATH__;
+long double	__builtin_asinl(long double) __NDK_FPABI_MATH__;
+long double	__builtin_atan2l(long double, long double) __NDK_FPABI_MATH__;
+long double	__builtin_atanhl(long double) __NDK_FPABI_MATH__;
+long double	__builtin_atanl(long double) __NDK_FPABI_MATH__;
+long double	__builtin_cbrtl(long double) __NDK_FPABI_MATH__;
+long double	__builtin_ceill(long double) __NDK_FPABI_MATH__;
+long double	__builtin_copysignl(long double, long double) __NDK_FPABI_MATH__ __pure2;
+long double	__builtin_coshl(long double) __NDK_FPABI_MATH__;
+long double	__builtin_cosl(long double) __NDK_FPABI_MATH__;
+long double	__builtin_erfcl(long double) __NDK_FPABI_MATH__;
+long double	__builtin_erfl(long double) __NDK_FPABI_MATH__;
+long double	__builtin_exp2l(long double) __NDK_FPABI_MATH__;
+long double	__builtin_expl(long double) __NDK_FPABI_MATH__;
+long double	__builtin_expm1l(long double) __NDK_FPABI_MATH__;
+long double	__builtin_fabsl(long double) __NDK_FPABI_MATH__ __pure2;
+long double	__builtin_fdiml(long double, long double) __NDK_FPABI_MATH__;
+long double	__builtin_floorl(long double) __NDK_FPABI_MATH__;
+long double	__builtin_fmal(long double, long double, long double) __NDK_FPABI_MATH__;
+long double	__builtin_fmaxl(long double, long double) __NDK_FPABI_MATH__ __pure2;
+long double	__builtin_fminl(long double, long double) __NDK_FPABI_MATH__ __pure2;
+long double	__builtin_fmodl(long double, long double) __NDK_FPABI_MATH__;
+long double	__builtin_frexpl(long double value, int *) __NDK_FPABI_MATH__; /* fundamentally !__pure2 */
+long double	__builtin_hypotl(long double, long double) __NDK_FPABI_MATH__;
+int		__builtin_ilogbl(long double) __NDK_FPABI_MATH__ __pure2;
+long double	__builtin_ldexpl(long double, int) __NDK_FPABI_MATH__;
+long double	__builtin_lgammal(long double) __NDK_FPABI_MATH__;
+long long	__builtin_llrintl(long double) __NDK_FPABI_MATH__;
+long long	__builtin_llroundl(long double) __NDK_FPABI_MATH__;
+long double	__builtin_log10l(long double) __NDK_FPABI_MATH__;
+long double	__builtin_log1pl(long double) __NDK_FPABI_MATH__;
+long double	__builtin_log2l(long double) __NDK_FPABI_MATH__;
+long double	__builtin_logbl(long double) __NDK_FPABI_MATH__;
+long double	__builtin_logl(long double) __NDK_FPABI_MATH__;
+long		__builtin_lrintl(long double) __NDK_FPABI_MATH__;
+long		__builtin_lroundl(long double) __NDK_FPABI_MATH__;
+long double	__builtin_modfl(long double, long double *) __NDK_FPABI_MATH__; /* fundamentally !__pure2 */
+long double	__builtin_nanl(const char *) __NDK_FPABI_MATH__ __pure2;
+long double	__builtin_nearbyintl(long double) __NDK_FPABI_MATH__;
+long double	__builtin_nextafterl(long double, long double) __NDK_FPABI_MATH__;
+double		__builtin_nexttoward(double, long double) __NDK_FPABI_MATH__;
+float		__builtin_nexttowardf(float, long double) __NDK_FPABI_MATH__;
+long double	__builtin_nexttowardl(long double, long double) __NDK_FPABI_MATH__;
+long double	__builtin_powl(long double, long double) __NDK_FPABI_MATH__;
+long double	__builtin_remainderl(long double, long double) __NDK_FPABI_MATH__;
+long double	__builtin_remquol(long double, long double, int *) __NDK_FPABI_MATH__;
+long double	__builtin_rintl(long double) __NDK_FPABI_MATH__;
+long double	__builtin_roundl(long double) __NDK_FPABI_MATH__;
+long double	__builtin_scalblnl(long double, long) __NDK_FPABI_MATH__;
+long double	__builtin_scalbnl(long double, int) __NDK_FPABI_MATH__;
+long double	__builtin_sinhl(long double) __NDK_FPABI_MATH__;
+long double	__builtin_sinl(long double) __NDK_FPABI_MATH__;
+long double	__builtin_sqrtl(long double) __NDK_FPABI_MATH__;
+long double	__builtin_tanhl(long double) __NDK_FPABI_MATH__;
+long double	__builtin_tanl(long double) __NDK_FPABI_MATH__;
+long double	__builtin_tgammal(long double) __NDK_FPABI_MATH__;
+long double	__builtin_truncl(long double) __NDK_FPABI_MATH__;
+
+#endif /* __ISO_C_VISIBLE >= 1999 */
+
+#if defined(_GNU_SOURCE)
+void __builtin_sincos(double, double*, double*) __NDK_FPABI_MATH__;
+void __builtin_sincosf(float, float*, float*) __NDK_FPABI_MATH__;
+void __builtin_sincosl(long double, long double*, long double*) __NDK_FPABI_MATH__;
+#endif /* _GNU_SOURCE */
+
+#pragma GCC visibility pop
+__END_DECLS
+
+#endif /* !_MATH_H_ */
diff --git a/ndk/platforms/android-20/include/memory.h b/ndk/platforms/android-L/include/memory.h
similarity index 100%
rename from ndk/platforms/android-20/include/memory.h
rename to ndk/platforms/android-L/include/memory.h
diff --git a/ndk/platforms/android-20/include/mntent.h b/ndk/platforms/android-L/include/mntent.h
similarity index 100%
rename from ndk/platforms/android-20/include/mntent.h
rename to ndk/platforms/android-L/include/mntent.h
diff --git a/ndk/platforms/android-20/include/net/ethernet.h b/ndk/platforms/android-L/include/net/ethernet.h
similarity index 100%
rename from ndk/platforms/android-20/include/net/ethernet.h
rename to ndk/platforms/android-L/include/net/ethernet.h
diff --git a/ndk/platforms/android-20/include/net/ethertypes.h b/ndk/platforms/android-L/include/net/ethertypes.h
similarity index 100%
rename from ndk/platforms/android-20/include/net/ethertypes.h
rename to ndk/platforms/android-L/include/net/ethertypes.h
diff --git a/ndk/platforms/android-20/include/net/if.h b/ndk/platforms/android-L/include/net/if.h
similarity index 100%
rename from ndk/platforms/android-20/include/net/if.h
rename to ndk/platforms/android-L/include/net/if.h
diff --git a/ndk/platforms/android-20/include/net/if_arp.h b/ndk/platforms/android-L/include/net/if_arp.h
similarity index 100%
rename from ndk/platforms/android-20/include/net/if_arp.h
rename to ndk/platforms/android-L/include/net/if_arp.h
diff --git a/ndk/platforms/android-20/include/net/if_ether.h b/ndk/platforms/android-L/include/net/if_ether.h
similarity index 100%
rename from ndk/platforms/android-20/include/net/if_ether.h
rename to ndk/platforms/android-L/include/net/if_ether.h
diff --git a/ndk/platforms/android-20/include/net/if_ieee1394.h b/ndk/platforms/android-L/include/net/if_ieee1394.h
similarity index 100%
rename from ndk/platforms/android-20/include/net/if_ieee1394.h
rename to ndk/platforms/android-L/include/net/if_ieee1394.h
diff --git a/ndk/platforms/android-20/include/net/if_packet.h b/ndk/platforms/android-L/include/net/if_packet.h
similarity index 100%
rename from ndk/platforms/android-20/include/net/if_packet.h
rename to ndk/platforms/android-L/include/net/if_packet.h
diff --git a/ndk/platforms/android-20/include/net/if_types.h b/ndk/platforms/android-L/include/net/if_types.h
similarity index 100%
rename from ndk/platforms/android-20/include/net/if_types.h
rename to ndk/platforms/android-L/include/net/if_types.h
diff --git a/ndk/platforms/android-20/include/net/route.h b/ndk/platforms/android-L/include/net/route.h
similarity index 100%
rename from ndk/platforms/android-20/include/net/route.h
rename to ndk/platforms/android-L/include/net/route.h
diff --git a/ndk/platforms/android-L/include/netdb.h b/ndk/platforms/android-L/include/netdb.h
new file mode 100644
index 0000000..527d5c1
--- /dev/null
+++ b/ndk/platforms/android-L/include/netdb.h
@@ -0,0 +1,253 @@
+/*-
+ * Copyright (c) 1980, 1983, 1988, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * -
+ * Portions Copyright (c) 1993 by Digital Equipment Corporation.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies, and that
+ * the name of Digital Equipment Corporation not be used in advertising or
+ * publicity pertaining to distribution of the document or software without
+ * specific, written prior permission.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
+ * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ * -
+ * --Copyright--
+ */
+
+/*
+ *      @(#)netdb.h	8.1 (Berkeley) 6/2/93
+ *      From: Id: netdb.h,v 8.9 1996/11/19 08:39:29 vixie Exp $
+ * $FreeBSD: /repoman/r/ncvs/src/include/netdb.h,v 1.41 2006/04/15 16:20:26 ume Exp $
+ */
+
+#ifndef _NETDB_H_
+#define _NETDB_H_
+
+#include <sys/cdefs.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+
+#ifndef _PATH_HEQUIV
+# define	_PATH_HEQUIV	"/system/etc/hosts.equiv"
+#endif
+#define	_PATH_HOSTS	"/system/etc/hosts"
+#define	_PATH_NETWORKS	"/system/etc/networks"
+#define	_PATH_PROTOCOLS	"/system/etc/protocols"
+#define	_PATH_SERVICES	"/system/etc/services"
+
+#define  MAXHOSTNAMELEN  256
+
+
+/*
+ * Structures returned by network data base library.  All addresses are
+ * supplied in host order, and returned in network order (suitable for
+ * use in system calls).
+ */
+struct hostent {
+	char	*h_name;	/* official name of host */
+	char	**h_aliases;	/* alias list */
+	int	h_addrtype;	/* host address type */
+	int	h_length;	/* length of address */
+	char	**h_addr_list;	/* list of addresses from name server */
+#define	h_addr	h_addr_list[0]	/* address, for backward compatibility */
+};
+
+struct netent {
+	char		*n_name;	/* official name of net */
+	char		**n_aliases;	/* alias list */
+	int		n_addrtype;	/* net address type */
+	uint32_t	n_net;		/* network # */
+};
+
+struct servent {
+	char	*s_name;	/* official service name */
+	char	**s_aliases;	/* alias list */
+	int	s_port;		/* port # */
+	char	*s_proto;	/* protocol to use */
+};
+
+struct protoent {
+	char	*p_name;	/* official protocol name */
+	char	**p_aliases;	/* alias list */
+	int	p_proto;	/* protocol # */
+};
+
+struct addrinfo {
+	int	ai_flags;	/* AI_PASSIVE, AI_CANONNAME, AI_NUMERICHOST */
+	int	ai_family;	/* PF_xxx */
+	int	ai_socktype;	/* SOCK_xxx */
+	int	ai_protocol;	/* 0 or IPPROTO_xxx for IPv4 and IPv6 */
+	socklen_t ai_addrlen;	/* length of ai_addr */
+	char	*ai_canonname;	/* canonical name for hostname */
+	struct	sockaddr *ai_addr;	/* binary address */
+	struct	addrinfo *ai_next;	/* next structure in linked list */
+};
+
+/*
+ * Error return codes from gethostbyname() and gethostbyaddr()
+ * (left in h_errno).
+ */
+
+#define	NETDB_INTERNAL	-1	/* see errno */
+#define	NETDB_SUCCESS	0	/* no problem */
+#define	HOST_NOT_FOUND	1 /* Authoritative Answer Host not found */
+#define	TRY_AGAIN	2 /* Non-Authoritative Host not found, or SERVERFAIL */
+#define	NO_RECOVERY	3 /* Non recoverable errors, FORMERR, REFUSED, NOTIMP */
+#define	NO_DATA		4 /* Valid name, no data record of requested type */
+#define	NO_ADDRESS	NO_DATA		/* no address, look for MX record */
+
+/*
+ * Error return codes from getaddrinfo()
+ */
+#define	EAI_ADDRFAMILY	 1	/* address family for hostname not supported */
+#define	EAI_AGAIN	 2	/* temporary failure in name resolution */
+#define	EAI_BADFLAGS	 3	/* invalid value for ai_flags */
+#define	EAI_FAIL	 4	/* non-recoverable failure in name resolution */
+#define	EAI_FAMILY	 5	/* ai_family not supported */
+#define	EAI_MEMORY	 6	/* memory allocation failure */
+#define	EAI_NODATA	 7	/* no address associated with hostname */
+#define	EAI_NONAME	 8	/* hostname nor servname provided, or not known */
+#define	EAI_SERVICE	 9	/* servname not supported for ai_socktype */
+#define	EAI_SOCKTYPE	10	/* ai_socktype not supported */
+#define	EAI_SYSTEM	11	/* system error returned in errno */
+#define	EAI_BADHINTS	12	/* invalid value for hints */
+#define	EAI_PROTOCOL	13	/* resolved protocol is unknown */
+#define	EAI_OVERFLOW	14	/* argument buffer overflow */
+#define	EAI_MAX		15
+
+/*
+ * Flag values for getaddrinfo()
+ */
+#define	AI_PASSIVE	0x00000001 /* get address to use bind() */
+#define	AI_CANONNAME	0x00000002 /* fill ai_canonname */
+#define	AI_NUMERICHOST	0x00000004 /* prevent host name resolution */
+#define	AI_NUMERICSERV	0x00000008 /* prevent service name resolution */
+/* valid flags for addrinfo (not a standard def, apps should not use it) */
+#define AI_MASK \
+    (AI_PASSIVE | AI_CANONNAME | AI_NUMERICHOST | AI_NUMERICSERV | \
+    AI_ADDRCONFIG)
+
+#define	AI_ALL		0x00000100 /* IPv6 and IPv4-mapped (with AI_V4MAPPED) */
+#define	AI_V4MAPPED_CFG	0x00000200 /* accept IPv4-mapped if kernel supports */
+#define	AI_ADDRCONFIG	0x00000400 /* only if any address is assigned */
+#define	AI_V4MAPPED	0x00000800 /* accept IPv4-mapped IPv6 address */
+/* special recommended flags for getipnodebyname */
+#define	AI_DEFAULT	(AI_V4MAPPED_CFG | AI_ADDRCONFIG)
+
+/*
+ * Constants for getnameinfo()
+ */
+#define	NI_MAXHOST	1025
+#define	NI_MAXSERV	32
+
+/*
+ * Flag values for getnameinfo()
+ */
+#define	NI_NOFQDN	0x00000001
+#define	NI_NUMERICHOST	0x00000002
+#define	NI_NAMEREQD	0x00000004
+#define	NI_NUMERICSERV	0x00000008
+#define	NI_DGRAM	0x00000010
+#if 0 /* obsolete */
+#define NI_WITHSCOPEID	0x00000020
+#endif
+
+/*
+ * Scope delimit character
+ */
+#define	SCOPE_DELIMITER	'%'
+
+__BEGIN_DECLS
+#pragma GCC visibility push(default)
+
+/* BIONIC-BEGIN */
+#define  h_errno   (*__get_h_errno())
+int*  __get_h_errno(void);
+/* BIONIC-END */
+void endhostent(void);
+void endnetent(void);
+void endnetgrent(void);
+void endprotoent(void);
+void endservent(void);
+void freehostent(struct hostent *);
+struct hostent	*gethostbyaddr(const void *, socklen_t, int);
+int gethostbyaddr_r(const void *, int, int, struct hostent *, char *, size_t, struct hostent **, int *);
+struct hostent	*gethostbyname(const char *);
+int gethostbyname_r(const char *, struct hostent *, char *, size_t, struct hostent **, int *);
+struct hostent	*gethostbyname2(const char *, int);
+int gethostbyname2_r(const char *, int, struct hostent *, char *, size_t, struct hostent **, int *);
+struct hostent	*gethostent(void);
+int gethostent_r(struct hostent *, char *, size_t, struct hostent **, int *);
+struct hostent	*getipnodebyaddr(const void *, size_t, int, int *);
+struct hostent	*getipnodebyname(const char *, int, int, int *);
+struct netent	*getnetbyaddr(uint32_t, int);
+int getnetbyaddr_r(uint32_t, int, struct netent *, char *, size_t, struct netent**, int *);
+struct netent	*getnetbyname(const char *);
+int getnetbyname_r(const char *, struct netent *, char *, size_t, struct netent **, int *);
+struct netent	*getnetent(void);
+int getnetent_r(struct netent *, char *, size_t, struct netent **, int *);
+int getnetgrent(char **, char **, char **);
+struct protoent	*getprotobyname(const char *);
+int getprotobyname_r(const char *, struct protoent *, char *, size_t, struct protoent **);
+struct protoent	*getprotobynumber(int);
+int getprotobynumber_r(int, struct protoent *, char *, size_t, struct protoent **);
+struct protoent	*getprotoent(void);
+int getprotoent_r(struct protoent *, char *, size_t, struct protoent **);
+struct servent	*getservbyname(const char *, const char *);
+struct servent	*getservbyport(int, const char *);
+struct servent	*getservent(void);
+void herror(const char *);
+const char	*hstrerror(int);
+int innetgr(const char *, const char *, const char *, const char *);
+void sethostent(int);
+void setnetent(int);
+void setprotoent(int);
+int getaddrinfo(const char *, const char *, const struct addrinfo *, struct addrinfo **);
+int getnameinfo(const struct sockaddr *, socklen_t, char *, size_t, char *, size_t, int);
+void freeaddrinfo(struct addrinfo *);
+const char	*gai_strerror(int);
+void setnetgrent(const char *);
+void setservent(int);
+
+#pragma GCC visibility pop
+__END_DECLS
+
+#endif /* !_NETDB_H_ */
diff --git a/ndk/platforms/android-20/include/netinet/ether.h b/ndk/platforms/android-L/include/netinet/ether.h
similarity index 100%
rename from ndk/platforms/android-20/include/netinet/ether.h
rename to ndk/platforms/android-L/include/netinet/ether.h
diff --git a/ndk/platforms/android-20/include/netinet/icmp6.h b/ndk/platforms/android-L/include/netinet/icmp6.h
similarity index 100%
rename from ndk/platforms/android-20/include/netinet/icmp6.h
rename to ndk/platforms/android-L/include/netinet/icmp6.h
diff --git a/ndk/platforms/android-20/include/netinet/if_ether.h b/ndk/platforms/android-L/include/netinet/if_ether.h
similarity index 100%
rename from ndk/platforms/android-20/include/netinet/if_ether.h
rename to ndk/platforms/android-L/include/netinet/if_ether.h
diff --git a/ndk/platforms/android-20/include/netinet/in.h b/ndk/platforms/android-L/include/netinet/in.h
similarity index 100%
rename from ndk/platforms/android-20/include/netinet/in.h
rename to ndk/platforms/android-L/include/netinet/in.h
diff --git a/ndk/platforms/android-20/include/netinet/in6.h b/ndk/platforms/android-L/include/netinet/in6.h
similarity index 100%
rename from ndk/platforms/android-20/include/netinet/in6.h
rename to ndk/platforms/android-L/include/netinet/in6.h
diff --git a/ndk/platforms/android-20/include/netinet/in_systm.h b/ndk/platforms/android-L/include/netinet/in_systm.h
similarity index 100%
rename from ndk/platforms/android-20/include/netinet/in_systm.h
rename to ndk/platforms/android-L/include/netinet/in_systm.h
diff --git a/ndk/platforms/android-20/include/netinet/ip.h b/ndk/platforms/android-L/include/netinet/ip.h
similarity index 100%
rename from ndk/platforms/android-20/include/netinet/ip.h
rename to ndk/platforms/android-L/include/netinet/ip.h
diff --git a/ndk/platforms/android-20/include/netinet/ip6.h b/ndk/platforms/android-L/include/netinet/ip6.h
similarity index 100%
rename from ndk/platforms/android-20/include/netinet/ip6.h
rename to ndk/platforms/android-L/include/netinet/ip6.h
diff --git a/ndk/platforms/android-20/include/netinet/ip_icmp.h b/ndk/platforms/android-L/include/netinet/ip_icmp.h
similarity index 100%
rename from ndk/platforms/android-20/include/netinet/ip_icmp.h
rename to ndk/platforms/android-L/include/netinet/ip_icmp.h
diff --git a/ndk/platforms/android-20/include/netinet/tcp.h b/ndk/platforms/android-L/include/netinet/tcp.h
similarity index 100%
rename from ndk/platforms/android-20/include/netinet/tcp.h
rename to ndk/platforms/android-L/include/netinet/tcp.h
diff --git a/ndk/platforms/android-20/include/netinet/udp.h b/ndk/platforms/android-L/include/netinet/udp.h
similarity index 100%
rename from ndk/platforms/android-20/include/netinet/udp.h
rename to ndk/platforms/android-L/include/netinet/udp.h
diff --git a/ndk/platforms/android-20/include/netpacket/packet.h b/ndk/platforms/android-L/include/netpacket/packet.h
similarity index 100%
rename from ndk/platforms/android-20/include/netpacket/packet.h
rename to ndk/platforms/android-L/include/netpacket/packet.h
diff --git a/ndk/platforms/android-20/include/nsswitch.h b/ndk/platforms/android-L/include/nsswitch.h
similarity index 100%
rename from ndk/platforms/android-20/include/nsswitch.h
rename to ndk/platforms/android-L/include/nsswitch.h
diff --git a/ndk/platforms/android-20/include/pathconf.h b/ndk/platforms/android-L/include/pathconf.h
similarity index 100%
rename from ndk/platforms/android-20/include/pathconf.h
rename to ndk/platforms/android-L/include/pathconf.h
diff --git a/ndk/platforms/android-20/include/paths.h b/ndk/platforms/android-L/include/paths.h
similarity index 100%
rename from ndk/platforms/android-20/include/paths.h
rename to ndk/platforms/android-L/include/paths.h
diff --git a/ndk/platforms/android-20/include/poll.h b/ndk/platforms/android-L/include/poll.h
similarity index 100%
rename from ndk/platforms/android-20/include/poll.h
rename to ndk/platforms/android-L/include/poll.h
diff --git a/ndk/platforms/android-L/include/pthread.h b/ndk/platforms/android-L/include/pthread.h
new file mode 100644
index 0000000..29caafc
--- /dev/null
+++ b/ndk/platforms/android-L/include/pthread.h
@@ -0,0 +1,284 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _PTHREAD_H_
+#define _PTHREAD_H_
+
+#include <time.h>
+#include <signal.h>
+#include <sched.h>
+#include <limits.h>
+#include <sys/types.h>
+
+#if defined(__LP64__)
+  #define __RESERVED_INITIALIZER , {0}
+#else
+  #define __RESERVED_INITIALIZER
+#endif
+
+typedef struct {
+  int volatile value;
+#ifdef __LP64__
+  char __reserved[36];
+#endif
+} pthread_mutex_t;
+
+#define  __PTHREAD_MUTEX_INIT_VALUE            0
+#define  __PTHREAD_RECURSIVE_MUTEX_INIT_VALUE  0x4000
+#define  __PTHREAD_ERRORCHECK_MUTEX_INIT_VALUE 0x8000
+
+#define  PTHREAD_MUTEX_INITIALIZER             {__PTHREAD_MUTEX_INIT_VALUE __RESERVED_INITIALIZER}
+#define  PTHREAD_RECURSIVE_MUTEX_INITIALIZER   {__PTHREAD_RECURSIVE_MUTEX_INIT_VALUE __RESERVED_INITIALIZER}
+#define  PTHREAD_ERRORCHECK_MUTEX_INITIALIZER  {__PTHREAD_ERRORCHECK_MUTEX_INIT_VALUE __RESERVED_INITIALIZER}
+
+enum {
+    PTHREAD_MUTEX_NORMAL = 0,
+    PTHREAD_MUTEX_RECURSIVE = 1,
+    PTHREAD_MUTEX_ERRORCHECK = 2,
+
+    PTHREAD_MUTEX_ERRORCHECK_NP = PTHREAD_MUTEX_ERRORCHECK,
+    PTHREAD_MUTEX_RECURSIVE_NP  = PTHREAD_MUTEX_RECURSIVE,
+
+    PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL
+};
+
+typedef struct {
+  int volatile value;
+#ifdef __LP64__
+  char __reserved[44];
+#endif
+} pthread_cond_t;
+
+#define PTHREAD_COND_INITIALIZER  {0 __RESERVED_INITIALIZER}
+
+typedef struct {
+  uint32_t flags;
+  void* stack_base;
+  size_t stack_size;
+  size_t guard_size;
+  int32_t sched_policy;
+  int32_t sched_priority;
+#ifdef __LP64__
+  char __reserved[16];
+#endif
+} pthread_attr_t;
+
+typedef long pthread_mutexattr_t;
+typedef long pthread_condattr_t;
+
+typedef long pthread_rwlockattr_t;
+
+typedef struct {
+#if !defined(__LP64__)
+  pthread_mutex_t __unused_lock;
+  pthread_cond_t __unused_cond;
+#endif
+  volatile int32_t state; // 0=unlock, -1=writer lock, +n=reader lock
+  volatile int32_t writer_thread_id;
+  volatile int32_t pending_readers;
+  volatile int32_t pending_writers;
+  int32_t attr;
+#ifdef __LP64__
+  char __reserved[36];
+#else
+  char __reserved[12];
+#endif
+
+} pthread_rwlock_t;
+
+#ifdef __LP64__
+  #define PTHREAD_RWLOCK_INITIALIZER  { 0, 0, 0, 0, 0, { 0 } }
+#else
+  #define PTHREAD_RWLOCK_INITIALIZER  { PTHREAD_MUTEX_INITIALIZER, PTHREAD_COND_INITIALIZER, 0, 0, 0, 0, 0, { 0 } }
+#endif
+
+typedef int pthread_key_t;
+typedef long pthread_t;
+
+typedef volatile int pthread_once_t;
+
+#define PTHREAD_ONCE_INIT 0
+
+#if defined(__LP64__)
+#define PTHREAD_STACK_MIN (4 * PAGE_SIZE)
+#else
+#define PTHREAD_STACK_MIN (2 * PAGE_SIZE)
+#endif
+
+#define PTHREAD_CREATE_DETACHED  0x00000001
+#define PTHREAD_CREATE_JOINABLE  0x00000000
+
+#define PTHREAD_PROCESS_PRIVATE  0
+#define PTHREAD_PROCESS_SHARED   1
+
+#define PTHREAD_SCOPE_SYSTEM     0
+#define PTHREAD_SCOPE_PROCESS    1
+
+__BEGIN_DECLS
+
+int pthread_atfork(void (*)(void), void (*)(void), void(*)(void));
+
+int pthread_attr_destroy(pthread_attr_t*) __nonnull((1));
+int pthread_attr_getdetachstate(const pthread_attr_t*, int*) __nonnull((1, 2));
+int pthread_attr_getguardsize(const pthread_attr_t*, size_t*) __nonnull((1, 2));
+int pthread_attr_getschedparam(const pthread_attr_t*, struct sched_param*) __nonnull((1, 2));
+int pthread_attr_getschedpolicy(const pthread_attr_t*, int*) __nonnull((1, 2));
+int pthread_attr_getscope(const pthread_attr_t*, int*) __nonnull((1, 2));
+int pthread_attr_getstack(const pthread_attr_t*, void**, size_t*) __nonnull((1, 2, 3));
+int pthread_attr_getstacksize(const pthread_attr_t*, size_t*) __nonnull((1, 2));
+int pthread_attr_init(pthread_attr_t*) __nonnull((1));
+int pthread_attr_setdetachstate(pthread_attr_t*, int) __nonnull((1));
+int pthread_attr_setguardsize(pthread_attr_t*, size_t) __nonnull((1));
+int pthread_attr_setschedparam(pthread_attr_t*, const struct sched_param*) __nonnull((1, 2));
+int pthread_attr_setschedpolicy(pthread_attr_t*, int) __nonnull((1));
+int pthread_attr_setscope(pthread_attr_t*, int) __nonnull((1));
+int pthread_attr_setstack(pthread_attr_t*, void*, size_t) __nonnull((1));
+int pthread_attr_setstacksize(pthread_attr_t*, size_t stack_size) __nonnull((1));
+
+int pthread_condattr_destroy(pthread_condattr_t*) __nonnull((1));
+int pthread_condattr_getclock(const pthread_condattr_t*, clockid_t*) __nonnull((1, 2));
+int pthread_condattr_getpshared(const pthread_condattr_t*, int*) __nonnull((1, 2));
+int pthread_condattr_init(pthread_condattr_t*) __nonnull((1));
+int pthread_condattr_setclock(pthread_condattr_t*, clockid_t) __nonnull((1));
+int pthread_condattr_setpshared(pthread_condattr_t*, int) __nonnull((1));
+
+int pthread_cond_broadcast(pthread_cond_t*) __nonnull((1));
+int pthread_cond_destroy(pthread_cond_t*) __nonnull((1));
+int pthread_cond_init(pthread_cond_t*, const pthread_condattr_t*) __nonnull((1));
+int pthread_cond_signal(pthread_cond_t*) __nonnull((1));
+int pthread_cond_timedwait(pthread_cond_t*, pthread_mutex_t*, const struct timespec*) __nonnull((1, 2, 3));
+int pthread_cond_wait(pthread_cond_t*, pthread_mutex_t*) __nonnull((1, 2));
+
+int pthread_create(pthread_t*, pthread_attr_t const*, void *(*)(void*), void*) __nonnull((1, 3));
+int pthread_detach(pthread_t);
+void pthread_exit(void*) __noreturn;
+
+int pthread_equal(pthread_t, pthread_t);
+
+int pthread_getattr_np(pthread_t, pthread_attr_t*) __nonnull((2));
+
+int pthread_getcpuclockid(pthread_t, clockid_t*) __nonnull((2));
+
+int pthread_getschedparam(pthread_t, int*, struct sched_param*) __nonnull((2, 3));
+
+void* pthread_getspecific(pthread_key_t);
+
+int pthread_join(pthread_t, void**);
+
+int pthread_key_create(pthread_key_t*, void (*)(void*)) __nonnull((1));
+int pthread_key_delete(pthread_key_t);
+
+int pthread_kill(pthread_t, int);
+
+int pthread_mutexattr_destroy(pthread_mutexattr_t*) __nonnull((1));
+int pthread_mutexattr_getpshared(const pthread_mutexattr_t*, int*) __nonnull((1, 2));
+int pthread_mutexattr_gettype(const pthread_mutexattr_t*, int*) __nonnull((1, 2));
+int pthread_mutexattr_init(pthread_mutexattr_t*) __nonnull((1));
+int pthread_mutexattr_setpshared(pthread_mutexattr_t*, int) __nonnull((1));
+int pthread_mutexattr_settype(pthread_mutexattr_t*, int) __nonnull((1));
+
+int pthread_mutex_destroy(pthread_mutex_t*) __nonnull((1));
+int pthread_mutex_init(pthread_mutex_t*, const pthread_mutexattr_t*) __nonnull((1));
+int pthread_mutex_lock(pthread_mutex_t*) __nonnull((1));
+int pthread_mutex_timedlock(pthread_mutex_t*, const struct timespec*) __nonnull((1, 2));
+int pthread_mutex_trylock(pthread_mutex_t*) __nonnull((1));
+int pthread_mutex_unlock(pthread_mutex_t*) __nonnull((1));
+
+int pthread_once(pthread_once_t*, void (*)(void)) __nonnull((1, 2));
+
+int pthread_rwlockattr_destroy(pthread_rwlockattr_t*) __nonnull((1));
+int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t*, int*) __nonnull((1, 2));
+int pthread_rwlockattr_init(pthread_rwlockattr_t*) __nonnull((1));
+int pthread_rwlockattr_setpshared(pthread_rwlockattr_t*, int) __nonnull((1));
+
+int pthread_rwlock_destroy(pthread_rwlock_t*) __nonnull((1));
+int pthread_rwlock_init(pthread_rwlock_t*, const pthread_rwlockattr_t*) __nonnull((1));
+int pthread_rwlock_rdlock(pthread_rwlock_t*) __nonnull((1));
+int pthread_rwlock_timedrdlock(pthread_rwlock_t*, const struct timespec*) __nonnull((1, 2));
+int pthread_rwlock_timedwrlock(pthread_rwlock_t*, const struct timespec*) __nonnull((1, 2));
+int pthread_rwlock_tryrdlock(pthread_rwlock_t*) __nonnull((1));
+int pthread_rwlock_trywrlock(pthread_rwlock_t*) __nonnull((1));
+int pthread_rwlock_unlock(pthread_rwlock_t *rwlock) __nonnull((1));
+int pthread_rwlock_wrlock(pthread_rwlock_t*) __nonnull((1));
+
+pthread_t pthread_self(void) __pure2;
+
+int pthread_setname_np(pthread_t, const char*) __nonnull((2));
+
+int pthread_setschedparam(pthread_t, int, const struct sched_param*) __nonnull((3));
+
+int pthread_setspecific(pthread_key_t, const void*);
+
+int pthread_sigmask(int, const sigset_t*, sigset_t*);
+
+typedef void (*__pthread_cleanup_func_t)(void*);
+
+typedef struct __pthread_cleanup_t {
+  struct __pthread_cleanup_t*   __cleanup_prev;
+  __pthread_cleanup_func_t      __cleanup_routine;
+  void*                         __cleanup_arg;
+} __pthread_cleanup_t;
+
+extern void __pthread_cleanup_push(__pthread_cleanup_t* c, __pthread_cleanup_func_t, void*);
+extern void __pthread_cleanup_pop(__pthread_cleanup_t*, int);
+
+/* Believe or not, the definitions of pthread_cleanup_push and
+ * pthread_cleanup_pop below are correct. Posix states that these
+ * can be implemented as macros that might introduce opening and
+ * closing braces, and that using setjmp/longjmp/return/break/continue
+ * between them results in undefined behavior.
+ */
+#define  pthread_cleanup_push(routine, arg)                      \
+    do {                                                         \
+        __pthread_cleanup_t  __cleanup;                          \
+        __pthread_cleanup_push( &__cleanup, (routine), (arg) );  \
+
+#define  pthread_cleanup_pop(execute)                  \
+        __pthread_cleanup_pop( &__cleanup, (execute)); \
+    } while (0);                                       \
+
+
+#if !defined(__LP64__)
+
+// Bionic additions that are deprecated even in the 32-bit ABI.
+//
+// TODO: Remove them once chromium_org / NFC have switched over.
+int pthread_cond_timedwait_monotonic_np(pthread_cond_t*, pthread_mutex_t*, const struct timespec*);
+int pthread_cond_timedwait_monotonic(pthread_cond_t*, pthread_mutex_t*, const struct timespec*);
+
+int pthread_cond_timedwait_relative_np(pthread_cond_t*, pthread_mutex_t*, const struct timespec*) /* TODO: __attribute__((deprecated("use pthread_cond_timedwait instead")))*/;
+#define HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE 1 /* TODO: stop defining this to push LP32 off this API sooner. */
+int pthread_cond_timeout_np(pthread_cond_t*, pthread_mutex_t*, unsigned) /* TODO: __attribute__((deprecated("use pthread_cond_timedwait instead")))*/;
+
+int pthread_mutex_lock_timeout_np(pthread_mutex_t*, unsigned) __attribute__((deprecated("use pthread_mutex_timedlock instead")));
+
+#endif /* !defined(__LP64__) */
+
+__END_DECLS
+
+#endif /* _PTHREAD_H_ */
diff --git a/ndk/platforms/android-20/include/pwd.h b/ndk/platforms/android-L/include/pwd.h
similarity index 100%
rename from ndk/platforms/android-20/include/pwd.h
rename to ndk/platforms/android-L/include/pwd.h
diff --git a/ndk/platforms/android-20/include/regex.h b/ndk/platforms/android-L/include/regex.h
similarity index 100%
rename from ndk/platforms/android-20/include/regex.h
rename to ndk/platforms/android-L/include/regex.h
diff --git a/ndk/platforms/android-L/include/resolv.h b/ndk/platforms/android-L/include/resolv.h
new file mode 100644
index 0000000..c8899ed
--- /dev/null
+++ b/ndk/platforms/android-L/include/resolv.h
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+#ifndef _RESOLV_H_
+#define _RESOLV_H_
+
+#include <sys/param.h>
+#include <sys/types.h>
+#include <sys/cdefs.h>
+#include <sys/socket.h>
+#include <stdio.h>
+#include <arpa/nameser.h>
+#include <netinet/in.h>
+
+__BEGIN_DECLS
+#pragma GCC visibility push(default)
+
+struct res_state;
+
+extern struct __res_state *__res_state(void);
+#define _res (*__res_state())
+
+#define b64_ntop __b64_ntop
+#define b64_pton __b64_pton
+extern int b64_ntop(u_char const*, size_t, char*, size_t);
+extern int b64_pton(char const*, u_char*, size_t);
+
+#define dn_comp __dn_comp
+extern int dn_comp(const char*, u_char*, int, u_char**, u_char**);
+extern int dn_expand(const u_char*, const u_char*, const u_char*, char*, int);
+
+#pragma GCC visibility pop
+__END_DECLS
+
+#endif /* _RESOLV_H_ */
diff --git a/ndk/platforms/android-20/include/sched.h b/ndk/platforms/android-L/include/sched.h
similarity index 100%
rename from ndk/platforms/android-20/include/sched.h
rename to ndk/platforms/android-L/include/sched.h
diff --git a/ndk/platforms/android-20/include/search.h b/ndk/platforms/android-L/include/search.h
similarity index 100%
rename from ndk/platforms/android-20/include/search.h
rename to ndk/platforms/android-L/include/search.h
diff --git a/ndk/platforms/android-20/include/semaphore.h b/ndk/platforms/android-L/include/semaphore.h
similarity index 100%
rename from ndk/platforms/android-20/include/semaphore.h
rename to ndk/platforms/android-L/include/semaphore.h
diff --git a/ndk/platforms/android-L/include/setjmp.h b/ndk/platforms/android-L/include/setjmp.h
new file mode 100644
index 0000000..02b06f5
--- /dev/null
+++ b/ndk/platforms/android-L/include/setjmp.h
@@ -0,0 +1,62 @@
+/*	$OpenBSD: setjmp.h,v 1.5 2005/12/13 00:35:22 millert Exp $	*/
+/*	$NetBSD: setjmp.h,v 1.11 1994/12/20 10:35:44 cgd Exp $	*/
+
+/*-
+ * Copyright (c) 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ * (c) UNIX System Laboratories, Inc.
+ * All or some portions of this file are derived from material licensed
+ * to the University of California by American Telephone and Telegraph
+ * Co. or Unix System Laboratories, Inc. and are reproduced herein with
+ * the permission of UNIX System Laboratories, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)setjmp.h	8.2 (Berkeley) 1/21/94
+ */
+
+#ifndef _SETJMP_H_
+#define _SETJMP_H_
+
+#include <sys/cdefs.h>
+#include <machine/setjmp.h>
+
+typedef long sigjmp_buf[_JBLEN + 1];
+typedef long jmp_buf[_JBLEN];
+
+__BEGIN_DECLS
+
+int     _setjmp(jmp_buf);
+void    _longjmp(jmp_buf, int);
+
+int     setjmp(jmp_buf);
+void    longjmp(jmp_buf, int);
+
+int     sigsetjmp(sigjmp_buf, int);
+void    siglongjmp(sigjmp_buf, int);
+
+__END_DECLS
+
+#endif /* !_SETJMP_H_ */
diff --git a/ndk/platforms/android-20/include/sgidefs.h b/ndk/platforms/android-L/include/sgidefs.h
similarity index 100%
rename from ndk/platforms/android-20/include/sgidefs.h
rename to ndk/platforms/android-L/include/sgidefs.h
diff --git a/ndk/platforms/android-20/include/sgtty.h b/ndk/platforms/android-L/include/sgtty.h
similarity index 100%
rename from ndk/platforms/android-20/include/sgtty.h
rename to ndk/platforms/android-L/include/sgtty.h
diff --git a/ndk/platforms/android-20/include/sha1.h b/ndk/platforms/android-L/include/sha1.h
similarity index 100%
rename from ndk/platforms/android-20/include/sha1.h
rename to ndk/platforms/android-L/include/sha1.h
diff --git a/ndk/platforms/android-L/include/signal.h b/ndk/platforms/android-L/include/signal.h
new file mode 100644
index 0000000..0063b24
--- /dev/null
+++ b/ndk/platforms/android-L/include/signal.h
@@ -0,0 +1,130 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _SIGNAL_H_
+#define _SIGNAL_H_
+
+#include <errno.h>
+#include <sys/cdefs.h>
+#include <limits.h>		/* For LONG_BIT */
+#include <string.h>		/* For memset() */
+#include <sys/types.h>
+
+#if defined(__LP64__) || defined(__mips__)
+/* For 64-bit (and mips), the kernel's struct sigaction doesn't match the POSIX one,
+ * so we need to expose our own and translate behind the scenes. */
+#  define sigaction __kernel_sigaction
+#  include <linux/signal.h>
+#  undef sigaction
+#else
+/* For 32-bit, we're stuck with the definitions we already shipped,
+ * even though they contain a sigset_t that's too small. */
+#  include <linux/signal.h>
+#endif
+
+__BEGIN_DECLS
+
+typedef int sig_atomic_t;
+
+/* The arm and x86 kernel header files don't define _NSIG. */
+#ifndef _KERNEL__NSIG
+#define _KERNEL__NSIG 64
+#endif
+
+/* Userspace's NSIG is the kernel's _NSIG + 1. */
+#define _NSIG (_KERNEL__NSIG + 1)
+#define NSIG _NSIG
+
+/* We take a few real-time signals for ourselves. May as well use the same names as glibc. */
+#define SIGRTMIN (__libc_current_sigrtmin())
+#define SIGRTMAX (__libc_current_sigrtmax())
+extern int __libc_current_sigrtmin(void);
+extern int __libc_current_sigrtmax(void);
+
+extern const char* const sys_siglist[];
+extern const char* const sys_signame[]; /* BSD compatibility. */
+
+typedef __sighandler_t sig_t; /* BSD compatibility. */
+typedef __sighandler_t sighandler_t; /* glibc compatibility. */
+
+#define si_timerid si_tid /* glibc compatibility. */
+
+#if defined(__LP64__)
+
+struct sigaction {
+  unsigned int sa_flags;
+  union {
+    sighandler_t sa_handler;
+    void (*sa_sigaction)(int, struct siginfo*, void*);
+  };
+  sigset_t sa_mask;
+  void (*sa_restorer)(void);
+};
+
+#elif defined(__mips__)
+
+struct sigaction {
+  unsigned int sa_flags;
+  union {
+    sighandler_t sa_handler;
+    void (*sa_sigaction) (int, struct siginfo*, void*);
+  };
+  sigset_t sa_mask;
+};
+
+#endif
+
+extern int sigaction(int, const struct sigaction*, struct sigaction*);
+
+extern sighandler_t signal(int, sighandler_t);
+
+extern int siginterrupt(int, int);
+
+extern int sigaddset(sigset_t*, int);
+extern int sigdelset(sigset_t*, int);
+extern int sigemptyset(sigset_t*);
+extern int sigfillset(sigset_t*);
+extern int sigismember(const sigset_t*, int);
+
+extern int sigpending(sigset_t*) __nonnull((1));
+extern int sigprocmask(int, const sigset_t*, sigset_t*);
+extern int sigsuspend(const sigset_t*) __nonnull((1));
+extern int sigwait(const sigset_t*, int*) __nonnull((1, 2));
+
+extern int raise(int);
+extern int kill(pid_t, int);
+extern int killpg(int, int);
+
+extern int sigaltstack(const stack_t*, stack_t*);
+
+extern void psiginfo(const siginfo_t*, const char*);
+extern void psignal(int, const char*);
+
+__END_DECLS
+
+#endif /* _SIGNAL_H_ */
diff --git a/ndk/platforms/android-L/include/stdatomic.h b/ndk/platforms/android-L/include/stdatomic.h
new file mode 100644
index 0000000..43ec753
--- /dev/null
+++ b/ndk/platforms/android-L/include/stdatomic.h
@@ -0,0 +1,420 @@
+/*-
+ * Copyright (c) 2011 Ed Schouten <ed@FreeBSD.org>
+ *                    David Chisnall <theraven@FreeBSD.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+#ifndef _STDATOMIC_H_
+#define	_STDATOMIC_H_
+
+#include <sys/cdefs.h>
+#include <sys/types.h>
+#include <stdbool.h>
+
+#if __has_extension(c_atomic) || __has_extension(cxx_atomic)
+#define	__CLANG_ATOMICS
+#elif __GNUC_PREREQ__(4, 7)
+#define	__GNUC_ATOMICS
+#elif defined(__GNUC__)
+#define	__SYNC_ATOMICS
+#else
+#error "stdatomic.h does not support your compiler"
+#endif
+
+/*
+ * 7.17.1 Atomic lock-free macros.
+ */
+
+#ifdef __GCC_ATOMIC_BOOL_LOCK_FREE
+#define	ATOMIC_BOOL_LOCK_FREE		__GCC_ATOMIC_BOOL_LOCK_FREE
+#endif
+#ifdef __GCC_ATOMIC_CHAR_LOCK_FREE
+#define	ATOMIC_CHAR_LOCK_FREE		__GCC_ATOMIC_CHAR_LOCK_FREE
+#endif
+#ifdef __GCC_ATOMIC_CHAR16_T_LOCK_FREE
+#define	ATOMIC_CHAR16_T_LOCK_FREE	__GCC_ATOMIC_CHAR16_T_LOCK_FREE
+#endif
+#ifdef __GCC_ATOMIC_CHAR32_T_LOCK_FREE
+#define	ATOMIC_CHAR32_T_LOCK_FREE	__GCC_ATOMIC_CHAR32_T_LOCK_FREE
+#endif
+#ifdef __GCC_ATOMIC_WCHAR_T_LOCK_FREE
+#define	ATOMIC_WCHAR_T_LOCK_FREE	__GCC_ATOMIC_WCHAR_T_LOCK_FREE
+#endif
+#ifdef __GCC_ATOMIC_SHORT_LOCK_FREE
+#define	ATOMIC_SHORT_LOCK_FREE		__GCC_ATOMIC_SHORT_LOCK_FREE
+#endif
+#ifdef __GCC_ATOMIC_INT_LOCK_FREE
+#define	ATOMIC_INT_LOCK_FREE		__GCC_ATOMIC_INT_LOCK_FREE
+#endif
+#ifdef __GCC_ATOMIC_LONG_LOCK_FREE
+#define	ATOMIC_LONG_LOCK_FREE		__GCC_ATOMIC_LONG_LOCK_FREE
+#endif
+#ifdef __GCC_ATOMIC_LLONG_LOCK_FREE
+#define	ATOMIC_LLONG_LOCK_FREE		__GCC_ATOMIC_LLONG_LOCK_FREE
+#endif
+#ifdef __GCC_ATOMIC_POINTER_LOCK_FREE
+#define	ATOMIC_POINTER_LOCK_FREE	__GCC_ATOMIC_POINTER_LOCK_FREE
+#endif
+
+/*
+ * 7.17.2 Initialization.
+ */
+
+#if defined(__CLANG_ATOMICS)
+#define	ATOMIC_VAR_INIT(value)		(value)
+#define	atomic_init(obj, value)		__c11_atomic_init(obj, value)
+#else
+#define	ATOMIC_VAR_INIT(value)		{ .__val = (value) }
+#define	atomic_init(obj, value)		((void)((obj)->__val = (value)))
+#endif
+
+/*
+ * Clang and recent GCC both provide predefined macros for the memory
+ * orderings.  If we are using a compiler that doesn't define them, use the
+ * clang values - these will be ignored in the fallback path.
+ */
+
+#ifndef __ATOMIC_RELAXED
+#define __ATOMIC_RELAXED		0
+#endif
+#ifndef __ATOMIC_CONSUME
+#define __ATOMIC_CONSUME		1
+#endif
+#ifndef __ATOMIC_ACQUIRE
+#define __ATOMIC_ACQUIRE		2
+#endif
+#ifndef __ATOMIC_RELEASE
+#define __ATOMIC_RELEASE		3
+#endif
+#ifndef __ATOMIC_ACQ_REL
+#define __ATOMIC_ACQ_REL		4
+#endif
+#ifndef __ATOMIC_SEQ_CST
+#define __ATOMIC_SEQ_CST		5
+#endif
+
+/*
+ * 7.17.3 Order and consistency.
+ *
+ * The memory_order_* constants that denote the barrier behaviour of the
+ * atomic operations.
+ */
+
+typedef enum {
+	memory_order_relaxed = __ATOMIC_RELAXED,
+	memory_order_consume = __ATOMIC_CONSUME,
+	memory_order_acquire = __ATOMIC_ACQUIRE,
+	memory_order_release = __ATOMIC_RELEASE,
+	memory_order_acq_rel = __ATOMIC_ACQ_REL,
+	memory_order_seq_cst = __ATOMIC_SEQ_CST
+} memory_order;
+
+/*
+ * 7.17.4 Fences.
+ */
+
+static __inline void
+atomic_thread_fence(memory_order __order __unused)
+{
+
+#ifdef __CLANG_ATOMICS
+	__c11_atomic_thread_fence(__order);
+#elif defined(__GNUC_ATOMICS)
+	__atomic_thread_fence(__order);
+#else
+	__sync_synchronize();
+#endif
+}
+
+static __inline void
+atomic_signal_fence(memory_order __order __unused)
+{
+
+#ifdef __CLANG_ATOMICS
+	__c11_atomic_signal_fence(__order);
+#elif defined(__GNUC_ATOMICS)
+	__atomic_signal_fence(__order);
+#else
+	__asm volatile ("" ::: "memory");
+#endif
+}
+
+/*
+ * 7.17.5 Lock-free property.
+ */
+
+#if defined(_KERNEL)
+/* Atomics in kernelspace are always lock-free. */
+#define	atomic_is_lock_free(obj) \
+	((void)(obj), (_Bool)1)
+#elif defined(__CLANG_ATOMICS)
+#define	atomic_is_lock_free(obj) \
+	__atomic_is_lock_free(sizeof(*(obj)), obj)
+#elif defined(__GNUC_ATOMICS)
+#define	atomic_is_lock_free(obj) \
+	__atomic_is_lock_free(sizeof((obj)->__val), &(obj)->__val)
+#else
+#define	atomic_is_lock_free(obj) \
+	((void)(obj), sizeof((obj)->__val) <= sizeof(void *))
+#endif
+
+/*
+ * 7.17.6 Atomic integer types.
+ */
+
+#if !__has_extension(c_atomic) && !__has_extension(cxx_atomic)
+/*
+ * No native support for _Atomic(). Place object in structure to prevent
+ * most forms of direct non-atomic access.
+ */
+#define _Atomic(T)              struct { T volatile __val; }
+#endif
+
+typedef _Atomic(bool)			atomic_bool;
+typedef _Atomic(char)			atomic_char;
+typedef _Atomic(signed char)		atomic_schar;
+typedef _Atomic(unsigned char)		atomic_uchar;
+typedef _Atomic(short)			atomic_short;
+typedef _Atomic(unsigned short)		atomic_ushort;
+typedef _Atomic(int)			atomic_int;
+typedef _Atomic(unsigned int)		atomic_uint;
+typedef _Atomic(long)			atomic_long;
+typedef _Atomic(unsigned long)		atomic_ulong;
+typedef _Atomic(long long)		atomic_llong;
+typedef _Atomic(unsigned long long)	atomic_ullong;
+typedef _Atomic(char16_t)		atomic_char16_t;
+typedef _Atomic(char32_t)		atomic_char32_t;
+typedef _Atomic(wchar_t)		atomic_wchar_t;
+typedef _Atomic(int_least8_t)		atomic_int_least8_t;
+typedef _Atomic(uint_least8_t)	atomic_uint_least8_t;
+typedef _Atomic(int_least16_t)	atomic_int_least16_t;
+typedef _Atomic(uint_least16_t)	atomic_uint_least16_t;
+typedef _Atomic(int_least32_t)	atomic_int_least32_t;
+typedef _Atomic(uint_least32_t)	atomic_uint_least32_t;
+typedef _Atomic(int_least64_t)	atomic_int_least64_t;
+typedef _Atomic(uint_least64_t)	atomic_uint_least64_t;
+typedef _Atomic(int_fast8_t)		atomic_int_fast8_t;
+typedef _Atomic(uint_fast8_t)		atomic_uint_fast8_t;
+typedef _Atomic(int_fast16_t)		atomic_int_fast16_t;
+typedef _Atomic(uint_fast16_t)	atomic_uint_fast16_t;
+typedef _Atomic(int_fast32_t)		atomic_int_fast32_t;
+typedef _Atomic(uint_fast32_t)	atomic_uint_fast32_t;
+typedef _Atomic(int_fast64_t)		atomic_int_fast64_t;
+typedef _Atomic(uint_fast64_t)	atomic_uint_fast64_t;
+typedef _Atomic(intptr_t)		atomic_intptr_t;
+typedef _Atomic(uintptr_t)		atomic_uintptr_t;
+typedef _Atomic(size_t)		atomic_size_t;
+typedef _Atomic(ptrdiff_t)		atomic_ptrdiff_t;
+typedef _Atomic(intmax_t)		atomic_intmax_t;
+typedef _Atomic(uintmax_t)		atomic_uintmax_t;
+
+/*
+ * 7.17.7 Operations on atomic types.
+ */
+
+/*
+ * Compiler-specific operations.
+ */
+
+#if defined(__CLANG_ATOMICS)
+#define	atomic_compare_exchange_strong_explicit(object, expected,	\
+    desired, success, failure)						\
+	__c11_atomic_compare_exchange_strong(object, expected, desired,	\
+	    success, failure)
+#define	atomic_compare_exchange_weak_explicit(object, expected,		\
+    desired, success, failure)						\
+	__c11_atomic_compare_exchange_weak(object, expected, desired,	\
+	    success, failure)
+#define	atomic_exchange_explicit(object, desired, order)		\
+	__c11_atomic_exchange(object, desired, order)
+#define	atomic_fetch_add_explicit(object, operand, order)		\
+	__c11_atomic_fetch_add(object, operand, order)
+#define	atomic_fetch_and_explicit(object, operand, order)		\
+	__c11_atomic_fetch_and(object, operand, order)
+#define	atomic_fetch_or_explicit(object, operand, order)		\
+	__c11_atomic_fetch_or(object, operand, order)
+#define	atomic_fetch_sub_explicit(object, operand, order)		\
+	__c11_atomic_fetch_sub(object, operand, order)
+#define	atomic_fetch_xor_explicit(object, operand, order)		\
+	__c11_atomic_fetch_xor(object, operand, order)
+#define	atomic_load_explicit(object, order)				\
+	__c11_atomic_load(object, order)
+#define	atomic_store_explicit(object, desired, order)			\
+	__c11_atomic_store(object, desired, order)
+#elif defined(__GNUC_ATOMICS)
+#define	atomic_compare_exchange_strong_explicit(object, expected,	\
+    desired, success, failure)						\
+	__atomic_compare_exchange_n(&(object)->__val, expected,		\
+	    desired, 0, success, failure)
+#define	atomic_compare_exchange_weak_explicit(object, expected,		\
+    desired, success, failure)						\
+	__atomic_compare_exchange_n(&(object)->__val, expected,		\
+	    desired, 1, success, failure)
+#define	atomic_exchange_explicit(object, desired, order)		\
+	__atomic_exchange_n(&(object)->__val, desired, order)
+#define	atomic_fetch_add_explicit(object, operand, order)		\
+	__atomic_fetch_add(&(object)->__val, operand, order)
+#define	atomic_fetch_and_explicit(object, operand, order)		\
+	__atomic_fetch_and(&(object)->__val, operand, order)
+#define	atomic_fetch_or_explicit(object, operand, order)		\
+	__atomic_fetch_or(&(object)->__val, operand, order)
+#define	atomic_fetch_sub_explicit(object, operand, order)		\
+	__atomic_fetch_sub(&(object)->__val, operand, order)
+#define	atomic_fetch_xor_explicit(object, operand, order)		\
+	__atomic_fetch_xor(&(object)->__val, operand, order)
+#define	atomic_load_explicit(object, order)				\
+	__atomic_load_n(&(object)->__val, order)
+#define	atomic_store_explicit(object, desired, order)			\
+	__atomic_store_n(&(object)->__val, desired, order)
+#else
+#define	__atomic_apply_stride(object, operand) \
+	(((__typeof__((object)->__val))0) + (operand))
+#define	atomic_compare_exchange_strong_explicit(object, expected,	\
+    desired, success, failure)	__extension__ ({			\
+	__typeof__(expected) __ep = (expected);				\
+	__typeof__(*__ep) __e = *__ep;					\
+	(void)(success); (void)(failure);				\
+	(bool)((*__ep = __sync_val_compare_and_swap(&(object)->__val,	\
+	    __e, desired)) == __e);					\
+})
+#define	atomic_compare_exchange_weak_explicit(object, expected,		\
+    desired, success, failure)						\
+	atomic_compare_exchange_strong_explicit(object, expected,	\
+		desired, success, failure)
+#if __has_builtin(__sync_swap)
+/* Clang provides a full-barrier atomic exchange - use it if available. */
+#define	atomic_exchange_explicit(object, desired, order)		\
+	((void)(order), __sync_swap(&(object)->__val, desired))
+#else
+/*
+ * __sync_lock_test_and_set() is only an acquire barrier in theory (although in
+ * practice it is usually a full barrier) so we need an explicit barrier before
+ * it.
+ */
+#define	atomic_exchange_explicit(object, desired, order)		\
+__extension__ ({							\
+	__typeof__(object) __o = (object);				\
+	__typeof__(desired) __d = (desired);				\
+	(void)(order);							\
+	__sync_synchronize();						\
+	__sync_lock_test_and_set(&(__o)->__val, __d);			\
+})
+#endif
+#define	atomic_fetch_add_explicit(object, operand, order)		\
+	((void)(order), __sync_fetch_and_add(&(object)->__val,		\
+	    __atomic_apply_stride(object, operand)))
+#define	atomic_fetch_and_explicit(object, operand, order)		\
+	((void)(order), __sync_fetch_and_and(&(object)->__val, operand))
+#define	atomic_fetch_or_explicit(object, operand, order)		\
+	((void)(order), __sync_fetch_and_or(&(object)->__val, operand))
+#define	atomic_fetch_sub_explicit(object, operand, order)		\
+	((void)(order), __sync_fetch_and_sub(&(object)->__val,		\
+	    __atomic_apply_stride(object, operand)))
+#define	atomic_fetch_xor_explicit(object, operand, order)		\
+	((void)(order), __sync_fetch_and_xor(&(object)->__val, operand))
+#define	atomic_load_explicit(object, order)				\
+	((void)(order), __sync_fetch_and_add(&(object)->__val, 0))
+#define	atomic_store_explicit(object, desired, order)			\
+	((void)atomic_exchange_explicit(object, desired, order))
+#endif
+
+/*
+ * Convenience functions.
+ *
+ * Don't provide these in kernel space. In kernel space, we should be
+ * disciplined enough to always provide explicit barriers.
+ */
+
+#ifndef _KERNEL
+#define	atomic_compare_exchange_strong(object, expected, desired)	\
+	atomic_compare_exchange_strong_explicit(object, expected,	\
+	    desired, memory_order_seq_cst, memory_order_seq_cst)
+#define	atomic_compare_exchange_weak(object, expected, desired)		\
+	atomic_compare_exchange_weak_explicit(object, expected,		\
+	    desired, memory_order_seq_cst, memory_order_seq_cst)
+#define	atomic_exchange(object, desired)				\
+	atomic_exchange_explicit(object, desired, memory_order_seq_cst)
+#define	atomic_fetch_add(object, operand)				\
+	atomic_fetch_add_explicit(object, operand, memory_order_seq_cst)
+#define	atomic_fetch_and(object, operand)				\
+	atomic_fetch_and_explicit(object, operand, memory_order_seq_cst)
+#define	atomic_fetch_or(object, operand)				\
+	atomic_fetch_or_explicit(object, operand, memory_order_seq_cst)
+#define	atomic_fetch_sub(object, operand)				\
+	atomic_fetch_sub_explicit(object, operand, memory_order_seq_cst)
+#define	atomic_fetch_xor(object, operand)				\
+	atomic_fetch_xor_explicit(object, operand, memory_order_seq_cst)
+#define	atomic_load(object)						\
+	atomic_load_explicit(object, memory_order_seq_cst)
+#define	atomic_store(object, desired)					\
+	atomic_store_explicit(object, desired, memory_order_seq_cst)
+#endif /* !_KERNEL */
+
+/*
+ * 7.17.8 Atomic flag type and operations.
+ *
+ * XXX: Assume atomic_bool can be used as an atomic_flag. Is there some
+ * kind of compiler built-in type we could use?
+ */
+
+typedef struct {
+	atomic_bool	__flag;
+} atomic_flag;
+
+#define	ATOMIC_FLAG_INIT		{ ATOMIC_VAR_INIT(0) }
+
+static __inline bool
+atomic_flag_test_and_set_explicit(volatile atomic_flag *__object,
+    memory_order __order)
+{
+	return (atomic_exchange_explicit(&__object->__flag, 1, __order));
+}
+
+static __inline void
+atomic_flag_clear_explicit(volatile atomic_flag *__object, memory_order __order)
+{
+
+	atomic_store_explicit(&__object->__flag, 0, __order);
+}
+
+#ifndef _KERNEL
+static __inline bool
+atomic_flag_test_and_set(volatile atomic_flag *__object)
+{
+
+	return (atomic_flag_test_and_set_explicit(__object,
+	    memory_order_seq_cst));
+}
+
+static __inline void
+atomic_flag_clear(volatile atomic_flag *__object)
+{
+
+	atomic_flag_clear_explicit(__object, memory_order_seq_cst);
+}
+#endif /* !_KERNEL */
+
+#endif /* !_STDATOMIC_H_ */
diff --git a/ndk/platforms/android-L/include/stdint.h b/ndk/platforms/android-L/include/stdint.h
new file mode 100644
index 0000000..9f588f7
--- /dev/null
+++ b/ndk/platforms/android-L/include/stdint.h
@@ -0,0 +1,229 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _STDINT_H
+#define _STDINT_H
+
+#include <stddef.h>
+#include <machine/wchar_limits.h>
+
+typedef __signed char __int8_t;
+typedef unsigned char __uint8_t;
+typedef short __int16_t;
+typedef unsigned short __uint16_t;
+typedef int __int32_t;
+typedef unsigned int __uint32_t;
+#if __LP64__
+typedef long __int64_t;
+typedef unsigned long __uint64_t;
+#else
+typedef long long __int64_t;
+typedef unsigned long long __uint64_t;
+#endif
+
+#if __LP64__
+typedef long __intptr_t;
+typedef unsigned long __uintptr_t;
+#else
+typedef int __intptr_t;
+typedef unsigned int __uintptr_t;
+#endif
+
+typedef __int8_t      int8_t;
+typedef __uint8_t     uint8_t;
+
+typedef __int16_t     int16_t;
+typedef __uint16_t    uint16_t;
+
+typedef __int32_t     int32_t;
+typedef __uint32_t    uint32_t;
+
+typedef __int64_t     int64_t;
+typedef __uint64_t    uint64_t;
+
+typedef __intptr_t    intptr_t;
+typedef __uintptr_t   uintptr_t;
+
+typedef int8_t        int_least8_t;
+typedef uint8_t       uint_least8_t;
+
+typedef int16_t       int_least16_t;
+typedef uint16_t      uint_least16_t;
+
+typedef int32_t       int_least32_t;
+typedef uint32_t      uint_least32_t;
+
+typedef int64_t       int_least64_t;
+typedef uint64_t      uint_least64_t;
+
+typedef int8_t        int_fast8_t;
+typedef uint8_t       uint_fast8_t;
+
+typedef int64_t       int_fast64_t;
+typedef uint64_t      uint_fast64_t;
+
+#if defined(__LP64__)
+typedef int64_t       int_fast16_t;
+typedef uint64_t      uint_fast16_t;
+typedef int64_t       int_fast32_t;
+typedef uint64_t      uint_fast32_t;
+#else
+typedef int32_t       int_fast16_t;
+typedef uint32_t      uint_fast16_t;
+typedef int32_t       int_fast32_t;
+typedef uint32_t      uint_fast32_t;
+#endif
+
+typedef uint64_t      uintmax_t;
+typedef int64_t       intmax_t;
+
+/* Keep the kernel from trying to define these types... */
+#define __BIT_TYPES_DEFINED__
+
+#define INT8_C(c)         c
+#define INT_LEAST8_C(c)   INT8_C(c)
+#define INT_FAST8_C(c)    INT8_C(c)
+
+#define UINT8_C(c)        c
+#define UINT_LEAST8_C(c)  UINT8_C(c)
+#define UINT_FAST8_C(c)   UINT8_C(c)
+
+#define INT16_C(c)        c
+#define INT_LEAST16_C(c)  INT16_C(c)
+#define INT_FAST16_C(c)   INT32_C(c)
+
+#define UINT16_C(c)       c
+#define UINT_LEAST16_C(c) UINT16_C(c)
+#define UINT_FAST16_C(c)  UINT32_C(c)
+#define INT32_C(c)        c
+#define INT_LEAST32_C(c)  INT32_C(c)
+#define INT_FAST32_C(c)   INT32_C(c)
+
+#define UINT32_C(c)       c ## U
+#define UINT_LEAST32_C(c) UINT32_C(c)
+#define UINT_FAST32_C(c)  UINT32_C(c)
+#define INT_LEAST64_C(c)  INT64_C(c)
+#define INT_FAST64_C(c)   INT64_C(c)
+
+#define UINT_LEAST64_C(c) UINT64_C(c)
+#define UINT_FAST64_C(c)  UINT64_C(c)
+
+#define INTMAX_C(c)       INT64_C(c)
+#define UINTMAX_C(c)      UINT64_C(c)
+
+#if defined(__LP64__)
+#  define INT64_C(c)      c ## L
+#  define UINT64_C(c)     c ## UL
+#  define INTPTR_C(c)     INT64_C(c)
+#  define UINTPTR_C(c)    UINT64_C(c)
+#  define PTRDIFF_C(c)    INT64_C(c)
+#else
+#  define INT64_C(c)      c ## LL
+#  define UINT64_C(c)     c ## ULL
+#  define INTPTR_C(c)     INT32_C(c)
+#  define UINTPTR_C(c)    UINT32_C(c)
+#  define PTRDIFF_C(c)    INT32_C(c)
+#endif
+
+#define INT8_MIN         (-128)
+#define INT8_MAX         (127)
+#define INT_LEAST8_MIN   INT8_MIN
+#define INT_LEAST8_MAX   INT8_MAX
+#define INT_FAST8_MIN    INT8_MIN
+#define INT_FAST8_MAX    INT8_MAX
+
+#define UINT8_MAX        (255)
+#define UINT_LEAST8_MAX  UINT8_MAX
+#define UINT_FAST8_MAX   UINT8_MAX
+
+#define INT16_MIN        (-32768)
+#define INT16_MAX        (32767)
+#define INT_LEAST16_MIN  INT16_MIN
+#define INT_LEAST16_MAX  INT16_MAX
+#define INT_FAST16_MIN   INT32_MIN
+#define INT_FAST16_MAX   INT32_MAX
+
+#define UINT16_MAX       (65535)
+#define UINT_LEAST16_MAX UINT16_MAX
+#define UINT_FAST16_MAX  UINT32_MAX
+
+#define INT32_MIN        (-2147483647-1)
+#define INT32_MAX        (2147483647)
+#define INT_LEAST32_MIN  INT32_MIN
+#define INT_LEAST32_MAX  INT32_MAX
+#define INT_FAST32_MIN   INT32_MIN
+#define INT_FAST32_MAX   INT32_MAX
+
+#define UINT32_MAX       (4294967295U)
+#define UINT32_MIN       (0)
+#define UINT_LEAST32_MAX UINT32_MAX
+#define UINT_FAST32_MAX  UINT32_MAX
+
+#define INT64_MIN        (INT64_C(-9223372036854775807)-1)
+#define INT64_MAX        (INT64_C(9223372036854775807))
+#define INT_LEAST64_MIN  INT64_MIN
+#define INT_LEAST64_MAX  INT64_MAX
+#define INT_FAST64_MIN   INT64_MIN
+#define INT_FAST64_MAX   INT64_MAX
+#define UINT64_MAX       (UINT64_C(18446744073709551615))
+
+#define UINT_LEAST64_MAX UINT64_MAX
+#define UINT_FAST64_MAX  UINT64_MAX
+
+#define INTMAX_MIN       INT64_MIN
+#define INTMAX_MAX       INT64_MAX
+#define UINTMAX_MAX      UINT64_MAX
+
+#define SIG_ATOMIC_MAX   INT32_MAX
+#define SIG_ATOMIC_MIN   INT32_MIN
+
+#if defined(__WINT_UNSIGNED__)
+#  define WINT_MAX       UINT32_MAX
+#  define WINT_MIN       UINT32_MIN
+#else
+#  define WINT_MAX       INT32_MAX
+#  define WINT_MIN       INT32_MIN
+#endif
+
+#if defined(__LP64__)
+#  define INTPTR_MIN     INT64_MIN
+#  define INTPTR_MAX     INT64_MAX
+#  define UINTPTR_MAX    UINT64_MAX
+#  define PTRDIFF_MIN    INT64_MIN
+#  define PTRDIFF_MAX    INT64_MAX
+#  define SIZE_MAX       UINT64_MAX
+#else
+#  define INTPTR_MIN     INT32_MIN
+#  define INTPTR_MAX     INT32_MAX
+#  define UINTPTR_MAX    UINT32_MAX
+#  define PTRDIFF_MIN    INT32_MIN
+#  define PTRDIFF_MAX    INT32_MAX
+#  define SIZE_MAX       UINT32_MAX
+#endif
+
+#endif /* _STDINT_H */
diff --git a/ndk/platforms/android-L/include/stdio.h b/ndk/platforms/android-L/include/stdio.h
new file mode 100644
index 0000000..b9de121
--- /dev/null
+++ b/ndk/platforms/android-L/include/stdio.h
@@ -0,0 +1,454 @@
+/*	$OpenBSD: stdio.h,v 1.35 2006/01/13 18:10:09 miod Exp $	*/
+/*	$NetBSD: stdio.h,v 1.18 1996/04/25 18:29:21 jtc Exp $	*/
+
+/*-
+ * Copyright (c) 1990 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * Chris Torek.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)stdio.h	5.17 (Berkeley) 6/3/91
+ */
+
+#ifndef	_STDIO_H_
+#define	_STDIO_H_
+
+#include <sys/cdefs.h>
+#include <sys/types.h>
+
+#include <stdarg.h>
+#include <stddef.h>
+
+#define __need_NULL
+#include <stddef.h>
+
+#define	_FSTDIO			/* Define for new stdio with functions. */
+
+typedef off_t fpos_t;		/* stdio file position type */
+
+/*
+ * NB: to fit things in six character monocase externals, the stdio
+ * code uses the prefix `__s' for stdio objects, typically followed
+ * by a three-character attempt at a mnemonic.
+ */
+
+/* stdio buffers */
+struct __sbuf {
+	unsigned char *_base;
+	int	_size;
+};
+
+/*
+ * stdio state variables.
+ *
+ * The following always hold:
+ *
+ *	if (_flags&(__SLBF|__SWR)) == (__SLBF|__SWR),
+ *		_lbfsize is -_bf._size, else _lbfsize is 0
+ *	if _flags&__SRD, _w is 0
+ *	if _flags&__SWR, _r is 0
+ *
+ * This ensures that the getc and putc macros (or inline functions) never
+ * try to write or read from a file that is in `read' or `write' mode.
+ * (Moreover, they can, and do, automatically switch from read mode to
+ * write mode, and back, on "r+" and "w+" files.)
+ *
+ * _lbfsize is used only to make the inline line-buffered output stream
+ * code as compact as possible.
+ *
+ * _ub, _up, and _ur are used when ungetc() pushes back more characters
+ * than fit in the current _bf, or when ungetc() pushes back a character
+ * that does not match the previous one in _bf.  When this happens,
+ * _ub._base becomes non-nil (i.e., a stream has ungetc() data iff
+ * _ub._base!=NULL) and _up and _ur save the current values of _p and _r.
+ *
+ * NOTE: if you change this structure, you also need to update the
+ * std() initializer in findfp.c.
+ */
+typedef	struct __sFILE {
+	unsigned char *_p;	/* current position in (some) buffer */
+	int	_r;		/* read space left for getc() */
+	int	_w;		/* write space left for putc() */
+	short	_flags;		/* flags, below; this FILE is free if 0 */
+	short	_file;		/* fileno, if Unix descriptor, else -1 */
+	struct	__sbuf _bf;	/* the buffer (at least 1 byte, if !NULL) */
+	int	_lbfsize;	/* 0 or -_bf._size, for inline putc */
+
+	/* operations */
+	void	*_cookie;	/* cookie passed to io functions */
+	int	(*_close)(void *);
+	int	(*_read)(void *, char *, int);
+	fpos_t	(*_seek)(void *, fpos_t, int);
+	int	(*_write)(void *, const char *, int);
+
+	/* extension data, to avoid further ABI breakage */
+	struct	__sbuf _ext;
+	/* data for long sequences of ungetc() */
+	unsigned char *_up;	/* saved _p when _p is doing ungetc data */
+	int	_ur;		/* saved _r when _r is counting ungetc data */
+
+	/* tricks to meet minimum requirements even when malloc() fails */
+	unsigned char _ubuf[3];	/* guarantee an ungetc() buffer */
+	unsigned char _nbuf[1];	/* guarantee a getc() buffer */
+
+	/* separate buffer for fgetln() when line crosses buffer boundary */
+	struct	__sbuf _lb;	/* buffer for fgetln() */
+
+	/* Unix stdio files get aligned to block boundaries on fseek() */
+	int	_blksize;	/* stat.st_blksize (may be != _bf._size) */
+	fpos_t	_offset;	/* current lseek offset */
+} FILE;
+
+__BEGIN_DECLS
+extern FILE __sF[];
+__END_DECLS
+
+#define	__SLBF	0x0001		/* line buffered */
+#define	__SNBF	0x0002		/* unbuffered */
+#define	__SRD	0x0004		/* OK to read */
+#define	__SWR	0x0008		/* OK to write */
+	/* RD and WR are never simultaneously asserted */
+#define	__SRW	0x0010		/* open for reading & writing */
+#define	__SEOF	0x0020		/* found EOF */
+#define	__SERR	0x0040		/* found error */
+#define	__SMBF	0x0080		/* _buf is from malloc */
+#define	__SAPP	0x0100		/* fdopen()ed in append mode */
+#define	__SSTR	0x0200		/* this is an sprintf/snprintf string */
+#define	__SOPT	0x0400		/* do fseek() optimization */
+#define	__SNPT	0x0800		/* do not do fseek() optimization */
+#define	__SOFF	0x1000		/* set iff _offset is in fact correct */
+#define	__SMOD	0x2000		/* true => fgetln modified _p text */
+#define	__SALC	0x4000		/* allocate string space dynamically */
+#define	__SIGN	0x8000		/* ignore this file in _fwalk */
+
+/*
+ * The following three definitions are for ANSI C, which took them
+ * from System V, which brilliantly took internal interface macros and
+ * made them official arguments to setvbuf(), without renaming them.
+ * Hence, these ugly _IOxxx names are *supposed* to appear in user code.
+ *
+ * Although numbered as their counterparts above, the implementation
+ * does not rely on this.
+ */
+#define	_IOFBF	0		/* setvbuf should set fully buffered */
+#define	_IOLBF	1		/* setvbuf should set line buffered */
+#define	_IONBF	2		/* setvbuf should set unbuffered */
+
+#define	BUFSIZ	1024		/* size of buffer used by setbuf */
+#define	EOF	(-1)
+
+/*
+ * FOPEN_MAX is a minimum maximum, and is the number of streams that
+ * stdio can provide without attempting to allocate further resources
+ * (which could fail).  Do not use this for anything.
+ */
+
+#define	FOPEN_MAX	20	/* must be <= OPEN_MAX <sys/syslimits.h> */
+#define	FILENAME_MAX	1024	/* must be <= PATH_MAX <sys/syslimits.h> */
+
+/* System V/ANSI C; this is the wrong way to do this, do *not* use these. */
+#if __BSD_VISIBLE || __XPG_VISIBLE
+#define	P_tmpdir	"/tmp/"
+#endif
+#define	L_tmpnam	1024	/* XXX must be == PATH_MAX */
+#define	TMP_MAX		308915776
+
+/* Always ensure that these are consistent with <fcntl.h> and <unistd.h>! */
+#ifndef SEEK_SET
+#define	SEEK_SET	0	/* set file offset to offset */
+#endif
+#ifndef SEEK_CUR
+#define	SEEK_CUR	1	/* set file offset to current plus offset */
+#endif
+#ifndef SEEK_END
+#define	SEEK_END	2	/* set file offset to EOF plus offset */
+#endif
+
+#define	stdin	(&__sF[0])
+#define	stdout	(&__sF[1])
+#define	stderr	(&__sF[2])
+
+/*
+ * Functions defined in ANSI C standard.
+ */
+__BEGIN_DECLS
+void	 clearerr(FILE *);
+int	 fclose(FILE *);
+int	 feof(FILE *);
+int	 ferror(FILE *);
+int	 fflush(FILE *);
+int	 fgetc(FILE *);
+char	*fgets(char * __restrict, int, FILE * __restrict);
+FILE	*fopen(const char * __restrict , const char * __restrict);
+int	 fprintf(FILE * __restrict , const char * __restrict, ...)
+		__printflike(2, 3);
+int	 fputc(int, FILE *);
+int	 fputs(const char * __restrict, FILE * __restrict);
+size_t	 fread(void * __restrict, size_t, size_t, FILE * __restrict);
+FILE	*freopen(const char * __restrict, const char * __restrict,
+	    FILE * __restrict);
+int	 fscanf(FILE * __restrict, const char * __restrict, ...)
+		__scanflike(2, 3);
+int	 fseek(FILE *, long, int);
+long	 ftell(FILE *);
+size_t	 fwrite(const void * __restrict, size_t, size_t, FILE * __restrict);
+int	 getc(FILE *);
+int	 getchar(void);
+ssize_t	 getdelim(char ** __restrict, size_t * __restrict, int,
+	    FILE * __restrict);
+ssize_t	 getline(char ** __restrict, size_t * __restrict, FILE * __restrict);
+
+#if __BSD_VISIBLE && !defined(__SYS_ERRLIST)
+#define __SYS_ERRLIST
+extern int sys_nerr;			/* perror(3) external variables */
+extern char *sys_errlist[];
+#endif
+
+void	 perror(const char *);
+int	 printf(const char * __restrict, ...)
+		__printflike(1, 2);
+int	 putc(int, FILE *);
+int	 putchar(int);
+int	 puts(const char *);
+int	 remove(const char *);
+void	 rewind(FILE *);
+int	 scanf(const char * __restrict, ...)
+		__scanflike(1, 2);
+void	 setbuf(FILE * __restrict, char * __restrict);
+int	 setvbuf(FILE * __restrict, char * __restrict, int, size_t);
+int	 sscanf(const char * __restrict, const char * __restrict, ...)
+		__scanflike(2, 3);
+FILE	*tmpfile(void);
+int	 ungetc(int, FILE *);
+int	 vfprintf(FILE * __restrict, const char * __restrict, __va_list)
+		__printflike(2, 0);
+int	 vprintf(const char * __restrict, __va_list)
+		__printflike(1, 0);
+
+int dprintf(int, const char * __restrict, ...) __printflike(2, 3);
+int vdprintf(int, const char * __restrict, __va_list) __printflike(2, 0);
+
+#ifndef __AUDIT__
+#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 201112L
+char* gets(char*) __warnattr("gets is very unsafe; consider using fgets");
+#endif
+int sprintf(char* __restrict, const char* __restrict, ...)
+    __printflike(2, 3); //__warnattr("sprintf is often misused; please use snprintf");
+char* tmpnam(char*) __warnattr("tmpnam possibly used unsafely; consider using mkstemp");
+int vsprintf(char* __restrict, const char* __restrict, __va_list)
+    __printflike(2, 0); //__warnattr("vsprintf is often misused; please use vsnprintf");
+#if __XPG_VISIBLE
+char* tempnam(const char*, const char*)
+    __warnattr("tempnam possibly used unsafely; consider using mkstemp");
+#endif
+#endif
+
+extern int rename(const char*, const char*);
+extern int renameat(int, const char*, int, const char*);
+
+int	 fgetpos(FILE * __restrict, fpos_t * __restrict);
+int	 fsetpos(FILE *, const fpos_t *);
+
+int	 fseeko(FILE *, off_t, int);
+off_t	 ftello(FILE *);
+
+#if __ISO_C_VISIBLE >= 1999 || __BSD_VISIBLE
+int	 snprintf(char * __restrict, size_t, const char * __restrict, ...)
+		__printflike(3, 4);
+int	 vfscanf(FILE * __restrict, const char * __restrict, __va_list)
+		__scanflike(2, 0);
+int	 vscanf(const char *, __va_list)
+		__scanflike(1, 0);
+int	 vsnprintf(char * __restrict, size_t, const char * __restrict, __va_list)
+		__printflike(3, 0);
+int	 vsscanf(const char * __restrict, const char * __restrict, __va_list)
+		__scanflike(2, 0);
+#endif /* __ISO_C_VISIBLE >= 1999 || __BSD_VISIBLE */
+
+__END_DECLS
+
+
+/*
+ * Functions defined in POSIX 1003.1.
+ */
+#if __BSD_VISIBLE || __POSIX_VISIBLE || __XPG_VISIBLE
+#define	L_ctermid	1024	/* size for ctermid(); PATH_MAX */
+
+__BEGIN_DECLS
+#if 0 /* MISSING FROM BIONIC */
+char	*ctermid(char *);
+#endif /* MISSING */
+FILE	*fdopen(int, const char *);
+int	 fileno(FILE *);
+
+#if (__POSIX_VISIBLE >= 199209)
+int	 pclose(FILE *);
+FILE	*popen(const char *, const char *);
+#endif
+
+#if __POSIX_VISIBLE >= 199506
+void	 flockfile(FILE *);
+int	 ftrylockfile(FILE *);
+void	 funlockfile(FILE *);
+
+/*
+ * These are normally used through macros as defined below, but POSIX
+ * requires functions as well.
+ */
+int	 getc_unlocked(FILE *);
+int	 getchar_unlocked(void);
+int	 putc_unlocked(int, FILE *);
+int	 putchar_unlocked(int);
+#endif /* __POSIX_VISIBLE >= 199506 */
+
+__END_DECLS
+
+#endif /* __BSD_VISIBLE || __POSIX_VISIBLE || __XPG_VISIBLE */
+
+/*
+ * Routines that are purely local.
+ */
+#if __BSD_VISIBLE
+__BEGIN_DECLS
+int	 asprintf(char ** __restrict, const char * __restrict, ...)
+		__printflike(2, 3);
+char	*fgetln(FILE * __restrict, size_t * __restrict);
+int	 fpurge(FILE *);
+void	 setbuffer(FILE *, char *, int);
+int	 setlinebuf(FILE *);
+int	 vasprintf(char ** __restrict, const char * __restrict,
+    __va_list)
+		__printflike(2, 0);
+__END_DECLS
+
+/*
+ * Stdio function-access interface.
+ */
+__BEGIN_DECLS
+FILE	*funopen(const void *,
+		int (*)(void *, char *, int),
+		int (*)(void *, const char *, int),
+		fpos_t (*)(void *, fpos_t, int),
+		int (*)(void *));
+__END_DECLS
+#define	fropen(cookie, fn) funopen(cookie, fn, 0, 0, 0)
+#define	fwopen(cookie, fn) funopen(cookie, 0, fn, 0, 0)
+#endif /* __BSD_VISIBLE */
+
+#if defined(__BIONIC_FORTIFY)
+
+__BEGIN_DECLS
+
+__BIONIC_FORTIFY_INLINE
+__printflike(3, 0)
+int vsnprintf(char *dest, size_t size, const char *format, __va_list ap)
+{
+    return __builtin___vsnprintf_chk(dest, size, 0, __bos(dest), format, ap);
+}
+
+__BIONIC_FORTIFY_INLINE
+__printflike(2, 0)
+int vsprintf(char *dest, const char *format, __va_list ap)
+{
+    return __builtin___vsprintf_chk(dest, 0, __bos(dest), format, ap);
+}
+
+#if defined(__clang__)
+  #if !defined(snprintf)
+    #define __wrap_snprintf(dest, size, ...) __builtin___snprintf_chk(dest, size, 0, __bos(dest), __VA_ARGS__)
+    #define snprintf(...) __wrap_snprintf(__VA_ARGS__)
+  #endif
+#else
+__BIONIC_FORTIFY_INLINE
+__printflike(3, 4)
+int snprintf(char *dest, size_t size, const char *format, ...)
+{
+    return __builtin___snprintf_chk(dest, size, 0,
+        __bos(dest), format, __builtin_va_arg_pack());
+}
+#endif
+
+#if defined(__clang__)
+  #if !defined(sprintf)
+    #define __wrap_sprintf(dest, ...) __builtin___sprintf_chk(dest, 0, __bos(dest), __VA_ARGS__)
+    #define sprintf(...) __wrap_sprintf(__VA_ARGS__)
+  #endif
+#else
+__BIONIC_FORTIFY_INLINE
+__printflike(2, 3)
+int sprintf(char *dest, const char *format, ...)
+{
+    return __builtin___sprintf_chk(dest, 0,
+        __bos(dest), format, __builtin_va_arg_pack());
+}
+#endif
+
+extern char* __fgets_chk(char*, int, FILE*, size_t);
+extern char* __fgets_real(char*, int, FILE*) __asm__(__USER_LABEL_PREFIX__ "fgets");
+__errordecl(__fgets_too_big_error, "fgets called with size bigger than buffer");
+__errordecl(__fgets_too_small_error, "fgets called with size less than zero");
+
+#if !defined(__clang__)
+
+__BIONIC_FORTIFY_INLINE
+char *fgets(char* dest, int size, FILE* stream) {
+    size_t bos = __bos(dest);
+
+    // Compiler can prove, at compile time, that the passed in size
+    // is always negative. Force a compiler error.
+    if (__builtin_constant_p(size) && (size < 0)) {
+        __fgets_too_small_error();
+    }
+
+    // Compiler doesn't know destination size. Don't call __fgets_chk
+    if (bos == __BIONIC_FORTIFY_UNKNOWN_SIZE) {
+        return __fgets_real(dest, size, stream);
+    }
+
+    // Compiler can prove, at compile time, that the passed in size
+    // is always <= the actual object size. Don't call __fgets_chk
+    if (__builtin_constant_p(size) && (size <= (int) bos)) {
+        return __fgets_real(dest, size, stream);
+    }
+
+    // Compiler can prove, at compile time, that the passed in size
+    // is always > the actual object size. Force a compiler error.
+    if (__builtin_constant_p(size) && (size > (int) bos)) {
+        __fgets_too_big_error();
+    }
+
+    return __fgets_chk(dest, size, stream, bos);
+}
+
+#endif /* !defined(__clang__) */
+
+__END_DECLS
+
+#endif /* defined(__BIONIC_FORTIFY) */
+
+#endif /* _STDIO_H_ */
diff --git a/ndk/platforms/android-L/include/stdlib.h b/ndk/platforms/android-L/include/stdlib.h
new file mode 100644
index 0000000..266aa5e
--- /dev/null
+++ b/ndk/platforms/android-L/include/stdlib.h
@@ -0,0 +1,179 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+#ifndef _STDLIB_H_
+#define _STDLIB_H_
+
+#include <sys/cdefs.h>
+
+#include <stddef.h>
+#include <string.h>
+#include <alloca.h>
+#include <strings.h>
+#include <memory.h>
+
+__BEGIN_DECLS
+
+#define EXIT_FAILURE 1
+#define EXIT_SUCCESS 0
+
+extern __noreturn void abort(void);
+extern __noreturn void exit(int);
+extern __noreturn void _Exit(int);
+extern int atexit(void (*)(void));
+
+#if __ISO_C_VISIBLE >= 2011 || __cplusplus >= 201103L
+int at_quick_exit(void (*)(void));
+void quick_exit(int) __noreturn;
+#endif
+
+extern char* getenv(const char*);
+extern int putenv(char*);
+extern int setenv(const char*, const char*, int);
+extern int unsetenv(const char*);
+extern int clearenv(void);
+
+extern char* mkdtemp(char*);
+extern char* mktemp(char*) __warnattr("mktemp possibly used unsafely; consider using mkstemp");
+extern int mkstemp(char*);
+extern int mkstemp64(char*);
+
+extern long strtol(const char *, char **, int);
+extern long long strtoll(const char *, char **, int);
+extern unsigned long strtoul(const char *, char **, int);
+extern unsigned long long strtoull(const char *, char **, int);
+
+extern int posix_memalign(void **memptr, size_t alignment, size_t size);
+
+extern double atof(const char*);
+
+extern double strtod(const char*, char**) __LIBC_ABI_PUBLIC__;
+extern float strtof(const char*, char**) __LIBC_ABI_PUBLIC__;
+extern long double strtold(const char*, char**) __LIBC_ABI_PUBLIC__;
+
+extern int atoi(const char*) __purefunc;
+extern long atol(const char*) __purefunc;
+extern long long atoll(const char*) __purefunc;
+
+extern int abs(int) __pure2;
+extern long labs(long) __pure2;
+extern long long llabs(long long) __pure2;
+
+extern char * realpath(const char *path, char *resolved);
+extern int system(const char * string);
+
+extern void * bsearch(const void *key, const void *base0,
+	size_t nmemb, size_t size,
+	int (*compar)(const void *, const void *));
+
+extern void qsort(void *, size_t, size_t, int (*)(const void *, const void *));
+
+extern long jrand48(unsigned short *);
+extern long mrand48(void);
+extern long nrand48(unsigned short *);
+extern long lrand48(void);
+extern unsigned short *seed48(unsigned short*);
+extern double erand48(unsigned short xsubi[3]);
+extern double drand48(void);
+extern void srand48(long);
+extern unsigned int arc4random(void);
+extern void arc4random_stir(void);
+extern void arc4random_addrandom(unsigned char *, int);
+
+#define RAND_MAX 0x7fffffff
+
+/* Work around x86/x86-64 libvpx build breakage caused by postproc_x86.c. */
+#if (defined(__i386__) || defined(__x86_64__)) && defined(rand)
+#undef rand
+#define __rand lrand48
+#endif
+
+int rand(void);
+int rand_r(unsigned int*);
+void srand(unsigned int);
+
+char* initstate(unsigned int, char*, size_t);
+long random(void);
+char* setstate(char*);
+void srandom(unsigned int);
+
+/* Basic PTY functions.  These only work if devpts is mounted! */
+
+extern int    unlockpt(int);
+extern char*  ptsname(int);
+extern int    ptsname_r(int, char*, size_t);
+extern int    getpt(void);
+
+static __inline__ int grantpt(int __fd __attribute((unused)))
+{
+  (void)__fd;
+  return 0;     /* devpts does this all for us! */
+}
+
+typedef struct {
+    int  quot;
+    int  rem;
+} div_t;
+
+extern div_t   div(int, int) __pure2;
+
+typedef struct {
+    long int  quot;
+    long int  rem;
+} ldiv_t;
+
+extern ldiv_t   ldiv(long, long) __pure2;
+
+typedef struct {
+    long long int  quot;
+    long long int  rem;
+} lldiv_t;
+
+extern lldiv_t   lldiv(long long, long long) __pure2;
+
+/* BSD compatibility. */
+extern const char* getprogname(void);
+extern void setprogname(const char*);
+
+/* make STLPort happy */
+extern int      mblen(const char *, size_t);
+extern size_t   mbstowcs(wchar_t *, const char *, size_t);
+extern int      mbtowc(wchar_t *, const char *, size_t);
+
+/* Likewise, make libstdc++-v3 happy.  */
+extern int	wctomb(char *, wchar_t);
+extern size_t	wcstombs(char *, const wchar_t *, size_t);
+
+#define MB_CUR_MAX 4U
+
+#if 0 /* MISSING FROM BIONIC */
+extern int on_exit(void (*)(int, void *), void *);
+#endif /* MISSING */
+
+__END_DECLS
+
+#endif /* _STDLIB_H_ */
diff --git a/ndk/platforms/android-L/include/string.h b/ndk/platforms/android-L/include/string.h
new file mode 100644
index 0000000..7727c0e
--- /dev/null
+++ b/ndk/platforms/android-L/include/string.h
@@ -0,0 +1,323 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+#ifndef _STRING_H_
+#define _STRING_H_
+
+#include <sys/cdefs.h>
+#include <stddef.h>
+#include <malloc.h>
+
+__BEGIN_DECLS
+
+extern void*  memccpy(void* __restrict, const void* __restrict, int, size_t);
+extern void*  memchr(const void *, int, size_t) __purefunc;
+extern void*  memrchr(const void *, int, size_t) __purefunc;
+extern int    memcmp(const void *, const void *, size_t) __purefunc;
+extern void*  memcpy(void* __restrict, const void* __restrict, size_t);
+extern void*  memmove(void *, const void *, size_t);
+extern void*  memset(void *, int, size_t);
+extern void*  memmem(const void *, size_t, const void *, size_t) __purefunc;
+
+extern char*  strchr(const char *, int) __purefunc;
+extern char* __strchr_chk(const char *, int, size_t);
+
+extern char*  strrchr(const char *, int) __purefunc;
+extern char* __strrchr_chk(const char *, int, size_t);
+
+extern size_t strlen(const char *) __purefunc;
+extern size_t __strlen_chk(const char *, size_t);
+extern int    strcmp(const char *, const char *) __purefunc;
+extern char*  stpcpy(char* __restrict, const char* __restrict);
+extern char*  strcpy(char* __restrict, const char* __restrict);
+extern char*  strcat(char* __restrict, const char* __restrict);
+
+extern int    strcasecmp(const char *, const char *) __purefunc;
+extern int    strncasecmp(const char *, const char *, size_t) __purefunc;
+extern char*  strdup(const char *);
+
+extern char*  strstr(const char *, const char *) __purefunc;
+extern char*  strcasestr(const char *haystack, const char *needle) __purefunc;
+extern char*  strtok(char* __restrict, const char* __restrict);
+extern char*  strtok_r(char* __restrict, const char* __restrict, char** __restrict);
+
+extern char*  strerror(int);
+extern int    strerror_r(int errnum, char *buf, size_t n);
+
+extern size_t strnlen(const char *, size_t) __purefunc;
+extern char*  strncat(char* __restrict, const char* __restrict, size_t);
+extern char*  strndup(const char *, size_t);
+extern int    strncmp(const char *, const char *, size_t) __purefunc;
+extern char*  stpncpy(char* __restrict, const char* __restrict, size_t);
+extern char*  strncpy(char* __restrict, const char* __restrict, size_t);
+
+extern size_t strlcat(char* __restrict, const char* __restrict, size_t);
+extern size_t strlcpy(char* __restrict, const char* __restrict, size_t);
+
+extern size_t strcspn(const char *, const char *) __purefunc;
+extern char*  strpbrk(const char *, const char *) __purefunc;
+extern char*  strsep(char** __restrict, const char* __restrict);
+extern size_t strspn(const char *, const char *);
+
+extern char*  strsignal(int  sig);
+
+extern int    strcoll(const char *, const char *) __purefunc;
+extern size_t strxfrm(char* __restrict, const char* __restrict, size_t);
+
+#if defined(__BIONIC_FORTIFY)
+
+__errordecl(__memcpy_dest_size_error, "memcpy: prevented write past end of buffer");
+__errordecl(__memcpy_src_size_error, "memcpy: prevented read past end of buffer");
+
+__BIONIC_FORTIFY_INLINE
+void* memcpy(void* __restrict dest, const void* __restrict src, size_t copy_amount) {
+    char *d = (char *) dest;
+    const char *s = (const char *) src;
+    size_t s_len = __bos0(s);
+    size_t d_len = __bos0(d);
+
+    if (__builtin_constant_p(copy_amount) && (copy_amount > d_len)) {
+        __memcpy_dest_size_error();
+    }
+
+    if (__builtin_constant_p(copy_amount) && (copy_amount > s_len)) {
+        __memcpy_src_size_error();
+    }
+
+    return __builtin___memcpy_chk(dest, src, copy_amount, d_len);
+}
+
+__BIONIC_FORTIFY_INLINE
+void* memmove(void *dest, const void *src, size_t len) {
+    return __builtin___memmove_chk(dest, src, len, __bos0(dest));
+}
+
+__BIONIC_FORTIFY_INLINE
+char* stpcpy(char* __restrict dest, const char* __restrict src) {
+    return __builtin___stpcpy_chk(dest, src, __bos(dest));
+}
+
+__BIONIC_FORTIFY_INLINE
+char* strcpy(char* __restrict dest, const char* __restrict src) {
+    return __builtin___strcpy_chk(dest, src, __bos(dest));
+}
+
+__errordecl(__stpncpy_error, "stpncpy: prevented write past end of buffer");
+extern char* __stpncpy_chk2(char* __restrict, const char* __restrict, size_t, size_t, size_t);
+
+__BIONIC_FORTIFY_INLINE
+char* stpncpy(char* __restrict dest, const char* __restrict src, size_t n) {
+    size_t bos_dest = __bos(dest);
+    size_t bos_src = __bos(src);
+    if (__builtin_constant_p(n) && (n > bos_dest)) {
+        __stpncpy_error();
+    }
+
+    if (bos_src == __BIONIC_FORTIFY_UNKNOWN_SIZE) {
+        return __builtin___stpncpy_chk(dest, src, n, bos_dest);
+    }
+
+    if (__builtin_constant_p(n) && (n <= bos_src)) {
+        return __builtin___stpncpy_chk(dest, src, n, bos_dest);
+    }
+
+    size_t slen = __builtin_strlen(src);
+    if (__builtin_constant_p(slen)) {
+        return __builtin___stpncpy_chk(dest, src, n, bos_dest);
+    }
+
+    return __stpncpy_chk2(dest, src, n, bos_dest, bos_src);
+}
+
+__errordecl(__strncpy_error, "strncpy: prevented write past end of buffer");
+extern char* __strncpy_chk2(char* __restrict, const char* __restrict, size_t, size_t, size_t);
+
+__BIONIC_FORTIFY_INLINE
+char* strncpy(char* __restrict dest, const char* __restrict src, size_t n) {
+    size_t bos_dest = __bos(dest);
+    size_t bos_src = __bos(src);
+    if (__builtin_constant_p(n) && (n > bos_dest)) {
+        __strncpy_error();
+    }
+
+    if (bos_src == __BIONIC_FORTIFY_UNKNOWN_SIZE) {
+        return __builtin___strncpy_chk(dest, src, n, bos_dest);
+    }
+
+    if (__builtin_constant_p(n) && (n <= bos_src)) {
+        return __builtin___strncpy_chk(dest, src, n, bos_dest);
+    }
+
+    size_t slen = __builtin_strlen(src);
+    if (__builtin_constant_p(slen)) {
+        return __builtin___strncpy_chk(dest, src, n, bos_dest);
+    }
+
+    return __strncpy_chk2(dest, src, n, bos_dest, bos_src);
+}
+
+__BIONIC_FORTIFY_INLINE
+char* strcat(char* __restrict dest, const char* __restrict src) {
+    return __builtin___strcat_chk(dest, src, __bos(dest));
+}
+
+__BIONIC_FORTIFY_INLINE
+char *strncat(char* __restrict dest, const char* __restrict src, size_t n) {
+    return __builtin___strncat_chk(dest, src, n, __bos(dest));
+}
+
+__BIONIC_FORTIFY_INLINE
+void* memset(void *s, int c, size_t n) {
+    return __builtin___memset_chk(s, c, n, __bos0(s));
+}
+
+extern size_t __strlcpy_real(char* __restrict, const char* __restrict, size_t)
+    __asm__(__USER_LABEL_PREFIX__ "strlcpy");
+__errordecl(__strlcpy_error, "strlcpy: prevented write past end of buffer");
+extern size_t __strlcpy_chk(char *, const char *, size_t, size_t);
+
+__BIONIC_FORTIFY_INLINE
+size_t strlcpy(char* __restrict dest, const char* __restrict src, size_t size) {
+    size_t bos = __bos(dest);
+
+#if !defined(__clang__)
+    // Compiler doesn't know destination size. Don't call __strlcpy_chk
+    if (bos == __BIONIC_FORTIFY_UNKNOWN_SIZE) {
+        return __strlcpy_real(dest, src, size);
+    }
+
+    // Compiler can prove, at compile time, that the passed in size
+    // is always <= the actual object size. Don't call __strlcpy_chk
+    if (__builtin_constant_p(size) && (size <= bos)) {
+        return __strlcpy_real(dest, src, size);
+    }
+
+    // Compiler can prove, at compile time, that the passed in size
+    // is always > the actual object size. Force a compiler error.
+    if (__builtin_constant_p(size) && (size > bos)) {
+        __strlcpy_error();
+    }
+#endif /* !defined(__clang__) */
+
+    return __strlcpy_chk(dest, src, size, bos);
+}
+
+extern size_t __strlcat_real(char* __restrict, const char* __restrict, size_t)
+    __asm__(__USER_LABEL_PREFIX__ "strlcat");
+__errordecl(__strlcat_error, "strlcat: prevented write past end of buffer");
+extern size_t __strlcat_chk(char* __restrict, const char* __restrict, size_t, size_t);
+
+
+__BIONIC_FORTIFY_INLINE
+size_t strlcat(char* __restrict dest, const char* __restrict src, size_t size) {
+    size_t bos = __bos(dest);
+
+#if !defined(__clang__)
+    // Compiler doesn't know destination size. Don't call __strlcat_chk
+    if (bos == __BIONIC_FORTIFY_UNKNOWN_SIZE) {
+        return __strlcat_real(dest, src, size);
+    }
+
+    // Compiler can prove, at compile time, that the passed in size
+    // is always <= the actual object size. Don't call __strlcat_chk
+    if (__builtin_constant_p(size) && (size <= bos)) {
+        return __strlcat_real(dest, src, size);
+    }
+
+    // Compiler can prove, at compile time, that the passed in size
+    // is always > the actual object size. Force a compiler error.
+    if (__builtin_constant_p(size) && (size > bos)) {
+        __strlcat_error();
+    }
+#endif /* !defined(__clang__) */
+
+    return __strlcat_chk(dest, src, size, bos);
+}
+
+__BIONIC_FORTIFY_INLINE
+size_t strlen(const char *s) {
+    size_t bos = __bos(s);
+
+#if !defined(__clang__)
+    // Compiler doesn't know destination size. Don't call __strlen_chk
+    if (bos == __BIONIC_FORTIFY_UNKNOWN_SIZE) {
+        return __builtin_strlen(s);
+    }
+
+    size_t slen = __builtin_strlen(s);
+    if (__builtin_constant_p(slen)) {
+        return slen;
+    }
+#endif /* !defined(__clang__) */
+
+    return __strlen_chk(s, bos);
+}
+
+__BIONIC_FORTIFY_INLINE
+char* strchr(const char *s, int c) {
+    size_t bos = __bos(s);
+
+#if !defined(__clang__)
+    // Compiler doesn't know destination size. Don't call __strchr_chk
+    if (bos == __BIONIC_FORTIFY_UNKNOWN_SIZE) {
+        return __builtin_strchr(s, c);
+    }
+
+    size_t slen = __builtin_strlen(s);
+    if (__builtin_constant_p(slen) && (slen < bos)) {
+        return __builtin_strchr(s, c);
+    }
+#endif /* !defined(__clang__) */
+
+    return __strchr_chk(s, c, bos);
+}
+
+__BIONIC_FORTIFY_INLINE
+char* strrchr(const char *s, int c) {
+    size_t bos = __bos(s);
+
+#if !defined(__clang__)
+    // Compiler doesn't know destination size. Don't call __strrchr_chk
+    if (bos == __BIONIC_FORTIFY_UNKNOWN_SIZE) {
+        return __builtin_strrchr(s, c);
+    }
+
+    size_t slen = __builtin_strlen(s);
+    if (__builtin_constant_p(slen) && (slen < bos)) {
+        return __builtin_strrchr(s, c);
+    }
+#endif /* !defined(__clang__) */
+
+    return __strrchr_chk(s, c, bos);
+}
+
+
+#endif /* defined(__BIONIC_FORTIFY) */
+
+__END_DECLS
+
+#endif /* _STRING_H_ */
diff --git a/ndk/platforms/android-L/include/strings.h b/ndk/platforms/android-L/include/strings.h
new file mode 100644
index 0000000..c4d5f6c
--- /dev/null
+++ b/ndk/platforms/android-L/include/strings.h
@@ -0,0 +1,55 @@
+/*	$NetBSD: strings.h,v 1.10 2005/02/03 04:39:32 perry Exp $	*/
+
+/*-
+ * Copyright (c) 1998 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Klaus Klein.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *        This product includes software developed by the NetBSD
+ *        Foundation, Inc. and its contributors.
+ * 4. Neither the name of The NetBSD Foundation nor the names of its
+ *    contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _STRINGS_H_
+#define _STRINGS_H_
+
+#include <sys/types.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+#define bcopy(b1, b2, len) (void)(memmove((b2), (b1), (len)))
+#define bzero(b, len) (void)(memset((b), '\0', (len)))
+
+int	 ffs(int);
+int	 strcasecmp(const char *, const char *);
+int	 strncasecmp(const char *, const char *, size_t);
+
+__END_DECLS
+
+#endif /* !defined(_STRINGS_H_) */
diff --git a/ndk/platforms/android-20/include/sys/auxv.h b/ndk/platforms/android-L/include/sys/auxv.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/auxv.h
rename to ndk/platforms/android-L/include/sys/auxv.h
diff --git a/ndk/platforms/android-20/include/sys/cachectl.h b/ndk/platforms/android-L/include/sys/cachectl.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/cachectl.h
rename to ndk/platforms/android-L/include/sys/cachectl.h
diff --git a/ndk/platforms/android-20/include/sys/capability.h b/ndk/platforms/android-L/include/sys/capability.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/capability.h
rename to ndk/platforms/android-L/include/sys/capability.h
diff --git a/ndk/platforms/android-L/include/sys/cdefs.h b/ndk/platforms/android-L/include/sys/cdefs.h
new file mode 100644
index 0000000..9c92a1c
--- /dev/null
+++ b/ndk/platforms/android-L/include/sys/cdefs.h
@@ -0,0 +1,593 @@
+/*	$NetBSD: cdefs.h,v 1.58 2004/12/11 05:59:00 christos Exp $	*/
+
+/*
+ * Copyright (c) 1991, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * Berkeley Software Design, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)cdefs.h	8.8 (Berkeley) 1/9/95
+ */
+
+#ifndef	_SYS_CDEFS_H_
+#define	_SYS_CDEFS_H_
+
+/*
+ * Testing against Clang-specific extensions.
+ */
+
+#ifndef __has_extension
+#define __has_extension         __has_feature
+#endif
+#ifndef __has_feature
+#define __has_feature(x)        0
+#endif
+#ifndef __has_include
+#define __has_include(x)        0
+#endif
+#ifndef __has_builtin
+#define __has_builtin(x)        0
+#endif
+
+
+/*
+ * Macro to test if we're using a GNU C compiler of a specific vintage
+ * or later, for e.g. features that appeared in a particular version
+ * of GNU C.  Usage:
+ *
+ *	#if __GNUC_PREREQ__(major, minor)
+ *	...cool feature...
+ *	#else
+ *	...delete feature...
+ *	#endif
+ */
+#ifdef __GNUC__
+#define	__GNUC_PREREQ__(x, y)						\
+	((__GNUC__ == (x) && __GNUC_MINOR__ >= (y)) ||			\
+	 (__GNUC__ > (x)))
+#else
+#define	__GNUC_PREREQ__(x, y)	0
+#endif
+
+#include <sys/cdefs_elf.h>
+
+#if defined(__cplusplus)
+#define	__BEGIN_DECLS		extern "C" {
+#define	__END_DECLS		}
+#define	__static_cast(x,y)	static_cast<x>(y)
+#else
+#define	__BEGIN_DECLS
+#define	__END_DECLS
+#define	__static_cast(x,y)	(x)y
+#endif
+
+/*
+ * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+ * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+ * The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+ * in between its arguments.  __CONCAT can also concatenate double-quoted
+ * strings produced by the __STRING macro, but this only works with ANSI C.
+ */
+
+#define	___STRING(x)	__STRING(x)
+#define	___CONCAT(x,y)	__CONCAT(x,y)
+
+#if defined(__STDC__) || defined(__cplusplus)
+#define	__P(protos)	protos		/* full-blown ANSI C */
+#define	__CONCAT(x,y)	x ## y
+#define	__STRING(x)	#x
+
+#define	__const		const		/* define reserved names to standard */
+#define	__signed	signed
+#define	__volatile	volatile
+#if defined(__cplusplus)
+#define	__inline	inline		/* convert to C++ keyword */
+#else
+#if !defined(__GNUC__) && !defined(__lint__)
+#define	__inline			/* delete GCC keyword */
+#endif /* !__GNUC__  && !__lint__ */
+#endif /* !__cplusplus */
+
+#else	/* !(__STDC__ || __cplusplus) */
+#define	__P(protos)	()		/* traditional C preprocessor */
+#define	__CONCAT(x,y)	x/**/y
+#define	__STRING(x)	"x"
+
+#ifndef __GNUC__
+#define	__const				/* delete pseudo-ANSI C keywords */
+#define	__inline
+#define	__signed
+#define	__volatile
+#endif	/* !__GNUC__ */
+
+/*
+ * In non-ANSI C environments, new programs will want ANSI-only C keywords
+ * deleted from the program and old programs will want them left alone.
+ * Programs using the ANSI C keywords const, inline etc. as normal
+ * identifiers should define -DNO_ANSI_KEYWORDS.
+ */
+#ifndef	NO_ANSI_KEYWORDS
+#define	const		__const		/* convert ANSI C keywords */
+#define	inline		__inline
+#define	signed		__signed
+#define	volatile	__volatile
+#endif /* !NO_ANSI_KEYWORDS */
+#endif	/* !(__STDC__ || __cplusplus) */
+
+/*
+ * Used for internal auditing of the NetBSD source tree.
+ */
+#ifdef __AUDIT__
+#define	__aconst	__const
+#else
+#define	__aconst
+#endif
+
+/*
+ * The following macro is used to remove const cast-away warnings
+ * from gcc -Wcast-qual; it should be used with caution because it
+ * can hide valid errors; in particular most valid uses are in
+ * situations where the API requires it, not to cast away string
+ * constants. We don't use *intptr_t on purpose here and we are
+ * explicit about unsigned long so that we don't have additional
+ * dependencies.
+ */
+#define __UNCONST(a)	((void *)(unsigned long)(const void *)(a))
+
+/*
+ * GCC2 provides __extension__ to suppress warnings for various GNU C
+ * language extensions under "-ansi -pedantic".
+ */
+#if !__GNUC_PREREQ__(2, 0)
+#define	__extension__		/* delete __extension__ if non-gcc or gcc1 */
+#endif
+
+/*
+ * GCC1 and some versions of GCC2 declare dead (non-returning) and
+ * pure (no side effects) functions using "volatile" and "const";
+ * unfortunately, these then cause warnings under "-ansi -pedantic".
+ * GCC2 uses a new, peculiar __attribute__((attrs)) style.  All of
+ * these work for GNU C++ (modulo a slight glitch in the C++ grammar
+ * in the distribution version of 2.5.5).
+ */
+#if !__GNUC_PREREQ__(2, 5)
+#define	__attribute__(x)	/* delete __attribute__ if non-gcc or gcc1 */
+#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
+#define	__dead		__volatile
+#define	__pure		__const
+#endif
+#endif
+
+/* Delete pseudo-keywords wherever they are not available or needed. */
+#ifndef __dead
+#define	__dead
+#define	__pure
+#endif
+
+#if __GNUC_PREREQ__(2, 7)
+#define	__unused	__attribute__((__unused__))
+#else
+#define	__unused	/* delete */
+#endif
+
+#define __pure2 __attribute__((__const__)) /* Android-added: used by FreeBSD libm */
+
+#if __GNUC_PREREQ__(3, 1)
+#define	__used		__attribute__((__used__))
+#else
+#define	__used		/* delete */
+#endif
+
+#if __GNUC_PREREQ__(2, 7)
+#define	__packed	__attribute__((__packed__))
+#define	__aligned(x)	__attribute__((__aligned__(x)))
+#define	__section(x)	__attribute__((__section__(x)))
+#elif defined(__lint__)
+#define	__packed	/* delete */
+#define	__aligned(x)	/* delete */
+#define	__section(x)	/* delete */
+#else
+#define	__packed	error: no __packed for this compiler
+#define	__aligned(x)	error: no __aligned for this compiler
+#define	__section(x)	error: no __section for this compiler
+#endif
+
+#if !__GNUC_PREREQ__(2, 8)
+#define	__extension__
+#endif
+
+#if __GNUC_PREREQ__(2, 8)
+#define __statement(x)	__extension__(x)
+#elif defined(lint)
+#define __statement(x)	(0)
+#else
+#define __statement(x)	(x)
+#endif
+
+#define __nonnull(args) __attribute__((__nonnull__ args))
+
+#define __printflike(x, y) __attribute__((__format__(printf, x, y))) __nonnull((x))
+#define __scanflike(x, y) __attribute__((__format__(scanf, x, y))) __nonnull((x))
+
+/*
+ * C99 defines the restrict type qualifier keyword, which was made available
+ * in GCC 2.92.
+ */
+#if defined(__STDC__VERSION__) && __STDC_VERSION__ >= 199901L
+#define	__restrict	restrict
+#else
+#if !__GNUC_PREREQ__(2, 92)
+#define	__restrict	/* delete __restrict when not supported */
+#endif
+#endif
+
+/*
+ * C99 defines __func__ predefined identifier, which was made available
+ * in GCC 2.95.
+ */
+#if !defined(__STDC_VERSION__) || !(__STDC_VERSION__ >= 199901L)
+#if __GNUC_PREREQ__(2, 6)
+#define	__func__	__PRETTY_FUNCTION__
+#elif __GNUC_PREREQ__(2, 4)
+#define	__func__	__FUNCTION__
+#else
+#define	__func__	""
+#endif
+#endif /* !(__STDC_VERSION__ >= 199901L) */
+
+#if defined(_KERNEL)
+#if defined(NO_KERNEL_RCSIDS)
+#undef __KERNEL_RCSID
+#define	__KERNEL_RCSID(_n, _s)		/* nothing */
+#endif /* NO_KERNEL_RCSIDS */
+#endif /* _KERNEL */
+
+#if !defined(_STANDALONE) && !defined(_KERNEL)
+#ifdef __GNUC__
+#define	__RENAME(x)	___RENAME(x)
+#else
+#ifdef __lint__
+#define	__RENAME(x)	__symbolrename(x)
+#else
+#error "No function renaming possible"
+#endif /* __lint__ */
+#endif /* __GNUC__ */
+#else /* _STANDALONE || _KERNEL */
+#define	__RENAME(x)	no renaming in kernel or standalone environment
+#endif
+
+/*
+ * A barrier to stop the optimizer from moving code or assume live
+ * register values. This is gcc specific, the version is more or less
+ * arbitrary, might work with older compilers.
+ */
+#if __GNUC_PREREQ__(2, 95)
+#define	__insn_barrier()	__asm __volatile("":::"memory")
+#else
+#define	__insn_barrier()	/* */
+#endif
+
+/*
+ * GNU C version 2.96 adds explicit branch prediction so that
+ * the CPU back-end can hint the processor and also so that
+ * code blocks can be reordered such that the predicted path
+ * sees a more linear flow, thus improving cache behavior, etc.
+ *
+ * The following two macros provide us with a way to use this
+ * compiler feature.  Use __predict_true() if you expect the expression
+ * to evaluate to true, and __predict_false() if you expect the
+ * expression to evaluate to false.
+ *
+ * A few notes about usage:
+ *
+ *	* Generally, __predict_false() error condition checks (unless
+ *	  you have some _strong_ reason to do otherwise, in which case
+ *	  document it), and/or __predict_true() `no-error' condition
+ *	  checks, assuming you want to optimize for the no-error case.
+ *
+ *	* Other than that, if you don't know the likelihood of a test
+ *	  succeeding from empirical or other `hard' evidence, don't
+ *	  make predictions.
+ *
+ *	* These are meant to be used in places that are run `a lot'.
+ *	  It is wasteful to make predictions in code that is run
+ *	  seldomly (e.g. at subsystem initialization time) as the
+ *	  basic block reordering that this affects can often generate
+ *	  larger code.
+ */
+#if __GNUC_PREREQ__(2, 96)
+#define	__predict_true(exp)	__builtin_expect((exp) != 0, 1)
+#define	__predict_false(exp)	__builtin_expect((exp) != 0, 0)
+#else
+#define	__predict_true(exp)	(exp)
+#define	__predict_false(exp)	(exp)
+#endif
+
+#if __GNUC_PREREQ__(2, 96)
+#define __noreturn    __attribute__((__noreturn__))
+#define __mallocfunc  __attribute__((malloc))
+#define __purefunc    __attribute__((pure))
+#else
+#define __noreturn
+#define __mallocfunc
+#define __purefunc
+#endif
+
+#if __GNUC_PREREQ__(3, 1)
+#define __always_inline __attribute__((__always_inline__))
+#else
+#define __always_inline
+#endif
+
+#if __GNUC_PREREQ__(3, 4)
+#define __wur __attribute__((__warn_unused_result__))
+#else
+#define __wur
+#endif
+
+#if __GNUC_PREREQ__(4, 3)
+#define __errordecl(name, msg) extern void name(void) __attribute__((__error__(msg)))
+#define __warnattr(msg) __attribute__((__warning__(msg)))
+#else
+#define __errordecl(name, msg) extern void name(void)
+#define __warnattr(msg)
+#endif
+
+/*
+ * Macros for manipulating "link sets".  Link sets are arrays of pointers
+ * to objects, which are gathered up by the linker.
+ *
+ * Object format-specific code has provided us with the following macros:
+ *
+ *	__link_set_add_text(set, sym)
+ *		Add a reference to the .text symbol `sym' to `set'.
+ *
+ *	__link_set_add_rodata(set, sym)
+ *		Add a reference to the .rodata symbol `sym' to `set'.
+ *
+ *	__link_set_add_data(set, sym)
+ *		Add a reference to the .data symbol `sym' to `set'.
+ *
+ *	__link_set_add_bss(set, sym)
+ *		Add a reference to the .bss symbol `sym' to `set'.
+ *
+ *	__link_set_decl(set, ptype)
+ *		Provide an extern declaration of the set `set', which
+ *		contains an array of the pointer type `ptype'.  This
+ *		macro must be used by any code which wishes to reference
+ *		the elements of a link set.
+ *
+ *	__link_set_start(set)
+ *		This points to the first slot in the link set.
+ *
+ *	__link_set_end(set)
+ *		This points to the (non-existent) slot after the last
+ *		entry in the link set.
+ *
+ *	__link_set_count(set)
+ *		Count the number of entries in link set `set'.
+ *
+ * In addition, we provide the following macros for accessing link sets:
+ *
+ *	__link_set_foreach(pvar, set)
+ *		Iterate over the link set `set'.  Because a link set is
+ *		an array of pointers, pvar must be declared as "type **pvar",
+ *		and the actual entry accessed as "*pvar".
+ *
+ *	__link_set_entry(set, idx)
+ *		Access the link set entry at index `idx' from set `set'.
+ */
+#define	__link_set_foreach(pvar, set)					\
+	for (pvar = __link_set_start(set); pvar < __link_set_end(set); pvar++)
+
+#define	__link_set_entry(set, idx)	(__link_set_begin(set)[idx])
+
+/*
+ * Some of the FreeBSD sources used in Bionic need this.
+ * Originally, this is used to embed the rcs versions of each source file
+ * in the generated binary. We certainly don't want this in Bionic.
+ */
+#define __FBSDID(s) /* nothing */
+
+/*-
+ * The following definitions are an extension of the behavior originally
+ * implemented in <sys/_posix.h>, but with a different level of granularity.
+ * POSIX.1 requires that the macros we test be defined before any standard
+ * header file is included.
+ *
+ * Here's a quick run-down of the versions:
+ *  defined(_POSIX_SOURCE)		1003.1-1988
+ *  _POSIX_C_SOURCE == 1		1003.1-1990
+ *  _POSIX_C_SOURCE == 2		1003.2-1992 C Language Binding Option
+ *  _POSIX_C_SOURCE == 199309		1003.1b-1993
+ *  _POSIX_C_SOURCE == 199506		1003.1c-1995, 1003.1i-1995,
+ *					and the omnibus ISO/IEC 9945-1: 1996
+ *  _POSIX_C_SOURCE == 200112		1003.1-2001
+ *  _POSIX_C_SOURCE == 200809		1003.1-2008
+ *
+ * In addition, the X/Open Portability Guide, which is now the Single UNIX
+ * Specification, defines a feature-test macro which indicates the version of
+ * that specification, and which subsumes _POSIX_C_SOURCE.
+ *
+ * Our macros begin with two underscores to avoid namespace screwage.
+ */
+
+/* Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. */
+#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE == 1
+#undef _POSIX_C_SOURCE		/* Probably illegal, but beyond caring now. */
+#define	_POSIX_C_SOURCE		199009
+#endif
+
+/* Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2. */
+#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE == 2
+#undef _POSIX_C_SOURCE
+#define	_POSIX_C_SOURCE		199209
+#endif
+
+/* Deal with various X/Open Portability Guides and Single UNIX Spec. */
+#ifdef _XOPEN_SOURCE
+#if _XOPEN_SOURCE - 0 >= 700
+#define	__XSI_VISIBLE		700
+#undef _POSIX_C_SOURCE
+#define	_POSIX_C_SOURCE		200809
+#elif _XOPEN_SOURCE - 0 >= 600
+#define	__XSI_VISIBLE		600
+#undef _POSIX_C_SOURCE
+#define	_POSIX_C_SOURCE		200112
+#elif _XOPEN_SOURCE - 0 >= 500
+#define	__XSI_VISIBLE		500
+#undef _POSIX_C_SOURCE
+#define	_POSIX_C_SOURCE		199506
+#endif
+#endif
+
+/*
+ * Deal with all versions of POSIX.  The ordering relative to the tests above is
+ * important.
+ */
+#if defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE)
+#define	_POSIX_C_SOURCE		198808
+#endif
+#ifdef _POSIX_C_SOURCE
+#if _POSIX_C_SOURCE >= 200809
+#define	__POSIX_VISIBLE		200809
+#define	__ISO_C_VISIBLE		1999
+#elif _POSIX_C_SOURCE >= 200112
+#define	__POSIX_VISIBLE		200112
+#define	__ISO_C_VISIBLE		1999
+#elif _POSIX_C_SOURCE >= 199506
+#define	__POSIX_VISIBLE		199506
+#define	__ISO_C_VISIBLE		1990
+#elif _POSIX_C_SOURCE >= 199309
+#define	__POSIX_VISIBLE		199309
+#define	__ISO_C_VISIBLE		1990
+#elif _POSIX_C_SOURCE >= 199209
+#define	__POSIX_VISIBLE		199209
+#define	__ISO_C_VISIBLE		1990
+#elif _POSIX_C_SOURCE >= 199009
+#define	__POSIX_VISIBLE		199009
+#define	__ISO_C_VISIBLE		1990
+#else
+#define	__POSIX_VISIBLE		198808
+#define	__ISO_C_VISIBLE		0
+#endif /* _POSIX_C_SOURCE */
+#else
+/*-
+ * Deal with _ANSI_SOURCE:
+ * If it is defined, and no other compilation environment is explicitly
+ * requested, then define our internal feature-test macros to zero.  This
+ * makes no difference to the preprocessor (undefined symbols in preprocessing
+ * expressions are defined to have value zero), but makes it more convenient for
+ * a test program to print out the values.
+ *
+ * If a program mistakenly defines _ANSI_SOURCE and some other macro such as
+ * _POSIX_C_SOURCE, we will assume that it wants the broader compilation
+ * environment (and in fact we will never get here).
+ */
+#if defined(_ANSI_SOURCE)	/* Hide almost everything. */
+#define	__POSIX_VISIBLE		0
+#define	__XSI_VISIBLE		0
+#define	__BSD_VISIBLE		0
+#define	__ISO_C_VISIBLE		1990
+#elif defined(_C99_SOURCE)	/* Localism to specify strict C99 env. */
+#define	__POSIX_VISIBLE		0
+#define	__XSI_VISIBLE		0
+#define	__BSD_VISIBLE		0
+#define	__ISO_C_VISIBLE		1999
+#else				/* Default environment: show everything. */
+#define	__POSIX_VISIBLE		200809
+#define	__XSI_VISIBLE		700
+#define	__BSD_VISIBLE		1
+#define	__ISO_C_VISIBLE		1999
+#endif
+#endif
+
+/*
+ * Default values.
+ */
+#ifndef __XPG_VISIBLE
+# define __XPG_VISIBLE          700
+#endif
+#ifndef __POSIX_VISIBLE
+# define __POSIX_VISIBLE        200809
+#endif
+#ifndef __ISO_C_VISIBLE
+# define __ISO_C_VISIBLE        1999
+#endif
+#ifndef __BSD_VISIBLE
+# define __BSD_VISIBLE          1
+#endif
+
+#define  __BIONIC__   1
+#include <android/api-level.h>
+
+/* glibc compatibility. */
+#if __LP64__
+#define __WORDSIZE 64
+#else
+#define __WORDSIZE 32
+#endif
+
+/*
+ * When _FORTIFY_SOURCE is defined, automatic bounds checking is
+ * added to commonly used libc functions. If a buffer overrun is
+ * detected, the program is safely aborted.
+ *
+ * See
+ * http://gcc.gnu.org/onlinedocs/gcc/Object-Size-Checking.html for details.
+ */
+#if defined(_FORTIFY_SOURCE) && _FORTIFY_SOURCE > 0 && defined(__OPTIMIZE__) && __OPTIMIZE__ > 0
+#define __BIONIC_FORTIFY 1
+#if _FORTIFY_SOURCE == 2
+#define __bos(s) __builtin_object_size((s), 1)
+#else
+#define __bos(s) __builtin_object_size((s), 0)
+#endif
+#define __bos0(s) __builtin_object_size((s), 0)
+
+#define __BIONIC_FORTIFY_INLINE \
+    extern __inline__ \
+    __attribute__ ((always_inline)) \
+    __attribute__ ((gnu_inline))
+#endif
+#define __BIONIC_FORTIFY_UNKNOWN_SIZE ((size_t) -1)
+
+
+#if defined(__ANDROID__) && !defined(__LP64__) && defined( __arm__)
+#define __NDK_FPABI__ __attribute__((pcs("aapcs")))
+#else
+#define __NDK_FPABI__
+#endif
+
+#if (!defined(_NDK_MATH_NO_SOFTFP) || _NDK_MATH_NO_SOFTFP != 1) && !defined(__clang__)
+#define __NDK_FPABI_MATH__ __NDK_FPABI__
+#else
+#define __NDK_FPABI_MATH__  /* nothing */
+#endif
+
+#endif /* !_SYS_CDEFS_H_ */
diff --git a/ndk/platforms/android-20/include/sys/cdefs_elf.h b/ndk/platforms/android-L/include/sys/cdefs_elf.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/cdefs_elf.h
rename to ndk/platforms/android-L/include/sys/cdefs_elf.h
diff --git a/ndk/platforms/android-20/include/sys/endian.h b/ndk/platforms/android-L/include/sys/endian.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/endian.h
rename to ndk/platforms/android-L/include/sys/endian.h
diff --git a/ndk/platforms/android-20/include/sys/epoll.h b/ndk/platforms/android-L/include/sys/epoll.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/epoll.h
rename to ndk/platforms/android-L/include/sys/epoll.h
diff --git a/ndk/platforms/android-20/include/sys/errno.h b/ndk/platforms/android-L/include/sys/errno.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/errno.h
rename to ndk/platforms/android-L/include/sys/errno.h
diff --git a/ndk/platforms/android-20/include/sys/eventfd.h b/ndk/platforms/android-L/include/sys/eventfd.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/eventfd.h
rename to ndk/platforms/android-L/include/sys/eventfd.h
diff --git a/ndk/platforms/android-20/include/sys/file.h b/ndk/platforms/android-L/include/sys/file.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/file.h
rename to ndk/platforms/android-L/include/sys/file.h
diff --git a/ndk/platforms/android-20/include/sys/fsuid.h b/ndk/platforms/android-L/include/sys/fsuid.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/fsuid.h
rename to ndk/platforms/android-L/include/sys/fsuid.h
diff --git a/ndk/platforms/android-20/include/sys/glibc-syscalls.h b/ndk/platforms/android-L/include/sys/glibc-syscalls.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/glibc-syscalls.h
rename to ndk/platforms/android-L/include/sys/glibc-syscalls.h
diff --git a/ndk/platforms/android-20/include/sys/inotify.h b/ndk/platforms/android-L/include/sys/inotify.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/inotify.h
rename to ndk/platforms/android-L/include/sys/inotify.h
diff --git a/ndk/platforms/android-L/include/sys/ioctl.h b/ndk/platforms/android-L/include/sys/ioctl.h
new file mode 100644
index 0000000..a1014dc
--- /dev/null
+++ b/ndk/platforms/android-L/include/sys/ioctl.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+#ifndef _SYS_IOCTL_H_
+#define _SYS_IOCTL_H_
+
+#include <sys/cdefs.h>
+#include <linux/ioctl.h>
+/*
+ * NetBSD and glibc's <sys/ioctl.h> provide some of the
+ * terminal-related ioctl data structures such as struct winsize.
+ */
+#include <linux/termios.h>
+#include <asm/ioctls.h>
+#include <asm/termbits.h>
+#include <sys/ioctl_compat.h>
+#include <linux/tty.h>
+
+__BEGIN_DECLS
+
+extern int ioctl(int, int, ...);
+
+__END_DECLS
+
+#endif /* _SYS_IOCTL_H_ */
diff --git a/ndk/platforms/android-20/include/sys/ioctl_compat.h b/ndk/platforms/android-L/include/sys/ioctl_compat.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/ioctl_compat.h
rename to ndk/platforms/android-L/include/sys/ioctl_compat.h
diff --git a/ndk/platforms/android-20/include/sys/ipc.h b/ndk/platforms/android-L/include/sys/ipc.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/ipc.h
rename to ndk/platforms/android-L/include/sys/ipc.h
diff --git a/ndk/platforms/android-20/include/sys/klog.h b/ndk/platforms/android-L/include/sys/klog.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/klog.h
rename to ndk/platforms/android-L/include/sys/klog.h
diff --git a/ndk/platforms/android-20/include/sys/limits.h b/ndk/platforms/android-L/include/sys/limits.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/limits.h
rename to ndk/platforms/android-L/include/sys/limits.h
diff --git a/ndk/platforms/android-20/include/sys/mman.h b/ndk/platforms/android-L/include/sys/mman.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/mman.h
rename to ndk/platforms/android-L/include/sys/mman.h
diff --git a/ndk/platforms/android-20/include/sys/mount.h b/ndk/platforms/android-L/include/sys/mount.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/mount.h
rename to ndk/platforms/android-L/include/sys/mount.h
diff --git a/ndk/platforms/android-20/include/sys/msg.h b/ndk/platforms/android-L/include/sys/msg.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/msg.h
rename to ndk/platforms/android-L/include/sys/msg.h
diff --git a/ndk/platforms/android-20/include/sys/param.h b/ndk/platforms/android-L/include/sys/param.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/param.h
rename to ndk/platforms/android-L/include/sys/param.h
diff --git a/ndk/platforms/android-20/include/sys/personality.h b/ndk/platforms/android-L/include/sys/personality.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/personality.h
rename to ndk/platforms/android-L/include/sys/personality.h
diff --git a/ndk/platforms/android-20/include/sys/poll.h b/ndk/platforms/android-L/include/sys/poll.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/poll.h
rename to ndk/platforms/android-L/include/sys/poll.h
diff --git a/ndk/platforms/android-20/include/sys/prctl.h b/ndk/platforms/android-L/include/sys/prctl.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/prctl.h
rename to ndk/platforms/android-L/include/sys/prctl.h
diff --git a/ndk/platforms/android-20/include/sys/ptrace.h b/ndk/platforms/android-L/include/sys/ptrace.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/ptrace.h
rename to ndk/platforms/android-L/include/sys/ptrace.h
diff --git a/ndk/platforms/android-20/include/sys/queue.h b/ndk/platforms/android-L/include/sys/queue.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/queue.h
rename to ndk/platforms/android-L/include/sys/queue.h
diff --git a/ndk/platforms/android-20/include/sys/reboot.h b/ndk/platforms/android-L/include/sys/reboot.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/reboot.h
rename to ndk/platforms/android-L/include/sys/reboot.h
diff --git a/ndk/platforms/android-20/include/sys/reg.h b/ndk/platforms/android-L/include/sys/reg.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/reg.h
rename to ndk/platforms/android-L/include/sys/reg.h
diff --git a/ndk/platforms/android-20/include/sys/resource.h b/ndk/platforms/android-L/include/sys/resource.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/resource.h
rename to ndk/platforms/android-L/include/sys/resource.h
diff --git a/ndk/platforms/android-20/include/sys/select.h b/ndk/platforms/android-L/include/sys/select.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/select.h
rename to ndk/platforms/android-L/include/sys/select.h
diff --git a/ndk/platforms/android-20/include/sys/sem.h b/ndk/platforms/android-L/include/sys/sem.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/sem.h
rename to ndk/platforms/android-L/include/sys/sem.h
diff --git a/ndk/platforms/android-20/include/sys/sendfile.h b/ndk/platforms/android-L/include/sys/sendfile.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/sendfile.h
rename to ndk/platforms/android-L/include/sys/sendfile.h
diff --git a/ndk/platforms/android-20/include/sys/sha1.h b/ndk/platforms/android-L/include/sys/sha1.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/sha1.h
rename to ndk/platforms/android-L/include/sys/sha1.h
diff --git a/ndk/platforms/android-20/include/sys/shm.h b/ndk/platforms/android-L/include/sys/shm.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/shm.h
rename to ndk/platforms/android-L/include/sys/shm.h
diff --git a/ndk/platforms/android-20/include/sys/signal.h b/ndk/platforms/android-L/include/sys/signal.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/signal.h
rename to ndk/platforms/android-L/include/sys/signal.h
diff --git a/ndk/platforms/android-20/include/sys/signalfd.h b/ndk/platforms/android-L/include/sys/signalfd.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/signalfd.h
rename to ndk/platforms/android-L/include/sys/signalfd.h
diff --git a/ndk/platforms/android-20/include/sys/socket.h b/ndk/platforms/android-L/include/sys/socket.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/socket.h
rename to ndk/platforms/android-L/include/sys/socket.h
diff --git a/ndk/platforms/android-20/include/sys/socketcalls.h b/ndk/platforms/android-L/include/sys/socketcalls.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/socketcalls.h
rename to ndk/platforms/android-L/include/sys/socketcalls.h
diff --git a/ndk/platforms/android-20/include/sys/stat.h b/ndk/platforms/android-L/include/sys/stat.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/stat.h
rename to ndk/platforms/android-L/include/sys/stat.h
diff --git a/ndk/platforms/android-20/include/sys/statfs.h b/ndk/platforms/android-L/include/sys/statfs.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/statfs.h
rename to ndk/platforms/android-L/include/sys/statfs.h
diff --git a/ndk/platforms/android-20/include/sys/statvfs.h b/ndk/platforms/android-L/include/sys/statvfs.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/statvfs.h
rename to ndk/platforms/android-L/include/sys/statvfs.h
diff --git a/ndk/platforms/android-20/include/sys/swap.h b/ndk/platforms/android-L/include/sys/swap.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/swap.h
rename to ndk/platforms/android-L/include/sys/swap.h
diff --git a/ndk/platforms/android-20/include/sys/syscall.h b/ndk/platforms/android-L/include/sys/syscall.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/syscall.h
rename to ndk/platforms/android-L/include/sys/syscall.h
diff --git a/ndk/platforms/android-20/include/sys/sysconf.h b/ndk/platforms/android-L/include/sys/sysconf.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/sysconf.h
rename to ndk/platforms/android-L/include/sys/sysconf.h
diff --git a/ndk/platforms/android-20/include/sys/sysinfo.h b/ndk/platforms/android-L/include/sys/sysinfo.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/sysinfo.h
rename to ndk/platforms/android-L/include/sys/sysinfo.h
diff --git a/ndk/platforms/android-20/include/sys/syslimits.h b/ndk/platforms/android-L/include/sys/syslimits.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/syslimits.h
rename to ndk/platforms/android-L/include/sys/syslimits.h
diff --git a/ndk/platforms/android-20/include/sys/sysmacros.h b/ndk/platforms/android-L/include/sys/sysmacros.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/sysmacros.h
rename to ndk/platforms/android-L/include/sys/sysmacros.h
diff --git a/ndk/platforms/android-20/include/sys/system_properties.h b/ndk/platforms/android-L/include/sys/system_properties.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/system_properties.h
rename to ndk/platforms/android-L/include/sys/system_properties.h
diff --git a/ndk/platforms/android-20/include/sys/time.h b/ndk/platforms/android-L/include/sys/time.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/time.h
rename to ndk/platforms/android-L/include/sys/time.h
diff --git a/ndk/platforms/android-20/include/sys/timerfd.h b/ndk/platforms/android-L/include/sys/timerfd.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/timerfd.h
rename to ndk/platforms/android-L/include/sys/timerfd.h
diff --git a/ndk/platforms/android-20/include/sys/times.h b/ndk/platforms/android-L/include/sys/times.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/times.h
rename to ndk/platforms/android-L/include/sys/times.h
diff --git a/ndk/platforms/android-20/include/sys/timex.h b/ndk/platforms/android-L/include/sys/timex.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/timex.h
rename to ndk/platforms/android-L/include/sys/timex.h
diff --git a/ndk/platforms/android-20/include/sys/ttychars.h b/ndk/platforms/android-L/include/sys/ttychars.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/ttychars.h
rename to ndk/platforms/android-L/include/sys/ttychars.h
diff --git a/ndk/platforms/android-20/include/sys/ttydefaults.h b/ndk/platforms/android-L/include/sys/ttydefaults.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/ttydefaults.h
rename to ndk/platforms/android-L/include/sys/ttydefaults.h
diff --git a/ndk/platforms/android-20/include/sys/ttydev.h b/ndk/platforms/android-L/include/sys/ttydev.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/ttydev.h
rename to ndk/platforms/android-L/include/sys/ttydev.h
diff --git a/ndk/platforms/android-20/include/sys/types.h b/ndk/platforms/android-L/include/sys/types.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/types.h
rename to ndk/platforms/android-L/include/sys/types.h
diff --git a/ndk/platforms/android-L/include/sys/ucontext.h b/ndk/platforms/android-L/include/sys/ucontext.h
new file mode 100644
index 0000000..f62380d
--- /dev/null
+++ b/ndk/platforms/android-L/include/sys/ucontext.h
@@ -0,0 +1,293 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _SYS_UCONTEXT_H_
+#define _SYS_UCONTEXT_H_
+
+#include <signal.h>
+#include <sys/user.h>
+
+__BEGIN_DECLS
+
+#if defined(__arm__)
+
+enum {
+  REG_R0 = 0,
+  REG_R1,
+  REG_R2,
+  REG_R3,
+  REG_R4,
+  REG_R5,
+  REG_R6,
+  REG_R7,
+  REG_R8,
+  REG_R9,
+  REG_R10,
+  REG_R11,
+  REG_R12,
+  REG_R13,
+  REG_R14,
+  REG_R15,
+};
+
+#define NGREG 18 /* Like glibc. */
+
+typedef int greg_t;
+typedef greg_t gregset_t[NGREG];
+
+#include <asm/sigcontext.h>
+typedef struct sigcontext mcontext_t;
+
+typedef struct ucontext {
+  unsigned long uc_flags;
+  struct ucontext* uc_link;
+  stack_t uc_stack;
+  mcontext_t uc_mcontext;
+  // Android has a wrong (smaller) sigset_t on ARM.
+  union {
+    sigset_t bionic;
+    uint32_t kernel[2];
+  } uc_sigmask;
+  // The kernel adds extra padding after uc_sigmask to match glibc sigset_t on ARM.
+  char __padding[120];
+  unsigned long uc_regspace[128] __attribute__((__aligned__(8)));
+} ucontext_t;
+
+#elif defined(__aarch64__)
+
+#include <asm/sigcontext.h>
+typedef struct sigcontext mcontext_t;
+
+typedef struct ucontext {
+  unsigned long uc_flags;
+  struct ucontext *uc_link;
+  stack_t uc_stack;
+  sigset_t uc_sigmask;
+  // The kernel adds extra padding after uc_sigmask to match glibc sigset_t on ARM64.
+  char __padding[128 - sizeof(sigset_t)];
+  mcontext_t uc_mcontext;
+} ucontext_t;
+
+#elif defined(__i386__)
+
+enum {
+  REG_GS = 0,
+  REG_FS,
+  REG_ES,
+  REG_DS,
+  REG_EDI,
+  REG_ESI,
+  REG_EBP,
+  REG_ESP,
+  REG_EBX,
+  REG_EDX,
+  REG_ECX,
+  REG_EAX,
+  REG_TRAPNO,
+  REG_ERR,
+  REG_EIP,
+  REG_CS,
+  REG_EFL,
+  REG_UESP,
+  REG_SS,
+  NGREG
+};
+
+typedef int greg_t;
+typedef greg_t gregset_t[NGREG];
+
+struct _libc_fpreg {
+  unsigned short significand[4];
+  unsigned short exponent;
+};
+
+struct _libc_fpstate {
+  unsigned long cw;
+  unsigned long sw;
+  unsigned long tag;
+  unsigned long ipoff;
+  unsigned long cssel;
+  unsigned long dataoff;
+  unsigned long datasel;
+  struct _libc_fpreg _st[8];
+  unsigned long status;
+};
+
+typedef struct _libc_fpstate* fpregset_t;
+
+typedef struct {
+  gregset_t gregs;
+  fpregset_t fpregs;
+  unsigned long oldmask;
+  unsigned long cr2;
+} mcontext_t;
+
+typedef struct ucontext {
+  unsigned long uc_flags;
+  struct ucontext* uc_link;
+  stack_t uc_stack;
+  mcontext_t uc_mcontext;
+  // Android has a wrong (smaller) sigset_t on x86.
+  union {
+    sigset_t bionic;
+    uint32_t kernel[2];
+  } uc_sigmask;
+  struct _libc_fpstate __fpregs_mem;
+} ucontext_t;
+
+#elif defined(__mips__)
+
+/* glibc doesn't have names for MIPS registers. */
+
+#define NGREG 32
+#define NFPREG 32
+
+typedef unsigned long long greg_t;
+typedef greg_t gregset_t[NGREG];
+
+typedef struct fpregset {
+  union {
+    double fp_dregs[NFPREG];
+    struct {
+      float _fp_fregs;
+      unsigned _fp_pad;
+    } fp_fregs[NFPREG];
+  } fp_r;
+} fpregset_t;
+
+typedef struct {
+  unsigned regmask;
+  unsigned status;
+  greg_t pc;
+  gregset_t gregs;
+  fpregset_t fpregs;
+  unsigned fp_owned;
+  unsigned fpc_csr;
+  unsigned fpc_eir;
+  unsigned used_math;
+  unsigned dsp;
+  greg_t mdhi;
+  greg_t mdlo;
+  unsigned long hi1;
+  unsigned long lo1;
+  unsigned long hi2;
+  unsigned long lo2;
+  unsigned long hi3;
+  unsigned long lo3;
+} mcontext_t;
+
+typedef struct ucontext {
+  unsigned long uc_flags;
+  struct ucontext* uc_link;
+  stack_t uc_stack;
+  mcontext_t uc_mcontext;
+  sigset_t uc_sigmask;
+} ucontext_t;
+
+#elif defined(__mips64__)
+
+#error TODO
+
+#elif defined(__x86_64__)
+
+enum {
+  REG_R8 = 0,
+  REG_R9,
+  REG_R10,
+  REG_R11,
+  REG_R12,
+  REG_R13,
+  REG_R14,
+  REG_R15,
+  REG_RDI,
+  REG_RSI,
+  REG_RBP,
+  REG_RBX,
+  REG_RDX,
+  REG_RAX,
+  REG_RCX,
+  REG_RSP,
+  REG_RIP,
+  REG_EFL,
+  REG_CSGSFS,
+  REG_ERR,
+  REG_TRAPNO,
+  REG_OLDMASK,
+  REG_CR2,
+  NGREG
+};
+
+typedef long greg_t;
+typedef greg_t gregset_t[NGREG];
+
+struct _libc_fpxreg {
+  unsigned short significand[4];
+  unsigned short exponent;
+  unsigned short padding[3];
+};
+
+struct _libc_xmmreg {
+  uint32_t element[4];
+};
+
+struct _libc_fpstate {
+  uint16_t cwd;
+  uint16_t swd;
+  uint16_t ftw;
+  uint16_t fop;
+  uint64_t rip;
+  uint64_t rdp;
+  uint32_t mxcsr;
+  uint32_t mxcr_mask;
+  struct _libc_fpxreg _st[8];
+  struct _libc_xmmreg _xmm[16];
+  uint32_t padding[24];
+};
+
+typedef struct _libc_fpstate* fpregset_t;
+
+typedef struct {
+  gregset_t gregs;
+  fpregset_t fpregs;
+  unsigned long __reserved1[8];
+} mcontext_t;
+
+typedef struct ucontext {
+  unsigned long uc_flags;
+  struct ucontext* uc_link;
+  stack_t uc_stack;
+  mcontext_t uc_mcontext;
+  sigset_t uc_sigmask;
+  struct _libc_fpstate __fpregs_mem;
+} ucontext_t;
+
+#endif
+
+__END_DECLS
+
+#endif /* _SYS_UCONTEXT_H_ */
diff --git a/ndk/platforms/android-20/include/sys/uio.h b/ndk/platforms/android-L/include/sys/uio.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/uio.h
rename to ndk/platforms/android-L/include/sys/uio.h
diff --git a/ndk/platforms/android-20/include/sys/un.h b/ndk/platforms/android-L/include/sys/un.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/un.h
rename to ndk/platforms/android-L/include/sys/un.h
diff --git a/ndk/platforms/android-L/include/sys/user.h b/ndk/platforms/android-L/include/sys/user.h
new file mode 100644
index 0000000..6e88d16
--- /dev/null
+++ b/ndk/platforms/android-L/include/sys/user.h
@@ -0,0 +1,246 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _SYS_USER_H_
+#define _SYS_USER_H_
+
+#include <sys/cdefs.h>
+#include <limits.h> /* For PAGE_SIZE. */
+
+__BEGIN_DECLS
+
+#if __i386__
+
+struct user_fpregs_struct {
+  long cwd;
+  long swd;
+  long twd;
+  long fip;
+  long fcs;
+  long foo;
+  long fos;
+  long st_space[20];
+};
+struct user_fxsr_struct {
+  unsigned short cwd;
+  unsigned short swd;
+  unsigned short twd;
+  unsigned short fop;
+  long fip;
+  long fcs;
+  long foo;
+  long fos;
+  long mxcsr;
+  long reserved;
+  long st_space[32];
+  long xmm_space[32];
+  long padding[56];
+};
+struct user_regs_struct {
+  long ebx;
+  long ecx;
+  long edx;
+  long esi;
+  long edi;
+  long ebp;
+  long eax;
+  long xds;
+  long xes;
+  long xfs;
+  long xgs;
+  long orig_eax;
+  long eip;
+  long xcs;
+  long eflags;
+  long esp;
+  long xss;
+};
+struct user {
+  struct user_regs_struct regs;
+  int u_fpvalid;
+  struct user_fpregs_struct i387;
+  unsigned long int u_tsize;
+  unsigned long int u_dsize;
+  unsigned long int u_ssize;
+  unsigned long start_code;
+  unsigned long start_stack;
+  long int signal;
+  int reserved;
+  unsigned long u_ar0;
+  struct user_fpregs_struct* u_fpstate;
+  unsigned long magic;
+  char u_comm[32];
+  int u_debugreg[8];
+};
+
+#elif defined(__x86_64__)
+
+struct user_fpregs_struct {
+  unsigned short cwd;
+  unsigned short swd;
+  unsigned short ftw;
+  unsigned short fop;
+  __u64 rip;
+  __u64 rdp;
+  __u32 mxcsr;
+  __u32 mxcsr_mask;
+  __u32 st_space[32];
+  __u32 xmm_space[64];
+  __u32 padding[24];
+};
+struct user_regs_struct {
+  unsigned long r15;
+  unsigned long r14;
+  unsigned long r13;
+  unsigned long r12;
+  unsigned long rbp;
+  unsigned long rbx;
+  unsigned long r11;
+  unsigned long r10;
+  unsigned long r9;
+  unsigned long r8;
+  unsigned long rax;
+  unsigned long rcx;
+  unsigned long rdx;
+  unsigned long rsi;
+  unsigned long rdi;
+  unsigned long orig_rax;
+  unsigned long rip;
+  unsigned long cs;
+  unsigned long eflags;
+  unsigned long rsp;
+  unsigned long ss;
+  unsigned long fs_base;
+  unsigned long gs_base;
+  unsigned long ds;
+  unsigned long es;
+  unsigned long fs;
+  unsigned long gs;
+};
+struct user {
+  struct user_regs_struct regs;
+  int u_fpvalid;
+  int pad0;
+  struct user_fpregs_struct i387;
+  unsigned long int u_tsize;
+  unsigned long int u_dsize;
+  unsigned long int u_ssize;
+  unsigned long start_code;
+  unsigned long start_stack;
+  long int signal;
+  int reserved;
+  int pad1;
+  unsigned long u_ar0;
+  struct user_fpregs_struct* u_fpstate;
+  unsigned long magic;
+  char u_comm[32];
+  unsigned long u_debugreg[8];
+  unsigned long error_code;
+  unsigned long fault_address;
+};
+
+#elif defined(__mips__)
+struct user_regs_struct 
+{
+  unsigned long regs[180 / sizeof(unsigned long) + 64];
+};
+
+struct user {
+  unsigned long regs[180 / sizeof(unsigned long) + 64];
+  size_t u_tsize;
+  size_t u_dsize;
+  size_t u_ssize;
+  unsigned long start_code;
+  unsigned long start_data;
+  unsigned long start_stack;
+  long int signal;
+  unsigned long u_ar0;
+  unsigned long magic;
+  char u_comm[32];
+};
+
+#elif defined(__arm__)
+
+struct user_fpregs {
+  struct fp_reg {
+    unsigned int sign1:1;
+    unsigned int unused:15;
+    unsigned int sign2:1;
+    unsigned int exponent:14;
+    unsigned int j:1;
+    unsigned int mantissa1:31;
+    unsigned int mantissa0:32;
+  } fpregs[8];
+  unsigned int fpsr:32;
+  unsigned int fpcr:32;
+  unsigned char ftype[8];
+  unsigned int init_flag;
+};
+struct user_regs {
+  unsigned long uregs[18];
+};
+struct user_vfp {
+  unsigned long long fpregs[32];
+  unsigned long fpscr;
+};
+struct user_vfp_exc {
+  unsigned long fpexc;
+  unsigned long fpinst;
+  unsigned long fpinst2;
+};
+struct user {
+  struct user_regs regs;
+  int u_fpvalid;
+  unsigned long int u_tsize;
+  unsigned long int u_dsize;
+  unsigned long int u_ssize;
+  unsigned long start_code;
+  unsigned long start_stack;
+  long int signal;
+  int reserved;
+  struct user_regs* u_ar0;
+  unsigned long magic;
+  char u_comm[32];
+  int u_debugreg[8];
+  struct user_fpregs u_fp;
+  struct user_fpregs* u_fp0;
+};
+
+#elif defined(__aarch64__)
+
+// There are no user structures for 64 bit arm.
+
+#else
+
+#error "Unsupported architecture."
+
+#endif
+
+__END_DECLS
+
+#endif  /* _SYS_USER_H_ */
diff --git a/ndk/platforms/android-20/include/sys/utime.h b/ndk/platforms/android-L/include/sys/utime.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/utime.h
rename to ndk/platforms/android-L/include/sys/utime.h
diff --git a/ndk/platforms/android-20/include/sys/utsname.h b/ndk/platforms/android-L/include/sys/utsname.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/utsname.h
rename to ndk/platforms/android-L/include/sys/utsname.h
diff --git a/ndk/platforms/android-20/include/sys/vfs.h b/ndk/platforms/android-L/include/sys/vfs.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/vfs.h
rename to ndk/platforms/android-L/include/sys/vfs.h
diff --git a/ndk/platforms/android-20/include/sys/vt.h b/ndk/platforms/android-L/include/sys/vt.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/vt.h
rename to ndk/platforms/android-L/include/sys/vt.h
diff --git a/ndk/platforms/android-L/include/sys/wait.h b/ndk/platforms/android-L/include/sys/wait.h
new file mode 100644
index 0000000..8d9a5f6
--- /dev/null
+++ b/ndk/platforms/android-L/include/sys/wait.h
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+#ifndef _SYS_WAIT_H_
+#define _SYS_WAIT_H_
+
+#include <sys/cdefs.h>
+#include <sys/types.h>
+#include <sys/resource.h>
+#include <linux/wait.h>
+#include <signal.h>
+
+__BEGIN_DECLS
+
+#define WEXITSTATUS(s)  (((s) & 0xff00) >> 8)
+#define WCOREDUMP(s)    ((s) & 0x80)
+#define WTERMSIG(s)     ((s) & 0x7f)
+#define WSTOPSIG(s)     WEXITSTATUS(s)
+
+#define WIFEXITED(s)    (WTERMSIG(s) == 0)
+#define WIFSTOPPED(s)   (WTERMSIG(s) == 0x7f)
+#define WIFSIGNALED(s)  (WTERMSIG((s)+1) >= 2)
+
+extern pid_t  wait(int *);
+extern pid_t  waitpid(pid_t, int *, int);
+extern pid_t  wait4(pid_t, int *, int, struct rusage *);
+
+/* Posix states that idtype_t should be an enumeration type, but
+ * the kernel headers define P_ALL, P_PID and P_PGID as constant macros
+ * instead.
+ */
+typedef int idtype_t;
+
+extern int  waitid(idtype_t which, id_t id, siginfo_t *info, int options);
+
+__END_DECLS
+
+#endif /* _SYS_WAIT_H_ */
diff --git a/ndk/platforms/android-20/include/sys/xattr.h b/ndk/platforms/android-L/include/sys/xattr.h
similarity index 100%
rename from ndk/platforms/android-20/include/sys/xattr.h
rename to ndk/platforms/android-L/include/sys/xattr.h
diff --git a/ndk/platforms/android-L/include/syslog.h b/ndk/platforms/android-L/include/syslog.h
new file mode 100644
index 0000000..a52e811
--- /dev/null
+++ b/ndk/platforms/android-L/include/syslog.h
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _SYSLOG_H
+#define _SYSLOG_H
+
+#include <stdio.h>
+#include <sys/cdefs.h>
+#include <stdarg.h>
+
+__BEGIN_DECLS
+
+#define LOG_EMERG	0
+#define LOG_ALERT	1
+#define LOG_CRIT	2
+#define LOG_ERR		3
+#define LOG_WARNING	4
+#define LOG_NOTICE	5
+#define LOG_INFO	6
+#define LOG_DEBUG	7
+
+#define LOG_PRIMASK	7
+#define LOG_PRI(x)	((x) & LOG_PRIMASK)
+
+#define LOG_KERN	0000
+#define LOG_USER	0010
+#define LOG_MAIL	0020
+#define LOG_DAEMON	0030
+#define LOG_AUTH	0040
+#define LOG_SYSLOG	0050
+#define LOG_LPR		0060
+#define LOG_NEWS	0070
+#define LOG_UUCP	0100
+#define LOG_CRON	0110
+#define LOG_AUTHPRIV	0120
+#define LOG_FTP		0130
+#define LOG_LOCAL0	0200
+#define LOG_LOCAL1	0210
+#define LOG_LOCAL2	0220
+#define LOG_LOCAL3	0230
+#define LOG_LOCAL4	0240
+#define LOG_LOCAL5	0250
+#define LOG_LOCAL6	0260
+#define LOG_LOCAL7	0270
+
+#define LOG_FACMASK	01770
+#define LOG_FAC(x)	(((x) >> 3) & (LOG_FACMASK >> 3))
+
+#define LOG_MASK(pri) (1 << (pri))
+#define LOG_UPTO(pri) ((1 << ((pri)+1)) - 1)
+
+#define LOG_PID    0x01    /* include pid with message */
+#define LOG_CONS   0x02    /* write to console on logger error */
+#define LOG_ODELAY 0x04    /* delay connection until syslog() */
+#define LOG_NDELAY 0x08    /* open connection immediately */
+#define LOG_NOWAIT 0x10    /* wait for child processes (unused on linux) */
+#define LOG_PERROR 0x20    /* additional logging to stderr */
+
+#define _PATH_LOG  "/dev/syslog"
+
+extern void	closelog(void);
+extern void	openlog(const char *, int, int);
+extern int	setlogmask(int);
+extern void	syslog(int, const char *, ...) __printflike(2, 3);
+extern void	vsyslog(int, const char *, va_list) __printflike(2, 0);
+
+__END_DECLS
+
+#endif /* _SYSLOG_H */
diff --git a/ndk/platforms/android-20/include/termio.h b/ndk/platforms/android-L/include/termio.h
similarity index 100%
rename from ndk/platforms/android-20/include/termio.h
rename to ndk/platforms/android-L/include/termio.h
diff --git a/ndk/platforms/android-20/include/termios.h b/ndk/platforms/android-L/include/termios.h
similarity index 100%
rename from ndk/platforms/android-20/include/termios.h
rename to ndk/platforms/android-L/include/termios.h
diff --git a/ndk/platforms/android-L/include/time.h b/ndk/platforms/android-L/include/time.h
new file mode 100644
index 0000000..0587a2d
--- /dev/null
+++ b/ndk/platforms/android-L/include/time.h
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _TIME_H_
+#define _TIME_H_
+
+#include <sys/cdefs.h>
+#include <sys/time.h>
+
+__BEGIN_DECLS
+
+#define CLOCKS_PER_SEC 1000000
+
+extern char* tzname[] __LIBC_ABI_PUBLIC__;
+extern int daylight __LIBC_ABI_PUBLIC__;
+extern long int timezone __LIBC_ABI_PUBLIC__;
+
+struct sigevent;
+
+struct tm {
+  int tm_sec;
+  int tm_min;
+  int tm_hour;
+  int tm_mday;
+  int tm_mon;
+  int tm_year;
+  int tm_wday;
+  int tm_yday;
+  int tm_isdst;
+  long int tm_gmtoff;
+  const char* tm_zone;
+};
+
+#define TM_ZONE tm_zone
+
+extern time_t time(time_t*) __LIBC_ABI_PUBLIC__;
+extern int nanosleep(const struct timespec*, struct timespec*) __LIBC_ABI_PUBLIC__;
+
+extern char* asctime(const struct tm*) __LIBC_ABI_PUBLIC__;
+extern char* asctime_r(const struct tm*, char*) __LIBC_ABI_PUBLIC__;
+
+extern double difftime(time_t, time_t) __LIBC_ABI_PUBLIC__;
+extern time_t mktime(struct tm*) __LIBC_ABI_PUBLIC__;
+
+extern struct tm* localtime(const time_t*) __LIBC_ABI_PUBLIC__;
+extern struct tm* localtime_r(const time_t*, struct tm*) __LIBC_ABI_PUBLIC__;
+
+extern struct tm* gmtime(const time_t*) __LIBC_ABI_PUBLIC__;
+extern struct tm* gmtime_r(const time_t*, struct tm*) __LIBC_ABI_PUBLIC__;
+
+extern char* strptime(const char*, const char*, struct tm*) __LIBC_ABI_PUBLIC__;
+extern size_t strftime(char*, size_t, const char*, const struct tm*) __LIBC_ABI_PUBLIC__;
+
+extern char* ctime(const time_t*) __LIBC_ABI_PUBLIC__;
+extern char* ctime_r(const time_t*, char*) __LIBC_ABI_PUBLIC__;
+
+extern void tzset(void) __LIBC_ABI_PUBLIC__;
+
+extern clock_t clock(void) __LIBC_ABI_PUBLIC__;
+
+extern int clock_getres(int, struct timespec*) __LIBC_ABI_PUBLIC__;
+extern int clock_gettime(int, struct timespec*) __LIBC_ABI_PUBLIC__;
+
+extern int timer_create(int, struct sigevent*, timer_t*) __LIBC_ABI_PUBLIC__;
+extern int timer_delete(timer_t) __LIBC_ABI_PUBLIC__;
+extern int timer_settime(timer_t, int, const struct itimerspec*, struct itimerspec*) __LIBC_ABI_PUBLIC__;
+extern int timer_gettime(timer_t, struct itimerspec*) __LIBC_ABI_PUBLIC__;
+extern int timer_getoverrun(timer_t) __LIBC_ABI_PUBLIC__;
+
+/* Non-standard extensions that are in the BSDs and glibc. */
+extern time_t timelocal(struct tm*) __LIBC_ABI_PUBLIC__;
+extern time_t timegm(struct tm*) __LIBC_ABI_PUBLIC__;
+
+__END_DECLS
+
+#endif /* _TIME_H_ */
diff --git a/ndk/platforms/android-20/include/time64.h b/ndk/platforms/android-L/include/time64.h
similarity index 100%
rename from ndk/platforms/android-20/include/time64.h
rename to ndk/platforms/android-L/include/time64.h
diff --git a/ndk/platforms/android-L/include/uchar.h b/ndk/platforms/android-L/include/uchar.h
new file mode 100644
index 0000000..e1fcb5c
--- /dev/null
+++ b/ndk/platforms/android-L/include/uchar.h
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _UCHAR_H_
+#define _UCHAR_H_
+
+#include <sys/cdefs.h>
+#include <wchar.h>
+
+__BEGIN_DECLS
+
+#define __STD_UTF_16__ 1
+#define __STD_UTF_32__ 1
+
+size_t c16rtomb(char* __restrict, char16_t, mbstate_t* __restrict);
+size_t c32rtomb(char* __restrict, char32_t, mbstate_t* __restrict);
+size_t mbrtoc16(char16_t* __restrict,
+                const char* __restrict,
+                size_t,
+                mbstate_t* __restrict);
+size_t mbrtoc32(char32_t* __restrict,
+                const char* __restrict,
+                size_t,
+                mbstate_t* __restrict);
+
+__END_DECLS
+
+#endif /* _UCHAR_H_ */
diff --git a/ndk/platforms/android-20/include/ucontext.h b/ndk/platforms/android-L/include/ucontext.h
similarity index 100%
rename from ndk/platforms/android-20/include/ucontext.h
rename to ndk/platforms/android-L/include/ucontext.h
diff --git a/ndk/platforms/android-L/include/unistd.h b/ndk/platforms/android-L/include/unistd.h
new file mode 100644
index 0000000..afe5f1a
--- /dev/null
+++ b/ndk/platforms/android-L/include/unistd.h
@@ -0,0 +1,248 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+#ifndef _UNISTD_H_
+#define _UNISTD_H_
+
+#include <stddef.h>
+#include <sys/cdefs.h>
+#include <sys/types.h>
+#include <sys/select.h>
+#include <sys/sysconf.h>
+#include <pathconf.h>
+
+__BEGIN_DECLS
+
+/* Standard file descriptor numbers. */
+#define STDIN_FILENO	0
+#define STDOUT_FILENO	1
+#define STDERR_FILENO	2
+
+/* Values for whence in fseek and lseek */
+#define SEEK_SET 0
+#define SEEK_CUR 1
+#define SEEK_END 2
+
+extern char** environ;
+
+extern __noreturn void _exit(int);
+
+extern pid_t  fork(void);
+extern pid_t  vfork(void);
+extern pid_t  getpid(void);
+extern pid_t  gettid(void) __pure2;
+extern pid_t  getpgid(pid_t);
+extern int    setpgid(pid_t, pid_t);
+extern pid_t  getppid(void);
+extern pid_t  getpgrp(void);
+extern int    setpgrp(void);
+extern pid_t  getsid(pid_t);
+extern pid_t  setsid(void);
+
+extern int execv(const char *, char * const *);
+extern int execvp(const char *, char * const *);
+extern int execvpe(const char *, char * const *, char * const *);
+extern int execve(const char *, char * const *, char * const *);
+extern int execl(const char *, const char *, ...);
+extern int execlp(const char *, const char *, ...);
+extern int execle(const char *, const char *, ...);
+
+/* IMPORTANT: See comment under <sys/prctl.h> about this declaration */
+extern int prctl(int  option, ...);
+
+extern int nice(int);
+
+extern int setuid(uid_t);
+extern uid_t getuid(void);
+extern int seteuid(uid_t);
+extern uid_t geteuid(void);
+extern int setgid(gid_t);
+extern gid_t getgid(void);
+extern int setegid(gid_t);
+extern gid_t getegid(void);
+extern int getgroups(int, gid_t *);
+extern int setgroups(size_t, const gid_t *);
+extern int setreuid(uid_t, uid_t);
+extern int setregid(gid_t, gid_t);
+extern int setresuid(uid_t, uid_t, uid_t);
+extern int setresgid(gid_t, gid_t, gid_t);
+extern int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid);
+extern int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid);
+extern char* getlogin(void);
+extern char* getusershell(void);
+extern void setusershell(void);
+extern void endusershell(void);
+
+
+
+/* Macros for access() */
+#define R_OK  4  /* Read */
+#define W_OK  2  /* Write */
+#define X_OK  1  /* Execute */
+#define F_OK  0  /* Existence */
+
+extern int access(const char*, int);
+extern int faccessat(int, const char*, int, int);
+extern int link(const char*, const char*);
+extern int linkat(int, const char*, int, const char*, int);
+extern int unlink(const char*);
+extern int unlinkat(int, const char*, int);
+extern int chdir(const char *);
+extern int fchdir(int);
+extern int rmdir(const char *);
+extern int pipe(int *);
+#ifdef _GNU_SOURCE
+extern int pipe2(int *, int);
+#endif
+extern int chroot(const char *);
+extern int symlink(const char*, const char*);
+extern int symlinkat(const char*, int, const char*);
+extern ssize_t readlink(const char*, char*, size_t);
+extern ssize_t readlinkat(int, const char*, char*, size_t);
+extern int chown(const char *, uid_t, gid_t);
+extern int fchown(int, uid_t, gid_t);
+extern int fchownat(int, const char*, uid_t, gid_t, int);
+extern int lchown(const char *, uid_t, gid_t);
+extern int truncate(const char *, off_t);
+extern int truncate64(const char *, off64_t);
+extern char *getcwd(char *, size_t);
+
+extern int sync(void);
+
+extern int close(int);
+extern off_t lseek(int, off_t, int);
+extern off64_t lseek64(int, off64_t, int);
+
+extern ssize_t read(int, void *, size_t);
+extern ssize_t write(int, const void *, size_t);
+extern ssize_t pread(int, void *, size_t, off_t);
+extern ssize_t pread64(int, void *, size_t, off64_t);
+extern ssize_t pwrite(int, const void *, size_t, off_t);
+extern ssize_t pwrite64(int, const void *, size_t, off64_t);
+
+extern int dup(int);
+extern int dup2(int, int);
+#ifdef _GNU_SOURCE
+extern int dup3(int, int, int);
+#endif
+extern int fcntl(int, int, ...);
+extern int ioctl(int, int, ...);
+extern int flock(int, int);
+extern int fsync(int);
+extern int fdatasync(int);
+extern int ftruncate(int, off_t);
+extern int ftruncate64(int, off64_t);
+
+extern int pause(void);
+extern unsigned int alarm(unsigned int);
+extern unsigned int sleep(unsigned int);
+extern int usleep(useconds_t);
+
+extern int gethostname(char *, size_t);
+
+extern void *__brk(void *);
+extern int brk(void *);
+extern void *sbrk(ptrdiff_t);
+
+extern int getopt(int, char * const *, const char *);
+extern char *optarg;
+extern int optind, opterr, optopt;
+
+extern int isatty(int);
+extern char* ttyname(int);
+extern int ttyname_r(int, char*, size_t);
+
+extern int  acct(const char*  filepath);
+
+int getpagesize(void);
+
+extern int sysconf(int  name);
+
+extern int daemon(int, int);
+
+#if defined(__arm__) || (defined(__mips__) && !defined(__LP64__))
+extern int cacheflush(long, long, long);
+    /* __attribute__((deprecated("use __builtin___clear_cache instead"))); */
+#endif
+
+extern pid_t tcgetpgrp(int fd);
+extern int   tcsetpgrp(int fd, pid_t _pid);
+
+#if 0 /* MISSING FROM BIONIC */
+extern int execlpe(const char *, const char *, ...);
+extern int getfsuid(uid_t);
+extern int setfsuid(uid_t);
+extern int getlogin_r(char* name, size_t namesize);
+extern int sethostname(const char *, size_t);
+extern int getdomainname(char *, size_t);
+extern int setdomainname(const char *, size_t);
+#endif /* MISSING */
+
+/* Used to retry syscalls that can return EINTR. */
+#define TEMP_FAILURE_RETRY(exp) ({         \
+    __typeof__(exp) _rc;                   \
+    do {                                   \
+        _rc = (exp);                       \
+    } while (_rc == -1 && errno == EINTR); \
+    _rc; })
+
+#if defined(__BIONIC_FORTIFY)
+extern ssize_t __read_chk(int, void*, size_t, size_t);
+__errordecl(__read_dest_size_error, "read called with size bigger than destination");
+__errordecl(__read_count_toobig_error, "read called with count > SSIZE_MAX");
+extern ssize_t __read_real(int, void*, size_t)
+    __asm__(__USER_LABEL_PREFIX__ "read");
+
+__BIONIC_FORTIFY_INLINE
+ssize_t read(int fd, void* buf, size_t count) {
+    size_t bos = __bos0(buf);
+
+#if !defined(__clang__)
+    if (__builtin_constant_p(count) && (count > SSIZE_MAX)) {
+        __read_count_toobig_error();
+    }
+
+    if (bos == __BIONIC_FORTIFY_UNKNOWN_SIZE) {
+        return __read_real(fd, buf, count);
+    }
+
+    if (__builtin_constant_p(count) && (count > bos)) {
+        __read_dest_size_error();
+    }
+
+    if (__builtin_constant_p(count) && (count <= bos)) {
+        return __read_real(fd, buf, count);
+    }
+#endif
+
+    return __read_chk(fd, buf, count, bos);
+}
+#endif /* defined(__BIONIC_FORTIFY) */
+
+__END_DECLS
+
+#endif /* _UNISTD_H_ */
diff --git a/ndk/platforms/android-20/include/util.h b/ndk/platforms/android-L/include/util.h
similarity index 100%
rename from ndk/platforms/android-20/include/util.h
rename to ndk/platforms/android-L/include/util.h
diff --git a/ndk/platforms/android-20/include/utime.h b/ndk/platforms/android-L/include/utime.h
similarity index 100%
rename from ndk/platforms/android-20/include/utime.h
rename to ndk/platforms/android-L/include/utime.h
diff --git a/ndk/platforms/android-20/include/utmp.h b/ndk/platforms/android-L/include/utmp.h
similarity index 100%
rename from ndk/platforms/android-20/include/utmp.h
rename to ndk/platforms/android-L/include/utmp.h
diff --git a/ndk/platforms/android-L/include/wchar.h b/ndk/platforms/android-L/include/wchar.h
new file mode 100644
index 0000000..014fed3
--- /dev/null
+++ b/ndk/platforms/android-L/include/wchar.h
@@ -0,0 +1,168 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+#ifndef _WCHAR_H_
+#define _WCHAR_H_
+
+#include <sys/cdefs.h>
+#include <stdio.h>
+
+#include <stdarg.h>
+#include <stddef.h>
+#include <time.h>
+
+#include <machine/wchar_limits.h>
+
+__BEGIN_DECLS
+
+typedef __WINT_TYPE__  wint_t;
+typedef struct {
+  uint8_t __seq[4];
+#ifdef __LP64__
+  char __reserved[4];
+#endif
+} mbstate_t;
+
+enum {
+    WC_TYPE_INVALID = 0,
+    WC_TYPE_ALNUM,
+    WC_TYPE_ALPHA,
+    WC_TYPE_BLANK,
+    WC_TYPE_CNTRL,
+    WC_TYPE_DIGIT,
+    WC_TYPE_GRAPH,
+    WC_TYPE_LOWER,
+    WC_TYPE_PRINT,
+    WC_TYPE_PUNCT,
+    WC_TYPE_SPACE,
+    WC_TYPE_UPPER,
+    WC_TYPE_XDIGIT,
+    WC_TYPE_MAX
+};
+
+typedef long wctype_t;
+
+#define  WEOF        ((wint_t)(-1))
+
+extern wint_t            btowc(int);
+extern int               fwprintf(FILE *, const wchar_t *, ...);
+extern int               fwscanf(FILE *, const wchar_t *, ...);
+extern int               iswalnum(wint_t);
+extern int               iswalpha(wint_t);
+extern int               iswblank(wint_t);
+extern int               iswcntrl(wint_t);
+extern int               iswdigit(wint_t);
+extern int               iswgraph(wint_t);
+extern int               iswlower(wint_t);
+extern int               iswprint(wint_t);
+extern int               iswpunct(wint_t);
+extern int               iswspace(wint_t);
+extern int               iswupper(wint_t);
+extern int               iswxdigit(wint_t);
+extern int               iswctype(wint_t, wctype_t);
+extern wint_t            fgetwc(FILE *);
+extern wchar_t          *fgetws(wchar_t *, int, FILE *);
+extern wint_t            fputwc(wchar_t, FILE *);
+extern int               fputws(const wchar_t *, FILE *);
+extern int               fwide(FILE *, int);
+extern wint_t            getwc(FILE *);
+extern wint_t            getwchar(void);
+extern int               mbsinit(const mbstate_t *);
+extern size_t            mbrlen(const char *, size_t, mbstate_t *);
+extern size_t            mbrtowc(wchar_t *, const char *, size_t, mbstate_t *);
+extern size_t mbsrtowcs(wchar_t*, const char**, size_t, mbstate_t*);
+extern size_t mbsnrtowcs(wchar_t*, const char**, size_t, size_t, mbstate_t*);
+extern size_t            mbstowcs(wchar_t *, const char *, size_t);
+extern wint_t            putwc(wchar_t, FILE *);
+extern wint_t            putwchar(wchar_t);
+extern int               swprintf(wchar_t *, size_t, const wchar_t *, ...);
+extern int               swscanf(const wchar_t *, const wchar_t *, ...);
+extern wint_t            towlower(wint_t);
+extern wint_t            towupper(wint_t);
+extern wint_t            ungetwc(wint_t, FILE *);
+extern int vfwprintf(FILE*, const wchar_t*, va_list);
+extern int vfwscanf(FILE*, const wchar_t*, va_list);
+extern int vswprintf(wchar_t*, size_t, const wchar_t*, va_list);
+extern int vswscanf(const wchar_t*, const wchar_t*, va_list);
+extern int vwprintf(const wchar_t*, va_list);
+extern int vwscanf(const wchar_t*, va_list);
+extern size_t            wcrtomb(char *, wchar_t, mbstate_t *);
+extern int               wcscasecmp(const wchar_t *, const wchar_t *);
+extern wchar_t          *wcscat(wchar_t *, const wchar_t *);
+extern wchar_t          *wcschr(const wchar_t *, wchar_t);
+extern int               wcscmp(const wchar_t *, const wchar_t *);
+extern int               wcscoll(const wchar_t *, const wchar_t *);
+extern wchar_t          *wcscpy(wchar_t *, const wchar_t *);
+extern size_t            wcscspn(const wchar_t *, const wchar_t *);
+extern size_t            wcsftime(wchar_t *, size_t, const wchar_t *, const struct tm *) __LIBC_ABI_PUBLIC__;
+extern size_t            wcslen(const wchar_t *);
+extern int               wcsncasecmp(const wchar_t *, const wchar_t *, size_t);
+extern wchar_t          *wcsncat(wchar_t *, const wchar_t *, size_t);
+extern int               wcsncmp(const wchar_t *, const wchar_t *, size_t);
+extern wchar_t          *wcsncpy(wchar_t *, const wchar_t *, size_t);
+extern size_t wcsnrtombs(char*, const wchar_t**, size_t, size_t, mbstate_t*);
+extern wchar_t          *wcspbrk(const wchar_t *, const wchar_t *);
+extern wchar_t          *wcsrchr(const wchar_t *, wchar_t);
+extern size_t wcsrtombs(char*, const wchar_t**, size_t, mbstate_t*);
+extern size_t            wcsspn(const wchar_t *, const wchar_t *);
+extern wchar_t          *wcsstr(const wchar_t *, const wchar_t *);
+extern double wcstod(const wchar_t*, wchar_t**);
+extern float wcstof(const wchar_t*, wchar_t**);
+extern wchar_t* wcstok(wchar_t*, const wchar_t*, wchar_t**);
+extern long wcstol(const wchar_t*, wchar_t**, int);
+extern long long wcstoll(const wchar_t*, wchar_t**, int);
+extern long double wcstold(const wchar_t*, wchar_t**);
+extern unsigned long wcstoul(const wchar_t*, wchar_t**, int);
+extern unsigned long long wcstoull(const wchar_t*, wchar_t**, int);
+extern int               wcswidth(const wchar_t *, size_t);
+extern size_t            wcsxfrm(wchar_t *, const wchar_t *, size_t);
+extern int               wctob(wint_t);
+extern wctype_t          wctype(const char *);
+extern int               wcwidth(wchar_t);
+extern wchar_t          *wmemchr(const wchar_t *, wchar_t, size_t);
+extern int               wmemcmp(const wchar_t *, const wchar_t *, size_t);
+extern wchar_t          *wmemcpy(wchar_t *, const wchar_t *, size_t);
+extern wchar_t          *wmemmove(wchar_t *, const wchar_t *, size_t);
+extern wchar_t          *wmemset(wchar_t *, wchar_t, size_t);
+extern int               wprintf(const wchar_t *, ...);
+extern int               wscanf(const wchar_t *, ...);
+
+extern size_t wcslcat(wchar_t*, const wchar_t*, size_t);
+extern size_t wcslcpy(wchar_t*, const wchar_t*, size_t);
+
+typedef void *wctrans_t;
+extern wint_t towctrans(wint_t, wctrans_t);
+extern wctrans_t wctrans(const char*);
+
+#if __POSIX_VISIBLE >= 200809
+wchar_t* wcsdup(const wchar_t*);
+size_t wcsnlen(const wchar_t*, size_t);
+#endif
+
+__END_DECLS
+
+#endif /* _WCHAR_H_ */
diff --git a/ndk/platforms/android-20/include/wctype.h b/ndk/platforms/android-L/include/wctype.h
similarity index 100%
rename from ndk/platforms/android-20/include/wctype.h
rename to ndk/platforms/android-L/include/wctype.h
diff --git a/ndk/platforms/android-20/include/xlocale.h b/ndk/platforms/android-L/include/xlocale.h
similarity index 100%
rename from ndk/platforms/android-20/include/xlocale.h
rename to ndk/platforms/android-L/include/xlocale.h
diff --git a/ndk/samples/hello-jni/jni/hello-jni.c b/ndk/samples/hello-jni/jni/hello-jni.c
index 19fcc6a..80e9804 100644
--- a/ndk/samples/hello-jni/jni/hello-jni.c
+++ b/ndk/samples/hello-jni/jni/hello-jni.c
@@ -30,17 +30,31 @@
 #if defined(__arm__)
   #if defined(__ARM_ARCH_7A__)
     #if defined(__ARM_NEON__)
-      #define ABI "armeabi-v7a/NEON"
+      #if defined(__ARM_PCS_VFP)
+        #define ABI "armeabi-v7a/NEON (hard-float)"
+      #else
+        #define ABI "armeabi-v7a/NEON"
+      #endif
     #else
-      #define ABI "armeabi-v7a"
+      #if defined(__ARM_PCS_VFP)
+        #define ABI "armeabi-v7a (hard-float)"
+      #else
+        #define ABI "armeabi-v7a"
+      #endif
     #endif
   #else
    #define ABI "armeabi"
   #endif
 #elif defined(__i386__)
    #define ABI "x86"
+#elif defined(__x86_64__)
+   #define ABI "x86_64"
+#elif defined(__mips64)  /* mips64el-* toolchain defines __mips__ too */
+   #define ABI "mips64"
 #elif defined(__mips__)
    #define ABI "mips"
+#elif defined(__aarch64__)
+   #define ABI "arm64-v8a"
 #else
    #define ABI "unknown"
 #endif
diff --git a/ndk/samples/hello-neon/jni/Application.mk b/ndk/samples/hello-neon/jni/Application.mk
index db8f866..6e8154b 100644
--- a/ndk/samples/hello-neon/jni/Application.mk
+++ b/ndk/samples/hello-neon/jni/Application.mk
@@ -1,2 +1,2 @@
 # Build both ARMv5TE and ARMv7-A machine code.
-APP_ABI := armeabi armeabi-v7a
+APP_ABI := armeabi armeabi-v7a arm64-v8a
diff --git a/ndk/samples/test-libstdc++/jni/Application.mk b/ndk/samples/test-libstdc++/jni/Application.mk
new file mode 100644
index 0000000..e619d92
--- /dev/null
+++ b/ndk/samples/test-libstdc++/jni/Application.mk
@@ -0,0 +1 @@
+APP_ABI := all
\ No newline at end of file
diff --git a/ndk/samples/two-libs/jni/Application.mk b/ndk/samples/two-libs/jni/Application.mk
new file mode 100644
index 0000000..e619d92
--- /dev/null
+++ b/ndk/samples/two-libs/jni/Application.mk
@@ -0,0 +1 @@
+APP_ABI := all
\ No newline at end of file
diff --git a/ndk/sources/android/libportable/arch-mips/_setjmp.S b/ndk/sources/android/libportable/arch-mips/_setjmp.S
index 285ad7f..b051276 100644
--- a/ndk/sources/android/libportable/arch-mips/_setjmp.S
+++ b/ndk/sources/android/libportable/arch-mips/_setjmp.S
@@ -185,8 +185,6 @@
          move   v0, a1
 
 botch:
-        jal     longjmperror
-        nop
         jal     abort
         nop
         RESTORE_GP64
diff --git a/ndk/sources/android/libportable/arch-mips/filefd.c b/ndk/sources/android/libportable/arch-mips/filefd.c
index d80eb3d..788edf1 100644
--- a/ndk/sources/android/libportable/arch-mips/filefd.c
+++ b/ndk/sources/android/libportable/arch-mips/filefd.c
@@ -23,7 +23,6 @@
 #include <errno_portable.h>
 #include <filefd_portable.h>
 #include <signal_portable.h>
-#include <sys/atomics.h>
 
 #define PORTABLE_TAG "filefd_portable"
 #include <log_portable.h>
@@ -307,7 +306,7 @@
                 } else {
                     ASSERT(filefd_mapped_file[fd] == UNUSED_FD_TYPE);
 
-                    __atomic_inc(&filefd_mapped_files);
+                    __sync_fetch_and_add(&filefd_mapped_files, 1);
                     ALOGV("%s: ++filefd_mapped_files:%d;", __func__,
                                  filefd_mapped_files);
 
@@ -358,7 +357,7 @@
 
     if (fd >= 0 && fd < __FD_SETSIZE) {
         if (filefd_mapped_file[fd] == UNUSED_FD_TYPE) {
-            __atomic_inc(&filefd_mapped_files);
+            __sync_fetch_and_add(&filefd_mapped_files, 1);
             filefd_mapped_file[fd] = fd_type;
         }
         ASSERT(filefd_mapped_file[fd] == fd_type);
@@ -375,7 +374,7 @@
         if (filefd_mapped_file[fd] != UNUSED_FD_TYPE) {
             filefd_mapped_file[fd] = UNUSED_FD_TYPE;
             filefd_FD_CLOEXEC_file[fd] = 0;
-            __atomic_dec(&filefd_mapped_files);
+            __sync_fetch_and_sub(&filefd_mapped_files, 1);
         }
     }
     ALOGV("%s: }", __func__);
diff --git a/ndk/sources/android/libportable/arch-mips/flags.c b/ndk/sources/android/libportable/arch-mips/flags.c
index f18b8d9..f0f7500 100644
--- a/ndk/sources/android/libportable/arch-mips/flags.c
+++ b/ndk/sources/android/libportable/arch-mips/flags.c
@@ -23,36 +23,3 @@
 #include <log_portable.h>
 
 
-/* __sflags is an internal bionic routine but the symbol is exported and there are callers... */
-extern int __sflags(const char *, int *);
-
-int
-WRAP(__sflags)(const char *mode, int *optr)
-{
-    int rv;
-    int nflags, pflags;
-
-    ALOGV(" ");
-    ALOGV("%s(mode:%p, optr:%p) {", __func__, mode, optr);
-
-    rv = __sflags(mode, &nflags);
-
-    /* error - no change to *optr */
-    if (rv == 0)
-        goto done;
-
-    pflags = nflags & O_ACCMODE;
-    if (nflags & O_CREAT)
-        pflags |= O_CREAT_PORTABLE;
-    if (nflags & O_TRUNC)
-        pflags |= O_TRUNC_PORTABLE;
-    if (nflags & O_APPEND)
-        pflags |= O_APPEND_PORTABLE;
-
-    /* Set *optr to portable flags */
-    *optr = pflags;
-
-done:
-    ALOGV("%s: return(rv:%d); }", __func__, rv);
-    return rv;
-}
diff --git a/ndk/sources/android/libportable/arch-mips/pthread.c b/ndk/sources/android/libportable/arch-mips/pthread.c
index f6c3037..5f92fb0 100644
--- a/ndk/sources/android/libportable/arch-mips/pthread.c
+++ b/ndk/sources/android/libportable/arch-mips/pthread.c
@@ -213,9 +213,6 @@
 PTHREAD_WRAPPER(pthread_cond_timeout_np, (pthread_cond_t *cond, pthread_mutex_t *mutex,
                 unsigned msecs), (cond, mutex, msecs), "(cond:%p, mutex:%p, msecs:%u)");
 
-PTHREAD_WRAPPER(pthread_mutex_lock_timeout_np, (pthread_mutex_t *mutex, unsigned msecs),
-                (mutex, msecs), "(mutex:%p, msecs:%u)");
-
 PTHREAD_WRAPPER(pthread_rwlockattr_init, (pthread_rwlockattr_t *attr), (attr), "(attr:%p)");
 
 PTHREAD_WRAPPER(pthread_rwlockattr_destroy, (pthread_rwlockattr_t *attr), (attr), "(attr:%p)");
diff --git a/ndk/sources/android/libportable/arch-mips/setjmp.S b/ndk/sources/android/libportable/arch-mips/setjmp.S
index 1532972..fcfccec 100644
--- a/ndk/sources/android/libportable/arch-mips/setjmp.S
+++ b/ndk/sources/android/libportable/arch-mips/setjmp.S
@@ -140,7 +140,6 @@
         j       ra
 
 botch:
-        jal     longjmperror
         jal     abort
         RESTORE_GP64
         PTR_ADDU sp, FRAMESZ
diff --git a/ndk/sources/android/libportable/arch-mips/signal.c b/ndk/sources/android/libportable/arch-mips/signal.c
index e84b2fc..ae3fcb4 100644
--- a/ndk/sources/android/libportable/arch-mips/signal.c
+++ b/ndk/sources/android/libportable/arch-mips/signal.c
@@ -871,22 +871,6 @@
 }
 
 
-int WRAP(tkill)(int tid, int portable_signum)
-{
-    extern int REAL(tkill)(int, int);
-    int rv;
-
-    ALOGV(" ");
-    ALOGV("%s(tid:%d, portable_signum:%d) {", __func__,
-              tid,    portable_signum);
-
-    rv = do_kill(tid, portable_signum, REAL(tkill));
-
-    ALOGV("%s: return(rv:%d); }", __func__, rv);
-    return rv;
-}
-
-
 /* tgkill is not exported from android-14 libc.so */
 #if 0
 int WRAP(tgkill)(int tgid, int tid, int portable_signum)
diff --git a/ndk/sources/android/libportable/arch-mips/syscall.c b/ndk/sources/android/libportable/arch-mips/syscall.c
index 5e31b80..13ac938 100644
--- a/ndk/sources/android/libportable/arch-mips/syscall.c
+++ b/ndk/sources/android/libportable/arch-mips/syscall.c
@@ -561,20 +561,6 @@
     }
 #endif
 
-#ifdef __NR_tkill_portable
-    case __NR_tkill_portable: {
-        int tid, sig;
-
-        va_start(ap, portable_number);
-        tid = va_arg(ap, int);
-        sig = va_arg(ap, int);
-        va_end(ap);
-
-        ret = WRAP(tkill)(tid, sig);
-        goto done;
-    }
-#endif
-
 #ifdef __NR_uname_portable
     case __NR_uname_portable: native_number = __NR_uname; break;
 #endif
diff --git a/perftests/panorama/Android.mk b/perftests/panorama/Android.mk
new file mode 100755
index 0000000..30c4f72
--- /dev/null
+++ b/perftests/panorama/Android.mk
@@ -0,0 +1,59 @@
+local_target_dir := $(TARGET_OUT_DATA)/local/tmp
+
+LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_C_INCLUDES := \
+    $(LOCAL_PATH)/feature_mos/src \
+    $(LOCAL_PATH)/feature_stab/src \
+    $(LOCAL_PATH)/feature_stab/db_vlvm
+
+LOCAL_CFLAGS := -O3 -DNDEBUG -Wno-unused-parameter -Wno-maybe-uninitialized
+
+LOCAL_SRC_FILES := benchmark.cpp \
+	feature_mos/src/mosaic/ImageUtils.cpp \
+    feature_mos/src/mosaic/Mosaic.cpp \
+    feature_mos/src/mosaic/AlignFeatures.cpp \
+    feature_mos/src/mosaic/Blend.cpp \
+    feature_mos/src/mosaic/Pyramid.cpp \
+    feature_mos/src/mosaic/trsMatrix.cpp \
+    feature_mos/src/mosaic/Delaunay.cpp \
+    feature_mos/src/mosaic_renderer/Renderer.cpp \
+    feature_mos/src/mosaic_renderer/WarpRenderer.cpp \
+    feature_mos/src/mosaic_renderer/SurfaceTextureRenderer.cpp \
+    feature_mos/src/mosaic_renderer/YVURenderer.cpp \
+    feature_mos/src/mosaic_renderer/FrameBuffer.cpp \
+    feature_stab/db_vlvm/db_rob_image_homography.cpp \
+    feature_stab/db_vlvm/db_feature_detection.cpp \
+    feature_stab/db_vlvm/db_image_homography.cpp \
+    feature_stab/db_vlvm/db_framestitching.cpp \
+    feature_stab/db_vlvm/db_feature_matching.cpp \
+    feature_stab/db_vlvm/db_utilities.cpp \
+    feature_stab/db_vlvm/db_utilities_camera.cpp \
+    feature_stab/db_vlvm/db_utilities_indexing.cpp \
+    feature_stab/db_vlvm/db_utilities_linalg.cpp \
+    feature_stab/db_vlvm/db_utilities_poly.cpp \
+    feature_stab/src/dbreg/dbstabsmooth.cpp \
+    feature_stab/src/dbreg/dbreg.cpp \
+    feature_stab/src/dbreg/vp_motionmodel.c
+
+LOCAL_MODULE_TAGS := tests
+
+LOCAL_MODULE := panorama_bench
+
+LOCAL_MODULE_STEM_32 := panorama_bench
+
+LOCAL_MODULE_STEM_64 := panorama_bench64
+
+LOCAL_MULTILIB := both
+
+LOCAL_MODULE_PATH := $(local_target_dir)
+
+LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
+
+LOCAL_FORCE_STATIC_EXECUTABLE := true
+
+LOCAL_STATIC_LIBRARIES := libc libm
+
+include $(BUILD_EXECUTABLE)
diff --git a/perftests/panorama/README.txt b/perftests/panorama/README.txt
new file mode 100644
index 0000000..a36383a
--- /dev/null
+++ b/perftests/panorama/README.txt
@@ -0,0 +1,31 @@
+How to run and verify the benchmark:
+
+1) adb push $OUT/data/local/tmp/panorama_bench /data/local/tmp
+2) adb push input /data/panorama_input
+3) adb shell /data/local/tmp/panorama_bench /data/panorama_input/test /data/panorama.ppm
+
+Sample output:
+
+38 frames loaded
+Iteration 0: 1454x330 moasic created: 4.33 seconds (2.05 + 2.28)
+Iteration 1: 1454x330 moasic created: 4.26 seconds (1.83 + 2.44)
+Iteration 2: 1454x330 moasic created: 5.57 seconds (2.73 + 2.84)
+Iteration 3: 1454x330 moasic created: 5.15 seconds (2.33 + 2.82)
+Iteration 4: 1454x330 moasic created: 6.22 seconds (2.05 + 4.16)
+Iteration 5: 1454x330 moasic created: 6.31 seconds (2.16 + 4.15)
+Iteration 6: 1454x330 moasic created: 5.04 seconds (2.03 + 3.01)
+Iteration 7: 1454x330 moasic created: 6.30 seconds (3.47 + 2.83)
+Iteration 8: 1454x330 moasic created: 6.57 seconds (1.83 + 4.73)
+Iteration 9: 1454x330 moasic created: 6.27 seconds (2.28 + 4.00)
+Total elapsed time: 56.02 seconds
+
+The first number in the parenthesis is the time to align the frames; the second
+number is the time to stitch them.
+
+The total elapsed time is the interesting number for benchmarking.
+
+The result of the benchmark can be verified by pulling the the output
+photo off the device and comparing it against the golden reference:
+
+1) adb pull /data/panorama.ppm .
+2) diff panorama.ppm output/golden.ppm
diff --git a/perftests/panorama/benchmark.cpp b/perftests/panorama/benchmark.cpp
new file mode 100755
index 0000000..2a6440f
--- /dev/null
+++ b/perftests/panorama/benchmark.cpp
@@ -0,0 +1,131 @@
+/*
+ * Copyright (C) 2012 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.
+ */
+
+#include <time.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+#include "mosaic/Mosaic.h"
+#include "mosaic/ImageUtils.h"
+
+#define MAX_FRAMES 200
+#define KERNEL_ITERATIONS 10
+
+const int blendingType = Blend::BLEND_TYPE_HORZ;
+const int stripType = Blend::STRIP_TYPE_WIDE;
+
+ImageType yvuFrames[MAX_FRAMES];
+
+int loadImages(const char* basename, int &width, int &height)
+{
+    char filename[512];
+    struct stat filestat;
+    int i;
+
+    for (i = 0; i < MAX_FRAMES; i++) {
+        sprintf(filename, "%s_%03d.ppm", basename, i + 1);
+        if (stat(filename, &filestat) != 0) break;
+        ImageType rgbFrame = ImageUtils::readBinaryPPM(filename, width, height);
+        yvuFrames[i] = ImageUtils::allocateImage(width, height,
+                                ImageUtils::IMAGE_TYPE_NUM_CHANNELS);
+        ImageUtils::rgb2yvu(yvuFrames[i], rgbFrame, width, height);
+        ImageUtils::freeImage(rgbFrame);
+    }
+    return i;
+}
+
+int main(int argc, char **argv)
+{
+    struct timespec t1, t2, t3;
+
+    int width, height;
+    float totalElapsedTime = 0;
+
+    const char *basename;
+    const char *filename;
+
+    if (argc != 3) {
+        printf("Usage: %s input_dir output_filename\n", argv[0]);
+        return 0;
+    } else {
+        basename = argv[1];
+        filename = argv[2];
+    }
+
+    // Load the images outside the computational kernel
+    int totalFrames = loadImages(basename, width, height);
+
+    if (totalFrames == 0) {
+        printf("Image files not found. Make sure %s exists.\n",
+               basename);
+        return 1;
+    }
+
+    printf("%d frames loaded\n", totalFrames);
+
+
+    // Interesting stuff is here
+    for (int iteration = 0; iteration < KERNEL_ITERATIONS; iteration++)  {
+        Mosaic mosaic;
+
+        mosaic.initialize(blendingType, stripType, width, height, -1, false, 0);
+
+        clock_gettime(CLOCK_MONOTONIC, &t1);
+        for (int i = 0; i < totalFrames; i++) {
+            mosaic.addFrame(yvuFrames[i]);
+        }
+        clock_gettime(CLOCK_MONOTONIC, &t2);
+
+        float progress = 0.0;
+        bool cancelComputation = false;
+
+        mosaic.createMosaic(progress, cancelComputation);
+
+        int mosaicWidth, mosaicHeight;
+        ImageType resultYVU = mosaic.getMosaic(mosaicWidth, mosaicHeight);
+
+        ImageType imageRGB = ImageUtils::allocateImage(
+            mosaicWidth, mosaicHeight, ImageUtils::IMAGE_TYPE_NUM_CHANNELS);
+
+        clock_gettime(CLOCK_MONOTONIC, &t3);
+
+        float elapsedTime =
+            (t3.tv_sec - t1.tv_sec) + (t3.tv_nsec - t1.tv_nsec)/1e9;
+        float addImageTime =
+            (t2.tv_sec - t1.tv_sec) + (t2.tv_nsec - t1.tv_nsec)/1e9;
+        float stitchImageTime =
+            (t3.tv_sec - t2.tv_sec) + (t3.tv_nsec - t2.tv_nsec)/1e9;
+
+        totalElapsedTime += elapsedTime;
+
+        printf("Iteration %d: %dx%d moasic created: "
+               "%.2f seconds (%.2f + %.2f)\n",
+               iteration, mosaicWidth, mosaicHeight,
+               elapsedTime, addImageTime, stitchImageTime);
+
+        // Write the output only once for correctness check
+        if (iteration == 0) {
+            ImageUtils::yvu2rgb(imageRGB, resultYVU, mosaicWidth,
+                                mosaicHeight);
+            ImageUtils::writeBinaryPPM(imageRGB, filename, mosaicWidth,
+                                       mosaicHeight);
+        }
+    }
+    printf("Total elapsed time: %.2f seconds\n", totalElapsedTime);
+
+    return 0;
+}
diff --git a/perftests/panorama/feature_mos/doc/Readme.txt b/perftests/panorama/feature_mos/doc/Readme.txt
new file mode 100644
index 0000000..83ce165
--- /dev/null
+++ b/perftests/panorama/feature_mos/doc/Readme.txt
@@ -0,0 +1,3 @@
+To generate the html docs, execute
+doxygen feature_mos_API_doxyfile
+
diff --git a/perftests/panorama/feature_mos/doc/feature_mos_API_doxyfile b/perftests/panorama/feature_mos/doc/feature_mos_API_doxyfile
new file mode 100755
index 0000000..dca8c8c
--- /dev/null
+++ b/perftests/panorama/feature_mos/doc/feature_mos_API_doxyfile
@@ -0,0 +1,1557 @@
+# Doxyfile 1.6.1
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+#       TAG = value [value, ...]
+# For lists items can also be appended using:
+#       TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all
+# text before the first occurrence of this tag. Doxygen uses libiconv (or the
+# iconv built into libc) for the transcoding. See
+# http://www.gnu.org/software/libiconv for the list of possible encodings.
+
+DOXYFILE_ENCODING      = UTF-8
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
+# by quotes) that should identify the project.
+
+PROJECT_NAME           =
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number.
+# This could be handy for archiving the generated documentation or
+# if some version control system is used.
+
+PROJECT_NUMBER         =
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
+# base path where the generated documentation will be put.
+# If a relative path is entered, it will be relative to the location
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY       = .
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
+# 4096 sub-directories (in 2 levels) under the output directory of each output
+# format and will distribute the generated files over these directories.
+# Enabling this option can be useful when feeding doxygen a huge amount of
+# source files, where putting all generated files in the same directory would
+# otherwise cause performance problems for the file system.
+
+CREATE_SUBDIRS         = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# The default language is English, other supported languages are:
+# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
+# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
+# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
+# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
+# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak,
+# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
+
+OUTPUT_LANGUAGE        = English
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
+# include brief member descriptions after the members that are listed in
+# the file and class documentation (similar to JavaDoc).
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
+# the brief description of a member or function before the detailed description.
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF           = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator
+# that is used to form the text in various listings. Each string
+# in this list, if found as the leading text of the brief description, will be
+# stripped from the text and the result after processing the whole list, is
+# used as the annotated text. Otherwise, the brief description is used as-is.
+# If left blank, the following values are used ("$name" is automatically
+# replaced with the name of the entity): "The $name class" "The $name widget"
+# "The $name file" "is" "provides" "specifies" "contains"
+# "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF       = "The $name class" \
+                         "The $name widget" \
+                         "The $name file" \
+                         is \
+                         provides \
+                         specifies \
+                         contains \
+                         represents \
+                         a \
+                         an \
+                         the
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# Doxygen will generate a detailed section even if there is only a brief
+# description.
+
+ALWAYS_DETAILED_SEC    = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+
+INLINE_INHERITED_MEMB  = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
+# path before files name in the file list and in the header files. If set
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES        = YES
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
+# can be used to strip a user-defined part of the path. Stripping is
+# only done if one of the specified strings matches the left-hand part of
+# the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the
+# path to strip.
+
+STRIP_FROM_PATH        = /Users/dimitri/doxygen/mail/1.5.7/doxywizard/
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
+# the path mentioned in the documentation of a class, which tells
+# the reader which header file to include in order to use a class.
+# If left blank only the name of the header file containing the class
+# definition is used. Otherwise one should specify the include paths that
+# are normally passed to the compiler using the -I flag.
+
+STRIP_FROM_INC_PATH    =
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
+# (but less readable) file names. This can be useful is your file systems
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES            = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
+# will interpret the first line (until the first dot) of a JavaDoc-style
+# comment as the brief description. If set to NO, the JavaDoc
+# comments will behave just like regular Qt-style comments
+# (thus requiring an explicit @brief command for a brief description.)
+
+JAVADOC_AUTOBRIEF      = NO
+
+# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
+# interpret the first line (until the first dot) of a Qt-style
+# comment as the brief description. If set to NO, the comments
+# will behave just like regular Qt-style comments (thus requiring
+# an explicit \brief command for a brief description.)
+
+QT_AUTOBRIEF           = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
+# treat a multi-line C++ special comment block (i.e. a block of //! or ///
+# comments) as a brief description. This used to be the default behaviour.
+# The new default is to treat a multi-line C++ comment block as a detailed
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
+# member inherits the documentation from any documented member that it
+# re-implements.
+
+INHERIT_DOCS           = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
+# a new page for each member. If set to NO, the documentation of a member will
+# be part of the file/class/namespace that contains it.
+
+SEPARATE_MEMBER_PAGES  = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab.
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE               = 8
+
+# This tag can be used to specify a number of aliases that acts
+# as commands in the documentation. An alias has the form "name=value".
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to
+# put the command \sideeffect (or @sideeffect) in the documentation, which
+# will result in a user-defined paragraph with heading "Side Effects:".
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES                =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
+# sources only. Doxygen will then generate output that is more tailored for C.
+# For instance, some of the names that are used will be different. The list
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C  = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
+# sources only. Doxygen will then generate output that is more tailored for
+# Java. For instance, namespaces will be presented as packages, qualified
+# scopes will look different, etc.
+
+OPTIMIZE_OUTPUT_JAVA   = NO
+
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources only. Doxygen will then generate output that is more tailored for
+# Fortran.
+
+OPTIMIZE_FOR_FORTRAN   = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for
+# VHDL.
+
+OPTIMIZE_OUTPUT_VHDL   = NO
+
+# Doxygen selects the parser to use depending on the extension of the files it parses.
+# With this tag you can assign which parser to use for a given extension.
+# Doxygen has a built-in mapping, but you can override or extend it using this tag.
+# The format is ext=language, where ext is a file extension, and language is one of
+# the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP,
+# Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat
+# .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran),
+# use: inc=Fortran f=C. Note that for custom extensions you also need to set
+# FILE_PATTERNS otherwise the files are not read by doxygen.
+
+EXTENSION_MAPPING      =
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should
+# set this tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
+# func(std::string) {}). This also make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+
+BUILTIN_STL_SUPPORT    = NO
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+
+CPP_CLI_SUPPORT        = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
+# Doxygen will parse them like normal C++ but will assume all classes use public
+# instead of private inheritance when no explicit protection keyword is present.
+
+SIP_SUPPORT            = NO
+
+# For Microsoft's IDL there are propget and propput attributes to indicate getter
+# and setter methods for a property. Setting this option to YES (the default)
+# will make doxygen to replace the get and set methods by a property in the
+# documentation. This will only work if the methods are indeed getting or
+# setting a simple type. If this is not the case, or you want to show the
+# methods anyway, you should set this option to NO.
+
+IDL_PROPERTY_SUPPORT   = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC   = NO
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
+# the same type (for instance a group of public functions) to be put as a
+# subgroup of that type (e.g. under the Public Functions section). Set it to
+# NO to prevent subgrouping. Alternatively, this can be done per class using
+# the \nosubgrouping command.
+
+SUBGROUPING            = YES
+
+# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
+# is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically
+# be useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+
+TYPEDEF_HIDES_STRUCT   = NO
+
+# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
+# determine which symbols to keep in memory and which to flush to disk.
+# When the cache is full, less often used symbols will be written to disk.
+# For small to medium size projects (<1000 input files) the default value is
+# probably good enough. For larger projects a too small cache size can cause
+# doxygen to be busy swapping symbols to and from disk most of the time
+# causing a significant performance penality.
+# If the system has enough physical memory increasing the cache will improve the
+# performance by keeping more symbols in memory. Note that the value works on
+# a logarithmic scale so increasing the size by one will rougly double the
+# memory usage. The cache size is given by this formula:
+# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
+# corresponding to a cache size of 2^16 = 65536 symbols
+
+SYMBOL_CACHE_SIZE      = 0
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available.
+# Private class members and static file members will be hidden unless
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL            = NO
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
+# will be included in the documentation.
+
+EXTRACT_PRIVATE        = NO
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file
+# will be included in the documentation.
+
+EXTRACT_STATIC         = NO
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
+# defined locally in source files will be included in the documentation.
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES  = YES
+
+# This flag is only useful for Objective-C code. When set to YES local
+# methods, which are defined in the implementation section but not in
+# the interface are included in the documentation.
+# If set to NO (the default) only methods in the interface are included.
+
+EXTRACT_LOCAL_METHODS  = NO
+
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base
+# name of the file that contains the anonymous namespace. By default
+# anonymous namespace are hidden.
+
+EXTRACT_ANON_NSPACES   = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
+# undocumented members of documented classes, files or namespaces.
+# If set to NO (the default) these members will be included in the
+# various overviews, but no documentation section is generated.
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS     = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy.
+# If set to NO (the default) these classes will be included in the various
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES     = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
+# friend (class|struct|union) declarations.
+# If set to NO (the default) these declarations will be included in the
+# documentation.
+
+HIDE_FRIEND_COMPOUNDS  = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
+# documentation blocks found inside the body of a function.
+# If set to NO (the default) these blocks will be appended to the
+# function's detailed documentation block.
+
+HIDE_IN_BODY_DOCS      = NO
+
+# The INTERNAL_DOCS tag determines if documentation
+# that is typed after a \internal command is included. If the tag is set
+# to NO (the default) then the documentation will be excluded.
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS          = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
+# file names in lower-case letters. If set to YES upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+
+CASE_SENSE_NAMES       = NO
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
+# will show members with their full class and namespace scopes in the
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES       = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
+# will put a list of the files that are included by a file in the documentation
+# of that file.
+
+SHOW_INCLUDE_FILES     = YES
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
+# is inserted in the documentation for inline members.
+
+INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
+# will sort the (detailed) documentation of file and class members
+# alphabetically by member name. If set to NO the members will appear in
+# declaration order.
+
+SORT_MEMBER_DOCS       = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
+# brief documentation of file, namespace and class members alphabetically
+# by member name. If set to NO (the default) the members will appear in
+# declaration order.
+
+SORT_BRIEF_DOCS        = NO
+
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
+# will sort the (brief and detailed) documentation of class members so that
+# constructors and destructors are listed first. If set to NO (the default)
+# the constructors will appear in the respective orders defined by
+# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
+# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
+# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
+# hierarchy of group names into alphabetical order. If set to NO (the default)
+# the group names will appear in their defined order.
+
+SORT_GROUP_NAMES       = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
+# sorted by fully-qualified names, including namespaces. If set to
+# NO (the default), the class list will be sorted only by class name,
+# not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the
+# alphabetical list.
+
+SORT_BY_SCOPE_NAME     = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or
+# disable (NO) the todo list. This list is created by putting \todo
+# commands in the documentation.
+
+GENERATE_TODOLIST      = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or
+# disable (NO) the test list. This list is created by putting \test
+# commands in the documentation.
+
+GENERATE_TESTLIST      = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or
+# disable (NO) the bug list. This list is created by putting \bug
+# commands in the documentation.
+
+GENERATE_BUGLIST       = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
+# disable (NO) the deprecated list. This list is created by putting
+# \deprecated commands in the documentation.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS       =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
+# the initial value of a variable or define consists of for it to appear in
+# the documentation. If the initializer consists of more lines than specified
+# here it will be hidden. Use a value of 0 to hide initializers completely.
+# The appearance of the initializer of individual variables and defines in the
+# documentation can be controlled using \showinitializer or \hideinitializer
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES  = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
+# at the bottom of the documentation of classes and structs. If set to YES the
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES        = YES
+
+# If the sources in your project are distributed over multiple directories
+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
+# in the documentation. The default is NO.
+
+SHOW_DIRECTORIES       = NO
+
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
+# This will remove the Files entry from the Quick Index and from the
+# Folder Tree View (if specified). The default is YES.
+
+SHOW_FILES             = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
+# Namespaces page.  This will remove the Namespaces entry from the Quick Index
+# and from the Folder Tree View (if specified). The default is YES.
+
+SHOW_NAMESPACES        = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command <command> <input-file>, where <command> is the value of
+# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
+# provided by doxygen. Whatever the program writes to standard output
+# is used as the file version. See the manual for examples.
+
+FILE_VERSION_FILTER    =
+
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by
+# doxygen. The layout file controls the global structure of the generated output files
+# in an output format independent way. The create the layout file that represents
+# doxygen's defaults, run doxygen with the -l option. You can optionally specify a
+# file name after the option, if omitted DoxygenLayout.xml will be used as the name
+# of the layout file.
+
+LAYOUT_FILE            =
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET                  = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated by doxygen. Possible values are YES and NO. If left blank
+# NO is used.
+
+WARNINGS               = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED   = YES
+
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some
+# parameters in a documented function, or documenting parameters that
+# don't exist or using markup commands wrongly.
+
+WARN_IF_DOC_ERROR      = YES
+
+# This WARN_NO_PARAMDOC option can be abled to get warnings for
+# functions that are documented, but have no documentation for their parameters
+# or return value. If set to NO (the default) doxygen will only warn about
+# wrong or incomplete parameter documentation, but not about the absence of
+# documentation.
+
+WARN_NO_PARAMDOC       = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that
+# doxygen can produce. The string should contain the $file, $line, and $text
+# tags, which will be replaced by the file and line number from which the
+# warning originated and the warning text. Optionally the format may contain
+# $version, which will be replaced by the version of the file (if it could
+# be obtained via FILE_VERSION_FILTER)
+
+WARN_FORMAT            = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning
+# and error messages should be written. If left blank the output is written
+# to stderr.
+
+WARN_LOGFILE           =
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain
+# documented source files. You may enter file names like "myfile.cpp" or
+# directories like "/usr/src/myproject". Separate the files or directories
+# with spaces.
+
+INPUT                  = ../src/mosaic/Mosaic.h
+
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
+# also the default input encoding. Doxygen uses libiconv (or the iconv built
+# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
+# the list of possible encodings.
+
+INPUT_ENCODING         = UTF-8
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank the following patterns are tested:
+# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
+# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
+
+FILE_PATTERNS          = *.c \
+                         *.cc \
+                         *.cxx \
+                         *.cpp \
+                         *.c++ \
+                         *.d \
+                         *.java \
+                         *.ii \
+                         *.ixx \
+                         *.ipp \
+                         *.i++ \
+                         *.inl \
+                         *.h \
+                         *.hh \
+                         *.hxx \
+                         *.hpp \
+                         *.h++ \
+                         *.idl \
+                         *.odl \
+                         *.cs \
+                         *.php \
+                         *.php3 \
+                         *.inc \
+                         *.m \
+                         *.mm \
+                         *.dox \
+                         *.py \
+                         *.f90 \
+                         *.f \
+                         *.vhd \
+                         *.vhdl
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories
+# should be searched for input files as well. Possible values are YES and NO.
+# If left blank NO is used.
+
+RECURSIVE              = NO
+
+# The EXCLUDE tag can be used to specify files and/or directories that should
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE                =
+
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
+# directories that are symbolic links (a Unix filesystem feature) are excluded
+# from the input.
+
+EXCLUDE_SYMLINKS       = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories. Note that the wildcards are matched
+# against the file with absolute path, so to exclude all test directories
+# for example use the pattern */test/*
+
+EXCLUDE_PATTERNS       =
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# AClass::ANamespace, ANamespace::*Test
+
+EXCLUDE_SYMBOLS        =
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or
+# directories that contain example code fragments that are included (see
+# the \include command).
+
+EXAMPLE_PATH           =
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank all files are included.
+
+EXAMPLE_PATTERNS       = *
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude
+# commands irrespective of the value of the RECURSIVE tag.
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE      = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or
+# directories that contain image that are included in the documentation (see
+# the \image command).
+
+IMAGE_PATH             =
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command <filter> <input-file>, where <filter>
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
+# input file. Doxygen will then use the output that the filter program writes
+# to standard output.  If FILTER_PATTERNS is specified, this tag will be
+# ignored.
+
+INPUT_FILTER           =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis.  Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match.  The filters are a list of the form:
+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
+# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
+# is applied to all files.
+
+FILTER_PATTERNS        =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will be used to filter the input files when producing source
+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+
+FILTER_SOURCE_FILES    = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will
+# be generated. Documented entities will be cross-referenced with these sources.
+# Note: To get rid of all source code in the generated output, make sure also
+# VERBATIM_HEADERS is set to NO.
+
+SOURCE_BROWSER         = NO
+
+# Setting the INLINE_SOURCES tag to YES will include the body
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES         = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
+# doxygen to hide any special comment blocks from generated source code
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS    = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES
+# then for each documented function all documented
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = NO
+
+# If the REFERENCES_RELATION tag is set to YES
+# then for each documented function all documented entities
+# called/used by that function will be listed.
+
+REFERENCES_RELATION    = NO
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
+# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
+# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
+# link to the source code.  Otherwise they will link to the documentation.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code
+# will point to the HTML generated by the htags(1) tool instead of doxygen
+# built-in source browser. The htags tool is part of GNU's global source
+# tagging system (see http://www.gnu.org/software/global/global.html). You
+# will need version 4.8.6 or higher.
+
+USE_HTAGS              = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
+# will generate a verbatim copy of the header file for each class for
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS       = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
+# of all compounds will be generated. Enable this if the project
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX     = NO
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX    = 5
+
+# In case all classes in a project start with a common prefix, all
+# classes will be put under the same header in the alphabetical index.
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX          =
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
+# generate HTML output.
+
+GENERATE_HTML          = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT            = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
+# doxygen will generate files with .html extension.
+
+HTML_FILE_EXTENSION    = .html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard header.
+
+HTML_HEADER            =
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard footer.
+
+HTML_FOOTER            =
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
+# style sheet that is used by each HTML page. It can be used to
+# fine-tune the look of the HTML output. If the tag is left blank doxygen
+# will generate a default style sheet. Note that doxygen will try to copy
+# the style sheet file to the HTML output directory, so don't put your own
+# stylesheet in the HTML output directory as well, or it will be erased!
+
+HTML_STYLESHEET        =
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
+# files or namespaces will be aligned in HTML using tables. If set to
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS     = YES
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded. For this to work a browser that supports
+# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
+# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
+
+HTML_DYNAMIC_SECTIONS  = NO
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files
+# will be generated that can be used as input for Apple's Xcode 3
+# integrated development environment, introduced with OSX 10.5 (Leopard).
+# To create a documentation set, doxygen will generate a Makefile in the
+# HTML output directory. Running make will produce the docset in that
+# directory and running "make install" will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
+# it at startup.
+# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information.
+
+GENERATE_DOCSET        = NO
+
+# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
+# feed. A documentation feed provides an umbrella under which multiple
+# documentation sets from a single provider (such as a company or product suite)
+# can be grouped.
+
+DOCSET_FEEDNAME        = "Doxygen generated docs"
+
+# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
+# should uniquely identify the documentation set bundle. This should be a
+# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
+# will append .docset to the name.
+
+DOCSET_BUNDLE_ID       = org.doxygen.Project
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files
+# will be generated that can be used as input for tools like the
+# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP      = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
+# be used to specify the file name of the resulting .chm file. You
+# can add a path in front of the file if the result should not be
+# written to the html output directory.
+
+CHM_FILE               =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
+# be used to specify the location (absolute path including file name) of
+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
+# the HTML help compiler on the generated index.hhp.
+
+HHC_LOCATION           =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
+# controls if a separate .chi index file is generated (YES) or that
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI           = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
+# is used to encode HtmlHelp index (hhk), content (hhc) and project file
+# content.
+
+CHM_INDEX_ENCODING     =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
+# controls whether a binary table of contents is generated (YES) or a
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members
+# to the contents of the HTML help documentation and to the tree view.
+
+TOC_EXPAND             = NO
+
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER
+# are set, an additional index file will be generated that can be used as input for
+# Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated
+# HTML documentation.
+
+GENERATE_QHP           = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
+# be used to specify the file name of the resulting .qch file.
+# The path specified is relative to the HTML output folder.
+
+QCH_FILE               =
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating
+# Qt Help Project output. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#namespace
+
+QHP_NAMESPACE          =
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
+# Qt Help Project output. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#virtual-folders
+
+QHP_VIRTUAL_FOLDER     = doc
+
+# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add.
+# For more information please see
+# http://doc.trolltech.com/qthelpproject.html#custom-filters
+
+QHP_CUST_FILTER_NAME   =
+
+# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see
+# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>.
+
+QHP_CUST_FILTER_ATTRS  =
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's
+# filter section matches.
+# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">Qt Help Project / Filter Attributes</a>.
+
+QHP_SECT_FILTER_ATTRS  =
+
+# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
+# be used to specify the location of Qt's qhelpgenerator.
+# If non-empty doxygen will try to run qhelpgenerator on the generated
+# .qhp file.
+
+QHG_LOCATION           =
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
+# top of each HTML page. The value NO (the default) enables the index and
+# the value YES disables it.
+
+DISABLE_INDEX          = NO
+
+# This tag can be used to set the number of enum values (range [1..20])
+# that doxygen will group on one line in the generated HTML documentation.
+
+ENUM_VALUES_PER_LINE   = 4
+
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information.
+# If the tag value is set to YES, a side panel will be generated
+# containing a tree-like index structure (just like the one that
+# is generated for HTML Help). For this to work a browser that supports
+# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
+# Windows users are probably better off using the HTML help feature.
+
+GENERATE_TREEVIEW      = NO
+
+# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
+# and Class Hierarchy pages using a tree view instead of an ordered list.
+
+USE_INLINE_TREES       = NO
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
+# used to set the initial width (in pixels) of the frame in which the tree
+# is shown.
+
+TREEVIEW_WIDTH         = 250
+
+# Use this tag to change the font size of Latex formulas included
+# as images in the HTML documentation. The default is 10. Note that
+# when you change the font size after a successful doxygen run you need
+# to manually remove any form_*.png images from the HTML output directory
+# to force them to be regenerated.
+
+FORMULA_FONTSIZE       = 10
+
+# When the SEARCHENGINE tag is enable doxygen will generate a search box
+# for the HTML output. The underlying search engine uses javascript
+# and DHTML and should work on any modern browser. Note that when using
+# HTML help (GENERATE_HTMLHELP) or Qt help (GENERATE_QHP)
+# there is already a search function so this one should typically
+# be disabled.
+
+SEARCHENGINE           = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
+# generate Latex output.
+
+GENERATE_LATEX         = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT           = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked. If left blank `latex' will be used as the default command name.
+
+LATEX_CMD_NAME         = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
+# generate index for LaTeX. If left blank `makeindex' will be used as the
+# default command name.
+
+MAKEINDEX_CMD_NAME     = makeindex
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
+# LaTeX documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used
+# by the printer. Possible values are: a4, a4wide, letter, legal and
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE             = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES         =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
+# the generated latex document. The header should contain everything until
+# the first chapter. If it is left blank doxygen will generate a
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER           =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will
+# contain links (just like the HTML output) instead of page references
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS         = YES
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
+# plain latex in the generated Makefile. Set this option to YES to get a
+# higher quality PDF documentation.
+
+USE_PDFLATEX           = YES
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
+# command to the generated LaTeX files. This will instruct LaTeX to keep
+# running if errors occur, instead of asking the user for help.
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE        = NO
+
+# If LATEX_HIDE_INDICES is set to YES then doxygen will not
+# include the index chapters (such as File Index, Compound Index, etc.)
+# in the output.
+
+LATEX_HIDE_INDICES     = NO
+
+# If LATEX_SOURCE_CODE is set to YES then doxygen will include
+# source code with syntax highlighting in the LaTeX output.
+# Note that which sources are shown also depends on other settings
+# such as SOURCE_BROWSER.
+
+LATEX_SOURCE_CODE      = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
+# The RTF output is optimized for Word 97 and may not look very pretty with
+# other RTF readers or editors.
+
+GENERATE_RTF           = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT             = rtf
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
+# RTF documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
+# will contain hyperlink fields. The RTF file will
+# contain links (just like the HTML output) instead of page references.
+# This makes the output suitable for online browsing using WORD or other
+# programs which support those fields.
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS         = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's
+# config file, i.e. a series of assignments. You only have to provide
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE    =
+
+# Set optional variables used in the generation of an rtf document.
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE    =
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
+# generate man pages
+
+GENERATE_MAN           = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT             = man
+
+# The MAN_EXTENSION tag determines the extension that is added to
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION          = .3
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
+# then it will generate one additional man file for each entity
+# documented in the real man page(s). These additional files
+# only source the real man page, but without them the man command
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS              = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will
+# generate an XML file that captures the structure of
+# the code including all documentation.
+
+GENERATE_XML           = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `xml' will be used as the default path.
+
+XML_OUTPUT             = xml
+
+# The XML_SCHEMA tag can be used to specify an XML schema,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_SCHEMA             =
+
+# The XML_DTD tag can be used to specify an XML DTD,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_DTD                =
+
+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
+# dump the program listings (including syntax highlighting
+# and cross-referencing information) to the XML output. Note that
+# enabling this will significantly increase the size of the XML output.
+
+XML_PROGRAMLISTING     = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
+# generate an AutoGen Definitions (see autogen.sf.net) file
+# that captures the structure of the code including all
+# documentation. Note that this feature is still experimental
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF   = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES Doxygen will
+# generate a Perl module file that captures the structure of
+# the code including all documentation. Note that this
+# feature is still experimental and incomplete at the
+# moment.
+
+GENERATE_PERLMOD       = NO
+
+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
+# the necessary Makefile rules, Perl scripts and LaTeX code to be able
+# to generate PDF and DVI output from the Perl module output.
+
+PERLMOD_LATEX          = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
+# nicely formatted so it can be parsed by a human reader.  This is useful
+# if you want to understand what is going on.  On the other hand, if this
+# tag is set to NO the size of the Perl module output will be much smaller
+# and Perl will parse it just the same.
+
+PERLMOD_PRETTY         = YES
+
+# The names of the make variables in the generated doxyrules.make file
+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
+# This is useful so different doxyrules.make files included by the same
+# Makefile don't overwrite each other's variables.
+
+PERLMOD_MAKEVAR_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
+# evaluate all C-preprocessor directives found in the sources and include
+# files.
+
+ENABLE_PREPROCESSING   = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
+# names in the source code. If set to NO (the default) only conditional
+# compilation will be performed. Macro expansion can be done in a controlled
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION        = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
+# then the macro expansion is limited to the macros specified with the
+# PREDEFINED and EXPAND_AS_DEFINED tags.
+
+EXPAND_ONLY_PREDEF     = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES        = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by
+# the preprocessor.
+
+INCLUDE_PATH           =
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will
+# be used.
+
+INCLUDE_FILE_PATTERNS  =
+
+# The PREDEFINED tag can be used to specify one or more macro names that
+# are defined before the preprocessor is started (similar to the -D option of
+# gcc). The argument of the tag is a list of macros of the form: name
+# or name=definition (no spaces). If the definition and the = are
+# omitted =1 is assumed. To prevent a macro definition from being
+# undefined via #undef or recursively expanded use the := operator
+# instead of the = operator.
+
+PREDEFINED             =
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
+# this tag can be used to specify a list of macro names that should be expanded.
+# The macro definition that is found in the sources will be used.
+# Use the PREDEFINED tag if you want to use a different macro definition.
+
+EXPAND_AS_DEFINED      =
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
+# doxygen's preprocessor will remove all function-like macros that are alone
+# on a line, have an all uppercase name, and do not end with a semicolon. Such
+# function macros are typically used for boiler-plate code, and will confuse
+# the parser if not removed.
+
+SKIP_FUNCTION_MACROS   = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES option can be used to specify one or more tagfiles.
+# Optionally an initial location of the external documentation
+# can be added for each tagfile. The format of a tag file without
+# this location is as follows:
+#   TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+#   TAGFILES = file1=loc1 "file2 = loc2" ...
+# where "loc1" and "loc2" can be relative or absolute paths or
+# URLs. If a location is present for each tag, the installdox tool
+# does not have to be run to correct the links.
+# Note that each tag file must have a unique name
+# (where the name does NOT include the path)
+# If a tag file is not located in the directory in which doxygen
+# is run, you must also specify the path to the tagfile here.
+
+TAGFILES               =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE       =
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed
+# in the class index. If set to NO only the inherited external classes
+# will be listed.
+
+ALLEXTERNALS           = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will
+# be listed.
+
+EXTERNAL_GROUPS        = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH              = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
+# or super classes. Setting the tag to NO turns the diagrams off. Note that
+# this option is superseded by the HAVE_DOT option below. This is only a
+# fallback. It is recommended to install and use dot, since it yields more
+# powerful graphs.
+
+CLASS_DIAGRAMS         = YES
+
+# You can define message sequence charts within doxygen comments using the \msc
+# command. Doxygen will then run the mscgen tool (see
+# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
+# documentation. The MSCGEN_PATH tag allows you to specify the directory where
+# the mscgen tool resides. If left empty the tool is assumed to be found in the
+# default search path.
+
+MSCGEN_PATH            =
+
+# If set to YES, the inheritance and collaboration graphs will hide
+# inheritance and usage relations if the target is undocumented
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS   = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz, a graph visualization
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT               = NO
+
+# By default doxygen will write a font called FreeSans.ttf to the output
+# directory and reference it in all dot files that doxygen generates. This
+# font does not include all possible unicode characters however, so when you need
+# these (or just want a differently looking font) you can specify the font name
+# using DOT_FONTNAME. You need need to make sure dot is able to find the font,
+# which can be done by putting it in a standard location or by setting the
+# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory
+# containing the font.
+
+DOT_FONTNAME           = FreeSans
+
+# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
+# The default size is 10pt.
+
+DOT_FONTSIZE           = 10
+
+# By default doxygen will tell dot to use the output directory to look for the
+# FreeSans.ttf font (which doxygen will put there itself). If you specify a
+# different font using DOT_FONTNAME you can set the path where dot
+# can find it using this tag.
+
+DOT_FONTPATH           =
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect inheritance relations. Setting this tag to YES will force the
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH            = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect implementation dependencies (inheritance, containment, and
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH    = YES
+
+# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for groups, showing the direct groups dependencies
+
+GROUP_GRAPHS           = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+
+UML_LOOK               = NO
+
+# If set to YES, the inheritance and collaboration graphs will show the
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS     = NO
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
+# tags are set to YES then doxygen will generate a graph for each documented
+# file showing the direct and indirect include dependencies of the file with
+# other documented files.
+
+INCLUDE_GRAPH          = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
+# documented header file showing the documented files that directly or
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH      = YES
+
+# If the CALL_GRAPH and HAVE_DOT options are set to YES then
+# doxygen will generate a call dependency graph for every global function
+# or class method. Note that enabling this option will significantly increase
+# the time of a run. So in most cases it will be better to enable call graphs
+# for selected functions only using the \callgraph command.
+
+CALL_GRAPH             = NO
+
+# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
+# doxygen will generate a caller dependency graph for every global function
+# or class method. Note that enabling this option will significantly increase
+# the time of a run. So in most cases it will be better to enable caller
+# graphs for selected functions only using the \callergraph command.
+
+CALLER_GRAPH           = NO
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
+# will graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY    = YES
+
+# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
+# then doxygen will show the dependencies a directory has on other directories
+# in a graphical way. The dependency relations are determined by the #include
+# relations between the files in the directories.
+
+DIRECTORY_GRAPH        = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. Possible values are png, jpg, or gif
+# If left blank png will be used.
+
+DOT_IMAGE_FORMAT       = png
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+
+DOT_PATH               =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the
+# \dotfile command).
+
+DOTFILE_DIRS           =
+
+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
+# nodes that will be shown in the graph. If the number of nodes in a graph
+# becomes larger than this value, doxygen will truncate the graph, which is
+# visualized by representing a node as a red box. Note that doxygen if the
+# number of direct children of the root node in a graph is already larger than
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
+# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+
+DOT_GRAPH_MAX_NODES    = 50
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
+# graphs generated by dot. A depth value of 3 means that only nodes reachable
+# from the root by following a path via at most 3 edges will be shown. Nodes
+# that lay further from the root node will be omitted. Note that setting this
+# option to 1 or 2 may greatly reduce the computation time needed for large
+# code bases. Also note that the size of a graph can be further restricted by
+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+
+MAX_DOT_GRAPH_DEPTH    = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, because dot on Windows does not
+# seem to support this out of the box. Warning: Depending on the platform used,
+# enabling this option may lead to badly anti-aliased labels on the edges of
+# a graph (i.e. they become hard to read).
+
+DOT_TRANSPARENT        = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10)
+# support this, this feature is disabled by default.
+
+DOT_MULTI_TARGETS      = NO
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
+# generate a legend page explaining the meaning of the various boxes and
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
+# remove the intermediate dot files that are used to generate
+# the various graphs.
+
+DOT_CLEANUP            = YES
diff --git a/perftests/panorama/feature_mos/src/mosaic/AlignFeatures.cpp b/perftests/panorama/feature_mos/src/mosaic/AlignFeatures.cpp
new file mode 100644
index 0000000..aeabf8f
--- /dev/null
+++ b/perftests/panorama/feature_mos/src/mosaic/AlignFeatures.cpp
@@ -0,0 +1,231 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+///////////////////////////////////////////////////
+// AlignFeatures.cpp
+// S.O. # :
+// Author(s): zkira, mbansal, bsouthall, narodits
+// $Id: AlignFeatures.cpp,v 1.20 2011/06/17 13:35:47 mbansal Exp $
+
+#include <stdio.h>
+#include <string.h>
+
+#include "trsMatrix.h"
+#include "MatrixUtils.h"
+#include "AlignFeatures.h"
+#include "Log.h"
+
+#define LOG_TAG "AlignFeatures"
+
+Align::Align()
+{
+  width = height = 0;
+  frame_number = 0;
+  num_frames_captured = 0;
+  reference_frame_index = 0;
+  db_Identity3x3(Hcurr);
+  db_Identity3x3(Hprev);
+}
+
+Align::~Align()
+{
+  // Free gray-scale image
+  if (imageGray != ImageUtils::IMAGE_TYPE_NOIMAGE)
+    ImageUtils::freeImage(imageGray);
+}
+
+char* Align::getRegProfileString()
+{
+  return reg.profile_string;
+}
+
+int Align::initialize(int width, int height, bool _quarter_res, float _thresh_still)
+{
+  int    nr_corners = DEFAULT_NR_CORNERS;
+  double max_disparity = DEFAULT_MAX_DISPARITY;
+  int    motion_model_type = DEFAULT_MOTION_MODEL;
+  int nrsamples = DB_DEFAULT_NR_SAMPLES;
+  double scale = DB_POINT_STANDARDDEV;
+  int chunk_size = DB_DEFAULT_CHUNK_SIZE;
+  int nrhorz = width/48;  // Empirically determined number of horizontal
+  int nrvert = height/60; // and vertical buckets for harris corner detection.
+  bool linear_polish = false;
+  unsigned int reference_update_period = DEFAULT_REFERENCE_UPDATE_PERIOD;
+
+  const bool DEFAULT_USE_SMALLER_MATCHING_WINDOW = false;
+  bool   use_smaller_matching_window = DEFAULT_USE_SMALLER_MATCHING_WINDOW;
+
+  quarter_res = _quarter_res;
+  thresh_still = _thresh_still;
+
+  frame_number = 0;
+  num_frames_captured = 0;
+  reference_frame_index = 0;
+  db_Identity3x3(Hcurr);
+  db_Identity3x3(Hprev);
+
+  if (!reg.Initialized())
+  {
+    reg.Init(width, height, motion_model_type, 20, linear_polish, quarter_res,
+            scale, reference_update_period, false, 0, nrsamples, chunk_size,
+            nr_corners, max_disparity, use_smaller_matching_window,
+            nrhorz, nrvert);
+  }
+  this->width = width;
+  this->height = height;
+
+  imageGray = ImageUtils::allocateImage(width, height, 1);
+
+  if (reg.Initialized())
+    return ALIGN_RET_OK;
+  else
+    return ALIGN_RET_ERROR;
+}
+
+int Align::addFrameRGB(ImageType imageRGB)
+{
+  ImageUtils::rgb2gray(imageGray, imageRGB, width, height);
+  return addFrame(imageGray);
+}
+
+int Align::addFrame(ImageType imageGray_)
+{
+  int ret_code = ALIGN_RET_OK;
+
+ // Obtain a vector of pointers to rows in image and pass in to dbreg
+  ImageType *m_rows = ImageUtils::imageTypeToRowPointers(imageGray_, width, height);
+
+  if (frame_number == 0)
+  {
+      reg.AddFrame(m_rows, Hcurr, true);    // Force this to be a reference frame
+      int num_corner_ref = reg.GetNrRefCorners();
+
+      if (num_corner_ref < MIN_NR_REF_CORNERS)
+      {
+          return ALIGN_RET_LOW_TEXTURE;
+      }
+  }
+  else
+  {
+      reg.AddFrame(m_rows, Hcurr, false);
+  }
+
+  // Average translation per frame =
+  //    [Translation from Frame0 to Frame(n-1)] / [(n-1)]
+  average_tx_per_frame = (num_frames_captured < 2) ? 0.0 :
+        Hprev[2] / (num_frames_captured - 1);
+
+  // Increment the captured frame counter if we already have a reference frame
+  num_frames_captured++;
+
+  if (frame_number != 0)
+  {
+    int num_inliers = reg.GetNrInliers();
+
+    if(num_inliers < MIN_NR_INLIERS)
+    {
+        ret_code = ALIGN_RET_FEW_INLIERS;
+
+        Hcurr[0] = 1.0;
+        Hcurr[1] = 0.0;
+        // Set this as the average per frame translation taking into acccount
+        // the separation of the current frame from the reference frame...
+        Hcurr[2] = -average_tx_per_frame *
+                (num_frames_captured - reference_frame_index);
+        Hcurr[3] = 0.0;
+        Hcurr[4] = 1.0;
+        Hcurr[5] = 0.0;
+        Hcurr[6] = 0.0;
+        Hcurr[7] = 0.0;
+        Hcurr[8] = 1.0;
+    }
+
+    if(fabs(Hcurr[2])<thresh_still && fabs(Hcurr[5])<thresh_still)  // Still camera
+    {
+        return ALIGN_RET_ERROR;
+    }
+
+    // compute the homography:
+    double Hinv33[3][3];
+    double Hprev33[3][3];
+    double Hcurr33[3][3];
+
+    // Invert and multiple with previous transformation
+    Matrix33::convert9to33(Hcurr33, Hcurr);
+    Matrix33::convert9to33(Hprev33, Hprev);
+    normProjMat33d(Hcurr33);
+
+    inv33d(Hcurr33, Hinv33);
+
+    mult33d(Hcurr33, Hprev33, Hinv33);
+    normProjMat33d(Hcurr33);
+    Matrix9::convert33to9(Hprev, Hcurr33);
+    // Since we have already factored the current transformation
+    // into Hprev, we can reset the Hcurr to identity
+    db_Identity3x3(Hcurr);
+
+    // Update the reference frame to be the current frame
+    reg.UpdateReference(m_rows,quarter_res,false);
+
+    // Update the reference frame index
+    reference_frame_index = num_frames_captured;
+  }
+
+  frame_number++;
+
+  return ret_code;
+}
+
+// Get current transformation
+int Align::getLastTRS(double trs[3][3])
+{
+  if (frame_number < 1)
+  {
+    trs[0][0] = 1.0;
+    trs[0][1] = 0.0;
+    trs[0][2] = 0.0;
+    trs[1][0] = 0.0;
+    trs[1][1] = 1.0;
+    trs[1][2] = 0.0;
+    trs[2][0] = 0.0;
+    trs[2][1] = 0.0;
+    trs[2][2] = 1.0;
+    return ALIGN_RET_ERROR;
+  }
+
+  // Note that the logic here handles the case, where a frame is not used for
+  // mosaicing but is captured and used in the preview-rendering.
+  // For these frames, we don't set Hcurr to identity in AddFrame() and the
+  // logic here appends their transformation to Hprev to render them with the
+  // correct transformation. For the frames we do use for mosaicing, we already
+  // append their Hcurr to Hprev in AddFrame() and then set Hcurr to identity.
+
+  double Hinv33[3][3];
+  double Hprev33[3][3];
+  double Hcurr33[3][3];
+
+  Matrix33::convert9to33(Hcurr33, Hcurr);
+  normProjMat33d(Hcurr33);
+  inv33d(Hcurr33, Hinv33);
+
+  Matrix33::convert9to33(Hprev33, Hprev);
+
+  mult33d(trs, Hprev33, Hinv33);
+  normProjMat33d(trs);
+
+  return ALIGN_RET_OK;
+}
+
diff --git a/perftests/panorama/feature_mos/src/mosaic/AlignFeatures.h b/perftests/panorama/feature_mos/src/mosaic/AlignFeatures.h
new file mode 100644
index 0000000..19f3905
--- /dev/null
+++ b/perftests/panorama/feature_mos/src/mosaic/AlignFeatures.h
@@ -0,0 +1,93 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+///////////////////////////////////////////////////
+// Align.h
+// S.O. # :
+// Author(s): zkira
+// $Id: AlignFeatures.h,v 1.13 2011/06/17 13:35:47 mbansal Exp $
+
+#ifndef ALIGN_H
+#define ALIGN_H
+
+#include "dbreg/dbreg.h"
+#include <db_utilities_camera.h>
+
+#include "ImageUtils.h"
+#include "MatrixUtils.h"
+
+class Align {
+
+public:
+  // Types of alignment possible
+  static const int ALIGN_TYPE_PAN    = 1;
+
+  // Return codes
+  static const int ALIGN_RET_LOW_TEXTURE  = -2;
+  static const int ALIGN_RET_ERROR        = -1;
+  static const int ALIGN_RET_OK           = 0;
+  static const int ALIGN_RET_FEW_INLIERS  = 1;
+
+  ///// Settings for feature-based alignment
+  // Number of features to use from corner detection
+  static const int DEFAULT_NR_CORNERS=750;
+  static const double DEFAULT_MAX_DISPARITY=0.1;//0.4;
+  // Type of homography to model
+  static const int DEFAULT_MOTION_MODEL=DB_HOMOGRAPHY_TYPE_R_T;
+// static const int DEFAULT_MOTION_MODEL=DB_HOMOGRAPHY_TYPE_PROJECTIVE;
+//  static const int DEFAULT_MOTION_MODEL=DB_HOMOGRAPHY_TYPE_AFFINE;
+  static const unsigned int DEFAULT_REFERENCE_UPDATE_PERIOD=1500; //  Manual reference frame update so set this to a large number
+
+  static const int MIN_NR_REF_CORNERS = 25;
+  static const int MIN_NR_INLIERS = 10;
+
+  Align();
+  ~Align();
+
+  // Initialization of structures, etc.
+  int initialize(int width, int height, bool quarter_res, float thresh_still);
+
+  // Add a frame.  Note: The alignment computation is performed
+  // in this function
+  int addFrameRGB(ImageType image);
+  int addFrame(ImageType image);
+
+  // Obtain the TRS matrix from the last two frames
+  int getLastTRS(double trs[3][3]);
+  char* getRegProfileString();
+
+protected:
+
+  db_FrameToReferenceRegistration reg;
+
+  int frame_number;
+
+  double Hcurr[9];   // Homography from the alignment reference to the frame-t
+  double Hprev[9];   // Homography from frame-0 to the frame-(t-1)
+
+  int reference_frame_index; // Index of the reference frame from all captured frames
+  int num_frames_captured; // Total number of frames captured (different from frame_number)
+  double average_tx_per_frame; // Average pixel translation per captured frame
+
+  int width,height;
+
+  bool quarter_res;     // Whether to process at quarter resolution
+  float thresh_still;   // Translation threshold in pixels to detect still camera
+  ImageType imageGray;
+};
+
+
+#endif
diff --git a/perftests/panorama/feature_mos/src/mosaic/Blend.cpp b/perftests/panorama/feature_mos/src/mosaic/Blend.cpp
new file mode 100644
index 0000000..893a7be
--- /dev/null
+++ b/perftests/panorama/feature_mos/src/mosaic/Blend.cpp
@@ -0,0 +1,1392 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+///////////////////////////////////////////////////
+// Blend.cpp
+// $Id: Blend.cpp,v 1.22 2011/06/24 04:22:14 mbansal Exp $
+
+#include <string.h>
+
+#include "Interp.h"
+#include "Blend.h"
+
+#include "Geometry.h"
+#include "trsMatrix.h"
+
+Blend::Blend()
+{
+  m_wb.blendingType = BLEND_TYPE_NONE;
+}
+
+Blend::~Blend()
+{
+    if (m_pFrameVPyr) free(m_pFrameVPyr);
+    if (m_pFrameUPyr) free(m_pFrameUPyr);
+    if (m_pFrameYPyr) free(m_pFrameYPyr);
+}
+
+int Blend::initialize(int blendingType, int stripType, int frame_width, int frame_height)
+{
+    this->width = frame_width;
+    this->height = frame_height;
+    this->m_wb.blendingType = blendingType;
+    this->m_wb.stripType = stripType;
+
+    m_wb.blendRange = m_wb.blendRangeUV = BLEND_RANGE_DEFAULT;
+    m_wb.nlevs = m_wb.blendRange;
+    m_wb.nlevsC = m_wb.blendRangeUV;
+
+    if (m_wb.nlevs <= 0) m_wb.nlevs = 1; // Need levels for YUV processing
+    if (m_wb.nlevsC > m_wb.nlevs) m_wb.nlevsC = m_wb.nlevs;
+
+    m_wb.roundoffOverlap = 1.5;
+
+    m_pFrameYPyr = NULL;
+    m_pFrameUPyr = NULL;
+    m_pFrameVPyr = NULL;
+
+    m_pFrameYPyr = PyramidShort::allocatePyramidPacked(m_wb.nlevs, (unsigned short) width, (unsigned short) height, BORDER);
+    m_pFrameUPyr = PyramidShort::allocatePyramidPacked(m_wb.nlevsC, (unsigned short) (width), (unsigned short) (height), BORDER);
+    m_pFrameVPyr = PyramidShort::allocatePyramidPacked(m_wb.nlevsC, (unsigned short) (width), (unsigned short) (height), BORDER);
+
+    if (!m_pFrameYPyr || !m_pFrameUPyr || !m_pFrameVPyr)
+    {
+        return BLEND_RET_ERROR_MEMORY;
+    }
+
+    return BLEND_RET_OK;
+}
+
+inline double max(double a, double b) { return a > b ? a : b; }
+inline double min(double a, double b) { return a < b ? a : b; }
+
+void Blend::AlignToMiddleFrame(MosaicFrame **frames, int frames_size)
+{
+    // Unwarp this frame and Warp the others to match
+    MosaicFrame *mb = NULL;
+    MosaicFrame *ref = frames[int(frames_size/2)];    // Middle frame
+
+    double invtrs[3][3];
+    inv33d(ref->trs, invtrs);
+
+    for(int mfit = 0; mfit < frames_size; mfit++)
+    {
+        mb = frames[mfit];
+        double temp[3][3];
+        mult33d(temp, invtrs, mb->trs);
+        memcpy(mb->trs, temp, sizeof(temp));
+        normProjMat33d(mb->trs);
+    }
+}
+
+int Blend::runBlend(MosaicFrame **oframes, MosaicFrame **rframes,
+        int frames_size,
+        ImageType &imageMosaicYVU, int &mosaicWidth, int &mosaicHeight,
+        float &progress, bool &cancelComputation)
+{
+    int ret;
+    int numCenters;
+
+    MosaicFrame **frames;
+
+    // For THIN strip mode, accept all frames for blending
+    if (m_wb.stripType == STRIP_TYPE_THIN)
+    {
+        frames = oframes;
+    }
+    else // For WIDE strip mode, first select the relevant frames to blend.
+    {
+        SelectRelevantFrames(oframes, frames_size, rframes, frames_size);
+        frames = rframes;
+    }
+
+    ComputeBlendParameters(frames, frames_size, true);
+    numCenters = frames_size;
+
+    if (numCenters == 0)
+    {
+        return BLEND_RET_ERROR;
+    }
+
+    if (!(m_AllSites = m_Triangulator.allocMemory(numCenters)))
+    {
+        return BLEND_RET_ERROR_MEMORY;
+    }
+
+    // Bounding rectangle (real numbers) of the final mosaic computed by projecting
+    // each input frame into the mosaic coordinate system.
+    BlendRect global_rect;
+
+    global_rect.lft = global_rect.bot = 2e30; // min values
+    global_rect.rgt = global_rect.top = -2e30; // max values
+    MosaicFrame *mb = NULL;
+    double halfwidth = width / 2.0;
+    double halfheight = height / 2.0;
+
+    double z, x0, y0, x1, y1, x2, y2, x3, y3;
+
+    // Corners of the left-most and right-most frames respectively in the
+    // mosaic coordinate system.
+    double xLeftCorners[2] = {2e30, 2e30};
+    double xRightCorners[2] = {-2e30, -2e30};
+
+    // Corners of the top-most and bottom-most frames respectively in the
+    // mosaic coordinate system.
+    double yTopCorners[2] = {2e30, 2e30};
+    double yBottomCorners[2] = {-2e30, -2e30};
+
+
+    // Determine the extents of the final mosaic
+    CSite *csite = m_AllSites ;
+    for(int mfit = 0; mfit < frames_size; mfit++)
+    {
+        mb = frames[mfit];
+
+        // Compute clipping for this frame's rect
+        FrameToMosaicRect(mb->width, mb->height, mb->trs, mb->brect);
+        // Clip global rect using this frame's rect
+        ClipRect(mb->brect, global_rect);
+
+        // Calculate the corner points
+        FrameToMosaic(mb->trs, 0.0,             0.0,            x0, y0);
+        FrameToMosaic(mb->trs, 0.0,             mb->height-1.0, x1, y1);
+        FrameToMosaic(mb->trs, mb->width-1.0,   mb->height-1.0, x2, y2);
+        FrameToMosaic(mb->trs, mb->width-1.0,   0.0,            x3, y3);
+
+        if(x0 < xLeftCorners[0] || x1 < xLeftCorners[1])    // If either of the left corners is lower
+        {
+            xLeftCorners[0] = x0;
+            xLeftCorners[1] = x1;
+        }
+
+        if(x3 > xRightCorners[0] || x2 > xRightCorners[1])    // If either of the right corners is higher
+        {
+            xRightCorners[0] = x3;
+            xRightCorners[1] = x2;
+        }
+
+        if(y0 < yTopCorners[0] || y3 < yTopCorners[1])    // If either of the top corners is lower
+        {
+            yTopCorners[0] = y0;
+            yTopCorners[1] = y3;
+        }
+
+        if(y1 > yBottomCorners[0] || y2 > yBottomCorners[1])    // If either of the bottom corners is higher
+        {
+            yBottomCorners[0] = y1;
+            yBottomCorners[1] = y2;
+        }
+
+
+        // Compute the centroid of the warped region
+        FindQuadCentroid(x0, y0, x1, y1, x2, y2, x3, y3, csite->getVCenter().x, csite->getVCenter().y);
+
+        csite->setMb(mb);
+        csite++;
+    }
+
+    // Get origin and sizes
+
+    // Bounding rectangle (int numbers) of the final mosaic computed by projecting
+    // each input frame into the mosaic coordinate system.
+    MosaicRect fullRect;
+
+    fullRect.left = (int) floor(global_rect.lft); // min-x
+    fullRect.top = (int) floor(global_rect.bot);  // min-y
+    fullRect.right = (int) ceil(global_rect.rgt); // max-x
+    fullRect.bottom = (int) ceil(global_rect.top);// max-y
+    Mwidth = (unsigned short) (fullRect.right - fullRect.left + 1);
+    Mheight = (unsigned short) (fullRect.bottom - fullRect.top + 1);
+
+    int xLeftMost, xRightMost;
+    int yTopMost, yBottomMost;
+
+    // Rounding up, so that we don't include the gray border.
+    xLeftMost = max(0, max(xLeftCorners[0], xLeftCorners[1]) - fullRect.left + 1);
+    xRightMost = min(Mwidth - 1, min(xRightCorners[0], xRightCorners[1]) - fullRect.left - 1);
+
+    yTopMost = max(0, max(yTopCorners[0], yTopCorners[1]) - fullRect.top + 1);
+    yBottomMost = min(Mheight - 1, min(yBottomCorners[0], yBottomCorners[1]) - fullRect.top - 1);
+
+    if (xRightMost <= xLeftMost || yBottomMost <= yTopMost)
+    {
+        return BLEND_RET_ERROR;
+    }
+
+    // Make sure image width is multiple of 4
+    Mwidth = (unsigned short) ((Mwidth + 3) & ~3);
+    Mheight = (unsigned short) ((Mheight + 3) & ~3);    // Round up.
+
+    ret = MosaicSizeCheck(LIMIT_SIZE_MULTIPLIER, LIMIT_HEIGHT_MULTIPLIER);
+    if (ret != BLEND_RET_OK)
+    {
+       return ret;
+    }
+
+    YUVinfo *imgMos = YUVinfo::allocateImage(Mwidth, Mheight);
+    if (imgMos == NULL)
+    {
+        return BLEND_RET_ERROR_MEMORY;
+    }
+
+    // Set the Y image to 255 so we can distinguish when frame idx are written to it
+    memset(imgMos->Y.ptr[0], 255, (imgMos->Y.width * imgMos->Y.height));
+    // Set the v and u images to black
+    memset(imgMos->V.ptr[0], 128, (imgMos->V.width * imgMos->V.height) << 1);
+
+    // Do the triangulation.  It returns a sorted list of edges
+    SEdgeVector *edge;
+    int n = m_Triangulator.triangulate(&edge, numCenters, width, height);
+    m_Triangulator.linkNeighbors(edge, n, numCenters);
+
+    // Bounding rectangle that determines the positioning of the rectangle that is
+    // cropped out of the computed mosaic to get rid of the gray borders.
+    MosaicRect cropping_rect;
+
+    if (m_wb.horizontal)
+    {
+        cropping_rect.left = xLeftMost;
+        cropping_rect.right = xRightMost;
+    }
+    else
+    {
+        cropping_rect.top = yTopMost;
+        cropping_rect.bottom = yBottomMost;
+    }
+
+    // Do merging and blending :
+    ret = DoMergeAndBlend(frames, numCenters, width, height, *imgMos, fullRect,
+            cropping_rect, progress, cancelComputation);
+
+    if (m_wb.blendingType == BLEND_TYPE_HORZ)
+        CropFinalMosaic(*imgMos, cropping_rect);
+
+
+    m_Triangulator.freeMemory();    // note: can be called even if delaunay_alloc() wasn't successful
+
+    imageMosaicYVU = imgMos->Y.ptr[0];
+
+
+    if (m_wb.blendingType == BLEND_TYPE_HORZ)
+    {
+        mosaicWidth = cropping_rect.right - cropping_rect.left + 1;
+        mosaicHeight = cropping_rect.bottom - cropping_rect.top + 1;
+    }
+    else
+    {
+        mosaicWidth = Mwidth;
+        mosaicHeight = Mheight;
+    }
+
+    return ret;
+}
+
+int Blend::MosaicSizeCheck(float sizeMultiplier, float heightMultiplier) {
+   if (Mwidth < width || Mheight < height) {
+        return BLEND_RET_ERROR;
+    }
+
+   if ((Mwidth * Mheight) > (width * height * sizeMultiplier)) {
+         return BLEND_RET_ERROR;
+   }
+
+   // We won't do blending for the cases where users swing the device too much
+   // in the secondary direction. We use a short side to determine the
+   // secondary direction because users may hold the device in landsape
+   // or portrait.
+   int shortSide = min(Mwidth, Mheight);
+   if (shortSide > height * heightMultiplier) {
+       return BLEND_RET_ERROR;
+   }
+
+   return BLEND_RET_OK;
+}
+
+int Blend::FillFramePyramid(MosaicFrame *mb)
+{
+    ImageType mbY, mbU, mbV;
+    // Lay this image, centered into the temporary buffer
+    mbY = mb->image;
+    mbU = mb->getU();
+    mbV = mb->getV();
+
+    int h, w;
+
+    for(h=0; h<height; h++)
+    {
+        ImageTypeShort yptr = m_pFrameYPyr->ptr[h];
+        ImageTypeShort uptr = m_pFrameUPyr->ptr[h];
+        ImageTypeShort vptr = m_pFrameVPyr->ptr[h];
+
+        for(w=0; w<width; w++)
+        {
+            yptr[w] = (short) ((*(mbY++)) << 3);
+            uptr[w] = (short) ((*(mbU++)) << 3);
+            vptr[w] = (short) ((*(mbV++)) << 3);
+        }
+    }
+
+    // Spread the image through the border
+    PyramidShort::BorderSpread(m_pFrameYPyr, BORDER, BORDER, BORDER, BORDER);
+    PyramidShort::BorderSpread(m_pFrameUPyr, BORDER, BORDER, BORDER, BORDER);
+    PyramidShort::BorderSpread(m_pFrameVPyr, BORDER, BORDER, BORDER, BORDER);
+
+    // Generate Laplacian pyramids
+    if (!PyramidShort::BorderReduce(m_pFrameYPyr, m_wb.nlevs) || !PyramidShort::BorderExpand(m_pFrameYPyr, m_wb.nlevs, -1) ||
+            !PyramidShort::BorderReduce(m_pFrameUPyr, m_wb.nlevsC) || !PyramidShort::BorderExpand(m_pFrameUPyr, m_wb.nlevsC, -1) ||
+            !PyramidShort::BorderReduce(m_pFrameVPyr, m_wb.nlevsC) || !PyramidShort::BorderExpand(m_pFrameVPyr, m_wb.nlevsC, -1))
+    {
+        return BLEND_RET_ERROR;
+    }
+    else
+    {
+        return BLEND_RET_OK;
+    }
+}
+
+int Blend::DoMergeAndBlend(MosaicFrame **frames, int nsite,
+             int width, int height, YUVinfo &imgMos, MosaicRect &rect,
+             MosaicRect &cropping_rect, float &progress, bool &cancelComputation)
+{
+    m_pMosaicYPyr = NULL;
+    m_pMosaicUPyr = NULL;
+    m_pMosaicVPyr = NULL;
+
+    m_pMosaicYPyr = PyramidShort::allocatePyramidPacked(m_wb.nlevs,(unsigned short)rect.Width(),(unsigned short)rect.Height(),BORDER);
+    m_pMosaicUPyr = PyramidShort::allocatePyramidPacked(m_wb.nlevsC,(unsigned short)rect.Width(),(unsigned short)rect.Height(),BORDER);
+    m_pMosaicVPyr = PyramidShort::allocatePyramidPacked(m_wb.nlevsC,(unsigned short)rect.Width(),(unsigned short)rect.Height(),BORDER);
+    if (!m_pMosaicYPyr || !m_pMosaicUPyr || !m_pMosaicVPyr)
+    {
+      return BLEND_RET_ERROR_MEMORY;
+    }
+
+    MosaicFrame *mb;
+
+    CSite *esite = m_AllSites + nsite;
+    int site_idx;
+
+    // First go through each frame and for each mosaic pixel determine which frame it should come from
+    site_idx = 0;
+    for(CSite *csite = m_AllSites; csite < esite; csite++)
+    {
+        if(cancelComputation)
+        {
+            if (m_pMosaicVPyr) free(m_pMosaicVPyr);
+            if (m_pMosaicUPyr) free(m_pMosaicUPyr);
+            if (m_pMosaicYPyr) free(m_pMosaicYPyr);
+            return BLEND_RET_CANCELLED;
+        }
+
+        mb = csite->getMb();
+
+        mb->vcrect = mb->brect;
+        ClipBlendRect(csite, mb->vcrect);
+
+        ComputeMask(csite, mb->vcrect, mb->brect, rect, imgMos, site_idx);
+
+        site_idx++;
+    }
+
+    ////////// imgMos.Y, imgMos.V, imgMos.U are used as follows //////////////
+    ////////////////////// THIN STRIP MODE ///////////////////////////////////
+
+    // imgMos.Y is used to store the index of the image from which each pixel
+    // in the output mosaic can be read out for the thin-strip mode. Thus,
+    // there is no special handling for pixels around the seam. Also, imgMos.Y
+    // is set to 255 wherever we can't get its value from any input image e.g.
+    // in the gray border areas. imgMos.V and imgMos.U are set to 128 for the
+    // thin-strip mode.
+
+    ////////////////////// WIDE STRIP MODE ///////////////////////////////////
+
+    // imgMos.Y is used the same way as the thin-strip mode.
+    // imgMos.V is used to store the index of the neighboring image which
+    // should contribute to the color of an output pixel in a band around
+    // the seam. Thus, in this band, we will crossfade between the color values
+    // from the image index imgMos.Y and image index imgMos.V. imgMos.U is
+    // used to store the weight (multiplied by 100) that each image will
+    // contribute to the blending process. Thus, we start at 99% contribution
+    // from the first image, then go to 50% contribution from each image at
+    // the seam. Then, the contribution from the second image goes up to 99%.
+
+    // For WIDE mode, set the pixel masks to guide the blender to cross-fade
+    // between the images on either side of each seam:
+    if (m_wb.stripType == STRIP_TYPE_WIDE)
+    {
+        if(m_wb.horizontal)
+        {
+            // Set the number of pixels around the seam to cross-fade between
+            // the two component images,
+            int tw = STRIP_CROSS_FADE_WIDTH_PXLS;
+
+            // Proceed with the image index calculation for cross-fading
+            // only if the cross-fading width is larger than 0
+            if (tw > 0)
+            {
+                for(int y = 0; y < imgMos.Y.height; y++)
+                {
+                    // Since we compare two adjecant pixels to determine
+                    // whether there is a seam, the termination condition of x
+                    // is set to imgMos.Y.width - tw, so that x+1 below
+                    // won't exceed the imgMos' boundary.
+                    for(int x = tw; x < imgMos.Y.width - tw; )
+                    {
+                        // Determine where the seam is...
+                        if (imgMos.Y.ptr[y][x] != imgMos.Y.ptr[y][x+1] &&
+                                imgMos.Y.ptr[y][x] != 255 &&
+                                imgMos.Y.ptr[y][x+1] != 255)
+                        {
+                            // Find the image indices on both sides of the seam
+                            unsigned char idx1 = imgMos.Y.ptr[y][x];
+                            unsigned char idx2 = imgMos.Y.ptr[y][x+1];
+
+                            for (int o = tw; o >= 0; o--)
+                            {
+                                // Set the image index to use for cross-fading
+                                imgMos.V.ptr[y][x - o] = idx2;
+                                // Set the intensity weights to use for cross-fading
+                                imgMos.U.ptr[y][x - o] = 50 + (99 - 50) * o / tw;
+                            }
+
+                            for (int o = 1; o <= tw; o++)
+                            {
+                                // Set the image index to use for cross-fading
+                                imgMos.V.ptr[y][x + o] = idx1;
+                                // Set the intensity weights to use for cross-fading
+                                imgMos.U.ptr[y][x + o] = imgMos.U.ptr[y][x - o];
+                            }
+
+                            x += (tw + 1);
+                        }
+                        else
+                        {
+                            x++;
+                        }
+                    }
+                }
+            }
+        }
+        else
+        {
+            // Set the number of pixels around the seam to cross-fade between
+            // the two component images,
+            int tw = STRIP_CROSS_FADE_WIDTH_PXLS;
+
+            // Proceed with the image index calculation for cross-fading
+            // only if the cross-fading width is larger than 0
+            if (tw > 0)
+            {
+                for(int x = 0; x < imgMos.Y.width; x++)
+                {
+                    // Since we compare two adjecant pixels to determine
+                    // whether there is a seam, the termination condition of y
+                    // is set to imgMos.Y.height - tw, so that y+1 below
+                    // won't exceed the imgMos' boundary.
+                    for(int y = tw; y < imgMos.Y.height - tw; )
+                    {
+                        // Determine where the seam is...
+                        if (imgMos.Y.ptr[y][x] != imgMos.Y.ptr[y+1][x] &&
+                                imgMos.Y.ptr[y][x] != 255 &&
+                                imgMos.Y.ptr[y+1][x] != 255)
+                        {
+                            // Find the image indices on both sides of the seam
+                            unsigned char idx1 = imgMos.Y.ptr[y][x];
+                            unsigned char idx2 = imgMos.Y.ptr[y+1][x];
+
+                            for (int o = tw; o >= 0; o--)
+                            {
+                                // Set the image index to use for cross-fading
+                                imgMos.V.ptr[y - o][x] = idx2;
+                                // Set the intensity weights to use for cross-fading
+                                imgMos.U.ptr[y - o][x] = 50 + (99 - 50) * o / tw;
+                            }
+
+                            for (int o = 1; o <= tw; o++)
+                            {
+                                // Set the image index to use for cross-fading
+                                imgMos.V.ptr[y + o][x] = idx1;
+                                // Set the intensity weights to use for cross-fading
+                                imgMos.U.ptr[y + o][x] = imgMos.U.ptr[y - o][x];
+                            }
+
+                            y += (tw + 1);
+                        }
+                        else
+                        {
+                            y++;
+                        }
+                    }
+                }
+            }
+        }
+
+    }
+
+    // Now perform the actual blending using the frame assignment determined above
+    site_idx = 0;
+    for(CSite *csite = m_AllSites; csite < esite; csite++)
+    {
+        if(cancelComputation)
+        {
+            if (m_pMosaicVPyr) free(m_pMosaicVPyr);
+            if (m_pMosaicUPyr) free(m_pMosaicUPyr);
+            if (m_pMosaicYPyr) free(m_pMosaicYPyr);
+            return BLEND_RET_CANCELLED;
+        }
+
+        mb = csite->getMb();
+
+
+        if(FillFramePyramid(mb)!=BLEND_RET_OK)
+            return BLEND_RET_ERROR;
+
+        ProcessPyramidForThisFrame(csite, mb->vcrect, mb->brect, rect, imgMos, mb->trs, site_idx);
+
+        progress += TIME_PERCENT_BLEND/nsite;
+
+        site_idx++;
+    }
+
+
+    // Blend
+    PerformFinalBlending(imgMos, cropping_rect);
+
+    if (cropping_rect.Width() <= 0 || cropping_rect.Height() <= 0)
+    {
+        return BLEND_RET_ERROR;
+    }
+
+    if (m_pMosaicVPyr) free(m_pMosaicVPyr);
+    if (m_pMosaicUPyr) free(m_pMosaicUPyr);
+    if (m_pMosaicYPyr) free(m_pMosaicYPyr);
+
+    progress += TIME_PERCENT_FINAL;
+
+    return BLEND_RET_OK;
+}
+
+void Blend::CropFinalMosaic(YUVinfo &imgMos, MosaicRect &cropping_rect)
+{
+    int i, j, k;
+    ImageType yimg;
+    ImageType uimg;
+    ImageType vimg;
+
+
+    yimg = imgMos.Y.ptr[0];
+    uimg = imgMos.U.ptr[0];
+    vimg = imgMos.V.ptr[0];
+
+    k = 0;
+    for (j = cropping_rect.top; j <= cropping_rect.bottom; j++)
+    {
+        for (i = cropping_rect.left; i <= cropping_rect.right; i++)
+        {
+            yimg[k] = yimg[j*imgMos.Y.width+i];
+            k++;
+        }
+    }
+    for (j = cropping_rect.top; j <= cropping_rect.bottom; j++)
+    {
+       for (i = cropping_rect.left; i <= cropping_rect.right; i++)
+        {
+            yimg[k] = vimg[j*imgMos.Y.width+i];
+            k++;
+        }
+    }
+    for (j = cropping_rect.top; j <= cropping_rect.bottom; j++)
+    {
+       for (i = cropping_rect.left; i <= cropping_rect.right; i++)
+        {
+            yimg[k] = uimg[j*imgMos.Y.width+i];
+            k++;
+        }
+    }
+}
+
+int Blend::PerformFinalBlending(YUVinfo &imgMos, MosaicRect &cropping_rect)
+{
+    if (!PyramidShort::BorderExpand(m_pMosaicYPyr, m_wb.nlevs, 1) || !PyramidShort::BorderExpand(m_pMosaicUPyr, m_wb.nlevsC, 1) ||
+        !PyramidShort::BorderExpand(m_pMosaicVPyr, m_wb.nlevsC, 1))
+    {
+      return BLEND_RET_ERROR;
+    }
+
+    ImageTypeShort myimg;
+    ImageTypeShort muimg;
+    ImageTypeShort mvimg;
+    ImageType yimg;
+    ImageType uimg;
+    ImageType vimg;
+
+    int cx = (int)imgMos.Y.width/2;
+    int cy = (int)imgMos.Y.height/2;
+
+    // 2D boolean array that contains true wherever the mosaic image data is
+    // invalid (i.e. in the gray border).
+    bool **b = new bool*[imgMos.Y.height];
+
+    for(int j=0; j<imgMos.Y.height; j++)
+    {
+        b[j] = new bool[imgMos.Y.width];
+    }
+
+    // Copy the resulting image into the full image using the mask
+    int i, j;
+
+    yimg = imgMos.Y.ptr[0];
+    uimg = imgMos.U.ptr[0];
+    vimg = imgMos.V.ptr[0];
+
+    for (j = 0; j < imgMos.Y.height; j++)
+    {
+        myimg = m_pMosaicYPyr->ptr[j];
+        muimg = m_pMosaicUPyr->ptr[j];
+        mvimg = m_pMosaicVPyr->ptr[j];
+
+        for (i = 0; i<imgMos.Y.width; i++)
+        {
+            // A final mask was set up previously,
+            // if the value is zero skip it, otherwise replace it.
+            if (*yimg <255)
+            {
+                short value = (short) ((*myimg) >> 3);
+                if (value < 0) value = 0;
+                else if (value > 255) value = 255;
+                *yimg = (unsigned char) value;
+
+                value = (short) ((*muimg) >> 3);
+                if (value < 0) value = 0;
+                else if (value > 255) value = 255;
+                *uimg = (unsigned char) value;
+
+                value = (short) ((*mvimg) >> 3);
+                if (value < 0) value = 0;
+                else if (value > 255) value = 255;
+                *vimg = (unsigned char) value;
+
+                b[j][i] = false;
+
+            }
+            else
+            {   // set border color in here
+                *yimg = (unsigned char) 96;
+                *uimg = (unsigned char) 128;
+                *vimg = (unsigned char) 128;
+
+                b[j][i] = true;
+            }
+
+            yimg++;
+            uimg++;
+            vimg++;
+            myimg++;
+            muimg++;
+            mvimg++;
+        }
+    }
+
+    if(m_wb.horizontal)
+    {
+        //Scan through each row and increment top if the row contains any gray
+        for (j = 0; j < imgMos.Y.height; j++)
+        {
+            for (i = cropping_rect.left; i < cropping_rect.right; i++)
+            {
+                if (b[j][i])
+                {
+                    break; // to next row
+                }
+            }
+
+            if (i == cropping_rect.right)   //no gray pixel in this row!
+            {
+                cropping_rect.top = j;
+                break;
+            }
+        }
+
+        //Scan through each row and decrement bottom if the row contains any gray
+        for (j = imgMos.Y.height-1; j >= 0; j--)
+        {
+            for (i = cropping_rect.left; i < cropping_rect.right; i++)
+            {
+                if (b[j][i])
+                {
+                    break; // to next row
+                }
+            }
+
+            if (i == cropping_rect.right)   //no gray pixel in this row!
+            {
+                cropping_rect.bottom = j;
+                break;
+            }
+        }
+    }
+    else // Vertical Mosaic
+    {
+        //Scan through each column and increment left if the column contains any gray
+        for (i = 0; i < imgMos.Y.width; i++)
+        {
+            for (j = cropping_rect.top; j < cropping_rect.bottom; j++)
+            {
+                if (b[j][i])
+                {
+                    break; // to next column
+                }
+            }
+
+            if (j == cropping_rect.bottom)   //no gray pixel in this column!
+            {
+                cropping_rect.left = i;
+                break;
+            }
+        }
+
+        //Scan through each column and decrement right if the column contains any gray
+        for (i = imgMos.Y.width-1; i >= 0; i--)
+        {
+            for (j = cropping_rect.top; j < cropping_rect.bottom; j++)
+            {
+                if (b[j][i])
+                {
+                    break; // to next column
+                }
+            }
+
+            if (j == cropping_rect.bottom)   //no gray pixel in this column!
+            {
+                cropping_rect.right = i;
+                break;
+            }
+        }
+
+    }
+
+    RoundingCroppingSizeToMultipleOf8(cropping_rect);
+
+    for(int j=0; j<imgMos.Y.height; j++)
+    {
+        delete b[j];
+    }
+
+    delete b;
+
+    return BLEND_RET_OK;
+}
+
+void Blend::RoundingCroppingSizeToMultipleOf8(MosaicRect &rect) {
+    int height = rect.bottom - rect.top + 1;
+    int residue = height & 7;
+    rect.bottom -= residue;
+
+    int width = rect.right - rect.left + 1;
+    residue = width & 7;
+    rect.right -= residue;
+}
+
+void Blend::ComputeMask(CSite *csite, BlendRect &vcrect, BlendRect &brect, MosaicRect &rect, YUVinfo &imgMos, int site_idx)
+{
+    PyramidShort *dptr = m_pMosaicYPyr;
+
+    int nC = m_wb.nlevsC;
+    int l = (int) ((vcrect.lft - rect.left));
+    int b = (int) ((vcrect.bot - rect.top));
+    int r = (int) ((vcrect.rgt - rect.left));
+    int t = (int) ((vcrect.top - rect.top));
+
+    if (vcrect.lft == brect.lft)
+        l = (l <= 0) ? -BORDER : l - BORDER;
+    else if (l < -BORDER)
+        l = -BORDER;
+
+    if (vcrect.bot == brect.bot)
+        b = (b <= 0) ? -BORDER : b - BORDER;
+    else if (b < -BORDER)
+        b = -BORDER;
+
+    if (vcrect.rgt == brect.rgt)
+        r = (r >= dptr->width) ? dptr->width + BORDER - 1 : r + BORDER;
+    else if (r >= dptr->width + BORDER)
+        r = dptr->width + BORDER - 1;
+
+    if (vcrect.top == brect.top)
+        t = (t >= dptr->height) ? dptr->height + BORDER - 1 : t + BORDER;
+    else if (t >= dptr->height + BORDER)
+        t = dptr->height + BORDER - 1;
+
+    // Walk the Region of interest and populate the pyramid
+    for (int j = b; j <= t; j++)
+    {
+        int jj = j;
+        double sj = jj + rect.top;
+
+        for (int i = l; i <= r; i++)
+        {
+            int ii = i;
+            // project point and then triangulate to neighbors
+            double si = ii + rect.left;
+
+            double dself = hypotSq(csite->getVCenter().x - si, csite->getVCenter().y - sj);
+            int inMask = ((unsigned) ii < imgMos.Y.width &&
+                    (unsigned) jj < imgMos.Y.height) ? 1 : 0;
+
+            if(!inMask)
+                continue;
+
+            // scan the neighbors to see if this is a valid position
+            unsigned char mask = (unsigned char) 255;
+            SEdgeVector *ce;
+            int ecnt;
+            for (ce = csite->getNeighbor(), ecnt = csite->getNumNeighbors(); ecnt--; ce++)
+            {
+                double d1 = hypotSq(m_AllSites[ce->second].getVCenter().x - si,
+                        m_AllSites[ce->second].getVCenter().y - sj);
+                if (d1 < dself)
+                {
+                    break;
+                }
+            }
+
+            if (ecnt >= 0) continue;
+
+            imgMos.Y.ptr[jj][ii] = (unsigned char)site_idx;
+        }
+    }
+}
+
+void Blend::ProcessPyramidForThisFrame(CSite *csite, BlendRect &vcrect, BlendRect &brect, MosaicRect &rect, YUVinfo &imgMos, double trs[3][3], int site_idx)
+{
+    // Put the Region of interest (for all levels) into m_pMosaicYPyr
+    double inv_trs[3][3];
+    inv33d(trs, inv_trs);
+
+    // Process each pyramid level
+    PyramidShort *sptr = m_pFrameYPyr;
+    PyramidShort *suptr = m_pFrameUPyr;
+    PyramidShort *svptr = m_pFrameVPyr;
+
+    PyramidShort *dptr = m_pMosaicYPyr;
+    PyramidShort *duptr = m_pMosaicUPyr;
+    PyramidShort *dvptr = m_pMosaicVPyr;
+
+    int dscale = 0; // distance scale for the current level
+    int nC = m_wb.nlevsC;
+    for (int n = m_wb.nlevs; n--; dscale++, dptr++, sptr++, dvptr++, duptr++, svptr++, suptr++, nC--)
+    {
+        int l = (int) ((vcrect.lft - rect.left) / (1 << dscale));
+        int b = (int) ((vcrect.bot - rect.top) / (1 << dscale));
+        int r = (int) ((vcrect.rgt - rect.left) / (1 << dscale) + .5);
+        int t = (int) ((vcrect.top - rect.top) / (1 << dscale) + .5);
+
+        if (vcrect.lft == brect.lft)
+            l = (l <= 0) ? -BORDER : l - BORDER;
+        else if (l < -BORDER)
+            l = -BORDER;
+
+        if (vcrect.bot == brect.bot)
+            b = (b <= 0) ? -BORDER : b - BORDER;
+        else if (b < -BORDER)
+            b = -BORDER;
+
+        if (vcrect.rgt == brect.rgt)
+            r = (r >= dptr->width) ? dptr->width + BORDER - 1 : r + BORDER;
+        else if (r >= dptr->width + BORDER)
+            r = dptr->width + BORDER - 1;
+
+        if (vcrect.top == brect.top)
+            t = (t >= dptr->height) ? dptr->height + BORDER - 1 : t + BORDER;
+        else if (t >= dptr->height + BORDER)
+            t = dptr->height + BORDER - 1;
+
+        // Walk the Region of interest and populate the pyramid
+        for (int j = b; j <= t; j++)
+        {
+            int jj = (j << dscale);
+            double sj = jj + rect.top;
+
+            for (int i = l; i <= r; i++)
+            {
+                int ii = (i << dscale);
+                // project point and then triangulate to neighbors
+                double si = ii + rect.left;
+
+                int inMask = ((unsigned) ii < imgMos.Y.width &&
+                        (unsigned) jj < imgMos.Y.height) ? 1 : 0;
+
+                if(inMask && imgMos.Y.ptr[jj][ii] != site_idx &&
+                        imgMos.V.ptr[jj][ii] != site_idx &&
+                        imgMos.Y.ptr[jj][ii] != 255)
+                    continue;
+
+                // Setup weights for cross-fading
+                // Weight of the intensity already in the output pixel
+                double wt0 = 0.0;
+                // Weight of the intensity from the input pixel (current frame)
+                double wt1 = 1.0;
+
+                if (m_wb.stripType == STRIP_TYPE_WIDE)
+                {
+                    if(inMask && imgMos.Y.ptr[jj][ii] != 255)
+                    {
+                        // If not on a seam OR pyramid level exceeds
+                        // maximum level for cross-fading.
+                        if((imgMos.V.ptr[jj][ii] == 128) ||
+                            (dscale > STRIP_CROSS_FADE_MAX_PYR_LEVEL))
+                        {
+                            wt0 = 0.0;
+                            wt1 = 1.0;
+                        }
+                        else
+                        {
+                            wt0 = 1.0;
+                            wt1 = ((imgMos.Y.ptr[jj][ii] == site_idx) ?
+                                    (double)imgMos.U.ptr[jj][ii] / 100.0 :
+                                    1.0 - (double)imgMos.U.ptr[jj][ii] / 100.0);
+                        }
+                    }
+                }
+
+                // Project this mosaic point into the original frame coordinate space
+                double xx, yy;
+
+                MosaicToFrame(inv_trs, si, sj, xx, yy);
+
+                if (xx < 0.0 || yy < 0.0 || xx > width - 1.0 || yy > height - 1.0)
+                {
+                    if(inMask)
+                    {
+                        imgMos.Y.ptr[jj][ii] = 255;
+                        wt0 = 0.0f;
+                        wt1 = 1.0f;
+                    }
+                }
+
+                xx /= (1 << dscale);
+                yy /= (1 << dscale);
+
+
+                int x1 = (xx >= 0.0) ? (int) xx : (int) floor(xx);
+                int y1 = (yy >= 0.0) ? (int) yy : (int) floor(yy);
+
+                // Final destination in extended pyramid
+#ifndef LINEAR_INTERP
+                if(inSegment(x1, sptr->width, BORDER-1) &&
+                        inSegment(y1, sptr->height, BORDER-1))
+                {
+                    double xfrac = xx - x1;
+                    double yfrac = yy - y1;
+                    dptr->ptr[j][i] = (short) (wt0 * dptr->ptr[j][i] + .5 +
+                            wt1 * ciCalc(sptr, x1, y1, xfrac, yfrac));
+                    if (dvptr >= m_pMosaicVPyr && nC > 0)
+                    {
+                        duptr->ptr[j][i] = (short) (wt0 * duptr->ptr[j][i] + .5 +
+                                wt1 * ciCalc(suptr, x1, y1, xfrac, yfrac));
+                        dvptr->ptr[j][i] = (short) (wt0 * dvptr->ptr[j][i] + .5 +
+                                wt1 * ciCalc(svptr, x1, y1, xfrac, yfrac));
+                    }
+                }
+#else
+                if(inSegment(x1, sptr->width, BORDER) && inSegment(y1, sptr->height, BORDER))
+                {
+                    int x2 = x1 + 1;
+                    int y2 = y1 + 1;
+                    double xfrac = xx - x1;
+                    double yfrac = yy - y1;
+                    double y1val = sptr->ptr[y1][x1] +
+                        (sptr->ptr[y1][x2] - sptr->ptr[y1][x1]) * xfrac;
+                    double y2val = sptr->ptr[y2][x1] +
+                        (sptr->ptr[y2][x2] - sptr->ptr[y2][x1]) * xfrac;
+                    dptr->ptr[j][i] = (short) (y1val + yfrac * (y2val - y1val));
+
+                    if (dvptr >= m_pMosaicVPyr && nC > 0)
+                    {
+                        y1val = suptr->ptr[y1][x1] +
+                            (suptr->ptr[y1][x2] - suptr->ptr[y1][x1]) * xfrac;
+                        y2val = suptr->ptr[y2][x1] +
+                            (suptr->ptr[y2][x2] - suptr->ptr[y2][x1]) * xfrac;
+
+                        duptr->ptr[j][i] = (short) (y1val + yfrac * (y2val - y1val));
+
+                        y1val = svptr->ptr[y1][x1] +
+                            (svptr->ptr[y1][x2] - svptr->ptr[y1][x1]) * xfrac;
+                        y2val = svptr->ptr[y2][x1] +
+                            (svptr->ptr[y2][x2] - svptr->ptr[y2][x1]) * xfrac;
+
+                        dvptr->ptr[j][i] = (short) (y1val + yfrac * (y2val - y1val));
+                    }
+                }
+#endif
+                else
+                {
+                    clipToSegment(x1, sptr->width, BORDER);
+                    clipToSegment(y1, sptr->height, BORDER);
+
+                    dptr->ptr[j][i] = (short) (wt0 * dptr->ptr[j][i] + 0.5 +
+                            wt1 * sptr->ptr[y1][x1] );
+                    if (dvptr >= m_pMosaicVPyr && nC > 0)
+                    {
+                        dvptr->ptr[j][i] = (short) (wt0 * dvptr->ptr[j][i] +
+                                0.5 + wt1 * svptr->ptr[y1][x1] );
+                        duptr->ptr[j][i] = (short) (wt0 * duptr->ptr[j][i] +
+                                0.5 + wt1 * suptr->ptr[y1][x1] );
+                    }
+                }
+            }
+        }
+    }
+}
+
+void Blend::MosaicToFrame(double trs[3][3], double x, double y, double &wx, double &wy)
+{
+    double X, Y, z;
+    if (m_wb.theta == 0.0)
+    {
+        X = x;
+        Y = y;
+    }
+    else if (m_wb.horizontal)
+    {
+        double alpha = x * m_wb.direction / m_wb.width;
+        double length = (y - alpha * m_wb.correction) * m_wb.direction + m_wb.radius;
+        double deltaTheta = m_wb.theta * alpha;
+        double sinTheta = sin(deltaTheta);
+        double cosTheta = sqrt(1.0 - sinTheta * sinTheta) * m_wb.direction;
+        X = length * sinTheta + m_wb.x;
+        Y = length * cosTheta + m_wb.y;
+    }
+    else
+    {
+        double alpha = y * m_wb.direction / m_wb.width;
+        double length = (x - alpha * m_wb.correction) * m_wb.direction + m_wb.radius;
+        double deltaTheta = m_wb.theta * alpha;
+        double sinTheta = sin(deltaTheta);
+        double cosTheta = sqrt(1.0 - sinTheta * sinTheta) * m_wb.direction;
+        Y = length * sinTheta + m_wb.y;
+        X = length * cosTheta + m_wb.x;
+    }
+    z = ProjZ(trs, X, Y, 1.0);
+    wx = ProjX(trs, X, Y, z, 1.0);
+    wy = ProjY(trs, X, Y, z, 1.0);
+}
+
+void Blend::FrameToMosaic(double trs[3][3], double x, double y, double &wx, double &wy)
+{
+    // Project into the intermediate Mosaic coordinate system
+    double z = ProjZ(trs, x, y, 1.0);
+    double X = ProjX(trs, x, y, z, 1.0);
+    double Y = ProjY(trs, x, y, z, 1.0);
+
+    if (m_wb.theta == 0.0)
+    {
+        // No rotation, then this is all we need to do.
+        wx = X;
+        wy = Y;
+    }
+    else if (m_wb.horizontal)
+    {
+        double deltaX = X - m_wb.x;
+        double deltaY = Y - m_wb.y;
+        double length = sqrt(deltaX * deltaX + deltaY * deltaY);
+        double deltaTheta = asin(deltaX / length);
+        double alpha = deltaTheta / m_wb.theta;
+        wx = alpha * m_wb.width * m_wb.direction;
+        wy = (length - m_wb.radius) * m_wb.direction + alpha * m_wb.correction;
+    }
+    else
+    {
+        double deltaX = X - m_wb.x;
+        double deltaY = Y - m_wb.y;
+        double length = sqrt(deltaX * deltaX + deltaY * deltaY);
+        double deltaTheta = asin(deltaY / length);
+        double alpha = deltaTheta / m_wb.theta;
+        wy = alpha * m_wb.width * m_wb.direction;
+        wx = (length - m_wb.radius) * m_wb.direction + alpha * m_wb.correction;
+    }
+}
+
+
+
+// Clip the region of interest as small as possible by using the Voronoi edges of
+// the neighbors
+void Blend::ClipBlendRect(CSite *csite, BlendRect &brect)
+{
+      SEdgeVector *ce;
+      int ecnt;
+      for (ce = csite->getNeighbor(), ecnt = csite->getNumNeighbors(); ecnt--; ce++)
+      {
+        // calculate the Voronoi bisector intersection
+        const double epsilon = 1e-5;
+        double dx = (m_AllSites[ce->second].getVCenter().x - m_AllSites[ce->first].getVCenter().x);
+        double dy = (m_AllSites[ce->second].getVCenter().y - m_AllSites[ce->first].getVCenter().y);
+        double xmid = m_AllSites[ce->first].getVCenter().x + dx/2.0;
+        double ymid = m_AllSites[ce->first].getVCenter().y + dy/2.0;
+        double inter;
+
+        if (dx > epsilon)
+        {
+          // neighbor is on right
+          if ((inter = m_wb.roundoffOverlap + xmid - dy * (((dy >= 0.0) ? brect.bot : brect.top) - ymid) / dx) < brect.rgt)
+            brect.rgt = inter;
+        }
+        else if (dx < -epsilon)
+        {
+          // neighbor is on left
+          if ((inter = -m_wb.roundoffOverlap + xmid - dy * (((dy >= 0.0) ? brect.bot : brect.top) - ymid) / dx) > brect.lft)
+            brect.lft = inter;
+        }
+        if (dy > epsilon)
+        {
+          // neighbor is above
+          if ((inter = m_wb.roundoffOverlap + ymid - dx * (((dx >= 0.0) ? brect.lft : brect.rgt) - xmid) / dy) < brect.top)
+            brect.top = inter;
+        }
+        else if (dy < -epsilon)
+        {
+          // neighbor is below
+          if ((inter = -m_wb.roundoffOverlap + ymid - dx * (((dx >= 0.0) ? brect.lft : brect.rgt) - xmid) / dy) > brect.bot)
+            brect.bot = inter;
+        }
+      }
+}
+
+void Blend::FrameToMosaicRect(int width, int height, double trs[3][3], BlendRect &brect)
+{
+    // We need to walk the perimeter since the borders can be bent.
+    brect.lft = brect.bot = 2e30;
+    brect.rgt = brect.top = -2e30;
+    double xpos, ypos;
+    double lasty = height - 1.0;
+    double lastx = width - 1.0;
+    int i;
+
+    for (i = width; i--;)
+    {
+
+        FrameToMosaic(trs, (double) i, 0.0, xpos, ypos);
+        ClipRect(xpos, ypos, brect);
+        FrameToMosaic(trs, (double) i, lasty, xpos, ypos);
+        ClipRect(xpos, ypos, brect);
+    }
+    for (i = height; i--;)
+    {
+        FrameToMosaic(trs, 0.0, (double) i, xpos, ypos);
+        ClipRect(xpos, ypos, brect);
+        FrameToMosaic(trs, lastx, (double) i, xpos, ypos);
+        ClipRect(xpos, ypos, brect);
+    }
+}
+
+void Blend::SelectRelevantFrames(MosaicFrame **frames, int frames_size,
+        MosaicFrame **relevant_frames, int &relevant_frames_size)
+{
+    MosaicFrame *first = frames[0];
+    MosaicFrame *last = frames[frames_size-1];
+    MosaicFrame *mb;
+
+    double fxpos = first->trs[0][2], fypos = first->trs[1][2];
+
+    double midX = last->width / 2.0;
+    double midY = last->height / 2.0;
+    double z = ProjZ(first->trs, midX, midY, 1.0);
+    double firstX, firstY;
+    double prevX = firstX = ProjX(first->trs, midX, midY, z, 1.0);
+    double prevY = firstY = ProjY(first->trs, midX, midY, z, 1.0);
+
+    relevant_frames[0] = first; // Add first frame by default
+    relevant_frames_size = 1;
+
+    for (int i = 0; i < frames_size - 1; i++)
+    {
+        mb = frames[i];
+        double currX, currY;
+        z = ProjZ(mb->trs, midX, midY, 1.0);
+        currX = ProjX(mb->trs, midX, midY, z, 1.0);
+        currY = ProjY(mb->trs, midX, midY, z, 1.0);
+        double deltaX = currX - prevX;
+        double deltaY = currY - prevY;
+        double center2centerDist = sqrt(deltaY * deltaY + deltaX * deltaX);
+
+        if (fabs(deltaX) > STRIP_SEPARATION_THRESHOLD_PXLS ||
+                fabs(deltaY) > STRIP_SEPARATION_THRESHOLD_PXLS)
+        {
+            relevant_frames[relevant_frames_size] = mb;
+            relevant_frames_size++;
+
+            prevX = currX;
+            prevY = currY;
+        }
+    }
+
+    // Add last frame by default
+    relevant_frames[relevant_frames_size] = last;
+    relevant_frames_size++;
+}
+
+void Blend::ComputeBlendParameters(MosaicFrame **frames, int frames_size, int is360)
+{
+    // For FULL and PAN modes, we do not unwarp the mosaic into a rectangular coordinate system
+    // and so we set the theta to 0 and return.
+    if (m_wb.blendingType != BLEND_TYPE_CYLPAN && m_wb.blendingType != BLEND_TYPE_HORZ)
+    {
+        m_wb.theta = 0.0;
+        return;
+    }
+
+    MosaicFrame *first = frames[0];
+    MosaicFrame *last = frames[frames_size-1];
+    MosaicFrame *mb;
+
+    double lxpos = last->trs[0][2], lypos = last->trs[1][2];
+    double fxpos = first->trs[0][2], fypos = first->trs[1][2];
+
+    // Calculate warp to produce proper stitching.
+    // get x, y displacement
+    double midX = last->width / 2.0;
+    double midY = last->height / 2.0;
+    double z = ProjZ(first->trs, midX, midY, 1.0);
+    double firstX, firstY;
+    double prevX = firstX = ProjX(first->trs, midX, midY, z, 1.0);
+    double prevY = firstY = ProjY(first->trs, midX, midY, z, 1.0);
+
+    double arcLength, lastTheta;
+    m_wb.theta = lastTheta = arcLength = 0.0;
+
+    // Step through all the frames to compute the total arc-length of the cone
+    // swept while capturing the mosaic (in the original conical coordinate system).
+    for (int i = 0; i < frames_size; i++)
+    {
+        mb = frames[i];
+        double currX, currY;
+        z = ProjZ(mb->trs, midX, midY, 1.0);
+        currX = ProjX(mb->trs, midX, midY, z, 1.0);
+        currY = ProjY(mb->trs, midX, midY, z, 1.0);
+        double deltaX = currX - prevX;
+        double deltaY = currY - prevY;
+
+        // The arcLength is computed by summing the lengths of the chords
+        // connecting the pairwise projected image centers of the input image frames.
+        arcLength += sqrt(deltaY * deltaY + deltaX * deltaX);
+
+        if (!is360)
+        {
+            double thisTheta = asin(mb->trs[1][0]);
+            m_wb.theta += thisTheta - lastTheta;
+            lastTheta = thisTheta;
+        }
+
+        prevX = currX;
+        prevY = currY;
+    }
+
+    // Stretch this to end at the proper alignment i.e. the width of the
+    // rectangle is determined by the arcLength computed above and the cone
+    // sector angle is determined using the rotation of the last frame.
+    m_wb.width = arcLength;
+    if (is360) m_wb.theta = asin(last->trs[1][0]);
+
+    // If there is no rotation, we're done.
+    if (m_wb.theta != 0.0)
+    {
+        double dx = prevX - firstX;
+        double dy = prevY - firstY;
+
+        // If the mosaic was captured by sweeping horizontally
+        if (abs(lxpos - fxpos) > abs(lypos - fypos))
+        {
+            m_wb.horizontal = 1;
+            // Calculate radius position to make ends exactly the same Y offset
+            double radiusTheta = dx / cos(3.14159 / 2.0 - m_wb.theta);
+            m_wb.radius = dy + radiusTheta * cos(m_wb.theta);
+            if (m_wb.radius < 0.0) m_wb.radius = -m_wb.radius;
+        }
+        else
+        {
+            m_wb.horizontal = 0;
+            // Calculate radius position to make ends exactly the same Y offset
+            double radiusTheta = dy / cos(3.14159 / 2.0 - m_wb.theta);
+            m_wb.radius = dx + radiusTheta * cos(m_wb.theta);
+            if (m_wb.radius < 0.0) m_wb.radius = -m_wb.radius;
+        }
+
+        // Determine major direction
+        if (m_wb.horizontal)
+        {
+            // Horizontal strip
+            // m_wb.x,y record the origin of the rectangle coordinate system.
+            if (is360) m_wb.x = firstX;
+            else
+            {
+                if (lxpos - fxpos < 0)
+                {
+                    m_wb.x = firstX + midX;
+                    z = ProjZ(last->trs, 0.0, midY, 1.0);
+                    prevX = ProjX(last->trs, 0.0, midY, z, 1.0);
+                    prevY = ProjY(last->trs, 0.0, midY, z, 1.0);
+                }
+                else
+                {
+                    m_wb.x = firstX - midX;
+                    z = ProjZ(last->trs, last->width - 1.0, midY, 1.0);
+                    prevX = ProjX(last->trs, last->width - 1.0, midY, z, 1.0);
+                    prevY = ProjY(last->trs, last->width - 1.0, midY, z, 1.0);
+                }
+            }
+            dy = prevY - firstY;
+            if (dy < 0.0) m_wb.direction = 1.0;
+            else m_wb.direction = -1.0;
+            m_wb.y = firstY - m_wb.radius * m_wb.direction;
+            if (dy * m_wb.theta > 0.0) m_wb.width = -m_wb.width;
+        }
+        else
+        {
+            // Vertical strip
+            if (is360) m_wb.y = firstY;
+            else
+            {
+                if (lypos - fypos < 0)
+                {
+                    m_wb.x = firstY + midY;
+                    z = ProjZ(last->trs, midX, 0.0, 1.0);
+                    prevX = ProjX(last->trs, midX, 0.0, z, 1.0);
+                    prevY = ProjY(last->trs, midX, 0.0, z, 1.0);
+                }
+                else
+                {
+                    m_wb.x = firstX - midX;
+                    z = ProjZ(last->trs, midX, last->height - 1.0, 1.0);
+                    prevX = ProjX(last->trs, midX, last->height - 1.0, z, 1.0);
+                    prevY = ProjY(last->trs, midX, last->height - 1.0, z, 1.0);
+                }
+            }
+            dx = prevX - firstX;
+            if (dx < 0.0) m_wb.direction = 1.0;
+            else m_wb.direction = -1.0;
+            m_wb.x = firstX - m_wb.radius * m_wb.direction;
+            if (dx * m_wb.theta > 0.0) m_wb.width = -m_wb.width;
+        }
+
+        // Calculate the correct correction factor
+        double deltaX = prevX - m_wb.x;
+        double deltaY = prevY - m_wb.y;
+        double length = sqrt(deltaX * deltaX + deltaY * deltaY);
+        double deltaTheta = (m_wb.horizontal) ? deltaX : deltaY;
+        deltaTheta = asin(deltaTheta / length);
+        m_wb.correction = ((m_wb.radius - length) * m_wb.direction) /
+            (deltaTheta / m_wb.theta);
+    }
+}
diff --git a/perftests/panorama/feature_mos/src/mosaic/Blend.h b/perftests/panorama/feature_mos/src/mosaic/Blend.h
new file mode 100644
index 0000000..2c7ee5c
--- /dev/null
+++ b/perftests/panorama/feature_mos/src/mosaic/Blend.h
@@ -0,0 +1,128 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+///////////////////////////////////////////////////
+// Blend.h
+// $Id: Blend.h,v 1.23 2011/06/24 04:22:14 mbansal Exp $
+
+#ifndef BLEND_H
+#define BLEND_H
+
+#include "MosaicTypes.h"
+#include "Pyramid.h"
+#include "Delaunay.h"
+
+#define BLEND_RANGE_DEFAULT 6
+#define BORDER 8
+
+// Percent of total mosaicing time spent on each of the following operations
+const float TIME_PERCENT_ALIGN = 20.0;
+const float TIME_PERCENT_BLEND = 75.0;
+const float TIME_PERCENT_FINAL = 5.0;
+
+// This threshold determines the minimum separation between the image centers
+// of the input image frames for them to be accepted for blending in the
+// STRIP_TYPE_WIDE mode.
+const float STRIP_SEPARATION_THRESHOLD_PXLS = 10;
+
+// This threshold determines the number of pixels on either side of the strip
+// to cross-fade using the images contributing to each seam.
+const float STRIP_CROSS_FADE_WIDTH_PXLS = 2;
+// This specifies the maximum pyramid level to which cross-fading is applied.
+// The original image resolution is Level-0, half of that size is Level-1 and
+// so on. BLEND_RANGE_DEFAULT specifies the number of pyramid levels used by
+// the blending algorithm.
+const int STRIP_CROSS_FADE_MAX_PYR_LEVEL = 2;
+
+/**
+ *  Class for pyramid blending a mosaic.
+ */
+class Blend {
+
+public:
+
+  static const int BLEND_TYPE_NONE    = -1;
+  static const int BLEND_TYPE_FULL    = 0;
+  static const int BLEND_TYPE_PAN     = 1;
+  static const int BLEND_TYPE_CYLPAN  = 2;
+  static const int BLEND_TYPE_HORZ   = 3;
+
+  static const int STRIP_TYPE_THIN      = 0;
+  static const int STRIP_TYPE_WIDE      = 1;
+
+  static const int BLEND_RET_ERROR        = -1;
+  static const int BLEND_RET_OK           = 0;
+  static const int BLEND_RET_ERROR_MEMORY = 1;
+  static const int BLEND_RET_CANCELLED    = -2;
+
+  Blend();
+  ~Blend();
+
+  int initialize(int blendingType, int stripType, int frame_width, int frame_height);
+
+  int runBlend(MosaicFrame **frames, MosaicFrame **rframes, int frames_size, ImageType &imageMosaicYVU,
+        int &mosaicWidth, int &mosaicHeight, float &progress, bool &cancelComputation);
+
+protected:
+
+  PyramidShort *m_pFrameYPyr;
+  PyramidShort *m_pFrameUPyr;
+  PyramidShort *m_pFrameVPyr;
+
+  PyramidShort *m_pMosaicYPyr;
+  PyramidShort *m_pMosaicUPyr;
+  PyramidShort *m_pMosaicVPyr;
+
+  CDelaunay m_Triangulator;
+  CSite *m_AllSites;
+
+  BlendParams m_wb;
+
+  // Height and width of individual frames
+  int width, height;
+
+   // Height and width of mosaic
+  unsigned short Mwidth, Mheight;
+
+  // Helper functions
+  void FrameToMosaic(double trs[3][3], double x, double y, double &wx, double &wy);
+  void MosaicToFrame(double trs[3][3], double x, double y, double &wx, double &wy);
+  void FrameToMosaicRect(int width, int height, double trs[3][3], BlendRect &brect);
+  void ClipBlendRect(CSite *csite, BlendRect &brect);
+  void AlignToMiddleFrame(MosaicFrame **frames, int frames_size);
+
+  int  DoMergeAndBlend(MosaicFrame **frames, int nsite,  int width, int height, YUVinfo &imgMos, MosaicRect &rect, MosaicRect &cropping_rect, float &progress, bool &cancelComputation);
+  void ComputeMask(CSite *csite, BlendRect &vcrect, BlendRect &brect, MosaicRect &rect, YUVinfo &imgMos, int site_idx);
+  void ProcessPyramidForThisFrame(CSite *csite, BlendRect &vcrect, BlendRect &brect, MosaicRect &rect, YUVinfo &imgMos, double trs[3][3], int site_idx);
+
+  int  FillFramePyramid(MosaicFrame *mb);
+
+  // TODO: need to add documentation about the parameters
+  void ComputeBlendParameters(MosaicFrame **frames, int frames_size, int is360);
+  void SelectRelevantFrames(MosaicFrame **frames, int frames_size,
+        MosaicFrame **relevant_frames, int &relevant_frames_size);
+
+  int  PerformFinalBlending(YUVinfo &imgMos, MosaicRect &cropping_rect);
+  void CropFinalMosaic(YUVinfo &imgMos, MosaicRect &cropping_rect);
+
+private:
+   static const float LIMIT_SIZE_MULTIPLIER = 5.0f * 2.0f;
+   static const float LIMIT_HEIGHT_MULTIPLIER = 2.5f;
+   int MosaicSizeCheck(float sizeMultiplier, float heightMultiplier);
+   void RoundingCroppingSizeToMultipleOf8(MosaicRect& rect);
+};
+
+#endif
diff --git a/perftests/panorama/feature_mos/src/mosaic/CSite.h b/perftests/panorama/feature_mos/src/mosaic/CSite.h
new file mode 100644
index 0000000..928c173
--- /dev/null
+++ b/perftests/panorama/feature_mos/src/mosaic/CSite.h
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+///////////////////////////////////////////////////
+// CSite.h
+// $Id: CSite.h,v 1.3 2011/06/17 13:35:47 mbansal Exp $
+
+#ifndef TRIDEL_H
+#define TRIDEL_H
+
+#include "MosaicTypes.h"
+
+typedef struct
+{
+    short first;
+    short second;
+} SEdgeVector;
+
+typedef struct
+{
+    double x;
+    double y;
+} SVec2d;
+
+class CSite
+{
+private:
+    MosaicFrame *mosaicFrame;
+    SEdgeVector *neighbor;
+    int numNeighbors;
+    SVec2d voronoiCenter;
+
+public:
+    CSite();
+    ~CSite();
+
+    inline MosaicFrame* getMb() { return mosaicFrame; }
+    inline SEdgeVector* getNeighbor() { return neighbor; }
+    inline int getNumNeighbors() { return numNeighbors; }
+    inline SVec2d& getVCenter() { return voronoiCenter; }
+    inline double X() { return voronoiCenter.x; }
+    inline double Y() { return voronoiCenter.y; }
+
+    inline void incrNumNeighbors() { numNeighbors++; }
+    inline void setNumNeighbors(int num) { numNeighbors = num; }
+    inline void setNeighbor(SEdgeVector *nb) { neighbor = nb; }
+    inline void setMb(MosaicFrame *mb) { mosaicFrame = mb; }
+};
+
+#endif
diff --git a/perftests/panorama/feature_mos/src/mosaic/Delaunay.cpp b/perftests/panorama/feature_mos/src/mosaic/Delaunay.cpp
new file mode 100644
index 0000000..0ce09fc
--- /dev/null
+++ b/perftests/panorama/feature_mos/src/mosaic/Delaunay.cpp
@@ -0,0 +1,633 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+// Delaunay.cpp
+// $Id: Delaunay.cpp,v 1.10 2011/06/17 13:35:48 mbansal Exp $
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <memory.h>
+#include "Delaunay.h"
+
+#define QQ 9   // Optimal value as determined by testing
+#define DM 38  // 2^(1+DM/2) element sort capability. DM=38 for >10^6 elements
+#define NYL -1
+#define valid(l) ccw(orig(basel), dest(l), dest(basel))
+
+
+CDelaunay::CDelaunay()
+{
+}
+
+CDelaunay::~CDelaunay()
+{
+}
+
+// Allocate storage, construct triangulation, compute voronoi corners
+int CDelaunay::triangulate(SEdgeVector **edges, int n_sites, int width, int height)
+{
+  EdgePointer cep;
+
+  deleteAllEdges();
+  buildTriangulation(n_sites);
+  cep = consolidateEdges();
+  *edges = ev;
+
+  // Note: construction_list will change ev
+  return constructList(cep, width, height);
+}
+
+// builds delaunay triangulation
+void CDelaunay::buildTriangulation(int size)
+{
+  int i, rows;
+  EdgePointer lefte, righte;
+
+  rows = (int)( 0.5 + sqrt( (double) size / log( (double) size )));
+
+  // Sort the pointers by  x-coordinate of site
+  for ( i=0 ; i < size ; i++ ) {
+    sp[i] = (SitePointer) i;
+  }
+
+  spsortx( sp, 0, size-1 );
+  build( 0, size-1, &lefte, &righte, rows );
+  oneBndryEdge = lefte;
+}
+
+// Recursive Delaunay Triangulation Procedure
+// Contains modifications for axis-switching division.
+void CDelaunay::build(int lo, int hi, EdgePointer *le, EdgePointer *re, int rows)
+{
+  EdgePointer a, b, c, ldo, rdi, ldi, rdo, maxx, minx;
+  int split, lowrows;
+  int low, high;
+  SitePointer s1, s2, s3;
+  low = lo;
+  high = hi;
+
+  if ( low < (high-2) ) {
+    // more than three elements; do recursion
+    minx = sp[low];
+    maxx = sp[high];
+    if (rows == 1) {    // time to switch axis of division
+      spsorty( sp, low, high);
+      rows = 65536;
+    }
+    lowrows = rows/2;
+    split = low - 1 + (int)
+      (0.5 + ((double)(high-low+1) * ((double)lowrows / (double)rows)));
+    build( low, split, &ldo, &ldi, lowrows );
+    build( split+1, high, &rdi, &rdo, (rows-lowrows) );
+    doMerge(&ldo, ldi, rdi, &rdo);
+    while (orig(ldo) != minx) {
+      ldo = rprev(ldo);
+    }
+    while (orig(rdo) != maxx) {
+      rdo = (SitePointer) lprev(rdo);
+    }
+    *le = ldo;
+    *re = rdo;
+  }
+  else if (low >= (high - 1)) { // two or one points
+    a = makeEdge(sp[low], sp[high]);
+    *le = a;
+    *re = (EdgePointer) sym(a);
+  } else { // three points
+    // 3 cases: triangles of 2 orientations, and 3 points on a line
+    a = makeEdge((s1 = sp[low]), (s2 = sp[low+1]));
+    b = makeEdge(s2, (s3 = sp[high]));
+    splice((EdgePointer) sym(a), b);
+    if (ccw(s1, s3, s2)) {
+      c = connectLeft(b, a);
+      *le = (EdgePointer) sym(c);
+      *re = c;
+    } else {
+      *le = a;
+      *re = (EdgePointer) sym(b);
+      if (ccw(s1, s2, s3)) {
+        // not colinear
+        c = connectLeft(b, a);
+      }
+    }
+  }
+}
+
+// Quad-edge manipulation primitives
+EdgePointer CDelaunay::makeEdge(SitePointer origin, SitePointer destination)
+{
+  EdgePointer temp, ans;
+  temp = allocEdge();
+  ans = temp;
+
+  onext(temp) = ans;
+  orig(temp) = origin;
+  onext(++temp) = (EdgePointer) (ans + 3);
+  onext(++temp) = (EdgePointer) (ans + 2);
+  orig(temp) = destination;
+  onext(++temp) = (EdgePointer) (ans + 1);
+
+  return(ans);
+}
+
+void CDelaunay::splice(EdgePointer a, EdgePointer b)
+{
+  EdgePointer alpha, beta, temp;
+  alpha = (EdgePointer) rot(onext(a));
+  beta = (EdgePointer) rot(onext(b));
+  temp = onext(alpha);
+  onext(alpha) = onext(beta);
+  onext(beta) = temp;
+  temp = onext(a);
+  onext(a) = onext(b);
+  onext(b) = temp;
+}
+
+EdgePointer CDelaunay::connectLeft(EdgePointer a, EdgePointer b)
+{
+  EdgePointer ans;
+  ans = makeEdge(dest(a), orig(b));
+  splice(ans, (EdgePointer) lnext(a));
+  splice((EdgePointer) sym(ans), b);
+  return(ans);
+}
+
+EdgePointer CDelaunay::connectRight(EdgePointer a, EdgePointer b)
+{
+  EdgePointer ans;
+  ans = makeEdge(dest(a), orig(b));
+  splice(ans, (EdgePointer) sym(a));
+  splice((EdgePointer) sym(ans), (EdgePointer) oprev(b));
+  return(ans);
+}
+
+// disconnects e from the rest of the structure and destroys it
+void CDelaunay::deleteEdge(EdgePointer e)
+{
+  splice(e, (EdgePointer) oprev(e));
+  splice((EdgePointer) sym(e), (EdgePointer) oprev(sym(e)));
+  freeEdge(e);
+}
+
+//
+// Overall storage allocation
+//
+
+// Quad-edge storage allocation
+CSite *CDelaunay::allocMemory(int n)
+{
+  unsigned int size;
+
+  size = ((sizeof(CSite) + sizeof(SitePointer)) * n +
+          (sizeof(SitePointer) + sizeof(EdgePointer)) * 12
+          ) * n;
+  if (!(sa = (CSite*) malloc(size))) {
+    return NULL;
+  }
+  sp = (SitePointer *) (sa + n);
+  ev = (SEdgeVector *) (org = sp + n);
+  next = (EdgePointer *) (org + 12 * n);
+  ei = (struct EDGE_INFO *) (next + 12 * n);
+  return sa;
+}
+
+void CDelaunay::freeMemory()
+{
+  if (sa) {
+    free(sa);
+    sa = (CSite*)NULL;
+  }
+}
+
+//
+// Edge storage management
+//
+
+void CDelaunay::deleteAllEdges()
+{
+    nextEdge = 0;
+    availEdge = NYL;
+}
+
+EdgePointer CDelaunay::allocEdge()
+{
+  EdgePointer ans;
+
+  if (availEdge == NYL) {
+    ans = nextEdge, nextEdge += 4;
+  } else {
+    ans = availEdge, availEdge = onext(availEdge);
+  }
+  return(ans);
+}
+
+void CDelaunay::freeEdge(EdgePointer e)
+{
+  e ^= e & 3;
+  onext(e) = availEdge;
+  availEdge = e;
+}
+
+EdgePointer CDelaunay::consolidateEdges()
+{
+  EdgePointer e;
+  int i,j;
+
+  while (availEdge != NYL) {
+    nextEdge -= 4; e = availEdge; availEdge = onext(availEdge);
+
+    if (e==nextEdge) {
+      continue; // the one deleted was the last one anyway
+    }
+    if ((oneBndryEdge&~3) == nextEdge) {
+      oneBndryEdge = (EdgePointer) (e | (oneBndryEdge&3));
+    }
+    for (i=0,j=3; i<4; i++,j=rot(j)) {
+      onext(e+i) = onext(nextEdge+i);
+      onext(rot(onext(e+i))) = (EdgePointer) (e+j);
+    }
+  }
+  return nextEdge;
+}
+
+//
+// Sorting Routines
+//
+
+int CDelaunay::xcmpsp(int i, int j)
+{
+  double d = sa[(i>=0)?sp[i]:sp1].X() - sa[(j>=0)?sp[j]:sp1].X();
+  if ( d > 0. ) {
+    return 1;
+  }
+  if ( d < 0. ) {
+    return -1;
+  }
+  d = sa[(i>=0)?sp[i]:sp1].Y() - sa[(j>=0)?sp[j]:sp1].Y();
+  if ( d > 0. ) {
+    return 1;
+  }
+  if ( d < 0. ) {
+    return -1;
+  }
+  return 0;
+}
+
+int CDelaunay::ycmpsp(int i, int j)
+{
+  double d = sa[(i>=0)?sp[i]:sp1].Y() - sa[(j>=0)?sp[j]:sp1].Y();
+  if ( d > 0. ) {
+    return 1;
+  }
+  if ( d < 0. ) {
+    return -1;
+  }
+  d = sa[(i>=0)?sp[i]:sp1].X() - sa[(j>=0)?sp[j]:sp1].X();
+  if ( d > 0. ) {
+    return 1;
+  }
+  if ( d < 0. ) {
+    return -1;
+  }
+  return 0;
+}
+
+int CDelaunay::cmpev(int i, int j)
+{
+  return (ev[i].first - ev[j].first);
+}
+
+void CDelaunay::swapsp(int i, int j)
+{
+  int t;
+  t = (i>=0) ? sp[i] : sp1;
+
+  if (i>=0) {
+    sp[i] = (j>=0)?sp[j]:sp1;
+  } else {
+    sp1 = (j>=0)?sp[j]:sp1;
+  }
+
+  if (j>=0) {
+    sp[j] = (SitePointer) t;
+  } else {
+    sp1 = (SitePointer) t;
+  }
+}
+
+void CDelaunay::swapev(int i, int j)
+{
+  SEdgeVector temp;
+
+  temp = ev[i];
+  ev[i] = ev[j];
+  ev[j] = temp;
+}
+
+void CDelaunay::copysp(int i, int j)
+{
+  if (j>=0) {
+    sp[j] = (i>=0)?sp[i]:sp1;
+  } else {
+    sp1 = (i>=0)?sp[i]:sp1;
+  }
+}
+
+void CDelaunay::copyev(int i, int j)
+{
+  ev[j] = ev[i];
+}
+
+void CDelaunay::spsortx(SitePointer *sp_in, int low, int high)
+{
+  sp = sp_in;
+  rcssort(low,high,-1,&CDelaunay::xcmpsp,&CDelaunay::swapsp,&CDelaunay::copysp);
+}
+
+void CDelaunay::spsorty(SitePointer *sp_in, int low, int high )
+{
+  sp = sp_in;
+  rcssort(low,high,-1,&CDelaunay::ycmpsp,&CDelaunay::swapsp,&CDelaunay::copysp);
+}
+
+void CDelaunay::rcssort(int lowelt, int highelt, int temp,
+                    int (CDelaunay::*comparison)(int,int),
+                    void (CDelaunay::*swap)(int,int),
+                    void (CDelaunay::*copy)(int,int))
+{
+  int m,sij,si,sj,sL,sk;
+  int stack[DM];
+
+  if (highelt-lowelt<=1) {
+    return;
+  }
+  if (highelt-lowelt>QQ) {
+    m = 0;
+    si = lowelt; sj = highelt;
+    for (;;) { // partition [si,sj] about median-of-3.
+      sij = (sj+si) >> 1;
+
+      // Now to sort elements si,sij,sj into order & set temp=their median
+      if ( (this->*comparison)( si,sij ) > 0 ) {
+        (this->*swap)( si,sij );
+      }
+      if ( (this->*comparison)( sij,sj ) > 0 ) {
+        (this->*swap)( sj,sij );
+        if ( (this->*comparison)( si,sij ) > 0 ) {
+          (this->*swap)( si,sij );
+        }
+      }
+      (this->*copy)( sij,temp );
+
+      // Now to partition into elements <=temp, >=temp, and ==temp.
+      sk = si; sL = sj;
+      do {
+        do {
+          sL--;
+        } while( (this->*comparison)( sL,temp ) > 0 );
+        do {
+          sk++;
+        } while( (this->*comparison)( temp,sk ) > 0 );
+        if ( sk < sL ) {
+          (this->*swap)( sL,sk );
+        }
+      } while(sk <= sL);
+
+      // Now to recurse on shorter partition, store longer partition on stack
+      if ( sL-si > sj-sk ) {
+        if ( sL-si < QQ ) {
+          if( m==0 ) {
+            break;  // empty stack && both partitions < QQ so break
+          } else {
+            sj = stack[--m];
+            si = stack[--m];
+          }
+        }
+        else {
+          if ( sj-sk < QQ ) {
+            sj = sL;
+          } else {
+            stack[m++] = si;
+            stack[m++] = sL;
+            si = sk;
+          }
+        }
+      }
+      else {
+        if ( sj-sk < QQ ) {
+          if ( m==0 ) {
+            break; // empty stack && both partitions < QQ so break
+          } else {
+            sj = stack[--m];
+            si = stack[--m];
+          }
+        }
+        else {
+          if ( sL-si < QQ ) {
+            si = sk;
+          } else {
+            stack[m++] = sk;
+            stack[m++] = sj;
+            sj = sL;
+          }
+        }
+      }
+    }
+  }
+
+  // Now for 0 or Data bounded  "straight insertion" sort of [0,nels-1]; if it is
+  // known that el[-1] = -INF, then can omit the "sk>=0" test and save time.
+  for (si=lowelt; si<highelt; si++) {
+    if ( (this->*comparison)( si,si+1 ) > 0 ) {
+      (this->*copy)( si+1,temp );
+      sj = sk = si;
+      sj++;
+      do {
+        (this->*copy)( sk,sj );
+        sj = sk;
+        sk--;
+      } while ( (this->*comparison)( sk,temp ) > 0 && sk>=lowelt );
+      (this->*copy)( temp,sj );
+    }
+  }
+}
+
+//
+// Geometric primitives
+//
+
+// incircle, as in the Guibas-Stolfi paper.
+int CDelaunay::incircle(SitePointer a, SitePointer b, SitePointer c, SitePointer d)
+{
+  double adx, ady, bdx, bdy, cdx, cdy, dx, dy, nad, nbd, ncd;
+  dx = sa[d].X();
+  dy = sa[d].Y();
+  adx = sa[a].X() - dx;
+  ady = sa[a].Y() - dy;
+  bdx = sa[b].X() - dx;
+  bdy = sa[b].Y() - dy;
+  cdx = sa[c].X() - dx;
+  cdy = sa[c].Y() - dy;
+  nad = adx*adx+ady*ady;
+  nbd = bdx*bdx+bdy*bdy;
+  ncd = cdx*cdx+cdy*cdy;
+  return( (0.0 < (nad * (bdx * cdy - bdy * cdx)
+                  + nbd * (cdx * ady - cdy * adx)
+                  + ncd * (adx * bdy - ady * bdx))) ? TRUE : FALSE );
+}
+
+// TRUE iff A, B, C form a counterclockwise oriented triangle
+int CDelaunay::ccw(SitePointer a, SitePointer b, SitePointer c)
+{
+  int result;
+
+  double ax = sa[a].X();
+  double bx = sa[b].X();
+  double cx = sa[c].X();
+  double ay = sa[a].Y();
+  double by = sa[b].Y();
+  double cy = sa[c].Y();
+
+  double val = (ax - cx)*(by - cy) - (bx - cx)*(ay - cy);
+  if ( val > 0.0) {
+    return true;
+  }
+
+  return false;
+}
+
+//
+// The Merge Procedure.
+//
+
+void CDelaunay::doMerge(EdgePointer *ldo, EdgePointer ldi, EdgePointer rdi, EdgePointer *rdo)
+{
+  int rvalid, lvalid;
+  EdgePointer basel,lcand,rcand,t;
+
+  for (;;) {
+    while (ccw(orig(ldi), dest(ldi), orig(rdi))) {
+        ldi = (EdgePointer) lnext(ldi);
+    }
+    if (ccw(dest(rdi), orig(rdi), orig(ldi))) {
+        rdi = (EdgePointer)rprev(rdi);
+    } else {
+      break;
+    }
+  }
+
+  basel = connectLeft((EdgePointer) sym(rdi), ldi);
+  lcand = rprev(basel);
+  rcand = (EdgePointer) oprev(basel);
+  if (orig(basel) == orig(*rdo)) {
+    *rdo = basel;
+  }
+  if (dest(basel) == orig(*ldo)) {
+    *ldo = (EdgePointer) sym(basel);
+  }
+
+  for (;;) {
+#if 1
+    if (valid(t=onext(lcand))) {
+#else
+    t = (EdgePointer)onext(lcand);
+    if (valid(basel, t)) {
+#endif
+      while (incircle(dest(lcand), dest(t), orig(lcand), orig(basel))) {
+        deleteEdge(lcand);
+        lcand = t;
+        t = onext(lcand);
+      }
+    }
+#if 1
+    if (valid(t=(EdgePointer)oprev(rcand))) {
+#else
+    t = (EdgePointer)oprev(rcand);
+    if (valid(basel, t)) {
+#endif
+      while (incircle(dest(t), dest(rcand), orig(rcand), dest(basel))) {
+        deleteEdge(rcand);
+        rcand = t;
+        t = (EdgePointer)oprev(rcand);
+      }
+    }
+
+#if 1
+    lvalid = valid(lcand);
+    rvalid = valid(rcand);
+#else
+    lvalid = valid(basel, lcand);
+    rvalid = valid(basel, rcand);
+#endif
+    if ((! lvalid) && (! rvalid)) {
+      return;
+    }
+
+    if (!lvalid ||
+        (rvalid && incircle(dest(lcand), orig(lcand), orig(rcand), dest(rcand)))) {
+      basel = connectLeft(rcand, (EdgePointer) sym(basel));
+      rcand = (EdgePointer) lnext(sym(basel));
+    } else {
+      basel = (EdgePointer) sym(connectRight(lcand, basel));
+      lcand = rprev(basel);
+    }
+  }
+}
+
+int CDelaunay::constructList(EdgePointer last, int width, int height)
+{
+  int c, i;
+  EdgePointer curr, src, nex;
+  SEdgeVector *currv, *prevv;
+
+  c = (int) ((curr = (EdgePointer) ((last & ~3))) >> 1);
+
+  for (last -= 4; last >= 0; last -= 4) {
+    src = orig(last);
+    nex = dest(last);
+    orig(--curr) = src;
+    orig(--curr) = nex;
+    orig(--curr) = nex;
+    orig(--curr) = src;
+  }
+  rcssort(0, c - 1, -1, &CDelaunay::cmpev, &CDelaunay::swapev, &CDelaunay::copyev);
+
+  // Throw out any edges that are too far apart
+  currv = prevv = ev;
+  for (i = c; i--; currv++) {
+      if ((int) fabs(sa[currv->first].getVCenter().x - sa[currv->second].getVCenter().x) <= width &&
+          (int) fabs(sa[currv->first].getVCenter().y - sa[currv->second].getVCenter().y) <= height) {
+          *(prevv++) = *currv;
+      } else {
+        c--;
+      }
+  }
+  return c;
+}
+
+// Fill in site neighbor information
+void CDelaunay::linkNeighbors(SEdgeVector *edge, int nedge, int nsite)
+{
+  int i;
+
+  for (i = 0; i < nsite; i++) {
+    sa[i].setNeighbor(edge);
+    sa[i].setNumNeighbors(0);
+    for (; edge->first == i && nedge; edge++, nedge--) {
+      sa[i].incrNumNeighbors();
+    }
+  }
+}
diff --git a/perftests/panorama/feature_mos/src/mosaic/Delaunay.h b/perftests/panorama/feature_mos/src/mosaic/Delaunay.h
new file mode 100644
index 0000000..7a450b5
--- /dev/null
+++ b/perftests/panorama/feature_mos/src/mosaic/Delaunay.h
@@ -0,0 +1,126 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+// Delaunay.h
+// $Id: Delaunay.h,v 1.9 2011/06/17 13:35:48 mbansal Exp $
+
+#ifndef DELAUNAY_H
+#define DELAUNAY_H
+#include <stdio.h>
+#include <math.h>
+#include "CSite.h"
+#include "EdgePointerUtil.h"
+
+#ifndef TRUE
+#define TRUE 1==1
+#define FALSE 0==1
+#endif
+
+//******************************************************************************
+// Reference for Quad-edge data structure:
+//
+// Leonidas Guibas and Jorge Stolfi, "Primitives for the manipulation of general
+//     subdivisions and the computations of Voronoi diagrams",
+//     ACM Transactions on Graphics 4, 74-123 (1985).
+//
+//******************************************************************************
+
+//
+// Common data structures
+//
+
+typedef short SitePointer;
+typedef short TrianglePointer;
+
+class CDelaunay
+{
+private:
+  CSite *sa;
+  EdgePointer oneBndryEdge;
+  EdgePointer *next;
+  SitePointer *org;
+  struct EDGE_INFO *ei;
+  SitePointer *sp;
+  SEdgeVector *ev;
+
+  SitePointer sp1;
+  EdgePointer nextEdge;
+  EdgePointer availEdge;
+
+private:
+  void build(int lo, int hi, EdgePointer *le, EdgePointer *re, int rows);
+  void buildTriangulation(int size);
+
+  EdgePointer allocEdge();
+  void freeEdge(EdgePointer e);
+
+  EdgePointer makeEdge(SitePointer origin, SitePointer destination);
+  void deleteEdge(EdgePointer e);
+
+  void splice(EdgePointer, EdgePointer);
+  EdgePointer consolidateEdges();
+  void deleteAllEdges();
+
+  void spsortx(SitePointer *, int, int);
+  void spsorty(SitePointer *, int, int);
+
+  int cmpev(int i, int j);
+  int xcmpsp(int i, int j);
+  int ycmpsp(int i, int j);
+
+  void swapsp(int i, int j);
+  void swapev(int i, int j);
+
+  void copysp(int i, int j);
+  void copyev(int i, int j);
+
+  void rcssort(int lowelt, int highelt, int temp,
+                 int (CDelaunay::*comparison)(int,int),
+                 void (CDelaunay::*swap)(int,int),
+                 void (CDelaunay::*copy)(int,int));
+
+  void doMerge(EdgePointer *ldo, EdgePointer ldi, EdgePointer rdi, EdgePointer *rdo);
+  EdgePointer connectLeft(EdgePointer a, EdgePointer b);
+  EdgePointer connectRight(EdgePointer a, EdgePointer b);
+  int ccw(SitePointer a, SitePointer b, SitePointer c);
+  int incircle(SitePointer a, SitePointer b, SitePointer c, SitePointer d);
+  int constructList(EdgePointer e, int width, int height);
+
+public:
+  CDelaunay();
+  ~CDelaunay();
+
+  CSite *allocMemory(int nsite);
+  void freeMemory();
+  int triangulate(SEdgeVector **edge, int nsite, int width, int height);
+  void linkNeighbors(SEdgeVector *edge, int nedge, int nsite);
+};
+
+#define onext(a) next[a]
+#define oprev(a) rot(onext(rot(a)))
+#define lnext(a) rot(onext(rotinv(a)))
+#define lprev(a) sym(onext(a))
+#define rnext(a) rotinv(onext(rot(a)))
+#define rprev(a) onext(sym(a))
+#define dnext(a) sym(onext(sym(a)))
+#define dprev(a) rotinv(onext(rotinv(a)))
+
+#define orig(a) org[a]
+#define dest(a) orig(sym(a))
+#define left(a) orig(rotinv(a))
+#define right(a) orig(rot(a))
+
+#endif
diff --git a/perftests/panorama/feature_mos/src/mosaic/EdgePointerUtil.h b/perftests/panorama/feature_mos/src/mosaic/EdgePointerUtil.h
new file mode 100644
index 0000000..fad05d7
--- /dev/null
+++ b/perftests/panorama/feature_mos/src/mosaic/EdgePointerUtil.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+#ifndef _EDGEPOINTERUTIL_H_
+#define _EDGEPOINTERUTIL_H_
+
+typedef short EdgePointer;
+
+inline EdgePointer sym(EdgePointer a)
+{
+  return a ^ 2;
+}
+
+inline EdgePointer rot(EdgePointer a)
+{
+  return (((a) + 1) & 3) | ((a) & ~3);
+}
+
+inline EdgePointer rotinv(EdgePointer a)
+{
+  return (((a) + 3) & 3) | ((a) & ~3);
+}
+
+#endif //_EDGEPOINTERUTIL_H_
diff --git a/perftests/panorama/feature_mos/src/mosaic/Geometry.h b/perftests/panorama/feature_mos/src/mosaic/Geometry.h
new file mode 100644
index 0000000..0efa0f4
--- /dev/null
+++ b/perftests/panorama/feature_mos/src/mosaic/Geometry.h
@@ -0,0 +1,156 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+/////////////////////////////
+// Geometry.h
+// $Id: Geometry.h,v 1.2 2011/06/17 13:35:48 mbansal Exp $
+
+#pragma once
+#include "MosaicTypes.h"
+
+///////////////////////////////////////////////////////////////
+///////////////// BEG GLOBAL ROUTINES /////////////////////////
+///////////////////////////////////////////////////////////////
+
+
+inline double hypotSq(double a, double b)
+{
+    return ((a)*(a)+(b)*(b));
+}
+
+inline void ClipRect(double x, double y, BlendRect &brect)
+{
+    if (y < brect.bot) brect.bot = y;
+    if (y > brect.top) brect.top = y;
+    if (x < brect.lft) brect.lft = x;
+    if (x > brect.rgt) brect.rgt = x;
+}
+
+inline void ClipRect(BlendRect rrect, BlendRect &brect)
+{
+    if (rrect.bot < brect.bot) brect.bot = rrect.bot;
+    if (rrect.top > brect.top) brect.top = rrect.top;
+    if (rrect.lft < brect.lft) brect.lft = rrect.lft;
+    if (rrect.rgt > brect.rgt) brect.rgt = rrect.rgt;
+}
+
+// Clip x to be within [-border,width+border-1]
+inline void clipToSegment(int &x, int width, int border)
+{
+    if(x < -border)
+        x = -border;
+    else if(x >= width+border)
+        x = width + border - 1;
+}
+
+// Return true if x within [-border,width+border-1]
+inline bool inSegment(int x, int width, int border)
+{
+    return (x >= -border && x < width + border - 1);
+}
+
+inline void FindTriangleCentroid(double x0, double y0, double x1, double y1,
+                                    double x2, double y2,
+                                    double &mass, double &centX, double &centY)
+{
+    // Calculate the centroid of the triangle
+    centX = (x0 + x1 + x2) / 3.0;
+    centY = (y0 + y1 + y2) / 3.0;
+
+    // Calculate 2*Area for the triangle
+    if (y0 == y2)
+    {
+        if (x0 == x1)
+        {
+            mass = fabs((y1 - y0) * (x2 - x0)); // Special case 1a
+        }
+        else
+        {
+            mass = fabs((y1 - y0) * (x1 - x0)); // Special case 1b
+        }
+    }
+    else if (x0 == x2)
+    {
+        if (x0 == x1)
+        {
+            mass = fabs((x2 - x0) * (y2 - y0)); // Special case 2a
+        }
+        else
+        {
+            mass = fabs((x1 - x0) * (y2 - y0)); // Special case 2a
+        }
+    }
+    else if (x1 == x2)
+    {
+        mass = fabs((x1 - x0) * (y2 - y0)); // Special case 3
+    }
+    else
+    {
+        // Calculate line equation from x0,y0 to x2,y2
+        double dx = x2 - x0;
+        double dy = y2 - y0;
+        // Calculate the length of the side
+        double len1 = sqrt(dx * dx + dy * dy);
+        double m1 = dy / dx;
+        double b1 = y0 - m1 * x0;
+        // Calculate the line that goes through x1,y1 and is perpendicular to
+        // the other line
+        double m2 = 1.0 / m1;
+        double b2 = y1 - m2 * x1;
+        // Calculate the intersection of the two lines
+        if (fabs( m1 - m2 ) > 1.e-6)
+        {
+            double x = (b2 - b1) / (m1 - m2);
+            // the mass is the base * height
+            dx = x1 - x;
+            dy = y1 - m1 * x + b1;
+            mass = len1 * sqrt(dx * dx + dy * dy);
+        }
+        else
+        {
+            mass = fabs( (y1 - y0) * (x2 - x0) );
+        }
+    }
+}
+
+inline void FindQuadCentroid(double x0, double y0, double x1, double y1, double x2, double y2, double x3, double y3,
+                                     double &centX, double &centY)
+
+{
+    // To find the centroid:
+    // 1) Divide the quadrilateral into two triangles by scribing a diagonal
+    // 2) Calculate the centroid of each triangle (the intersection of the angle bisections).
+    // 3) Find the centroid of the quad by weighting each triangle centroids by their area.
+
+    // Calculate the corner points
+    double z;
+
+    // The quad is split from x0,y0 to x2,y2
+    double mass1, mass2, cent1x, cent2x, cent1y, cent2y;
+    FindTriangleCentroid(x0, y0, x1, y1, x2, y2, mass1, cent1x, cent1y);
+    FindTriangleCentroid(x0, y0, x3, y3, x2, y2, mass2, cent2x, cent2y);
+
+    // determine position of quad centroid
+    z = mass2 / (mass1 + mass2);
+    centX = cent1x + (cent2x - cent1x) * z;
+    centY = cent1y + (cent2y - cent1y) * z;
+}
+
+///////////////////////////////////////////////////////////////
+////////////////// END GLOBAL ROUTINES ////////////////////////
+///////////////////////////////////////////////////////////////
+
+
diff --git a/perftests/panorama/feature_mos/src/mosaic/ImageUtils.cpp b/perftests/panorama/feature_mos/src/mosaic/ImageUtils.cpp
new file mode 100644
index 0000000..6d0aac0
--- /dev/null
+++ b/perftests/panorama/feature_mos/src/mosaic/ImageUtils.cpp
@@ -0,0 +1,408 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+///////////////////////////////////////////////////
+// ImageUtils.cpp
+// $Id: ImageUtils.cpp,v 1.12 2011/06/17 13:35:48 mbansal Exp $
+
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/time.h>
+
+#include "ImageUtils.h"
+
+void ImageUtils::rgba2yvu(ImageType out, ImageType in, int width, int height)
+{
+  int r,g,b, a;
+  ImageType yimg = out;
+  ImageType vimg = yimg + width*height;
+  ImageType uimg = vimg + width*height;
+  ImageType image = in;
+
+  for (int ii = 0; ii < height; ii++) {
+    for (int ij = 0; ij < width; ij++) {
+      r = (*image++);
+      g = (*image++);
+      b = (*image++);
+      a = (*image++);
+
+      if (r < 0) r = 0;
+      if (r > 255) r = 255;
+      if (g < 0) g = 0;
+      if (g > 255) g = 255;
+      if (b < 0) b = 0;
+      if (b > 255) b = 255;
+
+      int val = (int) (REDY * r + GREENY * g + BLUEY * b) / 1000 + 16;
+      if (val < 0) val = 0;
+      if (val > 255) val = 255;
+      *(yimg) = val;
+
+      val = (int) (REDV * r - GREENV * g - BLUEV * b) / 1000 + 128;
+      if (val < 0) val = 0;
+      if (val > 255) val = 255;
+      *(vimg) = val;
+
+      val = (int) (-REDU * r - GREENU * g + BLUEU * b) / 1000 + 128;
+      if (val < 0) val = 0;
+      if (val > 255) val = 255;
+      *(uimg) = val;
+
+      yimg++;
+      uimg++;
+      vimg++;
+    }
+  }
+}
+
+
+void ImageUtils::rgb2yvu(ImageType out, ImageType in, int width, int height)
+{
+  int r,g,b;
+  ImageType yimg = out;
+  ImageType vimg = yimg + width*height;
+  ImageType uimg = vimg + width*height;
+  ImageType image = in;
+
+  for (int ii = 0; ii < height; ii++) {
+    for (int ij = 0; ij < width; ij++) {
+      r = (*image++);
+      g = (*image++);
+      b = (*image++);
+
+      if (r < 0) r = 0;
+      if (r > 255) r = 255;
+      if (g < 0) g = 0;
+      if (g > 255) g = 255;
+      if (b < 0) b = 0;
+      if (b > 255) b = 255;
+
+      int val = (int) (REDY * r + GREENY * g + BLUEY * b) / 1000 + 16;
+      if (val < 0) val = 0;
+      if (val > 255) val = 255;
+      *(yimg) = val;
+
+      val = (int) (REDV * r - GREENV * g - BLUEV * b) / 1000 + 128;
+      if (val < 0) val = 0;
+      if (val > 255) val = 255;
+      *(vimg) = val;
+
+      val = (int) (-REDU * r - GREENU * g + BLUEU * b) / 1000 + 128;
+      if (val < 0) val = 0;
+      if (val > 255) val = 255;
+      *(uimg) = val;
+
+      yimg++;
+      uimg++;
+      vimg++;
+    }
+  }
+}
+
+ImageType ImageUtils::rgb2gray(ImageType in, int width, int height)
+{
+  int r,g,b, nr, ng, nb, val;
+  ImageType gray = NULL;
+  ImageType image = in;
+  ImageType out = ImageUtils::allocateImage(width, height, 1);
+  ImageType outCopy = out;
+
+  for (int ii = 0; ii < height; ii++) {
+    for (int ij = 0; ij < width; ij++) {
+      r = (*image++);
+      g = (*image++);
+      b = (*image++);
+
+      if (r < 0) r = 0;
+      if (r > 255) r = 255;
+      if (g < 0) g = 0;
+      if (g > 255) g = 255;
+      if (b < 0) b = 0;
+      if (b > 255) b = 255;
+
+      (*outCopy) = ( 0.3*r + 0.59*g + 0.11*b);
+
+      outCopy++;
+    }
+  }
+
+  return out;
+}
+
+ImageType ImageUtils::rgb2gray(ImageType out, ImageType in, int width, int height)
+{
+  int r,g,b, nr, ng, nb, val;
+  ImageType gray = out;
+  ImageType image = in;
+  ImageType outCopy = out;
+
+  for (int ii = 0; ii < height; ii++) {
+    for (int ij = 0; ij < width; ij++) {
+      r = (*image++);
+      g = (*image++);
+      b = (*image++);
+
+      if (r < 0) r = 0;
+      if (r > 255) r = 255;
+      if (g < 0) g = 0;
+      if (g > 255) g = 255;
+      if (b < 0) b = 0;
+      if (b > 255) b = 255;
+
+      (*outCopy) = ( 0.3*r + 0.59*g + 0.11*b);
+
+      outCopy++;
+    }
+  }
+
+  return out;
+
+}
+
+ImageType *ImageUtils::imageTypeToRowPointers(ImageType in, int width, int height)
+{
+  int i;
+  int m_h = height;
+  int m_w = width;
+
+  ImageType *m_rows = new ImageType[m_h];
+
+  for (i=0;i<m_h;i++) {
+    m_rows[i] = &in[(m_w)*i];
+  }
+  return m_rows;
+}
+
+void ImageUtils::yvu2rgb(ImageType out, ImageType in, int width, int height)
+{
+  int y,v,u, r, g, b;
+  unsigned char *yimg = in;
+  unsigned char *vimg = yimg + width*height;
+  unsigned char *uimg = vimg + width*height;
+  unsigned char *image = out;
+
+  for (int i = 0; i < height; i++) {
+    for (int j = 0; j < width; j++) {
+
+      y = (*yimg);
+      v = (*vimg);
+      u = (*uimg);
+
+      if (y < 0) y = 0;
+      if (y > 255) y = 255;
+      if (u < 0) u = 0;
+      if (u > 255) u = 255;
+      if (v < 0) v = 0;
+      if (v > 255) v = 255;
+
+      b = (int) ( 1.164*(y - 16) + 2.018*(u-128));
+      g = (int) ( 1.164*(y - 16) - 0.813*(v-128) - 0.391*(u-128));
+      r = (int) ( 1.164*(y - 16) + 1.596*(v-128));
+
+      if (r < 0) r = 0;
+      if (r > 255) r = 255;
+      if (g < 0) g = 0;
+      if (g > 255) g = 255;
+      if (b < 0) b = 0;
+      if (b > 255) b = 255;
+
+      *(image++) = r;
+      *(image++) = g;
+      *(image++) = b;
+
+      yimg++;
+      uimg++;
+      vimg++;
+
+    }
+  }
+}
+
+void ImageUtils::yvu2bgr(ImageType out, ImageType in, int width, int height)
+{
+  int y,v,u, r, g, b;
+  unsigned char *yimg = in;
+  unsigned char *vimg = yimg + width*height;
+  unsigned char *uimg = vimg + width*height;
+  unsigned char *image = out;
+
+  for (int i = 0; i < height; i++) {
+    for (int j = 0; j < width; j++) {
+
+      y = (*yimg);
+      v = (*vimg);
+      u = (*uimg);
+
+      if (y < 0) y = 0;
+      if (y > 255) y = 255;
+      if (u < 0) u = 0;
+      if (u > 255) u = 255;
+      if (v < 0) v = 0;
+      if (v > 255) v = 255;
+
+      b = (int) ( 1.164*(y - 16) + 2.018*(u-128));
+      g = (int) ( 1.164*(y - 16) - 0.813*(v-128) - 0.391*(u-128));
+      r = (int) ( 1.164*(y - 16) + 1.596*(v-128));
+
+      if (r < 0) r = 0;
+      if (r > 255) r = 255;
+      if (g < 0) g = 0;
+      if (g > 255) g = 255;
+      if (b < 0) b = 0;
+      if (b > 255) b = 255;
+
+      *(image++) = b;
+      *(image++) = g;
+      *(image++) = r;
+
+      yimg++;
+      uimg++;
+      vimg++;
+
+    }
+  }
+}
+
+
+ImageType ImageUtils::readBinaryPPM(const char *filename, int &width, int &height)
+{
+
+  FILE *imgin = NULL;
+  int mval=0, format=0, eret;
+  ImageType ret = IMAGE_TYPE_NOIMAGE;
+
+  imgin = fopen(filename, "r");
+  if (imgin == NULL) {
+    fprintf(stderr, "Error: Filename %s not found\n", filename);
+    return ret;
+  }
+
+  eret = fscanf(imgin, "P%d\n", &format);
+  if (format != 6) {
+    fprintf(stderr, "Error: readBinaryPPM only supports PPM format (P6)\n");
+    return ret;
+  }
+
+  eret = fscanf(imgin, "%d %d\n", &width, &height);
+  eret = fscanf(imgin, "%d\n", &mval);
+  ret  = allocateImage(width, height, IMAGE_TYPE_NUM_CHANNELS);
+  eret = fread(ret, sizeof(ImageTypeBase), IMAGE_TYPE_NUM_CHANNELS*width*height, imgin);
+
+  fclose(imgin);
+
+  return ret;
+
+}
+
+void ImageUtils::writeBinaryPPM(ImageType image, const char *filename, int width, int height, int numChannels)
+{
+  FILE *imgout = fopen(filename, "w");
+
+  if (imgout == NULL) {
+    fprintf(stderr, "Error: Filename %s could not be opened for writing\n", filename);
+    return;
+  }
+
+  if (numChannels == 3) {
+    fprintf(imgout, "P6\n%d %d\n255\n", width, height);
+  } else if (numChannels == 1) {
+    fprintf(imgout, "P5\n%d %d\n255\n", width, height);
+  } else {
+    fprintf(stderr, "Error: writeBinaryPPM: Unsupported number of channels\n");
+  }
+  fwrite(image, sizeof(ImageTypeBase), numChannels*width*height, imgout);
+
+  fclose(imgout);
+
+}
+
+ImageType ImageUtils::allocateImage(int width, int height, int numChannels, short int border)
+{
+  int overallocation = 256;
+ return (ImageType) calloc(width*height*numChannels+overallocation, sizeof(ImageTypeBase));
+}
+
+
+void ImageUtils::freeImage(ImageType image)
+{
+  free(image);
+}
+
+
+// allocation of one color image used for tmp buffers, etc.
+// format of contiguous memory block:
+//    YUVInfo struct (type + BimageInfo for Y,U, and V),
+//    Y row pointers
+//    U row pointers
+//    V row pointers
+//    Y image pixels
+//    U image pixels
+//    V image pixels
+YUVinfo *YUVinfo::allocateImage(unsigned short width, unsigned short height)
+{
+    unsigned short heightUV, widthUV;
+
+    widthUV = width;
+    heightUV = height;
+
+    // figure out how much space to hold all pixels...
+    int size = ((width * height * 3) + 8);
+    unsigned char *position = 0;
+
+    // VC 8 does not like calling free on yuv->Y.ptr since it is in
+    // the middle of a block.  So rearrange the memory layout so after
+    // calling mapYUVInforToImage yuv->Y.ptr points to the begginning
+    // of the calloc'ed block.
+    YUVinfo *yuv = (YUVinfo *) calloc(sizeof(YUVinfo), 1);
+    if (yuv) {
+        yuv->Y.width  = yuv->Y.pitch = width;
+        yuv->Y.height = height;
+        yuv->Y.border = yuv->U.border = yuv->V.border = (unsigned short) 0;
+        yuv->U.width  = yuv->U.pitch = yuv->V.width = yuv->V.pitch = widthUV;
+        yuv->U.height = yuv->V.height = heightUV;
+
+        unsigned char* block = (unsigned char*) calloc(
+                sizeof(unsigned char *) * (height + heightUV + heightUV) +
+                sizeof(unsigned char) * size, 1);
+
+        position = block;
+        unsigned char **y = (unsigned char **) (block + size);
+
+        /* Initialize and assign row pointers */
+        yuv->Y.ptr = y;
+        yuv->V.ptr = &y[height];
+        yuv->U.ptr = &y[height + heightUV];
+    }
+    if (size)
+        mapYUVInfoToImage(yuv, position);
+    return yuv;
+}
+
+// wrap YUVInfo row pointers around 3 contiguous image (color component) planes.
+// position = starting pixel in image.
+void YUVinfo::mapYUVInfoToImage(YUVinfo *img, unsigned char *position)
+{
+    int i;
+    for (i = 0; i < img->Y.height; i++, position += img->Y.width)
+        img->Y.ptr[i] = position;
+    for (i = 0; i < img->V.height; i++, position += img->V.width)
+        img->V.ptr[i] = position;
+    for (i = 0; i < img->U.height; i++, position += img->U.width)
+        img->U.ptr[i] = position;
+}
+
+
diff --git a/perftests/panorama/feature_mos/src/mosaic/ImageUtils.h b/perftests/panorama/feature_mos/src/mosaic/ImageUtils.h
new file mode 100644
index 0000000..92965ca
--- /dev/null
+++ b/perftests/panorama/feature_mos/src/mosaic/ImageUtils.h
@@ -0,0 +1,173 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+///////////////////////////////////////////////////
+// ImageUtils.h
+// $Id: ImageUtils.h,v 1.9 2011/05/16 15:33:06 mbansal Exp $
+
+#ifndef IMAGE_UTILS_H
+#define IMAGE_UTILS_H
+
+#include <stdlib.h>
+
+/**
+ *  Definition of basic image types
+ */
+typedef unsigned char ImageTypeBase;
+typedef ImageTypeBase *ImageType;
+
+typedef short ImageTypeShortBase;
+typedef ImageTypeShortBase *ImageTypeShort;
+
+typedef float ImageTypeFloatBase;
+typedef ImageTypeFloatBase *ImageTypeFloat;
+
+
+class ImageUtils {
+public:
+
+  /**
+   *  Default number of channels in image.
+   */
+  static const int IMAGE_TYPE_NUM_CHANNELS = 3;
+
+  /**
+   *  Definition of an empty image.
+   */
+  static const int IMAGE_TYPE_NOIMAGE = 0;
+
+  /**
+   *  Convert image from BGR (interlaced) to YVU (non-interlaced)
+   *
+   *  Arguments:
+   *    out: Resulting image (note must be preallocated before
+   *    call)
+   *    in: Input image
+   *    width: Width of input image
+   *    height: Height of input image
+   */
+  static void rgb2yvu(ImageType out, ImageType in, int width, int height);
+
+  static void rgba2yvu(ImageType out, ImageType in, int width, int height);
+
+  /**
+   *  Convert image from YVU (non-interlaced) to BGR (interlaced)
+   *
+   *  Arguments:
+   *    out: Resulting image (note must be preallocated before
+   *    call)
+   *    in: Input image
+   *    width: Width of input image
+   *    height: Height of input image
+   */
+  static void yvu2rgb(ImageType out, ImageType in, int width, int height);
+  static void yvu2bgr(ImageType out, ImageType in, int width, int height);
+
+  /**
+   *  Convert image from BGR to grayscale
+   *
+   *  Arguments:
+   *    in: Input image
+   *    width: Width of input image
+   *    height: Height of input image
+   *
+   *  Return:
+   *    Pointer to resulting image (allocation is done here, free
+   *    must be done by caller)
+   */
+  static ImageType rgb2gray(ImageType in, int width, int height);
+  static ImageType rgb2gray(ImageType out, ImageType in, int width, int height);
+
+  /**
+   *  Read a binary PPM image
+   */
+  static ImageType readBinaryPPM(const char *filename, int &width, int &height);
+
+  /**
+   *  Write a binary PPM image
+   */
+  static void writeBinaryPPM(ImageType image, const char *filename, int width, int height, int numChannels = IMAGE_TYPE_NUM_CHANNELS);
+
+  /**
+   *  Allocate space for a standard image.
+   */
+  static ImageType allocateImage(int width, int height, int numChannels, short int border = 0);
+
+  /**
+   *  Free memory of image
+   */
+  static void freeImage(ImageType image);
+
+  static ImageType *imageTypeToRowPointers(ImageType out, int width, int height);
+  /**
+   *  Get time.
+   */
+  static double getTime();
+
+protected:
+
+  /**
+  *  Constants for YVU/RGB conversion
+  */
+  static const int REDY = 257;
+  static const int REDV = 439;
+  static const int REDU = 148;
+  static const int GREENY = 504;
+  static const int GREENV = 368;
+  static const int GREENU = 291;
+  static const int BLUEY = 98;
+  static const int BLUEV = 71;
+  static const int BLUEU = 439;
+
+};
+
+/**
+ * Structure containing an image and other bookkeeping items.
+ * Used in YUVinfo to store separate YVU image planes.
+ */
+typedef struct {
+  ImageType *ptr;
+  unsigned short width;
+  unsigned short height;
+  unsigned short border;
+  unsigned short pitch;
+} BimageInfo;
+
+/**
+ * A YUV image container,
+ */
+class YUVinfo {
+public:
+  static YUVinfo *allocateImage(unsigned short width, unsigned short height);
+  static void mapYUVInfoToImage(YUVinfo *img, unsigned char *position);
+
+  /**
+  * Y Plane
+  */
+  BimageInfo Y;
+
+  /**
+  *  V (1st color) plane
+  */
+  BimageInfo V;
+
+  /**
+  *  U (1st color) plane
+  */
+  BimageInfo U;
+};
+
+#endif
diff --git a/perftests/panorama/feature_mos/src/mosaic/Interp.h b/perftests/panorama/feature_mos/src/mosaic/Interp.h
new file mode 100644
index 0000000..19c4a40
--- /dev/null
+++ b/perftests/panorama/feature_mos/src/mosaic/Interp.h
@@ -0,0 +1,80 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+///////////////////////////////////////////////////////////
+// Interp.h
+// $Id: Interp.h,v 1.2 2011/06/17 13:35:48 mbansal Exp $
+
+#ifndef INTERP_H
+#define INTERP_H
+
+#include "Pyramid.h"
+
+#define CTAPS 40
+static double ciTable[81] = {
+        1, 0.998461, 0.993938, 0.98657, 0.9765,
+        0.963867, 0.948813, 0.931477, 0.912, 0.890523,
+        0.867188, 0.842133, 0.8155, 0.78743, 0.758062,
+        0.727539, 0.696, 0.663586, 0.630437, 0.596695,
+        0.5625, 0.527992, 0.493312, 0.458602, 0.424,
+        0.389648, 0.355687, 0.322258, 0.2895, 0.257555,
+        0.226562, 0.196664, 0.168, 0.140711, 0.114937,
+        0.0908203, 0.0685, 0.0481172, 0.0298125, 0.0137266,
+        0, -0.0118828, -0.0225625, -0.0320859, -0.0405,
+        -0.0478516, -0.0541875, -0.0595547, -0.064, -0.0675703,
+        -0.0703125, -0.0722734, -0.0735, -0.0740391, -0.0739375,
+        -0.0732422, -0.072, -0.0702578, -0.0680625, -0.0654609,
+        -0.0625, -0.0592266, -0.0556875, -0.0519297, -0.048,
+        -0.0439453, -0.0398125, -0.0356484, -0.0315, -0.0274141,
+        -0.0234375, -0.0196172, -0.016, -0.0126328, -0.0095625,
+        -0.00683594, -0.0045, -0.00260156, -0.0011875, -0.000304687, 0.0
+};
+
+inline double ciCalc(PyramidShort *img, int xi, int yi, double xfrac, double yfrac)
+{
+  double tmpf[4];
+
+  // Interpolate using 16 points
+  ImageTypeShortBase *in = img->ptr[yi-1] + xi - 1;
+  int off = (int)(xfrac * CTAPS);
+
+  tmpf[0] = in[0] * ciTable[off + 40];
+  tmpf[0] += in[1] * ciTable[off];
+  tmpf[0] += in[2] * ciTable[40 - off];
+  tmpf[0] += in[3] * ciTable[80 - off];
+  in += img->pitch;
+  tmpf[1] = in[0] * ciTable[off + 40];
+  tmpf[1] += in[1] * ciTable[off];
+  tmpf[1] += in[2] * ciTable[40 - off];
+  tmpf[1] += in[3] * ciTable[80 - off];
+  in += img->pitch;
+  tmpf[2] = in[0] * ciTable[off + 40];
+  tmpf[2] += in[1] * ciTable[off];
+  tmpf[2] += in[2] * ciTable[40 - off];
+  tmpf[2] += in[3] * ciTable[80 - off];
+  in += img->pitch;
+  tmpf[3] = in[0] * ciTable[off + 40];
+  tmpf[3] += in[1] * ciTable[off];
+  tmpf[3] += in[2] * ciTable[40 - off];
+  tmpf[3] += in[3] * ciTable[80 - off];
+
+  // this is the final interpolation
+  off = (int)(yfrac * CTAPS);
+  return (ciTable[off + 40] * tmpf[0] + ciTable[off] * tmpf[1] +
+          ciTable[40 - off] * tmpf[2] + ciTable[80 - off] * tmpf[3]);
+}
+
+#endif
diff --git a/perftests/panorama/feature_mos/src/mosaic/Log.h b/perftests/panorama/feature_mos/src/mosaic/Log.h
new file mode 100644
index 0000000..cf6f14b
--- /dev/null
+++ b/perftests/panorama/feature_mos/src/mosaic/Log.h
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+#ifndef LOG_H_
+#define LOG_H
+
+#include <android/log.h>
+#define LOGV(...) __android_log_print(ANDROID_LOG_SILENT, LOG_TAG, __VA_ARGS__)
+#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)
+#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)
+
+#endif
diff --git a/perftests/panorama/feature_mos/src/mosaic/MatrixUtils.h b/perftests/panorama/feature_mos/src/mosaic/MatrixUtils.h
new file mode 100644
index 0000000..a0b84d8
--- /dev/null
+++ b/perftests/panorama/feature_mos/src/mosaic/MatrixUtils.h
@@ -0,0 +1,141 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+///////////////////////////////////////////////////
+// Matrixutils.h
+// $Id: MatrixUtils.h,v 1.5 2011/05/16 15:33:06 mbansal Exp $
+
+
+#ifndef MATRIX_UTILS_H
+#define MATRIX_UTILS_H
+
+/* Simple class for 3x3 matrix, mainly used to convert from 9x1
+ * to 3x3
+ */
+class Matrix33 {
+public:
+
+  /**
+   *  Empty constructor
+   */
+  Matrix33() {
+    initialize();
+  }
+
+  /**
+   *  Constructor with identity initialization
+   *  Arguments:
+   *     identity: Specifies wether to initialize matrix to
+   *     identity or zeros
+   */
+  Matrix33(bool identity) {
+    initialize(identity);
+  }
+
+  /**
+   *  Initialize to identity matrix
+   */
+  void initialize(bool identity = false) {
+    mat[0][1] = mat[0][2] = mat[1][0] = mat[1][2] = mat[2][0] = mat[2][1] = 0.0;
+    if (identity) {
+      mat[0][0] = mat[1][1] = mat[2][2] = 1.0;
+    } else {
+      mat[0][0] = mat[1][1] = mat[2][2] = 0.0;
+    }
+  }
+
+  /**
+   *  Conver ta 9x1 matrix to a 3x3 matrix
+   */
+  static void convert9to33(double out[3][3], double in[9]) {
+    out[0][0] = in[0];
+    out[0][1] = in[1];
+    out[0][2] = in[2];
+
+    out[1][0] = in[3];
+    out[1][1] = in[4];
+    out[1][2] = in[5];
+
+    out[2][0] = in[6];
+    out[2][1] = in[7];
+    out[2][2] = in[8];
+
+  }
+
+  /* Matrix data */
+  double mat[3][3];
+
+};
+
+/* Simple class for 9x1 matrix, mainly used to convert from 3x3
+ * to 9x1
+ */
+class Matrix9 {
+public:
+
+  /**
+   *  Empty constructor
+   */
+  Matrix9() {
+    initialize();
+  }
+
+  /**
+   *  Constructor with identity initialization
+   *  Arguments:
+   *     identity: Specifies wether to initialize matrix to
+   *     identity or zeros
+   */
+  Matrix9(bool identity) {
+    initialize(identity);
+  }
+
+  /**
+   *  Initialize to identity matrix
+   */
+  void initialize(bool identity = false) {
+    mat[1] = mat[2] = mat[3] = mat[5] = mat[6] = mat[7] = 0.0;
+    if (identity) {
+      mat[0] = mat[4] = mat[8] = 1.0;
+    } else {
+      mat[0] = mat[4] = mat[8] = 0.0;
+    }
+  }
+
+  /**
+   *  Conver ta 3x3 matrix to a 9x1 matrix
+   */
+  static void convert33to9(double out[9], double in[3][3]) {
+    out[0] = in[0][0];
+    out[1] = in[0][1];
+    out[2] = in[0][2];
+
+    out[3] = in[1][0];
+    out[4] = in[1][1];
+    out[5] = in[1][2];
+
+    out[6] = in[2][0];
+    out[7] = in[2][1];
+    out[8] = in[2][2];
+
+  }
+
+  /* Matrix data */
+  double mat[9];
+
+};
+
+#endif
diff --git a/perftests/panorama/feature_mos/src/mosaic/Mosaic.cpp b/perftests/panorama/feature_mos/src/mosaic/Mosaic.cpp
new file mode 100644
index 0000000..4abc6f6
--- /dev/null
+++ b/perftests/panorama/feature_mos/src/mosaic/Mosaic.cpp
@@ -0,0 +1,255 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+///////////////////////////////////////////////////
+// Mosaic.pp
+// S.O. # :
+// Author(s): zkira
+// $Id: Mosaic.cpp,v 1.20 2011/06/24 04:22:14 mbansal Exp $
+
+#include <stdio.h>
+#include <string.h>
+
+#include "Mosaic.h"
+#include "trsMatrix.h"
+
+Mosaic::Mosaic()
+{
+    initialized = false;
+    imageMosaicYVU = NULL;
+    frames_size = 0;
+    max_frames = 200;
+}
+
+Mosaic::~Mosaic()
+{
+    for (int i = 0; i < frames_size; i++)
+    {
+        if (frames[i])
+            delete frames[i];
+    }
+    delete frames;
+    delete rframes;
+
+    for (int j = 0; j < owned_size; j++)
+        delete owned_frames[j];
+    delete owned_frames;
+
+    if (aligner != NULL)
+        delete aligner;
+    if (blender != NULL)
+        delete blender;
+}
+
+int Mosaic::initialize(int blendingType, int stripType, int width, int height, int nframes, bool quarter_res, float thresh_still)
+{
+    this->blendingType = blendingType;
+
+    // TODO: Review this logic if enabling FULL or PAN mode
+    if (blendingType == Blend::BLEND_TYPE_FULL ||
+            blendingType == Blend::BLEND_TYPE_PAN)
+    {
+        stripType = Blend::STRIP_TYPE_THIN;
+    }
+
+    this->stripType = stripType;
+    this->width = width;
+    this->height = height;
+
+
+    mosaicWidth = mosaicHeight = 0;
+    imageMosaicYVU = NULL;
+
+    frames = new MosaicFrame *[max_frames];
+    rframes = new MosaicFrame *[max_frames];
+
+    if(nframes>-1)
+    {
+        for(int i=0; i<nframes; i++)
+        {
+            frames[i] = new MosaicFrame(this->width,this->height,false); // Do no allocate memory for YUV data
+        }
+    }
+    else
+    {
+        for(int i=0; i<max_frames; i++)
+        {
+            frames[i] = NULL;
+        }
+    }
+
+    owned_frames = new ImageType[max_frames];
+    owned_size = 0;
+
+    aligner = new Align();
+    aligner->initialize(width, height,quarter_res,thresh_still);
+
+    if (blendingType == Blend::BLEND_TYPE_FULL ||
+            blendingType == Blend::BLEND_TYPE_PAN ||
+            blendingType == Blend::BLEND_TYPE_CYLPAN ||
+            blendingType == Blend::BLEND_TYPE_HORZ) {
+        blender = new Blend();
+        blender->initialize(blendingType, stripType, width, height);
+    } else {
+        blender = NULL;
+        return MOSAIC_RET_ERROR;
+    }
+
+    initialized = true;
+
+    return MOSAIC_RET_OK;
+}
+
+int Mosaic::addFrameRGB(ImageType imageRGB)
+{
+    ImageType imageYVU;
+    // Convert to YVU24 which is used by blending
+    imageYVU = ImageUtils::allocateImage(this->width, this->height, ImageUtils::IMAGE_TYPE_NUM_CHANNELS);
+    ImageUtils::rgb2yvu(imageYVU, imageRGB, width, height);
+
+    int existing_frames_size = frames_size;
+    int ret = addFrame(imageYVU);
+
+    if (frames_size > existing_frames_size)
+        owned_frames[owned_size++] = imageYVU;
+    else
+        ImageUtils::freeImage(imageYVU);
+
+    return ret;
+}
+
+int Mosaic::addFrame(ImageType imageYVU)
+{
+    if(frames[frames_size]==NULL)
+        frames[frames_size] = new MosaicFrame(this->width,this->height,false);
+
+    MosaicFrame *frame = frames[frames_size];
+
+    frame->image = imageYVU;
+
+    // Add frame to aligner
+    int ret = MOSAIC_RET_ERROR;
+    if (aligner != NULL)
+    {
+        // Note aligner takes in RGB images
+        int align_flag = Align::ALIGN_RET_OK;
+        align_flag = aligner->addFrame(frame->image);
+        aligner->getLastTRS(frame->trs);
+
+        if (frames_size >= max_frames)
+        {
+            return MOSAIC_RET_ERROR;
+        }
+
+        switch (align_flag)
+        {
+            case Align::ALIGN_RET_OK:
+                frames_size++;
+                ret = MOSAIC_RET_OK;
+                break;
+            case Align::ALIGN_RET_FEW_INLIERS:
+                frames_size++;
+                ret = MOSAIC_RET_FEW_INLIERS;
+                break;
+            case Align::ALIGN_RET_LOW_TEXTURE:
+                ret = MOSAIC_RET_LOW_TEXTURE;
+                break;
+            case Align::ALIGN_RET_ERROR:
+                ret = MOSAIC_RET_ERROR;
+                break;
+            default:
+                break;
+        }
+    }
+
+    return ret;
+}
+
+
+int Mosaic::createMosaic(float &progress, bool &cancelComputation)
+{
+    if (frames_size <= 0)
+    {
+        // Haven't accepted any frame in aligner. No need to do blending.
+        progress = TIME_PERCENT_ALIGN + TIME_PERCENT_BLEND
+                + TIME_PERCENT_FINAL;
+        return MOSAIC_RET_OK;
+    }
+
+    if (blendingType == Blend::BLEND_TYPE_PAN)
+    {
+
+        balanceRotations();
+
+    }
+
+    int ret = Blend::BLEND_RET_ERROR;
+
+    // Blend the mosaic (alignment has already been done)
+    if (blender != NULL)
+    {
+        ret = blender->runBlend((MosaicFrame **) frames, (MosaicFrame **) rframes, 
+                frames_size, imageMosaicYVU,
+                mosaicWidth, mosaicHeight, progress, cancelComputation);
+    }
+
+    switch(ret)
+    {
+        case Blend::BLEND_RET_ERROR:
+        case Blend::BLEND_RET_ERROR_MEMORY:
+            ret = MOSAIC_RET_ERROR;
+            break;
+        case Blend::BLEND_RET_CANCELLED:
+            ret = MOSAIC_RET_CANCELLED;
+            break;
+        case Blend::BLEND_RET_OK:
+            ret = MOSAIC_RET_OK;
+    }
+    return ret;
+}
+
+ImageType Mosaic::getMosaic(int &width, int &height)
+{
+    width = mosaicWidth;
+    height = mosaicHeight;
+
+    return imageMosaicYVU;
+}
+
+
+
+int Mosaic::balanceRotations()
+{
+    // Normalize to the mean angle of rotation (Smiley face)
+    double sineAngle = 0.0;
+
+    for (int i = 0; i < frames_size; i++) sineAngle += frames[i]->trs[0][1];
+    sineAngle /= frames_size;
+    // Calculate the cosineAngle (1 - sineAngle*sineAngle) = cosineAngle*cosineAngle
+    double cosineAngle = sqrt(1.0 - sineAngle*sineAngle);
+    double m[3][3] = {
+        { cosineAngle, -sineAngle, 0 },
+        { sineAngle, cosineAngle, 0},
+        { 0, 0, 1}};
+    double tmp[3][3];
+
+    for (int i = 0; i < frames_size; i++) {
+        memcpy(tmp, frames[i]->trs, sizeof(tmp));
+        mult33d(frames[i]->trs, m, tmp);
+    }
+
+    return MOSAIC_RET_OK;
+}
diff --git a/perftests/panorama/feature_mos/src/mosaic/Mosaic.h b/perftests/panorama/feature_mos/src/mosaic/Mosaic.h
new file mode 100644
index 0000000..9dea664
--- /dev/null
+++ b/perftests/panorama/feature_mos/src/mosaic/Mosaic.h
@@ -0,0 +1,226 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+///////////////////////////////////////////////////
+// Mosaic.h
+// S.O. # :
+// Author(s): zkira
+// $Id: Mosaic.h,v 1.16 2011/06/24 04:22:14 mbansal Exp $
+
+#ifndef MOSAIC_H
+#define MOSAIC_H
+
+#include "ImageUtils.h"
+#include "AlignFeatures.h"
+#include "Blend.h"
+#include "MosaicTypes.h"
+
+/*! \mainpage Mosaic
+
+    \section intro Introduction
+    The class Mosaic provides a simple interface to the panoramic mosaicing algorithm. The class allows passing in individual image frames to be stitched together, computes the alignment transformation between them, and then stitches and blends them together into a single panoramic output which can then be accessed as a single image. \
+
+    \section usage Usage
+    The class methods need to be called as outlined in the sample application which is created from the mosaic_main.cpp file in the directory src/mosaic/. A brief snapshot of the flow is given below:
+
+    \code
+    Mosaic mosaic;
+    // Define blending types to use, and the frame dimensions
+    int blendingType = Blend::BLEND_TYPE_CYLPAN;
+    int stripType = Blend::STRIP_TYPE_THIN;
+    int width = 640;
+    int height = 480;
+
+    while (<image frames are available>)
+    {
+        // Check for initialization and if not, initialize
+        if (!mosaic.isInitialized())
+        {
+          // Initialize mosaic processing
+          mosaic.initialize(blendingType, stripType, width, height, -1, false, 5.0f);
+        }
+
+        // Add to list of frames
+        mosaic.addFrameRGB(imageRGB);
+
+        // Free image
+        ImageUtils::freeImage(imageRGB);
+    }
+
+    // Create the mosaic
+    ret = mosaic.createMosaic();
+
+    // Get back the result
+    resultYVU = mosaic.getMosaic(mosaicWidth, mosaicHeight);
+
+    printf("Got mosaic of size %d,%d\n", mosaicWidth, mosaicHeight);
+
+    \endcode
+*/
+
+/*!
+ *  Main class that creates a mosaic by creating an aligner and blender.
+ */
+class Mosaic
+{
+
+public:
+
+  Mosaic();
+  ~Mosaic();
+
+   /*!
+    *   Creates the aligner and blender and initializes state.
+    *   \param blendingType Type of blending to perform
+    *   \param stripType    Type of strip to use. 0: thin, 1: wide. stripType
+    *                       is effective only when blendingType is CylPan or
+    *                       Horz. Otherwise, it is set to thin irrespective of the input.
+    *   \param width        Width of input images (note: all images must be same size)
+    *   \param height       Height of input images (note: all images must be same size)
+    *   \param nframes      Number of frames to pre-allocate; default value -1 will allocate each frame as it comes
+    *   \param quarter_res  Whether to compute alignment at quarter the input resolution (default = false)
+    *   \param thresh_still Minimum number of pixels of translation detected between the new frame and the last frame before this frame is added to be mosaiced. For the low-res processing at 320x180 resolution input, we set this to 5 pixels. To reject no frames, set this to 0.0 (default value).
+    *   \return             Return code signifying success or failure.
+    */
+  int initialize(int blendingType, int stripType, int width, int height, int nframes = -1, bool quarter_res = false, float thresh_still = 0.0);
+
+   /*!
+    *   Adds a YVU frame to the mosaic.
+    *   \param imageYVU     Pointer to a YVU image.
+    *   \return             Return code signifying success or failure.
+    */
+  int addFrame(ImageType imageYVU);
+
+   /*!
+    *   Adds a RGB frame to the mosaic.
+    *   \param imageRGB     Pointer to a RGB image.
+    *   \return             Return code signifying success or failure.
+    */
+  int addFrameRGB(ImageType imageRGB);
+
+   /*!
+    *   After adding all frames, call this function to perform the final blending.
+    *   \param progress     Variable to set the current progress in.
+    *   \return             Return code signifying success or failure.
+    */
+  int createMosaic(float &progress, bool &cancelComputation);
+
+    /*!
+    *   Obtains the resulting mosaic and its dimensions.
+    *   \param width        Width of the resulting mosaic (returned)
+    *   \param height       Height of the resulting mosaic (returned)
+    *   \return             Pointer to image.
+    */
+  ImageType getMosaic(int &width, int &height);
+
+    /*!
+    *   Provides access to the internal alignment object pointer.
+    *   \return             Pointer to the aligner object.
+    */
+  Align* getAligner() { return aligner; }
+
+    /*!
+    *   Obtain initialization state.
+    *
+    *   return              Returns true if initialized, false otherwise.
+    */
+  bool isInitialized() { return initialized; }
+
+
+  /*!
+   *  Return codes for mosaic.
+   */
+  static const int MOSAIC_RET_OK    = 1;
+  static const int MOSAIC_RET_ERROR = -1;
+  static const int MOSAIC_RET_CANCELLED = -2;
+  static const int MOSAIC_RET_LOW_TEXTURE = -3;
+  static const int MOSAIC_RET_FEW_INLIERS = 2;
+
+protected:
+
+  /**
+   * Size of image frames making up mosaic
+   */
+  int width, height;
+
+  /**
+   * Size of actual mosaic
+   */
+  int mosaicWidth, mosaicHeight;
+
+  /**
+   * Bounding box to crop the mosaic when the gray border is not desired.
+   */
+  MosaicRect mosaicCroppingRect;
+
+  ImageType imageMosaicYVU;
+
+  /**
+   * Collection of frames that will make up mosaic.
+   */
+  MosaicFrame **frames;
+
+  /**
+    * Subset of frames that are considered as relevant.
+    */
+  MosaicFrame **rframes;
+
+  int frames_size;
+  int max_frames;
+
+  /**
+    * Implicitly created frames, should be freed by Mosaic.
+    */
+  ImageType *owned_frames;
+  int owned_size;
+
+  /**
+   * Initialization state.
+   */
+  bool initialized;
+
+  /**
+   *  Type of blending to perform.
+   */
+  int blendingType;
+
+  /**
+    * Type of strip to use. 0: thin (default), 1: wide
+    */
+  int stripType;
+
+  /**
+   *  Pointer to aligner.
+   */
+  Align *aligner;
+
+  /**
+   *  Pointer to blender.
+   */
+  Blend *blender;
+
+  /**
+   *  Modifies TRS matrices so that rotations are balanced
+   *  about center of mosaic
+   *
+   * Side effect: TRS matrices of all mosaic frames
+   *              are modified
+   */
+  int balanceRotations();
+
+};
+
+#endif
diff --git a/perftests/panorama/feature_mos/src/mosaic/MosaicTypes.h b/perftests/panorama/feature_mos/src/mosaic/MosaicTypes.h
new file mode 100644
index 0000000..395ec45
--- /dev/null
+++ b/perftests/panorama/feature_mos/src/mosaic/MosaicTypes.h
@@ -0,0 +1,154 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+///////////////////////////////////////////////////
+// MosaicTypes.h
+// S.O. # :
+// Author(s): zkira
+// $Id: MosaicTypes.h,v 1.15 2011/06/17 13:35:48 mbansal Exp $
+
+
+#ifndef MOSAIC_TYPES_H
+#define MOSAIC_TYPES_H
+
+#include "ImageUtils.h"
+
+/**
+ *  Definition of rectangle in a mosaic.
+ */
+class MosaicRect
+{
+    public:
+        MosaicRect()
+        {
+            left = right = top = bottom = 0.0;
+        }
+
+        inline int Width()
+        {
+            return right - left;
+        }
+
+        inline int Height()
+        {
+            return bottom - top;
+        }
+
+        /**
+         *  Bounds of the rectangle
+         */
+        int left, right, top, bottom;
+};
+
+class BlendRect
+{
+    public:
+    double lft, rgt, top, bot;
+};
+
+/**
+ *  A frame making up the mosaic.
+ *  Note: Currently assumes a YVU image
+ *  containing separate Y,V, and U planes
+ *  in contiguous memory (in that order).
+ */
+class MosaicFrame {
+public:
+  ImageType image;
+  double trs[3][3];
+  int width, height;
+  BlendRect brect;  // This frame warped to the Mosaic coordinate system
+  BlendRect vcrect; // brect clipped using the voronoi neighbors
+  bool internal_allocation;
+
+  MosaicFrame() { };
+  MosaicFrame(int _width, int _height, bool allocate=true)
+  {
+    width = _width;
+    height = _height;
+    internal_allocation = allocate;
+    if(internal_allocation)
+        image = ImageUtils::allocateImage(width, height, ImageUtils::IMAGE_TYPE_NUM_CHANNELS);
+  }
+
+
+  ~MosaicFrame()
+  {
+    if(internal_allocation)
+        if (image)
+        free(image);
+  }
+
+  /**
+  *  Get the V plane of the image.
+  */
+  inline ImageType getV()
+  {
+    return (image + (width*height));
+  }
+
+  /**
+  *  Get the U plane of the image.
+  */
+  inline ImageType getU()
+  {
+    return (image + (width*height*2));
+  }
+
+  /**
+  *  Get a pixel from the V plane of the image.
+  */
+  inline int getV(int y, int x)
+  {
+    ImageType U = image + (width*height);
+    return U[y*width+x];
+  }
+
+  /**
+  *  Get a pixel from the U plane of the image.
+  */
+  inline int getU(int y, int x)
+  {
+    ImageType U = image + (width*height*2);
+    return U[y*width+x];
+  }
+
+};
+
+/**
+ *  Structure for describing a warp.
+ */
+typedef struct {
+  int horizontal;
+  double theta;
+  double x;
+  double y;
+  double width;
+  double radius;
+  double direction;
+  double correction;
+  int blendRange;
+  int blendRangeUV;
+  int nlevs;
+  int nlevsC;
+  int blendingType;
+  int stripType;
+  // Add an overlap to prevent a gap between pictures due to roundoffs
+  double roundoffOverlap;// 1.5
+
+} BlendParams;
+
+#endif
diff --git a/perftests/panorama/feature_mos/src/mosaic/Pyramid.cpp b/perftests/panorama/feature_mos/src/mosaic/Pyramid.cpp
new file mode 100644
index 0000000..b022d73
--- /dev/null
+++ b/perftests/panorama/feature_mos/src/mosaic/Pyramid.cpp
@@ -0,0 +1,270 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+// pyramid.cpp
+
+#include <stdio.h>
+#include <string.h>
+
+#include "Pyramid.h"
+
+// We allocate the entire pyramid into one contiguous storage. This makes
+// cleanup easier than fragmented stuff. In addition, we added a "pitch"
+// field, so pointer manipulation is much simpler when it would be faster.
+PyramidShort *PyramidShort::allocatePyramidPacked(real levels,
+        real width, real height, real border)
+{
+    real border2 = (real) (border << 1);
+    int lines, size = calcStorage(width, height, border2, levels, &lines);
+
+    PyramidShort *img = (PyramidShort *) calloc(sizeof(PyramidShort) * levels
+            + sizeof(short *) * lines +
+            + sizeof(short) * size, 1);
+
+    if (img) {
+        PyramidShort *curr, *last;
+        ImageTypeShort *y = (ImageTypeShort *) &img[levels];
+        ImageTypeShort position = (ImageTypeShort) &y[lines];
+        for (last = (curr = img) + levels; curr < last; curr++) {
+            curr->width = width;
+            curr->height = height;
+            curr->border = border;
+            curr->pitch = (real) (width + border2);
+            curr->ptr = y + border;
+
+            // Assign row pointers
+            for (int j = height + border2; j--; y++, position += curr->pitch) {
+                *y = position + border;
+            }
+
+            width >>= 1;
+            height >>= 1;
+        }
+    }
+
+    return img;
+}
+
+// Allocate an image of type short
+PyramidShort *PyramidShort::allocateImage(real width, real height, real border)
+{
+    real border2 = (real) (border << 1);
+    PyramidShort *img = (PyramidShort *)
+        calloc(sizeof(PyramidShort) + sizeof(short *) * (height + border2) +
+                sizeof(short) * (width + border2) * (height + border2), 1);
+
+    if (img) {
+        short **y = (short **) &img[1];
+        short *position = (short *) &y[height + border2];
+        img->width = width;
+        img->height = height;
+        img->border = border;
+        img->pitch = (real) (width + border2);
+        img->ptr = y + border;
+        position += border; // Move position down to origin of real image
+
+        // Assign row pointers
+        for (int j = height + border2; j--; y++, position += img->pitch) {
+            *y = position;
+        }
+    }
+
+    return img;
+}
+
+// Free the images
+void PyramidShort::freeImage(PyramidShort *image)
+{
+    if (image != NULL)
+        free(image);
+}
+
+// Calculate amount of storage needed taking into account the borders, etc.
+unsigned int PyramidShort::calcStorage(real width, real height, real border2,   int levels, int *lines)
+{
+    int size;
+
+    *lines = size = 0;
+
+    while(levels--) {
+        size += (width + border2) * (height + border2);
+        *lines += height + border2;
+        width >>= 1;
+        height >>= 1;
+    }
+
+    return size;
+}
+
+void PyramidShort::BorderSpread(PyramidShort *pyr, int left, int right,
+        int top, int bot)
+{
+    int off, off2, height, h, w;
+    ImageTypeShort base;
+
+    if (left || right) {
+        off = pyr->border - left;
+        off2 = pyr->width + off + pyr->border - right - 1;
+        h = pyr->border - top;
+        height = pyr->height + (h << 1);
+        base = pyr->ptr[-h] - off;
+
+        // spread in X
+        for (h = height; h--; base += pyr->pitch) {
+            for (w = left; w--;)
+                base[-1 - w] = base[0];
+            for (w = right; w--;)
+                base[off2 + w + 1] = base[off2];
+        }
+    }
+
+    if (top || bot) {
+        // spread in Y
+        base = pyr->ptr[top - pyr->border] - pyr->border;
+        for (h = top; h--; base -= pyr->pitch) {
+            memcpy(base - pyr->pitch, base, pyr->pitch * sizeof(short));
+        }
+
+        base = pyr->ptr[pyr->height + pyr->border - bot] - pyr->border;
+        for (h = bot; h--; base += pyr->pitch) {
+            memcpy(base, base - pyr->pitch, pyr->pitch * sizeof(short));
+        }
+    }
+}
+
+void PyramidShort::BorderExpandOdd(PyramidShort *in, PyramidShort *out, PyramidShort *scr,
+        int mode)
+{
+    int i,j;
+    int off = in->border / 2;
+
+    // Vertical Filter
+    for (j = -off; j < in->height + off; j++) {
+        int j2 = j * 2;
+        int limit = scr->width + scr->border;
+        for (i = -scr->border; i < limit; i++) {
+            int t1 = in->ptr[j][i];
+            int t2 = in->ptr[j+1][i];
+            scr->ptr[j2][i] = (short)
+                ((6 * t1 + (in->ptr[j-1][i] + t2) + 4) >> 3);
+            scr->ptr[j2+1][i] = (short)((t1 + t2 + 1) >> 1);
+        }
+    }
+
+    BorderSpread(scr, 0, 0, 3, 3);
+
+    // Horizontal Filter
+    int limit = out->height + out->border;
+    for (j = -out->border; j < limit; j++) {
+        for (i = -off; i < scr->width + off; i++) {
+            int i2 = i * 2;
+            int t1 = scr->ptr[j][i];
+            int t2 = scr->ptr[j][i+1];
+            out->ptr[j][i2] = (short) (out->ptr[j][i2] +
+                    (mode * ((6 * t1 +
+                              scr->ptr[j][i-1] + t2 + 4) >> 3)));
+            out->ptr[j][i2+1] = (short) (out->ptr[j][i2+1] +
+                    (mode * ((t1 + t2 + 1) >> 1)));
+        }
+    }
+
+}
+
+int PyramidShort::BorderExpand(PyramidShort *pyr, int nlev, int mode)
+{
+    PyramidShort *tpyr = pyr + nlev - 1;
+    PyramidShort *scr = allocateImage(pyr[1].width, pyr[0].height, pyr->border);
+    if (scr == NULL) return 0;
+
+    if (mode > 0) {
+        // Expand and add (reconstruct from Laplacian)
+        for (; tpyr > pyr; tpyr--) {
+            scr->width = tpyr[0].width;
+            scr->height = tpyr[-1].height;
+            BorderExpandOdd(tpyr, tpyr - 1, scr, 1);
+        }
+    }
+    else if (mode < 0) {
+        // Expand and subtract (build Laplacian)
+        while ((pyr++) < tpyr) {
+            scr->width = pyr[0].width;
+            scr->height = pyr[-1].height;
+            BorderExpandOdd(pyr, pyr - 1, scr, -1);
+        }
+    }
+
+    freeImage(scr);
+    return 1;
+}
+
+void PyramidShort::BorderReduceOdd(PyramidShort *in, PyramidShort *out, PyramidShort *scr)
+{
+    ImageTypeShortBase *s, *ns, *ls, *p, *np;
+
+    int off = scr->border - 2;
+    s = scr->ptr[-scr->border] - (off >> 1);
+    ns = s + scr->pitch;
+    ls = scr->ptr[scr->height + scr->border - 1] + scr->pitch - (off >> 1);
+    int width = scr->width + scr->border;
+    p = in->ptr[-scr->border] - off;
+    np = p + in->pitch;
+
+    // treat it as if the whole thing were the image
+    for (; s < ls; s = ns, ns += scr->pitch, p = np, np += in->pitch) {
+        for (int w = width; w--; s++, p += 2) {
+            *s = (short)((((int) p[-2]) + ((int) p[2]) + 8 +    // 1
+                        ((((int) p[-1]) + ((int) p[1])) << 2) + // 4
+                        ((int) *p) * 6) >> 4);          // 6
+        }
+    }
+
+    BorderSpread(scr, 5, 4 + ((in->width ^ 1) & 1), 0, 0); //
+
+    s = out->ptr[-(off >> 1)] - out->border;
+    ns = s + out->pitch;
+    ls = s + out->pitch * (out->height + off);
+    p = scr->ptr[-off] - out->border;
+    int pitch = scr->pitch;
+    int pitch2 = pitch << 1;
+    np = p + pitch2;
+    for (; s < ls; s = ns, ns += out->pitch, p = np, np += pitch2) {
+        for (int w = out->pitch; w--; s++, p++) {
+            *s = (short)((((int) p[-pitch2]) + ((int) p[pitch2]) + 8 + // 1
+                        ((((int) p[-pitch]) + ((int) p[pitch])) << 2) + // 4
+                        ((int) *p) * 6) >> 4);              // 6
+        }
+    }
+    BorderSpread(out, 0, 0, 5, 5);
+
+}
+
+int PyramidShort::BorderReduce(PyramidShort *pyr, int nlev)
+{
+    PyramidShort *scr = allocateImage(pyr[1].width, pyr[0].height, pyr->border);
+    if (scr == NULL)
+        return 0;
+
+    BorderSpread(pyr, pyr->border, pyr->border, pyr->border, pyr->border);
+    while (--nlev) {
+        BorderReduceOdd(pyr, pyr + 1, scr);
+        pyr++;
+        scr->width = pyr[1].width;
+        scr->height = pyr[0].height;
+    }
+
+    freeImage(scr);
+    return 1;
+}
diff --git a/perftests/panorama/feature_mos/src/mosaic/Pyramid.h b/perftests/panorama/feature_mos/src/mosaic/Pyramid.h
new file mode 100644
index 0000000..c5fe907
--- /dev/null
+++ b/perftests/panorama/feature_mos/src/mosaic/Pyramid.h
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+// Pyramid.h
+
+#ifndef PYRAMID_H
+#define PYRAMID_H
+
+#include "ImageUtils.h"
+
+typedef unsigned short int real;
+
+//  Structure containing a packed pyramid of type ImageTypeShort.  Used for pyramid
+//  blending, among other things.
+
+class PyramidShort
+{
+
+public:
+
+  ImageTypeShort *ptr;              // Pointer containing the image
+  real width, height;               // Width and height of input images
+  real numChannels;                 // Number of channels in input images
+  real border;                      // border size
+  real pitch;                       // Pitch.  Used for moving through image efficiently.
+
+  static PyramidShort *allocatePyramidPacked(real width, real height, real levels, real border = 0);
+  static PyramidShort *allocateImage(real width, real height, real border);
+  static void createPyramid(ImageType image, PyramidShort *pyramid, int last = 3 );
+  static void freeImage(PyramidShort *image);
+
+  static unsigned int calcStorage(real width, real height, real border2, int levels, int *lines);
+
+  static void BorderSpread(PyramidShort *pyr, int left, int right, int top, int bot);
+  static void BorderExpandOdd(PyramidShort *in, PyramidShort *out, PyramidShort *scr, int mode);
+  static int BorderExpand(PyramidShort *pyr, int nlev, int mode);
+  static int BorderReduce(PyramidShort *pyr, int nlev);
+  static void BorderReduceOdd(PyramidShort *in, PyramidShort *out, PyramidShort *scr);
+};
+
+#endif
diff --git a/perftests/panorama/feature_mos/src/mosaic/trsMatrix.cpp b/perftests/panorama/feature_mos/src/mosaic/trsMatrix.cpp
new file mode 100644
index 0000000..5fc6a86
--- /dev/null
+++ b/perftests/panorama/feature_mos/src/mosaic/trsMatrix.cpp
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+// trsMatrix.cpp
+// $Id: trsMatrix.cpp,v 1.9 2011/06/17 13:35:48 mbansal Exp $
+
+#include "stdio.h"
+#include <math.h>
+#include "trsMatrix.h"
+
+void mult33d(double a[3][3], double b[3][3], double c[3][3])
+{
+    a[0][0] = b[0][0]*c[0][0] + b[0][1]*c[1][0] + b[0][2]*c[2][0];
+    a[0][1] = b[0][0]*c[0][1] + b[0][1]*c[1][1] + b[0][2]*c[2][1];
+    a[0][2] = b[0][0]*c[0][2] + b[0][1]*c[1][2] + b[0][2]*c[2][2];
+    a[1][0] = b[1][0]*c[0][0] + b[1][1]*c[1][0] + b[1][2]*c[2][0];
+    a[1][1] = b[1][0]*c[0][1] + b[1][1]*c[1][1] + b[1][2]*c[2][1];
+    a[1][2] = b[1][0]*c[0][2] + b[1][1]*c[1][2] + b[1][2]*c[2][2];
+    a[2][0] = b[2][0]*c[0][0] + b[2][1]*c[1][0] + b[2][2]*c[2][0];
+    a[2][1] = b[2][0]*c[0][1] + b[2][1]*c[1][1] + b[2][2]*c[2][1];
+    a[2][2] = b[2][0]*c[0][2] + b[2][1]*c[1][2] + b[2][2]*c[2][2];
+}
+
+
+// normProjMat33d
+// m = input matrix
+// return: result if successful
+int normProjMat33d(double m[3][3])
+{
+    double m22;
+
+    if(m[2][2] == 0.0)
+        {
+        return 0;
+}
+
+    m[0][0] /= m[2][2];
+    m[0][1] /= m[2][2];
+    m[0][2] /= m[2][2];
+    m[1][0] /= m[2][2];
+    m[1][1] /= m[2][2];
+    m[1][2] /= m[2][2];
+    m[2][0] /= m[2][2];
+    m[2][1] /= m[2][2];
+    m[2][2] = 1.0;
+
+    return 1;
+}
+
+// det33d
+// m = input matrix
+// returns: determinant
+double det33d(const double m[3][3])
+{
+    double result;
+
+    result  = m[0][0] * (m[1][1] * m[2][2] - m[1][2] * m[2][1]);
+    result += m[0][1] * (m[1][2] * m[2][0] - m[1][0] * m[2][2]);
+    result += m[0][2] * (m[1][0] * m[2][1] - m[1][1] * m[2][0]);
+
+    return result;
+}
+
+// inv33d
+//
+void inv33d(const double m[3][3], double out[3][3])
+{
+    double det = det33d(m);
+
+    out[0][0] = (m[1][1]*m[2][2] - m[1][2]*m[2][1]) / det;
+    out[1][0] = (m[1][2]*m[2][0] - m[1][0]*m[2][2]) / det;
+    out[2][0] = (m[1][0]*m[2][1] - m[1][1]*m[2][0]) / det;
+
+    out[0][1] = (m[0][2]*m[2][1] - m[0][1]*m[2][2]) / det;
+    out[1][1] = (m[0][0]*m[2][2] - m[0][2]*m[2][0]) / det;
+    out[2][1] = (m[0][1]*m[2][0] - m[0][0]*m[2][1]) / det;
+
+    out[0][2] = (m[0][1]*m[1][2] - m[0][2]*m[1][1]) / det;
+    out[1][2] = (m[0][2]*m[1][0] - m[0][0]*m[1][2]) / det;
+    out[2][2] = (m[0][0]*m[1][1] - m[0][1]*m[1][0]) / det;
+}
diff --git a/perftests/panorama/feature_mos/src/mosaic/trsMatrix.h b/perftests/panorama/feature_mos/src/mosaic/trsMatrix.h
new file mode 100644
index 0000000..054cc33
--- /dev/null
+++ b/perftests/panorama/feature_mos/src/mosaic/trsMatrix.h
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+///////////////////////////////////////////////////
+// trsMatrix.h
+// $Id: trsMatrix.h,v 1.8 2011/06/17 13:35:48 mbansal Exp $
+
+#ifndef TRSMATRIX_H_
+#define TRSMATRIX_H_
+
+
+// Calculate the determinant of a matrix
+double det33d(const double m[3][3]);
+
+// Invert a matrix
+void inv33d(const double m[3][3], double out[3][3]);
+
+// Multiply a = b * c
+void mult33d(double a[3][3], double b[3][3], double c[3][3]);
+
+// Normalize matrix so matrix[2][2] is '1'
+int normProjMat33d(double m[3][3]);
+
+inline double ProjZ(double trs[3][3], double x, double y, double f)
+{
+    return ((trs)[2][0]*(x) + (trs)[2][1]*(y) + (trs)[2][2]*(f));
+}
+
+inline double ProjX(double trs[3][3], double x, double y, double z, double f)
+{
+    return (((trs)[0][0]*(x) + (trs)[0][1]*(y) + (trs)[0][2]*(f)) / (z));
+}
+
+inline double ProjY(double trs[3][3], double x, double y, double z, double f)
+{
+    return (((trs)[1][0]*(x) + (trs)[1][1]*(y) + (trs)[1][2]*(f)) / (z));
+}
+
+
+#endif
diff --git a/perftests/panorama/feature_mos/src/mosaic_renderer/FrameBuffer.cpp b/perftests/panorama/feature_mos/src/mosaic_renderer/FrameBuffer.cpp
new file mode 100755
index 0000000..a956f23
--- /dev/null
+++ b/perftests/panorama/feature_mos/src/mosaic_renderer/FrameBuffer.cpp
@@ -0,0 +1,98 @@
+#include "FrameBuffer.h"
+
+FrameBuffer::FrameBuffer()
+{
+    Reset();
+}
+
+FrameBuffer::~FrameBuffer() {
+}
+
+void FrameBuffer::Reset() {
+    mFrameBufferName = -1;
+    mTextureName = -1;
+    mWidth = 0;
+    mHeight = 0;
+    mFormat = -1;
+}
+
+bool FrameBuffer::InitializeGLContext() {
+    Reset();
+    return CreateBuffers();
+}
+
+bool FrameBuffer::Init(int width, int height, GLenum format) {
+    if (mFrameBufferName == (GLuint)-1) {
+        if (!CreateBuffers()) {
+            return false;
+        }
+    }
+    glBindFramebuffer(GL_FRAMEBUFFER, mFrameBufferName);
+    glBindTexture(GL_TEXTURE_2D, mTextureName);
+
+    glTexImage2D(GL_TEXTURE_2D,
+                 0,
+                 format,
+                 width,
+                 height,
+                 0,
+                 format,
+                 GL_UNSIGNED_BYTE,
+                 NULL);
+    if (!checkGlError("bind/teximage")) {
+        return false;
+    }
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+    // This is necessary to work with user-generated frame buffers with
+    // dimensions that are NOT powers of 2.
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+
+    // Attach texture to frame buffer.
+    glFramebufferTexture2D(GL_FRAMEBUFFER,
+                           GL_COLOR_ATTACHMENT0,
+                           GL_TEXTURE_2D,
+                           mTextureName,
+                           0);
+    checkFramebufferStatus("FrameBuffer.cpp");
+    checkGlError("framebuffertexture2d");
+
+    if (!checkGlError("texture setup")) {
+        return false;
+    }
+    mWidth = width;
+    mHeight = height;
+    mFormat = format;
+    glBindFramebuffer(GL_FRAMEBUFFER, 0);
+    return true;
+}
+
+bool FrameBuffer::CreateBuffers() {
+    glGenFramebuffers(1, &mFrameBufferName);
+    glGenTextures(1, &mTextureName);
+    if (!checkGlError("texture generation")) {
+        return false;
+    }
+    return true;
+}
+
+GLuint FrameBuffer::GetTextureName() const {
+    return mTextureName;
+}
+
+GLuint FrameBuffer::GetFrameBufferName() const {
+    return mFrameBufferName;
+}
+
+GLenum FrameBuffer::GetFormat() const {
+    return mFormat;
+}
+
+int FrameBuffer::GetWidth() const {
+    return mWidth;
+}
+
+int FrameBuffer::GetHeight() const {
+    return mHeight;
+}
diff --git a/perftests/panorama/feature_mos/src/mosaic_renderer/FrameBuffer.h b/perftests/panorama/feature_mos/src/mosaic_renderer/FrameBuffer.h
new file mode 100755
index 0000000..314b126
--- /dev/null
+++ b/perftests/panorama/feature_mos/src/mosaic_renderer/FrameBuffer.h
@@ -0,0 +1,34 @@
+#pragma once
+
+#include <EGL/egl.h>
+#include <GLES2/gl2.h>
+#include <GLES2/gl2ext.h>
+
+#define checkGlError(op)  checkGLErrorDetail(__FILE__, __LINE__, (op))
+
+extern bool checkGLErrorDetail(const char* file, int line, const char* op);
+extern void checkFramebufferStatus(const char* name);
+
+class FrameBuffer {
+  public:
+    FrameBuffer();
+    virtual ~FrameBuffer();
+
+    bool InitializeGLContext();
+    bool Init(int width, int height, GLenum format);
+    GLuint GetTextureName() const;
+    GLuint GetFrameBufferName() const;
+    GLenum GetFormat() const;
+
+    int GetWidth() const;
+    int GetHeight() const;
+
+ private:
+    void Reset();
+    bool CreateBuffers();
+    GLuint mFrameBufferName;
+    GLuint mTextureName;
+    int mWidth;
+    int mHeight;
+    GLenum mFormat;
+};
diff --git a/perftests/panorama/feature_mos/src/mosaic_renderer/Renderer.cpp b/perftests/panorama/feature_mos/src/mosaic_renderer/Renderer.cpp
new file mode 100755
index 0000000..b9938eb
--- /dev/null
+++ b/perftests/panorama/feature_mos/src/mosaic_renderer/Renderer.cpp
@@ -0,0 +1,226 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+#include "Renderer.h"
+
+#include "mosaic/Log.h"
+#define LOG_TAG "Renderer"
+
+#include <GLES2/gl2ext.h>
+
+Renderer::Renderer()
+      : mGlProgram(0),
+        mInputTextureName(-1),
+        mInputTextureWidth(0),
+        mInputTextureHeight(0),
+        mSurfaceWidth(0),
+        mSurfaceHeight(0)
+{
+    InitializeGLContext();
+}
+
+Renderer::~Renderer() {
+}
+
+GLuint Renderer::loadShader(GLenum shaderType, const char* pSource) {
+    GLuint shader = glCreateShader(shaderType);
+    if (shader) {
+        glShaderSource(shader, 1, &pSource, NULL);
+        glCompileShader(shader);
+        GLint compiled = 0;
+        glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled);
+        if (!compiled) {
+            GLint infoLen = 0;
+            glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &infoLen);
+            if (infoLen) {
+                char* buf = (char*) malloc(infoLen);
+                if (buf) {
+                    glGetShaderInfoLog(shader, infoLen, NULL, buf);
+                    LOGE("Could not compile shader %d:\n%s\n",
+                            shaderType, buf);
+                    free(buf);
+                }
+                glDeleteShader(shader);
+                shader = 0;
+            }
+        }
+    }
+    return shader;
+}
+
+GLuint Renderer::createProgram(const char* pVertexSource, const char* pFragmentSource)
+{
+    GLuint vertexShader = loadShader(GL_VERTEX_SHADER, pVertexSource);
+    if (!vertexShader)
+    {
+        return 0;
+    }
+
+    GLuint pixelShader = loadShader(GL_FRAGMENT_SHADER, pFragmentSource);
+    if (!pixelShader)
+    {
+        return 0;
+    }
+
+    GLuint program = glCreateProgram();
+    if (program)
+    {
+        glAttachShader(program, vertexShader);
+        checkGlError("glAttachShader");
+        glAttachShader(program, pixelShader);
+        checkGlError("glAttachShader");
+
+        glLinkProgram(program);
+        GLint linkStatus = GL_FALSE;
+        glGetProgramiv(program, GL_LINK_STATUS, &linkStatus);
+
+        LOGI("Program Linked (%d)!", program);
+
+        if (linkStatus != GL_TRUE)
+        {
+            GLint bufLength = 0;
+            glGetProgramiv(program, GL_INFO_LOG_LENGTH, &bufLength);
+            if (bufLength)
+            {
+                char* buf = (char*) malloc(bufLength);
+                if (buf)
+                {
+                    glGetProgramInfoLog(program, bufLength, NULL, buf);
+                    LOGE("Could not link program:\n%s\n", buf);
+                    free(buf);
+                }
+            }
+            glDeleteProgram(program);
+            program = 0;
+        }
+    }
+    return program;
+}
+
+// Set this renderer to use the default frame-buffer (screen) and
+// set the viewport size to be the given width and height (pixels).
+bool Renderer::SetupGraphics(int width, int height)
+{
+    bool succeeded = false;
+    do {
+        if (mGlProgram == 0)
+        {
+            if (!InitializeGLProgram())
+            {
+              break;
+            }
+        }
+        glUseProgram(mGlProgram);
+        if (!checkGlError("glUseProgram")) break;
+
+        glBindFramebuffer(GL_FRAMEBUFFER, 0);
+
+        mFrameBuffer = NULL;
+        mSurfaceWidth = width;
+        mSurfaceHeight = height;
+
+        glViewport(0, 0, mSurfaceWidth, mSurfaceHeight);
+        if (!checkGlError("glViewport")) break;
+        succeeded = true;
+    } while (false);
+
+    return succeeded;
+}
+
+
+// Set this renderer to use the specified FBO and
+// set the viewport size to be the width and height of this FBO.
+bool Renderer::SetupGraphics(FrameBuffer* buffer)
+{
+    bool succeeded = false;
+    do {
+        if (mGlProgram == 0)
+        {
+            if (!InitializeGLProgram())
+            {
+              break;
+            }
+        }
+        glUseProgram(mGlProgram);
+        if (!checkGlError("glUseProgram")) break;
+
+        glBindFramebuffer(GL_FRAMEBUFFER, buffer->GetFrameBufferName());
+
+        mFrameBuffer = buffer;
+        mSurfaceWidth = mFrameBuffer->GetWidth();
+        mSurfaceHeight = mFrameBuffer->GetHeight();
+
+        glViewport(0, 0, mSurfaceWidth, mSurfaceHeight);
+        if (!checkGlError("glViewport")) break;
+        succeeded = true;
+    } while (false);
+
+    return succeeded;
+}
+
+bool Renderer::Clear(float r, float g, float b, float a)
+{
+    bool succeeded = false;
+    do {
+        bool rt = (mFrameBuffer == NULL)?
+                SetupGraphics(mSurfaceWidth, mSurfaceHeight) :
+                SetupGraphics(mFrameBuffer);
+
+        if(!rt)
+            break;
+
+        glClearColor(r, g, b, a);
+        glClear(GL_COLOR_BUFFER_BIT);
+
+        succeeded = true;
+    } while (false);
+    return succeeded;
+
+}
+
+void Renderer::InitializeGLContext()
+{
+    if(mFrameBuffer != NULL)
+    {
+        delete mFrameBuffer;
+        mFrameBuffer = NULL;
+    }
+
+    mInputTextureName = -1;
+    mInputTextureType = GL_TEXTURE_2D;
+    mGlProgram = 0;
+}
+
+int Renderer::GetTextureName()
+{
+    return mInputTextureName;
+}
+
+void Renderer::SetInputTextureName(GLuint textureName)
+{
+    mInputTextureName = textureName;
+}
+
+void Renderer::SetInputTextureType(GLenum textureType)
+{
+    mInputTextureType = textureType;
+}
+
+void Renderer::SetInputTextureDimensions(int width, int height)
+{
+    mInputTextureWidth = width;
+    mInputTextureHeight = height;
+}
diff --git a/perftests/panorama/feature_mos/src/mosaic_renderer/Renderer.h b/perftests/panorama/feature_mos/src/mosaic_renderer/Renderer.h
new file mode 100755
index 0000000..a43e802
--- /dev/null
+++ b/perftests/panorama/feature_mos/src/mosaic_renderer/Renderer.h
@@ -0,0 +1,65 @@
+#pragma once
+
+#include "FrameBuffer.h"
+
+#include <GLES2/gl2.h>
+
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+class Renderer {
+  public:
+    Renderer();
+    virtual ~Renderer();
+
+    // Initialize OpenGL resources
+    // @return true if successful
+    virtual bool InitializeGLProgram() = 0;
+
+    bool SetupGraphics(FrameBuffer* buffer);
+    bool SetupGraphics(int width, int height);
+
+    bool Clear(float r, float g, float b, float a);
+
+    int GetTextureName();
+    void SetInputTextureName(GLuint textureName);
+    void SetInputTextureDimensions(int width, int height);
+    void SetInputTextureType(GLenum textureType);
+
+    void InitializeGLContext();
+
+  protected:
+
+    GLuint loadShader(GLenum shaderType, const char* pSource);
+    GLuint createProgram(const char*, const char* );
+
+    int SurfaceWidth() const { return mSurfaceWidth; }
+    int SurfaceHeight() const { return mSurfaceHeight; }
+
+    // Source code for shaders.
+    virtual const char* VertexShaderSource() const = 0;
+    virtual const char* FragmentShaderSource() const = 0;
+
+    // Redefine this to use special texture types such as
+    // GL_TEXTURE_EXTERNAL_OES.
+    GLenum InputTextureType() const { return mInputTextureType; }
+
+    GLuint mGlProgram;
+    GLuint mInputTextureName;
+    GLenum mInputTextureType;
+    int mInputTextureWidth;
+    int mInputTextureHeight;
+
+    // Attribute locations
+    GLint  mScalingtransLoc;
+    GLint maPositionHandle;
+    GLint maTextureHandle;
+
+
+    int mSurfaceWidth;      // Width of target surface.
+    int mSurfaceHeight;     // Height of target surface.
+
+    FrameBuffer *mFrameBuffer;
+};
+
diff --git a/perftests/panorama/feature_mos/src/mosaic_renderer/SurfaceTextureRenderer.cpp b/perftests/panorama/feature_mos/src/mosaic_renderer/SurfaceTextureRenderer.cpp
new file mode 100755
index 0000000..88aac36
--- /dev/null
+++ b/perftests/panorama/feature_mos/src/mosaic_renderer/SurfaceTextureRenderer.cpp
@@ -0,0 +1,186 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+#include "SurfaceTextureRenderer.h"
+
+#include <GLES2/gl2ext.h>
+const GLfloat g_vVertices[] = {
+    -1.f, -1.f, 0.0f, 1.0f,  // Position 0
+    0.0f,  0.0f,         // TexCoord 0
+     1.f, -1.f, 0.0f, 1.0f, // Position 1
+    1.0f,  0.0f,         // TexCoord 1
+    -1.f,  1.f, 0.0f, 1.0f, // Position 2
+    0.0f,  1.0f,         // TexCoord 2
+    1.f,   1.f, 0.0f, 1.0f, // Position 3
+    1.0f,  1.0f          // TexCoord 3
+};
+GLushort g_iIndices2[] = { 0, 1, 2, 3 };
+
+const int GL_TEXTURE_EXTERNAL_OES_ENUM = 0x8D65;
+
+const int VERTEX_STRIDE = 6 * sizeof(GLfloat);
+
+SurfaceTextureRenderer::SurfaceTextureRenderer() : Renderer() {
+    memset(mSTMatrix, 0.0, 16*sizeof(float));
+    mSTMatrix[0] = 1.0f;
+    mSTMatrix[5] = 1.0f;
+    mSTMatrix[10] = 1.0f;
+    mSTMatrix[15] = 1.0f;
+}
+
+SurfaceTextureRenderer::~SurfaceTextureRenderer() {
+}
+
+void SurfaceTextureRenderer::SetViewportMatrix(int w, int h, int W, int H)
+{
+    for(int i=0; i<16; i++)
+    {
+        mViewportMatrix[i] = 0.0f;
+    }
+
+    mViewportMatrix[0] = float(w)/float(W);
+    mViewportMatrix[5] = float(h)/float(H);
+    mViewportMatrix[10] = 1.0f;
+    mViewportMatrix[12] = -1.0f + float(w)/float(W);
+    mViewportMatrix[13] = -1.0f + float(h)/float(H);
+    mViewportMatrix[15] = 1.0f;
+}
+
+void SurfaceTextureRenderer::SetScalingMatrix(float xscale, float yscale)
+{
+    for(int i=0; i<16; i++)
+    {
+        mScalingMatrix[i] = 0.0f;
+    }
+
+    mScalingMatrix[0] = xscale;
+    mScalingMatrix[5] = yscale;
+    mScalingMatrix[10] = 1.0f;
+    mScalingMatrix[15] = 1.0f;
+}
+
+void SurfaceTextureRenderer::SetSTMatrix(float *stmat)
+{
+    memcpy(mSTMatrix, stmat, 16*sizeof(float));
+}
+
+
+bool SurfaceTextureRenderer::InitializeGLProgram()
+{
+    bool succeeded = false;
+    do {
+        GLuint glProgram;
+        glProgram = createProgram(VertexShaderSource(),
+                FragmentShaderSource());
+        if (!glProgram) {
+            break;
+        }
+
+        glUseProgram(glProgram);
+        if (!checkGlError("glUseProgram")) break;
+
+        maPositionHandle = glGetAttribLocation(glProgram, "aPosition");
+        checkGlError("glGetAttribLocation aPosition");
+        maTextureHandle = glGetAttribLocation(glProgram, "aTextureCoord");
+        checkGlError("glGetAttribLocation aTextureCoord");
+        muSTMatrixHandle = glGetUniformLocation(glProgram, "uSTMatrix");
+        checkGlError("glGetUniformLocation uSTMatrix");
+        mScalingtransLoc = glGetUniformLocation(glProgram, "u_scalingtrans");
+
+        glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
+        mGlProgram = glProgram;
+        succeeded = true;
+    } while (false);
+
+    if (!succeeded && (mGlProgram != 0))
+    {
+        glDeleteProgram(mGlProgram);
+        checkGlError("glDeleteProgram");
+        mGlProgram = 0;
+    }
+    return succeeded;
+}
+
+bool SurfaceTextureRenderer::DrawTexture(GLfloat *affine)
+{
+    bool succeeded = false;
+    do {
+        bool rt = (mFrameBuffer == NULL)?
+            SetupGraphics(mSurfaceWidth, mSurfaceHeight) :
+            SetupGraphics(mFrameBuffer);
+
+        if(!rt)
+            break;
+
+        glDisable(GL_BLEND);
+
+        glActiveTexture(GL_TEXTURE0);
+        if (!checkGlError("glActiveTexture")) break;
+
+        const GLenum texture_type = InputTextureType();
+        glBindTexture(texture_type, mInputTextureName);
+        if (!checkGlError("glBindTexture")) break;
+
+        glUniformMatrix4fv(mScalingtransLoc, 1, GL_FALSE, mScalingMatrix);
+        glUniformMatrix4fv(muSTMatrixHandle, 1, GL_FALSE, mSTMatrix);
+
+        // Load the vertex position
+        glVertexAttribPointer(maPositionHandle, 4, GL_FLOAT,
+                GL_FALSE, VERTEX_STRIDE, g_vVertices);
+        glEnableVertexAttribArray(maPositionHandle);
+        // Load the texture coordinate
+        glVertexAttribPointer(maTextureHandle, 2, GL_FLOAT,
+                GL_FALSE, VERTEX_STRIDE, &g_vVertices[4]);
+        glEnableVertexAttribArray(maTextureHandle);
+
+        // And, finally, execute the GL draw command.
+        glDrawElements(GL_TRIANGLE_STRIP, 4, GL_UNSIGNED_SHORT, g_iIndices2);
+
+        glBindFramebuffer(GL_FRAMEBUFFER, 0);
+        succeeded = true;
+    } while (false);
+    return succeeded;
+}
+
+const char* SurfaceTextureRenderer::VertexShaderSource() const
+{
+    static const char gVertexShader[] =
+        "uniform mat4 uSTMatrix;\n"
+        "uniform mat4 u_scalingtrans;  \n"
+        "attribute vec4 aPosition;\n"
+        "attribute vec4 aTextureCoord;\n"
+        "varying vec2 vTextureNormCoord;\n"
+        "void main() {\n"
+        "  gl_Position = u_scalingtrans * aPosition;\n"
+        "  vTextureNormCoord = (uSTMatrix * aTextureCoord).xy;\n"
+        "}\n";
+
+    return gVertexShader;
+}
+
+const char* SurfaceTextureRenderer::FragmentShaderSource() const
+{
+    static const char gFragmentShader[] =
+        "#extension GL_OES_EGL_image_external : require\n"
+        "precision mediump float;\n"
+        "varying vec2 vTextureNormCoord;\n"
+        "uniform samplerExternalOES sTexture;\n"
+        "void main() {\n"
+        "  gl_FragColor = texture2D(sTexture, vTextureNormCoord);\n"
+        "}\n";
+
+    return gFragmentShader;
+}
diff --git a/perftests/panorama/feature_mos/src/mosaic_renderer/SurfaceTextureRenderer.h b/perftests/panorama/feature_mos/src/mosaic_renderer/SurfaceTextureRenderer.h
new file mode 100755
index 0000000..ea2b81a
--- /dev/null
+++ b/perftests/panorama/feature_mos/src/mosaic_renderer/SurfaceTextureRenderer.h
@@ -0,0 +1,44 @@
+#pragma once
+
+#include "FrameBuffer.h"
+#include "Renderer.h"
+
+#include <GLES2/gl2.h>
+
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+class SurfaceTextureRenderer: public Renderer {
+  public:
+    SurfaceTextureRenderer();
+    virtual ~SurfaceTextureRenderer();
+
+    // Initialize OpenGL resources
+    // @return true if successful
+    bool InitializeGLProgram();
+
+    bool DrawTexture(GLfloat *affine);
+
+    void SetViewportMatrix(int w, int h, int W, int H);
+    void SetScalingMatrix(float xscale, float yscale);
+    void SetSTMatrix(float *stmat);
+
+ private:
+    // Source code for shaders.
+    const char* VertexShaderSource() const;
+    const char* FragmentShaderSource() const;
+
+    // Attribute locations
+    GLint  mScalingtransLoc;
+    GLint muSTMatrixHandle;
+    GLint maPositionHandle;
+    GLint maTextureHandle;
+
+    GLfloat mViewportMatrix[16];
+    GLfloat mScalingMatrix[16];
+
+    GLfloat mSTMatrix[16];
+
+};
+
diff --git a/perftests/panorama/feature_mos/src/mosaic_renderer/WarpRenderer.cpp b/perftests/panorama/feature_mos/src/mosaic_renderer/WarpRenderer.cpp
new file mode 100755
index 0000000..af6779a
--- /dev/null
+++ b/perftests/panorama/feature_mos/src/mosaic_renderer/WarpRenderer.cpp
@@ -0,0 +1,190 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+#include "WarpRenderer.h"
+
+#include <GLES2/gl2ext.h>
+
+const GLfloat g_vVertices[] = {
+    -1.f, 1.f, 0.0f, 1.0f,  // Position 0
+    0.0f,  1.0f,         // TexCoord 0
+     1.f, 1.f, 0.0f, 1.0f, // Position 1
+    1.0f,  1.0f,         // TexCoord 1
+    -1.f, -1.f, 0.0f, 1.0f, // Position 2
+    0.0f,  0.0f,         // TexCoord 2
+    1.f,  -1.f, 0.0f, 1.0f, // Position 3
+    1.0f,  0.0f          // TexCoord 3
+};
+
+const int VERTEX_STRIDE = 6 * sizeof(GLfloat);
+
+GLushort g_iIndices[] = { 0, 1, 2, 3 };
+
+WarpRenderer::WarpRenderer() : Renderer()
+{
+}
+
+WarpRenderer::~WarpRenderer() {
+}
+
+void WarpRenderer::SetViewportMatrix(int w, int h, int W, int H)
+{
+    for(int i=0; i<16; i++)
+    {
+        mViewportMatrix[i] = 0.0f;
+    }
+
+    mViewportMatrix[0] = float(w)/float(W);
+    mViewportMatrix[5] = float(h)/float(H);
+    mViewportMatrix[10] = 1.0f;
+    mViewportMatrix[12] = -1.0f + float(w)/float(W);
+    mViewportMatrix[13] = -1.0f + float(h)/float(H);
+    mViewportMatrix[15] = 1.0f;
+}
+
+void WarpRenderer::SetScalingMatrix(float xscale, float yscale)
+{
+    for(int i=0; i<16; i++)
+    {
+        mScalingMatrix[i] = 0.0f;
+    }
+
+    mScalingMatrix[0] = xscale;
+    mScalingMatrix[5] = yscale;
+    mScalingMatrix[10] = 1.0f;
+    mScalingMatrix[15] = 1.0f;
+}
+
+bool WarpRenderer::InitializeGLProgram()
+{
+    bool succeeded = false;
+    do {
+        GLuint glProgram;
+        glProgram = createProgram(VertexShaderSource(),
+                FragmentShaderSource());
+        if (!glProgram) {
+            break;
+        }
+
+        glUseProgram(glProgram);
+        if (!checkGlError("glUseProgram")) break;
+
+        // Get attribute locations
+        mPositionLoc     = glGetAttribLocation(glProgram, "a_position");
+        mAffinetransLoc  = glGetUniformLocation(glProgram, "u_affinetrans");
+        mViewporttransLoc = glGetUniformLocation(glProgram, "u_viewporttrans");
+        mScalingtransLoc = glGetUniformLocation(glProgram, "u_scalingtrans");
+        mTexCoordLoc     = glGetAttribLocation(glProgram, "a_texCoord");
+
+        // Get sampler location
+        mSamplerLoc      = glGetUniformLocation(glProgram, "s_texture");
+
+        mGlProgram = glProgram;
+        succeeded = true;
+    } while (false);
+
+    if (!succeeded && (mGlProgram != 0))
+    {
+        glDeleteProgram(mGlProgram);
+        checkGlError("glDeleteProgram");
+        mGlProgram = 0;
+    }
+    return succeeded;
+}
+
+bool WarpRenderer::DrawTexture(GLfloat *affine)
+{
+    bool succeeded = false;
+    do {
+        bool rt = (mFrameBuffer == NULL)?
+                SetupGraphics(mSurfaceWidth, mSurfaceHeight) :
+                SetupGraphics(mFrameBuffer);
+
+        if(!rt)
+            break;
+
+        glDisable(GL_BLEND);
+
+        glActiveTexture(GL_TEXTURE0);
+        if (!checkGlError("glActiveTexture")) break;
+
+        const GLenum texture_type = InputTextureType();
+        glBindTexture(texture_type, mInputTextureName);
+        if (!checkGlError("glBindTexture")) break;
+
+        // Set the sampler texture unit to 0
+        glUniform1i(mSamplerLoc, 0);
+
+        // Load the vertex position
+        glVertexAttribPointer(mPositionLoc, 4, GL_FLOAT,
+                GL_FALSE, VERTEX_STRIDE, g_vVertices);
+
+        // Load the texture coordinate
+        glVertexAttribPointer(mTexCoordLoc, 2, GL_FLOAT,
+                GL_FALSE, VERTEX_STRIDE, &g_vVertices[4]);
+
+        glEnableVertexAttribArray(mPositionLoc);
+        glEnableVertexAttribArray(mTexCoordLoc);
+
+        // pass matrix information to the vertex shader
+        glUniformMatrix4fv(mAffinetransLoc, 1, GL_FALSE, affine);
+        glUniformMatrix4fv(mViewporttransLoc, 1, GL_FALSE, mViewportMatrix);
+        glUniformMatrix4fv(mScalingtransLoc, 1, GL_FALSE, mScalingMatrix);
+
+        // And, finally, execute the GL draw command.
+        glDrawElements(GL_TRIANGLE_STRIP, 4, GL_UNSIGNED_SHORT, g_iIndices);
+
+        checkGlError("glDrawElements");
+
+        glBindFramebuffer(GL_FRAMEBUFFER, 0);
+        succeeded = true;
+    } while (false);
+    return succeeded;
+}
+
+const char* WarpRenderer::VertexShaderSource() const
+{
+    static const char gVertexShader[] =
+        "uniform mat4 u_affinetrans;  \n"
+        "uniform mat4 u_viewporttrans;  \n"
+        "uniform mat4 u_scalingtrans;  \n"
+        "attribute vec4 a_position;   \n"
+        "attribute vec2 a_texCoord;   \n"
+        "varying vec2 v_texCoord;     \n"
+        "void main()                  \n"
+        "{                            \n"
+        "   gl_Position = u_scalingtrans * u_viewporttrans * u_affinetrans * a_position; \n"
+        "   v_texCoord = a_texCoord;  \n"
+        "}                            \n";
+
+    return gVertexShader;
+}
+
+const char* WarpRenderer::FragmentShaderSource() const
+{
+    static const char gFragmentShader[] =
+        "precision mediump float;                            \n"
+        "varying vec2 v_texCoord;                            \n"
+        "uniform sampler2D s_texture;                        \n"
+        "void main()                                         \n"
+        "{                                                   \n"
+        "  vec4 color;                                       \n"
+        "  color = texture2D(s_texture, v_texCoord);       \n"
+        "  gl_FragColor = color;                             \n"
+        "}                                                   \n";
+
+    return gFragmentShader;
+}
diff --git a/perftests/panorama/feature_mos/src/mosaic_renderer/WarpRenderer.h b/perftests/panorama/feature_mos/src/mosaic_renderer/WarpRenderer.h
new file mode 100755
index 0000000..8e9a694
--- /dev/null
+++ b/perftests/panorama/feature_mos/src/mosaic_renderer/WarpRenderer.h
@@ -0,0 +1,48 @@
+#pragma once
+
+#include "FrameBuffer.h"
+#include "Renderer.h"
+
+#include <GLES2/gl2.h>
+
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+class WarpRenderer: public Renderer {
+  public:
+    WarpRenderer();
+    virtual ~WarpRenderer();
+
+    // Initialize OpenGL resources
+    // @return true if successful
+    bool InitializeGLProgram();
+
+    void SetViewportMatrix(int w, int h, int W, int H);
+    void SetScalingMatrix(float xscale, float yscale);
+
+    bool DrawTexture(GLfloat *affine);
+
+ private:
+    // Source code for shaders.
+    const char* VertexShaderSource() const;
+    const char* FragmentShaderSource() const;
+
+    GLuint mTexHandle;                  // Handle to s_texture.
+    GLuint mTexCoordHandle;             // Handle to a_texCoord.
+    GLuint mTriangleVerticesHandle;     // Handle to vPosition.
+
+    // Attribute locations
+    GLint  mPositionLoc;
+    GLint  mAffinetransLoc;
+    GLint  mViewporttransLoc;
+    GLint  mScalingtransLoc;
+    GLint  mTexCoordLoc;
+
+    GLfloat mViewportMatrix[16];
+    GLfloat mScalingMatrix[16];
+
+    // Sampler location
+    GLint mSamplerLoc;
+};
+
diff --git a/perftests/panorama/feature_mos/src/mosaic_renderer/YVURenderer.cpp b/perftests/panorama/feature_mos/src/mosaic_renderer/YVURenderer.cpp
new file mode 100755
index 0000000..f7dcf6f
--- /dev/null
+++ b/perftests/panorama/feature_mos/src/mosaic_renderer/YVURenderer.cpp
@@ -0,0 +1,160 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+#include "YVURenderer.h"
+
+#include <GLES2/gl2ext.h>
+
+const GLfloat g_vVertices[] = {
+    -1.f, 1.f, 0.0f, 1.0f,  // Position 0
+    0.0f,  1.0f,         // TexCoord 0
+     1.f, 1.f, 0.0f, 1.0f, // Position 1
+    1.0f,  1.0f,         // TexCoord 1
+    -1.f, -1.f, 0.0f, 1.0f, // Position 2
+    0.0f,  0.0f,         // TexCoord 2
+    1.f,  -1.f, 0.0f, 1.0f, // Position 3
+    1.0f,  0.0f          // TexCoord 3
+};
+
+const int VERTEX_STRIDE = 6 * sizeof(GLfloat);
+
+GLushort g_iIndices3[] = { 0, 1, 2, 3 };
+
+YVURenderer::YVURenderer() : Renderer()
+                   {
+}
+
+YVURenderer::~YVURenderer() {
+}
+
+bool YVURenderer::InitializeGLProgram()
+{
+    bool succeeded = false;
+    do {
+        GLuint glProgram;
+        glProgram = createProgram(VertexShaderSource(),
+                FragmentShaderSource());
+        if (!glProgram) {
+            break;
+        }
+
+        glUseProgram(glProgram);
+        if (!checkGlError("glUseProgram")) break;
+
+        // Get attribute locations
+        mPositionLoc     = glGetAttribLocation(glProgram, "a_Position");
+        mTexCoordLoc     = glGetAttribLocation(glProgram, "a_texCoord");
+
+        // Get sampler location
+        mSamplerLoc      = glGetUniformLocation(glProgram, "s_texture");
+
+        mGlProgram = glProgram;
+        succeeded = true;
+    } while (false);
+
+    if (!succeeded && (mGlProgram != 0))
+    {
+        glDeleteProgram(mGlProgram);
+        checkGlError("glDeleteProgram");
+        mGlProgram = 0;
+    }
+    return succeeded;
+}
+
+bool YVURenderer::DrawTexture()
+{
+    bool succeeded = false;
+    do {
+        bool rt = (mFrameBuffer == NULL)?
+                SetupGraphics(mSurfaceWidth, mSurfaceHeight) :
+                SetupGraphics(mFrameBuffer);
+
+        if(!rt)
+            break;
+
+        glDisable(GL_BLEND);
+
+        glActiveTexture(GL_TEXTURE0);
+        if (!checkGlError("glActiveTexture")) break;
+
+        const GLenum texture_type = InputTextureType();
+        glBindTexture(texture_type, mInputTextureName);
+        if (!checkGlError("glBindTexture")) break;
+
+        // Set the sampler texture unit to 0
+        glUniform1i(mSamplerLoc, 0);
+
+        // Load the vertex position
+        glVertexAttribPointer(mPositionLoc, 4, GL_FLOAT,
+                GL_FALSE, VERTEX_STRIDE, g_vVertices);
+
+        // Load the texture coordinate
+        glVertexAttribPointer(mTexCoordLoc, 2, GL_FLOAT,
+                GL_FALSE, VERTEX_STRIDE, &g_vVertices[4]);
+
+        glEnableVertexAttribArray(mPositionLoc);
+        glEnableVertexAttribArray(mTexCoordLoc);
+
+        // And, finally, execute the GL draw command.
+        glDrawElements(GL_TRIANGLE_STRIP, 4, GL_UNSIGNED_SHORT, g_iIndices3);
+
+        checkGlError("glDrawElements");
+
+        glBindFramebuffer(GL_FRAMEBUFFER, 0);
+        succeeded = true;
+    } while (false);
+    return succeeded;
+}
+
+const char* YVURenderer::VertexShaderSource() const
+{
+    // All this really does is copy the coordinates into
+    // variables for the fragment shader to pick up.
+    static const char gVertexShader[] =
+        "attribute vec4 a_Position;\n"
+        "attribute vec2 a_texCoord;\n"
+        "varying vec2 v_texCoord;\n"
+        "void main() {\n"
+        "  gl_Position = a_Position;\n"
+        "  v_texCoord = a_texCoord;\n"
+        "}\n";
+
+    return gVertexShader;
+}
+
+const char* YVURenderer::FragmentShaderSource() const
+{
+    static const char gFragmentShader[] =
+        "precision mediump float;\n"
+        "uniform sampler2D s_texture;\n"
+        "const vec4 coeff_y = vec4(0.257, 0.594, 0.098, 0.063);\n"
+        "const vec4 coeff_v = vec4(0.439, -0.368, -0.071, 0.500);\n"
+        "const vec4 coeff_u = vec4(-0.148, -0.291, 0.439, 0.500);\n"
+        "varying vec2 v_texCoord;\n"
+        "void main() {\n"
+        "  vec4 p;\n"
+        "  p = texture2D(s_texture, v_texCoord);\n"
+        "  gl_FragColor[0] = dot(p, coeff_y);\n"
+        "  p = texture2D(s_texture, v_texCoord);\n"
+        "  gl_FragColor[1] = dot(p, coeff_v);\n"
+        "  p = texture2D(s_texture, v_texCoord);\n"
+        "  gl_FragColor[2] = dot(p, coeff_u);\n"
+        "  p = texture2D(s_texture, v_texCoord);\n"
+        "  gl_FragColor[3] = dot(p, coeff_y);\n"
+        "}\n";
+
+    return gFragmentShader;
+}
diff --git a/perftests/panorama/feature_mos/src/mosaic_renderer/YVURenderer.h b/perftests/panorama/feature_mos/src/mosaic_renderer/YVURenderer.h
new file mode 100755
index 0000000..d14a4b9
--- /dev/null
+++ b/perftests/panorama/feature_mos/src/mosaic_renderer/YVURenderer.h
@@ -0,0 +1,35 @@
+#pragma once
+
+#include "FrameBuffer.h"
+#include "Renderer.h"
+
+#include <GLES2/gl2.h>
+
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+class YVURenderer: public Renderer {
+  public:
+    YVURenderer();
+    virtual ~YVURenderer();
+
+    // Initialize OpenGL resources
+    // @return true if successful
+    bool InitializeGLProgram();
+
+    bool DrawTexture();
+
+ private:
+    // Source code for shaders.
+    const char* VertexShaderSource() const;
+    const char* FragmentShaderSource() const;
+
+    // Attribute locations
+    GLint  mPositionLoc;
+    GLint  mTexCoordLoc;
+
+    // Sampler location
+    GLint mSamplerLoc;
+};
+
diff --git a/perftests/panorama/feature_stab/db_vlvm/db_bundle.h b/perftests/panorama/feature_stab/db_vlvm/db_bundle.h
new file mode 100644
index 0000000..e4fb8db
--- /dev/null
+++ b/perftests/panorama/feature_stab/db_vlvm/db_bundle.h
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+/* $Id: db_bundle.h,v 1.2 2011/06/17 14:03:30 mbansal Exp $ */
+
+#ifndef DB_BUNDLE_H
+#define DB_BUNDLE_H
+
+
+/*****************************************************************
+*    Lean and mean begins here                                   *
+*****************************************************************/
+/*!
+ * \defgroup LMBundle (LM) Bundle adjustment utilities (a.k.a. Levenberg-Marquardt algorithm)
+ */
+/*\{*/
+
+#include "db_utilities.h"
+
+/*!
+Solve for update dx such that diagmult(1+lambda,transpose(J)%J)%dx= -Jtf
+using only upper half of JtJ, destroying lower half below diagonal in the process
+dimension is n and d should point to n allocated doubles of scratch memory
+*/
+inline void db_Compute_dx(double *dx,double **JtJ,double *min_Jtf,double lambda,double *d,int n)
+{
+    int i;
+    double opl;
+
+    opl=1.0+lambda;
+    for(i=0;i<n;i++) d[i]=JtJ[i][i]*opl;
+
+    db_CholeskyDecompSeparateDiagonal(JtJ,d,n);
+    db_CholeskyBacksub(dx,JtJ,d,n,min_Jtf);
+}
+
+/*!
+Solve for update dx such that diagmult(1+lambda,transpose(J)%J)%dx= -Jtf
+using only upper half of JtJ, destroying lower half below diagonal in the process
+*/
+inline void db_Compute_dx_3x3(double dx[3],double JtJ[9],const double min_Jtf[3],double lambda)
+{
+    double d[3],opl;
+
+    opl=1.0+lambda;
+    d[0]=JtJ[0]*opl;
+    d[1]=JtJ[4]*opl;
+    d[2]=JtJ[8]*opl;
+    db_CholeskyDecomp3x3SeparateDiagonal(JtJ,d);
+    db_CholeskyBacksub3x3(dx,JtJ,d,min_Jtf);
+}
+
+/*\}*/
+
+#endif /* DB_BUNDLE_H */
diff --git a/perftests/panorama/feature_stab/db_vlvm/db_feature_detection.cpp b/perftests/panorama/feature_stab/db_vlvm/db_feature_detection.cpp
new file mode 100644
index 0000000..28cb4a7
--- /dev/null
+++ b/perftests/panorama/feature_stab/db_vlvm/db_feature_detection.cpp
@@ -0,0 +1,1770 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+/*$Id: db_feature_detection.cpp,v 1.4 2011/06/17 14:03:30 mbansal Exp $*/
+
+/*****************************************************************
+*    Lean and mean begins here                                   *
+*****************************************************************/
+
+#include "db_utilities.h"
+#include "db_feature_detection.h"
+#ifdef _VERBOSE_
+#include <iostream>
+#endif
+#include <float.h>
+
+#define DB_SUB_PIXEL
+
+#define BORDER 10 // 5
+
+float** db_AllocStrengthImage_f(float **im,int w,int h)
+{
+    int i,n,aw;
+    long c,size;
+    float **img,*aim,*p;
+
+    /*Determine number of 124 element chunks needed*/
+    n=(db_maxi(1,w-6)+123)/124;
+    /*Determine the total allocation width aw*/
+    aw=n*124+8;
+    /*Allocate*/
+    size=aw*h+16;
+    *im=new float [size];
+    /*Clean up*/
+    p=(*im);
+    for(c=0;c<size;c++) p[c]=0.0;
+    /*Get a 16 byte aligned pointer*/
+    aim=db_AlignPointer_f(*im,16);
+    /*Allocate pointer table*/
+    img=new float* [h];
+    /*Initialize the pointer table*/
+    for(i=0;i<h;i++)
+    {
+        img[i]=aim+aw*i+1;
+    }
+
+    return(img);
+}
+
+void db_FreeStrengthImage_f(float *im,float **img,int h)
+{
+    delete [] im;
+    delete [] img;
+}
+
+/*Compute derivatives Ix,Iy for a subrow of img with upper left (i,j) and width chunk_width
+Memory references occur one pixel outside the subrow*/
+inline void db_IxIyRow_f(float *Ix,float *Iy,const float * const *img,int i,int j,int chunk_width)
+{
+    int c;
+
+    for(c=0;c<chunk_width;c++)
+    {
+        Ix[c]=img[i][j+c-1]-img[i][j+c+1];
+        Iy[c]=img[i-1][j+c]-img[i+1][j+c];
+    }
+}
+
+/*Compute derivatives Ix,Iy for a subrow of img with upper left (i,j) and width 128
+Memory references occur one pixel outside the subrow*/
+inline void db_IxIyRow_u(int *dxx,const unsigned char * const *img,int i,int j,int nc)
+{
+#ifdef DB_USE_MMX
+    const unsigned char *r1,*r2,*r3;
+
+    r1=img[i-1]+j; r2=img[i]+j; r3=img[i+1]+j;
+
+    _asm
+    {
+        mov esi,16
+        mov eax,r1
+        mov ebx,r2
+        mov ecx,r3
+        mov edx,dxx
+
+        /*Get bitmask into mm7*/
+        mov       edi,7F7F7F7Fh
+        movd      mm7,edi
+        punpckldq mm7,mm7
+
+loopstart:
+        /***************dx part 1-12*********************************/
+        movq       mm0,[eax]       /*1 Get upper*/
+         pxor      mm6,mm6         /*2 Set to zero*/
+        movq       mm1,[ecx]       /*3 Get lower*/
+         psrlq     mm0,1           /*4 Shift*/
+        psrlq      mm1,1           /*5 Shift*/
+         pand      mm0,mm7         /*6 And*/
+        movq       mm2,[ebx-1]     /*13 Get left*/
+         pand      mm1,mm7         /*7 And*/
+        psubb      mm0,mm1         /*8 Subtract*/
+         pxor      mm5,mm5         /*14 Set to zero*/
+        movq       mm1,mm0         /*9 Copy*/
+         pcmpgtb   mm6,mm0         /*10 Create unpack mask*/
+        movq       mm3,[ebx+1]     /*15 Get right*/
+         punpcklbw mm0,mm6         /*11 Unpack low*/
+        punpckhbw  mm1,mm6         /*12 Unpack high*/
+        /***************dy part 13-24*********************************/
+         movq      mm4,mm0         /*25 Copy dx*/
+        psrlq      mm2,1           /*16 Shift*/
+         pmullw    mm0,mm0         /*26 Multiply dx*dx*/
+        psrlq      mm3,1           /*17 Shift*/
+         pand      mm2,mm7         /*18 And*/
+        pand       mm3,mm7         /*19 And*/
+         /*Stall*/
+        psubb      mm2,mm3         /*20 Subtract*/
+         /*Stall*/
+        movq       mm3,mm2         /*21 Copy*/
+         pcmpgtb   mm5,mm2         /*22 Create unpack mask*/
+        punpcklbw  mm2,mm5         /*23 Unpack low*/
+         /*Stall*/
+        punpckhbw  mm3,mm5         /*24 Unpack high*/
+        /***************dxx dxy dyy low part 25-49*********************************/
+         pmullw    mm4,mm2         /*27 Multiply dx*dy*/
+        pmullw     mm2,mm2         /*28 Multiply dy*dy*/
+         pxor      mm6,mm6         /*29 Set to zero*/
+        movq       mm5,mm0         /*30 Copy dx*dx*/
+         pcmpgtw   mm6,mm0         /*31 Create unpack mask for dx*dx*/
+        punpcklwd  mm0,mm6         /*32 Unpack dx*dx lows*/
+         /*Stall*/
+        punpckhwd  mm5,mm6         /*33 Unpack dx*dx highs*/
+         pxor      mm6,mm6         /*36 Set to zero*/
+        movq       [edx],mm0       /*34 Store dx*dx lows*/
+         movq      mm0,mm4         /*37 Copy dx*dy*/
+        movq       [edx+8],mm5     /*35 Store dx*dx highs*/
+         pcmpgtw   mm6,mm4         /*38 Create unpack mask for dx*dy*/
+        punpcklwd  mm4,mm6         /*39 Unpack dx*dy lows*/
+         /*Stall*/
+        punpckhwd  mm0,mm6         /*40 Unpack dx*dy highs*/
+         pxor      mm6,mm6         /*43 Set to zero*/
+        movq       [edx+512],mm4   /*41 Store dx*dy lows*/
+         movq      mm5,mm2         /*44 Copy dy*dy*/
+        movq       [edx+520],mm0   /*42 Store dx*dy highs*/
+         pcmpgtw   mm6,mm2         /*45 Create unpack mask for dy*dy*/
+        punpcklwd  mm2,mm6         /*46 Unpack dy*dy lows*/
+         movq      mm4,mm1         /*50 Copy dx*/
+        punpckhwd  mm5,mm6         /*47 Unpack dy*dy highs*/
+         pmullw    mm1,mm1         /*51 Multiply dx*dx*/
+        movq       [edx+1024],mm2  /*48 Store dy*dy lows*/
+         pmullw    mm4,mm3         /*52 Multiply dx*dy*/
+        movq       [edx+1032],mm5  /*49 Store dy*dy highs*/
+        /***************dxx dxy dyy high part 50-79*********************************/
+         pmullw    mm3,mm3         /*53 Multiply dy*dy*/
+        pxor       mm6,mm6         /*54 Set to zero*/
+         movq      mm5,mm1         /*55 Copy dx*dx*/
+        pcmpgtw    mm6,mm1         /*56 Create unpack mask for dx*dx*/
+         pxor      mm2,mm2         /*61 Set to zero*/
+        punpcklwd  mm1,mm6         /*57 Unpack dx*dx lows*/
+         movq      mm0,mm4         /*62 Copy dx*dy*/
+        punpckhwd  mm5,mm6         /*58 Unpack dx*dx highs*/
+         pcmpgtw   mm2,mm4         /*63 Create unpack mask for dx*dy*/
+        movq       [edx+16],mm1    /*59 Store dx*dx lows*/
+         punpcklwd mm4,mm2         /*64 Unpack dx*dy lows*/
+        movq       [edx+24],mm5    /*60 Store dx*dx highs*/
+         punpckhwd mm0,mm2         /*65 Unpack dx*dy highs*/
+        movq       [edx+528],mm4   /*66 Store dx*dy lows*/
+         pxor      mm6,mm6         /*68 Set to zero*/
+        movq       [edx+536],mm0   /*67 Store dx*dy highs*/
+         movq      mm5,mm3         /*69 Copy dy*dy*/
+        pcmpgtw    mm6,mm3         /*70 Create unpack mask for dy*dy*/
+         add       eax,8           /*75*/
+        punpcklwd  mm3,mm6         /*71 Unpack dy*dy lows*/
+         add       ebx,8           /*76*/
+        punpckhwd  mm5,mm6         /*72 Unpack dy*dy highs*/
+         add       ecx,8           /*77*/
+        movq       [edx+1040],mm3  /*73 Store dy*dy lows*/
+         /*Stall*/
+        movq       [edx+1048],mm5  /*74 Store dy*dy highs*/
+         /*Stall*/
+        add        edx,32          /*78*/
+         dec esi                   /*79*/
+        jnz loopstart
+
+        emms
+    }
+
+#else
+    int c;
+    int Ix,Iy;
+
+    for(c=0;c<nc;c++)
+    {
+        Ix=(img[i][j+c-1]-img[i][j+c+1])>>1;
+        Iy=(img[i-1][j+c]-img[i+1][j+c])>>1;
+        dxx[c]=Ix*Ix;
+        dxx[c+128]=Ix*Iy;
+        dxx[c+256]=Iy*Iy;
+    }
+#endif /*DB_USE_MMX*/
+}
+
+/*Filter vertically five rows of derivatives of length chunk_width into gxx,gxy,gyy*/
+inline void db_gxx_gxy_gyy_row_f(float *gxx,float *gxy,float *gyy,int chunk_width,
+                                 float *Ix0,float *Ix1,float *Ix2,float *Ix3,float *Ix4,
+                                 float *Iy0,float *Iy1,float *Iy2,float *Iy3,float *Iy4)
+{
+    int c;
+    float dx,dy;
+    float Ixx0,Ixy0,Iyy0,Ixx1,Ixy1,Iyy1,Ixx2,Ixy2,Iyy2,Ixx3,Ixy3,Iyy3,Ixx4,Ixy4,Iyy4;
+
+    for(c=0;c<chunk_width;c++)
+    {
+        dx=Ix0[c];
+        dy=Iy0[c];
+        Ixx0=dx*dx;
+        Ixy0=dx*dy;
+        Iyy0=dy*dy;
+
+        dx=Ix1[c];
+        dy=Iy1[c];
+        Ixx1=dx*dx;
+        Ixy1=dx*dy;
+        Iyy1=dy*dy;
+
+        dx=Ix2[c];
+        dy=Iy2[c];
+        Ixx2=dx*dx;
+        Ixy2=dx*dy;
+        Iyy2=dy*dy;
+
+        dx=Ix3[c];
+        dy=Iy3[c];
+        Ixx3=dx*dx;
+        Ixy3=dx*dy;
+        Iyy3=dy*dy;
+
+        dx=Ix4[c];
+        dy=Iy4[c];
+        Ixx4=dx*dx;
+        Ixy4=dx*dy;
+        Iyy4=dy*dy;
+
+        /*Filter vertically*/
+        gxx[c]=Ixx0+Ixx1*4.0f+Ixx2*6.0f+Ixx3*4.0f+Ixx4;
+        gxy[c]=Ixy0+Ixy1*4.0f+Ixy2*6.0f+Ixy3*4.0f+Ixy4;
+        gyy[c]=Iyy0+Iyy1*4.0f+Iyy2*6.0f+Iyy3*4.0f+Iyy4;
+    }
+}
+
+/*Filter vertically five rows of derivatives of length 128 into gxx,gxy,gyy*/
+inline void db_gxx_gxy_gyy_row_s(int *g,int *d0,int *d1,int *d2,int *d3,int *d4,int nc)
+{
+#ifdef DB_USE_MMX
+    int c;
+
+    _asm
+    {
+        mov c,64
+        mov eax,d0
+        mov ebx,d1
+        mov ecx,d2
+        mov edx,d3
+        mov edi,d4
+        mov esi,g
+
+loopstart:
+        /***************dxx part 1-14*********************************/
+        movq        mm0,[eax]      /*1 Get dxx0*/
+         /*Stall*/
+        movq        mm1,[ebx]      /*2 Get dxx1*/
+         /*Stall*/
+        movq        mm2,[ecx]      /*5 Get dxx2*/
+         pslld      mm1,2          /*3 Shift dxx1*/
+        movq        mm3,[edx]      /*10 Get dxx3*/
+         paddd      mm0,mm1        /*4 Accumulate dxx1*/
+        movq        mm4,[eax+512]  /*15 Get dxy0*/
+         pslld      mm2,1          /*6 Shift dxx2 1*/
+        paddd       mm0,mm2        /*7 Accumulate dxx2 1*/
+         pslld      mm2,1          /*8 Shift dxx2 2*/
+        movq        mm5,[ebx+512]  /*16 Get dxy1*/
+         paddd      mm0,mm2        /*9 Accumulate dxx2 2*/
+        pslld       mm3,2          /*11 Shift dxx3*/
+         /*Stall*/
+        paddd       mm0,mm3        /*12 Accumulate dxx3*/
+         pslld      mm5,2          /*17 Shift dxy1*/
+        paddd       mm0,[edi]      /*13 Accumulate dxx4*/
+         paddd      mm4,mm5        /*18 Accumulate dxy1*/
+        movq        mm6,[ecx+512]  /*19 Get dxy2*/
+         /*Stall*/
+        movq        [esi],mm0      /*14 Store dxx sums*/
+        /***************dxy part 15-28*********************************/
+         pslld      mm6,1          /*20 Shift dxy2 1*/
+        paddd       mm4,mm6        /*21 Accumulate dxy2 1*/
+         pslld      mm6,1          /*22 Shift dxy2 2*/
+        movq        mm0,[eax+1024] /*29 Get dyy0*/
+         paddd      mm4,mm6        /*23 Accumulate dxy2 2*/
+        movq        mm7,[edx+512]  /*24 Get dxy3*/
+         pslld      mm7,2          /*25 Shift dxy3*/
+        movq        mm1,[ebx+1024] /*30 Get dyy1*/
+         paddd      mm4,mm7        /*26 Accumulate dxy3*/
+        paddd       mm4,[edi+512]  /*27 Accumulate dxy4*/
+         pslld      mm1,2          /*31 Shift dyy1*/
+        movq        mm2,[ecx+1024] /*33 Get dyy2*/
+         paddd      mm0,mm1        /*32 Accumulate dyy1*/
+        movq        [esi+512],mm4  /*28 Store dxy sums*/
+         pslld      mm2,1          /*34 Shift dyy2 1*/
+        /***************dyy part 29-49*********************************/
+
+
+        movq        mm3,[edx+1024] /*38 Get dyy3*/
+         paddd      mm0,mm2        /*35 Accumulate dyy2 1*/
+        paddd       mm0,[edi+1024] /*41 Accumulate dyy4*/
+         pslld      mm2,1          /*36 Shift dyy2 2*/
+        paddd       mm0,mm2        /*37 Accumulate dyy2 2*/
+         pslld      mm3,2          /*39 Shift dyy3*/
+        paddd       mm0,mm3        /*40 Accumulate dyy3*/
+         add        eax,8           /*43*/
+        add         ebx,8           /*44*/
+         add        ecx,8           /*45*/
+        movq        [esi+1024],mm0 /*42 Store dyy sums*/
+         /*Stall*/
+        add         edx,8           /*46*/
+         add        edi,8           /*47*/
+        add         esi,8           /*48*/
+         dec        c               /*49*/
+        jnz         loopstart
+
+        emms
+    }
+
+#else
+    int c,dd;
+
+    for(c=0;c<nc;c++)
+    {
+        /*Filter vertically*/
+        dd=d2[c];
+        g[c]=d0[c]+(d1[c]<<2)+(dd<<2)+(dd<<1)+(d3[c]<<2)+d4[c];
+
+        dd=d2[c+128];
+        g[c+128]=d0[c+128]+(d1[c+128]<<2)+(dd<<2)+(dd<<1)+(d3[c+128]<<2)+d4[c+128];
+
+        dd=d2[c+256];
+        g[c+256]=d0[c+256]+(d1[c+256]<<2)+(dd<<2)+(dd<<1)+(d3[c+256]<<2)+d4[c+256];
+    }
+#endif /*DB_USE_MMX*/
+}
+
+/*Filter horizontally the three rows gxx,gxy,gyy into the strength subrow starting at i,j
+and with width chunk_width. gxx,gxy and gyy are assumed to be four pixels wider than chunk_width
+and starting at (i,j-2)*/
+inline void db_HarrisStrength_row_f(float **s,float *gxx,float *gxy,float *gyy,int i,int j,int chunk_width)
+{
+    float Gxx,Gxy,Gyy,det,trc;
+    int c;
+
+    for(c=0;c<chunk_width;c++)
+    {
+        Gxx=gxx[c]+gxx[c+1]*4.0f+gxx[c+2]*6.0f+gxx[c+3]*4.0f+gxx[c+4];
+        Gxy=gxy[c]+gxy[c+1]*4.0f+gxy[c+2]*6.0f+gxy[c+3]*4.0f+gxy[c+4];
+        Gyy=gyy[c]+gyy[c+1]*4.0f+gyy[c+2]*6.0f+gyy[c+3]*4.0f+gyy[c+4];
+
+        det=Gxx*Gyy-Gxy*Gxy;
+        trc=Gxx+Gyy;
+        s[i][j+c]=det-0.06f*trc*trc;
+    }
+}
+
+/*Filter g of length 128 in place with 14641. Output is shifted two steps
+and of length 124*/
+inline void db_Filter14641_128_i(int *g,int nc)
+{
+#ifdef DB_USE_MMX
+    int mask;
+
+    mask=0xFFFFFFFF;
+    _asm
+    {
+        mov esi,31
+        mov eax,g
+
+        /*Get bitmask 00000000FFFFFFFF into mm7*/
+        movd mm7,mask
+
+        /*Warming iteration one 1-16********************/
+        movq       mm6,[eax]      /*1 Load new data*/
+        paddd      mm0,mm6        /*2 Add 1* behind two steps*/
+        movq       mm2,mm6        /*3 Start with 1* in front two steps*/
+        pslld      mm6,1          /*4*/
+        paddd      mm1,mm6        /*5 Add 2* same place*/
+        pslld      mm6,1          /*6*/
+        paddd      mm1,mm6        /*7 Add 4* same place*/
+        pshufw     mm6,mm6,4Eh    /*8 Swap the two double-words using bitmask 01001110=4Eh*/
+        paddd      mm1,mm6        /*9 Add 4* swapped*/
+        movq       mm5,mm6        /*10 Copy*/
+        pand       mm6,mm7        /*11 Get low double-word only*/
+        paddd      mm2,mm6        /*12 Add 4* in front one step*/
+        pxor       mm6,mm5        /*13 Get high double-word only*/
+        paddd      mm0,mm6        /*14 Add 4* behind one step*/
+        movq       mm0,mm1        /*15 Shift along*/
+        movq       mm1,mm2        /*16 Shift along*/
+        /*Warming iteration two 17-32********************/
+        movq       mm4,[eax+8]    /*17 Load new data*/
+        paddd      mm0,mm4        /*18 Add 1* behind two steps*/
+        movq       mm2,mm4        /*19 Start with 1* in front two steps*/
+        pslld      mm4,1          /*20*/
+        paddd      mm1,mm4        /*21 Add 2* same place*/
+        pslld      mm4,1          /*22*/
+        paddd      mm1,mm4        /*23 Add 4* same place*/
+        pshufw     mm4,mm4,4Eh    /*24 Swap the two double-words using bitmask 01001110=4Eh*/
+        paddd      mm1,mm4        /*25 Add 4* swapped*/
+        movq       mm3,mm4        /*26 Copy*/
+        pand       mm4,mm7        /*27 Get low double-word only*/
+        paddd      mm2,mm4        /*28 Add 4* in front one step*/
+        pxor       mm4,mm3        /*29 Get high double-word only*/
+        paddd      mm0,mm4        /*30 Add 4* behind one step*/
+        movq       mm0,mm1        /*31 Shift along*/
+        movq       mm1,mm2        /*32 Shift along*/
+
+        /*Loop********************/
+loopstart:
+        /*First part of loop 33-47********/
+        movq        mm6,[eax+16]   /*33 Load new data*/
+         /*Stall*/
+        paddd       mm0,mm6        /*34 Add 1* behind two steps*/
+         movq       mm2,mm6        /*35 Start with 1* in front two steps*/
+        movq        mm4,[eax+24]   /*48 Load new data*/
+         pslld      mm6,1          /*36*/
+        paddd       mm1,mm6        /*37 Add 2* same place*/
+         pslld      mm6,1          /*38*/
+        paddd       mm1,mm6        /*39 Add 4* same place*/
+         pshufw     mm6,mm6,4Eh    /*40 Swap the two double-words using bitmask 01001110=4Eh*/
+        paddd       mm1,mm4        /*49 Add 1* behind two steps*/
+         movq       mm5,mm6        /*41 Copy*/
+        paddd       mm1,mm6        /*42 Add 4* swapped*/
+         pand       mm6,mm7        /*43 Get low double-word only*/
+        paddd       mm2,mm6        /*44 Add 4* in front one step*/
+         pxor       mm6,mm5        /*45 Get high double-word only*/
+        paddd       mm0,mm6        /*46 Add 4* behind one step*/
+         movq       mm6,mm4        /*50a Copy*/
+        pslld       mm4,1          /*51*/
+         /*Stall*/
+        movq        [eax],mm0      /*47 Store result two steps behind*/
+        /*Second part of loop 48-66********/
+         movq       mm0,mm6        /*50b Start with 1* in front two steps*/
+        paddd       mm2,mm4        /*52 Add 2* same place*/
+         pslld      mm4,1          /*53*/
+        paddd       mm2,mm4        /*54 Add 4* same place*/
+         pshufw     mm4,mm4,4Eh    /*55 Swap the two double-words using bitmask 01001110=4Eh*/
+        paddd       mm2,mm4        /*56 Add 4* swapped*/
+         movq       mm3,mm4        /*57 Copy*/
+        pand        mm4,mm7        /*58 Get low double-word only*/
+         /*Stall*/
+        paddd       mm0,mm4        /*59 Add 4* in front one step*/
+         pxor       mm4,mm3        /*60 Get high double-word only*/
+        paddd       mm1,mm4        /*61 Add 4* behind one step*/
+         add        eax,16         /*65*/
+        dec         esi            /*66*/
+         /*Stall*/
+        movq        [eax-8],mm1    /*62 Store result two steps behind*/
+         movq       mm1,mm0        /*63 Shift along*/
+        movq        mm0,mm2        /*64 Shift along*/
+        jnz loopstart
+
+        emms
+    }
+
+#else
+    int c;
+
+    for(c=0;c<nc-4;c++)
+    {
+        g[c]=g[c]+(g[c+1]<<2)+(g[c+2]<<2)+(g[c+2]<<1)+(g[c+3]<<2)+g[c+4];
+    }
+#endif /*DB_USE_MMX*/
+}
+
+/*Filter horizontally the three rows gxx,gxy,gyy of length 128 into the strength subrow s
+of length 124. gxx,gxy and gyy are assumed to be starting at (i,j-2) if s[i][j] is sought.
+s should be 16 byte aligned*/
+inline void db_HarrisStrength_row_s(float *s,int *gxx,int *gxy,int *gyy,int nc)
+{
+    float k;
+
+    k=0.06f;
+
+    db_Filter14641_128_i(gxx,nc);
+    db_Filter14641_128_i(gxy,nc);
+    db_Filter14641_128_i(gyy,nc);
+
+#ifdef DB_USE_SIMD
+
+
+    _asm
+    {
+        mov esi,15
+        mov eax,gxx
+        mov ebx,gxy
+        mov ecx,gyy
+        mov edx,s
+
+        /*broadcast k to all positions of xmm7*/
+        movss   xmm7,k
+        shufps  xmm7,xmm7,0
+
+        /*****Warm up 1-10**************************************/
+        cvtpi2ps  xmm0,[eax+8] /*1 Convert two integers into floating point of low double-word*/
+         /*Stall*/
+        cvtpi2ps  xmm1,[ebx+8] /*4 Convert two integers into floating point of low double-word*/
+         movlhps  xmm0,xmm0    /*2 Move them to the high double-word*/
+        cvtpi2ps  xmm2,[ecx+8] /*7 Convert two integers into floating point of low double-word*/
+         movlhps  xmm1,xmm1    /*5 Move them to the high double-word*/
+        cvtpi2ps  xmm0,[eax]   /*3 Convert two integers into floating point of low double-word*/
+         movlhps  xmm2,xmm2    /*8 Move them to the high double-word*/
+        cvtpi2ps  xmm1,[ebx]   /*6 Convert two integers into floating point of low double-word*/
+         movaps   xmm3,xmm0    /*10 Copy Cxx*/
+        cvtpi2ps  xmm2,[ecx]   /*9 Convert two integers into floating point of low double-word*/
+         /*Stall*/
+loopstart:
+        /*****First part of loop 11-18***********************/
+        mulps     xmm0,xmm2     /*11 Multiply to get Gxx*Gyy*/
+         addps    xmm2,xmm3     /*12 Add to get Gxx+Gyy*/
+        cvtpi2ps  xmm4,[eax+24] /*19 Convert two integers into floating point of low double-word*/
+         mulps    xmm1,xmm1     /*13 Multiply to get Gxy*Gxy*/
+        mulps     xmm2,xmm2     /*14 Multiply to get (Gxx+Gyy)*(Gxx+Gyy)*/
+         movlhps  xmm4,xmm4     /*20 Move them to the high double-word*/
+        cvtpi2ps  xmm4,[eax+16] /*21 Convert two integers into floating point of low double-word*/
+         /*Stall*/
+        subps     xmm0,xmm1     /*15 Subtract to get Gxx*Gyy-Gxy*Gxy*/
+         mulps    xmm2,xmm7     /*16 Multiply to get k*(Gxx+Gyy)*(Gxx+Gyy)*/
+        cvtpi2ps  xmm5,[ebx+24] /*22 Convert two integers into floating point of low double-word*/
+         /*Stall*/
+        movlhps   xmm5,xmm5     /*23 Move them to the high double-word*/
+         /*Stall*/
+        cvtpi2ps  xmm5,[ebx+16] /*24 Convert two integers into floating point of low double-word*/
+         subps    xmm0,xmm2     /*17 Subtract to get Gxx*Gyy-Gxy*Gxy-k*(Gxx+Gyy)*(Gxx+Gyy)*/
+        cvtpi2ps  xmm6,[ecx+24] /*25 Convert two integers into floating point of low double-word*/
+         /*Stall*/
+        movaps    [edx],xmm0    /*18 Store*/
+        /*****Second part of loop 26-40***********************/
+         movlhps  xmm6,xmm6     /*26 Move them to the high double-word*/
+        cvtpi2ps  xmm6,[ecx+16] /*27 Convert two integers into floating point of low double-word*/
+         movaps   xmm3,xmm4     /*28 Copy Cxx*/
+        mulps     xmm4,xmm6     /*29 Multiply to get Gxx*Gyy*/
+         addps    xmm6,xmm3     /*30 Add to get Gxx+Gyy*/
+        cvtpi2ps  xmm0,[eax+40] /*(1 Next) Convert two integers into floating point of low double-word*/
+         mulps    xmm5,xmm5     /*31 Multiply to get Gxy*Gxy*/
+        cvtpi2ps  xmm1,[ebx+40] /*(4 Next) Convert two integers into floating point of low double-word*/
+         mulps    xmm6,xmm6     /*32 Multiply to get (Gxx+Gyy)*(Gxx+Gyy)*/
+        cvtpi2ps  xmm2,[ecx+40] /*(7 Next) Convert two integers into floating point of low double-word*/
+         movlhps  xmm0,xmm0     /*(2 Next) Move them to the high double-word*/
+        subps     xmm4,xmm5     /*33 Subtract to get Gxx*Gyy-Gxy*Gxy*/
+         movlhps  xmm1,xmm1     /*(5 Next) Move them to the high double-word*/
+        cvtpi2ps  xmm0,[eax+32] /*(3 Next)Convert two integers into floating point of low double-word*/
+         mulps    xmm6,xmm7     /*34 Multiply to get k*(Gxx+Gyy)*(Gxx+Gyy)*/
+        cvtpi2ps  xmm1,[ebx+32] /*(6 Next) Convert two integers into floating point of low double-word*/
+         movlhps  xmm2,xmm2     /*(8 Next) Move them to the high double-word*/
+        movaps    xmm3,xmm0     /*(10 Next) Copy Cxx*/
+         add      eax,32        /*37*/
+        subps     xmm4,xmm6     /*35 Subtract to get Gxx*Gyy-Gxy*Gxy-k*(Gxx+Gyy)*(Gxx+Gyy)*/
+         add      ebx,32        /*38*/
+        cvtpi2ps  xmm2,[ecx+32] /*(9 Next) Convert two integers into floating point of low double-word*/
+         /*Stall*/
+        movaps    [edx+16],xmm4 /*36 Store*/
+         /*Stall*/
+        add       ecx,32        /*39*/
+         add      edx,32        /*40*/
+        dec       esi           /*41*/
+        jnz loopstart
+
+        /****Cool down***************/
+        mulps    xmm0,xmm2    /*Multiply to get Gxx*Gyy*/
+        addps    xmm2,xmm3    /*Add to get Gxx+Gyy*/
+        mulps    xmm1,xmm1    /*Multiply to get Gxy*Gxy*/
+        mulps    xmm2,xmm2    /*Multiply to get (Gxx+Gyy)*(Gxx+Gyy)*/
+        subps    xmm0,xmm1    /*Subtract to get Gxx*Gyy-Gxy*Gxy*/
+        mulps    xmm2,xmm7    /*Multiply to get k*(Gxx+Gyy)*(Gxx+Gyy)*/
+        subps    xmm0,xmm2    /*Subtract to get Gxx*Gyy-Gxy*Gxy-k*(Gxx+Gyy)*(Gxx+Gyy)*/
+        movaps   [edx],xmm0   /*Store*/
+    }
+
+#else
+    float Gxx,Gxy,Gyy,det,trc;
+    int c;
+
+    //for(c=0;c<124;c++)
+    for(c=0;c<nc-4;c++)
+    {
+        Gxx=(float)gxx[c];
+        Gxy=(float)gxy[c];
+        Gyy=(float)gyy[c];
+
+        det=Gxx*Gyy-Gxy*Gxy;
+        trc=Gxx+Gyy;
+        s[c]=det-k*trc*trc;
+    }
+#endif /*DB_USE_SIMD*/
+}
+
+/*Compute the Harris corner strength of the chunk [left,top,right,bottom] of img and
+store it into the corresponding region of s. left and top have to be at least 3 and
+right and bottom have to be at most width-4,height-4*/
+inline void db_HarrisStrengthChunk_f(float **s,const float * const *img,int left,int top,int right,int bottom,
+                                      /*temp should point to at least
+                                      13*(right-left+5) of allocated memory*/
+                                      float *temp)
+{
+    float *Ix[5],*Iy[5];
+    float *gxx,*gxy,*gyy;
+    int i,chunk_width,chunk_width_p4;
+
+    chunk_width=right-left+1;
+    chunk_width_p4=chunk_width+4;
+    gxx=temp;
+    gxy=gxx+chunk_width_p4;
+    gyy=gxy+chunk_width_p4;
+    for(i=0;i<5;i++)
+    {
+        Ix[i]=gyy+chunk_width_p4+(2*i*chunk_width_p4);
+        Iy[i]=Ix[i]+chunk_width_p4;
+    }
+
+    /*Fill four rows of the wrap-around derivative buffers*/
+    for(i=top-2;i<top+2;i++) db_IxIyRow_f(Ix[i%5],Iy[i%5],img,i,left-2,chunk_width_p4);
+
+    /*For each output row*/
+    for(i=top;i<=bottom;i++)
+    {
+        /*Step the derivative buffers*/
+        db_IxIyRow_f(Ix[(i+2)%5],Iy[(i+2)%5],img,(i+2),left-2,chunk_width_p4);
+
+        /*Filter Ix2,IxIy,Iy2 vertically into gxx,gxy,gyy*/
+        db_gxx_gxy_gyy_row_f(gxx,gxy,gyy,chunk_width_p4,
+                                 Ix[(i-2)%5],Ix[(i-1)%5],Ix[i%5],Ix[(i+1)%5],Ix[(i+2)%5],
+                                 Iy[(i-2)%5],Iy[(i-1)%5],Iy[i%5],Iy[(i+1)%5],Iy[(i+2)%5]);
+
+        /*Filter gxx,gxy,gyy horizontally and compute corner response s*/
+        db_HarrisStrength_row_f(s,gxx,gxy,gyy,i,left,chunk_width);
+    }
+}
+
+/*Compute the Harris corner strength of the chunk [left,top,left+123,bottom] of img and
+store it into the corresponding region of s. left and top have to be at least 3 and
+right and bottom have to be at most width-4,height-4. The left of the region in s should
+be 16 byte aligned*/
+inline void db_HarrisStrengthChunk_u(float **s,const unsigned char * const *img,int left,int top,int bottom,
+                                      /*temp should point to at least
+                                      18*128 of allocated memory*/
+                                      int *temp, int nc)
+{
+    int *Ixx[5],*Ixy[5],*Iyy[5];
+    int *gxx,*gxy,*gyy;
+    int i;
+
+    gxx=temp;
+    gxy=gxx+128;
+    gyy=gxy+128;
+    for(i=0;i<5;i++)
+    {
+        Ixx[i]=gyy+(3*i+1)*128;
+        Ixy[i]=gyy+(3*i+2)*128;
+        Iyy[i]=gyy+(3*i+3)*128;
+    }
+
+    /*Fill four rows of the wrap-around derivative buffers*/
+    for(i=top-2;i<top+2;i++) db_IxIyRow_u(Ixx[i%5],img,i,left-2,nc);
+
+    /*For each output row*/
+    for(i=top;i<=bottom;i++)
+    {
+        /*Step the derivative buffers*/
+        db_IxIyRow_u(Ixx[(i+2)%5],img,(i+2),left-2,nc);
+
+        /*Filter Ix2,IxIy,Iy2 vertically into gxx,gxy,gyy*/
+        db_gxx_gxy_gyy_row_s(gxx,Ixx[(i-2)%5],Ixx[(i-1)%5],Ixx[i%5],Ixx[(i+1)%5],Ixx[(i+2)%5],nc);
+
+        /*Filter gxx,gxy,gyy horizontally and compute corner response s*/
+        db_HarrisStrength_row_s(s[i]+left,gxx,gxy,gyy,nc);
+    }
+
+}
+
+/*Compute Harris corner strength of img. Strength is returned for the region
+with (3,3) as upper left and (w-4,h-4) as lower right, positioned in the
+same place in s. In other words,image should be at least 7 pixels wide and 7 pixels high
+for a meaningful result*/
+void db_HarrisStrength_f(float **s,const float * const *img,int w,int h,
+                                    /*temp should point to at least
+                                    13*(chunk_width+4) of allocated memory*/
+                                    float *temp,
+                                    int chunk_width)
+{
+    int x,next_x,last,right;
+
+    last=w-4;
+    for(x=3;x<=last;x=next_x)
+    {
+        next_x=x+chunk_width;
+        right=next_x-1;
+        if(right>last) right=last;
+        /*Compute the Harris strength of a chunk*/
+        db_HarrisStrengthChunk_f(s,img,x,3,right,h-4,temp);
+    }
+}
+
+/*Compute Harris corner strength of img. Strength is returned for the region
+with (3,3) as upper left and (w-4,h-4) as lower right, positioned in the
+same place in s. In other words,image should be at least 7 pixels wide and 7 pixels high
+for a meaningful result.Moreover, the image should be overallocated by 256 bytes.
+s[i][3] should by 16 byte aligned for any i*/
+void db_HarrisStrength_u(float **s, const unsigned char * const *img,int w,int h,
+                                    /*temp should point to at least
+                                    18*128 of allocated memory*/
+                                    int *temp)
+{
+    int x,next_x,last;
+    int nc;
+
+    last=w-4;
+    for(x=3;x<=last;x=next_x)
+    {
+        next_x=x+124;
+
+        // mayban: to revert to the original full chunks state, change the line below to: nc = 128;
+        nc = db_mini(128,last-x+1);
+        //nc = 128;
+
+        /*Compute the Harris strength of a chunk*/
+        db_HarrisStrengthChunk_u(s,img,x,3,h-4,temp,nc);
+    }
+}
+
+inline float db_Max_128Aligned16_f(float *v)
+{
+#ifdef DB_USE_SIMD
+    float back;
+
+    _asm
+    {
+        mov eax,v
+
+        /*Chunk1*/
+        movaps xmm0,[eax]
+        movaps xmm1,[eax+16]
+        movaps xmm2,[eax+32]
+        movaps xmm3,[eax+48]
+        movaps xmm4,[eax+64]
+        movaps xmm5,[eax+80]
+        movaps xmm6,[eax+96]
+        movaps xmm7,[eax+112]
+
+        /*Chunk2*/
+        maxps xmm0,[eax+128]
+        maxps xmm1,[eax+144]
+        maxps xmm2,[eax+160]
+        maxps xmm3,[eax+176]
+        maxps xmm4,[eax+192]
+        maxps xmm5,[eax+208]
+        maxps xmm6,[eax+224]
+        maxps xmm7,[eax+240]
+
+        /*Chunk3*/
+        maxps xmm0,[eax+256]
+        maxps xmm1,[eax+272]
+        maxps xmm2,[eax+288]
+        maxps xmm3,[eax+304]
+        maxps xmm4,[eax+320]
+        maxps xmm5,[eax+336]
+        maxps xmm6,[eax+352]
+        maxps xmm7,[eax+368]
+
+        /*Chunk4*/
+        maxps xmm0,[eax+384]
+        maxps xmm1,[eax+400]
+        maxps xmm2,[eax+416]
+        maxps xmm3,[eax+432]
+        maxps xmm4,[eax+448]
+        maxps xmm5,[eax+464]
+        maxps xmm6,[eax+480]
+        maxps xmm7,[eax+496]
+
+        /*Collect*/
+        maxps   xmm0,xmm1
+        maxps   xmm2,xmm3
+        maxps   xmm4,xmm5
+        maxps   xmm6,xmm7
+        maxps   xmm0,xmm2
+        maxps   xmm4,xmm6
+        maxps   xmm0,xmm4
+        movhlps xmm1,xmm0
+        maxps   xmm0,xmm1
+        shufps  xmm1,xmm0,1
+        maxps   xmm0,xmm1
+        movss   back,xmm0
+    }
+
+    return(back);
+#else
+    float val,max_val;
+    float *p,*stop_p;
+    max_val=v[0];
+    for(p=v+1,stop_p=v+128;p!=stop_p;)
+    {
+        val= *p++;
+        if(val>max_val) max_val=val;
+    }
+    return(max_val);
+#endif /*DB_USE_SIMD*/
+}
+
+inline float db_Max_64Aligned16_f(float *v)
+{
+#ifdef DB_USE_SIMD
+    float back;
+
+    _asm
+    {
+        mov eax,v
+
+        /*Chunk1*/
+        movaps xmm0,[eax]
+        movaps xmm1,[eax+16]
+        movaps xmm2,[eax+32]
+        movaps xmm3,[eax+48]
+        movaps xmm4,[eax+64]
+        movaps xmm5,[eax+80]
+        movaps xmm6,[eax+96]
+        movaps xmm7,[eax+112]
+
+        /*Chunk2*/
+        maxps xmm0,[eax+128]
+        maxps xmm1,[eax+144]
+        maxps xmm2,[eax+160]
+        maxps xmm3,[eax+176]
+        maxps xmm4,[eax+192]
+        maxps xmm5,[eax+208]
+        maxps xmm6,[eax+224]
+        maxps xmm7,[eax+240]
+
+        /*Collect*/
+        maxps   xmm0,xmm1
+        maxps   xmm2,xmm3
+        maxps   xmm4,xmm5
+        maxps   xmm6,xmm7
+        maxps   xmm0,xmm2
+        maxps   xmm4,xmm6
+        maxps   xmm0,xmm4
+        movhlps xmm1,xmm0
+        maxps   xmm0,xmm1
+        shufps  xmm1,xmm0,1
+        maxps   xmm0,xmm1
+        movss   back,xmm0
+    }
+
+    return(back);
+#else
+    float val,max_val;
+    float *p,*stop_p;
+    max_val=v[0];
+    for(p=v+1,stop_p=v+64;p!=stop_p;)
+    {
+        val= *p++;
+        if(val>max_val) max_val=val;
+    }
+    return(max_val);
+#endif /*DB_USE_SIMD*/
+}
+
+inline float db_Max_32Aligned16_f(float *v)
+{
+#ifdef DB_USE_SIMD
+    float back;
+
+    _asm
+    {
+        mov eax,v
+
+        /*Chunk1*/
+        movaps xmm0,[eax]
+        movaps xmm1,[eax+16]
+        movaps xmm2,[eax+32]
+        movaps xmm3,[eax+48]
+        movaps xmm4,[eax+64]
+        movaps xmm5,[eax+80]
+        movaps xmm6,[eax+96]
+        movaps xmm7,[eax+112]
+
+        /*Collect*/
+        maxps   xmm0,xmm1
+        maxps   xmm2,xmm3
+        maxps   xmm4,xmm5
+        maxps   xmm6,xmm7
+        maxps   xmm0,xmm2
+        maxps   xmm4,xmm6
+        maxps   xmm0,xmm4
+        movhlps xmm1,xmm0
+        maxps   xmm0,xmm1
+        shufps  xmm1,xmm0,1
+        maxps   xmm0,xmm1
+        movss   back,xmm0
+    }
+
+    return(back);
+#else
+    float val,max_val;
+    float *p,*stop_p;
+    max_val=v[0];
+    for(p=v+1,stop_p=v+32;p!=stop_p;)
+    {
+        val= *p++;
+        if(val>max_val) max_val=val;
+    }
+    return(max_val);
+#endif /*DB_USE_SIMD*/
+}
+
+inline float db_Max_16Aligned16_f(float *v)
+{
+#ifdef DB_USE_SIMD
+    float back;
+
+    _asm
+    {
+        mov eax,v
+
+        /*Chunk1*/
+        movaps xmm0,[eax]
+        movaps xmm1,[eax+16]
+        movaps xmm2,[eax+32]
+        movaps xmm3,[eax+48]
+
+        /*Collect*/
+        maxps   xmm0,xmm1
+        maxps   xmm2,xmm3
+        maxps   xmm0,xmm2
+        movhlps xmm1,xmm0
+        maxps   xmm0,xmm1
+        shufps  xmm1,xmm0,1
+        maxps   xmm0,xmm1
+        movss   back,xmm0
+    }
+
+    return(back);
+#else
+    float val,max_val;
+    float *p,*stop_p;
+    max_val=v[0];
+    for(p=v+1,stop_p=v+16;p!=stop_p;)
+    {
+        val= *p++;
+        if(val>max_val) max_val=val;
+    }
+    return(max_val);
+#endif /*DB_USE_SIMD*/
+}
+
+inline float db_Max_8Aligned16_f(float *v)
+{
+#ifdef DB_USE_SIMD
+    float back;
+
+    _asm
+    {
+        mov eax,v
+
+        /*Chunk1*/
+        movaps xmm0,[eax]
+        movaps xmm1,[eax+16]
+
+        /*Collect*/
+        maxps   xmm0,xmm1
+        movhlps xmm1,xmm0
+        maxps   xmm0,xmm1
+        shufps  xmm1,xmm0,1
+        maxps   xmm0,xmm1
+        movss   back,xmm0
+    }
+
+    return(back);
+#else
+    float val,max_val;
+    float *p,*stop_p;
+    max_val=v[0];
+    for(p=v+1,stop_p=v+8;p!=stop_p;)
+    {
+        val= *p++;
+        if(val>max_val) max_val=val;
+    }
+    return(max_val);
+#endif /*DB_USE_SIMD*/
+}
+
+inline float db_Max_Aligned16_f(float *v,int size)
+{
+    float val,max_val;
+    float *stop_v;
+
+    max_val=v[0];
+    for(;size>=128;size-=128)
+    {
+        val=db_Max_128Aligned16_f(v);
+        v+=128;
+        if(val>max_val) max_val=val;
+    }
+    if(size&64)
+    {
+        val=db_Max_64Aligned16_f(v);
+        v+=64;
+        if(val>max_val) max_val=val;
+    }
+    if(size&32)
+    {
+        val=db_Max_32Aligned16_f(v);
+        v+=32;
+        if(val>max_val) max_val=val;
+    }
+    if(size&16)
+    {
+        val=db_Max_16Aligned16_f(v);
+        v+=16;
+        if(val>max_val) max_val=val;
+    }
+    if(size&8)
+    {
+        val=db_Max_8Aligned16_f(v);
+        v+=8;
+        if(val>max_val) max_val=val;
+    }
+    if(size&7)
+    {
+        for(stop_v=v+(size&7);v!=stop_v;)
+        {
+            val= *v++;
+            if(val>max_val) max_val=val;
+        }
+    }
+
+    return(max_val);
+}
+
+/*Find maximum value of img in the region starting at (left,top)
+and with width w and height h. img[left] should be 16 byte aligned*/
+float db_MaxImage_Aligned16_f(float **img,int left,int top,int w,int h)
+{
+    float val,max_val;
+    int i,stop_i;
+
+    if(w && h)
+    {
+        stop_i=top+h;
+        max_val=img[top][left];
+
+        for(i=top;i<stop_i;i++)
+        {
+            val=db_Max_Aligned16_f(img[i]+left,w);
+            if(val>max_val) max_val=val;
+        }
+        return(max_val);
+    }
+    return(0.0);
+}
+
+inline void db_MaxVector_128_Aligned16_f(float *m,float *v1,float *v2)
+{
+#ifdef DB_USE_SIMD
+    _asm
+    {
+        mov eax,v1
+        mov ebx,v2
+        mov ecx,m
+
+        /*Chunk1*/
+        movaps xmm0,[eax]
+        movaps xmm1,[eax+16]
+        movaps xmm2,[eax+32]
+        movaps xmm3,[eax+48]
+        movaps xmm4,[eax+64]
+        movaps xmm5,[eax+80]
+        movaps xmm6,[eax+96]
+        movaps xmm7,[eax+112]
+        maxps  xmm0,[ebx]
+        maxps  xmm1,[ebx+16]
+        maxps  xmm2,[ebx+32]
+        maxps  xmm3,[ebx+48]
+        maxps  xmm4,[ebx+64]
+        maxps  xmm5,[ebx+80]
+        maxps  xmm6,[ebx+96]
+        maxps  xmm7,[ebx+112]
+        movaps [ecx],xmm0
+        movaps [ecx+16],xmm1
+        movaps [ecx+32],xmm2
+        movaps [ecx+48],xmm3
+        movaps [ecx+64],xmm4
+        movaps [ecx+80],xmm5
+        movaps [ecx+96],xmm6
+        movaps [ecx+112],xmm7
+
+        /*Chunk2*/
+        movaps xmm0,[eax+128]
+        movaps xmm1,[eax+144]
+        movaps xmm2,[eax+160]
+        movaps xmm3,[eax+176]
+        movaps xmm4,[eax+192]
+        movaps xmm5,[eax+208]
+        movaps xmm6,[eax+224]
+        movaps xmm7,[eax+240]
+        maxps  xmm0,[ebx+128]
+        maxps  xmm1,[ebx+144]
+        maxps  xmm2,[ebx+160]
+        maxps  xmm3,[ebx+176]
+        maxps  xmm4,[ebx+192]
+        maxps  xmm5,[ebx+208]
+        maxps  xmm6,[ebx+224]
+        maxps  xmm7,[ebx+240]
+        movaps [ecx+128],xmm0
+        movaps [ecx+144],xmm1
+        movaps [ecx+160],xmm2
+        movaps [ecx+176],xmm3
+        movaps [ecx+192],xmm4
+        movaps [ecx+208],xmm5
+        movaps [ecx+224],xmm6
+        movaps [ecx+240],xmm7
+
+        /*Chunk3*/
+        movaps xmm0,[eax+256]
+        movaps xmm1,[eax+272]
+        movaps xmm2,[eax+288]
+        movaps xmm3,[eax+304]
+        movaps xmm4,[eax+320]
+        movaps xmm5,[eax+336]
+        movaps xmm6,[eax+352]
+        movaps xmm7,[eax+368]
+        maxps  xmm0,[ebx+256]
+        maxps  xmm1,[ebx+272]
+        maxps  xmm2,[ebx+288]
+        maxps  xmm3,[ebx+304]
+        maxps  xmm4,[ebx+320]
+        maxps  xmm5,[ebx+336]
+        maxps  xmm6,[ebx+352]
+        maxps  xmm7,[ebx+368]
+        movaps [ecx+256],xmm0
+        movaps [ecx+272],xmm1
+        movaps [ecx+288],xmm2
+        movaps [ecx+304],xmm3
+        movaps [ecx+320],xmm4
+        movaps [ecx+336],xmm5
+        movaps [ecx+352],xmm6
+        movaps [ecx+368],xmm7
+
+        /*Chunk4*/
+        movaps xmm0,[eax+384]
+        movaps xmm1,[eax+400]
+        movaps xmm2,[eax+416]
+        movaps xmm3,[eax+432]
+        movaps xmm4,[eax+448]
+        movaps xmm5,[eax+464]
+        movaps xmm6,[eax+480]
+        movaps xmm7,[eax+496]
+        maxps  xmm0,[ebx+384]
+        maxps  xmm1,[ebx+400]
+        maxps  xmm2,[ebx+416]
+        maxps  xmm3,[ebx+432]
+        maxps  xmm4,[ebx+448]
+        maxps  xmm5,[ebx+464]
+        maxps  xmm6,[ebx+480]
+        maxps  xmm7,[ebx+496]
+        movaps [ecx+384],xmm0
+        movaps [ecx+400],xmm1
+        movaps [ecx+416],xmm2
+        movaps [ecx+432],xmm3
+        movaps [ecx+448],xmm4
+        movaps [ecx+464],xmm5
+        movaps [ecx+480],xmm6
+        movaps [ecx+496],xmm7
+    }
+#else
+    int i;
+    float a,b;
+    for(i=0;i<128;i++)
+    {
+        a=v1[i];
+        b=v2[i];
+        if(a>=b) m[i]=a;
+        else m[i]=b;
+    }
+#endif /*DB_USE_SIMD*/
+}
+
+inline void db_MaxVector_128_SecondSourceDestAligned16_f(float *m,float *v1,float *v2)
+{
+#ifdef DB_USE_SIMD
+    _asm
+    {
+        mov eax,v1
+        mov ebx,v2
+        mov ecx,m
+
+        /*Chunk1*/
+        movups xmm0,[eax]
+        movups xmm1,[eax+16]
+        movups xmm2,[eax+32]
+        movups xmm3,[eax+48]
+        movups xmm4,[eax+64]
+        movups xmm5,[eax+80]
+        movups xmm6,[eax+96]
+        movups xmm7,[eax+112]
+        maxps  xmm0,[ebx]
+        maxps  xmm1,[ebx+16]
+        maxps  xmm2,[ebx+32]
+        maxps  xmm3,[ebx+48]
+        maxps  xmm4,[ebx+64]
+        maxps  xmm5,[ebx+80]
+        maxps  xmm6,[ebx+96]
+        maxps  xmm7,[ebx+112]
+        movaps [ecx],xmm0
+        movaps [ecx+16],xmm1
+        movaps [ecx+32],xmm2
+        movaps [ecx+48],xmm3
+        movaps [ecx+64],xmm4
+        movaps [ecx+80],xmm5
+        movaps [ecx+96],xmm6
+        movaps [ecx+112],xmm7
+
+        /*Chunk2*/
+        movups xmm0,[eax+128]
+        movups xmm1,[eax+144]
+        movups xmm2,[eax+160]
+        movups xmm3,[eax+176]
+        movups xmm4,[eax+192]
+        movups xmm5,[eax+208]
+        movups xmm6,[eax+224]
+        movups xmm7,[eax+240]
+        maxps  xmm0,[ebx+128]
+        maxps  xmm1,[ebx+144]
+        maxps  xmm2,[ebx+160]
+        maxps  xmm3,[ebx+176]
+        maxps  xmm4,[ebx+192]
+        maxps  xmm5,[ebx+208]
+        maxps  xmm6,[ebx+224]
+        maxps  xmm7,[ebx+240]
+        movaps [ecx+128],xmm0
+        movaps [ecx+144],xmm1
+        movaps [ecx+160],xmm2
+        movaps [ecx+176],xmm3
+        movaps [ecx+192],xmm4
+        movaps [ecx+208],xmm5
+        movaps [ecx+224],xmm6
+        movaps [ecx+240],xmm7
+
+        /*Chunk3*/
+        movups xmm0,[eax+256]
+        movups xmm1,[eax+272]
+        movups xmm2,[eax+288]
+        movups xmm3,[eax+304]
+        movups xmm4,[eax+320]
+        movups xmm5,[eax+336]
+        movups xmm6,[eax+352]
+        movups xmm7,[eax+368]
+        maxps  xmm0,[ebx+256]
+        maxps  xmm1,[ebx+272]
+        maxps  xmm2,[ebx+288]
+        maxps  xmm3,[ebx+304]
+        maxps  xmm4,[ebx+320]
+        maxps  xmm5,[ebx+336]
+        maxps  xmm6,[ebx+352]
+        maxps  xmm7,[ebx+368]
+        movaps [ecx+256],xmm0
+        movaps [ecx+272],xmm1
+        movaps [ecx+288],xmm2
+        movaps [ecx+304],xmm3
+        movaps [ecx+320],xmm4
+        movaps [ecx+336],xmm5
+        movaps [ecx+352],xmm6
+        movaps [ecx+368],xmm7
+
+        /*Chunk4*/
+        movups xmm0,[eax+384]
+        movups xmm1,[eax+400]
+        movups xmm2,[eax+416]
+        movups xmm3,[eax+432]
+        movups xmm4,[eax+448]
+        movups xmm5,[eax+464]
+        movups xmm6,[eax+480]
+        movups xmm7,[eax+496]
+        maxps  xmm0,[ebx+384]
+        maxps  xmm1,[ebx+400]
+        maxps  xmm2,[ebx+416]
+        maxps  xmm3,[ebx+432]
+        maxps  xmm4,[ebx+448]
+        maxps  xmm5,[ebx+464]
+        maxps  xmm6,[ebx+480]
+        maxps  xmm7,[ebx+496]
+        movaps [ecx+384],xmm0
+        movaps [ecx+400],xmm1
+        movaps [ecx+416],xmm2
+        movaps [ecx+432],xmm3
+        movaps [ecx+448],xmm4
+        movaps [ecx+464],xmm5
+        movaps [ecx+480],xmm6
+        movaps [ecx+496],xmm7
+    }
+#else
+    int i;
+    float a,b;
+    for(i=0;i<128;i++)
+    {
+        a=v1[i];
+        b=v2[i];
+        if(a>=b) m[i]=a;
+        else m[i]=b;
+    }
+#endif /*DB_USE_SIMD*/
+}
+
+/*Compute Max-suppression-filtered image for a chunk of sf starting at (left,top), of width 124 and
+stopping at bottom. The output is shifted two steps left and overwrites 128 elements for each row.
+The input s should be of width at least 128, and exist for 2 pixels outside the specified region.
+s[i][left-2] and sf[i][left-2] should be 16 byte aligned. Top must be at least 3*/
+inline void db_MaxSuppressFilterChunk_5x5_Aligned16_f(float **sf,float **s,int left,int top,int bottom,
+                                      /*temp should point to at least
+                                      6*132 floats of 16-byte-aligned allocated memory*/
+                                      float *temp)
+{
+#ifdef DB_USE_SIMD
+    int i,lm2;
+    float *two[4];
+    float *four,*five;
+
+    lm2=left-2;
+
+    /*Set pointers to pre-allocated memory*/
+    four=temp;
+    five=four+132;
+    for(i=0;i<4;i++)
+    {
+        two[i]=five+(i+1)*132;
+    }
+
+    /*Set rests of four and five to zero to avoid
+    floating point exceptions*/
+    for(i=129;i<132;i++)
+    {
+        four[i]=0.0;
+        five[i]=0.0;
+    }
+
+    /*Fill three rows of the wrap-around max buffers*/
+    for(i=top-3;i<top;i++) db_MaxVector_128_Aligned16_f(two[i&3],s[i+1]+lm2,s[i+2]+lm2);
+
+    /*For each output row*/
+    for(;i<=bottom;i++)
+    {
+        /*Compute max of the lowest pair of rows in the five row window*/
+        db_MaxVector_128_Aligned16_f(two[i&3],s[i+1]+lm2,s[i+2]+lm2);
+        /*Compute max of the lowest and highest pair of rows in the five row window*/
+        db_MaxVector_128_Aligned16_f(four,two[i&3],two[(i-3)&3]);
+        /*Compute max of all rows*/
+        db_MaxVector_128_Aligned16_f(five,four,two[(i-1)&3]);
+        /*Compute max of 2x5 chunks*/
+        db_MaxVector_128_SecondSourceDestAligned16_f(five,five+1,five);
+        /*Compute max of pairs of 2x5 chunks*/
+        db_MaxVector_128_SecondSourceDestAligned16_f(five,five+3,five);
+        /*Compute max of pairs of 5x5 except middle*/
+        db_MaxVector_128_SecondSourceDestAligned16_f(sf[i]+lm2,four+2,five);
+    }
+
+#else
+    int i,j,right;
+    float sv;
+
+    right=left+128;
+    for(i=top;i<=bottom;i++) for(j=left;j<right;j++)
+    {
+        sv=s[i][j];
+
+        if( sv>s[i-2][j-2] && sv>s[i-2][j-1] && sv>s[i-2][j] && sv>s[i-2][j+1] && sv>s[i-2][j+2] &&
+            sv>s[i-1][j-2] && sv>s[i-1][j-1] && sv>s[i-1][j] && sv>s[i-1][j+1] && sv>s[i-1][j+2] &&
+            sv>s[  i][j-2] && sv>s[  i][j-1] &&                 sv>s[  i][j+1] && sv>s[  i][j+2] &&
+            sv>s[i+1][j-2] && sv>s[i+1][j-1] && sv>s[i+1][j] && sv>s[i+1][j+1] && sv>s[i+1][j+2] &&
+            sv>s[i+2][j-2] && sv>s[i+2][j-1] && sv>s[i+2][j] && sv>s[i+2][j+1] && sv>s[i+2][j+2])
+        {
+            sf[i][j-2]=0.0;
+        }
+        else sf[i][j-2]=sv;
+    }
+#endif /*DB_USE_SIMD*/
+}
+
+/*Compute Max-suppression-filtered image for a chunk of sf starting at (left,top) and
+stopping at bottom. The output is shifted two steps left. The input s should exist for 2 pixels
+outside the specified region. s[i][left-2] and sf[i][left-2] should be 16 byte aligned.
+Top must be at least 3. Reading and writing from and to the input and output images is done
+as if the region had a width equal to a multiple of 124. If this is not the case, the images
+should be over-allocated and the input cleared for a sufficient region*/
+void db_MaxSuppressFilter_5x5_Aligned16_f(float **sf,float **s,int left,int top,int right,int bottom,
+                                          /*temp should point to at least
+                                          6*132 floats of 16-byte-aligned allocated memory*/
+                                          float *temp)
+{
+    int x,next_x;
+
+    for(x=left;x<=right;x=next_x)
+    {
+        next_x=x+124;
+        db_MaxSuppressFilterChunk_5x5_Aligned16_f(sf,s,x,top,bottom,temp);
+    }
+}
+
+/*Extract corners from the chunk (left,top) to (right,bottom). Store in x_temp,y_temp and s_temp
+which should point to space of at least as many positions as there are pixels in the chunk*/
+inline int db_CornersFromChunk(float **strength,int left,int top,int right,int bottom,float threshold,double *x_temp,double *y_temp,double *s_temp)
+{
+    int i,j,nr;
+    float s;
+
+    nr=0;
+    for(i=top;i<=bottom;i++) for(j=left;j<=right;j++)
+    {
+        s=strength[i][j];
+
+        if(s>=threshold &&
+            s>strength[i-2][j-2] && s>strength[i-2][j-1] && s>strength[i-2][j] && s>strength[i-2][j+1] && s>strength[i-2][j+2] &&
+            s>strength[i-1][j-2] && s>strength[i-1][j-1] && s>strength[i-1][j] && s>strength[i-1][j+1] && s>strength[i-1][j+2] &&
+            s>strength[  i][j-2] && s>strength[  i][j-1] &&                       s>strength[  i][j+1] && s>strength[  i][j+2] &&
+            s>strength[i+1][j-2] && s>strength[i+1][j-1] && s>strength[i+1][j] && s>strength[i+1][j+1] && s>strength[i+1][j+2] &&
+            s>strength[i+2][j-2] && s>strength[i+2][j-1] && s>strength[i+2][j] && s>strength[i+2][j+1] && s>strength[i+2][j+2])
+        {
+            x_temp[nr]=(double) j;
+            y_temp[nr]=(double) i;
+            s_temp[nr]=(double) s;
+            nr++;
+        }
+    }
+    return(nr);
+}
+
+
+//Sub-pixel accuracy using 2D quadratic interpolation.(YCJ)
+inline void db_SubPixel(float **strength, const double xd, const double yd, double &xs, double &ys)
+{
+    int x = (int) xd;
+    int y = (int) yd;
+
+    float fxx = strength[y][x-1] - strength[y][x] - strength[y][x] + strength[y][x+1];
+    float fyy = strength[y-1][x] - strength[y][x] - strength[y][x] + strength[y+1][x];
+    float fxy = (strength[y-1][x-1] - strength[y-1][x+1] - strength[y+1][x-1] + strength[y+1][x+1])/(float)4.0;
+
+    float denom = (fxx * fyy - fxy * fxy) * (float) 2.0;
+
+    xs = xd;
+    ys = yd;
+
+    if ( db_absf(denom) <= FLT_EPSILON )
+    {
+        return;
+    }
+    else
+    {
+        float fx = strength[y][x+1] - strength[y][x-1];
+        float fy = strength[y+1][x] - strength[y-1][x];
+
+        float dx = (fyy * fx - fxy * fy) / denom;
+        float dy = (fxx * fy - fxy * fx) / denom;
+
+        if ( db_absf(dx) > 1.0 || db_absf(dy) > 1.0 )
+        {
+            return;
+        }
+        else
+        {
+            xs -= dx;
+            ys -= dy;
+        }
+    }
+
+    return;
+}
+
+/*Extract corners from the image part from (left,top) to (right,bottom).
+Store in x and y, extracting at most satnr corners in each block of size (bw,bh).
+The pointer temp_d should point to at least 5*bw*bh positions.
+area_factor holds how many corners max to extract per 10000 pixels*/
+void db_ExtractCornersSaturated(float **strength,int left,int top,int right,int bottom,
+                                int bw,int bh,unsigned long area_factor,
+                                float threshold,double *temp_d,
+                                double *x_coord,double *y_coord,int *nr_corners)
+{
+    double *x_temp,*y_temp,*s_temp,*select_temp;
+    double loc_thresh;
+    unsigned long bwbh,area,saturation;
+    int x,next_x,last_x;
+    int y,next_y,last_y;
+    int nr,nr_points,i,stop;
+
+    bwbh=bw*bh;
+    x_temp=temp_d;
+    y_temp=x_temp+bwbh;
+    s_temp=y_temp+bwbh;
+    select_temp=s_temp+bwbh;
+
+#ifdef DB_SUB_PIXEL
+    // subpixel processing may sometimes push the corner ourside the real border
+    // increasing border size:
+    left++;
+    top++;
+    bottom--;
+    right--;
+#endif /*DB_SUB_PIXEL*/
+
+    nr_points=0;
+    for(y=top;y<=bottom;y=next_y)
+    {
+        next_y=y+bh;
+        last_y=next_y-1;
+        if(last_y>bottom) last_y=bottom;
+        for(x=left;x<=right;x=next_x)
+        {
+            next_x=x+bw;
+            last_x=next_x-1;
+            if(last_x>right) last_x=right;
+
+            area=(last_x-x+1)*(last_y-y+1);
+            saturation=(area*area_factor)/10000;
+            nr=db_CornersFromChunk(strength,x,y,last_x,last_y,threshold,x_temp,y_temp,s_temp);
+            if(nr)
+            {
+                if(((unsigned long)nr)>saturation) loc_thresh=db_LeanQuickSelect(s_temp,nr,nr-saturation,select_temp);
+                else loc_thresh=threshold;
+
+                stop=nr_points+saturation;
+                for(i=0;(i<nr)&&(nr_points<stop);i++)
+                {
+                    if(s_temp[i]>=loc_thresh)
+                    {
+                        #ifdef DB_SUB_PIXEL
+                               db_SubPixel(strength, x_temp[i], y_temp[i], x_coord[nr_points], y_coord[nr_points]);
+                        #else
+                               x_coord[nr_points]=x_temp[i];
+                               y_coord[nr_points]=y_temp[i];
+                        #endif
+
+                        nr_points++;
+                    }
+                }
+            }
+        }
+    }
+    *nr_corners=nr_points;
+}
+
+db_CornerDetector_f::db_CornerDetector_f()
+{
+    m_w=0; m_h=0;
+}
+
+db_CornerDetector_f::~db_CornerDetector_f()
+{
+    Clean();
+}
+
+void db_CornerDetector_f::Clean()
+{
+    if(m_w!=0)
+    {
+        delete [] m_temp_f;
+        delete [] m_temp_d;
+        db_FreeStrengthImage_f(m_strength_mem,m_strength,m_h);
+    }
+    m_w=0; m_h=0;
+}
+
+unsigned long db_CornerDetector_f::Init(int im_width,int im_height,int target_nr_corners,
+                            int nr_horizontal_blocks,int nr_vertical_blocks,
+                            double absolute_threshold,double relative_threshold)
+{
+    int chunkwidth=208;
+    int block_width,block_height;
+    unsigned long area_factor;
+    int active_width,active_height;
+
+    active_width=db_maxi(1,im_width-10);
+    active_height=db_maxi(1,im_height-10);
+    block_width=db_maxi(1,active_width/nr_horizontal_blocks);
+    block_height=db_maxi(1,active_height/nr_vertical_blocks);
+
+    area_factor=db_minl(1000,db_maxl(1,(long)(10000.0*((double)target_nr_corners)/
+        (((double)active_width)*((double)active_height)))));
+
+    return(Start(im_width,im_height,block_width,block_height,area_factor,
+        absolute_threshold,relative_threshold,chunkwidth));
+}
+
+unsigned long db_CornerDetector_f::Start(int im_width,int im_height,
+                             int block_width,int block_height,unsigned long area_factor,
+                             double absolute_threshold,double relative_threshold,int chunkwidth)
+{
+    Clean();
+
+    m_w=im_width;
+    m_h=im_height;
+    m_cw=chunkwidth;
+    m_bw=block_width;
+    m_bh=block_height;
+    m_area_factor=area_factor;
+    m_r_thresh=relative_threshold;
+    m_a_thresh=absolute_threshold;
+    m_max_nr=db_maxl(1,1+(m_w*m_h*m_area_factor)/10000);
+
+    m_temp_f=new float[13*(m_cw+4)];
+    m_temp_d=new double[5*m_bw*m_bh];
+    m_strength=db_AllocStrengthImage_f(&m_strength_mem,m_w,m_h);
+
+    return(m_max_nr);
+}
+
+void db_CornerDetector_f::DetectCorners(const float * const *img,double *x_coord,double *y_coord,int *nr_corners) const
+{
+    float max_val,threshold;
+
+    db_HarrisStrength_f(m_strength,img,m_w,m_h,m_temp_f,m_cw);
+
+    if(m_r_thresh)
+    {
+        max_val=db_MaxImage_Aligned16_f(m_strength,3,3,m_w-6,m_h-6);
+        threshold= (float) db_maxd(m_a_thresh,max_val*m_r_thresh);
+    }
+    else threshold= (float) m_a_thresh;
+
+    db_ExtractCornersSaturated(m_strength,BORDER,BORDER,m_w-BORDER-1,m_h-BORDER-1,m_bw,m_bh,m_area_factor,threshold,
+        m_temp_d,x_coord,y_coord,nr_corners);
+}
+
+db_CornerDetector_u::db_CornerDetector_u()
+{
+    m_w=0; m_h=0;
+}
+
+db_CornerDetector_u::~db_CornerDetector_u()
+{
+    Clean();
+}
+
+db_CornerDetector_u::db_CornerDetector_u(const db_CornerDetector_u& cd)
+{
+    Start(cd.m_w, cd.m_h, cd.m_bw, cd.m_bh, cd.m_area_factor,
+        cd.m_a_thresh, cd.m_r_thresh);
+}
+
+db_CornerDetector_u& db_CornerDetector_u::operator=(const db_CornerDetector_u& cd)
+{
+    if ( this == &cd ) return *this;
+
+    Clean();
+
+    Start(cd.m_w, cd.m_h, cd.m_bw, cd.m_bh, cd.m_area_factor,
+        cd.m_a_thresh, cd.m_r_thresh);
+
+    return *this;
+}
+
+void db_CornerDetector_u::Clean()
+{
+    if(m_w!=0)
+    {
+        delete [] m_temp_i;
+        delete [] m_temp_d;
+        db_FreeStrengthImage_f(m_strength_mem,m_strength,m_h);
+    }
+    m_w=0; m_h=0;
+}
+
+unsigned long db_CornerDetector_u::Init(int im_width,int im_height,int target_nr_corners,
+                            int nr_horizontal_blocks,int nr_vertical_blocks,
+                            double absolute_threshold,double relative_threshold)
+{
+    int block_width,block_height;
+    unsigned long area_factor;
+    int active_width,active_height;
+
+    active_width=db_maxi(1,im_width-10);
+    active_height=db_maxi(1,im_height-10);
+    block_width=db_maxi(1,active_width/nr_horizontal_blocks);
+    block_height=db_maxi(1,active_height/nr_vertical_blocks);
+
+    area_factor=db_minl(1000,db_maxl(1,(long)(10000.0*((double)target_nr_corners)/
+        (((double)active_width)*((double)active_height)))));
+
+    return(Start(im_width,im_height,block_width,block_height,area_factor,
+        16.0*absolute_threshold,relative_threshold));
+}
+
+unsigned long db_CornerDetector_u::Start(int im_width,int im_height,
+                             int block_width,int block_height,unsigned long area_factor,
+                             double absolute_threshold,double relative_threshold)
+{
+    Clean();
+
+    m_w=im_width;
+    m_h=im_height;
+    m_bw=block_width;
+    m_bh=block_height;
+    m_area_factor=area_factor;
+    m_r_thresh=relative_threshold;
+    m_a_thresh=absolute_threshold;
+    m_max_nr=db_maxl(1,1+(m_w*m_h*m_area_factor)/10000);
+
+    m_temp_i=new int[18*128];
+    m_temp_d=new double[5*m_bw*m_bh];
+    m_strength=db_AllocStrengthImage_f(&m_strength_mem,m_w,m_h);
+
+    return(m_max_nr);
+}
+
+void db_CornerDetector_u::DetectCorners(const unsigned char * const *img,double *x_coord,double *y_coord,int *nr_corners,
+                                        const unsigned char * const *msk, unsigned char fgnd) const
+{
+    float max_val,threshold;
+
+    db_HarrisStrength_u(m_strength,img,m_w,m_h,m_temp_i);
+
+
+    if(m_r_thresh)
+    {
+        max_val=db_MaxImage_Aligned16_f(m_strength,3,3,m_w-6,m_h-6);
+        threshold= (float) db_maxd(m_a_thresh,max_val*m_r_thresh);
+    }
+    else threshold= (float) m_a_thresh;
+
+    db_ExtractCornersSaturated(m_strength,BORDER,BORDER,m_w-BORDER-1,m_h-BORDER-1,m_bw,m_bh,m_area_factor,threshold,
+        m_temp_d,x_coord,y_coord,nr_corners);
+
+
+    if ( msk )
+    {
+        int nr_corners_mask=0;
+
+        for ( int i = 0; i < *nr_corners; ++i)
+        {
+            int cor_x = db_roundi(*(x_coord+i));
+            int cor_y = db_roundi(*(y_coord+i));
+            if ( msk[cor_y][cor_x] == fgnd )
+            {
+                x_coord[nr_corners_mask] = x_coord[i];
+                y_coord[nr_corners_mask] = y_coord[i];
+                nr_corners_mask++;
+            }
+        }
+        *nr_corners = nr_corners_mask;
+    }
+}
+
+void db_CornerDetector_u::ExtractCorners(float ** strength, double *x_coord, double *y_coord, int *nr_corners) {
+    if ( m_w!=0 )
+        db_ExtractCornersSaturated(strength,BORDER,BORDER,m_w-BORDER-1,m_h-BORDER-1,m_bw,m_bh,m_area_factor,float(m_a_thresh),
+            m_temp_d,x_coord,y_coord,nr_corners);
+}
+
diff --git a/perftests/panorama/feature_stab/db_vlvm/db_feature_detection.h b/perftests/panorama/feature_stab/db_vlvm/db_feature_detection.h
new file mode 100644
index 0000000..68ffcc9
--- /dev/null
+++ b/perftests/panorama/feature_stab/db_vlvm/db_feature_detection.h
@@ -0,0 +1,179 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+/*$Id: db_feature_detection.h,v 1.3 2011/06/17 14:03:30 mbansal Exp $*/
+
+#ifndef DB_FEATURE_DETECTION_H
+#define DB_FEATURE_DETECTION_H
+
+/*****************************************************************
+*    Lean and mean begins here                                   *
+*****************************************************************/
+/*!
+ * \defgroup FeatureDetection Feature Detection
+ */
+#include "db_utilities.h"
+#include "db_utilities_constants.h"
+#include <stdlib.h> //for NULL
+
+/*!
+ * \class db_CornerDetector_f
+ * \ingroup FeatureDetection
+ * \brief Harris corner detector for float images.
+ *
+ *  This class performs Harris corner extraction on *float* images managed
+ * with functions in \ref LMImageBasicUtilities.
+ */
+class DB_API db_CornerDetector_f
+{
+public:
+    db_CornerDetector_f();
+    ~db_CornerDetector_f();
+
+    /*!
+     * Set parameters and pre-allocate memory. Return an upper bound
+     * on the number of corners detected in one frame.
+     * \param im_width      width
+     * \param im_height     height
+     * \param target_nr_corners
+     * \param nr_horizontal_blocks
+     * \param nr_vertical_blocks
+     * \param absolute_threshold
+     * \param relative_threshold
+     */
+    unsigned long Init(int im_width,int im_height,
+                            int target_nr_corners=DB_DEFAULT_TARGET_NR_CORNERS,
+                            int nr_horizontal_blocks=DB_DEFAULT_NR_FEATURE_BLOCKS,
+                            int nr_vertical_blocks=DB_DEFAULT_NR_FEATURE_BLOCKS,
+                            double absolute_threshold=DB_DEFAULT_ABS_CORNER_THRESHOLD,
+                            double relative_threshold=DB_DEFAULT_REL_CORNER_THRESHOLD);
+
+    /*!
+     * Detect the corners.
+     * x_coord and y_coord should be pre-allocated arrays of length returned by Init().
+     * \param img   row array pointer
+     * \param x_coord   corner locations
+     * \param y_coord   corner locations
+     * \param nr_corners    actual number of corners computed
+     */
+    void DetectCorners(const float * const *img,double *x_coord,double *y_coord,int *nr_corners) const;
+    void SetAbsoluteThreshold(double a_thresh) { m_a_thresh = a_thresh; };
+    void SetRelativeThreshold(double r_thresh) { m_r_thresh = r_thresh; };
+protected:
+    void Clean();
+    unsigned long Start(int im_width,int im_height,
+            int block_width,int block_height,unsigned long area_factor,
+            double absolute_threshold,double relative_threshold,int chunkwidth);
+
+    int m_w,m_h,m_cw,m_bw,m_bh;
+    /*Area factor holds the maximum number of corners to detect
+    per 10000 pixels*/
+    unsigned long m_area_factor,m_max_nr;
+    double m_a_thresh,m_r_thresh;
+    float *m_temp_f;
+    double *m_temp_d;
+    float **m_strength,*m_strength_mem;
+};
+/*!
+ * \class db_CornerDetector_u
+ * \ingroup FeatureDetection
+ * \brief Harris corner detector for byte images.
+ *
+ *  This class performs Harris corner extraction on *byte* images managed
+ * with functions in \ref LMImageBasicUtilities.
+ */
+class DB_API db_CornerDetector_u
+{
+public:
+    db_CornerDetector_u();
+    virtual ~db_CornerDetector_u();
+
+    /*!
+     Copy ctor duplicates settings.
+     Memory is not copied.
+     */
+    db_CornerDetector_u(const db_CornerDetector_u& cd);
+    /*!
+     Assignment optor duplicates settings.
+     Memory not copied.
+     */
+    db_CornerDetector_u& operator=(const db_CornerDetector_u& cd);
+
+    /*!
+     * Set parameters and pre-allocate memory. Return an upper bound
+     * on the number of corners detected in one frame
+     */
+    virtual unsigned long Init(int im_width,int im_height,
+                            int target_nr_corners=DB_DEFAULT_TARGET_NR_CORNERS,
+                            int nr_horizontal_blocks=DB_DEFAULT_NR_FEATURE_BLOCKS,
+                            int nr_vertical_blocks=DB_DEFAULT_NR_FEATURE_BLOCKS,
+                            double absolute_threshold=DB_DEFAULT_ABS_CORNER_THRESHOLD,
+                            double relative_threshold=DB_DEFAULT_REL_CORNER_THRESHOLD);
+
+    /*!
+     * Detect the corners.
+     * Observe that the image should be overallocated by at least 256 bytes
+     * at the end.
+     * x_coord and y_coord should be pre-allocated arrays of length returned by Init().
+     * Specifying image mask will restrict corner output to foreground regions.
+     * Foreground value can be specified using fgnd. By default any >0 mask value
+     * is considered to be foreground
+     * \param img   row array pointer
+     * \param x_coord   corner locations
+     * \param y_coord   corner locations
+     * \param nr_corners    actual number of corners computed
+     * \param msk       row array pointer to mask image
+     * \param fgnd      foreground value in the mask
+     */
+    virtual void DetectCorners(const unsigned char * const *img,double *x_coord,double *y_coord,int *nr_corners,
+        const unsigned char * const * msk=NULL, unsigned char fgnd=255) const;
+
+    /*!
+     Set absolute feature threshold
+     */
+    virtual void SetAbsoluteThreshold(double a_thresh) { m_a_thresh = a_thresh; };
+    /*!
+     Set relative feature threshold
+     */
+    virtual void SetRelativeThreshold(double r_thresh) { m_r_thresh = r_thresh; };
+
+    /*!
+     Extract corners from a pre-computed strength image.
+     \param strength    Harris strength image
+     \param x_coord corner locations
+     \param y_coord corner locations
+     \param nr_corners  actual number of corners computed
+     */
+    virtual void ExtractCorners(float ** strength, double *x_coord, double *y_coord, int *nr_corners);
+protected:
+    virtual void Clean();
+    /*The absolute threshold to this function should be 16.0 times
+    normal*/
+    unsigned long Start(int im_width,int im_height,
+            int block_width,int block_height,unsigned long area_factor,
+            double absolute_threshold,double relative_threshold);
+
+    int m_w,m_h,m_bw,m_bh;
+    /*Area factor holds the maximum number of corners to detect
+    per 10000 pixels*/
+    unsigned long m_area_factor,m_max_nr;
+    double m_a_thresh,m_r_thresh;
+    int *m_temp_i;
+    double *m_temp_d;
+    float **m_strength,*m_strength_mem;
+};
+
+#endif /*DB_FEATURE_DETECTION_H*/
diff --git a/perftests/panorama/feature_stab/db_vlvm/db_feature_matching.cpp b/perftests/panorama/feature_stab/db_vlvm/db_feature_matching.cpp
new file mode 100644
index 0000000..d278d0c
--- /dev/null
+++ b/perftests/panorama/feature_stab/db_vlvm/db_feature_matching.cpp
@@ -0,0 +1,3410 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+/*$Id: db_feature_matching.cpp,v 1.4 2011/06/17 14:03:30 mbansal Exp $*/
+
+/*****************************************************************
+*    Lean and mean begins here                                   *
+*****************************************************************/
+
+#include "db_utilities.h"
+#include "db_feature_matching.h"
+#ifdef _VERBOSE_
+#include <iostream>
+#endif
+
+
+int AffineWarpPoint_NN_LUT_x[11][11];
+int AffineWarpPoint_NN_LUT_y[11][11];
+
+float AffineWarpPoint_BL_LUT_x[11][11];
+float AffineWarpPoint_BL_LUT_y[11][11];
+
+
+inline float db_SignedSquareNormCorr7x7_u(unsigned char **f_img,unsigned char **g_img,int x_f,int y_f,int x_g,int y_g)
+{
+    unsigned char *pf,*pg;
+    float f,g,fgsum,f2sum,g2sum,fsum,gsum,fg_corr,den;
+    int xm_f,xm_g;
+
+    xm_f=x_f-3;
+    xm_g=x_g-3;
+    fgsum=0.0; f2sum=0.0; g2sum=0.0; fsum=0.0; gsum=0.0;
+
+    pf=f_img[y_f-3]+xm_f; pg=g_img[y_g-3]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f-2]+xm_f; pg=g_img[y_g-2]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f-1]+xm_f; pg=g_img[y_g-1]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f]+xm_f; pg=g_img[y_g]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+1]+xm_f; pg=g_img[y_g+1]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+2]+xm_f; pg=g_img[y_g+2]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+3]+xm_f; pg=g_img[y_g+3]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    fg_corr=49.0f*fgsum-fsum*gsum;
+    den=(49.0f*f2sum-fsum*fsum)*(49.0f*g2sum-gsum*gsum);
+    if(den!=0.0)
+    {
+        if(fg_corr>=0.0) return(fg_corr*fg_corr/den);
+        return(-fg_corr*fg_corr/den);
+    }
+    return(0.0);
+}
+
+inline float db_SignedSquareNormCorr9x9_u(unsigned char **f_img,unsigned char **g_img,int x_f,int y_f,int x_g,int y_g)
+{
+    unsigned char *pf,*pg;
+    float f,g,fgsum,f2sum,g2sum,fsum,gsum,fg_corr,den;
+    int xm_f,xm_g;
+
+    xm_f=x_f-4;
+    xm_g=x_g-4;
+    fgsum=0.0; f2sum=0.0; g2sum=0.0; fsum=0.0; gsum=0.0;
+
+    pf=f_img[y_f-4]+xm_f; pg=g_img[y_g-4]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f-3]+xm_f; pg=g_img[y_g-3]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f-2]+xm_f; pg=g_img[y_g-2]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f-1]+xm_f; pg=g_img[y_g-1]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f]+xm_f; pg=g_img[y_g]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+1]+xm_f; pg=g_img[y_g+1]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+2]+xm_f; pg=g_img[y_g+2]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+3]+xm_f; pg=g_img[y_g+3]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+4]+xm_f; pg=g_img[y_g+4]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    fg_corr=81.0f*fgsum-fsum*gsum;
+    den=(81.0f*f2sum-fsum*fsum)*(81.0f*g2sum-gsum*gsum);
+    if(den!=0.0)
+    {
+        if(fg_corr>=0.0) return(fg_corr*fg_corr/den);
+        return(-fg_corr*fg_corr/den);
+    }
+    return(0.0);
+}
+
+inline float db_SignedSquareNormCorr11x11_u(unsigned char **f_img,unsigned char **g_img,int x_f,int y_f,int x_g,int y_g)
+{
+    unsigned char *pf,*pg;
+    float f,g,fgsum,f2sum,g2sum,fsum,gsum,fg_corr,den;
+    int xm_f,xm_g;
+
+    xm_f=x_f-5;
+    xm_g=x_g-5;
+    fgsum=0.0; f2sum=0.0; g2sum=0.0; fsum=0.0; gsum=0.0;
+
+    pf=f_img[y_f-5]+xm_f; pg=g_img[y_g-5]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f-4]+xm_f; pg=g_img[y_g-4]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f-3]+xm_f; pg=g_img[y_g-3]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f-2]+xm_f; pg=g_img[y_g-2]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f-1]+xm_f; pg=g_img[y_g-1]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f]+xm_f; pg=g_img[y_g]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+1]+xm_f; pg=g_img[y_g+1]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+2]+xm_f; pg=g_img[y_g+2]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+3]+xm_f; pg=g_img[y_g+3]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+4]+xm_f; pg=g_img[y_g+4]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+5]+xm_f; pg=g_img[y_g+5]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    fg_corr=121.0f*fgsum-fsum*gsum;
+    den=(121.0f*f2sum-fsum*fsum)*(121.0f*g2sum-gsum*gsum);
+    if(den!=0.0)
+    {
+        if(fg_corr>=0.0) return(fg_corr*fg_corr/den);
+        return(-fg_corr*fg_corr/den);
+    }
+    return(0.0);
+}
+
+inline void db_SignedSquareNormCorr11x11_Pre_u(unsigned char **f_img,int x_f,int y_f,float *sum,float *recip)
+{
+    unsigned char *pf;
+    float den;
+    int f,f2sum,fsum;
+    int xm_f;
+
+    xm_f=x_f-5;
+
+    pf=f_img[y_f-5]+xm_f;
+    f= *pf++; f2sum=f*f;  fsum=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf;   f2sum+=f*f; fsum+=f;
+
+    pf=f_img[y_f-4]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf;   f2sum+=f*f; fsum+=f;
+
+    pf=f_img[y_f-3]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf;   f2sum+=f*f; fsum+=f;
+
+    pf=f_img[y_f-2]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf;   f2sum+=f*f; fsum+=f;
+
+    pf=f_img[y_f-1]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf;   f2sum+=f*f; fsum+=f;
+
+    pf=f_img[y_f]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf;   f2sum+=f*f; fsum+=f;
+
+    pf=f_img[y_f+1]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf;   f2sum+=f*f; fsum+=f;
+
+    pf=f_img[y_f+2]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf;   f2sum+=f*f; fsum+=f;
+
+    pf=f_img[y_f+3]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf;   f2sum+=f*f; fsum+=f;
+
+    pf=f_img[y_f+4]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf;   f2sum+=f*f; fsum+=f;
+
+    pf=f_img[y_f+5]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf;   f2sum+=f*f; fsum+=f;
+
+    *sum= (float) fsum;
+    den=(121.0f*f2sum-fsum*fsum);
+    *recip=(float)(((den!=0.0)?1.0/den:0.0));
+}
+
+inline void db_SignedSquareNormCorr5x5_PreAlign_u(short *patch,const unsigned char * const *f_img,int x_f,int y_f,float *sum,float *recip)
+{
+    float den;
+    int f2sum,fsum;
+    int xm_f=x_f-2;
+
+#ifndef DB_USE_SSE2
+    const unsigned char *pf;
+    short f;
+
+    pf=f_img[y_f-2]+xm_f;
+    f= *pf++; f2sum=f*f; fsum=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf;   f2sum+=f*f; fsum+=f; (*patch++)=f;
+
+    pf=f_img[y_f-1]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf;   f2sum+=f*f; fsum+=f; (*patch++)=f;
+
+    pf=f_img[y_f]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf;   f2sum+=f*f; fsum+=f; (*patch++)=f;
+
+    pf=f_img[y_f+1]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf;   f2sum+=f*f; fsum+=f; (*patch++)=f;
+
+    pf=f_img[y_f+2]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf;   f2sum+=f*f; fsum+=f; (*patch++)=f;
+    //int xwi;
+    //int ywi;
+    //f2sum=0;
+    //fsum=0;
+    //for (int r=-5;r<=5;r++){
+    //  ywi=y_f+r;
+    //  for (int c=-5;c<=5;c++){
+    //      xwi=x_f+c;
+    //      f=f_img[ywi][xwi];
+    //      f2sum+=f*f;
+    //      fsum+=f;
+    //      (*patch++)=f;
+    //  }
+    //}
+    (*patch++)=0; (*patch++)=0; (*patch++)=0; (*patch++)=0; (*patch++)=0;
+    (*patch++)=0; (*patch++)=0;
+#endif /* DB_USE_SSE2 */
+
+    *sum= (float) fsum;
+    den=(25.0f*f2sum-fsum*fsum);
+    *recip= (float)((den!=0.0)?1.0/den:0.0);
+}
+
+inline void db_SignedSquareNormCorr21x21_PreAlign_u(short *patch,const unsigned char * const *f_img,int x_f,int y_f,float *sum,float *recip)
+{
+    float den;
+    int f2sum,fsum;
+    int xm_f=x_f-10;
+    short f;
+
+    int xwi;
+    int ywi;
+    f2sum=0;
+    fsum=0;
+    for (int r=-10;r<=10;r++){
+        ywi=y_f+r;
+        for (int c=-10;c<=10;c++){
+            xwi=x_f+c;
+            f=f_img[ywi][xwi];
+            f2sum+=f*f;
+            fsum+=f;
+            (*patch++)=f;
+        }
+    }
+
+    for(int i=442; i<512; i++)
+        (*patch++)=0;
+
+    *sum= (float) fsum;
+    den=(441.0f*f2sum-fsum*fsum);
+    *recip= (float)((den!=0.0)?1.0/den:0.0);
+
+
+}
+
+/* Lay out the image in the patch, computing norm and
+*/
+inline void db_SignedSquareNormCorr11x11_PreAlign_u(short *patch,const unsigned char * const *f_img,int x_f,int y_f,float *sum,float *recip)
+{
+    float den;
+    int f2sum,fsum;
+    int xm_f=x_f-5;
+
+#ifndef DB_USE_SSE2
+    const unsigned char *pf;
+    short f;
+
+    pf=f_img[y_f-5]+xm_f;
+    f= *pf++; f2sum=f*f;  fsum=f;  (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf;   f2sum+=f*f; fsum+=f; (*patch++)=f;
+
+    pf=f_img[y_f-4]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf;   f2sum+=f*f; fsum+=f; (*patch++)=f;
+
+    pf=f_img[y_f-3]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf;   f2sum+=f*f; fsum+=f; (*patch++)=f;
+
+    pf=f_img[y_f-2]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf;   f2sum+=f*f; fsum+=f; (*patch++)=f;
+
+    pf=f_img[y_f-1]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf;   f2sum+=f*f; fsum+=f; (*patch++)=f;
+
+    pf=f_img[y_f]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf;   f2sum+=f*f; fsum+=f; (*patch++)=f;
+
+    pf=f_img[y_f+1]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf;   f2sum+=f*f; fsum+=f; (*patch++)=f;
+
+    pf=f_img[y_f+2]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf;   f2sum+=f*f; fsum+=f; (*patch++)=f;
+
+    pf=f_img[y_f+3]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf;   f2sum+=f*f; fsum+=f; (*patch++)=f;
+
+    pf=f_img[y_f+4]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf;   f2sum+=f*f; fsum+=f; (*patch++)=f;
+
+    pf=f_img[y_f+5]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf;   f2sum+=f*f; fsum+=f; (*patch++)=f;
+
+    //int xwi;
+    //int ywi;
+    //f2sum=0;
+    //fsum=0;
+    //for (int r=-5;r<=5;r++){
+    //  ywi=y_f+r;
+    //  for (int c=-5;c<=5;c++){
+    //      xwi=x_f+c;
+    //      f=f_img[ywi][xwi];
+    //      f2sum+=f*f;
+    //      fsum+=f;
+    //      (*patch++)=f;
+    //  }
+    //}
+
+    (*patch++)=0; (*patch++)=0; (*patch++)=0; (*patch++)=0; (*patch++)=0;
+    (*patch++)=0; (*patch++)=0;
+#else
+    const unsigned char *pf0 =f_img[y_f-5]+xm_f;
+    const unsigned char *pf1 =f_img[y_f-4]+xm_f;
+    const unsigned char *pf2 =f_img[y_f-3]+xm_f;
+    const unsigned char *pf3 =f_img[y_f-2]+xm_f;
+    const unsigned char *pf4 =f_img[y_f-1]+xm_f;
+    const unsigned char *pf5 =f_img[y_f  ]+xm_f;
+    const unsigned char *pf6 =f_img[y_f+1]+xm_f;
+    const unsigned char *pf7 =f_img[y_f+2]+xm_f;
+    const unsigned char *pf8 =f_img[y_f+3]+xm_f;
+    const unsigned char *pf9 =f_img[y_f+4]+xm_f;
+    const unsigned char *pf10=f_img[y_f+5]+xm_f;
+
+    /* pixel mask */
+    const unsigned char pm[16] = {
+        0xFF,0xFF,
+        0xFF,0xFF,
+        0xFF,0xFF,
+        0,0,0,0,0,
+        0,0,0,0,0};
+    const unsigned char * pm_p = pm;
+
+    _asm
+    {
+        mov         ecx,patch   /* load patch pointer */
+        mov         ebx, pm_p   /* load pixel mask pointer */
+        movdqu      xmm1,[ebx]  /* load pixel mask */
+
+        pxor        xmm5,xmm5   /* set xmm5 to 0 accumulator for sum squares */
+        pxor        xmm4,xmm4   /* set xmm4 to 0 accumulator for sum */
+        pxor        xmm0,xmm0   /* set xmm0 to 0 */
+
+        /* row 0 */
+        mov         eax,pf0     /* load image pointer */
+        movdqu      xmm7,[eax]  /* load 16 pixels */
+        movdqa      xmm6,xmm7
+
+        punpcklbw   xmm7,xmm0   /* unpack low pixels (first 8)*/
+        punpckhbw   xmm6,xmm0   /* unpack high pixels (last 8)*/
+
+        pand        xmm6,xmm1   /* mask out pixels 12-16 */
+
+        movdqa      [ecx+0*22],xmm7 /* move short values to patch */
+        movdqa      [ecx+0*22+16],xmm6  /* move short values to patch */
+
+        paddusw     xmm4,xmm7   /* accumulate sums */
+        pmaddwd     xmm7,xmm7   /* multiply 16 bit ints and add into 32 bit ints */
+        paddd       xmm5,xmm7   /* accumulate sum squares */
+
+        paddw       xmm4,xmm6   /* accumulate sums */
+        pmaddwd     xmm6,xmm6   /* multiply 16 bit uints into 16 bit uints */
+        paddd       xmm5,xmm6   /* accumulate sum squares */
+
+        /* row 1 */
+        mov         eax,pf1     /* load image pointer */
+        movdqu      xmm7,[eax]  /* load 16 pixels */
+        movdqa      xmm6,xmm7
+
+        punpcklbw   xmm7,xmm0   /* unpack low pixels (first 8)*/
+        punpckhbw   xmm6,xmm0   /* unpack high pixels (last 8)*/
+
+        pand        xmm6,xmm1   /* mask out pixels 12-16 */
+
+        movdqu      [ecx+1*22],xmm7 /* move short values to patch */
+        movdqu      [ecx+1*22+16],xmm6  /* move short values to patch */
+
+        paddusw     xmm4,xmm7   /* accumulate sums */
+        pmaddwd     xmm7,xmm7   /* multiply 16 bit ints and add into 32 bit ints */
+        paddd       xmm5,xmm7   /* accumulate sum squares */
+
+        paddw       xmm4,xmm6   /* accumulate sums */
+        pmaddwd     xmm6,xmm6   /* multiply 16 bit uints into 16 bit uints */
+        paddd       xmm5,xmm6   /* accumulate sum squares */
+
+        /* row 2 */
+        mov         eax,pf2     /* load image pointer */
+        movdqu      xmm7,[eax]  /* load 16 pixels */
+        movdqa      xmm6,xmm7
+
+        punpcklbw   xmm7,xmm0   /* unpack low pixels (first 8)*/
+        punpckhbw   xmm6,xmm0   /* unpack high pixels (last 8)*/
+
+        pand        xmm6,xmm1   /* mask out pixels 12-16 */
+
+        movdqu      [ecx+2*22],xmm7 /* move short values to patch */
+        movdqu      [ecx+2*22+16],xmm6  /* move short values to patch */
+
+        paddusw     xmm4,xmm7   /* accumulate sums */
+        pmaddwd     xmm7,xmm7   /* multiply 16 bit ints and add into 32 bit ints */
+        paddd       xmm5,xmm7   /* accumulate sum squares */
+
+        paddw       xmm4,xmm6   /* accumulate sums */
+        pmaddwd     xmm6,xmm6   /* multiply 16 bit uints into 16 bit uints */
+        paddd       xmm5,xmm6   /* accumulate sum squares */
+
+        /* row 3 */
+        mov         eax,pf3     /* load image pointer */
+        movdqu      xmm7,[eax]  /* load 16 pixels */
+        movdqa      xmm6,xmm7
+
+        punpcklbw   xmm7,xmm0   /* unpack low pixels (first 8)*/
+        punpckhbw   xmm6,xmm0   /* unpack high pixels (last 8)*/
+
+        pand        xmm6,xmm1   /* mask out pixels 12-16 */
+
+        movdqu      [ecx+3*22],xmm7 /* move short values to patch */
+        movdqu      [ecx+3*22+16],xmm6  /* move short values to patch */
+
+        paddusw     xmm4,xmm7   /* accumulate sums */
+        pmaddwd     xmm7,xmm7   /* multiply 16 bit ints and add into 32 bit ints */
+        paddd       xmm5,xmm7   /* accumulate sum squares */
+
+        paddw       xmm4,xmm6   /* accumulate sums */
+        pmaddwd     xmm6,xmm6   /* multiply 16 bit uints into 16 bit uints */
+        paddd       xmm5,xmm6   /* accumulate sum squares */
+
+        /* row 4 */
+        mov         eax,pf4     /* load image pointer */
+        movdqu      xmm7,[eax]  /* load 16 pixels */
+        movdqa      xmm6,xmm7
+
+        punpcklbw   xmm7,xmm0   /* unpack low pixels (first 8)*/
+        punpckhbw   xmm6,xmm0   /* unpack high pixels (last 8)*/
+
+        pand        xmm6,xmm1   /* mask out pixels 12-16 */
+
+        movdqu      [ecx+4*22],xmm7 /* move short values to patch */
+        movdqu      [ecx+4*22+16],xmm6  /* move short values to patch */
+
+        paddusw     xmm4,xmm7   /* accumulate sums */
+        pmaddwd     xmm7,xmm7   /* multiply 16 bit ints and add into 32 bit ints */
+        paddd       xmm5,xmm7   /* accumulate sum squares */
+
+        paddw       xmm4,xmm6   /* accumulate sums */
+        pmaddwd     xmm6,xmm6   /* multiply 16 bit uints into 16 bit uints */
+        paddd       xmm5,xmm6   /* accumulate sum squares */
+
+        /* row 5 */
+        mov         eax,pf5     /* load image pointer */
+        movdqu      xmm7,[eax]  /* load 16 pixels */
+        movdqa      xmm6,xmm7
+
+        punpcklbw   xmm7,xmm0   /* unpack low pixels (first 8)*/
+        punpckhbw   xmm6,xmm0   /* unpack high pixels (last 8)*/
+
+        pand        xmm6,xmm1   /* mask out pixels 12-16 */
+
+        movdqu      [ecx+5*22],xmm7 /* move short values to patch */
+        movdqu      [ecx+5*22+16],xmm6  /* move short values to patch */
+
+        paddusw     xmm4,xmm7   /* accumulate sums */
+        pmaddwd     xmm7,xmm7   /* multiply 16 bit ints and add into 32 bit ints */
+        paddd       xmm5,xmm7   /* accumulate sum squares */
+
+        paddw       xmm4,xmm6   /* accumulate sums */
+        pmaddwd     xmm6,xmm6   /* multiply 16 bit uints into 16 bit uints */
+        paddd       xmm5,xmm6   /* accumulate sum squares */
+
+        /* row 6 */
+        mov         eax,pf6     /* load image pointer */
+        movdqu      xmm7,[eax]  /* load 16 pixels */
+        movdqa      xmm6,xmm7
+
+        punpcklbw   xmm7,xmm0   /* unpack low pixels (first 8)*/
+        punpckhbw   xmm6,xmm0   /* unpack high pixels (last 8)*/
+
+        pand        xmm6,xmm1   /* mask out pixels 12-16 */
+
+        movdqu      [ecx+6*22],xmm7 /* move short values to patch */
+        movdqu      [ecx+6*22+16],xmm6  /* move short values to patch */
+
+        paddusw     xmm4,xmm7   /* accumulate sums */
+        pmaddwd     xmm7,xmm7   /* multiply 16 bit ints and add into 32 bit ints */
+        paddd       xmm5,xmm7   /* accumulate sum squares */
+
+        paddw       xmm4,xmm6   /* accumulate sums */
+        pmaddwd     xmm6,xmm6   /* multiply 16 bit uints into 16 bit uints */
+        paddd       xmm5,xmm6   /* accumulate sum squares */
+
+        /* row 7 */
+        mov         eax,pf7     /* load image pointer */
+        movdqu      xmm7,[eax]  /* load 16 pixels */
+        movdqa      xmm6,xmm7
+
+        punpcklbw   xmm7,xmm0   /* unpack low pixels (first 8)*/
+        punpckhbw   xmm6,xmm0   /* unpack high pixels (last 8)*/
+
+        pand        xmm6,xmm1   /* mask out pixels 12-16 */
+
+        movdqu      [ecx+7*22],xmm7 /* move short values to patch */
+        movdqu      [ecx+7*22+16],xmm6  /* move short values to patch */
+
+        paddusw     xmm4,xmm7   /* accumulate sums */
+        pmaddwd     xmm7,xmm7   /* multiply 16 bit ints and add into 32 bit ints */
+        paddd       xmm5,xmm7   /* accumulate sum squares */
+
+        paddw       xmm4,xmm6   /* accumulate sums */
+        pmaddwd     xmm6,xmm6   /* multiply 16 bit uints into 16 bit uints */
+        paddd       xmm5,xmm6   /* accumulate sum squares */
+
+        /* row 8 */
+        mov         eax,pf8     /* load image pointer */
+        movdqu      xmm7,[eax]  /* load 16 pixels */
+        movdqa      xmm6,xmm7
+
+        punpcklbw   xmm7,xmm0   /* unpack low pixels (first 8)*/
+        punpckhbw   xmm6,xmm0   /* unpack high pixels (last 8)*/
+
+        pand        xmm6,xmm1   /* mask out pixels 12-16 */
+
+        movdqa      [ecx+8*22],xmm7 /* move short values to patch */
+        movdqa      [ecx+8*22+16],xmm6  /* move short values to patch */
+
+        paddusw     xmm4,xmm7   /* accumulate sums */
+        pmaddwd     xmm7,xmm7   /* multiply 16 bit ints and add into 32 bit ints */
+        paddd       xmm5,xmm7   /* accumulate sum squares */
+
+        paddw       xmm4,xmm6   /* accumulate sums */
+        pmaddwd     xmm6,xmm6   /* multiply 16 bit uints into 16 bit uints */
+        paddd       xmm5,xmm6   /* accumulate sum squares */
+
+        /* row 9 */
+        mov         eax,pf9     /* load image pointer */
+        movdqu      xmm7,[eax]  /* load 16 pixels */
+        movdqa      xmm6,xmm7
+
+        punpcklbw   xmm7,xmm0   /* unpack low pixels (first 8)*/
+        punpckhbw   xmm6,xmm0   /* unpack high pixels (last 8)*/
+
+        pand        xmm6,xmm1   /* mask out pixels 12-16 */
+
+        movdqu      [ecx+9*22],xmm7 /* move short values to patch */
+        movdqu      [ecx+9*22+16],xmm6  /* move short values to patch */
+
+        paddusw     xmm4,xmm7   /* accumulate sums */
+        pmaddwd     xmm7,xmm7   /* multiply 16 bit ints and add into 32 bit ints */
+        paddd       xmm5,xmm7   /* accumulate sum squares */
+
+        paddw       xmm4,xmm6   /* accumulate sums */
+        pmaddwd     xmm6,xmm6   /* multiply 16 bit uints into 16 bit uints */
+        paddd       xmm5,xmm6   /* accumulate sum squares */
+
+        /* row 10 */
+        mov         eax,pf10    /* load image pointer */
+        movdqu      xmm7,[eax]  /* load 16 pixels */
+        movdqa      xmm6,xmm7
+
+        punpcklbw   xmm7,xmm0   /* unpack low pixels (first 8)*/
+        punpckhbw   xmm6,xmm0   /* unpack high pixels (last 8)*/
+
+        pand        xmm6,xmm1   /* mask out pixels 12-16 */
+
+        movdqu      [ecx+10*22],xmm7    /* move short values to patch */
+        movdqu      [ecx+10*22+16],xmm6 /* move short values to patch */
+
+        paddusw     xmm4,xmm7   /* accumulate sums */
+        pmaddwd     xmm7,xmm7   /* multiply 16 bit ints and add into 32 bit ints */
+        paddd       xmm5,xmm7   /* accumulate sum squares */
+
+        paddw       xmm4,xmm6   /* accumulate sums */
+        pmaddwd     xmm6,xmm6   /* multiply 16 bit ints and add into 32 bit ints */
+        paddd       xmm5,xmm6   /* accumulate sum squares */
+
+        /* add up the sum squares */
+        movhlps     xmm0,xmm5   /* high half to low half */
+        paddd       xmm5,xmm0   /* add high to low */
+        pshuflw     xmm0,xmm5, 0xE /* reshuffle */
+        paddd       xmm5,xmm0   /* add remaining */
+        movd        f2sum,xmm5
+
+        /* add up the sum */
+        movhlps     xmm0,xmm4
+        paddw       xmm4,xmm0   /* halves added */
+        pshuflw     xmm0,xmm4,0xE
+        paddw       xmm4,xmm0   /* quarters added */
+        pshuflw     xmm0,xmm4,0x1
+        paddw       xmm4,xmm0   /* eighth added */
+        movd        fsum, xmm4
+
+        emms
+    }
+
+    fsum = fsum & 0xFFFF;
+
+    patch[126] = 0;
+    patch[127] = 0;
+#endif /* DB_USE_SSE2 */
+
+    *sum= (float) fsum;
+    den=(121.0f*f2sum-fsum*fsum);
+    *recip= (float)((den!=0.0)?1.0/den:0.0);
+}
+
+void AffineWarpPointOffset(float &r_w,float &c_w,double Hinv[9],int r,int c)
+{
+    r_w=(float)(Hinv[3]*c+Hinv[4]*r);
+    c_w=(float)(Hinv[0]*c+Hinv[1]*r);
+}
+
+
+
+/*!
+Prewarp the patches with given affine transform. For a given homogeneous point "x", "H*x" is
+the warped point and for any displacement "d" in the warped image resulting in point "y", the
+corresponding point in the original image is given by "Hinv*y", which can be simplified for affine H.
+If "affine" is 1, then nearest neighbor method is used, else if it is 2, then
+bilinear method is used.
+ */
+inline void db_SignedSquareNormCorr11x11_PreAlign_AffinePatchWarp_u(short *patch,const unsigned char * const *f_img,
+                                                                    int xi,int yi,float *sum,float *recip,
+                                                                    const double Hinv[9],int affine)
+{
+    float den;
+    short f;
+    int f2sum,fsum;
+
+    f2sum=0;
+    fsum=0;
+
+    if (affine==1)
+    {
+        for (int r=0;r<11;r++){
+            for (int c=0;c<11;c++){
+                f=f_img[yi+AffineWarpPoint_NN_LUT_y[r][c]][xi+AffineWarpPoint_NN_LUT_x[r][c]];
+                f2sum+=f*f;
+                fsum+=f;
+                (*patch++)=f;
+            }
+        }
+    }
+    else if (affine==2)
+    {
+        for (int r=0;r<11;r++){
+            for (int c=0;c<11;c++){
+                f=db_BilinearInterpolation(yi+AffineWarpPoint_BL_LUT_y[r][c]
+                ,xi+AffineWarpPoint_BL_LUT_x[r][c],f_img);
+                f2sum+=f*f;
+                fsum+=f;
+                (*patch++)=f;
+            }
+        }
+    }
+
+
+
+    (*patch++)=0; (*patch++)=0; (*patch++)=0; (*patch++)=0; (*patch++)=0;
+    (*patch++)=0; (*patch++)=0;
+
+    *sum= (float) fsum;
+    den=(121.0f*f2sum-fsum*fsum);
+    *recip= (float)((den!=0.0)?1.0/den:0.0);
+}
+
+
+inline float db_SignedSquareNormCorr11x11_Post_u(unsigned char **f_img,unsigned char **g_img,int x_f,int y_f,int x_g,int y_g,
+                                                float fsum_gsum,float f_recip_g_recip)
+{
+    unsigned char *pf,*pg;
+    int fgsum;
+    float fg_corr;
+    int xm_f,xm_g;
+
+    xm_f=x_f-5;
+    xm_g=x_g-5;
+
+    pf=f_img[y_f-5]+xm_f; pg=g_img[y_g-5]+xm_g;
+    fgsum=(*pf++)*(*pg++);  fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf)*(*pg);
+
+    pf=f_img[y_f-4]+xm_f; pg=g_img[y_g-4]+xm_g;
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf)*(*pg);
+
+    pf=f_img[y_f-3]+xm_f; pg=g_img[y_g-3]+xm_g;
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf)*(*pg);
+
+    pf=f_img[y_f-2]+xm_f; pg=g_img[y_g-2]+xm_g;
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf)*(*pg);
+
+    pf=f_img[y_f-1]+xm_f; pg=g_img[y_g-1]+xm_g;
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf)*(*pg);
+
+    pf=f_img[y_f]+xm_f; pg=g_img[y_g]+xm_g;
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf)*(*pg);
+
+    pf=f_img[y_f+1]+xm_f; pg=g_img[y_g+1]+xm_g;
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf)*(*pg);
+
+    pf=f_img[y_f+2]+xm_f; pg=g_img[y_g+2]+xm_g;
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf)*(*pg);
+
+    pf=f_img[y_f+3]+xm_f; pg=g_img[y_g+3]+xm_g;
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf)*(*pg);
+
+    pf=f_img[y_f+4]+xm_f; pg=g_img[y_g+4]+xm_g;
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf)*(*pg);
+
+    pf=f_img[y_f+5]+xm_f; pg=g_img[y_g+5]+xm_g;
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf)*(*pg);
+
+    fg_corr=121.0f*fgsum-fsum_gsum;
+    if(fg_corr>=0.0) return(fg_corr*fg_corr*f_recip_g_recip);
+    return(-fg_corr*fg_corr*f_recip_g_recip);
+}
+
+float db_SignedSquareNormCorr21x21Aligned_Post_s(const short *f_patch,const short *g_patch,float fsum_gsum,float f_recip_g_recip)
+{
+    float fgsum,fg_corr;
+
+    fgsum= (float) db_ScalarProduct512_s(f_patch,g_patch);
+
+    fg_corr=441.0f*fgsum-fsum_gsum;
+    if(fg_corr>=0.0) return(fg_corr*fg_corr*f_recip_g_recip);
+    return(-fg_corr*fg_corr*f_recip_g_recip);
+}
+
+
+float db_SignedSquareNormCorr11x11Aligned_Post_s(const short *f_patch,const short *g_patch,float fsum_gsum,float f_recip_g_recip)
+{
+    float fgsum,fg_corr;
+
+    fgsum= (float) db_ScalarProduct128_s(f_patch,g_patch);
+
+    fg_corr=121.0f*fgsum-fsum_gsum;
+    if(fg_corr>=0.0) return(fg_corr*fg_corr*f_recip_g_recip);
+    return(-fg_corr*fg_corr*f_recip_g_recip);
+}
+
+float db_SignedSquareNormCorr5x5Aligned_Post_s(const short *f_patch,const short *g_patch,float fsum_gsum,float f_recip_g_recip)
+{
+    float fgsum,fg_corr;
+
+    fgsum= (float) db_ScalarProduct32_s(f_patch,g_patch);
+
+    fg_corr=25.0f*fgsum-fsum_gsum;
+    if(fg_corr>=0.0) return(fg_corr*fg_corr*f_recip_g_recip);
+    return(-fg_corr*fg_corr*f_recip_g_recip);
+}
+
+
+inline float db_SignedSquareNormCorr15x15_u(unsigned char **f_img,unsigned char **g_img,int x_f,int y_f,int x_g,int y_g)
+{
+    unsigned char *pf,*pg;
+    float f,g,fgsum,f2sum,g2sum,fsum,gsum,fg_corr,den;
+    int xm_f,xm_g;
+
+    xm_f=x_f-7;
+    xm_g=x_g-7;
+    fgsum=0.0; f2sum=0.0; g2sum=0.0; fsum=0.0; gsum=0.0;
+
+    pf=f_img[y_f-7]+xm_f; pg=g_img[y_g-7]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f-6]+xm_f; pg=g_img[y_g-6]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f-5]+xm_f; pg=g_img[y_g-5]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f-4]+xm_f; pg=g_img[y_g-4]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f-3]+xm_f; pg=g_img[y_g-3]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f-2]+xm_f; pg=g_img[y_g-2]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f-1]+xm_f; pg=g_img[y_g-1]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f]+xm_f; pg=g_img[y_g]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+1]+xm_f; pg=g_img[y_g+1]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+2]+xm_f; pg=g_img[y_g+2]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+3]+xm_f; pg=g_img[y_g+3]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+4]+xm_f; pg=g_img[y_g+4]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+5]+xm_f; pg=g_img[y_g+5]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+6]+xm_f; pg=g_img[y_g+6]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+7]+xm_f; pg=g_img[y_g+7]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    fg_corr=225.0f*fgsum-fsum*gsum;
+    den=(225.0f*f2sum-fsum*fsum)*(225.0f*g2sum-gsum*gsum);
+    if(den!=0.0)
+    {
+        if(fg_corr>=0.0) return(fg_corr*fg_corr/den);
+        return(-fg_corr*fg_corr/den);
+    }
+    return(0.0);
+}
+
+inline float db_SignedSquareNormCorr7x7_f(float **f_img,float **g_img,int x_f,int y_f,int x_g,int y_g)
+{
+    float f,g,*pf,*pg,fgsum,f2sum,g2sum,fsum,gsum,fg_corr,den;
+    int xm_f,xm_g;
+
+    xm_f=x_f-3;
+    xm_g=x_g-3;
+    fgsum=0.0; f2sum=0.0; g2sum=0.0; fsum=0.0; gsum=0.0;
+
+    pf=f_img[y_f-3]+xm_f; pg=g_img[y_g-3]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f-2]+xm_f; pg=g_img[y_g-2]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f-1]+xm_f; pg=g_img[y_g-1]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f]+xm_f; pg=g_img[y_g]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+1]+xm_f; pg=g_img[y_g+1]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+2]+xm_f; pg=g_img[y_g+2]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+3]+xm_f; pg=g_img[y_g+3]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    fg_corr=49.0f*fgsum-fsum*gsum;
+    den=(49.0f*f2sum-fsum*fsum)*(49.0f*g2sum-gsum*gsum);
+    if(den!=0.0)
+    {
+        if(fg_corr>=0.0) return(fg_corr*fg_corr/den);
+        return(-fg_corr*fg_corr/den);
+    }
+    return(0.0);
+}
+
+inline float db_SignedSquareNormCorr9x9_f(float **f_img,float **g_img,int x_f,int y_f,int x_g,int y_g)
+{
+    float f,g,*pf,*pg,fgsum,f2sum,g2sum,fsum,gsum,fg_corr,den;
+    int xm_f,xm_g;
+
+    xm_f=x_f-4;
+    xm_g=x_g-4;
+    fgsum=0.0; f2sum=0.0; g2sum=0.0; fsum=0.0; gsum=0.0;
+
+    pf=f_img[y_f-4]+xm_f; pg=g_img[y_g-4]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f-3]+xm_f; pg=g_img[y_g-3]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f-2]+xm_f; pg=g_img[y_g-2]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f-1]+xm_f; pg=g_img[y_g-1]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f]+xm_f; pg=g_img[y_g]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+1]+xm_f; pg=g_img[y_g+1]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+2]+xm_f; pg=g_img[y_g+2]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+3]+xm_f; pg=g_img[y_g+3]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+4]+xm_f; pg=g_img[y_g+4]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    fg_corr=81.0f*fgsum-fsum*gsum;
+    den=(81.0f*f2sum-fsum*fsum)*(81.0f*g2sum-gsum*gsum);
+    if(den!=0.0)
+    {
+        if(fg_corr>=0.0) return(fg_corr*fg_corr/den);
+        return(-fg_corr*fg_corr/den);
+    }
+    return(0.0);
+}
+
+inline float db_SignedSquareNormCorr11x11_f(float **f_img,float **g_img,int x_f,int y_f,int x_g,int y_g)
+{
+    float *pf,*pg;
+    float f,g,fgsum,f2sum,g2sum,fsum,gsum,fg_corr,den;
+    int xm_f,xm_g;
+
+    xm_f=x_f-5;
+    xm_g=x_g-5;
+    fgsum=0.0; f2sum=0.0; g2sum=0.0; fsum=0.0; gsum=0.0;
+
+    pf=f_img[y_f-5]+xm_f; pg=g_img[y_g-5]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f-4]+xm_f; pg=g_img[y_g-4]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f-3]+xm_f; pg=g_img[y_g-3]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f-2]+xm_f; pg=g_img[y_g-2]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f-1]+xm_f; pg=g_img[y_g-1]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f]+xm_f; pg=g_img[y_g]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+1]+xm_f; pg=g_img[y_g+1]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+2]+xm_f; pg=g_img[y_g+2]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+3]+xm_f; pg=g_img[y_g+3]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+4]+xm_f; pg=g_img[y_g+4]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+5]+xm_f; pg=g_img[y_g+5]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    fg_corr=121.0f*fgsum-fsum*gsum;
+    den=(121.0f*f2sum-fsum*fsum)*(121.0f*g2sum-gsum*gsum);
+    if(den!=0.0)
+    {
+        if(fg_corr>=0.0) return(fg_corr*fg_corr/den);
+        return(-fg_corr*fg_corr/den);
+    }
+    return(0.0);
+}
+
+inline void db_SignedSquareNormCorr11x11_Pre_f(float **f_img,int x_f,int y_f,float *sum,float *recip)
+{
+    float *pf,den;
+    float f,f2sum,fsum;
+    int xm_f;
+
+    xm_f=x_f-5;
+
+    pf=f_img[y_f-5]+xm_f;
+    f= *pf++; f2sum=f*f;  fsum=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf;   f2sum+=f*f; fsum+=f;
+
+    pf=f_img[y_f-4]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf;   f2sum+=f*f; fsum+=f;
+
+    pf=f_img[y_f-3]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf;   f2sum+=f*f; fsum+=f;
+
+    pf=f_img[y_f-2]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf;   f2sum+=f*f; fsum+=f;
+
+    pf=f_img[y_f-1]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf;   f2sum+=f*f; fsum+=f;
+
+    pf=f_img[y_f]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf;   f2sum+=f*f; fsum+=f;
+
+    pf=f_img[y_f+1]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf;   f2sum+=f*f; fsum+=f;
+
+    pf=f_img[y_f+2]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf;   f2sum+=f*f; fsum+=f;
+
+    pf=f_img[y_f+3]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf;   f2sum+=f*f; fsum+=f;
+
+    pf=f_img[y_f+4]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf;   f2sum+=f*f; fsum+=f;
+
+    pf=f_img[y_f+5]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf++; f2sum+=f*f; fsum+=f;
+    f= *pf;   f2sum+=f*f; fsum+=f;
+
+    *sum=fsum;
+    den=(121.0f*f2sum-fsum*fsum);
+    *recip= (float) ((den!=0.0)?1.0/den:0.0);
+}
+
+inline void db_SignedSquareNormCorr11x11_PreAlign_f(float *patch,const float * const *f_img,int x_f,int y_f,float *sum,float *recip)
+{
+    const float *pf;
+    float den,f,f2sum,fsum;
+    int xm_f;
+
+    xm_f=x_f-5;
+
+    pf=f_img[y_f-5]+xm_f;
+    f= *pf++; f2sum=f*f;  fsum=f;  (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf;   f2sum+=f*f; fsum+=f; (*patch++)=f;
+
+    pf=f_img[y_f-4]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf;   f2sum+=f*f; fsum+=f; (*patch++)=f;
+
+    pf=f_img[y_f-3]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf;   f2sum+=f*f; fsum+=f; (*patch++)=f;
+
+    pf=f_img[y_f-2]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf;   f2sum+=f*f; fsum+=f; (*patch++)=f;
+
+    pf=f_img[y_f-1]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf;   f2sum+=f*f; fsum+=f; (*patch++)=f;
+
+    pf=f_img[y_f]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf;   f2sum+=f*f; fsum+=f; (*patch++)=f;
+
+    pf=f_img[y_f+1]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf;   f2sum+=f*f; fsum+=f; (*patch++)=f;
+
+    pf=f_img[y_f+2]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf;   f2sum+=f*f; fsum+=f; (*patch++)=f;
+
+    pf=f_img[y_f+3]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf;   f2sum+=f*f; fsum+=f; (*patch++)=f;
+
+    pf=f_img[y_f+4]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf;   f2sum+=f*f; fsum+=f; (*patch++)=f;
+
+    pf=f_img[y_f+5]+xm_f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf++; f2sum+=f*f; fsum+=f; (*patch++)=f;
+    f= *pf;   f2sum+=f*f; fsum+=f; (*patch++)=f;
+
+    (*patch++)=0.0; (*patch++)=0.0; (*patch++)=0.0; (*patch++)=0.0; (*patch++)=0.0;
+    (*patch++)=0.0; (*patch++)=0.0;
+
+    *sum=fsum;
+    den=(121.0f*f2sum-fsum*fsum);
+    *recip= (float) ((den!=0.0)?1.0/den:0.0);
+}
+
+inline float db_SignedSquareNormCorr11x11_Post_f(float **f_img,float **g_img,int x_f,int y_f,int x_g,int y_g,
+                                                float fsum_gsum,float f_recip_g_recip)
+{
+    float *pf,*pg;
+    float fgsum,fg_corr;
+    int xm_f,xm_g;
+
+    xm_f=x_f-5;
+    xm_g=x_g-5;
+
+    pf=f_img[y_f-5]+xm_f; pg=g_img[y_g-5]+xm_g;
+    fgsum=(*pf++)*(*pg++);  fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf)*(*pg);
+
+    pf=f_img[y_f-4]+xm_f; pg=g_img[y_g-4]+xm_g;
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf)*(*pg);
+
+    pf=f_img[y_f-3]+xm_f; pg=g_img[y_g-3]+xm_g;
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf)*(*pg);
+
+    pf=f_img[y_f-2]+xm_f; pg=g_img[y_g-2]+xm_g;
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf)*(*pg);
+
+    pf=f_img[y_f-1]+xm_f; pg=g_img[y_g-1]+xm_g;
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf)*(*pg);
+
+    pf=f_img[y_f]+xm_f; pg=g_img[y_g]+xm_g;
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf)*(*pg);
+
+    pf=f_img[y_f+1]+xm_f; pg=g_img[y_g+1]+xm_g;
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf)*(*pg);
+
+    pf=f_img[y_f+2]+xm_f; pg=g_img[y_g+2]+xm_g;
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf)*(*pg);
+
+    pf=f_img[y_f+3]+xm_f; pg=g_img[y_g+3]+xm_g;
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf)*(*pg);
+
+    pf=f_img[y_f+4]+xm_f; pg=g_img[y_g+4]+xm_g;
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf)*(*pg);
+
+    pf=f_img[y_f+5]+xm_f; pg=g_img[y_g+5]+xm_g;
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++); fgsum+=(*pf++)*(*pg++);
+    fgsum+=(*pf++)*(*pg++); fgsum+=(*pf)*(*pg);
+
+    fg_corr=121.0f*fgsum-fsum_gsum;
+    if(fg_corr>=0.0) return(fg_corr*fg_corr*f_recip_g_recip);
+    return(-fg_corr*fg_corr*f_recip_g_recip);
+}
+
+inline float db_SignedSquareNormCorr11x11Aligned_Post_f(const float *f_patch,const float *g_patch,float fsum_gsum,float f_recip_g_recip)
+{
+    float fgsum,fg_corr;
+
+    fgsum=db_ScalarProduct128Aligned16_f(f_patch,g_patch);
+
+    fg_corr=121.0f*fgsum-fsum_gsum;
+    if(fg_corr>=0.0) return(fg_corr*fg_corr*f_recip_g_recip);
+    return(-fg_corr*fg_corr*f_recip_g_recip);
+}
+
+inline float db_SignedSquareNormCorr15x15_f(float **f_img,float **g_img,int x_f,int y_f,int x_g,int y_g)
+{
+    float *pf,*pg;
+    float f,g,fgsum,f2sum,g2sum,fsum,gsum,fg_corr,den;
+    int xm_f,xm_g;
+
+    xm_f=x_f-7;
+    xm_g=x_g-7;
+    fgsum=0.0; f2sum=0.0; g2sum=0.0; fsum=0.0; gsum=0.0;
+
+    pf=f_img[y_f-7]+xm_f; pg=g_img[y_g-7]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f-6]+xm_f; pg=g_img[y_g-6]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f-5]+xm_f; pg=g_img[y_g-5]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f-4]+xm_f; pg=g_img[y_g-4]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f-3]+xm_f; pg=g_img[y_g-3]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f-2]+xm_f; pg=g_img[y_g-2]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f-1]+xm_f; pg=g_img[y_g-1]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f]+xm_f; pg=g_img[y_g]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+1]+xm_f; pg=g_img[y_g+1]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+2]+xm_f; pg=g_img[y_g+2]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+3]+xm_f; pg=g_img[y_g+3]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+4]+xm_f; pg=g_img[y_g+4]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+5]+xm_f; pg=g_img[y_g+5]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+6]+xm_f; pg=g_img[y_g+6]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    pf=f_img[y_f+7]+xm_f; pg=g_img[y_g+7]+xm_g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf++; g= *pg++; fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+    f= *pf;   g= *pg;   fgsum+=f*g; f2sum+=f*f; g2sum+=g*g; fsum+=f; gsum+=g;
+
+    fg_corr=225.0f*fgsum-fsum*gsum;
+    den=(225.0f*f2sum-fsum*fsum)*(225.0f*g2sum-gsum*gsum);
+    if(den!=0.0)
+    {
+        if(fg_corr>=0.0) return(fg_corr*fg_corr/den);
+        return(-fg_corr*fg_corr/den);
+    }
+    return(0.0);
+}
+
+db_Bucket_f** db_AllocBuckets_f(int nr_h,int nr_v,int bd)
+{
+    int i,j;
+    db_Bucket_f **bp,*b;
+
+    b=new db_Bucket_f [(nr_h+2)*(nr_v+2)];
+    bp=new db_Bucket_f* [(nr_v+2)];
+    bp=bp+1;
+    for(i= -1;i<=nr_v;i++)
+    {
+        bp[i]=b+1+(nr_h+2)*(i+1);
+        for(j= -1;j<=nr_h;j++)
+        {
+            bp[i][j].ptr=new db_PointInfo_f [bd];
+        }
+    }
+
+    return(bp);
+}
+
+db_Bucket_u** db_AllocBuckets_u(int nr_h,int nr_v,int bd)
+{
+    int i,j;
+    db_Bucket_u **bp,*b;
+
+    b=new db_Bucket_u [(nr_h+2)*(nr_v+2)];
+    bp=new db_Bucket_u* [(nr_v+2)];
+    bp=bp+1;
+    for(i= -1;i<=nr_v;i++)
+    {
+        bp[i]=b+1+(nr_h+2)*(i+1);
+        for(j= -1;j<=nr_h;j++)
+        {
+            bp[i][j].ptr=new db_PointInfo_u [bd];
+        }
+    }
+
+    return(bp);
+}
+
+void db_FreeBuckets_f(db_Bucket_f **bp,int nr_h,int nr_v)
+{
+    int i,j;
+
+    for(i= -1;i<=nr_v;i++) for(j= -1;j<=nr_h;j++)
+    {
+        delete [] bp[i][j].ptr;
+    }
+    delete [] (bp[-1]-1);
+    delete [] (bp-1);
+}
+
+void db_FreeBuckets_u(db_Bucket_u **bp,int nr_h,int nr_v)
+{
+    int i,j;
+
+    for(i= -1;i<=nr_v;i++) for(j= -1;j<=nr_h;j++)
+    {
+        delete [] bp[i][j].ptr;
+    }
+    delete [] (bp[-1]-1);
+    delete [] (bp-1);
+}
+
+void db_EmptyBuckets_f(db_Bucket_f **bp,int nr_h,int nr_v)
+{
+    int i,j;
+    for(i= -1;i<=nr_v;i++) for(j= -1;j<=nr_h;j++) bp[i][j].nr=0;
+}
+
+void db_EmptyBuckets_u(db_Bucket_u **bp,int nr_h,int nr_v)
+{
+    int i,j;
+    for(i= -1;i<=nr_v;i++) for(j= -1;j<=nr_h;j++) bp[i][j].nr=0;
+}
+
+float* db_FillBuckets_f(float *patch_space,const float * const *f_img,db_Bucket_f **bp,int bw,int bh,int nr_h,int nr_v,int bd,const double *x,const double *y,int nr_corners)
+{
+    int i,xi,yi,xpos,ypos,nr;
+    db_Bucket_f *br;
+    db_PointInfo_f *pir;
+
+    db_EmptyBuckets_f(bp,nr_h,nr_v);
+    for(i=0;i<nr_corners;i++)
+    {
+        xi=(int) x[i];
+        yi=(int) y[i];
+        xpos=xi/bw;
+        ypos=yi/bh;
+        if(xpos>=0 && xpos<nr_h && ypos>=0 && ypos<nr_v)
+        {
+            br=&bp[ypos][xpos];
+            nr=br->nr;
+            if(nr<bd)
+            {
+                pir=&(br->ptr[nr]);
+                pir->x=xi;
+                pir->y=yi;
+                pir->id=i;
+                pir->pir=0;
+                pir->patch=patch_space;
+                br->nr=nr+1;
+
+                db_SignedSquareNormCorr11x11_PreAlign_f(patch_space,f_img,xi,yi,&(pir->sum),&(pir->recip));
+                patch_space+=128;
+            }
+        }
+    }
+    return(patch_space);
+}
+
+short* db_FillBuckets_u(short *patch_space,const unsigned char * const *f_img,db_Bucket_u **bp,int bw,int bh,int nr_h,int nr_v,int bd,const double *x,const double *y,int nr_corners,int use_smaller_matching_window, int use_21)
+{
+    int i,xi,yi,xpos,ypos,nr;
+    db_Bucket_u *br;
+    db_PointInfo_u *pir;
+
+    db_EmptyBuckets_u(bp,nr_h,nr_v);
+    for(i=0;i<nr_corners;i++)
+    {
+        xi=(int)db_roundi(x[i]);
+        yi=(int)db_roundi(y[i]);
+        xpos=xi/bw;
+        ypos=yi/bh;
+        if(xpos>=0 && xpos<nr_h && ypos>=0 && ypos<nr_v)
+        {
+            br=&bp[ypos][xpos];
+            nr=br->nr;
+            if(nr<bd)
+            {
+                pir=&(br->ptr[nr]);
+                pir->x=xi;
+                pir->y=yi;
+                pir->id=i;
+                pir->pir=0;
+                pir->patch=patch_space;
+                br->nr=nr+1;
+
+                if(use_21)
+                {
+                    db_SignedSquareNormCorr21x21_PreAlign_u(patch_space,f_img,xi,yi,&(pir->sum),&(pir->recip));
+                    patch_space+=512;
+                }
+                else
+                {
+                if(!use_smaller_matching_window)
+                {
+                    db_SignedSquareNormCorr11x11_PreAlign_u(patch_space,f_img,xi,yi,&(pir->sum),&(pir->recip));
+                    patch_space+=128;
+                }
+                else
+                {
+                    db_SignedSquareNormCorr5x5_PreAlign_u(patch_space,f_img,xi,yi,&(pir->sum),&(pir->recip));
+                    patch_space+=32;
+                }
+                }
+            }
+        }
+    }
+    return(patch_space);
+}
+
+
+
+float* db_FillBucketsPrewarped_f(float *patch_space,const float *const *f_img,db_Bucket_f **bp,int bw,int bh,int nr_h,int nr_v,int bd,const double *x,const double *y,int nr_corners,const double H[9])
+{
+    int i,xi,yi,xpos,ypos,nr,wxi,wyi;
+    db_Bucket_f *br;
+    db_PointInfo_f *pir;
+    double xd[2],wx[2];
+
+    db_EmptyBuckets_f(bp,nr_h,nr_v);
+    for(i=0;i<nr_corners;i++)
+    {
+        xd[0]=x[i];
+        xd[1]=y[i];
+        xi=(int) xd[0];
+        yi=(int) xd[1];
+        db_ImageHomographyInhomogenous(wx,H,xd);
+        wxi=(int) wx[0];
+        wyi=(int) wx[1];
+
+        xpos=((wxi+bw)/bw)-1;
+        ypos=((wyi+bh)/bh)-1;
+        if(xpos>= -1 && xpos<=nr_h && ypos>= -1 && ypos<=nr_v)
+        {
+            br=&bp[ypos][xpos];
+            nr=br->nr;
+            if(nr<bd)
+            {
+                pir=&(br->ptr[nr]);
+                pir->x=wxi;
+                pir->y=wyi;
+                pir->id=i;
+                pir->pir=0;
+                pir->patch=patch_space;
+                br->nr=nr+1;
+
+                db_SignedSquareNormCorr11x11_PreAlign_f(patch_space,f_img,xi,yi,&(pir->sum),&(pir->recip));
+                patch_space+=128;
+            }
+        }
+    }
+    return(patch_space);
+}
+
+short* db_FillBucketsPrewarped_u(short *patch_space,const unsigned char * const *f_img,db_Bucket_u **bp,
+                                 int bw,int bh,int nr_h,int nr_v,int bd,const double *x,const double *y,
+                                 int nr_corners,const double H[9])
+{
+    int i,xi,yi,xpos,ypos,nr,wxi,wyi;
+    db_Bucket_u *br;
+    db_PointInfo_u *pir;
+    double xd[2],wx[2];
+
+    db_EmptyBuckets_u(bp,nr_h,nr_v);
+    for(i=0;i<nr_corners;i++)
+    {
+        xd[0]=x[i];
+        xd[1]=y[i];
+        xi=(int) db_roundi(xd[0]);
+        yi=(int) db_roundi(xd[1]);
+        db_ImageHomographyInhomogenous(wx,H,xd);
+        wxi=(int) wx[0];
+        wyi=(int) wx[1];
+
+        xpos=((wxi+bw)/bw)-1;
+        ypos=((wyi+bh)/bh)-1;
+        if(xpos>= -1 && xpos<=nr_h && ypos>= -1 && ypos<=nr_v)
+        {
+            br=&bp[ypos][xpos];
+            nr=br->nr;
+            if(nr<bd)
+            {
+                pir=&(br->ptr[nr]);
+                pir->x=wxi;
+                pir->y=wyi;
+                pir->id=i;
+                pir->pir=0;
+                pir->patch=patch_space;
+                br->nr=nr+1;
+
+                db_SignedSquareNormCorr11x11_PreAlign_u(patch_space,f_img,xi,yi,&(pir->sum),&(pir->recip));
+                patch_space+=128;
+            }
+        }
+    }
+    return(patch_space);
+}
+
+
+
+short* db_FillBucketsPrewarpedAffine_u(short *patch_space,const unsigned char * const *f_img,db_Bucket_u **bp,
+                                 int bw,int bh,int nr_h,int nr_v,int bd,const double *x,const double *y,
+                                 int nr_corners,const double H[9],const double Hinv[9],const int warpboundsp[4],
+                                 int affine)
+{
+    int i,xi,yi,xpos,ypos,nr,wxi,wyi;
+    db_Bucket_u *br;
+    db_PointInfo_u *pir;
+    double xd[2],wx[2];
+
+    db_EmptyBuckets_u(bp,nr_h,nr_v);
+    for(i=0;i<nr_corners;i++)
+    {
+        xd[0]=x[i];
+        xd[1]=y[i];
+        xi=(int) db_roundi(xd[0]);
+        yi=(int) db_roundi(xd[1]);
+        db_ImageHomographyInhomogenous(wx,H,xd);
+        wxi=(int) wx[0];
+        wyi=(int) wx[1];
+
+        xpos=((wxi+bw)/bw)-1;
+        ypos=((wyi+bh)/bh)-1;
+
+
+        if (xpos>= -1 && xpos<=nr_h && ypos>= -1 && ypos<=nr_v)
+        {
+            if( xi>warpboundsp[0] && xi<warpboundsp[1] && yi>warpboundsp[2] && yi<warpboundsp[3])
+            {
+
+                br=&bp[ypos][xpos];
+                nr=br->nr;
+                if(nr<bd)
+                {
+                    pir=&(br->ptr[nr]);
+                    pir->x=wxi;
+                    pir->y=wyi;
+                    pir->id=i;
+                    pir->pir=0;
+                    pir->patch=patch_space;
+                    br->nr=nr+1;
+
+                    db_SignedSquareNormCorr11x11_PreAlign_AffinePatchWarp_u(patch_space,f_img,xi,yi,&(pir->sum),&(pir->recip),Hinv,affine);
+                    patch_space+=128;
+                }
+            }
+        }
+    }
+    return(patch_space);
+}
+
+
+
+inline void db_MatchPointPair_f(db_PointInfo_f *pir_l,db_PointInfo_f *pir_r,
+                            unsigned long kA,unsigned long kB)
+{
+    int x_l,y_l,x_r,y_r,xm,ym;
+    double score;
+
+    x_l=pir_l->x;
+    y_l=pir_l->y;
+    x_r=pir_r->x;
+    y_r=pir_r->y;
+    xm=x_l-x_r;
+    ym=y_l-y_r;
+    /*Check if disparity is within the maximum disparity
+    with the formula xm^2*256+ym^2*kA<kB
+    where kA=256*w^2/h^2
+    and   kB=256*max_disp^2*w^2*/
+    if(((xm*xm)<<8)+ym*ym*kA<kB)
+    {
+        /*Correlate*/
+        score=db_SignedSquareNormCorr11x11Aligned_Post_f(pir_l->patch,pir_r->patch,
+            (pir_l->sum)*(pir_r->sum),
+            (pir_l->recip)*(pir_r->recip));
+
+        if((!(pir_l->pir)) || (score>pir_l->s))
+        {
+            /*Update left corner*/
+            pir_l->s=score;
+            pir_l->pir=pir_r;
+        }
+        if((!(pir_r->pir)) || (score>pir_r->s))
+        {
+            /*Update right corner*/
+            pir_r->s=score;
+            pir_r->pir=pir_l;
+        }
+    }
+}
+
+inline void db_MatchPointPair_u(db_PointInfo_u *pir_l,db_PointInfo_u *pir_r,
+                            unsigned long kA,unsigned long kB, unsigned int rect_window,bool use_smaller_matching_window, int use_21)
+{
+    int xm,ym;
+    double score;
+    bool compute_score;
+
+
+    if( rect_window )
+        compute_score = ((unsigned)db_absi(pir_l->x - pir_r->x)<kA && (unsigned)db_absi(pir_l->y - pir_r->y)<kB);
+    else
+    {   /*Check if disparity is within the maximum disparity
+        with the formula xm^2*256+ym^2*kA<kB
+        where kA=256*w^2/h^2
+        and   kB=256*max_disp^2*w^2*/
+        xm= pir_l->x - pir_r->x;
+        ym= pir_l->y - pir_r->y;
+        compute_score = ((xm*xm)<<8)+ym*ym*kA < kB;
+    }
+
+    if ( compute_score )
+    {
+        if(use_21)
+        {
+            score=db_SignedSquareNormCorr21x21Aligned_Post_s(pir_l->patch,pir_r->patch,
+                (pir_l->sum)*(pir_r->sum),
+                (pir_l->recip)*(pir_r->recip));
+        }
+        else
+        {
+        /*Correlate*/
+        if(!use_smaller_matching_window)
+        {
+            score=db_SignedSquareNormCorr11x11Aligned_Post_s(pir_l->patch,pir_r->patch,
+                (pir_l->sum)*(pir_r->sum),
+                (pir_l->recip)*(pir_r->recip));
+        }
+        else
+        {
+            score=db_SignedSquareNormCorr5x5Aligned_Post_s(pir_l->patch,pir_r->patch,
+                (pir_l->sum)*(pir_r->sum),
+                (pir_l->recip)*(pir_r->recip));
+        }
+        }
+
+        if((!(pir_l->pir)) || (score>pir_l->s))
+        {
+            /*Update left corner*/
+            pir_l->s=score;
+            pir_l->pir=pir_r;
+        }
+        if((!(pir_r->pir)) || (score>pir_r->s))
+        {
+            /*Update right corner*/
+            pir_r->s=score;
+            pir_r->pir=pir_l;
+        }
+    }
+}
+
+inline void db_MatchPointAgainstBucket_f(db_PointInfo_f *pir_l,db_Bucket_f *b_r,
+                                       unsigned long kA,unsigned long kB)
+{
+    int p_r,nr;
+    db_PointInfo_f *pir_r;
+
+    nr=b_r->nr;
+    pir_r=b_r->ptr;
+    for(p_r=0;p_r<nr;p_r++) db_MatchPointPair_f(pir_l,pir_r+p_r,kA,kB);
+}
+
+inline void db_MatchPointAgainstBucket_u(db_PointInfo_u *pir_l,db_Bucket_u *b_r,
+                                       unsigned long kA,unsigned long kB,int rect_window, bool use_smaller_matching_window, int use_21)
+{
+    int p_r,nr;
+    db_PointInfo_u *pir_r;
+
+    nr=b_r->nr;
+    pir_r=b_r->ptr;
+
+    for(p_r=0;p_r<nr;p_r++) db_MatchPointPair_u(pir_l,pir_r+p_r,kA,kB, rect_window, use_smaller_matching_window, use_21);
+
+}
+
+void db_MatchBuckets_f(db_Bucket_f **bp_l,db_Bucket_f **bp_r,int nr_h,int nr_v,
+                     unsigned long kA,unsigned long kB)
+{
+    int i,j,k,a,b,br_nr;
+    db_Bucket_f *br;
+    db_PointInfo_f *pir_l;
+
+    /*For all buckets*/
+    for(i=0;i<nr_v;i++) for(j=0;j<nr_h;j++)
+    {
+        br=&bp_l[i][j];
+        br_nr=br->nr;
+        /*For all points in bucket*/
+        for(k=0;k<br_nr;k++)
+        {
+            pir_l=br->ptr+k;
+            for(a=i-1;a<=i+1;a++)
+            {
+                for(b=j-1;b<=j+1;b++)
+                {
+                    db_MatchPointAgainstBucket_f(pir_l,&bp_r[a][b],kA,kB);
+                }
+            }
+        }
+    }
+}
+
+void db_MatchBuckets_u(db_Bucket_u **bp_l,db_Bucket_u **bp_r,int nr_h,int nr_v,
+                     unsigned long kA,unsigned long kB,int rect_window,bool use_smaller_matching_window, int use_21)
+{
+    int i,j,k,a,b,br_nr;
+    db_Bucket_u *br;
+    db_PointInfo_u *pir_l;
+
+    /*For all buckets*/
+    for(i=0;i<nr_v;i++) for(j=0;j<nr_h;j++)
+    {
+        br=&bp_l[i][j];
+        br_nr=br->nr;
+        /*For all points in bucket*/
+        for(k=0;k<br_nr;k++)
+        {
+            pir_l=br->ptr+k;
+            for(a=i-1;a<=i+1;a++)
+            {
+                for(b=j-1;b<=j+1;b++)
+                {
+                    db_MatchPointAgainstBucket_u(pir_l,&bp_r[a][b],kA,kB,rect_window,use_smaller_matching_window, use_21);
+                }
+            }
+        }
+    }
+}
+
+void db_CollectMatches_f(db_Bucket_f **bp_l,int nr_h,int nr_v,unsigned long target,int *id_l,int *id_r,int *nr_matches)
+{
+    int i,j,k,br_nr;
+    unsigned long count;
+    db_Bucket_f *br;
+    db_PointInfo_f *pir,*pir2;
+
+    count=0;
+    /*For all buckets*/
+    for(i=0;i<nr_v;i++) for(j=0;j<nr_h;j++)
+    {
+        br=&bp_l[i][j];
+        br_nr=br->nr;
+        /*For all points in bucket*/
+        for(k=0;k<br_nr;k++)
+        {
+            pir=br->ptr+k;
+            pir2=pir->pir;
+            if(pir2)
+            {
+                /*This point has a best match*/
+                if((pir2->pir)==pir)
+                {
+                    /*We have a mutually consistent match*/
+                    if(count<target)
+                    {
+                        id_l[count]=pir->id;
+                        id_r[count]=pir2->id;
+                        count++;
+                    }
+                }
+            }
+        }
+    }
+    *nr_matches=count;
+}
+
+void db_CollectMatches_u(db_Bucket_u **bp_l,int nr_h,int nr_v,unsigned long target,int *id_l,int *id_r,int *nr_matches)
+{
+    int i,j,k,br_nr;
+    unsigned long count;
+    db_Bucket_u *br;
+    db_PointInfo_u *pir,*pir2;
+
+    count=0;
+    /*For all buckets*/
+    for(i=0;i<nr_v;i++) for(j=0;j<nr_h;j++)
+    {
+        br=&bp_l[i][j];
+        br_nr=br->nr;
+        /*For all points in bucket*/
+        for(k=0;k<br_nr;k++)
+        {
+            pir=br->ptr+k;
+            pir2=pir->pir;
+            if(pir2)
+            {
+                /*This point has a best match*/
+                if((pir2->pir)==pir)
+                {
+                    /*We have a mutually consistent match*/
+                    if(count<target)
+                    {
+                        id_l[count]=pir->id;
+                        id_r[count]=pir2->id;
+                        count++;
+                    }
+                }
+            }
+        }
+    }
+    *nr_matches=count;
+}
+
+db_Matcher_f::db_Matcher_f()
+{
+    m_w=0; m_h=0;
+}
+
+db_Matcher_f::~db_Matcher_f()
+{
+    Clean();
+}
+
+void db_Matcher_f::Clean()
+{
+    if(m_w)
+    {
+        /*Free buckets*/
+        db_FreeBuckets_f(m_bp_l,m_nr_h,m_nr_v);
+        db_FreeBuckets_f(m_bp_r,m_nr_h,m_nr_v);
+        /*Free space for patch layouts*/
+        delete [] m_patch_space;
+    }
+    m_w=0; m_h=0;
+}
+
+unsigned long db_Matcher_f::Init(int im_width,int im_height,double max_disparity,int target_nr_corners)
+{
+    Clean();
+    m_w=im_width;
+    m_h=im_height;
+    m_bw=db_maxi(1,(int) (max_disparity*((double)im_width)));
+    m_bh=db_maxi(1,(int) (max_disparity*((double)im_height)));
+    m_nr_h=1+(im_width-1)/m_bw;
+    m_nr_v=1+(im_height-1)/m_bh;
+    m_bd=db_maxi(1,(int)(((double)target_nr_corners)*
+        max_disparity*max_disparity));
+    m_target=target_nr_corners;
+    m_kA=(long)(256.0*((double)(m_w*m_w))/((double)(m_h*m_h)));
+    m_kB=(long)(256.0*max_disparity*max_disparity*((double)(m_w*m_w)));
+
+    /*Alloc bucket structure*/
+    m_bp_l=db_AllocBuckets_f(m_nr_h,m_nr_v,m_bd);
+    m_bp_r=db_AllocBuckets_f(m_nr_h,m_nr_v,m_bd);
+
+    /*Alloc 16byte-aligned space for patch layouts*/
+    m_patch_space=new float [2*(m_nr_h+2)*(m_nr_v+2)*m_bd*128+16];
+    m_aligned_patch_space=db_AlignPointer_f(m_patch_space,16);
+
+    return(m_target);
+}
+
+void db_Matcher_f::Match(const float * const *l_img,const float * const *r_img,
+        const double *x_l,const double *y_l,int nr_l,const double *x_r,const double *y_r,int nr_r,
+        int *id_l,int *id_r,int *nr_matches,const double H[9])
+{
+    float *ps;
+
+    /*Insert the corners into bucket structure*/
+    ps=db_FillBuckets_f(m_aligned_patch_space,l_img,m_bp_l,m_bw,m_bh,m_nr_h,m_nr_v,m_bd,x_l,y_l,nr_l);
+    if(H==0) db_FillBuckets_f(ps,r_img,m_bp_r,m_bw,m_bh,m_nr_h,m_nr_v,m_bd,x_r,y_r,nr_r);
+    else db_FillBucketsPrewarped_f(ps,r_img,m_bp_r,m_bw,m_bh,m_nr_h,m_nr_v,m_bd,x_r,y_r,nr_r,H);
+
+    /*Compute all the necessary match scores*/
+    db_MatchBuckets_f(m_bp_l,m_bp_r,m_nr_h,m_nr_v,m_kA,m_kB);
+
+    /*Collect the correspondences*/
+    db_CollectMatches_f(m_bp_l,m_nr_h,m_nr_v,m_target,id_l,id_r,nr_matches);
+}
+
+db_Matcher_u::db_Matcher_u()
+{
+    m_w=0; m_h=0;
+    m_rect_window = 0;
+    m_bw=m_bh=m_nr_h=m_nr_v=m_bd=m_target=0;
+    m_bp_l=m_bp_r=0;
+    m_patch_space=m_aligned_patch_space=0;
+}
+
+db_Matcher_u::db_Matcher_u(const db_Matcher_u& cm)
+{
+    Init(cm.m_w, cm.m_h, cm.m_max_disparity, cm.m_target, cm.m_max_disparity_v);
+}
+
+db_Matcher_u& db_Matcher_u::operator= (const db_Matcher_u& cm)
+{
+    if ( this == &cm ) return *this;
+    Init(cm.m_w, cm.m_h, cm.m_max_disparity, cm.m_target, cm.m_max_disparity_v);
+    return *this;
+}
+
+
+db_Matcher_u::~db_Matcher_u()
+{
+    Clean();
+}
+
+void db_Matcher_u::Clean()
+{
+    if(m_w)
+    {
+        /*Free buckets*/
+        db_FreeBuckets_u(m_bp_l,m_nr_h,m_nr_v);
+        db_FreeBuckets_u(m_bp_r,m_nr_h,m_nr_v);
+        /*Free space for patch layouts*/
+        delete [] m_patch_space;
+    }
+    m_w=0; m_h=0;
+}
+
+
+unsigned long db_Matcher_u::Init(int im_width,int im_height,double max_disparity,int target_nr_corners,
+                                 double max_disparity_v, bool use_smaller_matching_window, int use_21)
+{
+    Clean();
+    m_w=im_width;
+    m_h=im_height;
+    m_max_disparity=max_disparity;
+    m_max_disparity_v=max_disparity_v;
+
+    if ( max_disparity_v != DB_DEFAULT_NO_DISPARITY )
+    {
+        m_rect_window = 1;
+
+        m_bw=db_maxi(1,(int)(max_disparity*((double)im_width)));
+        m_bh=db_maxi(1,(int)(max_disparity_v*((double)im_height)));
+
+        m_bd=db_maxi(1,(int)(((double)target_nr_corners)*max_disparity*max_disparity_v));
+
+        m_kA=(int)(max_disparity*m_w);
+        m_kB=(int)(max_disparity_v*m_h);
+
+    } else
+    {
+        m_bw=(int)db_maxi(1,(int)(max_disparity*((double)im_width)));
+        m_bh=(int)db_maxi(1,(int)(max_disparity*((double)im_height)));
+
+        m_bd=db_maxi(1,(int)(((double)target_nr_corners)*max_disparity*max_disparity));
+
+        m_kA=(long)(256.0*((double)(m_w*m_w))/((double)(m_h*m_h)));
+        m_kB=(long)(256.0*max_disparity*max_disparity*((double)(m_w*m_w)));
+    }
+
+    m_nr_h=1+(im_width-1)/m_bw;
+    m_nr_v=1+(im_height-1)/m_bh;
+
+    m_target=target_nr_corners;
+
+    /*Alloc bucket structure*/
+    m_bp_l=db_AllocBuckets_u(m_nr_h,m_nr_v,m_bd);
+    m_bp_r=db_AllocBuckets_u(m_nr_h,m_nr_v,m_bd);
+
+    m_use_smaller_matching_window = use_smaller_matching_window;
+    m_use_21 = use_21;
+
+    if(m_use_21)
+    {
+        /*Alloc 64byte-aligned space for patch layouts*/
+        m_patch_space=new short [2*(m_nr_h+2)*(m_nr_v+2)*m_bd*512+64];
+        m_aligned_patch_space=db_AlignPointer_s(m_patch_space,64);
+    }
+    else
+    {
+    if(!m_use_smaller_matching_window)
+    {
+        /*Alloc 16byte-aligned space for patch layouts*/
+        m_patch_space=new short [2*(m_nr_h+2)*(m_nr_v+2)*m_bd*128+16];
+        m_aligned_patch_space=db_AlignPointer_s(m_patch_space,16);
+    }
+    else
+    {
+        /*Alloc 4byte-aligned space for patch layouts*/
+        m_patch_space=new short [2*(m_nr_h+2)*(m_nr_v+2)*m_bd*32+4];
+        m_aligned_patch_space=db_AlignPointer_s(m_patch_space,4);
+    }
+    }
+
+    return(m_target);
+}
+
+void db_Matcher_u::Match(const unsigned char * const *l_img,const unsigned char * const *r_img,
+        const double *x_l,const double *y_l,int nr_l,const double *x_r,const double *y_r,int nr_r,
+        int *id_l,int *id_r,int *nr_matches,const double H[9],int affine)
+{
+    short *ps;
+
+    /*Insert the corners into bucket structure*/
+    ps=db_FillBuckets_u(m_aligned_patch_space,l_img,m_bp_l,m_bw,m_bh,m_nr_h,m_nr_v,m_bd,x_l,y_l,nr_l,m_use_smaller_matching_window,m_use_21);
+    if(H==0)
+        db_FillBuckets_u(ps,r_img,m_bp_r,m_bw,m_bh,m_nr_h,m_nr_v,m_bd,x_r,y_r,nr_r,m_use_smaller_matching_window,m_use_21);
+    else
+    {
+        if (affine)
+        {
+            double Hinv[9];
+            db_InvertAffineTransform(Hinv,H);
+            float r_w, c_w;
+            float stretch_x[2];
+            float stretch_y[2];
+            AffineWarpPointOffset(r_w,c_w,Hinv, 5,5);
+            stretch_x[0]=db_absf(c_w);stretch_y[0]=db_absf(r_w);
+            AffineWarpPointOffset(r_w,c_w,Hinv, 5,-5);
+            stretch_x[1]=db_absf(c_w);stretch_y[1]=db_absf(r_w);
+            int max_stretxh_x=(int) (db_maxd(stretch_x[0],stretch_x[1]));
+            int max_stretxh_y=(int) (db_maxd(stretch_y[0],stretch_y[1]));
+            int warpbounds[4]={max_stretxh_x,m_w-1-max_stretxh_x,max_stretxh_y,m_h-1-max_stretxh_y};
+
+            for (int r=-5;r<=5;r++){
+                for (int c=-5;c<=5;c++){
+                    AffineWarpPointOffset(r_w,c_w,Hinv,r,c);
+                    AffineWarpPoint_BL_LUT_y[r+5][c+5]=r_w;
+                    AffineWarpPoint_BL_LUT_x[r+5][c+5]=c_w;
+
+                    AffineWarpPoint_NN_LUT_y[r+5][c+5]=db_roundi(r_w);
+                    AffineWarpPoint_NN_LUT_x[r+5][c+5]=db_roundi(c_w);
+
+                }
+            }
+
+            db_FillBucketsPrewarpedAffine_u(ps,r_img,m_bp_r,m_bw,m_bh,m_nr_h,m_nr_v,m_bd,
+                x_r,y_r,nr_r,H,Hinv,warpbounds,affine);
+        }
+        else
+            db_FillBucketsPrewarped_u(ps,r_img,m_bp_r,m_bw,m_bh,m_nr_h,m_nr_v,m_bd,x_r,y_r,nr_r,H);
+    }
+
+
+    /*Compute all the necessary match scores*/
+    db_MatchBuckets_u(m_bp_l,m_bp_r,m_nr_h,m_nr_v,m_kA,m_kB, m_rect_window,m_use_smaller_matching_window,m_use_21);
+
+    /*Collect the correspondences*/
+    db_CollectMatches_u(m_bp_l,m_nr_h,m_nr_v,m_target,id_l,id_r,nr_matches);
+}
+
+int db_Matcher_u::IsAllocated()
+{
+    return (int)(m_w != 0);
+}
diff --git a/perftests/panorama/feature_stab/db_vlvm/db_feature_matching.h b/perftests/panorama/feature_stab/db_vlvm/db_feature_matching.h
new file mode 100644
index 0000000..6c056b9
--- /dev/null
+++ b/perftests/panorama/feature_stab/db_vlvm/db_feature_matching.h
@@ -0,0 +1,260 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+/*$Id: db_feature_matching.h,v 1.3 2011/06/17 14:03:30 mbansal Exp $*/
+
+#ifndef DB_FEATURE_MATCHING_H
+#define DB_FEATURE_MATCHING_H
+
+/*****************************************************************
+*    Lean and mean begins here                                   *
+*****************************************************************/
+/*!
+ * \defgroup FeatureMatching Feature Matching
+ */
+#include "db_utilities.h"
+#include "db_utilities_constants.h"
+
+DB_API void db_SignedSquareNormCorr21x21_PreAlign_u(short *patch,const unsigned char * const *f_img,int x_f,int y_f,float *sum,float *recip);
+DB_API void db_SignedSquareNormCorr11x11_PreAlign_u(short *patch,const unsigned char * const *f_img,int x_f,int y_f,float *sum,float *recip);
+float db_SignedSquareNormCorr21x21Aligned_Post_s(const short *f_patch,const short *g_patch,float fsum_gsum,float f_recip_g_recip);
+float db_SignedSquareNormCorr11x11Aligned_Post_s(const short *f_patch,const short *g_patch,float fsum_gsum,float f_recip_g_recip);
+
+class db_PointInfo_f
+{
+public:
+    /*Coordinates of point*/
+    int x;
+    int y;
+    /*Id nr of point*/
+    int id;
+    /*Best match score*/
+    double s;
+    /*Best match candidate*/
+    db_PointInfo_f *pir;
+    /*Precomputed coefficients
+    of image patch*/
+    float sum;
+    float recip;
+    /*Pointer to patch layout*/
+    const float *patch;
+};
+
+class db_Bucket_f
+{
+public:
+    db_PointInfo_f *ptr;
+    int nr;
+};
+
+class db_PointInfo_u
+{
+public:
+    /*Coordinates of point*/
+    int x;
+    int y;
+    /*Id nr of point*/
+    int id;
+    /*Best match score*/
+    double s;
+    /*Best match candidate*/
+    db_PointInfo_u *pir;
+    /*Precomputed coefficients
+    of image patch*/
+    float sum;
+    float recip;
+    /*Pointer to patch layout*/
+    const short *patch;
+};
+
+class db_Bucket_u
+{
+public:
+    db_PointInfo_u *ptr;
+    int nr;
+};
+/*!
+ * \class db_Matcher_f
+ * \ingroup FeatureMatching
+ * \brief Feature matcher for float images.
+ *
+ * Normalized correlation feature matcher for <b>float</b> images.
+ * Correlation window size is constant and set to 11x11.
+ * See \ref FeatureDetection to detect Harris corners.
+ * Images are managed with functions in \ref LMImageBasicUtilities.
+ */
+class DB_API db_Matcher_f
+{
+public:
+    db_Matcher_f();
+    ~db_Matcher_f();
+
+    /*!
+     * Set parameters and pre-allocate memory. Return an upper bound
+     * on the number of matches.
+     * \param im_width          width
+     * \param im_height         height
+     * \param max_disparity     maximum distance (as fraction of image size) between matches
+     * \param target_nr_corners maximum number of matches
+     * \return maximum number of matches
+     */
+    unsigned long Init(int im_width,int im_height,
+        double max_disparity=DB_DEFAULT_MAX_DISPARITY,
+        int target_nr_corners=DB_DEFAULT_TARGET_NR_CORNERS);
+
+    /*!
+     * Match two sets of features.
+     * If the prewarp H is not NULL it will be applied to the features
+     * in the right image before matching.
+     * Parameters id_l and id_r must point to arrays of size target_nr_corners
+     * (returned by Init()).
+     * The results of matching are in id_l and id_r.
+     * Interpretaqtion of results: if id_l[i] = m and id_r[i] = n,
+     * feature at (x_l[m],y_l[m]) matched to (x_r[n],y_r[n]).
+     * \param l_img     left image
+     * \param r_img     right image
+     * \param x_l       left x coordinates of features
+     * \param y_l       left y coordinates of features
+     * \param nr_l      number of features in left image
+     * \param x_r       right x coordinates of features
+     * \param y_r       right y coordinates of features
+     * \param nr_r      number of features in right image
+     * \param id_l      indices of left features that matched
+     * \param id_r      indices of right features that matched
+     * \param nr_matches    number of features actually matched
+     * \param H         image homography (prewarp) to be applied to right image features
+     */
+    void Match(const float * const *l_img,const float * const *r_img,
+        const double *x_l,const double *y_l,int nr_l,const double *x_r,const double *y_r,int nr_r,
+        int *id_l,int *id_r,int *nr_matches,const double H[9]=0);
+
+protected:
+    void Clean();
+
+    int m_w,m_h,m_bw,m_bh,m_nr_h,m_nr_v,m_bd,m_target;
+    unsigned long m_kA,m_kB;
+    db_Bucket_f **m_bp_l;
+    db_Bucket_f **m_bp_r;
+    float *m_patch_space,*m_aligned_patch_space;
+};
+/*!
+ * \class db_Matcher_u
+ * \ingroup FeatureMatching
+ * \brief Feature matcher for byte images.
+ *
+ * Normalized correlation feature matcher for <b>byte</b> images.
+ * Correlation window size is constant and set to 11x11.
+ * See \ref FeatureDetection to detect Harris corners.
+ * Images are managed with functions in \ref LMImageBasicUtilities.
+ *
+ * If the prewarp matrix H is supplied, the feature coordinates are warped by H before being placed in
+ * appropriate buckets. If H is an affine transform and the "affine" parameter is set to 1 or 2,
+ * then the correlation patches themselves are warped before being placed in the patch space.
+ */
+class DB_API db_Matcher_u
+{
+public:
+    db_Matcher_u();
+
+    int GetPatchSize(){return 11;};
+
+    virtual ~db_Matcher_u();
+
+    /*!
+     Copy ctor duplicates settings.
+     Memory not copied.
+     */
+    db_Matcher_u(const db_Matcher_u& cm);
+
+    /*!
+     Assignment optor duplicates settings
+     Memory not copied.
+     */
+    db_Matcher_u& operator= (const db_Matcher_u& cm);
+
+    /*!
+     * Set parameters and pre-allocate memory. Return an upper bound
+     * on the number of matches.
+     * If max_disparity_v is DB_DEFAULT_NO_DISPARITY, look for matches
+     * in a ellipse around a feature of radius max_disparity*im_width by max_disparity*im_height.
+     * If max_disparity_v is specified, use a rectangle max_disparity*im_width by max_disparity_v*im_height.
+     * \param im_width          width
+     * \param im_height         height
+     * \param max_disparity     maximum distance (as fraction of image size) between matches
+     * \param target_nr_corners maximum number of matches
+     * \param max_disparity_v   maximum vertical disparity (distance between matches)
+     * \param use_smaller_matching_window   if set to true, uses a correlation window of 5x5 instead of the default 11x11
+     * \return maximum number of matches
+     */
+    virtual unsigned long Init(int im_width,int im_height,
+        double max_disparity=DB_DEFAULT_MAX_DISPARITY,
+        int target_nr_corners=DB_DEFAULT_TARGET_NR_CORNERS,
+        double max_disparity_v=DB_DEFAULT_NO_DISPARITY,
+        bool use_smaller_matching_window=false, int use_21=0);
+
+    /*!
+     * Match two sets of features.
+     * If the prewarp H is not NULL it will be applied to the features
+     * in the right image before matching.
+     * Parameters id_l and id_r must point to arrays of size target_nr_corners
+     * (returned by Init()).
+     * The results of matching are in id_l and id_r.
+     * Interpretaqtion of results: if id_l[i] = m and id_r[i] = n,
+     * feature at (x_l[m],y_l[m]) matched to (x_r[n],y_r[n]).
+     * \param l_img     left image
+     * \param r_img     right image
+     * \param x_l       left x coordinates of features
+     * \param y_l       left y coordinates of features
+     * \param nr_l      number of features in left image
+     * \param x_r       right x coordinates of features
+     * \param y_r       right y coordinates of features
+     * \param nr_r      number of features in right image
+     * \param id_l      indices of left features that matched
+     * \param id_r      indices of right features that matched
+     * \param nr_matches    number of features actually matched
+     * \param H         image homography (prewarp) to be applied to right image features
+     * \param affine    prewarp the 11x11 patches by given affine transform. 0 means no warping,
+                        1 means nearest neighbor, 2 means bilinear warping.
+     */
+    virtual void Match(const unsigned char * const *l_img,const unsigned char * const *r_img,
+        const double *x_l,const double *y_l,int nr_l,const double *x_r,const double *y_r,int nr_r,
+        int *id_l,int *id_r,int *nr_matches,const double H[9]=0,int affine=0);
+
+    /*!
+     * Checks if Init() was called.
+     * \return 1 if Init() was called, 0 otherwise.
+     */
+    int IsAllocated();
+
+protected:
+    virtual void Clean();
+
+
+    int m_w,m_h,m_bw,m_bh,m_nr_h,m_nr_v,m_bd,m_target;
+    unsigned long m_kA,m_kB;
+    db_Bucket_u **m_bp_l;
+    db_Bucket_u **m_bp_r;
+    short *m_patch_space,*m_aligned_patch_space;
+
+    double m_max_disparity, m_max_disparity_v;
+    int m_rect_window;
+    bool m_use_smaller_matching_window;
+    int m_use_21;
+};
+
+
+
+#endif /*DB_FEATURE_MATCHING_H*/
diff --git a/perftests/panorama/feature_stab/db_vlvm/db_framestitching.cpp b/perftests/panorama/feature_stab/db_vlvm/db_framestitching.cpp
new file mode 100644
index 0000000..b574f7a
--- /dev/null
+++ b/perftests/panorama/feature_stab/db_vlvm/db_framestitching.cpp
@@ -0,0 +1,169 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+/* $Id: db_framestitching.cpp,v 1.2 2011/06/17 14:03:30 mbansal Exp $ */
+
+#include "db_utilities.h"
+#include "db_framestitching.h"
+
+
+
+/*****************************************************************
+*    Lean and mean begins here                                   *
+*****************************************************************/
+
+inline void db_RotationFromMOuterProductSum(double R[9],double *score,double M[9])
+{
+    double N[16],q[4],lambda[4],lambda_max;
+    double y[4];
+    int nr_roots;
+
+    N[0]=   M[0]+M[4]+M[8];
+    N[5]=   M[0]-M[4]-M[8];
+    N[10]= -M[0]+M[4]-M[8];
+    N[15]= -M[0]-M[4]+M[8];
+    N[1] =N[4] =M[5]-M[7];
+    N[2] =N[8] =M[6]-M[2];
+    N[3] =N[12]=M[1]-M[3];
+    N[6] =N[9] =M[1]+M[3];
+    N[7] =N[13]=M[6]+M[2];
+    N[11]=N[14]=M[5]+M[7];
+
+    /*get the quaternion representing the rotation
+    by finding the eigenvector corresponding to the most
+    positive eigenvalue. Force eigenvalue solutions, since the matrix
+    is symmetric and solutions might otherwise be lost
+    when the data is planar*/
+    db_RealEigenvalues4x4(lambda,&nr_roots,N,1);
+    if(nr_roots)
+    {
+        lambda_max=lambda[0];
+        if(nr_roots>=2)
+        {
+            if(lambda[1]>lambda_max) lambda_max=lambda[1];
+            if(nr_roots>=3)
+            {
+                if(lambda[2]>lambda_max) lambda_max=lambda[2];
+                {
+                    if(nr_roots>=4) if(lambda[3]>lambda_max) lambda_max=lambda[3];
+                }
+            }
+        }
+    }
+    else lambda_max=1.0;
+    db_EigenVector4x4(q,lambda_max,N);
+
+    /*Compute the rotation matrix*/
+    db_QuaternionToRotation(R,q);
+
+    if(score)
+    {
+        /*Compute score=transpose(q)*N*q */
+        db_Multiply4x4_4x1(y,N,q);
+        *score=db_ScalarProduct4(q,y);
+    }
+}
+
+void db_StitchSimilarity3DRaw(double *scale,double R[9],double t[3],
+                            double **Xp,double **X,int nr_points,int orientation_preserving,
+                            int allow_scaling,int allow_rotation,int allow_translation)
+{
+    int i;
+    double c[3],cp[3],r[3],rp[3],M[9],s,sp,sc;
+    double Rr[9],score_p,score_r;
+    double *temp,*temp_p;
+
+    if(allow_translation)
+    {
+        db_PointCentroid3D(c,X,nr_points);
+        db_PointCentroid3D(cp,Xp,nr_points);
+    }
+    else
+    {
+        db_Zero3(c);
+        db_Zero3(cp);
+    }
+
+    db_Zero9(M);
+    s=sp=0;
+    for(i=0;i<nr_points;i++)
+    {
+        temp=   *X++;
+        temp_p= *Xp++;
+        r[0]=(*temp++)-c[0];
+        r[1]=(*temp++)-c[1];
+        r[2]=(*temp++)-c[2];
+        rp[0]=(*temp_p++)-cp[0];
+        rp[1]=(*temp_p++)-cp[1];
+        rp[2]=(*temp_p++)-cp[2];
+
+        M[0]+=r[0]*rp[0];
+        M[1]+=r[0]*rp[1];
+        M[2]+=r[0]*rp[2];
+        M[3]+=r[1]*rp[0];
+        M[4]+=r[1]*rp[1];
+        M[5]+=r[1]*rp[2];
+        M[6]+=r[2]*rp[0];
+        M[7]+=r[2]*rp[1];
+        M[8]+=r[2]*rp[2];
+
+        s+=db_sqr(r[0])+db_sqr(r[1])+db_sqr(r[2]);
+        sp+=db_sqr(rp[0])+db_sqr(rp[1])+db_sqr(rp[2]);
+    }
+
+    /*Compute scale*/
+    if(allow_scaling) sc=sqrt(db_SafeDivision(sp,s));
+    else sc=1.0;
+    *scale=sc;
+
+    /*Compute rotation*/
+    if(allow_rotation)
+    {
+        if(orientation_preserving)
+        {
+            db_RotationFromMOuterProductSum(R,0,M);
+        }
+        else
+        {
+            /*Try preserving*/
+            db_RotationFromMOuterProductSum(R,&score_p,M);
+            /*Try reversing*/
+            M[6]= -M[6];
+            M[7]= -M[7];
+            M[8]= -M[8];
+            db_RotationFromMOuterProductSum(Rr,&score_r,M);
+            if(score_r>score_p)
+            {
+                /*Reverse is better*/
+                R[0]=Rr[0]; R[1]=Rr[1]; R[2]= -Rr[2];
+                R[3]=Rr[3]; R[4]=Rr[4]; R[5]= -Rr[5];
+                R[6]=Rr[6]; R[7]=Rr[7]; R[8]= -Rr[8];
+            }
+        }
+    }
+    else db_Identity3x3(R);
+
+    /*Compute translation*/
+    if(allow_translation)
+    {
+        t[0]=cp[0]-sc*(R[0]*c[0]+R[1]*c[1]+R[2]*c[2]);
+        t[1]=cp[1]-sc*(R[3]*c[0]+R[4]*c[1]+R[5]*c[2]);
+        t[2]=cp[2]-sc*(R[6]*c[0]+R[7]*c[1]+R[8]*c[2]);
+    }
+    else db_Zero3(t);
+}
+
+
diff --git a/perftests/panorama/feature_stab/db_vlvm/db_framestitching.h b/perftests/panorama/feature_stab/db_vlvm/db_framestitching.h
new file mode 100644
index 0000000..5fef5f3
--- /dev/null
+++ b/perftests/panorama/feature_stab/db_vlvm/db_framestitching.h
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+/* $Id: db_framestitching.h,v 1.2 2011/06/17 14:03:31 mbansal Exp $ */
+
+#ifndef DB_FRAMESTITCHING_H
+#define DB_FRAMESTITCHING_H
+/*!
+ * \defgroup FrameStitching Frame Stitching (2D and 3D homography estimation)
+ */
+/*\{*/
+
+
+/*****************************************************************
+*    Lean and mean begins here                                   *
+*****************************************************************/
+/*!
+ * \defgroup LMFrameStitching (LM) Frame Stitching (2D and 3D homography estimation)
+ */
+/*\{*/
+
+/*!
+Find scale, rotation and translation of the similarity that
+takes the nr_points inhomogenous 3D points X to Xp
+(left to right according to Horn), i.e. for the homogenous equivalents
+Xp and X we would have
+\code
+    Xp~
+    [sR t]*X
+    [0  1]
+\endcode
+If orientation_preserving is true, R is restricted such that det(R)>0.
+allow_scaling, allow_rotation and allow_translation allow s,R and t
+to differ from 1,Identity and 0
+
+Full similarity takes the following on 550MHz:
+\code
+4.5 microseconds with       3 points
+4.7 microseconds with       4 points
+5.0 microseconds with       5 points
+5.2 microseconds with       6 points
+5.8 microseconds with      10 points
+20  microseconds with     100 points
+205 microseconds with    1000 points
+2.9 milliseconds with   10000 points
+50  milliseconds with  100000 points
+0.5 seconds      with 1000000 points
+\endcode
+Without orientation_preserving:
+\code
+4 points is minimal for (s,R,t) (R,t)
+3 points is minimal for (s,R) (R)
+2 points is minimal for (s,t)
+1 point is minimal for  (s) (t)
+\endcode
+With orientation_preserving:
+\code
+3 points is minimal for (s,R,t) (R,t)
+2 points is minimal for (s,R) (s,t) (R)
+1 point is minimal for  (s) (t)
+\endcode
+
+\param scale                    scale
+\param R                        rotation
+\param t                        translation
+\param Xp                       inhomogenouse 3D points in first coordinate system
+\param X                        inhomogenouse 3D points in second coordinate system
+\param nr_points                number of points
+\param orientation_preserving   if true, R is restricted such that det(R)>0.
+\param allow_scaling            estimate scale
+\param allow_rotation           estimate rotation
+\param allow_translation        estimate translation
+*/
+DB_API void db_StitchSimilarity3DRaw(double *scale,double R[9],double t[3],
+                            double **Xp,double **X,int nr_points,int orientation_preserving=1,
+                            int allow_scaling=1,int allow_rotation=1,int allow_translation=1);
+
+
+/*\}*/
+
+#endif /* DB_FRAMESTITCHING_H */
diff --git a/perftests/panorama/feature_stab/db_vlvm/db_image_homography.cpp b/perftests/panorama/feature_stab/db_vlvm/db_image_homography.cpp
new file mode 100644
index 0000000..aaad7f8
--- /dev/null
+++ b/perftests/panorama/feature_stab/db_vlvm/db_image_homography.cpp
@@ -0,0 +1,332 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+/* $Id: db_image_homography.cpp,v 1.2 2011/06/17 14:03:31 mbansal Exp $ */
+
+#include "db_utilities.h"
+#include "db_image_homography.h"
+#include "db_framestitching.h"
+#include "db_metrics.h"
+
+
+
+/*****************************************************************
+*    Lean and mean begins here                                   *
+*****************************************************************/
+
+/*Compute the linear constraint on H obtained by requiring that the
+ratio between coordinate i_num and i_den of xp is equal to the ratio
+between coordinate i_num and i_den of Hx. i_zero should be set to
+the coordinate not equal to i_num or i_den. No normalization is used*/
+inline void db_SProjImagePointPointConstraint(double c[9],int i_num,int i_den,int i_zero,
+                           double xp[3],double x[3])
+{
+    db_MultiplyScalarCopy3(c+3*i_den,x,  xp[i_num]);
+    db_MultiplyScalarCopy3(c+3*i_num,x, -xp[i_den]);
+    db_Zero3(c+3*i_zero);
+}
+
+/*Compute two constraints on H generated by the correspondence (Xp,X),
+assuming that Xp ~= H*X. No normalization is used*/
+inline void db_SProjImagePointPointConstraints(double c1[9],double c2[9],double xp[3],double x[3])
+{
+    int ma_ind;
+
+    /*Find index of coordinate of Xp with largest absolute value*/
+    ma_ind=db_MaxAbsIndex3(xp);
+
+    /*Generate 2 constraints,
+    each constraint is generated by considering the ratio between a
+    coordinate and the largest absolute value coordinate*/
+    switch(ma_ind)
+    {
+    case 0:
+        db_SProjImagePointPointConstraint(c1,1,0,2,xp,x);
+        db_SProjImagePointPointConstraint(c2,2,0,1,xp,x);
+        break;
+    case 1:
+        db_SProjImagePointPointConstraint(c1,0,1,2,xp,x);
+        db_SProjImagePointPointConstraint(c2,2,1,0,xp,x);
+        break;
+    default:
+        db_SProjImagePointPointConstraint(c1,0,2,1,xp,x);
+        db_SProjImagePointPointConstraint(c2,1,2,0,xp,x);
+    }
+}
+
+inline void db_SAffineImagePointPointConstraints(double c1[7],double c2[7],double xp[3],double x[3])
+{
+    double ct1[9],ct2[9];
+
+    db_SProjImagePointPointConstraints(ct1,ct2,xp,x);
+    db_Copy6(c1,ct1); c1[6]=ct1[8];
+    db_Copy6(c2,ct2); c2[6]=ct2[8];
+}
+
+void db_StitchProjective2D_4Points(double H[9],
+                                      double x1[3],double x2[3],double x3[3],double x4[3],
+                                      double xp1[3],double xp2[3],double xp3[3],double xp4[3])
+{
+    double c[72];
+
+    /*Collect the constraints*/
+    db_SProjImagePointPointConstraints(c   ,c+9 ,xp1,x1);
+    db_SProjImagePointPointConstraints(c+18,c+27,xp2,x2);
+    db_SProjImagePointPointConstraints(c+36,c+45,xp3,x3);
+    db_SProjImagePointPointConstraints(c+54,c+63,xp4,x4);
+    /*Solve for the nullvector*/
+    db_NullVector8x9Destructive(H,c);
+}
+
+void db_StitchAffine2D_3Points(double H[9],
+                                      double x1[3],double x2[3],double x3[3],
+                                      double xp1[3],double xp2[3],double xp3[3])
+{
+    double c[42];
+
+    /*Collect the constraints*/
+    db_SAffineImagePointPointConstraints(c   ,c+7 ,xp1,x1);
+    db_SAffineImagePointPointConstraints(c+14,c+21,xp2,x2);
+    db_SAffineImagePointPointConstraints(c+28,c+35,xp3,x3);
+    /*Solve for the nullvector*/
+    db_NullVector6x7Destructive(H,c);
+    db_MultiplyScalar6(H,db_SafeReciprocal(H[6]));
+    H[6]=H[7]=0; H[8]=1.0;
+}
+
+/*Compute up to three solutions for the focal length given two point correspondences
+generated by a rotation with a common unknown focal length. No specific normalization
+of the input points is required. If signed_disambiguation is true, the points are
+required to be in front of the camera*/
+inline void db_CommonFocalLengthFromRotation_2Point(double fsol[3],int *nr_sols,double x1[3],double x2[3],double xp1[3],double xp2[3],int signed_disambiguation=1)
+{
+    double m,ax,ay,apx,apy,bx,by,bpx,bpy;
+    double p1[2],p2[2],p3[2],p4[2],p5[2],p6[2];
+    double p7[3],p8[4],p9[5],p10[3],p11[4];
+    double roots[3];
+    int nr_roots,i,j;
+
+    /*Solve for focal length using the equation
+    <a,b>^2*<ap,ap><bp,bp>=<ap,bp>^2*<a,a><b,b>
+    where a and ap are the homogenous vectors in the first image
+    after focal length scaling and b,bp are the vectors in the
+    second image*/
+
+    /*Normalize homogenous coordinates so that last coordinate is one*/
+    m=db_SafeReciprocal(x1[2]);
+    ax=x1[0]*m;
+    ay=x1[1]*m;
+    m=db_SafeReciprocal(xp1[2]);
+    apx=xp1[0]*m;
+    apy=xp1[1]*m;
+    m=db_SafeReciprocal(x2[2]);
+    bx=x2[0]*m;
+    by=x2[1]*m;
+    m=db_SafeReciprocal(xp2[2]);
+    bpx=xp2[0]*m;
+    bpy=xp2[1]*m;
+
+    /*Compute cubic in l=1/(f^2)
+    by dividing out the root l=0 from the equation
+    (l(ax*bx+ay*by)+1)^2*(l(apx^2+apy^2)+1)*(l(bpx^2+bpy^2)+1)=
+    (l(apx*bpx+apy*bpy)+1)^2*(l(ax^2+ay^2)+1)*(l(bx^2+by^2)+1)*/
+    p1[1]=ax*bx+ay*by;
+    p2[1]=db_sqr(apx)+db_sqr(apy);
+    p3[1]=db_sqr(bpx)+db_sqr(bpy);
+    p4[1]=apx*bpx+apy*bpy;
+    p5[1]=db_sqr(ax)+db_sqr(ay);
+    p6[1]=db_sqr(bx)+db_sqr(by);
+    p1[0]=p2[0]=p3[0]=p4[0]=p5[0]=p6[0]=1;
+
+    db_MultiplyPoly1_1(p7,p1,p1);
+    db_MultiplyPoly1_2(p8,p2,p7);
+    db_MultiplyPoly1_3(p9,p3,p8);
+
+    db_MultiplyPoly1_1(p10,p4,p4);
+    db_MultiplyPoly1_2(p11,p5,p10);
+    db_SubtractPolyProduct1_3(p9,p6,p11);
+    /*Cubic starts at p9[1]*/
+    db_SolveCubic(roots,&nr_roots,p9[4],p9[3],p9[2],p9[1]);
+
+    for(j=0,i=0;i<nr_roots;i++)
+    {
+        if(roots[i]>0)
+        {
+            if((!signed_disambiguation) || (db_PolyEval1(p1,roots[i])*db_PolyEval1(p4,roots[i])>0))
+            {
+                fsol[j++]=db_SafeSqrtReciprocal(roots[i]);
+            }
+        }
+    }
+    *nr_sols=j;
+}
+
+int db_StitchRotationCommonFocalLength_3Points(double H[9],double x1[3],double x2[3],double x3[3],double xp1[3],double xp2[3],double xp3[3],double *f,int signed_disambiguation)
+{
+    double fsol[3];
+    int nr_sols,i,best_sol,done;
+    double cost,best_cost;
+    double m,hyp[27],x1_temp[3],x2_temp[3],xp1_temp[3],xp2_temp[3];
+    double *hyp_point,ft;
+    double y[2];
+
+    db_CommonFocalLengthFromRotation_2Point(fsol,&nr_sols,x1,x2,xp1,xp2,signed_disambiguation);
+    if(nr_sols)
+    {
+        db_DeHomogenizeImagePoint(y,xp3);
+        done=0;
+        for(i=0;i<nr_sols;i++)
+        {
+            ft=fsol[i];
+            m=db_SafeReciprocal(ft);
+            x1_temp[0]=x1[0]*m;
+            x1_temp[1]=x1[1]*m;
+            x1_temp[2]=x1[2];
+            x2_temp[0]=x2[0]*m;
+            x2_temp[1]=x2[1]*m;
+            x2_temp[2]=x2[2];
+            xp1_temp[0]=xp1[0]*m;
+            xp1_temp[1]=xp1[1]*m;
+            xp1_temp[2]=xp1[2];
+            xp2_temp[0]=xp2[0]*m;
+            xp2_temp[1]=xp2[1]*m;
+            xp2_temp[2]=xp2[2];
+
+            hyp_point=hyp+9*i;
+            db_StitchCameraRotation_2Points(hyp_point,x1_temp,x2_temp,xp1_temp,xp2_temp);
+            hyp_point[2]*=ft;
+            hyp_point[5]*=ft;
+            hyp_point[6]*=m;
+            hyp_point[7]*=m;
+            cost=db_SquaredReprojectionErrorHomography(y,hyp_point,x3);
+
+            if(!done || cost<best_cost)
+            {
+                done=1;
+                best_cost=cost;
+                best_sol=i;
+            }
+        }
+
+        if(f) *f=fsol[best_sol];
+        db_Copy9(H,hyp+9*best_sol);
+        return(1);
+    }
+    else
+    {
+        db_Identity3x3(H);
+        if(f) *f=1.0;
+        return(0);
+    }
+}
+
+void db_StitchSimilarity2DRaw(double *scale,double R[4],double t[2],
+                            double **Xp,double **X,int nr_points,int orientation_preserving,
+                            int allow_scaling,int allow_rotation,int allow_translation)
+{
+    int i;
+    double c[2],cp[2],r[2],rp[2],M[4],s,sp,sc;
+    double *temp,*temp_p;
+    double Aacc,Bacc,Aacc2,Bacc2,divisor,divisor2,m,Am,Bm;
+
+    if(allow_translation)
+    {
+        db_PointCentroid2D(c,X,nr_points);
+        db_PointCentroid2D(cp,Xp,nr_points);
+    }
+    else
+    {
+        db_Zero2(c);
+        db_Zero2(cp);
+    }
+
+    db_Zero4(M);
+    s=sp=0;
+    for(i=0;i<nr_points;i++)
+    {
+        temp=   *X++;
+        temp_p= *Xp++;
+        r[0]=(*temp++)-c[0];
+        r[1]=(*temp++)-c[1];
+        rp[0]=(*temp_p++)-cp[0];
+        rp[1]=(*temp_p++)-cp[1];
+
+        M[0]+=r[0]*rp[0];
+        M[1]+=r[0]*rp[1];
+        M[2]+=r[1]*rp[0];
+        M[3]+=r[1]*rp[1];
+
+        s+=db_sqr(r[0])+db_sqr(r[1]);
+        sp+=db_sqr(rp[0])+db_sqr(rp[1]);
+    }
+
+    /*Compute scale*/
+    if(allow_scaling) sc=sqrt(db_SafeDivision(sp,s));
+    else sc=1.0;
+    *scale=sc;
+
+    /*Compute rotation*/
+    if(allow_rotation)
+    {
+        /*orientation preserving*/
+        Aacc=M[0]+M[3];
+        Bacc=M[2]-M[1];
+        /*orientation reversing*/
+        Aacc2=M[0]-M[3];
+        Bacc2=M[2]+M[1];
+        if(Aacc!=0.0 || Bacc!=0.0)
+        {
+            divisor=sqrt(Aacc*Aacc+Bacc*Bacc);
+            m=db_SafeReciprocal(divisor);
+            Am=Aacc*m;
+            Bm=Bacc*m;
+            R[0]=  Am;
+            R[1]=  Bm;
+            R[2]= -Bm;
+            R[3]=  Am;
+        }
+        else
+        {
+            db_Identity2x2(R);
+            divisor=0.0;
+        }
+        if(!orientation_preserving && (Aacc2!=0.0 || Bacc2!=0.0))
+        {
+            divisor2=sqrt(Aacc2*Aacc2+Bacc2*Bacc2);
+            if(divisor2>divisor)
+            {
+                m=db_SafeReciprocal(divisor2);
+                Am=Aacc2*m;
+                Bm=Bacc2*m;
+                R[0]=  Am;
+                R[1]=  Bm;
+                R[2]=  Bm;
+                R[3]= -Am;
+            }
+        }
+    }
+    else db_Identity2x2(R);
+
+    /*Compute translation*/
+    if(allow_translation)
+    {
+        t[0]=cp[0]-sc*(R[0]*c[0]+R[1]*c[1]);
+        t[1]=cp[1]-sc*(R[2]*c[0]+R[3]*c[1]);
+    }
+    else db_Zero2(t);
+}
+
+
diff --git a/perftests/panorama/feature_stab/db_vlvm/db_image_homography.h b/perftests/panorama/feature_stab/db_vlvm/db_image_homography.h
new file mode 100644
index 0000000..165447d
--- /dev/null
+++ b/perftests/panorama/feature_stab/db_vlvm/db_image_homography.h
@@ -0,0 +1,183 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+/* $Id: db_image_homography.h,v 1.2 2011/06/17 14:03:31 mbansal Exp $ */
+
+#ifndef DB_IMAGE_HOMOGRAPHY
+#define DB_IMAGE_HOMOGRAPHY
+
+
+
+/*****************************************************************
+*    Lean and mean begins here                                   *
+*****************************************************************/
+
+#include "db_framestitching.h"
+/*!
+ * \defgroup LMImageHomography (LM) Image Homography Estimation (feature based)
+ */
+/*\{*/
+/*!
+Solve for projective H such that xp~Hx. Prior normalization is not necessary,
+although desirable for numerical conditioning
+\param H    image projective (out)
+\param x1   image 1 point 1
+\param x2   image 1 point 2
+\param x3   image 1 point 3
+\param x4   image 1 point 4
+\param xp1  image 2 point 1
+\param xp2  image 2 point 2
+\param xp3  image 2 point 3
+\param xp4  image 2 point 4
+*/
+DB_API void db_StitchProjective2D_4Points(double H[9],
+                                      double x1[3],double x2[3],double x3[3],double x4[3],
+                                      double xp1[3],double xp2[3],double xp3[3],double xp4[3]);
+
+/*!
+Solve for affine H such that xp~Hx. Prior normalization is not necessary,
+although desirable for numerical conditioning
+\param H    image projective (out)
+\param x1   image 1 point 1
+\param x2   image 1 point 2
+\param x3   image 1 point 3
+\param xp1  image 2 point 1
+\param xp2  image 2 point 2
+\param xp3  image 2 point 3
+*/
+DB_API void db_StitchAffine2D_3Points(double H[9],
+                                      double x1[3],double x2[3],double x3[3],
+                                      double xp1[3],double xp2[3],double xp3[3]);
+
+/*!
+Solve for rotation R such that xp~Rx.
+Image points have to be of unit norm for the least squares to be meaningful.
+\param R    image rotation (out)
+\param x1   image 1 point 1
+\param x2   image 1 point 2
+\param xp1  image 2 point 1
+\param xp2  image 2 point 2
+*/
+inline void db_StitchCameraRotation_2Points(double R[9],
+                                            /*Image points have to be of unit norm
+                                            for the least squares to be meaningful*/
+                                            double x1[3],double x2[3],
+                                            double xp1[3],double xp2[3])
+{
+    double* x[2];
+    double* xp[2];
+    double scale,t[3];
+
+    x[0]=x1;
+    x[1]=x2;
+    xp[0]=xp1;
+    xp[1]=xp2;
+    db_StitchSimilarity3DRaw(&scale,R,t,xp,x,2,1,0,1,0);
+}
+
+/*!
+Solve for a homography H generated by a rotation R with a common unknown focal length f, i.e.
+H=diag(f,f,1)*R*diag(1/f,1/f,1) such that xp~Hx.
+If signed_disambiguation is true, the points are
+required to be in front of the camera. No specific normalization of the homogenous points
+is required, although it could be desirable to keep x1,x2,xp1 and xp2 of reasonable magnitude.
+If a solution is obtained the function returns 1, otherwise 0. If the focal length is desired
+a valid pointer should be passed in f
+*/
+DB_API int db_StitchRotationCommonFocalLength_3Points(double H[9],double x1[3],double x2[3],double x3[3],
+                                                      double xp1[3],double xp2[3],double xp3[3],double *f=0,int signed_disambiguation=1);
+
+/*!
+Find scale, rotation and translation of the similarity that
+takes the nr_points inhomogenous 2D points X to Xp,
+i.e. for the homogenous equivalents
+Xp and X we would have
+\code
+Xp~
+[sR t]*X
+[0  1]
+\endcode
+If orientation_preserving is true, R is restricted such that det(R)>0.
+allow_scaling, allow_rotation and allow_translation allow s,R and t
+to differ from 1,Identity and 0
+
+Full similarity takes the following on 550MHz:
+\code
+0.9 microseconds with       2 points
+1.0 microseconds with       3 points
+1.1 microseconds with       4 points
+1.3 microseconds with       5 points
+1.4 microseconds with       6 points
+1.7 microseconds with      10 points
+9   microseconds with     100 points
+130 microseconds with    1000 points
+1.3 milliseconds with   10000 points
+35  milliseconds with  100000 points
+350 milliseconds with 1000000 points
+\endcode
+
+Without orientation_preserving:
+\code
+3 points is minimal for (s,R,t) (R,t)
+2 points is minimal for (s,t) (s,R) (R)
+1 point is minimal for  (s) (t)
+\endcode
+
+With orientation_preserving:
+\code
+2 points is minimal for (s,R,t) (R,t) (s,t)
+1 point is minimal for (s,R) (R) (s) (t)
+\endcode
+\param scale        (out)
+\param R            2D rotation (out)
+\param t            2D translation (out)
+\param Xp           (nr_points x 2) pointer to array of image points
+\param X            (nr_points x 2 ) pointer to array of image points
+\param nr_points    number of points
+\param orientation_preserving
+\param allow_scaling    compute scale (if 0, scale=1)
+\param allow_rotation   compute rotation (if 0, R=[I])
+\param allow_translation compute translation (if 0 t = [0,0]')
+*/
+DB_API void db_StitchSimilarity2DRaw(double *scale,double R[4],double t[2],
+                            double **Xp,double **X,int nr_points,int orientation_preserving=1,
+                            int allow_scaling=1,int allow_rotation=1,int allow_translation=1);
+/*!
+See db_StitchRotationCommonFocalLength_3Points().
+\param H            Image similarity transformation (out)
+\param Xp           (nr_points x 2) pointer to array of image points
+\param X            (nr_points x 2) pointer to array of image points
+\param nr_points    number of points
+\param orientation_preserving
+\param allow_scaling    compute scale (if 0, scale=1)
+\param allow_rotation   compute rotation (if 0, R=[I])
+\param allow_translation compute translation (if 0 t = [0,0]')
+*/
+inline void db_StitchSimilarity2D(double H[9],double **Xp,double **X,int nr_points,int orientation_preserving=1,
+                                  int allow_scaling=1,int allow_rotation=1,int allow_translation=1)
+{
+    double s,R[4],t[2];
+
+    db_StitchSimilarity2DRaw(&s,R,t,Xp,X,nr_points,orientation_preserving,
+        allow_scaling,allow_rotation,allow_translation);
+
+    H[0]=s*R[0]; H[1]=s*R[1]; H[2]=t[0];
+    H[3]=s*R[2]; H[4]=s*R[3]; H[5]=t[1];
+    db_Zero2(H+6);
+    H[8]=1.0;
+}
+/*\}*/
+#endif /* DB_IMAGE_HOMOGRAPHY */
diff --git a/perftests/panorama/feature_stab/db_vlvm/db_metrics.h b/perftests/panorama/feature_stab/db_vlvm/db_metrics.h
new file mode 100644
index 0000000..6b95458
--- /dev/null
+++ b/perftests/panorama/feature_stab/db_vlvm/db_metrics.h
@@ -0,0 +1,408 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+/* $Id: db_metrics.h,v 1.3 2011/06/17 14:03:31 mbansal Exp $ */
+
+#ifndef DB_METRICS
+#define DB_METRICS
+
+
+
+/*****************************************************************
+*    Lean and mean begins here                                   *
+*****************************************************************/
+
+#include "db_utilities.h"
+/*!
+ * \defgroup LMMetrics (LM) Metrics
+ */
+/*\{*/
+
+
+
+
+/*!
+Compute function value fp and Jacobian J of robustifier given input value f*/
+inline void db_CauchyDerivative(double J[4],double fp[2],const double f[2],double one_over_scale2)
+{
+    double x2,y2,r,r2,r2s,one_over_r2,fu,r_fu,one_over_r_fu;
+    double one_plus_r2s,half_dfu_dx,half_dfu_dy,coeff,coeff2,coeff3;
+    int at_zero;
+
+    /*The robustifier takes the input (x,y) and makes a new
+    vector (xp,yp) where
+    xp=sqrt(log(1+(x^2+y^2)*one_over_scale2))*x/sqrt(x^2+y^2)
+    yp=sqrt(log(1+(x^2+y^2)*one_over_scale2))*y/sqrt(x^2+y^2)
+    The new vector has the property
+    xp^2+yp^2=log(1+(x^2+y^2)*one_over_scale2)
+    i.e. when it is square-summed it gives the robust
+    reprojection error
+    Define
+    r2=(x^2+y^2) and
+    r2s=r2*one_over_scale2
+    fu=log(1+r2s)/r2
+    then
+    xp=sqrt(fu)*x
+    yp=sqrt(fu)*y
+    and
+    d(r2)/dx=2x
+    d(r2)/dy=2y
+    and
+    dfu/dx=d(r2)/dx*(r2s/(1+r2s)-log(1+r2s))/(r2*r2)
+    dfu/dy=d(r2)/dy*(r2s/(1+r2s)-log(1+r2s))/(r2*r2)
+    and
+    d(xp)/dx=1/(2sqrt(fu))*(dfu/dx)*x+sqrt(fu)
+    d(xp)/dy=1/(2sqrt(fu))*(dfu/dy)*x
+    d(yp)/dx=1/(2sqrt(fu))*(dfu/dx)*y
+    d(yp)/dy=1/(2sqrt(fu))*(dfu/dy)*y+sqrt(fu)
+    */
+
+    x2=db_sqr(f[0]);
+    y2=db_sqr(f[1]);
+    r2=x2+y2;
+    r=sqrt(r2);
+
+    if(r2<=0.0) at_zero=1;
+    else
+    {
+        one_over_r2=1.0/r2;
+        r2s=r2*one_over_scale2;
+        one_plus_r2s=1.0+r2s;
+        fu=log(one_plus_r2s)*one_over_r2;
+        r_fu=sqrt(fu);
+        if(r_fu<=0.0) at_zero=1;
+        else
+        {
+            one_over_r_fu=1.0/r_fu;
+            fp[0]=r_fu*f[0];
+            fp[1]=r_fu*f[1];
+            /*r2s is always >= 0*/
+            coeff=(r2s/one_plus_r2s*one_over_r2-fu)*one_over_r2;
+            half_dfu_dx=f[0]*coeff;
+            half_dfu_dy=f[1]*coeff;
+            coeff2=one_over_r_fu*half_dfu_dx;
+            coeff3=one_over_r_fu*half_dfu_dy;
+
+            J[0]=coeff2*f[0]+r_fu;
+            J[1]=coeff3*f[0];
+            J[2]=coeff2*f[1];
+            J[3]=coeff3*f[1]+r_fu;
+            at_zero=0;
+        }
+    }
+    if(at_zero)
+    {
+        /*Close to zero the robustifying mapping
+        becomes identity*sqrt(one_over_scale2)*/
+        fp[0]=0.0;
+        fp[1]=0.0;
+        J[0]=sqrt(one_over_scale2);
+        J[1]=0.0;
+        J[2]=0.0;
+        J[3]=J[0];
+    }
+}
+
+inline double db_SquaredReprojectionErrorHomography(const double y[2],const double H[9],const double x[3])
+{
+    double x0,x1,x2,mult;
+    double sd;
+
+    x0=H[0]*x[0]+H[1]*x[1]+H[2]*x[2];
+    x1=H[3]*x[0]+H[4]*x[1]+H[5]*x[2];
+    x2=H[6]*x[0]+H[7]*x[1]+H[8]*x[2];
+    mult=1.0/((x2!=0.0)?x2:1.0);
+    sd=db_sqr((y[0]-x0*mult))+db_sqr((y[1]-x1*mult));
+
+    return(sd);
+}
+
+inline double db_SquaredInhomogenousHomographyError(const double y[2],const double H[9],const double x[2])
+{
+    double x0,x1,x2,mult;
+    double sd;
+
+    x0=H[0]*x[0]+H[1]*x[1]+H[2];
+    x1=H[3]*x[0]+H[4]*x[1]+H[5];
+    x2=H[6]*x[0]+H[7]*x[1]+H[8];
+    mult=1.0/((x2!=0.0)?x2:1.0);
+    sd=db_sqr((y[0]-x0*mult))+db_sqr((y[1]-x1*mult));
+
+    return(sd);
+}
+
+/*!
+Return a constant divided by likelihood of a Cauchy distributed
+reprojection error given the image point y, homography H, image point
+point x and the squared scale coefficient one_over_scale2=1.0/(scale*scale)
+where scale is the half width at half maximum (hWahM) of the
+Cauchy distribution*/
+inline double db_ExpCauchyInhomogenousHomographyError(const double y[2],const double H[9],const double x[2],
+                                                      double one_over_scale2)
+{
+    double sd;
+    sd=db_SquaredInhomogenousHomographyError(y,H,x);
+    return(1.0+sd*one_over_scale2);
+}
+
+/*!
+Compute residual vector f between image point y and homography Hx of
+image point x. Also compute Jacobian of f with respect
+to an update dx of H*/
+inline void db_DerivativeInhomHomographyError(double Jf_dx[18],double f[2],const double y[2],const double H[9],
+                                              const double x[2])
+{
+    double xh,yh,zh,mult,mult2,xh_mult2,yh_mult2;
+    /*The Jacobian of the inhomogenous coordinates with respect to
+    the homogenous is
+    [1/zh  0  -xh/(zh*zh)]
+    [ 0  1/zh -yh/(zh*zh)]
+    The Jacobian of the homogenous coordinates with respect to dH is
+    [x0 x1 1  0  0 0  0  0 0]
+    [ 0  0 0 x0 x1 1  0  0 0]
+    [ 0  0 0  0  0 0 x0 x1 1]
+    The output Jacobian is minus their product, i.e.
+    [-x0/zh -x1/zh -1/zh    0      0     0    x0*xh/(zh*zh) x1*xh/(zh*zh) xh/(zh*zh)]
+    [   0      0     0   -x0/zh -x1/zh -1/zh  x0*yh/(zh*zh) x1*yh/(zh*zh) yh/(zh*zh)]*/
+
+    /*Compute warped point, which is the same as
+    homogenous coordinates of reprojection*/
+    xh=H[0]*x[0]+H[1]*x[1]+H[2];
+    yh=H[3]*x[0]+H[4]*x[1]+H[5];
+    zh=H[6]*x[0]+H[7]*x[1]+H[8];
+    mult=1.0/((zh!=0.0)?zh:1.0);
+    /*Compute inhomogenous residual*/
+    f[0]=y[0]-xh*mult;
+    f[1]=y[1]-yh*mult;
+    /*Compute Jacobian*/
+    mult2=mult*mult;
+    xh_mult2=xh*mult2;
+    yh_mult2=yh*mult2;
+    Jf_dx[0]= -x[0]*mult;
+    Jf_dx[1]= -x[1]*mult;
+    Jf_dx[2]= -mult;
+    Jf_dx[3]=0;
+    Jf_dx[4]=0;
+    Jf_dx[5]=0;
+    Jf_dx[6]=x[0]*xh_mult2;
+    Jf_dx[7]=x[1]*xh_mult2;
+    Jf_dx[8]=xh_mult2;
+    Jf_dx[9]=0;
+    Jf_dx[10]=0;
+    Jf_dx[11]=0;
+    Jf_dx[12]=Jf_dx[0];
+    Jf_dx[13]=Jf_dx[1];
+    Jf_dx[14]=Jf_dx[2];
+    Jf_dx[15]=x[0]*yh_mult2;
+    Jf_dx[16]=x[1]*yh_mult2;
+    Jf_dx[17]=yh_mult2;
+}
+
+/*!
+Compute robust residual vector f between image point y and homography Hx of
+image point x. Also compute Jacobian of f with respect
+to an update dH of H*/
+inline void db_DerivativeCauchyInhomHomographyReprojection(double Jf_dx[18],double f[2],const double y[2],const double H[9],
+                                                           const double x[2],double one_over_scale2)
+{
+    double Jf_dx_loc[18],f_loc[2];
+    double J[4],J0,J1,J2,J3;
+
+    /*Compute reprojection Jacobian*/
+    db_DerivativeInhomHomographyError(Jf_dx_loc,f_loc,y,H,x);
+    /*Compute robustifier Jacobian*/
+    db_CauchyDerivative(J,f,f_loc,one_over_scale2);
+
+    /*Multiply the robustifier Jacobian with
+    the reprojection Jacobian*/
+    J0=J[0];J1=J[1];J2=J[2];J3=J[3];
+    Jf_dx[0]=J0*Jf_dx_loc[0];
+    Jf_dx[1]=J0*Jf_dx_loc[1];
+    Jf_dx[2]=J0*Jf_dx_loc[2];
+    Jf_dx[3]=                J1*Jf_dx_loc[12];
+    Jf_dx[4]=                J1*Jf_dx_loc[13];
+    Jf_dx[5]=                J1*Jf_dx_loc[14];
+    Jf_dx[6]=J0*Jf_dx_loc[6]+J1*Jf_dx_loc[15];
+    Jf_dx[7]=J0*Jf_dx_loc[7]+J1*Jf_dx_loc[16];
+    Jf_dx[8]=J0*Jf_dx_loc[8]+J1*Jf_dx_loc[17];
+    Jf_dx[9]= J2*Jf_dx_loc[0];
+    Jf_dx[10]=J2*Jf_dx_loc[1];
+    Jf_dx[11]=J2*Jf_dx_loc[2];
+    Jf_dx[12]=                J3*Jf_dx_loc[12];
+    Jf_dx[13]=                J3*Jf_dx_loc[13];
+    Jf_dx[14]=                J3*Jf_dx_loc[14];
+    Jf_dx[15]=J2*Jf_dx_loc[6]+J3*Jf_dx_loc[15];
+    Jf_dx[16]=J2*Jf_dx_loc[7]+J3*Jf_dx_loc[16];
+    Jf_dx[17]=J2*Jf_dx_loc[8]+J3*Jf_dx_loc[17];
+}
+/*!
+Compute residual vector f between image point y and rotation of
+image point x by R. Also compute Jacobian of f with respect
+to an update dx of R*/
+inline void db_DerivativeInhomRotationReprojection(double Jf_dx[6],double f[2],const double y[2],const double R[9],
+                                                   const double x[2])
+{
+    double xh,yh,zh,mult,mult2,xh_mult2,yh_mult2;
+    /*The Jacobian of the inhomogenous coordinates with respect to
+    the homogenous is
+    [1/zh  0  -xh/(zh*zh)]
+    [ 0  1/zh -yh/(zh*zh)]
+    The Jacobian at zero of the homogenous coordinates with respect to
+    [sin(phi) sin(ohm) sin(kap)] is
+    [-rx2   0   rx1 ]
+    [  0   rx2 -rx0 ]
+    [ rx0 -rx1   0  ]
+    The output Jacobian is minus their product, i.e.
+    [1+xh*xh/(zh*zh) -xh*yh/(zh*zh)   -yh/zh]
+    [xh*yh/(zh*zh)   -1-yh*yh/(zh*zh)  xh/zh]*/
+
+    /*Compute rotated point, which is the same as
+    homogenous coordinates of reprojection*/
+    xh=R[0]*x[0]+R[1]*x[1]+R[2];
+    yh=R[3]*x[0]+R[4]*x[1]+R[5];
+    zh=R[6]*x[0]+R[7]*x[1]+R[8];
+    mult=1.0/((zh!=0.0)?zh:1.0);
+    /*Compute inhomogenous residual*/
+    f[0]=y[0]-xh*mult;
+    f[1]=y[1]-yh*mult;
+    /*Compute Jacobian*/
+    mult2=mult*mult;
+    xh_mult2=xh*mult2;
+    yh_mult2=yh*mult2;
+    Jf_dx[0]= 1.0+xh*xh_mult2;
+    Jf_dx[1]= -yh*xh_mult2;
+    Jf_dx[2]= -yh*mult;
+    Jf_dx[3]= -Jf_dx[1];
+    Jf_dx[4]= -1-yh*yh_mult2;
+    Jf_dx[5]= xh*mult;
+}
+
+/*!
+Compute robust residual vector f between image point y and rotation of
+image point x by R. Also compute Jacobian of f with respect
+to an update dx of R*/
+inline void db_DerivativeCauchyInhomRotationReprojection(double Jf_dx[6],double f[2],const double y[2],const double R[9],
+                                                         const double x[2],double one_over_scale2)
+{
+    double Jf_dx_loc[6],f_loc[2];
+    double J[4],J0,J1,J2,J3;
+
+    /*Compute reprojection Jacobian*/
+    db_DerivativeInhomRotationReprojection(Jf_dx_loc,f_loc,y,R,x);
+    /*Compute robustifier Jacobian*/
+    db_CauchyDerivative(J,f,f_loc,one_over_scale2);
+
+    /*Multiply the robustifier Jacobian with
+    the reprojection Jacobian*/
+    J0=J[0];J1=J[1];J2=J[2];J3=J[3];
+    Jf_dx[0]=J0*Jf_dx_loc[0]+J1*Jf_dx_loc[3];
+    Jf_dx[1]=J0*Jf_dx_loc[1]+J1*Jf_dx_loc[4];
+    Jf_dx[2]=J0*Jf_dx_loc[2]+J1*Jf_dx_loc[5];
+    Jf_dx[3]=J2*Jf_dx_loc[0]+J3*Jf_dx_loc[3];
+    Jf_dx[4]=J2*Jf_dx_loc[1]+J3*Jf_dx_loc[4];
+    Jf_dx[5]=J2*Jf_dx_loc[2]+J3*Jf_dx_loc[5];
+}
+
+
+
+/*!
+// remove the outliers whose projection error is larger than pre-defined
+*/
+inline int db_RemoveOutliers_Homography(const double H[9], double *x_i,double *xp_i, double *wp,double *im, double *im_p, double *im_r, double *im_raw,double *im_raw_p,int point_count,double scale, double thresh=DB_OUTLIER_THRESHOLD)
+{
+    double temp_valueE, t2;
+    int c;
+    int k1=0;
+    int k2=0;
+    int k3=0;
+    int numinliers=0;
+    int ind1;
+    int ind2;
+    int ind3;
+    int isinlier;
+
+    // experimentally determined
+    t2=1.0/(thresh*thresh*thresh*thresh);
+
+    // count the inliers
+    for(c=0;c<point_count;c++)
+    {
+        ind1=c<<1;
+        ind2=c<<2;
+        ind3=3*c;
+
+        temp_valueE=db_SquaredInhomogenousHomographyError(im_p+ind3,H,im+ind3);
+
+        isinlier=((temp_valueE<=t2)?1:0);
+
+        // if it is inlier, then copy the 3d and 2d correspondences
+        if (isinlier)
+        {
+            numinliers++;
+
+            x_i[k1]=x_i[ind1];
+            x_i[k1+1]=x_i[ind1+1];
+
+            xp_i[k1]=xp_i[ind1];
+            xp_i[k1+1]=xp_i[ind1+1];
+
+            k1=k1+2;
+
+            // original normalized pixel coordinates
+            im[k3]=im[ind3];
+            im[k3+1]=im[ind3+1];
+            im[k3+2]=im[ind3+2];
+
+            im_r[k3]=im_r[ind3];
+            im_r[k3+1]=im_r[ind3+1];
+            im_r[k3+2]=im_r[ind3+2];
+
+            im_p[k3]=im_p[ind3];
+            im_p[k3+1]=im_p[ind3+1];
+            im_p[k3+2]=im_p[ind3+2];
+
+            // left and right raw pixel coordinates
+            im_raw[k3] = im_raw[ind3];
+            im_raw[k3+1] = im_raw[ind3+1];
+            im_raw[k3+2] = im_raw[ind3+2]; // the index
+
+            im_raw_p[k3] = im_raw_p[ind3];
+            im_raw_p[k3+1] = im_raw_p[ind3+1];
+            im_raw_p[k3+2] = im_raw_p[ind3+2]; // the index
+
+            k3=k3+3;
+
+            // 3D coordinates
+            wp[k2]=wp[ind2];
+            wp[k2+1]=wp[ind2+1];
+            wp[k2+2]=wp[ind2+2];
+            wp[k2+3]=wp[ind2+3];
+
+            k2=k2+4;
+
+        }
+    }
+
+    return numinliers;
+}
+
+
+
+
+
+/*\}*/
+
+#endif /* DB_METRICS */
diff --git a/perftests/panorama/feature_stab/db_vlvm/db_rob_image_homography.cpp b/perftests/panorama/feature_stab/db_vlvm/db_rob_image_homography.cpp
new file mode 100644
index 0000000..82dec0c
--- /dev/null
+++ b/perftests/panorama/feature_stab/db_vlvm/db_rob_image_homography.cpp
@@ -0,0 +1,1082 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+/* $Id: db_rob_image_homography.cpp,v 1.2 2011/06/17 14:03:31 mbansal Exp $ */
+
+#include "db_utilities.h"
+#include "db_rob_image_homography.h"
+#include "db_bundle.h"
+
+
+
+/*****************************************************************
+*    Lean and mean begins here                                   *
+*****************************************************************/
+
+#include "db_image_homography.h"
+
+#ifdef _VERBOSE_
+#include <iostream>
+using namespace std;
+#endif /*VERBOSE*/
+
+inline double db_RobImageHomography_Cost(double H[9],int point_count,double *x_i,double *xp_i,double one_over_scale2)
+{
+    int c;
+    double back,acc,*x_i_temp,*xp_i_temp;
+
+    for(back=0.0,c=0;c<point_count;)
+    {
+        /*Take log of product of ten reprojection
+        errors to reduce nr of expensive log operations*/
+        if(c+9<point_count)
+        {
+            x_i_temp=x_i+(c<<1);
+            xp_i_temp=xp_i+(c<<1);
+
+            acc=db_ExpCauchyInhomogenousHomographyError(xp_i_temp,H,x_i_temp,one_over_scale2);
+            acc*=db_ExpCauchyInhomogenousHomographyError(xp_i_temp+2,H,x_i_temp+2,one_over_scale2);
+            acc*=db_ExpCauchyInhomogenousHomographyError(xp_i_temp+4,H,x_i_temp+4,one_over_scale2);
+            acc*=db_ExpCauchyInhomogenousHomographyError(xp_i_temp+6,H,x_i_temp+6,one_over_scale2);
+            acc*=db_ExpCauchyInhomogenousHomographyError(xp_i_temp+8,H,x_i_temp+8,one_over_scale2);
+            acc*=db_ExpCauchyInhomogenousHomographyError(xp_i_temp+10,H,x_i_temp+10,one_over_scale2);
+            acc*=db_ExpCauchyInhomogenousHomographyError(xp_i_temp+12,H,x_i_temp+12,one_over_scale2);
+            acc*=db_ExpCauchyInhomogenousHomographyError(xp_i_temp+14,H,x_i_temp+14,one_over_scale2);
+            acc*=db_ExpCauchyInhomogenousHomographyError(xp_i_temp+16,H,x_i_temp+16,one_over_scale2);
+            acc*=db_ExpCauchyInhomogenousHomographyError(xp_i_temp+18,H,x_i_temp+18,one_over_scale2);
+            c+=10;
+        }
+        else
+        {
+            for(acc=1.0;c<point_count;c++)
+            {
+                acc*=db_ExpCauchyInhomogenousHomographyError(xp_i+(c<<1),H,x_i+(c<<1),one_over_scale2);
+            }
+        }
+        back+=log(acc);
+    }
+    return(back);
+}
+
+inline double db_RobImageHomography_Statistics(double H[9],int point_count,double *x_i,double *xp_i,double one_over_scale2,db_Statistics *stat,double thresh=DB_OUTLIER_THRESHOLD)
+{
+    int c,i;
+    double t2,frac;
+
+    t2=thresh*thresh;
+    for(i=0,c=0;c<point_count;c++)
+    {
+        i+=(db_SquaredInhomogenousHomographyError(xp_i+(c<<1),H,x_i+(c<<1))*one_over_scale2<=t2)?1:0;
+    }
+    frac=((double)i)/((double)(db_maxi(point_count,1)));
+
+#ifdef _VERBOSE_
+    std::cout << "Inlier Percentage RobImageHomography: " << frac*100.0 << "% out of " << point_count << " constraints" << std::endl;
+#endif /*_VERBOSE_*/
+
+    if(stat)
+    {
+        stat->nr_points=point_count;
+        stat->one_over_scale2=one_over_scale2;
+        stat->nr_inliers=i;
+        stat->inlier_fraction=frac;
+
+        stat->cost=db_RobImageHomography_Cost(H,point_count,x_i,xp_i,one_over_scale2);
+        stat->model_dimension=0;
+        /*stat->nr_parameters=;*/
+
+        stat->lambda1=log(4.0);
+        stat->lambda2=log(4.0*((double)db_maxi(1,stat->nr_points)));
+        stat->lambda3=10.0;
+        stat->gric=stat->cost+stat->lambda1*stat->model_dimension*((double)stat->nr_points)+stat->lambda2*((double)stat->nr_parameters);
+        stat->inlier_evidence=((double)stat->nr_inliers)-stat->lambda3*((double)stat->nr_parameters);
+    }
+
+    return(frac);
+}
+
+/*Compute min_Jtf and upper right of JtJ. Return cost.*/
+inline double db_RobImageHomography_Jacobians(double JtJ[81],double min_Jtf[9],double H[9],int point_count,double *x_i,double *xp_i,double one_over_scale2)
+{
+    double back,Jf_dx[18],f[2],temp,temp2;
+    int i;
+
+    db_Zero(JtJ,81);
+    db_Zero(min_Jtf,9);
+    for(back=0.0,i=0;i<point_count;i++)
+    {
+        /*Compute reprojection error vector and its Jacobian
+        for this point*/
+        db_DerivativeCauchyInhomHomographyReprojection(Jf_dx,f,xp_i+(i<<1),H,x_i+(i<<1),one_over_scale2);
+        /*Perform
+        min_Jtf-=Jf_dx*f[0] and
+        min_Jtf-=(Jf_dx+9)*f[1] to accumulate -Jt%f*/
+        db_RowOperation9(min_Jtf,Jf_dx,f[0]);
+        db_RowOperation9(min_Jtf,Jf_dx+9,f[1]);
+        /*Accumulate upper right of JtJ with outer product*/
+        temp=Jf_dx[0]; temp2=Jf_dx[9];
+        JtJ[0]+=temp*Jf_dx[0]+temp2*Jf_dx[9];
+        JtJ[1]+=temp*Jf_dx[1]+temp2*Jf_dx[10];
+        JtJ[2]+=temp*Jf_dx[2]+temp2*Jf_dx[11];
+        JtJ[3]+=temp*Jf_dx[3]+temp2*Jf_dx[12];
+        JtJ[4]+=temp*Jf_dx[4]+temp2*Jf_dx[13];
+        JtJ[5]+=temp*Jf_dx[5]+temp2*Jf_dx[14];
+        JtJ[6]+=temp*Jf_dx[6]+temp2*Jf_dx[15];
+        JtJ[7]+=temp*Jf_dx[7]+temp2*Jf_dx[16];
+        JtJ[8]+=temp*Jf_dx[8]+temp2*Jf_dx[17];
+        temp=Jf_dx[1]; temp2=Jf_dx[10];
+        JtJ[10]+=temp*Jf_dx[1]+temp2*Jf_dx[10];
+        JtJ[11]+=temp*Jf_dx[2]+temp2*Jf_dx[11];
+        JtJ[12]+=temp*Jf_dx[3]+temp2*Jf_dx[12];
+        JtJ[13]+=temp*Jf_dx[4]+temp2*Jf_dx[13];
+        JtJ[14]+=temp*Jf_dx[5]+temp2*Jf_dx[14];
+        JtJ[15]+=temp*Jf_dx[6]+temp2*Jf_dx[15];
+        JtJ[16]+=temp*Jf_dx[7]+temp2*Jf_dx[16];
+        JtJ[17]+=temp*Jf_dx[8]+temp2*Jf_dx[17];
+        temp=Jf_dx[2]; temp2=Jf_dx[11];
+        JtJ[20]+=temp*Jf_dx[2]+temp2*Jf_dx[11];
+        JtJ[21]+=temp*Jf_dx[3]+temp2*Jf_dx[12];
+        JtJ[22]+=temp*Jf_dx[4]+temp2*Jf_dx[13];
+        JtJ[23]+=temp*Jf_dx[5]+temp2*Jf_dx[14];
+        JtJ[24]+=temp*Jf_dx[6]+temp2*Jf_dx[15];
+        JtJ[25]+=temp*Jf_dx[7]+temp2*Jf_dx[16];
+        JtJ[26]+=temp*Jf_dx[8]+temp2*Jf_dx[17];
+        temp=Jf_dx[3]; temp2=Jf_dx[12];
+        JtJ[30]+=temp*Jf_dx[3]+temp2*Jf_dx[12];
+        JtJ[31]+=temp*Jf_dx[4]+temp2*Jf_dx[13];
+        JtJ[32]+=temp*Jf_dx[5]+temp2*Jf_dx[14];
+        JtJ[33]+=temp*Jf_dx[6]+temp2*Jf_dx[15];
+        JtJ[34]+=temp*Jf_dx[7]+temp2*Jf_dx[16];
+        JtJ[35]+=temp*Jf_dx[8]+temp2*Jf_dx[17];
+        temp=Jf_dx[4]; temp2=Jf_dx[13];
+        JtJ[40]+=temp*Jf_dx[4]+temp2*Jf_dx[13];
+        JtJ[41]+=temp*Jf_dx[5]+temp2*Jf_dx[14];
+        JtJ[42]+=temp*Jf_dx[6]+temp2*Jf_dx[15];
+        JtJ[43]+=temp*Jf_dx[7]+temp2*Jf_dx[16];
+        JtJ[44]+=temp*Jf_dx[8]+temp2*Jf_dx[17];
+        temp=Jf_dx[5]; temp2=Jf_dx[14];
+        JtJ[50]+=temp*Jf_dx[5]+temp2*Jf_dx[14];
+        JtJ[51]+=temp*Jf_dx[6]+temp2*Jf_dx[15];
+        JtJ[52]+=temp*Jf_dx[7]+temp2*Jf_dx[16];
+        JtJ[53]+=temp*Jf_dx[8]+temp2*Jf_dx[17];
+        temp=Jf_dx[6]; temp2=Jf_dx[15];
+        JtJ[60]+=temp*Jf_dx[6]+temp2*Jf_dx[15];
+        JtJ[61]+=temp*Jf_dx[7]+temp2*Jf_dx[16];
+        JtJ[62]+=temp*Jf_dx[8]+temp2*Jf_dx[17];
+        temp=Jf_dx[7]; temp2=Jf_dx[16];
+        JtJ[70]+=temp*Jf_dx[7]+temp2*Jf_dx[16];
+        JtJ[71]+=temp*Jf_dx[8]+temp2*Jf_dx[17];
+        temp=Jf_dx[8]; temp2=Jf_dx[17];
+        JtJ[80]+=temp*Jf_dx[8]+temp2*Jf_dx[17];
+
+        /*Add square-sum to cost*/
+        back+=db_sqr(f[0])+db_sqr(f[1]);
+    }
+
+    return(back);
+}
+
+/*Compute min_Jtf and upper right of JtJ. Return cost*/
+inline double db_RobCamRotation_Jacobians(double JtJ[9],double min_Jtf[3],double H[9],int point_count,double *x_i,double *xp_i,double one_over_scale2)
+{
+    double back,Jf_dx[6],f[2];
+    int i,j;
+
+    db_Zero(JtJ,9);
+    db_Zero(min_Jtf,3);
+    for(back=0.0,i=0;i<point_count;i++)
+    {
+        /*Compute reprojection error vector and its Jacobian
+        for this point*/
+        j=(i<<1);
+        db_DerivativeCauchyInhomRotationReprojection(Jf_dx,f,xp_i+j,H,x_i+j,one_over_scale2);
+        /*Perform
+        min_Jtf-=Jf_dx*f[0] and
+        min_Jtf-=(Jf_dx+3)*f[1] to accumulate -Jt%f*/
+        db_RowOperation3(min_Jtf,Jf_dx,f[0]);
+        db_RowOperation3(min_Jtf,Jf_dx+3,f[1]);
+        /*Accumulate upper right of JtJ with outer product*/
+        JtJ[0]+=Jf_dx[0]*Jf_dx[0]+Jf_dx[3]*Jf_dx[3];
+        JtJ[1]+=Jf_dx[0]*Jf_dx[1]+Jf_dx[3]*Jf_dx[4];
+        JtJ[2]+=Jf_dx[0]*Jf_dx[2]+Jf_dx[3]*Jf_dx[5];
+        JtJ[4]+=Jf_dx[1]*Jf_dx[1]+Jf_dx[4]*Jf_dx[4];
+        JtJ[5]+=Jf_dx[1]*Jf_dx[2]+Jf_dx[4]*Jf_dx[5];
+        JtJ[8]+=Jf_dx[2]*Jf_dx[2]+Jf_dx[5]*Jf_dx[5];
+
+        /*Add square-sum to cost*/
+        back+=db_sqr(f[0])+db_sqr(f[1]);
+    }
+
+    return(back);
+}
+
+void db_RobCamRotation_Polish(double H[9],int point_count,double *x_i,double *xp_i,double one_over_scale2,
+                               int max_iterations,double improvement_requirement)
+{
+    int i,update,stop;
+    double lambda,cost,current_cost;
+    double JtJ[9],min_Jtf[3],dx[3],H_p_dx[9];
+
+    lambda=0.001;
+    for(update=1,stop=0,i=0;(stop<2) && (i<max_iterations);i++)
+    {
+        /*if first time since improvement, compute Jacobian and residual*/
+        if(update)
+        {
+            current_cost=db_RobCamRotation_Jacobians(JtJ,min_Jtf,H,point_count,x_i,xp_i,one_over_scale2);
+            update=0;
+        }
+
+#ifdef _VERBOSE_
+        /*std::cout << "Cost:" << current_cost << " ";*/
+#endif /*_VERBOSE_*/
+
+        /*Come up with a hypothesis dx
+        based on the current lambda*/
+        db_Compute_dx_3x3(dx,JtJ,min_Jtf,lambda);
+
+        /*Compute Cost(x+dx)*/
+        db_UpdateRotation(H_p_dx,H,dx);
+        cost=db_RobImageHomography_Cost(H_p_dx,point_count,x_i,xp_i,one_over_scale2);
+
+        /*Is there an improvement?*/
+        if(cost<current_cost)
+        {
+            /*improvement*/
+            if(current_cost-cost<current_cost*improvement_requirement) stop++;
+            else stop=0;
+            lambda*=0.1;
+            /*Move to the hypothesised position x+dx*/
+            current_cost=cost;
+            db_Copy9(H,H_p_dx);
+            db_OrthonormalizeRotation(H);
+            update=1;
+
+#ifdef _VERBOSE_
+        std::cout << "Step" << i << "Imp,Lambda=" << lambda << "Cost:" << current_cost << std::endl;
+#endif /*_VERBOSE_*/
+        }
+        else
+        {
+            /*no improvement*/
+            lambda*=10.0;
+            stop=0;
+        }
+    }
+}
+
+inline void db_RobImageHomographyFetchJacobian(double **JtJ_ref,double *min_Jtf,double **JtJ_temp_ref,double *min_Jtf_temp,int n,int *fetch_vector)
+{
+    int i,j,t;
+    double *t1,*t2;
+
+    for(i=0;i<n;i++)
+    {
+        t=fetch_vector[i];
+        min_Jtf[i]=min_Jtf_temp[t];
+        t1=JtJ_ref[i];
+        t2=JtJ_temp_ref[t];
+        for(j=i;j<n;j++)
+        {
+            t1[j]=t2[fetch_vector[j]];
+        }
+    }
+}
+
+inline void db_RobImageHomographyMultiplyJacobian(double **JtJ_ref,double *min_Jtf,double **JtJ_temp_ref,double *min_Jtf_temp,double **JE_dx_ref,int n)
+{
+    double JtJ_JE[72],*JtJ_JE_ref[9];
+
+    db_SetupMatrixRefs(JtJ_JE_ref,9,8,JtJ_JE);
+
+    db_SymmetricExtendUpperToLower(JtJ_temp_ref,9,9);
+    db_MultiplyMatricesAB(JtJ_JE_ref,JtJ_temp_ref,JE_dx_ref,9,9,n);
+    db_UpperMultiplyMatricesAtB(JtJ_ref,JE_dx_ref,JtJ_JE_ref,n,9,n);
+    db_MultiplyMatrixVectorAtb(min_Jtf,JE_dx_ref,min_Jtf_temp,n,9);
+}
+
+inline void db_RobImageHomographyJH_Js(double **JE_dx_ref,int j,double H[9])
+{
+    /*Update of upper 2x2 is multiplication by
+    [s 0][ cos(theta) sin(theta)]
+    [0 s][-sin(theta) cos(theta)]*/
+    JE_dx_ref[0][j]=H[0];
+    JE_dx_ref[1][j]=H[1];
+    JE_dx_ref[2][j]=0;
+    JE_dx_ref[3][j]=H[2];
+    JE_dx_ref[4][j]=H[3];
+    JE_dx_ref[5][j]=0;
+    JE_dx_ref[6][j]=0;
+    JE_dx_ref[7][j]=0;
+    JE_dx_ref[8][j]=0;
+}
+
+inline void db_RobImageHomographyJH_JR(double **JE_dx_ref,int j,double H[9])
+{
+    /*Update of upper 2x2 is multiplication by
+    [s 0][ cos(theta) sin(theta)]
+    [0 s][-sin(theta) cos(theta)]*/
+    JE_dx_ref[0][j]=  H[3];
+    JE_dx_ref[1][j]=  H[4];
+    JE_dx_ref[2][j]=0;
+    JE_dx_ref[3][j]= -H[0];
+    JE_dx_ref[4][j]= -H[1];
+    JE_dx_ref[5][j]=0;
+    JE_dx_ref[6][j]=0;
+    JE_dx_ref[7][j]=0;
+    JE_dx_ref[8][j]=0;
+}
+
+inline void db_RobImageHomographyJH_Jt(double **JE_dx_ref,int j,int k,double H[9])
+{
+    JE_dx_ref[0][j]=0;
+    JE_dx_ref[1][j]=0;
+    JE_dx_ref[2][j]=1.0;
+    JE_dx_ref[3][j]=0;
+    JE_dx_ref[4][j]=0;
+    JE_dx_ref[5][j]=0;
+    JE_dx_ref[6][j]=0;
+    JE_dx_ref[7][j]=0;
+    JE_dx_ref[8][j]=0;
+
+    JE_dx_ref[0][k]=0;
+    JE_dx_ref[1][k]=0;
+    JE_dx_ref[2][k]=0;
+    JE_dx_ref[3][k]=0;
+    JE_dx_ref[4][k]=0;
+    JE_dx_ref[5][k]=1.0;
+    JE_dx_ref[6][k]=0;
+    JE_dx_ref[7][k]=0;
+    JE_dx_ref[8][k]=0;
+}
+
+inline void db_RobImageHomographyJH_dRotFocal(double **JE_dx_ref,int j,int k,int l,int m,double H[9])
+{
+    double f,fi,fi2;
+    double R[9],J[9];
+
+    /*Updated matrix is diag(f+df,f+df)*dR*R*diag(1/(f+df),1/(f+df),1)*/
+    f=db_FocalAndRotFromCamRotFocalHomography(R,H);
+    fi=db_SafeReciprocal(f);
+    fi2=db_sqr(fi);
+    db_JacobianOfRotatedPointStride(J,R,3);
+    JE_dx_ref[0][j]=   J[0];
+    JE_dx_ref[1][j]=   J[1];
+    JE_dx_ref[2][j]=f* J[2];
+    JE_dx_ref[3][j]=   J[3];
+    JE_dx_ref[4][j]=   J[4];
+    JE_dx_ref[5][j]=f* J[5];
+    JE_dx_ref[6][j]=fi*J[6];
+    JE_dx_ref[7][j]=fi*J[7];
+    JE_dx_ref[8][j]=   J[8];
+    db_JacobianOfRotatedPointStride(J,R+1,3);
+    JE_dx_ref[0][k]=   J[0];
+    JE_dx_ref[1][k]=   J[1];
+    JE_dx_ref[2][k]=f* J[2];
+    JE_dx_ref[3][k]=   J[3];
+    JE_dx_ref[4][k]=   J[4];
+    JE_dx_ref[5][k]=f* J[5];
+    JE_dx_ref[6][k]=fi*J[6];
+    JE_dx_ref[7][k]=fi*J[7];
+    JE_dx_ref[8][k]=   J[8];
+    db_JacobianOfRotatedPointStride(J,R+2,3);
+    JE_dx_ref[0][l]=   J[0];
+    JE_dx_ref[1][l]=   J[1];
+    JE_dx_ref[2][l]=f* J[2];
+    JE_dx_ref[3][l]=   J[3];
+    JE_dx_ref[4][l]=   J[4];
+    JE_dx_ref[5][l]=f* J[5];
+    JE_dx_ref[6][l]=fi*J[6];
+    JE_dx_ref[7][l]=fi*J[7];
+    JE_dx_ref[8][l]=   J[8];
+
+    JE_dx_ref[0][m]=0;
+    JE_dx_ref[1][m]=0;
+    JE_dx_ref[2][m]=H[2];
+    JE_dx_ref[3][m]=0;
+    JE_dx_ref[4][m]=0;
+    JE_dx_ref[5][m]=H[5];
+    JE_dx_ref[6][m]= -fi2*H[6];
+    JE_dx_ref[7][m]= -fi2*H[7];
+    JE_dx_ref[8][m]=0;
+}
+
+inline double db_RobImageHomography_Jacobians_Generic(double *JtJ_ref[8],double min_Jtf[8],int *num_param,int *frozen_coord,double H[9],int point_count,double *x_i,double *xp_i,int homography_type,double one_over_scale2)
+{
+    double back;
+    int i,j,fetch_vector[8],n;
+    double JtJ_temp[81],min_Jtf_temp[9],JE_dx[72];
+    double *JE_dx_ref[9],*JtJ_temp_ref[9];
+
+    /*Compute cost and JtJ,min_Jtf with respect to H*/
+    back=db_RobImageHomography_Jacobians(JtJ_temp,min_Jtf_temp,H,point_count,x_i,xp_i,one_over_scale2);
+
+    /*Compute JtJ,min_Jtf with respect to the right parameters
+    The formulas are
+    JtJ=transpose(JE_dx)*JtJ*JE_dx and
+    min_Jtf=transpose(JE_dx)*min_Jtf,
+    where the 9xN matrix JE_dx is the Jacobian of H with respect
+    to the update*/
+    db_SetupMatrixRefs(JtJ_temp_ref,9,9,JtJ_temp);
+    db_SetupMatrixRefs(JE_dx_ref,9,8,JE_dx);
+    switch(homography_type)
+    {
+        case DB_HOMOGRAPHY_TYPE_SIMILARITY:
+        case DB_HOMOGRAPHY_TYPE_SIMILARITY_U:
+            n=4;
+            db_RobImageHomographyJH_Js(JE_dx_ref,0,H);
+            db_RobImageHomographyJH_JR(JE_dx_ref,1,H);
+            db_RobImageHomographyJH_Jt(JE_dx_ref,2,3,H);
+            db_RobImageHomographyMultiplyJacobian(JtJ_ref,min_Jtf,JtJ_temp_ref,min_Jtf_temp,JE_dx_ref,n);
+            break;
+        case DB_HOMOGRAPHY_TYPE_ROTATION:
+        case DB_HOMOGRAPHY_TYPE_ROTATION_U:
+            n=1;
+            db_RobImageHomographyJH_JR(JE_dx_ref,0,H);
+            db_RobImageHomographyMultiplyJacobian(JtJ_ref,min_Jtf,JtJ_temp_ref,min_Jtf_temp,JE_dx_ref,n);
+            break;
+        case DB_HOMOGRAPHY_TYPE_SCALING:
+            n=1;
+            db_RobImageHomographyJH_Js(JE_dx_ref,0,H);
+            db_RobImageHomographyMultiplyJacobian(JtJ_ref,min_Jtf,JtJ_temp_ref,min_Jtf_temp,JE_dx_ref,n);
+            break;
+        case DB_HOMOGRAPHY_TYPE_S_T:
+            n=3;
+            db_RobImageHomographyJH_Js(JE_dx_ref,0,H);
+            db_RobImageHomographyJH_Jt(JE_dx_ref,1,2,H);
+            db_RobImageHomographyMultiplyJacobian(JtJ_ref,min_Jtf,JtJ_temp_ref,min_Jtf_temp,JE_dx_ref,n);
+            break;
+        case DB_HOMOGRAPHY_TYPE_R_T:
+            n=3;
+            db_RobImageHomographyJH_JR(JE_dx_ref,0,H);
+            db_RobImageHomographyJH_Jt(JE_dx_ref,1,2,H);
+            db_RobImageHomographyMultiplyJacobian(JtJ_ref,min_Jtf,JtJ_temp_ref,min_Jtf_temp,JE_dx_ref,n);
+            break;
+        case DB_HOMOGRAPHY_TYPE_R_S:
+            n=2;
+            db_RobImageHomographyJH_Js(JE_dx_ref,0,H);
+            db_RobImageHomographyJH_JR(JE_dx_ref,1,H);
+            db_RobImageHomographyMultiplyJacobian(JtJ_ref,min_Jtf,JtJ_temp_ref,min_Jtf_temp,JE_dx_ref,n);
+            break;
+
+        case DB_HOMOGRAPHY_TYPE_TRANSLATION:
+            n=2;
+            fetch_vector[0]=2;
+            fetch_vector[1]=5;
+            db_RobImageHomographyFetchJacobian(JtJ_ref,min_Jtf,JtJ_temp_ref,min_Jtf_temp,n,fetch_vector);
+            break;
+        case DB_HOMOGRAPHY_TYPE_AFFINE:
+            n=6;
+            fetch_vector[0]=0;
+            fetch_vector[1]=1;
+            fetch_vector[2]=2;
+            fetch_vector[3]=3;
+            fetch_vector[4]=4;
+            fetch_vector[5]=5;
+            db_RobImageHomographyFetchJacobian(JtJ_ref,min_Jtf,JtJ_temp_ref,min_Jtf_temp,n,fetch_vector);
+            break;
+        case DB_HOMOGRAPHY_TYPE_PROJECTIVE:
+            n=8;
+            *frozen_coord=db_MaxAbsIndex9(H);
+            for(j=0,i=0;i<9;i++) if(i!=(*frozen_coord))
+            {
+                fetch_vector[j]=i;
+                j++;
+            }
+            db_RobImageHomographyFetchJacobian(JtJ_ref,min_Jtf,JtJ_temp_ref,min_Jtf_temp,n,fetch_vector);
+            break;
+        case DB_HOMOGRAPHY_TYPE_CAMROTATION_F:
+        case DB_HOMOGRAPHY_TYPE_CAMROTATION_F_UD:
+            n=4;
+            db_RobImageHomographyJH_dRotFocal(JE_dx_ref,0,1,2,3,H);
+            db_RobImageHomographyMultiplyJacobian(JtJ_ref,min_Jtf,JtJ_temp_ref,min_Jtf_temp,JE_dx_ref,n);
+            break;
+    }
+    *num_param=n;
+
+    return(back);
+}
+
+inline void db_ImageHomographyUpdateGeneric(double H_p_dx[9],double H[9],double *dx,int homography_type,int frozen_coord)
+{
+    switch(homography_type)
+    {
+        case DB_HOMOGRAPHY_TYPE_SIMILARITY:
+        case DB_HOMOGRAPHY_TYPE_SIMILARITY_U:
+            db_Copy9(H_p_dx,H);
+            db_MultiplyScaleOntoImageHomography(H,1.0+dx[0]);
+            db_MultiplyRotationOntoImageHomography(H,dx[1]);
+            H_p_dx[2]+=dx[2];
+            H_p_dx[5]+=dx[3];
+            break;
+        case DB_HOMOGRAPHY_TYPE_ROTATION:
+        case DB_HOMOGRAPHY_TYPE_ROTATION_U:
+            db_MultiplyRotationOntoImageHomography(H,dx[0]);
+            break;
+        case DB_HOMOGRAPHY_TYPE_SCALING:
+            db_MultiplyScaleOntoImageHomography(H,1.0+dx[0]);
+            break;
+        case DB_HOMOGRAPHY_TYPE_S_T:
+            db_Copy9(H_p_dx,H);
+            db_MultiplyScaleOntoImageHomography(H,1.0+dx[0]);
+            H_p_dx[2]+=dx[1];
+            H_p_dx[5]+=dx[2];
+            break;
+        case DB_HOMOGRAPHY_TYPE_R_T:
+            db_Copy9(H_p_dx,H);
+            db_MultiplyRotationOntoImageHomography(H,dx[0]);
+            H_p_dx[2]+=dx[1];
+            H_p_dx[5]+=dx[2];
+            break;
+        case DB_HOMOGRAPHY_TYPE_R_S:
+            db_Copy9(H_p_dx,H);
+            db_MultiplyScaleOntoImageHomography(H,1.0+dx[0]);
+            db_MultiplyRotationOntoImageHomography(H,dx[1]);
+            break;
+        case DB_HOMOGRAPHY_TYPE_TRANSLATION:
+            db_Copy9(H_p_dx,H);
+            H_p_dx[2]+=dx[0];
+            H_p_dx[5]+=dx[1];
+            break;
+        case DB_HOMOGRAPHY_TYPE_AFFINE:
+            db_UpdateImageHomographyAffine(H_p_dx,H,dx);
+            break;
+        case DB_HOMOGRAPHY_TYPE_PROJECTIVE:
+            db_UpdateImageHomographyProjective(H_p_dx,H,dx,frozen_coord);
+            break;
+        case DB_HOMOGRAPHY_TYPE_CAMROTATION_F:
+        case DB_HOMOGRAPHY_TYPE_CAMROTATION_F_UD:
+            db_UpdateRotFocalHomography(H_p_dx,H,dx);
+            break;
+    }
+}
+
+void db_RobCamRotation_Polish_Generic(double H[9],int point_count,int homography_type,double *x_i,double *xp_i,double one_over_scale2,
+                               int max_iterations,double improvement_requirement)
+{
+    int i,update,stop,n;
+    int frozen_coord = 0;
+    double lambda,cost,current_cost;
+    double JtJ[72],min_Jtf[9],dx[8],H_p_dx[9];
+    double *JtJ_ref[9],d[8];
+
+    lambda=0.001;
+    for(update=1,stop=0,i=0;(stop<2) && (i<max_iterations);i++)
+    {
+        /*if first time since improvement, compute Jacobian and residual*/
+        if(update)
+        {
+            db_SetupMatrixRefs(JtJ_ref,9,8,JtJ);
+            current_cost=db_RobImageHomography_Jacobians_Generic(JtJ_ref,min_Jtf,&n,&frozen_coord,H,point_count,x_i,xp_i,homography_type,one_over_scale2);
+            update=0;
+        }
+
+#ifdef _VERBOSE_
+        /*std::cout << "Cost:" << current_cost << " ";*/
+#endif /*_VERBOSE_*/
+
+        /*Come up with a hypothesis dx
+        based on the current lambda*/
+        db_Compute_dx(dx,JtJ_ref,min_Jtf,lambda,d,n);
+
+        /*Compute Cost(x+dx)*/
+        db_ImageHomographyUpdateGeneric(H_p_dx,H,dx,homography_type,frozen_coord);
+        cost=db_RobImageHomography_Cost(H_p_dx,point_count,x_i,xp_i,one_over_scale2);
+
+        /*Is there an improvement?*/
+        if(cost<current_cost)
+        {
+            /*improvement*/
+            if(current_cost-cost<current_cost*improvement_requirement) stop++;
+            else stop=0;
+            lambda*=0.1;
+            /*Move to the hypothesised position x+dx*/
+            current_cost=cost;
+            db_Copy9(H,H_p_dx);
+            update=1;
+
+#ifdef _VERBOSE_
+        std::cout << "Step" << i << "Imp,Lambda=" << lambda << "Cost:" << current_cost << std::endl;
+#endif /*_VERBOSE_*/
+        }
+        else
+        {
+            /*no improvement*/
+            lambda*=10.0;
+            stop=0;
+        }
+    }
+}
+void db_RobImageHomography(
+                              /*Best homography*/
+                              double H[9],
+                              /*2DPoint to 2DPoint constraints
+                              Points are assumed to be given in
+                              homogenous coordinates*/
+                              double *im, double *im_p,
+                              /*Nr of points in total*/
+                              int nr_points,
+                              /*Calibration matrices
+                              used to normalize the points*/
+                              double K[9],
+                              double Kp[9],
+                              /*Pre-allocated space temp_d
+                              should point to at least
+                              12*nr_samples+10*nr_points
+                              allocated positions*/
+                              double *temp_d,
+                              /*Pre-allocated space temp_i
+                              should point to at least
+                              max(nr_samples,nr_points)
+                              allocated positions*/
+                              int *temp_i,
+                              int homography_type,
+                              db_Statistics *stat,
+                              int max_iterations,
+                              int max_points,
+                              double scale,
+                              int nr_samples,
+                              int chunk_size,
+                              /////////////////////////////////////////////
+                              // regular use: set outlierremoveflagE =0;
+                              // flag for the outlier removal
+                              int outlierremoveflagE,
+                              // if flag is 1, then the following variables
+                              // need the input
+                              //////////////////////////////////////
+                              // 3D coordinates
+                              double *wp,
+                              // its corresponding stereo pair's points
+                              double *im_r,
+                              // raw image coordinates
+                              double *im_raw, double *im_raw_p,
+                              // final matches
+                              int *finalNumE)
+{
+    /*Random seed*/
+    int r_seed;
+
+    int point_count_new;
+    /*Counters*/
+    int i,j,c,point_count,hyp_count;
+    int last_hyp,new_last_hyp,last_corr;
+    int pos,point_pos,last_point;
+    /*Accumulator*/
+    double acc;
+    /*Hypothesis pointer*/
+    double *hyp_point;
+    /*Random sample*/
+    int s[4];
+    /*Pivot for hypothesis pruning*/
+    double pivot;
+    /*Best hypothesis position*/
+    int best_pos;
+    /*Best score*/
+    double lowest_cost;
+    /*One over the squared scale of
+    Cauchy distribution*/
+    double one_over_scale2;
+    /*temporary pointers*/
+    double *x_i_temp,*xp_i_temp;
+    /*Temporary space for inverse calibration matrices*/
+    double K_inv[9];
+    double Kp_inv[9];
+    /*Temporary space for homography*/
+    double H_temp[9],H_temp2[9];
+    /*Pointers to homogenous coordinates*/
+    double *x_h_point,*xp_h_point;
+    /*Array of pointers to inhomogenous coordinates*/
+    double *X[3],*Xp[3];
+    /*Similarity parameters*/
+    int orientation_preserving,allow_scaling,allow_rotation,allow_translation,sample_size;
+
+    /*Homogenous coordinates of image points in first image*/
+    double *x_h;
+    /*Homogenous coordinates of image points in second image*/
+    double *xp_h;
+    /*Inhomogenous coordinates of image points in first image*/
+    double *x_i;
+    /*Inhomogenous coordinates of image points in second image*/
+    double *xp_i;
+    /*Homography hypotheses*/
+    double *hyp_H_array;
+    /*Cost array*/
+    double *hyp_cost_array;
+    /*Permutation of the hypotheses*/
+    int *hyp_perm;
+    /*Sample of the points*/
+    int *point_perm;
+    /*Temporary space for quick-select
+    2*nr_samples*/
+    double *temp_select;
+
+    /*Get inverse calibration matrices*/
+    db_InvertCalibrationMatrix(K_inv,K);
+    db_InvertCalibrationMatrix(Kp_inv,Kp);
+    /*Compute scale coefficient*/
+    one_over_scale2=1.0/(scale*scale);
+    /*Initialize random seed*/
+    r_seed=12345;
+    /*Set pointers to pre-allocated space*/
+    hyp_cost_array=temp_d;
+    hyp_H_array=temp_d+nr_samples;
+    temp_select=temp_d+10*nr_samples;
+    x_h=temp_d+12*nr_samples;
+    xp_h=temp_d+12*nr_samples+3*nr_points;
+    x_i=temp_d+12*nr_samples+6*nr_points;
+    xp_i=temp_d+12*nr_samples+8*nr_points;
+    hyp_perm=temp_i;
+    point_perm=temp_i;
+
+    /*Prepare a randomly permuted subset of size
+    point_count from the input points*/
+
+    point_count=db_mini(nr_points,(int)(chunk_size*log((double)nr_samples)/DB_LN2));
+
+    point_count_new = point_count;
+
+    for(i=0;i<nr_points;i++) point_perm[i]=i;
+
+    for(last_point=nr_points-1,i=0;i<point_count;i++,last_point--)
+    {
+        pos=db_RandomInt(r_seed,last_point);
+        point_pos=point_perm[pos];
+        point_perm[pos]=point_perm[last_point];
+
+        /*Normalize image points with calibration
+        matrices and move them to x_h and xp_h*/
+        c=3*point_pos;
+        j=3*i;
+        x_h_point=x_h+j;
+        xp_h_point=xp_h+j;
+        db_Multiply3x3_3x1(x_h_point,K_inv,im+c);
+        db_Multiply3x3_3x1(xp_h_point,Kp_inv,im_p+c);
+
+        db_HomogenousNormalize3(x_h_point);
+        db_HomogenousNormalize3(xp_h_point);
+
+        /*Dehomogenize image points and move them
+        to x_i and xp_i*/
+        c=(i<<1);
+        db_DeHomogenizeImagePoint(x_i+c,x_h_point); // 2-dimension
+        db_DeHomogenizeImagePoint(xp_i+c,xp_h_point); //2-dimension
+    }
+
+
+    /*Generate Hypotheses*/
+    hyp_count=0;
+    switch(homography_type)
+    {
+    case DB_HOMOGRAPHY_TYPE_SIMILARITY:
+    case DB_HOMOGRAPHY_TYPE_SIMILARITY_U:
+    case DB_HOMOGRAPHY_TYPE_TRANSLATION:
+    case DB_HOMOGRAPHY_TYPE_ROTATION:
+    case DB_HOMOGRAPHY_TYPE_ROTATION_U:
+    case DB_HOMOGRAPHY_TYPE_SCALING:
+    case DB_HOMOGRAPHY_TYPE_S_T:
+    case DB_HOMOGRAPHY_TYPE_R_T:
+    case DB_HOMOGRAPHY_TYPE_R_S:
+
+        switch(homography_type)
+        {
+        case DB_HOMOGRAPHY_TYPE_SIMILARITY:
+            orientation_preserving=1;
+            allow_scaling=1;
+            allow_rotation=1;
+            allow_translation=1;
+            sample_size=2;
+            break;
+        case DB_HOMOGRAPHY_TYPE_SIMILARITY_U:
+            orientation_preserving=0;
+            allow_scaling=1;
+            allow_rotation=1;
+            allow_translation=1;
+            sample_size=3;
+            break;
+        case DB_HOMOGRAPHY_TYPE_TRANSLATION:
+            orientation_preserving=1;
+            allow_scaling=0;
+            allow_rotation=0;
+            allow_translation=1;
+            sample_size=1;
+            break;
+        case DB_HOMOGRAPHY_TYPE_ROTATION:
+            orientation_preserving=1;
+            allow_scaling=0;
+            allow_rotation=1;
+            allow_translation=0;
+            sample_size=1;
+            break;
+        case DB_HOMOGRAPHY_TYPE_ROTATION_U:
+            orientation_preserving=0;
+            allow_scaling=0;
+            allow_rotation=1;
+            allow_translation=0;
+            sample_size=2;
+            break;
+        case DB_HOMOGRAPHY_TYPE_SCALING:
+            orientation_preserving=1;
+            allow_scaling=1;
+            allow_rotation=0;
+            allow_translation=0;
+            sample_size=1;
+            break;
+        case DB_HOMOGRAPHY_TYPE_S_T:
+            orientation_preserving=1;
+            allow_scaling=1;
+            allow_rotation=0;
+            allow_translation=1;
+            sample_size=2;
+            break;
+        case DB_HOMOGRAPHY_TYPE_R_T:
+            orientation_preserving=1;
+            allow_scaling=0;
+            allow_rotation=1;
+            allow_translation=1;
+            sample_size=2;
+            break;
+        case DB_HOMOGRAPHY_TYPE_R_S:
+            orientation_preserving=1;
+            allow_scaling=1;
+            allow_rotation=0;
+            allow_translation=0;
+            sample_size=1;
+            break;
+        }
+
+        if(point_count>=sample_size) for(i=0;i<nr_samples;i++)
+        {
+            db_RandomSample(s,3,point_count,r_seed);
+            X[0]= &x_i[s[0]<<1];
+            X[1]= &x_i[s[1]<<1];
+            X[2]= &x_i[s[2]<<1];
+            Xp[0]= &xp_i[s[0]<<1];
+            Xp[1]= &xp_i[s[1]<<1];
+            Xp[2]= &xp_i[s[2]<<1];
+            db_StitchSimilarity2D(&hyp_H_array[9*hyp_count],Xp,X,sample_size,orientation_preserving,
+                                  allow_scaling,allow_rotation,allow_translation);
+            hyp_count++;
+        }
+        break;
+
+    case DB_HOMOGRAPHY_TYPE_CAMROTATION:
+        if(point_count>=2) for(i=0;i<nr_samples;i++)
+        {
+            db_RandomSample(s,2,point_count,r_seed);
+            db_StitchCameraRotation_2Points(&hyp_H_array[9*hyp_count],
+                                      &x_h[3*s[0]],&x_h[3*s[1]],
+                                      &xp_h[3*s[0]],&xp_h[3*s[1]]);
+            hyp_count++;
+        }
+        break;
+
+    case DB_HOMOGRAPHY_TYPE_CAMROTATION_F:
+        if(point_count>=3) for(i=0;i<nr_samples;i++)
+        {
+            db_RandomSample(s,3,point_count,r_seed);
+            hyp_count+=db_StitchRotationCommonFocalLength_3Points(&hyp_H_array[9*hyp_count],
+                                      &x_h[3*s[0]],&x_h[3*s[1]],&x_h[3*s[2]],
+                                      &xp_h[3*s[0]],&xp_h[3*s[1]],&xp_h[3*s[2]]);
+        }
+        break;
+
+    case DB_HOMOGRAPHY_TYPE_CAMROTATION_F_UD:
+        if(point_count>=3) for(i=0;i<nr_samples;i++)
+        {
+            db_RandomSample(s,3,point_count,r_seed);
+            hyp_count+=db_StitchRotationCommonFocalLength_3Points(&hyp_H_array[9*hyp_count],
+                                      &x_h[3*s[0]],&x_h[3*s[1]],&x_h[3*s[2]],
+                                      &xp_h[3*s[0]],&xp_h[3*s[1]],&xp_h[3*s[2]],NULL,0);
+        }
+        break;
+
+    case DB_HOMOGRAPHY_TYPE_AFFINE:
+        if(point_count>=3) for(i=0;i<nr_samples;i++)
+        {
+            db_RandomSample(s,3,point_count,r_seed);
+            db_StitchAffine2D_3Points(&hyp_H_array[9*hyp_count],
+                                      &x_h[3*s[0]],&x_h[3*s[1]],&x_h[3*s[2]],
+                                      &xp_h[3*s[0]],&xp_h[3*s[1]],&xp_h[3*s[2]]);
+            hyp_count++;
+        }
+        break;
+
+    case DB_HOMOGRAPHY_TYPE_PROJECTIVE:
+    default:
+        if(point_count>=4) for(i=0;i<nr_samples;i++)
+        {
+            db_RandomSample(s,4,point_count,r_seed);
+            db_StitchProjective2D_4Points(&hyp_H_array[9*hyp_count],
+                                      &x_h[3*s[0]],&x_h[3*s[1]],&x_h[3*s[2]],&x_h[3*s[3]],
+                                      &xp_h[3*s[0]],&xp_h[3*s[1]],&xp_h[3*s[2]],&xp_h[3*s[3]]);
+            hyp_count++;
+        }
+    }
+
+    if(hyp_count)
+    {
+        /*Count cost in chunks and decimate hypotheses
+        until only one remains or the correspondences are
+        exhausted*/
+        for(i=0;i<hyp_count;i++)
+        {
+            hyp_perm[i]=i;
+            hyp_cost_array[i]=0.0;
+        }
+        for(i=0,last_hyp=hyp_count-1;(last_hyp>0) && (i<point_count);i+=chunk_size)
+        {
+            /*Update cost with the next chunk*/
+            last_corr=db_mini(i+chunk_size-1,point_count-1);
+            for(j=0;j<=last_hyp;j++)
+            {
+                hyp_point=hyp_H_array+9*hyp_perm[j];
+                for(c=i;c<=last_corr;)
+                {
+                    /*Take log of product of ten reprojection
+                    errors to reduce nr of expensive log operations*/
+                    if(c+9<=last_corr)
+                    {
+                        x_i_temp=x_i+(c<<1);
+                        xp_i_temp=xp_i+(c<<1);
+
+                        acc=db_ExpCauchyInhomogenousHomographyError(xp_i_temp,hyp_point,x_i_temp,one_over_scale2);
+                        acc*=db_ExpCauchyInhomogenousHomographyError(xp_i_temp+2,hyp_point,x_i_temp+2,one_over_scale2);
+                        acc*=db_ExpCauchyInhomogenousHomographyError(xp_i_temp+4,hyp_point,x_i_temp+4,one_over_scale2);
+                        acc*=db_ExpCauchyInhomogenousHomographyError(xp_i_temp+6,hyp_point,x_i_temp+6,one_over_scale2);
+                        acc*=db_ExpCauchyInhomogenousHomographyError(xp_i_temp+8,hyp_point,x_i_temp+8,one_over_scale2);
+                        acc*=db_ExpCauchyInhomogenousHomographyError(xp_i_temp+10,hyp_point,x_i_temp+10,one_over_scale2);
+                        acc*=db_ExpCauchyInhomogenousHomographyError(xp_i_temp+12,hyp_point,x_i_temp+12,one_over_scale2);
+                        acc*=db_ExpCauchyInhomogenousHomographyError(xp_i_temp+14,hyp_point,x_i_temp+14,one_over_scale2);
+                        acc*=db_ExpCauchyInhomogenousHomographyError(xp_i_temp+16,hyp_point,x_i_temp+16,one_over_scale2);
+                        acc*=db_ExpCauchyInhomogenousHomographyError(xp_i_temp+18,hyp_point,x_i_temp+18,one_over_scale2);
+                        c+=10;
+                    }
+                    else
+                    {
+                        for(acc=1.0;c<=last_corr;c++)
+                        {
+                            acc*=db_ExpCauchyInhomogenousHomographyError(xp_i+(c<<1),hyp_point,x_i+(c<<1),one_over_scale2);
+                        }
+                    }
+                    hyp_cost_array[j]+=log(acc);
+                }
+            }
+            if (chunk_size<point_count){
+                /*Prune out half of the hypotheses*/
+                new_last_hyp=(last_hyp+1)/2-1;
+                pivot=db_LeanQuickSelect(hyp_cost_array,last_hyp+1,new_last_hyp,temp_select);
+                for(j=0,c=0;(j<=last_hyp) && (c<=new_last_hyp);j++)
+                {
+                    if(hyp_cost_array[j]<=pivot)
+                    {
+                        hyp_cost_array[c]=hyp_cost_array[j];
+                        hyp_perm[c]=hyp_perm[j];
+                        c++;
+                    }
+                }
+                last_hyp=new_last_hyp;
+            }
+        }
+        /*Find the best hypothesis*/
+        lowest_cost=hyp_cost_array[0];
+        best_pos=0;
+        for(j=1;j<=last_hyp;j++)
+        {
+            if(hyp_cost_array[j]<lowest_cost)
+            {
+                lowest_cost=hyp_cost_array[j];
+                best_pos=j;
+            }
+        }
+
+        /*Move the best hypothesis*/
+        db_Copy9(H_temp,hyp_H_array+9*hyp_perm[best_pos]);
+
+        // outlier removal
+        if (outlierremoveflagE) // no polishment needed
+        {
+            point_count_new = db_RemoveOutliers_Homography(H_temp,x_i,xp_i,wp,im,im_p,im_r,im_raw,im_raw_p,point_count,one_over_scale2);
+        }
+        else
+        {
+            /*Polish*/
+            switch(homography_type)
+            {
+            case DB_HOMOGRAPHY_TYPE_SIMILARITY:
+            case DB_HOMOGRAPHY_TYPE_SIMILARITY_U:
+            case DB_HOMOGRAPHY_TYPE_TRANSLATION:
+            case DB_HOMOGRAPHY_TYPE_ROTATION:
+            case DB_HOMOGRAPHY_TYPE_ROTATION_U:
+            case DB_HOMOGRAPHY_TYPE_SCALING:
+            case DB_HOMOGRAPHY_TYPE_S_T:
+            case DB_HOMOGRAPHY_TYPE_R_T:
+            case DB_HOMOGRAPHY_TYPE_R_S:
+            case DB_HOMOGRAPHY_TYPE_AFFINE:
+            case DB_HOMOGRAPHY_TYPE_PROJECTIVE:
+            case DB_HOMOGRAPHY_TYPE_CAMROTATION_F:
+            case DB_HOMOGRAPHY_TYPE_CAMROTATION_F_UD:
+                db_RobCamRotation_Polish_Generic(H_temp,db_mini(point_count,max_points),homography_type,x_i,xp_i,one_over_scale2,max_iterations);
+                break;
+            case DB_HOMOGRAPHY_TYPE_CAMROTATION:
+                db_RobCamRotation_Polish(H_temp,db_mini(point_count,max_points),x_i,xp_i,one_over_scale2,max_iterations);
+                break;
+            }
+
+        }
+
+    }
+    else db_Identity3x3(H_temp);
+
+    switch(homography_type)
+    {
+    case DB_HOMOGRAPHY_TYPE_PROJECTIVE:
+        if(stat) stat->nr_parameters=8;
+        break;
+    case DB_HOMOGRAPHY_TYPE_AFFINE:
+        if(stat) stat->nr_parameters=6;
+        break;
+    case DB_HOMOGRAPHY_TYPE_SIMILARITY:
+    case DB_HOMOGRAPHY_TYPE_SIMILARITY_U:
+    case DB_HOMOGRAPHY_TYPE_CAMROTATION_F:
+    case DB_HOMOGRAPHY_TYPE_CAMROTATION_F_UD:
+        if(stat) stat->nr_parameters=4;
+        break;
+    case DB_HOMOGRAPHY_TYPE_CAMROTATION:
+        if(stat) stat->nr_parameters=3;
+        break;
+    case DB_HOMOGRAPHY_TYPE_TRANSLATION:
+    case DB_HOMOGRAPHY_TYPE_S_T:
+    case DB_HOMOGRAPHY_TYPE_R_T:
+    case DB_HOMOGRAPHY_TYPE_R_S:
+        if(stat) stat->nr_parameters=2;
+        break;
+    case DB_HOMOGRAPHY_TYPE_ROTATION:
+    case DB_HOMOGRAPHY_TYPE_ROTATION_U:
+    case DB_HOMOGRAPHY_TYPE_SCALING:
+        if(stat) stat->nr_parameters=1;
+        break;
+    }
+
+    db_RobImageHomography_Statistics(H_temp,db_mini(point_count,max_points),x_i,xp_i,one_over_scale2,stat);
+
+    /*Put on the calibration matrices*/
+    db_Multiply3x3_3x3(H_temp2,H_temp,K_inv);
+    db_Multiply3x3_3x3(H,Kp,H_temp2);
+
+    if (finalNumE)
+        *finalNumE = point_count_new;
+
+}
diff --git a/perftests/panorama/feature_stab/db_vlvm/db_rob_image_homography.h b/perftests/panorama/feature_stab/db_vlvm/db_rob_image_homography.h
new file mode 100644
index 0000000..59cde7d
--- /dev/null
+++ b/perftests/panorama/feature_stab/db_vlvm/db_rob_image_homography.h
@@ -0,0 +1,148 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+/* $Id: db_rob_image_homography.h,v 1.3 2011/06/17 14:03:31 mbansal Exp $ */
+
+#ifndef DB_ROB_IMAGE_HOMOGRAPHY
+#define DB_ROB_IMAGE_HOMOGRAPHY
+
+#include "db_utilities.h"
+#include "db_robust.h"
+#include "db_metrics.h"
+
+#include <stdlib.h> // for NULL
+
+
+/*****************************************************************
+*    Lean and mean begins here                                   *
+*****************************************************************/
+/*!
+ * \defgroup LMRobImageHomography (LM) Robust Image Homography
+ */
+/*\{*/
+
+#define DB_HOMOGRAPHY_TYPE_DEFAULT           0
+#define DB_HOMOGRAPHY_TYPE_PROJECTIVE        0
+#define DB_HOMOGRAPHY_TYPE_AFFINE            1
+#define DB_HOMOGRAPHY_TYPE_SIMILARITY        2
+#define DB_HOMOGRAPHY_TYPE_SIMILARITY_U      3
+#define DB_HOMOGRAPHY_TYPE_TRANSLATION       4
+#define DB_HOMOGRAPHY_TYPE_ROTATION          5
+#define DB_HOMOGRAPHY_TYPE_ROTATION_U        6
+#define DB_HOMOGRAPHY_TYPE_SCALING           7
+#define DB_HOMOGRAPHY_TYPE_S_T               8
+#define DB_HOMOGRAPHY_TYPE_R_T               9
+#define DB_HOMOGRAPHY_TYPE_R_S              10
+#define DB_HOMOGRAPHY_TYPE_CAMROTATION      11
+#define DB_HOMOGRAPHY_TYPE_CAMROTATION_F    12
+#define DB_HOMOGRAPHY_TYPE_CAMROTATION_F_UD 13
+
+/*!
+Solve for homography H such that xp~Hx
+\param H    best homography
+
+2D point to 2D point constraints:
+
+\param im           first image points
+\param im_p         second image points
+\param nr_points    number of points
+
+Calibration matrices:
+
+\param K    first camera
+\param Kp   second camera
+
+ Temporary space:
+
+ \param temp_d      pre-allocated space of size 12*nr_samples+10*nr_points doubles
+ \param temp_i      pre-allocated space of size max(nr_samples,nr_points) ints
+
+ Statistics for this estimation
+
+ \param stat        NULL - do not compute
+
+ \param homography_type see DB_HOMOGRAPHY_TYPE_* definitions above
+
+ Estimation parameters:
+
+ \param max_iterations  max number of polishing steps
+ \param max_points      only use this many points
+ \param scale           Cauchy scale coefficient (see db_ExpCauchyReprojectionError() )
+ \param nr_samples      number of times to compute a hypothesis
+ \param chunk_size      size of cost chunks
+*/
+DB_API void db_RobImageHomography(
+                              /*Best homography*/
+                              double H[9],
+                              /*2DPoint to 2DPoint constraints
+                              Points are assumed to be given in
+                              homogenous coordinates*/
+                              double *im,double *im_p,
+                              /*Nr of points in total*/
+                              int nr_points,
+                              /*Calibration matrices
+                              used to normalize the points*/
+                              double K[9],
+                              double Kp[9],
+                              /*Pre-allocated space temp_d
+                              should point to at least
+                              12*nr_samples+10*nr_points
+                              allocated positions*/
+                              double *temp_d,
+                              /*Pre-allocated space temp_i
+                              should point to at least
+                              max(nr_samples,nr_points)
+                              allocated positions*/
+                              int *temp_i,
+                              int homography_type=DB_HOMOGRAPHY_TYPE_DEFAULT,
+                              db_Statistics *stat=NULL,
+                              int max_iterations=DB_DEFAULT_MAX_ITERATIONS,
+                              int max_points=DB_DEFAULT_MAX_POINTS,
+                              double scale=DB_POINT_STANDARDDEV,
+                              int nr_samples=DB_DEFAULT_NR_SAMPLES,
+                              int chunk_size=DB_DEFAULT_CHUNK_SIZE,
+                              ///////////////////////////////////////////////////
+                              // flag for the outlier removal
+                              int outlierremoveflagE = 0,
+                              // if flag is 1, then the following variables
+                              // need to input
+                              ///////////////////////////////////////////////////
+                              // 3D coordinates
+                              double *wp=NULL,
+                              // its corresponding stereo pair's points
+                              double *im_r=NULL,
+                              // raw image coordinates
+                              double *im_raw=NULL, double *im_raw_p=NULL,
+                              // final matches
+                              int *final_NumE=0);
+
+DB_API double db_RobImageHomography_Cost(double H[9],int point_count,double *x_i,
+                                                double *xp_i,double one_over_scale2);
+
+
+DB_API void db_RobCamRotation_Polish(double H[9],int point_count,double *x_i,
+                                     double *xp_i, double one_over_scale2,
+                                     int max_iterations=DB_DEFAULT_MAX_ITERATIONS,
+                                     double improvement_requirement=DB_DEFAULT_IMP_REQ);
+
+
+DB_API void db_RobCamRotation_Polish_Generic(double H[9],int point_count,int homography_type,
+                                             double *x_i,double *xp_i,double one_over_scale2,
+                                             int max_iterations=DB_DEFAULT_MAX_ITERATIONS,
+                                             double improvement_requirement=DB_DEFAULT_IMP_REQ);
+
+
+#endif /* DB_ROB_IMAGE_HOMOGRAPHY */
diff --git a/perftests/panorama/feature_stab/db_vlvm/db_robust.h b/perftests/panorama/feature_stab/db_vlvm/db_robust.h
new file mode 100644
index 0000000..be0794c
--- /dev/null
+++ b/perftests/panorama/feature_stab/db_vlvm/db_robust.h
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+/* $Id: db_robust.h,v 1.4 2011/06/17 14:03:31 mbansal Exp $ */
+
+#ifndef DB_ROBUST
+#define DB_ROBUST
+
+
+
+/*****************************************************************
+*    Lean and mean begins here                                   *
+*****************************************************************/
+/*!
+ * \defgroup LMRobust (LM) Robust Estimation
+ */
+
+/*!
+    \struct     db_Statistics
+    \ingroup    LMRobust
+    \brief      (LnM) Sampling problem statistics
+    \date       Mon Sep 10 10:28:08 EDT 2007
+    \par        Copyright: 2007 Sarnoff Corporation.  All Rights Reserved
+ */
+ struct db_stat_struct
+ {
+     int nr_points;
+     int nr_inliers;
+     double inlier_fraction;
+     double cost;
+     double one_over_scale2;
+     double lambda1;
+     double lambda2;
+     double lambda3;
+     int nr_parameters;
+     int model_dimension;
+     double gric;
+     double inlier_evidence;
+     double posestd[6];
+     double rotationvecCov[9];
+     double translationvecCov[9];
+     int posecov_inliercount;
+     int posecovready;
+     double median_reprojection_error;
+ };
+ typedef db_stat_struct db_Statistics;
+
+#endif /* DB_ROBUST */
diff --git a/perftests/panorama/feature_stab/db_vlvm/db_utilities.cpp b/perftests/panorama/feature_stab/db_vlvm/db_utilities.cpp
new file mode 100644
index 0000000..ce2093b
--- /dev/null
+++ b/perftests/panorama/feature_stab/db_vlvm/db_utilities.cpp
@@ -0,0 +1,176 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+/* $Id: db_utilities.cpp,v 1.4 2011/06/17 14:03:31 mbansal Exp $ */
+
+#include "db_utilities.h"
+#include <string.h>
+#include <stdio.h>
+
+float** db_SetupImageReferences_f(float *im,int w,int h)
+{
+    int i;
+    float **img;
+    assert(im);
+    img=new float* [h];
+    for(i=0;i<h;i++)
+    {
+        img[i]=im+w*i;
+    }
+    return(img);
+}
+
+unsigned char** db_SetupImageReferences_u(unsigned char *im,int w,int h)
+{
+    int i;
+    unsigned char **img;
+
+    assert(im);
+
+    img=new unsigned char* [h];
+    for(i=0;i<h;i++)
+    {
+        img[i]=im+w*i;
+    }
+    return(img);
+}
+float** db_AllocImage_f(int w,int h,int over_allocation)
+{
+    float **img,*im;
+
+    im=new float [w*h+over_allocation];
+    img=db_SetupImageReferences_f(im,w,h);
+
+    return(img);
+}
+
+unsigned char** db_AllocImage_u(int w,int h,int over_allocation)
+{
+    unsigned char **img,*im;
+
+    im=new unsigned char [w*h+over_allocation];
+    img=db_SetupImageReferences_u(im,w,h);
+
+    return(img);
+}
+
+void db_FreeImage_f(float **img,int h)
+{
+    delete [] (img[0]);
+    delete [] img;
+}
+
+void db_FreeImage_u(unsigned char **img,int h)
+{
+    delete [] (img[0]);
+    delete [] img;
+}
+
+// ----------------------------------------------------------------------------------------------------------- ;
+//
+// copy image (source to destination)
+// ---> must be a 2D image array with the same image size
+// ---> the size of the input and output images must be same
+//
+// ------------------------------------------------------------------------------------------------------------ ;
+void db_CopyImage_u(unsigned char **d,const unsigned char * const *s, int w, int h, int over_allocation)
+{
+    int i;
+
+    for (i=0;i<h;i++)
+    {
+        memcpy(d[i],s[i],w*sizeof(unsigned char));
+    }
+
+    memcpy(&d[h],&d[h],over_allocation);
+
+}
+
+inline void db_WarpImageLutFast_u(const unsigned char * const * src, unsigned char ** dst, int w, int h,
+                                  const float * const * lut_x, const float * const * lut_y)
+{
+    assert(src && dst);
+    int xd=0, yd=0;
+
+    for ( int i = 0; i < w; ++i )
+        for ( int j = 0; j < h; ++j )
+        {
+            //xd = static_cast<unsigned int>(lut_x[j][i]);
+            //yd = static_cast<unsigned int>(lut_y[j][i]);
+            xd = (unsigned int)(lut_x[j][i]);
+            yd = (unsigned int)(lut_y[j][i]);
+            if ( xd >= w || yd >= h ||
+                 xd < 0 || yd < 0)
+                dst[j][i] = 0;
+            else
+                dst[j][i] = src[yd][xd];
+        }
+}
+
+inline void db_WarpImageLutBilinear_u(const unsigned char * const * src, unsigned char ** dst, int w, int h,
+                                      const float * const * lut_x,const float * const* lut_y)
+{
+    assert(src && dst);
+    double xd=0.0, yd=0.0;
+
+    for ( int i = 0; i < w; ++i )
+        for ( int j = 0; j < h; ++j )
+        {
+            xd = static_cast<double>(lut_x[j][i]);
+            yd = static_cast<double>(lut_y[j][i]);
+            if ( xd > w   || yd > h ||
+                 xd < 0.0 || yd < 0.0)
+                dst[j][i] = 0;
+            else
+                dst[j][i] = db_BilinearInterpolation(yd, xd, src);
+        }
+}
+
+
+void db_WarpImageLut_u(const unsigned char * const * src, unsigned char ** dst, int w, int h,
+                       const float * const * lut_x,const float * const * lut_y, int type)
+{
+    switch (type)
+    {
+    case DB_WARP_FAST:
+        db_WarpImageLutFast_u(src,dst,w,h,lut_x,lut_y);
+        break;
+    case DB_WARP_BILINEAR:
+        db_WarpImageLutBilinear_u(src,dst,w,h,lut_x,lut_y);
+        break;
+    default:
+        break;
+    }
+}
+
+
+void db_PrintDoubleVector(double *a,long size)
+{
+    printf("[ ");
+    for(long i=0;i<size;i++) printf("%lf ",a[i]);
+    printf("]");
+}
+
+void db_PrintDoubleMatrix(double *a,long rows,long cols)
+{
+    printf("[\n");
+    for(long i=0;i<rows;i++)
+    {
+        for(long j=0;j<cols;j++) printf("%lf ",a[i*cols+j]);
+        printf("\n");
+    }
+    printf("]");
+}
diff --git a/perftests/panorama/feature_stab/db_vlvm/db_utilities.h b/perftests/panorama/feature_stab/db_vlvm/db_utilities.h
new file mode 100644
index 0000000..fa9c877
--- /dev/null
+++ b/perftests/panorama/feature_stab/db_vlvm/db_utilities.h
@@ -0,0 +1,571 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+/* $Id: db_utilities.h,v 1.3 2011/06/17 14:03:31 mbansal Exp $ */
+
+#ifndef DB_UTILITIES_H
+#define DB_UTILITIES_H
+
+
+#ifdef _WIN32
+#pragma warning(disable: 4275)
+#pragma warning(disable: 4251)
+#pragma warning(disable: 4786)
+#pragma warning(disable: 4800)
+#pragma warning(disable: 4018) /* signed-unsigned mismatch */
+#endif /* _WIN32 */
+
+#ifdef _WIN32
+    #ifdef DBDYNAMIC_EXPORTS
+        #define DB_API __declspec(dllexport)
+    #else
+        #ifdef DBDYNAMIC_IMPORTS
+            #define DB_API __declspec(dllimport)
+        #else
+            #define DB_API
+        #endif
+    #endif
+#else
+    #define DB_API
+#endif /* _WIN32 */
+
+#ifdef _VERBOSE_
+#include <iostream>
+#endif
+
+#include <math.h>
+
+#include <assert.h>
+#include "db_utilities_constants.h"
+/*!
+ * \defgroup LMBasicUtilities (LM) Utility Functions (basic math, linear algebra and array manipulations)
+ */
+/*\{*/
+
+/*!
+ * Round double into int using fld and fistp instructions.
+ */
+inline int db_roundi (double x) {
+#ifdef WIN32_ASM
+    int n;
+    __asm
+    {
+        fld x;
+        fistp n;
+    }
+    return n;
+#else
+    return static_cast<int>(floor(x+0.5));
+#endif
+}
+
+/*!
+ * Square a double.
+ */
+inline double db_sqr(double a)
+{
+    return(a*a);
+}
+
+/*!
+ * Square a long.
+ */
+inline long db_sqr(long a)
+{
+    return(a*a);
+}
+
+/*!
+ * Square an int.
+ */
+inline long db_sqr(int a)
+{
+    return(a*a);
+}
+
+/*!
+ * Maximum of two doubles.
+ */
+inline double db_maxd(double a,double b)
+{
+    if(b>a) return(b);
+    else return(a);
+}
+/*!
+ * Minumum of two doubles.
+ */
+inline double db_mind(double a,double b)
+{
+    if(b<a) return(b);
+    else return(a);
+}
+
+
+/*!
+ * Maximum of two ints.
+ */
+inline int db_maxi(int a,int b)
+{
+    if(b>a) return(b);
+    else return(a);
+}
+
+/*!
+ * Minimum of two numbers.
+ */
+inline int db_mini(int a,int b)
+{
+    if(b<a) return(b);
+    else return(a);
+}
+/*!
+ * Maximum of two numbers.
+ */
+inline long db_maxl(long a,long b)
+{
+    if(b>a) return(b);
+    else return(a);
+}
+
+/*!
+ * Minimum of two numbers.
+ */
+inline long db_minl(long a,long b)
+{
+    if(b<a) return(b);
+    else return(a);
+}
+
+/*!
+ * Sign of a number.
+ * \return -1.0 if negative, 1.0 if positive.
+ */
+inline double db_sign(double x)
+{
+    if(x>=0.0) return(1.0);
+    else return(-1.0);
+}
+/*!
+ * Absolute value.
+ */
+inline int db_absi(int a)
+{
+    if(a<0) return(-a);
+    else return(a);
+}
+/*!
+ * Absolute value.
+ */
+inline float db_absf(float a)
+{
+    if(a<0) return(-a);
+    else return(a);
+}
+
+/*!
+ * Absolute value.
+ */
+inline double db_absd(double a)
+{
+    if(a<0) return(-a);
+    else return(a);
+}
+
+/*!
+ * Reciprocal (1/a). Prevents divide by 0.
+ * \return 1/a if a != 0. 1.0 otherwise.
+ */
+inline double db_SafeReciprocal(double a)
+{
+    return((a!=0.0)?(1.0/a):1.0);
+}
+
+/*!
+ * Division. Prevents divide by 0.
+ * \return a/b if b!=0. a otherwise.
+ */
+inline double db_SafeDivision(double a,double b)
+{
+    return((b!=0.0)?(a/b):a);
+}
+
+/*!
+ * Square root. Prevents imaginary output.
+ * \return sqrt(a) if a > 0.0. 0.0 otherewise.
+ */
+inline double db_SafeSqrt(double a)
+{
+    return((a>=0.0)?(sqrt(a)):0.0);
+}
+
+/*!
+ * Square root of a reciprocal. Prevents divide by 0 and imaginary output.
+ * \return sqrt(1/a) if a > 0.0. 1.0 otherewise.
+ */
+inline double db_SafeSqrtReciprocal(double a)
+{
+    return((a>0.0)?(sqrt(1.0/a)):1.0);
+}
+/*!
+ * Cube root.
+ */
+inline double db_CubRoot(double x)
+{
+    if(x>=0.0) return(pow(x,1.0/3.0));
+    else return(-pow(-x,1.0/3.0));
+}
+/*!
+ * Sum of squares of elements of x.
+ */
+inline double db_SquareSum3(const double x[3])
+{
+    return(db_sqr(x[0])+db_sqr(x[1])+db_sqr(x[2]));
+}
+/*!
+ * Sum of squares of elements of x.
+ */
+inline double db_SquareSum7(double x[7])
+{
+    return(db_sqr(x[0])+db_sqr(x[1])+db_sqr(x[2])+
+        db_sqr(x[3])+db_sqr(x[4])+db_sqr(x[5])+
+        db_sqr(x[6]));
+}
+/*!
+ * Sum of squares of elements of x.
+ */
+inline double db_SquareSum9(double x[9])
+{
+    return(db_sqr(x[0])+db_sqr(x[1])+db_sqr(x[2])+
+        db_sqr(x[3])+db_sqr(x[4])+db_sqr(x[5])+
+        db_sqr(x[6])+db_sqr(x[7])+db_sqr(x[8]));
+}
+/*!
+ * Copy a vector.
+ * \param xd destination
+ * \param xs source
+ */
+void inline db_Copy3(double xd[3],const double xs[3])
+{
+    xd[0]=xs[0];xd[1]=xs[1];xd[2]=xs[2];
+}
+/*!
+ * Copy a vector.
+ * \param xd destination
+ * \param xs source
+ */
+void inline db_Copy6(double xd[6],const double xs[6])
+{
+    xd[0]=xs[0];xd[1]=xs[1];xd[2]=xs[2];
+    xd[3]=xs[3];xd[4]=xs[4];xd[5]=xs[5];
+}
+/*!
+ * Copy a vector.
+ * \param xd destination
+ * \param xs source
+ */
+void inline db_Copy9(double xd[9],const double xs[9])
+{
+    xd[0]=xs[0];xd[1]=xs[1];xd[2]=xs[2];
+    xd[3]=xs[3];xd[4]=xs[4];xd[5]=xs[5];
+    xd[6]=xs[6];xd[7]=xs[7];xd[8]=xs[8];
+}
+
+/*!
+ * Scalar product: Transpose(A)*B.
+ */
+inline double db_ScalarProduct4(const double A[4],const double B[4])
+{
+    return(A[0]*B[0]+A[1]*B[1]+A[2]*B[2]+A[3]*B[3]);
+}
+/*!
+ * Scalar product: Transpose(A)*B.
+ */
+inline double db_ScalarProduct7(const double A[7],const double B[7])
+{
+    return(A[0]*B[0]+A[1]*B[1]+A[2]*B[2]+
+        A[3]*B[3]+A[4]*B[4]+A[5]*B[5]+
+        A[6]*B[6]);
+}
+/*!
+ * Scalar product: Transpose(A)*B.
+ */
+inline double db_ScalarProduct9(const double A[9],const double B[9])
+{
+    return(A[0]*B[0]+A[1]*B[1]+A[2]*B[2]+
+        A[3]*B[3]+A[4]*B[4]+A[5]*B[5]+
+        A[6]*B[6]+A[7]*B[7]+A[8]*B[8]);
+}
+/*!
+ * Vector addition: S=A+B.
+ */
+inline void db_AddVectors6(double S[6],const double A[6],const double B[6])
+{
+    S[0]=A[0]+B[0]; S[1]=A[1]+B[1]; S[2]=A[2]+B[2]; S[3]=A[3]+B[3]; S[4]=A[4]+B[4];
+    S[5]=A[5]+B[5];
+}
+/*!
+ * Multiplication: C(3x1)=A(3x3)*B(3x1).
+ */
+inline void db_Multiply3x3_3x1(double y[3],const double A[9],const double x[3])
+{
+    y[0]=A[0]*x[0]+A[1]*x[1]+A[2]*x[2];
+    y[1]=A[3]*x[0]+A[4]*x[1]+A[5]*x[2];
+    y[2]=A[6]*x[0]+A[7]*x[1]+A[8]*x[2];
+}
+inline void db_Multiply3x3_3x3(double C[9], const double A[9],const double B[9])
+{
+    C[0]=A[0]*B[0]+A[1]*B[3]+A[2]*B[6];
+    C[1]=A[0]*B[1]+A[1]*B[4]+A[2]*B[7];
+    C[2]=A[0]*B[2]+A[1]*B[5]+A[2]*B[8];
+
+    C[3]=A[3]*B[0]+A[4]*B[3]+A[5]*B[6];
+    C[4]=A[3]*B[1]+A[4]*B[4]+A[5]*B[7];
+    C[5]=A[3]*B[2]+A[4]*B[5]+A[5]*B[8];
+
+    C[6]=A[6]*B[0]+A[7]*B[3]+A[8]*B[6];
+    C[7]=A[6]*B[1]+A[7]*B[4]+A[8]*B[7];
+    C[8]=A[6]*B[2]+A[7]*B[5]+A[8]*B[8];
+}
+/*!
+ * Multiplication: C(4x1)=A(4x4)*B(4x1).
+ */
+inline void db_Multiply4x4_4x1(double y[4],const double A[16],const double x[4])
+{
+    y[0]=A[0]*x[0]+A[1]*x[1]+A[2]*x[2]+A[3]*x[3];
+    y[1]=A[4]*x[0]+A[5]*x[1]+A[6]*x[2]+A[7]*x[3];
+    y[2]=A[8]*x[0]+A[9]*x[1]+A[10]*x[2]+A[11]*x[3];
+    y[3]=A[12]*x[0]+A[13]*x[1]+A[14]*x[2]+A[15]*x[3];
+}
+/*!
+ * Scalar multiplication in place: A(3)=mult*A(3).
+ */
+inline void db_MultiplyScalar3(double *A,double mult)
+{
+    (*A++) *= mult; (*A++) *= mult; (*A++) *= mult;
+}
+
+/*!
+ * Scalar multiplication: A(3)=mult*B(3).
+ */
+inline void db_MultiplyScalarCopy3(double *A,const double *B,double mult)
+{
+    (*A++)=(*B++)*mult; (*A++)=(*B++)*mult; (*A++)=(*B++)*mult;
+}
+
+/*!
+ * Scalar multiplication: A(4)=mult*B(4).
+ */
+inline void db_MultiplyScalarCopy4(double *A,const double *B,double mult)
+{
+    (*A++)=(*B++)*mult; (*A++)=(*B++)*mult; (*A++)=(*B++)*mult; (*A++)=(*B++)*mult;
+}
+/*!
+ * Scalar multiplication: A(7)=mult*B(7).
+ */
+inline void db_MultiplyScalarCopy7(double *A,const double *B,double mult)
+{
+    (*A++)=(*B++)*mult; (*A++)=(*B++)*mult; (*A++)=(*B++)*mult; (*A++)=(*B++)*mult; (*A++)=(*B++)*mult;
+    (*A++)=(*B++)*mult; (*A++)=(*B++)*mult;
+}
+/*!
+ * Scalar multiplication: A(9)=mult*B(9).
+ */
+inline void db_MultiplyScalarCopy9(double *A,const double *B,double mult)
+{
+    (*A++)=(*B++)*mult; (*A++)=(*B++)*mult; (*A++)=(*B++)*mult; (*A++)=(*B++)*mult; (*A++)=(*B++)*mult;
+    (*A++)=(*B++)*mult; (*A++)=(*B++)*mult; (*A++)=(*B++)*mult; (*A++)=(*B++)*mult;
+}
+
+/*!
+ * \defgroup LMImageBasicUtilities (LM) Basic Image Utility Functions
+
+ Images in db are simply 2D arrays of unsigned char or float types.
+ Only the very basic operations are supported: allocation/deallocation,
+copying, simple pyramid construction and LUT warping. These images are used
+by db_CornerDetector_u and db_Matcher_u. The db_Image class is an attempt
+to wrap these images. It has not been tested well.
+
+ */
+/*\{*/
+/*!
+ * Given a float image array, allocates and returns the set of row poiners.
+ * \param im    image pointer
+ * \param w     image width
+ * \param h     image height
+ */
+DB_API float** db_SetupImageReferences_f(float *im,int w,int h);
+/*!
+ * Allocate a float image.
+ * Note: for feature detection images must be overallocated by 256 bytes.
+ * \param w                 width
+ * \param h                 height
+ * \param over_allocation   allocate this many extra bytes at the end
+ * \return row array pointer
+ */
+DB_API float** db_AllocImage_f(int w,int h,int over_allocation=256);
+/*!
+ * Free a float image
+ * \param img   row array pointer
+ * \param h     image height (number of rows)
+ */
+DB_API void db_FreeImage_f(float **img,int h);
+/*!
+ * Given an unsigned char image array, allocates and returns the set of row poiners.
+ * \param im    image pointer
+ * \param w     image width
+ * \param h     image height
+ */
+DB_API unsigned char** db_SetupImageReferences_u(unsigned char *im,int w,int h);
+/*!
+ * Allocate an unsigned char image.
+ * Note: for feature detection images must be overallocated by 256 bytes.
+ * \param w                 width
+ * \param h                 height
+ * \param over_allocation   allocate this many extra bytes at the end
+ * \return row array pointer
+ */
+DB_API unsigned char** db_AllocImage_u(int w,int h,int over_allocation=256);
+/*!
+ * Free an unsigned char image
+ * \param img   row array pointer
+ * \param h     image height (number of rows)
+ */
+DB_API void db_FreeImage_u(unsigned char **img,int h);
+
+/*!
+ Copy an image from s to d. Both s and d must be pre-allocated at of the same size.
+ Copy is done row by row.
+ \param s   source
+ \param d   destination
+ \param w   width
+ \param h   height
+ \param over_allocation copy this many bytes after the end of the last line
+ */
+DB_API void db_CopyImage_u(unsigned char **d,const unsigned char * const *s,int w,int h,int over_allocation=0);
+
+DB_API inline unsigned char db_BilinearInterpolation(double y, double x, const unsigned char * const * v)
+{
+    int floor_x=(int) x;
+    int floor_y=(int) y;
+
+    int ceil_x=floor_x+1;
+    int ceil_y=floor_y+1;
+
+    unsigned char f00 = v[floor_y][floor_x];
+    unsigned char f01 = v[floor_y][ceil_x];
+    unsigned char f10 = v[ceil_y][floor_x];
+    unsigned char f11 = v[ceil_y][ceil_x];
+
+    double xl = x-floor_x;
+    double yl = y-floor_y;
+
+    return (unsigned char)(f00*(1-yl)*(1-xl) + f10*yl*(1-xl) + f01*(1-yl)*xl + f11*yl*xl);
+}
+/*\}*/
+/*!
+ * \ingroup LMRotation
+ * Compute an incremental rotation matrix using the update dx=[sin(phi) sin(ohm) sin(kap)]
+ */
+inline void db_IncrementalRotationMatrix(double R[9],const double dx[3])
+{
+    double sp,so,sk,om_sp2,om_so2,om_sk2,cp,co,ck,sp_so,cp_so;
+
+    /*Store sines*/
+    sp=dx[0]; so=dx[1]; sk=dx[2];
+    om_sp2=1.0-sp*sp;
+    om_so2=1.0-so*so;
+    om_sk2=1.0-sk*sk;
+    /*Compute cosines*/
+    cp=(om_sp2>=0.0)?sqrt(om_sp2):1.0;
+    co=(om_so2>=0.0)?sqrt(om_so2):1.0;
+    ck=(om_sk2>=0.0)?sqrt(om_sk2):1.0;
+    /*Compute matrix*/
+    sp_so=sp*so;
+    cp_so=cp*so;
+    R[0]=sp_so*sk+cp*ck; R[1]=co*sk; R[2]=cp_so*sk-sp*ck;
+    R[3]=sp_so*ck-cp*sk; R[4]=co*ck; R[5]=cp_so*ck+sp*sk;
+    R[6]=sp*co;          R[7]= -so;  R[8]=cp*co;
+}
+/*!
+ * Zero out 2 vector in place.
+ */
+void inline db_Zero2(double x[2])
+{
+    x[0]=x[1]=0;
+}
+/*!
+ * Zero out 3 vector in place.
+ */
+void inline db_Zero3(double x[3])
+{
+    x[0]=x[1]=x[2]=0;
+}
+/*!
+ * Zero out 4 vector in place.
+ */
+void inline db_Zero4(double x[4])
+{
+    x[0]=x[1]=x[2]=x[3]=0;
+}
+/*!
+ * Zero out 9 vector in place.
+ */
+void inline db_Zero9(double x[9])
+{
+    x[0]=x[1]=x[2]=x[3]=x[4]=x[5]=x[6]=x[7]=x[8]=0;
+}
+
+#define DB_WARP_FAST        0
+#define DB_WARP_BILINEAR    1
+
+/*!
+ * Perform a look-up table warp.
+ * The LUTs must be float images of the same size as source image.
+ * The source value x_s is determined from destination (x_d,y_d) through lut_x
+ * and y_s is determined from lut_y:
+   \code
+   x_s = lut_x[y_d][x_d];
+   y_s = lut_y[y_d][x_d];
+   \endcode
+
+ * \param src   source image
+ * \param dst   destination image
+ * \param w     width
+ * \param h     height
+ * \param lut_x LUT for x
+ * \param lut_y LUT for y
+ * \param type  warp type (DB_WARP_FAST or DB_WARP_BILINEAR)
+ */
+DB_API void db_WarpImageLut_u(const unsigned char * const * src,unsigned char ** dst, int w, int h,
+                               const float * const * lut_x, const float * const * lut_y, int type=DB_WARP_BILINEAR);
+
+DB_API void db_PrintDoubleVector(double *a,long size);
+DB_API void db_PrintDoubleMatrix(double *a,long rows,long cols);
+
+#include "db_utilities_constants.h"
+#include "db_utilities_algebra.h"
+#include "db_utilities_indexing.h"
+#include "db_utilities_linalg.h"
+#include "db_utilities_poly.h"
+#include "db_utilities_geometry.h"
+#include "db_utilities_random.h"
+#include "db_utilities_rotation.h"
+#include "db_utilities_camera.h"
+
+#define DB_INVALID (-1)
+
+
+#endif /* DB_UTILITIES_H */
diff --git a/perftests/panorama/feature_stab/db_vlvm/db_utilities_algebra.h b/perftests/panorama/feature_stab/db_vlvm/db_utilities_algebra.h
new file mode 100644
index 0000000..2aedd74
--- /dev/null
+++ b/perftests/panorama/feature_stab/db_vlvm/db_utilities_algebra.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+/* $Id: db_utilities_algebra.h,v 1.3 2011/06/17 14:03:31 mbansal Exp $ */
+
+#ifndef DB_UTILITIES_ALGEBRA
+#define DB_UTILITIES_ALGEBRA
+
+#include "db_utilities.h"
+
+
+
+/*****************************************************************
+*    Lean and mean begins here                                   *
+*****************************************************************/
+/*!
+ * \defgroup LMAlgebra (LM) Algebra utilities
+ */
+/*\{*/
+
+inline void db_HomogenousNormalize3(double *x)
+{
+    db_MultiplyScalar3(x,db_SafeSqrtReciprocal(db_SquareSum3(x)));
+}
+
+/*\}*/
+
+#endif /* DB_UTILITIES_ALGEBRA */
diff --git a/perftests/panorama/feature_stab/db_vlvm/db_utilities_camera.cpp b/perftests/panorama/feature_stab/db_vlvm/db_utilities_camera.cpp
new file mode 100644
index 0000000..dceba9b
--- /dev/null
+++ b/perftests/panorama/feature_stab/db_vlvm/db_utilities_camera.cpp
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+/* $Id: db_utilities_camera.cpp,v 1.3 2011/06/17 14:03:31 mbansal Exp $ */
+
+#include "db_utilities_camera.h"
+#include "db_utilities.h"
+#include <assert.h>
+
+
+
+/*****************************************************************
+*    Lean and mean begins here                                   *
+*****************************************************************/
+
+void db_Approx3DCalMat(double K[9],double Kinv[9],int im_width,int im_height,double f_correction,int field)
+{
+    double iw,ih,av_size,field_fact;
+
+    if(field) field_fact=2.0;
+    else field_fact=1.0;
+
+    iw=(double)im_width;
+    ih=(double)(im_height*field_fact);
+    av_size=(iw+ih)/2.0;
+    K[0]=f_correction*av_size;
+    K[1]=0;
+    K[2]=iw/2.0;
+    K[3]=0;
+    K[4]=f_correction*av_size/field_fact;
+    K[5]=ih/2.0/field_fact;
+    K[6]=0;
+    K[7]=0;
+    K[8]=1;
+
+    db_InvertCalibrationMatrix(Kinv,K);
+}
diff --git a/perftests/panorama/feature_stab/db_vlvm/db_utilities_camera.h b/perftests/panorama/feature_stab/db_vlvm/db_utilities_camera.h
new file mode 100644
index 0000000..26ba442
--- /dev/null
+++ b/perftests/panorama/feature_stab/db_vlvm/db_utilities_camera.h
@@ -0,0 +1,332 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+/* $Id: db_utilities_camera.h,v 1.3 2011/06/17 14:03:31 mbansal Exp $ */
+
+#ifndef DB_UTILITIES_CAMERA
+#define DB_UTILITIES_CAMERA
+
+#include "db_utilities.h"
+
+
+
+/*****************************************************************
+*    Lean and mean begins here                                   *
+*****************************************************************/
+/*!
+ * \defgroup LMCamera (LM) Camera Utilities
+ */
+/*\{*/
+
+#include "db_utilities.h"
+
+#define DB_RADDISTMODE_BOUGEUT  4
+#define DB_RADDISTMODE_2NDORDER 5
+#define DB_RADDISTMODE_IDENTITY 6
+
+/*!
+Give reasonable guess of the calibration matrix for normalization purposes.
+Use real K matrix when doing real geometry.
+focal length = (w+h)/2.0*f_correction.
+\param K            calibration matrix (out)
+\param Kinv         inverse of K (out)
+\param im_width     image width
+\param im_height    image height
+\param f_correction focal length correction factor
+\param field        set to 1 if this is a field image (fy = fx/2)
+\return K(3x3) intrinsic calibration matrix
+*/
+DB_API void db_Approx3DCalMat(double K[9],double Kinv[9],int im_width,int im_height,double f_correction=1.0,int field=0);
+
+/*!
+ Make a 2x2 identity matrix
+ */
+void inline db_Identity2x2(double A[4])
+{
+    A[0]=1;A[1]=0;
+    A[2]=0;A[3]=1;
+}
+/*!
+ Make a 3x3 identity matrix
+ */
+void inline db_Identity3x3(double A[9])
+{
+    A[0]=1;A[1]=0;A[2]=0;
+    A[3]=0;A[4]=1;A[5]=0;
+    A[6]=0;A[7]=0;A[8]=1;
+}
+/*!
+ Invert intrinsic calibration matrix K(3x3)
+ If fx or fy is 0, I is returned.
+ */
+void inline db_InvertCalibrationMatrix(double Kinv[9],const double K[9])
+{
+    double a,b,c,d,e,f,ainv,dinv,adinv;
+
+    a=K[0];b=K[1];c=K[2];d=K[4];e=K[5];f=K[8];
+    if((a==0.0)||(d==0.0)) db_Identity3x3(Kinv);
+    else
+    {
+        Kinv[3]=0.0;
+        Kinv[6]=0.0;
+        Kinv[7]=0.0;
+        Kinv[8]=1.0;
+
+        ainv=1.0/a;
+        dinv=1.0/d;
+        adinv=ainv*dinv;
+        Kinv[0]=f*ainv;
+        Kinv[1]= -b*f*adinv;
+        Kinv[2]=(b*e-c*d)*adinv;
+        Kinv[4]=f*dinv;
+        Kinv[5]= -e*dinv;
+    }
+}
+/*!
+ De-homogenize image point: xd(1:2) = xs(1:2)/xs(3).
+ If xs(3) is 0, xd will become 0
+ \param xd  destination point
+ \param xs  source point
+ */
+void inline db_DeHomogenizeImagePoint(double xd[2],const double xs[3])
+{
+    double temp,div;
+
+    temp=xs[2];
+    if(temp!=0)
+    {
+        div=1.0/temp;
+        xd[0]=xs[0]*div;xd[1]=xs[1]*div;
+    }
+    else
+    {
+        xd[0]=0.0;xd[1]=0.0;
+    }
+}
+
+
+/*!
+ Orthonormalize 3D rotation R
+ */
+inline void db_OrthonormalizeRotation(double R[9])
+{
+    double s,mult;
+    /*Normalize first vector*/
+    s=db_sqr(R[0])+db_sqr(R[1])+db_sqr(R[2]);
+    mult=sqrt(1.0/(s?s:1));
+    R[0]*=mult; R[1]*=mult; R[2]*=mult;
+    /*Subtract scalar product from second vector*/
+    s=R[0]*R[3]+R[1]*R[4]+R[2]*R[5];
+    R[3]-=s*R[0]; R[4]-=s*R[1]; R[5]-=s*R[2];
+    /*Normalize second vector*/
+    s=db_sqr(R[3])+db_sqr(R[4])+db_sqr(R[5]);
+    mult=sqrt(1.0/(s?s:1));
+    R[3]*=mult; R[4]*=mult; R[5]*=mult;
+    /*Get third vector by vector product*/
+    R[6]=R[1]*R[5]-R[4]*R[2];
+    R[7]=R[2]*R[3]-R[5]*R[0];
+    R[8]=R[0]*R[4]-R[3]*R[1];
+}
+/*!
+Update a rotation with the update dx=[sin(phi) sin(ohm) sin(kap)]
+*/
+inline void db_UpdateRotation(double R_p_dx[9],double R[9],const double dx[3])
+{
+    double R_temp[9];
+    /*Update rotation*/
+    db_IncrementalRotationMatrix(R_temp,dx);
+    db_Multiply3x3_3x3(R_p_dx,R_temp,R);
+}
+/*!
+ Compute xp = Hx for inhomogenous image points.
+ */
+inline void db_ImageHomographyInhomogenous(double xp[2],const double H[9],const double x[2])
+{
+    double x3,m;
+
+    x3=H[6]*x[0]+H[7]*x[1]+H[8];
+    if(x3!=0.0)
+    {
+        m=1.0/x3;
+        xp[0]=m*(H[0]*x[0]+H[1]*x[1]+H[2]);
+        xp[1]=m*(H[3]*x[0]+H[4]*x[1]+H[5]);
+    }
+    else
+    {
+        xp[0]=xp[1]=0.0;
+    }
+}
+inline double db_FocalFromCamRotFocalHomography(const double H[9])
+{
+    double k1,k2;
+
+    k1=db_sqr(H[2])+db_sqr(H[5]);
+    k2=db_sqr(H[6])+db_sqr(H[7]);
+    if(k1>=k2)
+    {
+        return(db_SafeSqrt(db_SafeDivision(k1,1.0-db_sqr(H[8]))));
+    }
+    else
+    {
+        return(db_SafeSqrt(db_SafeDivision(1.0-db_sqr(H[8]),k2)));
+    }
+}
+
+inline double db_FocalAndRotFromCamRotFocalHomography(double R[9],const double H[9])
+{
+    double back,fi;
+
+    back=db_FocalFromCamRotFocalHomography(H);
+    fi=db_SafeReciprocal(back);
+    R[0]=H[0];      R[1]=H[1];      R[2]=fi*H[2];
+    R[3]=H[3];      R[4]=H[4];      R[5]=fi*H[5];
+    R[6]=back*H[6]; R[7]=back*H[7]; R[8]=H[8];
+    return(back);
+}
+/*!
+Compute Jacobian at zero of three coordinates dR*x with
+respect to the update dR([sin(phi) sin(ohm) sin(kap)]) given x.
+
+The Jacobian at zero of the homogenous coordinates with respect to
+    [sin(phi) sin(ohm) sin(kap)] is
+\code
+    [-rx2   0   rx1 ]
+    [  0   rx2 -rx0 ]
+    [ rx0 -rx1   0  ].
+\endcode
+
+*/
+inline void db_JacobianOfRotatedPointStride(double J[9],const double x[3],int stride)
+{
+    /*The Jacobian at zero of the homogenous coordinates with respect to
+    [sin(phi) sin(ohm) sin(kap)] is
+    [-rx2   0   rx1 ]
+    [  0   rx2 -rx0 ]
+    [ rx0 -rx1   0  ]*/
+
+    J[0]= -x[stride<<1];
+    J[1]=0;
+    J[2]=  x[stride];
+    J[3]=0;
+    J[4]=  x[stride<<1];
+    J[5]= -x[0];
+    J[6]=  x[0];
+    J[7]= -x[stride];
+    J[8]=0;
+}
+/*!
+ Invert an affine (if possible)
+ \param Hinv    inverted matrix
+ \param H       input matrix
+ \return true if success and false if matrix is ill-conditioned (det < 1e-7)
+ */
+inline bool db_InvertAffineTransform(double Hinv[9],const double H[9])
+{
+    double det=H[0]*H[4]-H[3]*H[1];
+    if (det<1e-7)
+    {
+        db_Copy9(Hinv,H);
+        return false;
+    }
+    else
+    {
+        Hinv[0]=H[4]/det;
+        Hinv[1]=-H[1]/det;
+        Hinv[3]=-H[3]/det;
+        Hinv[4]=H[0]/det;
+        Hinv[2]= -Hinv[0]*H[2]-Hinv[1]*H[5];
+        Hinv[5]= -Hinv[3]*H[2]-Hinv[4]*H[5];
+    }
+    return true;
+}
+
+/*!
+Update of upper 2x2 is multiplication by
+\code
+[s 0][ cos(theta) sin(theta)]
+[0 s][-sin(theta) cos(theta)]
+\endcode
+*/
+inline void db_MultiplyScaleOntoImageHomography(double H[9],double s)
+{
+
+    H[0]*=s;
+    H[1]*=s;
+    H[3]*=s;
+    H[4]*=s;
+}
+/*!
+Update of upper 2x2 is multiplication by
+\code
+[s 0][ cos(theta) sin(theta)]
+[0 s][-sin(theta) cos(theta)]
+\endcode
+*/
+inline void db_MultiplyRotationOntoImageHomography(double H[9],double theta)
+{
+    double c,s,H0,H1;
+
+
+    c=cos(theta);
+    s=db_SafeSqrt(1.0-db_sqr(c));
+    H0=  c*H[0]+s*H[3];
+    H[3]= -s*H[0]+c*H[3];
+    H[0]=H0;
+    H1=c*H[1]+s*H[4];
+    H[4]= -s*H[1]+c*H[4];
+    H[1]=H1;
+}
+
+inline void db_UpdateImageHomographyAffine(double H_p_dx[9],const double H[9],const double dx[6])
+{
+    db_AddVectors6(H_p_dx,H,dx);
+    db_Copy3(H_p_dx+6,H+6);
+}
+
+inline void db_UpdateImageHomographyProjective(double H_p_dx[9],const double H[9],const double dx[8],int frozen_coord)
+{
+    int i,j;
+
+    for(j=0,i=0;i<9;i++)
+    {
+        if(i!=frozen_coord)
+        {
+            H_p_dx[i]=H[i]+dx[j];
+            j++;
+        }
+        else H_p_dx[i]=H[i];
+    }
+}
+
+inline void db_UpdateRotFocalHomography(double H_p_dx[9],const double H[9],const double dx[4])
+{
+    double f,fp,fpi;
+    double R[9],dR[9];
+
+    /*Updated matrix is diag(f+df,f+df)*dR*R*diag(1/(f+df),1/(f+df),1)*/
+    f=db_FocalAndRotFromCamRotFocalHomography(R,H);
+    db_IncrementalRotationMatrix(dR,dx);
+    db_Multiply3x3_3x3(H_p_dx,dR,R);
+    fp=f+dx[3];
+    fpi=db_SafeReciprocal(fp);
+    H_p_dx[2]*=fp;
+    H_p_dx[5]*=fp;
+    H_p_dx[6]*=fpi;
+    H_p_dx[7]*=fpi;
+}
+
+/*\}*/
+#endif /* DB_UTILITIES_CAMERA */
diff --git a/perftests/panorama/feature_stab/db_vlvm/db_utilities_constants.h b/perftests/panorama/feature_stab/db_vlvm/db_utilities_constants.h
new file mode 100644
index 0000000..07565ef
--- /dev/null
+++ b/perftests/panorama/feature_stab/db_vlvm/db_utilities_constants.h
@@ -0,0 +1,208 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+/* $Id: db_utilities_constants.h,v 1.2 2011/06/17 14:03:31 mbansal Exp $ */
+
+#ifndef DB_UTILITIES_CONSTANTS
+#define DB_UTILITIES_CONSTANTS
+
+/*****************************************************************
+*    Lean and mean begins here                                   *
+*****************************************************************/
+
+/****************Constants********************/
+#define DB_E             2.7182818284590452354
+#define DB_LOG2E         1.4426950408889634074
+#define DB_LOG10E        0.43429448190325182765
+#define DB_LN2           0.69314718055994530942
+#define DB_LN10          2.30258509299404568402
+#define DB_PI            3.1415926535897932384626433832795
+#define DB_PI_2          1.57079632679489661923
+#define DB_PI_4          0.78539816339744830962
+#define DB_1_PI          0.31830988618379067154
+#define DB_2_PI          0.63661977236758134308
+#define DB_SQRTPI        1.7724538509055160272981674833411
+#define DB_SQRT_2PI      2.506628274631000502415765284811
+#define DB_2_SQRTPI      1.12837916709551257390
+#define DB_SQRT2         1.41421356237309504880
+#define DB_SQRT3         1.7320508075688772935274463415059
+#define DB_SQRT1_2       0.70710678118654752440
+#define DB_EPS           2.220446049250313e-016 /* for 32 bit double */
+
+/****************Default Parameters********************/
+/*Preemptive ransac parameters*/
+#define DB_DEFAULT_NR_SAMPLES 500
+#define DB_DEFAULT_CHUNK_SIZE 100
+#define DB_DEFAULT_GROUP_SIZE 10
+
+/*Optimisation parameters*/
+#define DB_DEFAULT_MAX_POINTS 1000
+#define DB_DEFAULT_MAX_ITERATIONS 25
+#define DB_DEFAULT_IMP_REQ 0.001
+
+/*Feature standard deviation parameters*/
+#define DB_POINT_STANDARDDEV (1.0/(826.0)) /*1 pixel for CIF (fraction of (image width+image height)/2)*/
+#define DB_OUTLIER_THRESHOLD 3.0 /*In number of DB_POINT_STANDARDDEV's*/
+#define DB_WORST_CASE 50.0 /*In number of DB_POINT_STANDARDDEV's*/
+
+/*Front-end parameters*/
+#define DB_DEFAULT_TARGET_NR_CORNERS 5000
+#define DB_DEFAULT_NR_FEATURE_BLOCKS 10
+#define DB_DEFAULT_ABS_CORNER_THRESHOLD 50000000.0
+#define DB_DEFAULT_REL_CORNER_THRESHOLD 0.00005
+#define DB_DEFAULT_MAX_DISPARITY 0.1
+#define DB_DEFAULT_NO_DISPARITY -1.0
+#define DB_DEFAULT_MAX_TRACK_LENGTH 300
+
+#define DB_DEFAULT_MAX_NR_CAMERAS 1000
+
+#define DB_DEFAULT_TRIPLE_STEP 2
+#define DB_DEFAULT_DOUBLE_STEP 2
+#define DB_DEFAULT_SINGLE_STEP 1
+#define DB_DEFAULT_NR_SINGLES 10
+#define DB_DEFAULT_NR_DOUBLES 1
+#define DB_DEFAULT_NR_TRIPLES 1
+
+#define DB_DEFAULT_TRIFOCAL_FOUR_STEPS 40
+
+#define DB_DEFAULT_EPIPOLAR_ERROR 1 /*in pixels*/
+
+////////////////////////// DOXYGEN /////////////////////
+
+/*!
+ * \def DB_DEFAULT_GROUP_SIZE
+ * \ingroup LMRobust
+ * \brief Default group size for db_PreemptiveRansac class.
+ * Group size is the number of observation costs multiplied together
+ * before a log of the product is added to the total cost.
+*/
+
+/*!
+ * \def DB_DEFAULT_TARGET_NR_CORNERS
+ * \ingroup FeatureDetection
+ * \brief Default target number of corners
+*/
+/*!
+ * \def DB_DEFAULT_NR_FEATURE_BLOCKS
+ * \ingroup FeatureDetection
+ * \brief Default number of regions (horizontal or vertical) that are considered separately
+ * for feature detection. The greater the number, the more uniform the distribution of
+ * detected features.
+*/
+/*!
+ * \def DB_DEFAULT_ABS_CORNER_THRESHOLD
+ * \ingroup FeatureDetection
+ * \brief Absolute feature strength threshold.
+*/
+/*!
+ * \def DB_DEFAULT_REL_CORNER_THRESHOLD
+ * \ingroup FeatureDetection
+ * \brief Relative feature strength threshold.
+*/
+/*!
+ * \def DB_DEFAULT_MAX_DISPARITY
+ * \ingroup FeatureMatching
+ * \brief Maximum disparity (as fraction of image size) allowed in feature matching
+*/
+ /*!
+ * \def DB_DEFAULT_NO_DISPARITY
+ * \ingroup FeatureMatching
+ * \brief Indicates that vertical disparity is the same as horizontal disparity.
+*/
+///////////////////////////////////////////////////////////////////////////////////
+ /*!
+ * \def DB_E
+ * \ingroup LMBasicUtilities
+ * \brief e
+*/
+ /*!
+ * \def DB_LOG2E
+ * \ingroup LMBasicUtilities
+ * \brief log2(e)
+*/
+ /*!
+ * \def DB_LOG10E
+ * \ingroup LMBasicUtilities
+ * \brief log10(e)
+*/
+ /*!
+ * \def DB_LOG10E
+ * \ingroup LMBasicUtilities
+ * \brief log10(e)
+*/
+/*!
+ * \def DB_LN2
+ * \ingroup LMBasicUtilities
+ * \brief ln(2)
+*/
+/*!
+ * \def DB_LN10
+ * \ingroup LMBasicUtilities
+ * \brief ln(10)
+*/
+/*!
+ * \def DB_PI
+ * \ingroup LMBasicUtilities
+ * \brief Pi
+*/
+/*!
+ * \def DB_PI_2
+ * \ingroup LMBasicUtilities
+ * \brief Pi/2
+*/
+/*!
+ * \def DB_PI_4
+ * \ingroup LMBasicUtilities
+ * \brief Pi/4
+*/
+/*!
+ * \def DB_1_PI
+ * \ingroup LMBasicUtilities
+ * \brief 1/Pi
+*/
+/*!
+ * \def DB_2_PI
+ * \ingroup LMBasicUtilities
+ * \brief 2/Pi
+*/
+/*!
+ * \def DB_SQRTPI
+ * \ingroup LMBasicUtilities
+ * \brief sqrt(Pi)
+*/
+/*!
+ * \def DB_SQRT_2PI
+ * \ingroup LMBasicUtilities
+ * \brief sqrt(2*Pi)
+*/
+/*!
+ * \def DB_SQRT2
+ * \ingroup LMBasicUtilities
+ * \brief sqrt(2)
+*/
+/*!
+ * \def DB_SQRT3
+ * \ingroup LMBasicUtilities
+ * \brief sqrt(3)
+*/
+/*!
+ * \def DB_SQRT1_2
+ * \ingroup LMBasicUtilities
+ * \brief sqrt(1/2)
+*/
+#endif /* DB_UTILITIES_CONSTANTS */
+
+
diff --git a/perftests/panorama/feature_stab/db_vlvm/db_utilities_geometry.h b/perftests/panorama/feature_stab/db_vlvm/db_utilities_geometry.h
new file mode 100644
index 0000000..f215584
--- /dev/null
+++ b/perftests/panorama/feature_stab/db_vlvm/db_utilities_geometry.h
@@ -0,0 +1,121 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+/* $Id: db_utilities_geometry.h,v 1.3 2011/06/17 14:03:31 mbansal Exp $ */
+
+#ifndef DB_UTILITIES_GEOMETRY_H
+#define DB_UTILITIES_GEOMETRY_H
+
+#include "db_utilities.h"
+
+
+
+/*****************************************************************
+*    Lean and mean begins here                                   *
+*****************************************************************/
+/*! Get the inhomogenous 2D-point centroid of nr_point inhomogenous
+points in X*/
+inline void db_PointCentroid2D(double c[2],const double *X,int nr_points)
+{
+    int i;
+    double cx,cy,m;
+
+    cx=0;cy=0;
+    for(i=0;i<nr_points;i++)
+    {
+        cx+= *X++;
+        cy+= *X++;
+    }
+    if(nr_points)
+    {
+        m=1.0/((double)nr_points);
+        c[0]=cx*m;
+        c[1]=cy*m;
+    }
+    else c[0]=c[1]=0;
+}
+
+inline void db_PointCentroid2D(double c[2],const double * const *X,int nr_points)
+{
+    int i;
+    double cx,cy,m;
+    const double *temp;
+
+    cx=0;cy=0;
+    for(i=0;i<nr_points;i++)
+    {
+        temp= *X++;
+        cx+=temp[0];
+        cy+=temp[1];
+    }
+    if(nr_points)
+    {
+        m=1.0/((double)nr_points);
+        c[0]=cx*m;
+        c[1]=cy*m;
+    }
+    else c[0]=c[1]=0;
+}
+
+/*! Get the inhomogenous 3D-point centroid of nr_point inhomogenous
+points in X*/
+inline void db_PointCentroid3D(double c[3],const double *X,int nr_points)
+{
+    int i;
+    double cx,cy,cz,m;
+
+    cx=0;cy=0;cz=0;
+    for(i=0;i<nr_points;i++)
+    {
+        cx+= *X++;
+        cy+= *X++;
+        cz+= *X++;
+    }
+    if(nr_points)
+    {
+        m=1.0/((double)nr_points);
+        c[0]=cx*m;
+        c[1]=cy*m;
+        c[2]=cz*m;
+    }
+    else c[0]=c[1]=c[2]=0;
+}
+
+inline void db_PointCentroid3D(double c[3],const double * const *X,int nr_points)
+{
+    int i;
+    double cx,cy,cz,m;
+    const double *temp;
+
+    cx=0;cy=0;cz=0;
+    for(i=0;i<nr_points;i++)
+    {
+        temp= *X++;
+        cx+=temp[0];
+        cy+=temp[1];
+        cz+=temp[2];
+    }
+    if(nr_points)
+    {
+        m=1.0/((double)nr_points);
+        c[0]=cx*m;
+        c[1]=cy*m;
+        c[2]=cz*m;
+    }
+    else c[0]=c[1]=c[2]=0;
+}
+
+#endif /* DB_UTILITIES_GEOMETRY_H */
diff --git a/perftests/panorama/feature_stab/db_vlvm/db_utilities_indexing.cpp b/perftests/panorama/feature_stab/db_vlvm/db_utilities_indexing.cpp
new file mode 100644
index 0000000..30ce03a
--- /dev/null
+++ b/perftests/panorama/feature_stab/db_vlvm/db_utilities_indexing.cpp
@@ -0,0 +1,120 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+/* $Id: db_utilities_indexing.cpp,v 1.3 2011/06/17 14:03:31 mbansal Exp $ */
+
+#include "db_utilities_indexing.h"
+#include "db_utilities.h"
+
+
+
+/*****************************************************************
+*    Lean and mean begins here                                   *
+*****************************************************************/
+
+void db_Zero(double *d,long nr)
+{
+    long i;
+    for(i=0;i<nr;i++) d[i]=0.0;
+}
+
+/*This routine breaks number in source into values smaller and larger than
+a pivot element. Values equal to the pivot are ignored*/
+void db_LeanPartitionOnPivot(double pivot,double *dest,const double *source,long first,long last,long *first_equal,long *last_equal)
+{
+    double temp;
+    const double *s_point;
+    const double *s_top;
+    double *d_bottom;
+    double *d_top;
+
+    s_point=source+first;
+    s_top=source+last;
+    d_bottom=dest+first;
+    d_top=dest+last;
+
+    for(;s_point<=s_top;)
+    {
+        temp= *(s_point++);
+        if(temp<pivot) *(d_bottom++)=temp;
+        else if(temp>pivot) *(d_top--)=temp;
+    }
+    *first_equal=d_bottom-dest;
+    *last_equal=d_top-dest;
+}
+
+double db_LeanQuickSelect(const double *s,long nr_elements,long pos,double *temp)
+{
+  long first=0;
+  long last=nr_elements-1;
+  double pivot;
+  long first_equal,last_equal;
+  double *tempA;
+  double *tempB;
+  double *tempC;
+  const double *source;
+  double *dest;
+
+  tempA=temp;
+  tempB=temp+nr_elements;
+  source=s;
+  dest=tempA;
+
+  for(;last-first>2;)
+  {
+      pivot=db_TripleMedian(source[first],source[last],source[(first+last)/2]);
+      db_LeanPartitionOnPivot(pivot,dest,source,first,last,&first_equal,&last_equal);
+
+      if(first_equal>pos) last=first_equal-1;
+      else if(last_equal<pos) first=last_equal+1;
+      else
+      {
+        return(pivot);
+      }
+
+      /*Swap pointers*/
+      tempC=tempA;
+      tempA=tempB;
+      tempB=tempC;
+      source=tempB;
+      dest=tempA;
+  }
+  pivot=db_TripleMedian(source[first],source[last],source[(first+last)/2]);
+
+  return(pivot);
+}
+
+float* db_AlignPointer_f(float *p,unsigned long nr_bytes)
+{
+    float *ap;
+    unsigned long m;
+
+    m=((unsigned long)p)%nr_bytes;
+    if(m) ap=(float*) (((unsigned long)p)-m+nr_bytes);
+    else ap=p;
+    return(ap);
+}
+
+short* db_AlignPointer_s(short *p,unsigned long nr_bytes)
+{
+    short *ap;
+    unsigned long m;
+
+    m=((unsigned long)p)%nr_bytes;
+    if(m) ap=(short*) (((unsigned long)p)-m+nr_bytes);
+    else ap=p;
+    return(ap);
+}
diff --git a/perftests/panorama/feature_stab/db_vlvm/db_utilities_indexing.h b/perftests/panorama/feature_stab/db_vlvm/db_utilities_indexing.h
new file mode 100644
index 0000000..01eeb9e
--- /dev/null
+++ b/perftests/panorama/feature_stab/db_vlvm/db_utilities_indexing.h
@@ -0,0 +1,270 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+/* $Id: db_utilities_indexing.h,v 1.3 2011/06/17 14:03:31 mbansal Exp $ */
+
+#ifndef DB_UTILITIES_INDEXING
+#define DB_UTILITIES_INDEXING
+
+
+
+/*****************************************************************
+*    Lean and mean begins here                                   *
+*****************************************************************/
+
+#include "db_utilities.h"
+
+/*!
+ * \defgroup LMIndexing (LM) Indexing Utilities (Order Statistics, Matrix Operations)
+ */
+/*\{*/
+
+inline void db_SetupMatrixRefs(double **ar,long rows,long cols,double *a)
+{
+    long i;
+    for(i=0;i<rows;i++) ar[i]=&a[i*cols];
+}
+
+inline void db_SymmetricExtendUpperToLower(double **A,int rows,int cols)
+{
+    int i,j;
+    for(i=1;i<rows;i++) for(j=0;j<i;j++) A[i][j]=A[j][i];
+}
+
+void inline db_MultiplyMatrixVectorAtb(double *c,const double * const *At,const double *b,int arows,int acols)
+{
+    int i,j;
+    double acc;
+
+    for(i=0;i<arows;i++)
+    {
+        acc=0;
+        for(j=0;j<acols;j++) acc+=At[j][i]*b[j];
+        c[i]=acc;
+    }
+}
+
+inline void db_MultiplyMatricesAB(double **C,const double * const *A,const double * const *B,int arows,int acols,int bcols)
+{
+    int i,j,k;
+    double acc;
+
+    for(i=0;i<arows;i++) for(j=0;j<bcols;j++)
+    {
+        acc=0;
+        for(k=0;k<acols;k++) acc+=A[i][k]*B[k][j];
+        C[i][j]=acc;
+    }
+}
+
+inline void db_UpperMultiplyMatricesAtB(double **Cu,const double * const *At,const double * const *B,int arows,int acols,int bcols)
+{
+    int i,j,k;
+    double acc;
+
+    for(i=0;i<arows;i++) for(j=i;j<bcols;j++)
+    {
+        acc=0;
+        for(k=0;k<acols;k++) acc+=At[k][i]*B[k][j];
+        Cu[i][j]=acc;
+    }
+}
+
+DB_API void db_Zero(double *d,long nr);
+
+inline int db_MaxIndex2(double s[2])
+{
+    if(s[0]>=s[1]) return(0);
+    return(1);
+}
+
+inline int db_MaxIndex3(const double s[3])
+{
+    double best;
+    int pos;
+
+    best=s[0];pos=0;
+    if(s[1]>best){best=s[1];pos=1;}
+    if(s[2]>best){best=s[2];pos=2;}
+    return(pos);
+}
+
+inline int db_MaxIndex4(const double s[4])
+{
+    double best;
+    int pos;
+
+    best=s[0];pos=0;
+    if(s[1]>best){best=s[1];pos=1;}
+    if(s[2]>best){best=s[2];pos=2;}
+    if(s[3]>best){best=s[3];pos=3;}
+    return(pos);
+}
+
+inline int db_MaxIndex5(const double s[5])
+{
+    double best;
+    int pos;
+
+    best=s[0];pos=0;
+    if(s[1]>best){best=s[1];pos=1;}
+    if(s[2]>best){best=s[2];pos=2;}
+    if(s[3]>best){best=s[3];pos=3;}
+    if(s[4]>best){best=s[4];pos=4;}
+    return(pos);
+}
+
+inline int db_MaxIndex6(const double s[6])
+{
+    double best;
+    int pos;
+
+    best=s[0];pos=0;
+    if(s[1]>best){best=s[1];pos=1;}
+    if(s[2]>best){best=s[2];pos=2;}
+    if(s[3]>best){best=s[3];pos=3;}
+    if(s[4]>best){best=s[4];pos=4;}
+    if(s[5]>best){best=s[5];pos=5;}
+    return(pos);
+}
+
+inline int db_MaxIndex7(const double s[7])
+{
+    double best;
+    int pos;
+
+    best=s[0];pos=0;
+    if(s[1]>best){best=s[1];pos=1;}
+    if(s[2]>best){best=s[2];pos=2;}
+    if(s[3]>best){best=s[3];pos=3;}
+    if(s[4]>best){best=s[4];pos=4;}
+    if(s[5]>best){best=s[5];pos=5;}
+    if(s[6]>best){best=s[6];pos=6;}
+    return(pos);
+}
+
+inline int db_MinIndex7(const double s[7])
+{
+    double best;
+    int pos;
+
+    best=s[0];pos=0;
+    if(s[1]<best){best=s[1];pos=1;}
+    if(s[2]<best){best=s[2];pos=2;}
+    if(s[3]<best){best=s[3];pos=3;}
+    if(s[4]<best){best=s[4];pos=4;}
+    if(s[5]<best){best=s[5];pos=5;}
+    if(s[6]<best){best=s[6];pos=6;}
+    return(pos);
+}
+
+inline int db_MinIndex9(const double s[9])
+{
+    double best;
+    int pos;
+
+    best=s[0];pos=0;
+    if(s[1]<best){best=s[1];pos=1;}
+    if(s[2]<best){best=s[2];pos=2;}
+    if(s[3]<best){best=s[3];pos=3;}
+    if(s[4]<best){best=s[4];pos=4;}
+    if(s[5]<best){best=s[5];pos=5;}
+    if(s[6]<best){best=s[6];pos=6;}
+    if(s[7]<best){best=s[7];pos=7;}
+    if(s[8]<best){best=s[8];pos=8;}
+    return(pos);
+}
+
+inline int db_MaxAbsIndex3(const double *s)
+{
+    double t,best;
+    int pos;
+
+    best=fabs(s[0]);pos=0;
+    t=fabs(s[1]);if(t>best){best=t;pos=1;}
+    t=fabs(s[2]);if(t>best){pos=2;}
+    return(pos);
+}
+
+inline int db_MaxAbsIndex9(const double *s)
+{
+    double t,best;
+    int pos;
+
+    best=fabs(s[0]);pos=0;
+    t=fabs(s[1]);if(t>best){best=t;pos=1;}
+    t=fabs(s[2]);if(t>best){best=t;pos=2;}
+    t=fabs(s[3]);if(t>best){best=t;pos=3;}
+    t=fabs(s[4]);if(t>best){best=t;pos=4;}
+    t=fabs(s[5]);if(t>best){best=t;pos=5;}
+    t=fabs(s[6]);if(t>best){best=t;pos=6;}
+    t=fabs(s[7]);if(t>best){best=t;pos=7;}
+    t=fabs(s[8]);if(t>best){best=t;pos=8;}
+    return(pos);
+}
+
+
+/*!
+Select ordinal pos (zero based) out of nr_elements in s.
+temp should point to alloced memory of at least nr_elements*2
+Optimized runtimes on 450MHz:
+\code
+  30 with   3 microsecs
+ 100 with  11 microsecs
+ 300 with  30 microsecs
+ 500 with  40 microsecs
+1000 with 100 microsecs
+5000 with 540 microsecs
+\endcode
+so the expected runtime is around
+(nr_elements/10) microseconds
+The total quickselect cost of splitting 500 hypotheses recursively
+is thus around 100 microseconds
+
+Does the same operation as std::nth_element().
+*/
+DB_API double db_LeanQuickSelect(const double *s,long nr_elements,long pos,double *temp);
+
+/*!
+ Median of 3 doubles
+ */
+inline double db_TripleMedian(double a,double b,double c)
+{
+    if(a>b)
+    {
+        if(c>a) return(a);
+        else if(c>b) return(c);
+        else return(b);
+    }
+    else
+    {
+        if(c>b) return(b);
+        else if(c>a) return(c);
+        else return(a);
+    }
+}
+
+/*!
+Align float pointer to nr_bytes by moving forward
+*/
+DB_API float* db_AlignPointer_f(float *p,unsigned long nr_bytes);
+
+/*!
+Align short pointer to nr_bytes by moving forward
+*/
+DB_API short* db_AlignPointer_s(short *p,unsigned long nr_bytes);
+
+#endif /* DB_UTILITIES_INDEXING */
diff --git a/perftests/panorama/feature_stab/db_vlvm/db_utilities_linalg.cpp b/perftests/panorama/feature_stab/db_vlvm/db_utilities_linalg.cpp
new file mode 100644
index 0000000..8f68b30
--- /dev/null
+++ b/perftests/panorama/feature_stab/db_vlvm/db_utilities_linalg.cpp
@@ -0,0 +1,376 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+/* $Id: db_utilities_linalg.cpp,v 1.3 2011/06/17 14:03:31 mbansal Exp $ */
+
+#include "db_utilities_linalg.h"
+#include "db_utilities.h"
+
+
+
+/*****************************************************************
+*    Lean and mean begins here                                   *
+*****************************************************************/
+
+/*Cholesky-factorize symmetric positive definite 6 x 6 matrix A. Upper
+part of A is used from the input. The Cholesky factor is output as
+subdiagonal part in A and diagonal in d, which is 6-dimensional*/
+void db_CholeskyDecomp6x6(double A[36],double d[6])
+{
+    double s,temp;
+
+    /*[50 mult 35 add 6sqrt=85flops 6func]*/
+    /*i=0*/
+    s=A[0];
+    d[0]=((s>0.0)?sqrt(s):1.0);
+    temp=db_SafeReciprocal(d[0]);
+    A[6]=A[1]*temp;
+    A[12]=A[2]*temp;
+    A[18]=A[3]*temp;
+    A[24]=A[4]*temp;
+    A[30]=A[5]*temp;
+    /*i=1*/
+    s=A[7]-A[6]*A[6];
+    d[1]=((s>0.0)?sqrt(s):1.0);
+    temp=db_SafeReciprocal(d[1]);
+    A[13]=(A[8]-A[6]*A[12])*temp;
+    A[19]=(A[9]-A[6]*A[18])*temp;
+    A[25]=(A[10]-A[6]*A[24])*temp;
+    A[31]=(A[11]-A[6]*A[30])*temp;
+    /*i=2*/
+    s=A[14]-A[12]*A[12]-A[13]*A[13];
+    d[2]=((s>0.0)?sqrt(s):1.0);
+    temp=db_SafeReciprocal(d[2]);
+    A[20]=(A[15]-A[12]*A[18]-A[13]*A[19])*temp;
+    A[26]=(A[16]-A[12]*A[24]-A[13]*A[25])*temp;
+    A[32]=(A[17]-A[12]*A[30]-A[13]*A[31])*temp;
+    /*i=3*/
+    s=A[21]-A[18]*A[18]-A[19]*A[19]-A[20]*A[20];
+    d[3]=((s>0.0)?sqrt(s):1.0);
+    temp=db_SafeReciprocal(d[3]);
+    A[27]=(A[22]-A[18]*A[24]-A[19]*A[25]-A[20]*A[26])*temp;
+    A[33]=(A[23]-A[18]*A[30]-A[19]*A[31]-A[20]*A[32])*temp;
+    /*i=4*/
+    s=A[28]-A[24]*A[24]-A[25]*A[25]-A[26]*A[26]-A[27]*A[27];
+    d[4]=((s>0.0)?sqrt(s):1.0);
+    temp=db_SafeReciprocal(d[4]);
+    A[34]=(A[29]-A[24]*A[30]-A[25]*A[31]-A[26]*A[32]-A[27]*A[33])*temp;
+    /*i=5*/
+    s=A[35]-A[30]*A[30]-A[31]*A[31]-A[32]*A[32]-A[33]*A[33]-A[34]*A[34];
+    d[5]=((s>0.0)?sqrt(s):1.0);
+}
+
+/*Cholesky-factorize symmetric positive definite n x n matrix A.Part
+above diagonal of A is used from the input, diagonal of A is assumed to
+be stored in d. The Cholesky factor is output as
+subdiagonal part in A and diagonal in d, which is n-dimensional*/
+void db_CholeskyDecompSeparateDiagonal(double **A,double *d,int n)
+{
+    int i,j,k;
+    double s;
+    double temp = 0.0;
+
+    for(i=0;i<n;i++) for(j=i;j<n;j++)
+    {
+        if(i==j) s=d[i];
+        else s=A[i][j];
+        for(k=i-1;k>=0;k--) s-=A[i][k]*A[j][k];
+        if(i==j)
+        {
+            d[i]=((s>0.0)?sqrt(s):1.0);
+            temp=db_SafeReciprocal(d[i]);
+        }
+        else A[j][i]=s*temp;
+    }
+}
+
+/*Backsubstitute L%transpose(L)*x=b for x given the Cholesky decomposition
+of an n x n matrix and the right hand side b. The vector b is unchanged*/
+void db_CholeskyBacksub(double *x,const double * const *A,const double *d,int n,const double *b)
+{
+    int i,k;
+    double s;
+
+    for(i=0;i<n;i++)
+    {
+        for(s=b[i],k=i-1;k>=0;k--) s-=A[i][k]*x[k];
+        x[i]=db_SafeDivision(s,d[i]);
+    }
+    for(i=n-1;i>=0;i--)
+    {
+        for(s=x[i],k=i+1;k<n;k++) s-=A[k][i]*x[k];
+        x[i]=db_SafeDivision(s,d[i]);
+    }
+}
+
+/*Cholesky-factorize symmetric positive definite 3 x 3 matrix A. Part
+above diagonal of A is used from the input, diagonal of A is assumed to
+be stored in d. The Cholesky factor is output as subdiagonal part in A
+and diagonal in d, which is 3-dimensional*/
+void db_CholeskyDecomp3x3SeparateDiagonal(double A[9],double d[3])
+{
+    double s,temp;
+
+    /*i=0*/
+    s=d[0];
+    d[0]=((s>0.0)?sqrt(s):1.0);
+    temp=db_SafeReciprocal(d[0]);
+    A[3]=A[1]*temp;
+    A[6]=A[2]*temp;
+    /*i=1*/
+    s=d[1]-A[3]*A[3];
+    d[1]=((s>0.0)?sqrt(s):1.0);
+    temp=db_SafeReciprocal(d[1]);
+    A[7]=(A[5]-A[3]*A[6])*temp;
+    /*i=2*/
+    s=d[2]-A[6]*A[6]-A[7]*A[7];
+    d[2]=((s>0.0)?sqrt(s):1.0);
+}
+
+/*Backsubstitute L%transpose(L)*x=b for x given the Cholesky decomposition
+of a 3 x 3 matrix and the right hand side b. The vector b is unchanged*/
+void db_CholeskyBacksub3x3(double x[3],const double A[9],const double d[3],const double b[3])
+{
+    /*[42 mult 30 add=72flops]*/
+    x[0]=db_SafeDivision(b[0],d[0]);
+    x[1]=db_SafeDivision((b[1]-A[3]*x[0]),d[1]);
+    x[2]=db_SafeDivision((b[2]-A[6]*x[0]-A[7]*x[1]),d[2]);
+    x[2]=db_SafeDivision(x[2],d[2]);
+    x[1]=db_SafeDivision((x[1]-A[7]*x[2]),d[1]);
+    x[0]=db_SafeDivision((x[0]-A[6]*x[2]-A[3]*x[1]),d[0]);
+}
+
+/*Backsubstitute L%transpose(L)*x=b for x given the Cholesky decomposition
+of a 6 x 6 matrix and the right hand side b. The vector b is unchanged*/
+void db_CholeskyBacksub6x6(double x[6],const double A[36],const double d[6],const double b[6])
+{
+    /*[42 mult 30 add=72flops]*/
+    x[0]=db_SafeDivision(b[0],d[0]);
+    x[1]=db_SafeDivision((b[1]-A[6]*x[0]),d[1]);
+    x[2]=db_SafeDivision((b[2]-A[12]*x[0]-A[13]*x[1]),d[2]);
+    x[3]=db_SafeDivision((b[3]-A[18]*x[0]-A[19]*x[1]-A[20]*x[2]),d[3]);
+    x[4]=db_SafeDivision((b[4]-A[24]*x[0]-A[25]*x[1]-A[26]*x[2]-A[27]*x[3]),d[4]);
+    x[5]=db_SafeDivision((b[5]-A[30]*x[0]-A[31]*x[1]-A[32]*x[2]-A[33]*x[3]-A[34]*x[4]),d[5]);
+    x[5]=db_SafeDivision(x[5],d[5]);
+    x[4]=db_SafeDivision((x[4]-A[34]*x[5]),d[4]);
+    x[3]=db_SafeDivision((x[3]-A[33]*x[5]-A[27]*x[4]),d[3]);
+    x[2]=db_SafeDivision((x[2]-A[32]*x[5]-A[26]*x[4]-A[20]*x[3]),d[2]);
+    x[1]=db_SafeDivision((x[1]-A[31]*x[5]-A[25]*x[4]-A[19]*x[3]-A[13]*x[2]),d[1]);
+    x[0]=db_SafeDivision((x[0]-A[30]*x[5]-A[24]*x[4]-A[18]*x[3]-A[12]*x[2]-A[6]*x[1]),d[0]);
+}
+
+
+void db_Orthogonalize6x7(double A[42],int orthonormalize)
+{
+    int i;
+    double ss[6];
+
+    /*Compute square sums of rows*/
+    ss[0]=db_SquareSum7(A);
+    ss[1]=db_SquareSum7(A+7);
+    ss[2]=db_SquareSum7(A+14);
+    ss[3]=db_SquareSum7(A+21);
+    ss[4]=db_SquareSum7(A+28);
+    ss[5]=db_SquareSum7(A+35);
+
+    ss[1]-=db_OrthogonalizePair7(A+7 ,A,ss[0]);
+    ss[2]-=db_OrthogonalizePair7(A+14,A,ss[0]);
+    ss[3]-=db_OrthogonalizePair7(A+21,A,ss[0]);
+    ss[4]-=db_OrthogonalizePair7(A+28,A,ss[0]);
+    ss[5]-=db_OrthogonalizePair7(A+35,A,ss[0]);
+
+    /*Pivot on largest ss (could also be done on ss/(original_ss))*/
+    i=db_MaxIndex5(ss+1);
+    db_OrthogonalizationSwap7(A+7,i,ss+1);
+
+    ss[2]-=db_OrthogonalizePair7(A+14,A+7,ss[1]);
+    ss[3]-=db_OrthogonalizePair7(A+21,A+7,ss[1]);
+    ss[4]-=db_OrthogonalizePair7(A+28,A+7,ss[1]);
+    ss[5]-=db_OrthogonalizePair7(A+35,A+7,ss[1]);
+
+    i=db_MaxIndex4(ss+2);
+    db_OrthogonalizationSwap7(A+14,i,ss+2);
+
+    ss[3]-=db_OrthogonalizePair7(A+21,A+14,ss[2]);
+    ss[4]-=db_OrthogonalizePair7(A+28,A+14,ss[2]);
+    ss[5]-=db_OrthogonalizePair7(A+35,A+14,ss[2]);
+
+    i=db_MaxIndex3(ss+3);
+    db_OrthogonalizationSwap7(A+21,i,ss+3);
+
+    ss[4]-=db_OrthogonalizePair7(A+28,A+21,ss[3]);
+    ss[5]-=db_OrthogonalizePair7(A+35,A+21,ss[3]);
+
+    i=db_MaxIndex2(ss+4);
+    db_OrthogonalizationSwap7(A+28,i,ss+4);
+
+    ss[5]-=db_OrthogonalizePair7(A+35,A+28,ss[4]);
+
+    if(orthonormalize)
+    {
+        db_MultiplyScalar7(A   ,db_SafeSqrtReciprocal(ss[0]));
+        db_MultiplyScalar7(A+7 ,db_SafeSqrtReciprocal(ss[1]));
+        db_MultiplyScalar7(A+14,db_SafeSqrtReciprocal(ss[2]));
+        db_MultiplyScalar7(A+21,db_SafeSqrtReciprocal(ss[3]));
+        db_MultiplyScalar7(A+28,db_SafeSqrtReciprocal(ss[4]));
+        db_MultiplyScalar7(A+35,db_SafeSqrtReciprocal(ss[5]));
+    }
+}
+
+void db_Orthogonalize8x9(double A[72],int orthonormalize)
+{
+    int i;
+    double ss[8];
+
+    /*Compute square sums of rows*/
+    ss[0]=db_SquareSum9(A);
+    ss[1]=db_SquareSum9(A+9);
+    ss[2]=db_SquareSum9(A+18);
+    ss[3]=db_SquareSum9(A+27);
+    ss[4]=db_SquareSum9(A+36);
+    ss[5]=db_SquareSum9(A+45);
+    ss[6]=db_SquareSum9(A+54);
+    ss[7]=db_SquareSum9(A+63);
+
+    ss[1]-=db_OrthogonalizePair9(A+9 ,A,ss[0]);
+    ss[2]-=db_OrthogonalizePair9(A+18,A,ss[0]);
+    ss[3]-=db_OrthogonalizePair9(A+27,A,ss[0]);
+    ss[4]-=db_OrthogonalizePair9(A+36,A,ss[0]);
+    ss[5]-=db_OrthogonalizePair9(A+45,A,ss[0]);
+    ss[6]-=db_OrthogonalizePair9(A+54,A,ss[0]);
+    ss[7]-=db_OrthogonalizePair9(A+63,A,ss[0]);
+
+    /*Pivot on largest ss (could also be done on ss/(original_ss))*/
+    i=db_MaxIndex7(ss+1);
+    db_OrthogonalizationSwap9(A+9,i,ss+1);
+
+    ss[2]-=db_OrthogonalizePair9(A+18,A+9,ss[1]);
+    ss[3]-=db_OrthogonalizePair9(A+27,A+9,ss[1]);
+    ss[4]-=db_OrthogonalizePair9(A+36,A+9,ss[1]);
+    ss[5]-=db_OrthogonalizePair9(A+45,A+9,ss[1]);
+    ss[6]-=db_OrthogonalizePair9(A+54,A+9,ss[1]);
+    ss[7]-=db_OrthogonalizePair9(A+63,A+9,ss[1]);
+
+    i=db_MaxIndex6(ss+2);
+    db_OrthogonalizationSwap9(A+18,i,ss+2);
+
+    ss[3]-=db_OrthogonalizePair9(A+27,A+18,ss[2]);
+    ss[4]-=db_OrthogonalizePair9(A+36,A+18,ss[2]);
+    ss[5]-=db_OrthogonalizePair9(A+45,A+18,ss[2]);
+    ss[6]-=db_OrthogonalizePair9(A+54,A+18,ss[2]);
+    ss[7]-=db_OrthogonalizePair9(A+63,A+18,ss[2]);
+
+    i=db_MaxIndex5(ss+3);
+    db_OrthogonalizationSwap9(A+27,i,ss+3);
+
+    ss[4]-=db_OrthogonalizePair9(A+36,A+27,ss[3]);
+    ss[5]-=db_OrthogonalizePair9(A+45,A+27,ss[3]);
+    ss[6]-=db_OrthogonalizePair9(A+54,A+27,ss[3]);
+    ss[7]-=db_OrthogonalizePair9(A+63,A+27,ss[3]);
+
+    i=db_MaxIndex4(ss+4);
+    db_OrthogonalizationSwap9(A+36,i,ss+4);
+
+    ss[5]-=db_OrthogonalizePair9(A+45,A+36,ss[4]);
+    ss[6]-=db_OrthogonalizePair9(A+54,A+36,ss[4]);
+    ss[7]-=db_OrthogonalizePair9(A+63,A+36,ss[4]);
+
+    i=db_MaxIndex3(ss+5);
+    db_OrthogonalizationSwap9(A+45,i,ss+5);
+
+    ss[6]-=db_OrthogonalizePair9(A+54,A+45,ss[5]);
+    ss[7]-=db_OrthogonalizePair9(A+63,A+45,ss[5]);
+
+    i=db_MaxIndex2(ss+6);
+    db_OrthogonalizationSwap9(A+54,i,ss+6);
+
+    ss[7]-=db_OrthogonalizePair9(A+63,A+54,ss[6]);
+
+    if(orthonormalize)
+    {
+        db_MultiplyScalar9(A   ,db_SafeSqrtReciprocal(ss[0]));
+        db_MultiplyScalar9(A+9 ,db_SafeSqrtReciprocal(ss[1]));
+        db_MultiplyScalar9(A+18,db_SafeSqrtReciprocal(ss[2]));
+        db_MultiplyScalar9(A+27,db_SafeSqrtReciprocal(ss[3]));
+        db_MultiplyScalar9(A+36,db_SafeSqrtReciprocal(ss[4]));
+        db_MultiplyScalar9(A+45,db_SafeSqrtReciprocal(ss[5]));
+        db_MultiplyScalar9(A+54,db_SafeSqrtReciprocal(ss[6]));
+        db_MultiplyScalar9(A+63,db_SafeSqrtReciprocal(ss[7]));
+    }
+}
+
+void db_NullVectorOrthonormal6x7(double x[7],const double A[42])
+{
+    int i;
+    double omss[7];
+    const double *B;
+
+    /*Pivot by choosing row of the identity matrix
+    (the one corresponding to column of A with smallest square sum)*/
+    omss[0]=db_SquareSum6Stride7(A);
+    omss[1]=db_SquareSum6Stride7(A+1);
+    omss[2]=db_SquareSum6Stride7(A+2);
+    omss[3]=db_SquareSum6Stride7(A+3);
+    omss[4]=db_SquareSum6Stride7(A+4);
+    omss[5]=db_SquareSum6Stride7(A+5);
+    omss[6]=db_SquareSum6Stride7(A+6);
+    i=db_MinIndex7(omss);
+    /*orthogonalize that row against all previous rows
+    and normalize it*/
+    B=A+i;
+    db_MultiplyScalarCopy7(x,A,-B[0]);
+    db_RowOperation7(x,A+7 ,B[7]);
+    db_RowOperation7(x,A+14,B[14]);
+    db_RowOperation7(x,A+21,B[21]);
+    db_RowOperation7(x,A+28,B[28]);
+    db_RowOperation7(x,A+35,B[35]);
+    x[i]+=1.0;
+    db_MultiplyScalar7(x,db_SafeSqrtReciprocal(1.0-omss[i]));
+}
+
+void db_NullVectorOrthonormal8x9(double x[9],const double A[72])
+{
+    int i;
+    double omss[9];
+    const double *B;
+
+    /*Pivot by choosing row of the identity matrix
+    (the one corresponding to column of A with smallest square sum)*/
+    omss[0]=db_SquareSum8Stride9(A);
+    omss[1]=db_SquareSum8Stride9(A+1);
+    omss[2]=db_SquareSum8Stride9(A+2);
+    omss[3]=db_SquareSum8Stride9(A+3);
+    omss[4]=db_SquareSum8Stride9(A+4);
+    omss[5]=db_SquareSum8Stride9(A+5);
+    omss[6]=db_SquareSum8Stride9(A+6);
+    omss[7]=db_SquareSum8Stride9(A+7);
+    omss[8]=db_SquareSum8Stride9(A+8);
+    i=db_MinIndex9(omss);
+    /*orthogonalize that row against all previous rows
+    and normalize it*/
+    B=A+i;
+    db_MultiplyScalarCopy9(x,A,-B[0]);
+    db_RowOperation9(x,A+9 ,B[9]);
+    db_RowOperation9(x,A+18,B[18]);
+    db_RowOperation9(x,A+27,B[27]);
+    db_RowOperation9(x,A+36,B[36]);
+    db_RowOperation9(x,A+45,B[45]);
+    db_RowOperation9(x,A+54,B[54]);
+    db_RowOperation9(x,A+63,B[63]);
+    x[i]+=1.0;
+    db_MultiplyScalar9(x,db_SafeSqrtReciprocal(1.0-omss[i]));
+}
+
diff --git a/perftests/panorama/feature_stab/db_vlvm/db_utilities_linalg.h b/perftests/panorama/feature_stab/db_vlvm/db_utilities_linalg.h
new file mode 100644
index 0000000..1f63d4e
--- /dev/null
+++ b/perftests/panorama/feature_stab/db_vlvm/db_utilities_linalg.h
@@ -0,0 +1,802 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+/* $Id: db_utilities_linalg.h,v 1.5 2011/06/17 14:03:31 mbansal Exp $ */
+
+#ifndef DB_UTILITIES_LINALG
+#define DB_UTILITIES_LINALG
+
+#include "db_utilities.h"
+
+
+
+/*****************************************************************
+*    Lean and mean begins here                                   *
+*****************************************************************/
+/*!
+ * \defgroup LMLinAlg (LM) Linear Algebra Utilities (QR factorization, orthogonal basis, etc.)
+ */
+
+/*!
+ \ingroup LMBasicUtilities
+ */
+inline void db_MultiplyScalar6(double A[6],double mult)
+{
+    (*A++) *= mult; (*A++) *= mult; (*A++) *= mult; (*A++) *= mult; (*A++) *= mult;
+    (*A++) *= mult;
+}
+/*!
+ \ingroup LMBasicUtilities
+ */
+inline void db_MultiplyScalar7(double A[7],double mult)
+{
+    (*A++) *= mult; (*A++) *= mult; (*A++) *= mult; (*A++) *= mult; (*A++) *= mult;
+    (*A++) *= mult; (*A++) *= mult;
+}
+/*!
+ \ingroup LMBasicUtilities
+ */
+inline void db_MultiplyScalar9(double A[9],double mult)
+{
+    (*A++) *= mult; (*A++) *= mult; (*A++) *= mult; (*A++) *= mult; (*A++) *= mult;
+    (*A++) *= mult; (*A++) *= mult; (*A++) *= mult; (*A++) *= mult;
+}
+
+/*!
+ \ingroup LMBasicUtilities
+ */
+inline double db_SquareSum6Stride7(const double *x)
+{
+    return(db_sqr(x[0])+db_sqr(x[7])+db_sqr(x[14])+
+        db_sqr(x[21])+db_sqr(x[28])+db_sqr(x[35]));
+}
+
+/*!
+ \ingroup LMBasicUtilities
+ */
+inline double db_SquareSum8Stride9(const double *x)
+{
+    return(db_sqr(x[0])+db_sqr(x[9])+db_sqr(x[18])+
+        db_sqr(x[27])+db_sqr(x[36])+db_sqr(x[45])+
+        db_sqr(x[54])+db_sqr(x[63]));
+}
+
+/*!
+ \ingroup LMLinAlg
+ Cholesky-factorize symmetric positive definite 6 x 6 matrix A. Upper
+part of A is used from the input. The Cholesky factor is output as
+subdiagonal part in A and diagonal in d, which is 6-dimensional
+1.9 microseconds on 450MHz*/
+DB_API void db_CholeskyDecomp6x6(double A[36],double d[6]);
+
+/*!
+ \ingroup LMLinAlg
+ Backsubstitute L%transpose(L)*x=b for x given the Cholesky decomposition
+of a 6 x 6 matrix and the right hand side b. The vector b is unchanged
+1.3 microseconds on 450MHz*/
+DB_API void db_CholeskyBacksub6x6(double x[6],const double A[36],const double d[6],const double b[6]);
+
+/*!
+ \ingroup LMLinAlg
+ Cholesky-factorize symmetric positive definite n x n matrix A.Part
+above diagonal of A is used from the input, diagonal of A is assumed to
+be stored in d. The Cholesky factor is output as
+subdiagonal part in A and diagonal in d, which is n-dimensional*/
+DB_API void db_CholeskyDecompSeparateDiagonal(double **A,double *d,int n);
+
+/*!
+ \ingroup LMLinAlg
+ Backsubstitute L%transpose(L)*x=b for x given the Cholesky decomposition
+of an n x n matrix and the right hand side b. The vector b is unchanged*/
+DB_API void db_CholeskyBacksub(double *x,const double * const *A,const double *d,int n,const double *b);
+
+/*!
+ \ingroup LMLinAlg
+ Cholesky-factorize symmetric positive definite 3 x 3 matrix A. Part
+above diagonal of A is used from the input, diagonal of A is assumed to
+be stored in d. The Cholesky factor is output as subdiagonal part in A
+and diagonal in d, which is 3-dimensional*/
+DB_API void db_CholeskyDecomp3x3SeparateDiagonal(double A[9],double d[3]);
+
+/*!
+ \ingroup LMLinAlg
+ Backsubstitute L%transpose(L)*x=b for x given the Cholesky decomposition
+of a 3 x 3 matrix and the right hand side b. The vector b is unchanged*/
+DB_API void db_CholeskyBacksub3x3(double x[3],const double A[9],const double d[3],const double b[3]);
+
+/*!
+ \ingroup LMLinAlg
+ perform A-=B*mult*/
+inline void db_RowOperation3(double A[3],const double B[3],double mult)
+{
+    *A++ -= mult*(*B++); *A++ -= mult*(*B++); *A++ -= mult*(*B++);
+}
+
+/*!
+ \ingroup LMLinAlg
+ */
+inline void db_RowOperation7(double A[7],const double B[7],double mult)
+{
+    *A++ -= mult*(*B++); *A++ -= mult*(*B++); *A++ -= mult*(*B++); *A++ -= mult*(*B++); *A++ -= mult*(*B++);
+    *A++ -= mult*(*B++); *A++ -= mult*(*B++);
+}
+
+/*!
+ \ingroup LMLinAlg
+ */
+inline void db_RowOperation9(double A[9],const double B[9],double mult)
+{
+    *A++ -= mult*(*B++); *A++ -= mult*(*B++); *A++ -= mult*(*B++); *A++ -= mult*(*B++); *A++ -= mult*(*B++);
+    *A++ -= mult*(*B++); *A++ -= mult*(*B++); *A++ -= mult*(*B++); *A++ -= mult*(*B++);
+}
+
+/*!
+ \ingroup LMBasicUtilities
+ Swap values of A[7] and B[7]
+ */
+inline void db_Swap7(double A[7],double B[7])
+{
+    double temp;
+    temp= *A; *A++ = *B; *B++ =temp;    temp= *A; *A++ = *B; *B++ =temp;    temp= *A; *A++ = *B; *B++ =temp;
+    temp= *A; *A++ = *B; *B++ =temp;    temp= *A; *A++ = *B; *B++ =temp;    temp= *A; *A++ = *B; *B++ =temp;
+    temp= *A; *A++ = *B; *B++ =temp;
+}
+
+/*!
+ \ingroup LMBasicUtilities
+ Swap values of A[9] and B[9]
+ */
+inline void db_Swap9(double A[9],double B[9])
+{
+    double temp;
+    temp= *A; *A++ = *B; *B++ =temp;    temp= *A; *A++ = *B; *B++ =temp;    temp= *A; *A++ = *B; *B++ =temp;
+    temp= *A; *A++ = *B; *B++ =temp;    temp= *A; *A++ = *B; *B++ =temp;    temp= *A; *A++ = *B; *B++ =temp;
+    temp= *A; *A++ = *B; *B++ =temp;    temp= *A; *A++ = *B; *B++ =temp;    temp= *A; *A++ = *B; *B++ =temp;
+}
+
+
+/*!
+ \ingroup LMLinAlg
+ */
+DB_API void db_Orthogonalize6x7(double A[42],int orthonormalize=0);
+
+/*!
+ \ingroup LMLinAlg
+ */
+DB_API void db_Orthogonalize8x9(double A[72],int orthonormalize=0);
+
+/*!
+ \ingroup LMLinAlg
+ */
+inline double db_OrthogonalizePair7(double *x,const double *v,double ssv)
+{
+    double m,sp,sp_m;
+
+    m=db_SafeReciprocal(ssv);
+    sp=db_ScalarProduct7(x,v);
+    sp_m=sp*m;
+    db_RowOperation7(x,v,sp_m);
+    return(sp*sp_m);
+}
+
+/*!
+ \ingroup LMLinAlg
+ */
+inline double db_OrthogonalizePair9(double *x,const double *v,double ssv)
+{
+    double m,sp,sp_m;
+
+    m=db_SafeReciprocal(ssv);
+    sp=db_ScalarProduct9(x,v);
+    sp_m=sp*m;
+    db_RowOperation9(x,v,sp_m);
+    return(sp*sp_m);
+}
+
+/*!
+ \ingroup LMLinAlg
+ */
+inline void db_OrthogonalizationSwap7(double *A,int i,double *ss)
+{
+    double temp;
+
+    db_Swap7(A,A+7*i);
+    temp=ss[0]; ss[0]=ss[i]; ss[i]=temp;
+}
+/*!
+ \ingroup LMLinAlg
+ */
+inline void db_OrthogonalizationSwap9(double *A,int i,double *ss)
+{
+    double temp;
+
+    db_Swap9(A,A+9*i);
+    temp=ss[0]; ss[0]=ss[i]; ss[i]=temp;
+}
+
+/*!
+ \ingroup LMLinAlg
+ */
+DB_API void db_NullVectorOrthonormal6x7(double x[7],const double A[42]);
+/*!
+ \ingroup LMLinAlg
+ */
+DB_API void db_NullVectorOrthonormal8x9(double x[9],const double A[72]);
+
+/*!
+ \ingroup LMLinAlg
+ */
+inline void db_NullVector6x7Destructive(double x[7],double A[42])
+{
+    db_Orthogonalize6x7(A,1);
+    db_NullVectorOrthonormal6x7(x,A);
+}
+
+/*!
+ \ingroup LMLinAlg
+ */
+inline void db_NullVector8x9Destructive(double x[9],double A[72])
+{
+    db_Orthogonalize8x9(A,1);
+    db_NullVectorOrthonormal8x9(x,A);
+}
+
+inline int db_ScalarProduct512_s(const short *f,const short *g)
+{
+#ifndef DB_USE_MMX
+    int back;
+    back=0;
+    for(int i=1; i<=512; i++)
+        back+=(*f++)*(*g++);
+
+    return(back);
+#endif
+}
+
+
+inline int db_ScalarProduct32_s(const short *f,const short *g)
+{
+#ifndef DB_USE_MMX
+    int back;
+    back=0;
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+
+    return(back);
+#endif
+}
+
+/*!
+ \ingroup LMLinAlg
+ Scalar product of 128-vectors (short)
+  Compile-time control: MMX, SSE2 or standard C
+ */
+inline int db_ScalarProduct128_s(const short *f,const short *g)
+{
+#ifndef DB_USE_MMX
+    int back;
+    back=0;
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+
+    return(back);
+#else
+#ifdef DB_USE_SSE2
+    int back;
+
+    _asm
+    {
+        mov eax,f
+        mov ecx,g
+        /*First iteration************************************/
+        movdqa     xmm0,[eax]
+         pxor    xmm7,xmm7      /*Set xmm7 to zero*/
+        pmaddwd  xmm0,[ecx]
+         /*Stall*/
+        /*Standard iteration************************************/
+        movdqa     xmm2,[eax+16]
+         paddd   xmm7,xmm0
+        pmaddwd  xmm2,[ecx+16]
+         /*Stall*/
+        movdqa     xmm1,[eax+32]
+         paddd   xmm7,xmm2
+        pmaddwd  xmm1,[ecx+32]
+         /*Stall*/
+        /*Standard iteration************************************/
+        movdqa     xmm0,[eax+48]
+         paddd   xmm7,xmm1
+        pmaddwd  xmm0,[ecx+48]
+         /*Stall*/
+        /*Standard iteration************************************/
+        movdqa     xmm2,[eax+64]
+         paddd   xmm7,xmm0
+        pmaddwd  xmm2,[ecx+64]
+         /*Stall*/
+        movdqa     xmm1,[eax+80]
+         paddd   xmm7,xmm2
+        pmaddwd  xmm1,[ecx+80]
+         /*Stall*/
+        /*Standard iteration************************************/
+        movdqa     xmm0,[eax+96]
+         paddd   xmm7,xmm1
+        pmaddwd  xmm0,[ecx+96]
+         /*Stall*/
+        /*Standard iteration************************************/
+        movdqa     xmm2,[eax+112]
+         paddd   xmm7,xmm0
+        pmaddwd  xmm2,[ecx+112]
+         /*Stall*/
+        movdqa     xmm1,[eax+128]
+         paddd   xmm7,xmm2
+        pmaddwd  xmm1,[ecx+128]
+         /*Stall*/
+        /*Standard iteration************************************/
+        movdqa     xmm0,[eax+144]
+         paddd   xmm7,xmm1
+        pmaddwd  xmm0,[ecx+144]
+         /*Stall*/
+        /*Standard iteration************************************/
+        movdqa     xmm2,[eax+160]
+         paddd   xmm7,xmm0
+        pmaddwd  xmm2,[ecx+160]
+         /*Stall*/
+        movdqa     xmm1,[eax+176]
+         paddd   xmm7,xmm2
+        pmaddwd  xmm1,[ecx+176]
+         /*Stall*/
+        /*Standard iteration************************************/
+        movdqa     xmm0,[eax+192]
+         paddd   xmm7,xmm1
+        pmaddwd  xmm0,[ecx+192]
+         /*Stall*/
+        /*Standard iteration************************************/
+        movdqa     xmm2,[eax+208]
+         paddd   xmm7,xmm0
+        pmaddwd  xmm2,[ecx+208]
+         /*Stall*/
+        movdqa     xmm1,[eax+224]
+         paddd   xmm7,xmm2
+        pmaddwd  xmm1,[ecx+224]
+         /*Stall*/
+        /*Standard iteration************************************/
+        movdqa     xmm0,[eax+240]
+         paddd   xmm7,xmm1
+        pmaddwd  xmm0,[ecx+240]
+         /*Stall*/
+        /*Rest iteration************************************/
+        paddd    xmm7,xmm0
+
+        /* add up the sum squares */
+        movhlps     xmm0,xmm7   /* high half to low half */
+        paddd       xmm7,xmm0   /* add high to low */
+        pshuflw     xmm0,xmm7, 0xE /* reshuffle */
+        paddd       xmm7,xmm0   /* add remaining */
+        movd        back,xmm7
+
+        emms
+    }
+
+    return(back);
+#else
+    int back;
+
+    _asm
+    {
+        mov eax,f
+        mov ecx,g
+        /*First iteration************************************/
+        movq     mm0,[eax]
+         pxor    mm7,mm7      /*Set mm7 to zero*/
+        pmaddwd  mm0,[ecx]
+         /*Stall*/
+        movq     mm1,[eax+8]
+         /*Stall*/
+        pmaddwd  mm1,[ecx+8]
+         /*Stall*/
+        /*Standard iteration************************************/
+        movq     mm2,[eax+16]
+         paddd   mm7,mm0
+        pmaddwd  mm2,[ecx+16]
+         /*Stall*/
+        movq     mm0,[eax+24]
+         paddd   mm7,mm1
+        pmaddwd  mm0,[ecx+24]
+         /*Stall*/
+        movq     mm1,[eax+32]
+         paddd   mm7,mm2
+        pmaddwd  mm1,[ecx+32]
+         /*Stall*/
+        /*Standard iteration************************************/
+        movq     mm2,[eax+40]
+         paddd   mm7,mm0
+        pmaddwd  mm2,[ecx+40]
+         /*Stall*/
+        movq     mm0,[eax+48]
+         paddd   mm7,mm1
+        pmaddwd  mm0,[ecx+48]
+         /*Stall*/
+        movq     mm1,[eax+56]
+         paddd   mm7,mm2
+        pmaddwd  mm1,[ecx+56]
+         /*Stall*/
+        /*Standard iteration************************************/
+        movq     mm2,[eax+64]
+         paddd   mm7,mm0
+        pmaddwd  mm2,[ecx+64]
+         /*Stall*/
+        movq     mm0,[eax+72]
+         paddd   mm7,mm1
+        pmaddwd  mm0,[ecx+72]
+         /*Stall*/
+        movq     mm1,[eax+80]
+         paddd   mm7,mm2
+        pmaddwd  mm1,[ecx+80]
+         /*Stall*/
+        /*Standard iteration************************************/
+        movq     mm2,[eax+88]
+         paddd   mm7,mm0
+        pmaddwd  mm2,[ecx+88]
+         /*Stall*/
+        movq     mm0,[eax+96]
+         paddd   mm7,mm1
+        pmaddwd  mm0,[ecx+96]
+         /*Stall*/
+        movq     mm1,[eax+104]
+         paddd   mm7,mm2
+        pmaddwd  mm1,[ecx+104]
+         /*Stall*/
+        /*Standard iteration************************************/
+        movq     mm2,[eax+112]
+         paddd   mm7,mm0
+        pmaddwd  mm2,[ecx+112]
+         /*Stall*/
+        movq     mm0,[eax+120]
+         paddd   mm7,mm1
+        pmaddwd  mm0,[ecx+120]
+         /*Stall*/
+        movq     mm1,[eax+128]
+         paddd   mm7,mm2
+        pmaddwd  mm1,[ecx+128]
+         /*Stall*/
+        /*Standard iteration************************************/
+        movq     mm2,[eax+136]
+         paddd   mm7,mm0
+        pmaddwd  mm2,[ecx+136]
+         /*Stall*/
+        movq     mm0,[eax+144]
+         paddd   mm7,mm1
+        pmaddwd  mm0,[ecx+144]
+         /*Stall*/
+        movq     mm1,[eax+152]
+         paddd   mm7,mm2
+        pmaddwd  mm1,[ecx+152]
+         /*Stall*/
+        /*Standard iteration************************************/
+        movq     mm2,[eax+160]
+         paddd   mm7,mm0
+        pmaddwd  mm2,[ecx+160]
+         /*Stall*/
+        movq     mm0,[eax+168]
+         paddd   mm7,mm1
+        pmaddwd  mm0,[ecx+168]
+         /*Stall*/
+        movq     mm1,[eax+176]
+         paddd   mm7,mm2
+        pmaddwd  mm1,[ecx+176]
+         /*Stall*/
+        /*Standard iteration************************************/
+        movq     mm2,[eax+184]
+         paddd   mm7,mm0
+        pmaddwd  mm2,[ecx+184]
+         /*Stall*/
+        movq     mm0,[eax+192]
+         paddd   mm7,mm1
+        pmaddwd  mm0,[ecx+192]
+         /*Stall*/
+        movq     mm1,[eax+200]
+         paddd   mm7,mm2
+        pmaddwd  mm1,[ecx+200]
+         /*Stall*/
+        /*Standard iteration************************************/
+        movq     mm2,[eax+208]
+         paddd   mm7,mm0
+        pmaddwd  mm2,[ecx+208]
+         /*Stall*/
+        movq     mm0,[eax+216]
+         paddd   mm7,mm1
+        pmaddwd  mm0,[ecx+216]
+         /*Stall*/
+        movq     mm1,[eax+224]
+         paddd   mm7,mm2
+        pmaddwd  mm1,[ecx+224]
+         /*Stall*/
+        /*Standard iteration************************************/
+        movq     mm2,[eax+232]
+         paddd   mm7,mm0
+        pmaddwd  mm2,[ecx+232]
+         /*Stall*/
+        movq     mm0,[eax+240]
+         paddd   mm7,mm1
+        pmaddwd  mm0,[ecx+240]
+         /*Stall*/
+        movq     mm1,[eax+248]
+         paddd   mm7,mm2
+        pmaddwd  mm1,[ecx+248]
+         /*Stall*/
+        /*Rest iteration************************************/
+        paddd    mm7,mm0
+         /*Stall*/
+        /*Stall*/
+         /*Stall*/
+        paddd    mm7,mm1
+         /*Stall*/
+        movq     mm0,mm7
+         psrlq   mm7,32
+        paddd    mm0,mm7
+         /*Stall*/
+        /*Stall*/
+         /*Stall*/
+        movd     back,mm0
+        emms
+    }
+
+    return(back);
+#endif
+#endif /*DB_USE_MMX*/
+}
+
+/*!
+ \ingroup LMLinAlg
+ Scalar product of 16 byte aligned 128-vectors (float).
+  Compile-time control: SIMD (SSE) or standard C.
+ */
+inline float db_ScalarProduct128Aligned16_f(const float *f,const float *g)
+{
+#ifndef DB_USE_SIMD
+    float back;
+    back=0.0;
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+    back+=(*f++)*(*g++); back+=(*f++)*(*g++); back+=(*f++)*(*g++);
+
+    return(back);
+#else
+    float back;
+
+    _asm
+    {
+        mov eax,f
+        mov ecx,g
+        /*First iteration************************************/
+        movaps     xmm0,[eax]
+         xorps      xmm7,xmm7       /*Set mm7 to zero*/
+        mulps      xmm0,[ecx]
+         /*Stall*/
+        movaps     xmm1,[eax+16]
+         /*Stall*/
+        mulps      xmm1,[ecx+16]
+         /*Stall*/
+        /*Standard iteration************************************/
+        movaps     xmm2,[eax+32]
+         addps      xmm7,xmm0
+        mulps      xmm2,[ecx+32]
+         /*Stall*/
+        movaps     xmm0,[eax+48]
+         addps      xmm7,xmm1
+        mulps      xmm0,[ecx+48]
+         /*Stall*/
+        movaps     xmm1,[eax+64]
+         addps      xmm7,xmm2
+        mulps      xmm1,[ecx+64]
+         /*Stall*/
+        /*Standard iteration************************************/
+        movaps     xmm2,[eax+80]
+         addps      xmm7,xmm0
+        mulps      xmm2,[ecx+80]
+         /*Stall*/
+        movaps     xmm0,[eax+96]
+         addps      xmm7,xmm1
+        mulps      xmm0,[ecx+96]
+         /*Stall*/
+        movaps     xmm1,[eax+112]
+         addps      xmm7,xmm2
+        mulps      xmm1,[ecx+112]
+         /*Stall*/
+        /*Standard iteration************************************/
+        movaps     xmm2,[eax+128]
+         addps      xmm7,xmm0
+        mulps      xmm2,[ecx+128]
+         /*Stall*/
+        movaps     xmm0,[eax+144]
+         addps      xmm7,xmm1
+        mulps      xmm0,[ecx+144]
+         /*Stall*/
+        movaps     xmm1,[eax+160]
+         addps      xmm7,xmm2
+        mulps      xmm1,[ecx+160]
+         /*Stall*/
+        /*Standard iteration************************************/
+        movaps     xmm2,[eax+176]
+         addps      xmm7,xmm0
+        mulps      xmm2,[ecx+176]
+         /*Stall*/
+        movaps     xmm0,[eax+192]
+         addps      xmm7,xmm1
+        mulps      xmm0,[ecx+192]
+         /*Stall*/
+        movaps     xmm1,[eax+208]
+         addps      xmm7,xmm2
+        mulps      xmm1,[ecx+208]
+         /*Stall*/
+        /*Standard iteration************************************/
+        movaps     xmm2,[eax+224]
+         addps      xmm7,xmm0
+        mulps      xmm2,[ecx+224]
+         /*Stall*/
+        movaps     xmm0,[eax+240]
+         addps      xmm7,xmm1
+        mulps      xmm0,[ecx+240]
+         /*Stall*/
+        movaps     xmm1,[eax+256]
+         addps      xmm7,xmm2
+        mulps      xmm1,[ecx+256]
+         /*Stall*/
+        /*Standard iteration************************************/
+        movaps     xmm2,[eax+272]
+         addps      xmm7,xmm0
+        mulps      xmm2,[ecx+272]
+         /*Stall*/
+        movaps     xmm0,[eax+288]
+         addps      xmm7,xmm1
+        mulps      xmm0,[ecx+288]
+         /*Stall*/
+        movaps     xmm1,[eax+304]
+         addps      xmm7,xmm2
+        mulps      xmm1,[ecx+304]
+         /*Stall*/
+        /*Standard iteration************************************/
+        movaps     xmm2,[eax+320]
+         addps      xmm7,xmm0
+        mulps      xmm2,[ecx+320]
+         /*Stall*/
+        movaps     xmm0,[eax+336]
+         addps      xmm7,xmm1
+        mulps      xmm0,[ecx+336]
+         /*Stall*/
+        movaps     xmm1,[eax+352]
+         addps      xmm7,xmm2
+        mulps      xmm1,[ecx+352]
+         /*Stall*/
+        /*Standard iteration************************************/
+        movaps     xmm2,[eax+368]
+         addps      xmm7,xmm0
+        mulps      xmm2,[ecx+368]
+         /*Stall*/
+        movaps     xmm0,[eax+384]
+         addps      xmm7,xmm1
+        mulps      xmm0,[ecx+384]
+         /*Stall*/
+        movaps     xmm1,[eax+400]
+         addps      xmm7,xmm2
+        mulps      xmm1,[ecx+400]
+         /*Stall*/
+        /*Standard iteration************************************/
+        movaps     xmm2,[eax+416]
+         addps      xmm7,xmm0
+        mulps      xmm2,[ecx+416]
+         /*Stall*/
+        movaps     xmm0,[eax+432]
+         addps      xmm7,xmm1
+        mulps      xmm0,[ecx+432]
+         /*Stall*/
+        movaps     xmm1,[eax+448]
+         addps      xmm7,xmm2
+        mulps      xmm1,[ecx+448]
+         /*Stall*/
+        /*Standard iteration************************************/
+        movaps     xmm2,[eax+464]
+         addps      xmm7,xmm0
+        mulps      xmm2,[ecx+464]
+         /*Stall*/
+        movaps     xmm0,[eax+480]
+         addps      xmm7,xmm1
+        mulps      xmm0,[ecx+480]
+         /*Stall*/
+        movaps     xmm1,[eax+496]
+         addps      xmm7,xmm2
+        mulps      xmm1,[ecx+496]
+         /*Stall*/
+        /*Rest iteration************************************/
+        addps      xmm7,xmm0
+         /*Stall*/
+        addps      xmm7,xmm1
+         /*Stall*/
+        movaps xmm6,xmm7
+         /*Stall*/
+        shufps xmm6,xmm6,4Eh
+         /*Stall*/
+        addps  xmm7,xmm6
+         /*Stall*/
+        movaps xmm6,xmm7
+         /*Stall*/
+        shufps xmm6,xmm6,11h
+         /*Stall*/
+        addps  xmm7,xmm6
+         /*Stall*/
+        movss  back,xmm7
+    }
+
+    return(back);
+#endif /*DB_USE_SIMD*/
+}
+
+#endif /* DB_UTILITIES_LINALG */
diff --git a/perftests/panorama/feature_stab/db_vlvm/db_utilities_poly.cpp b/perftests/panorama/feature_stab/db_vlvm/db_utilities_poly.cpp
new file mode 100644
index 0000000..013ac72
--- /dev/null
+++ b/perftests/panorama/feature_stab/db_vlvm/db_utilities_poly.cpp
@@ -0,0 +1,235 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+/* $Id: db_utilities_poly.cpp,v 1.2 2010/09/03 12:00:10 bsouthall Exp $ */
+
+#include "db_utilities_poly.h"
+#include "db_utilities.h"
+
+
+
+/*****************************************************************
+*    Lean and mean begins here                                   *
+*****************************************************************/
+
+void db_SolveCubic(double *roots,int *nr_roots,double a,double b,double c,double d)
+{
+    double bp,bp2,cp,dp,q,r,srq;
+    double r2_min_q3,theta,bp_through3,theta_through3;
+    double cos_theta_through3,sin_theta_through3,min2_cos_theta_plu,min2_cos_theta_min;
+    double si_r_srq,A;
+
+    /*For nondegenerate cubics with three roots
+    [24 mult 9 add 2sqrt 1acos 1cos=33flops 4func]
+    For nondegenerate cubics with one root
+    [16 mult 6 add 1sqrt 1qbrt=24flops 3func]*/
+
+    if(a==0.0) db_SolveQuadratic(roots,nr_roots,b,c,d);
+    else
+    {
+        bp=b/a;
+        bp2=bp*bp;
+        cp=c/a;
+        dp=d/a;
+
+        q=(bp2-3.0*cp)/9.0;
+        r=(2.0*bp2*bp-9.0*bp*cp+27.0*dp)/54.0;
+        r2_min_q3=r*r-q*q*q;
+        if(r2_min_q3<0.0)
+        {
+            *nr_roots=3;
+            /*q has to be > 0*/
+            srq=sqrt(q);
+            theta=acos(db_maxd(-1.0,db_mind(1.0,r/(q*srq))));
+            bp_through3=bp/3.0;
+            theta_through3=theta/3.0;
+            cos_theta_through3=cos(theta_through3);
+            sin_theta_through3=sqrt(db_maxd(0.0,1.0-cos_theta_through3*cos_theta_through3));
+
+            /*cos(theta_through3+2*pi/3)=cos_theta_through3*cos(2*pi/3)-sin_theta_through3*sin(2*pi/3)
+            = -0.5*cos_theta_through3-sqrt(3)/2.0*sin_theta_through3
+            = -0.5*(cos_theta_through3+sqrt(3)*sin_theta_through3)*/
+            min2_cos_theta_plu=cos_theta_through3+DB_SQRT3*sin_theta_through3;
+            min2_cos_theta_min=cos_theta_through3-DB_SQRT3*sin_theta_through3;
+
+            roots[0]= -2.0*srq*cos_theta_through3-bp_through3;
+            roots[1]=srq*min2_cos_theta_plu-bp_through3;
+            roots[2]=srq*min2_cos_theta_min-bp_through3;
+        }
+        else if(r2_min_q3>0.0)
+        {
+            *nr_roots=1;
+            A= -db_sign(r)*db_CubRoot(db_absd(r)+sqrt(r2_min_q3));
+            bp_through3=bp/3.0;
+            if(A!=0.0) roots[0]=A+q/A-bp_through3;
+            else roots[0]= -bp_through3;
+        }
+        else
+        {
+            *nr_roots=2;
+            bp_through3=bp/3.0;
+            /*q has to be >= 0*/
+            si_r_srq=db_sign(r)*sqrt(q);
+            /*Single root*/
+            roots[0]= -2.0*si_r_srq-bp_through3;
+            /*Double root*/
+            roots[1]=si_r_srq-bp_through3;
+        }
+    }
+}
+
+void db_SolveQuartic(double *roots,int *nr_roots,double a,double b,double c,double d,double e)
+{
+    /*Normalized coefficients*/
+    double c0,c1,c2,c3;
+    /*Temporary coefficients*/
+    double c3through2,c3through4,c3c3through4_min_c2,min4_c0;
+    double lz,ms,ns,mn,m,n,lz_through2;
+    /*Cubic polynomial roots, nr of roots and coefficients*/
+    double c_roots[3];
+    int nr_c_roots;
+    double k0,k1;
+    /*nr additional roots from second quadratic*/
+    int addroots;
+
+    /*For nondegenerate quartics
+    [16mult 11add 2sqrt 1cubic 2quadratic=74flops 8funcs]*/
+
+    if(a==0.0) db_SolveCubic(roots,nr_roots,b,c,d,e);
+    else if(e==0.0)
+    {
+        db_SolveCubic(roots,nr_roots,a,b,c,d);
+        roots[*nr_roots]=0.0;
+        *nr_roots+=1;
+    }
+    else
+    {
+        /*Compute normalized coefficients*/
+        c3=b/a;
+        c2=c/a;
+        c1=d/a;
+        c0=e/a;
+        /*Compute temporary coefficients*/
+        c3through2=c3/2.0;
+        c3through4=c3/4.0;
+        c3c3through4_min_c2=c3*c3through4-c2;
+        min4_c0= -4.0*c0;
+        /*Compute coefficients of cubic*/
+        k0=min4_c0*c3c3through4_min_c2-c1*c1;
+        k1=c1*c3+min4_c0;
+        /*k2= -c2*/
+        /*k3=1.0*/
+
+        /*Solve it for roots*/
+        db_SolveCubic(c_roots,&nr_c_roots,1.0,-c2,k1,k0);
+
+        if(nr_c_roots>0)
+        {
+            lz=c_roots[0];
+            lz_through2=lz/2.0;
+            ms=lz+c3c3through4_min_c2;
+            ns=lz_through2*lz_through2-c0;
+            mn=lz*c3through4-c1/2.0;
+
+            if((ms>=0.0)&&(ns>=0.0))
+            {
+                m=sqrt(ms);
+                n=sqrt(ns)*db_sign(mn);
+
+                db_SolveQuadratic(roots,nr_roots,
+                    1.0,c3through2+m,lz_through2+n);
+
+                db_SolveQuadratic(&roots[*nr_roots],&addroots,
+                    1.0,c3through2-m,lz_through2-n);
+
+                *nr_roots+=addroots;
+            }
+            else *nr_roots=0;
+        }
+        else *nr_roots=0;
+    }
+}
+
+void db_SolveQuarticForced(double *roots,int *nr_roots,double a,double b,double c,double d,double e)
+{
+    /*Normalized coefficients*/
+    double c0,c1,c2,c3;
+    /*Temporary coefficients*/
+    double c3through2,c3through4,c3c3through4_min_c2,min4_c0;
+    double lz,ms,ns,mn,m,n,lz_through2;
+    /*Cubic polynomial roots, nr of roots and coefficients*/
+    double c_roots[3];
+    int nr_c_roots;
+    double k0,k1;
+    /*nr additional roots from second quadratic*/
+    int addroots;
+
+    /*For nondegenerate quartics
+    [16mult 11add 2sqrt 1cubic 2quadratic=74flops 8funcs]*/
+
+    if(a==0.0) db_SolveCubic(roots,nr_roots,b,c,d,e);
+    else if(e==0.0)
+    {
+        db_SolveCubic(roots,nr_roots,a,b,c,d);
+        roots[*nr_roots]=0.0;
+        *nr_roots+=1;
+    }
+    else
+    {
+        /*Compute normalized coefficients*/
+        c3=b/a;
+        c2=c/a;
+        c1=d/a;
+        c0=e/a;
+        /*Compute temporary coefficients*/
+        c3through2=c3/2.0;
+        c3through4=c3/4.0;
+        c3c3through4_min_c2=c3*c3through4-c2;
+        min4_c0= -4.0*c0;
+        /*Compute coefficients of cubic*/
+        k0=min4_c0*c3c3through4_min_c2-c1*c1;
+        k1=c1*c3+min4_c0;
+        /*k2= -c2*/
+        /*k3=1.0*/
+
+        /*Solve it for roots*/
+        db_SolveCubic(c_roots,&nr_c_roots,1.0,-c2,k1,k0);
+
+        if(nr_c_roots>0)
+        {
+            lz=c_roots[0];
+            lz_through2=lz/2.0;
+            ms=lz+c3c3through4_min_c2;
+            ns=lz_through2*lz_through2-c0;
+            mn=lz*c3through4-c1/2.0;
+
+            if(ms<0.0) ms=0.0;
+            if(ns<0.0) ns=0.0;
+
+            m=sqrt(ms);
+            n=sqrt(ns)*db_sign(mn);
+
+            db_SolveQuadratic(roots,nr_roots,
+                1.0,c3through2+m,lz_through2+n);
+
+            db_SolveQuadratic(&roots[*nr_roots],&addroots,
+                1.0,c3through2-m,lz_through2-n);
+
+            *nr_roots+=addroots;
+        }
+        else *nr_roots=0;
+    }
+}
diff --git a/perftests/panorama/feature_stab/db_vlvm/db_utilities_poly.h b/perftests/panorama/feature_stab/db_vlvm/db_utilities_poly.h
new file mode 100644
index 0000000..1f87890
--- /dev/null
+++ b/perftests/panorama/feature_stab/db_vlvm/db_utilities_poly.h
@@ -0,0 +1,383 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+/* $Id: db_utilities_poly.h,v 1.2 2010/09/03 12:00:11 bsouthall Exp $ */
+
+#ifndef DB_UTILITIES_POLY
+#define DB_UTILITIES_POLY
+
+#include "db_utilities.h"
+
+
+
+/*****************************************************************
+*    Lean and mean begins here                                   *
+*****************************************************************/
+/*!
+ * \defgroup LMPolynomial (LM) Polynomial utilities (solvers, arithmetic, evaluation, etc.)
+ */
+/*\{*/
+
+/*!
+In debug mode closed form quadratic solving takes on the order of 15 microseconds
+while eig of the companion matrix takes about 1.1 milliseconds
+Speed-optimized code in release mode solves a quadratic in 0.3 microseconds on 450MHz
+*/
+inline void db_SolveQuadratic(double *roots,int *nr_roots,double a,double b,double c)
+{
+    double rs,srs,q;
+
+    /*For non-degenerate quadratics
+    [5 mult 2 add 1 sqrt=7flops 1func]*/
+    if(a==0.0)
+    {
+        if(b==0.0) *nr_roots=0;
+        else
+        {
+            roots[0]= -c/b;
+            *nr_roots=1;
+        }
+    }
+    else
+    {
+        rs=b*b-4.0*a*c;
+        if(rs>=0.0)
+        {
+            *nr_roots=2;
+            srs=sqrt(rs);
+            q= -0.5*(b+db_sign(b)*srs);
+            roots[0]=q/a;
+            /*If b is zero db_sign(b) returns 1,
+            so q is only zero when b=0 and c=0*/
+            if(q==0.0) *nr_roots=1;
+            else roots[1]=c/q;
+        }
+        else *nr_roots=0;
+    }
+}
+
+/*!
+In debug mode closed form cubic solving takes on the order of 45 microseconds
+while eig of the companion matrix takes about 1.3 milliseconds
+Speed-optimized code in release mode solves a cubic in 1.5 microseconds on 450MHz
+For a non-degenerate cubic with two roots, the first root is the single root and
+the second root is the double root
+*/
+DB_API void db_SolveCubic(double *roots,int *nr_roots,double a,double b,double c,double d);
+/*!
+In debug mode closed form quartic solving takes on the order of 0.1 milliseconds
+while eig of the companion matrix takes about 1.5 milliseconds
+Speed-optimized code in release mode solves a quartic in 2.6 microseconds on 450MHz*/
+DB_API void db_SolveQuartic(double *roots,int *nr_roots,double a,double b,double c,double d,double e);
+/*!
+Quartic solving where a solution is forced when splitting into quadratics, which
+can be good if the quartic is sometimes in fact a quadratic, such as in absolute orientation
+when the data is planar*/
+DB_API void db_SolveQuarticForced(double *roots,int *nr_roots,double a,double b,double c,double d,double e);
+
+inline double db_PolyEval1(const double p[2],double x)
+{
+    return(p[0]+x*p[1]);
+}
+
+inline void db_MultiplyPoly1_1(double *d,const double *a,const double *b)
+{
+    double a0,a1;
+    double b0,b1;
+    a0=a[0];a1=a[1];
+    b0=b[0];b1=b[1];
+
+    d[0]=a0*b0;
+    d[1]=a0*b1+a1*b0;
+    d[2]=      a1*b1;
+}
+
+inline void db_MultiplyPoly0_2(double *d,const double *a,const double *b)
+{
+    double a0;
+    double b0,b1,b2;
+    a0=a[0];
+    b0=b[0];b1=b[1];b2=b[2];
+
+    d[0]=a0*b0;
+    d[1]=a0*b1;
+    d[2]=a0*b2;
+}
+
+inline void db_MultiplyPoly1_2(double *d,const double *a,const double *b)
+{
+    double a0,a1;
+    double b0,b1,b2;
+    a0=a[0];a1=a[1];
+    b0=b[0];b1=b[1];b2=b[2];
+
+    d[0]=a0*b0;
+    d[1]=a0*b1+a1*b0;
+    d[2]=a0*b2+a1*b1;
+    d[3]=      a1*b2;
+}
+
+
+inline void db_MultiplyPoly1_3(double *d,const double *a,const double *b)
+{
+    double a0,a1;
+    double b0,b1,b2,b3;
+    a0=a[0];a1=a[1];
+    b0=b[0];b1=b[1];b2=b[2];b3=b[3];
+
+    d[0]=a0*b0;
+    d[1]=a0*b1+a1*b0;
+    d[2]=a0*b2+a1*b1;
+    d[3]=a0*b3+a1*b2;
+    d[4]=      a1*b3;
+}
+/*!
+Multiply d=a*b where a is one degree and b is two degree*/
+inline void db_AddPolyProduct0_1(double *d,const double *a,const double *b)
+{
+    double a0;
+    double b0,b1;
+    a0=a[0];
+    b0=b[0];b1=b[1];
+
+    d[0]+=a0*b0;
+    d[1]+=a0*b1;
+}
+inline void db_AddPolyProduct0_2(double *d,const double *a,const double *b)
+{
+    double a0;
+    double b0,b1,b2;
+    a0=a[0];
+    b0=b[0];b1=b[1];b2=b[2];
+
+    d[0]+=a0*b0;
+    d[1]+=a0*b1;
+    d[2]+=a0*b2;
+}
+/*!
+Multiply d=a*b where a is one degree and b is two degree*/
+inline void db_SubtractPolyProduct0_0(double *d,const double *a,const double *b)
+{
+    double a0;
+    double b0;
+    a0=a[0];
+    b0=b[0];
+
+    d[0]-=a0*b0;
+}
+
+inline void db_SubtractPolyProduct0_1(double *d,const double *a,const double *b)
+{
+    double a0;
+    double b0,b1;
+    a0=a[0];
+    b0=b[0];b1=b[1];
+
+    d[0]-=a0*b0;
+    d[1]-=a0*b1;
+}
+
+inline void db_SubtractPolyProduct0_2(double *d,const double *a,const double *b)
+{
+    double a0;
+    double b0,b1,b2;
+    a0=a[0];
+    b0=b[0];b1=b[1];b2=b[2];
+
+    d[0]-=a0*b0;
+    d[1]-=a0*b1;
+    d[2]-=a0*b2;
+}
+
+inline void db_SubtractPolyProduct1_3(double *d,const double *a,const double *b)
+{
+    double a0,a1;
+    double b0,b1,b2,b3;
+    a0=a[0];a1=a[1];
+    b0=b[0];b1=b[1];b2=b[2];b3=b[3];
+
+    d[0]-=a0*b0;
+    d[1]-=a0*b1+a1*b0;
+    d[2]-=a0*b2+a1*b1;
+    d[3]-=a0*b3+a1*b2;
+    d[4]-=      a1*b3;
+}
+
+inline void    db_CharacteristicPolynomial4x4(double p[5],const double A[16])
+{
+    /*All two by two determinants of the first two rows*/
+    double two01[3],two02[3],two03[3],two12[3],two13[3],two23[3];
+    /*Polynomials representing third and fourth row of A*/
+    double P0[2],P1[2],P2[2],P3[2];
+    double P4[2],P5[2],P6[2],P7[2];
+    /*All three by three determinants of the first three rows*/
+    double neg_three0[4],neg_three1[4],three2[4],three3[4];
+
+    /*Compute 2x2 determinants*/
+    two01[0]=A[0]*A[5]-A[1]*A[4];
+    two01[1]= -(A[0]+A[5]);
+    two01[2]=1.0;
+
+    two02[0]=A[0]*A[6]-A[2]*A[4];
+    two02[1]= -A[6];
+
+    two03[0]=A[0]*A[7]-A[3]*A[4];
+    two03[1]= -A[7];
+
+    two12[0]=A[1]*A[6]-A[2]*A[5];
+    two12[1]=A[2];
+
+    two13[0]=A[1]*A[7]-A[3]*A[5];
+    two13[1]=A[3];
+
+    two23[0]=A[2]*A[7]-A[3]*A[6];
+
+    P0[0]=A[8];
+    P1[0]=A[9];
+    P2[0]=A[10];P2[1]= -1.0;
+    P3[0]=A[11];
+
+    P4[0]=A[12];
+    P5[0]=A[13];
+    P6[0]=A[14];
+    P7[0]=A[15];P7[1]= -1.0;
+
+    /*Compute 3x3 determinants.Note that the highest
+    degree polynomial goes first and the smaller ones
+    are added or subtracted from it*/
+    db_MultiplyPoly1_1(       neg_three0,P2,two13);
+    db_SubtractPolyProduct0_0(neg_three0,P1,two23);
+    db_SubtractPolyProduct0_1(neg_three0,P3,two12);
+
+    db_MultiplyPoly1_1(       neg_three1,P2,two03);
+    db_SubtractPolyProduct0_1(neg_three1,P3,two02);
+    db_SubtractPolyProduct0_0(neg_three1,P0,two23);
+
+    db_MultiplyPoly0_2(       three2,P3,two01);
+    db_AddPolyProduct0_1(     three2,P0,two13);
+    db_SubtractPolyProduct0_1(three2,P1,two03);
+
+    db_MultiplyPoly1_2(       three3,P2,two01);
+    db_AddPolyProduct0_1(     three3,P0,two12);
+    db_SubtractPolyProduct0_1(three3,P1,two02);
+
+    /*Compute 4x4 determinants*/
+    db_MultiplyPoly1_3(       p,P7,three3);
+    db_AddPolyProduct0_2(     p,P4,neg_three0);
+    db_SubtractPolyProduct0_2(p,P5,neg_three1);
+    db_SubtractPolyProduct0_2(p,P6,three2);
+}
+
+inline void db_RealEigenvalues4x4(double lambda[4],int *nr_roots,const double A[16],int forced=0)
+{
+    double p[5];
+
+    db_CharacteristicPolynomial4x4(p,A);
+    if(forced) db_SolveQuarticForced(lambda,nr_roots,p[4],p[3],p[2],p[1],p[0]);
+     else db_SolveQuartic(lambda,nr_roots,p[4],p[3],p[2],p[1],p[0]);
+}
+
+/*!
+Compute the unit norm eigenvector v of the matrix A corresponding
+to the eigenvalue lambda
+[96mult 60add 1sqrt=156flops 1sqrt]*/
+inline void db_EigenVector4x4(double v[4],double lambda,const double A[16])
+{
+    double a0,a5,a10,a15;
+    double d01,d02,d03,d12,d13,d23;
+    double e01,e02,e03,e12,e13,e23;
+    double C[16],n0,n1,n2,n3,m;
+
+    /*Compute diagonal
+    [4add=4flops]*/
+    a0=A[0]-lambda;
+    a5=A[5]-lambda;
+    a10=A[10]-lambda;
+    a15=A[15]-lambda;
+
+    /*Compute 2x2 determinants of rows 1,2 and 3,4
+    [24mult 12add=36flops]*/
+    d01=a0*a5    -A[1]*A[4];
+    d02=a0*A[6]  -A[2]*A[4];
+    d03=a0*A[7]  -A[3]*A[4];
+    d12=A[1]*A[6]-A[2]*a5;
+    d13=A[1]*A[7]-A[3]*a5;
+    d23=A[2]*A[7]-A[3]*A[6];
+
+    e01=A[8]*A[13]-A[9] *A[12];
+    e02=A[8]*A[14]-a10  *A[12];
+    e03=A[8]*a15  -A[11]*A[12];
+    e12=A[9]*A[14]-a10  *A[13];
+    e13=A[9]*a15  -A[11]*A[13];
+    e23=a10 *a15  -A[11]*A[14];
+
+    /*Compute matrix of cofactors
+    [48mult 32 add=80flops*/
+    C[0]=  (a5  *e23-A[6]*e13+A[7]*e12);
+    C[1]= -(A[4]*e23-A[6]*e03+A[7]*e02);
+    C[2]=  (A[4]*e13-a5  *e03+A[7]*e01);
+    C[3]= -(A[4]*e12-a5  *e02+A[6]*e01);
+
+    C[4]= -(A[1]*e23-A[2]*e13+A[3]*e12);
+    C[5]=  (a0  *e23-A[2]*e03+A[3]*e02);
+    C[6]= -(a0  *e13-A[1]*e03+A[3]*e01);
+    C[7]=  (a0  *e12-A[1]*e02+A[2]*e01);
+
+    C[8]=   (A[13]*d23-A[14]*d13+a15  *d12);
+    C[9]=  -(A[12]*d23-A[14]*d03+a15  *d02);
+    C[10]=  (A[12]*d13-A[13]*d03+a15  *d01);
+    C[11]= -(A[12]*d12-A[13]*d02+A[14]*d01);
+
+    C[12]= -(A[9]*d23-a10 *d13+A[11]*d12);
+    C[13]=  (A[8]*d23-a10 *d03+A[11]*d02);
+    C[14]= -(A[8]*d13-A[9]*d03+A[11]*d01);
+    C[15]=  (A[8]*d12-A[9]*d02+a10  *d01);
+
+    /*Compute square sums of rows
+    [16mult 12add=28flops*/
+    n0=db_sqr(C[0]) +db_sqr(C[1]) +db_sqr(C[2]) +db_sqr(C[3]);
+    n1=db_sqr(C[4]) +db_sqr(C[5]) +db_sqr(C[6]) +db_sqr(C[7]);
+    n2=db_sqr(C[8]) +db_sqr(C[9]) +db_sqr(C[10])+db_sqr(C[11]);
+    n3=db_sqr(C[12])+db_sqr(C[13])+db_sqr(C[14])+db_sqr(C[15]);
+
+    /*Take the largest norm row and normalize
+    [4mult 1 sqrt=4flops 1sqrt]*/
+    if(n0>=n1 && n0>=n2 && n0>=n3)
+    {
+        m=db_SafeReciprocal(sqrt(n0));
+        db_MultiplyScalarCopy4(v,C,m);
+    }
+    else if(n1>=n2 && n1>=n3)
+    {
+        m=db_SafeReciprocal(sqrt(n1));
+        db_MultiplyScalarCopy4(v,&(C[4]),m);
+    }
+    else if(n2>=n3)
+    {
+        m=db_SafeReciprocal(sqrt(n2));
+        db_MultiplyScalarCopy4(v,&(C[8]),m);
+    }
+    else
+    {
+        m=db_SafeReciprocal(sqrt(n3));
+        db_MultiplyScalarCopy4(v,&(C[12]),m);
+    }
+}
+
+
+
+/*\}*/
+#endif /* DB_UTILITIES_POLY */
diff --git a/perftests/panorama/feature_stab/db_vlvm/db_utilities_random.h b/perftests/panorama/feature_stab/db_vlvm/db_utilities_random.h
new file mode 100644
index 0000000..ef24039
--- /dev/null
+++ b/perftests/panorama/feature_stab/db_vlvm/db_utilities_random.h
@@ -0,0 +1,98 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+/* $Id: db_utilities_random.h,v 1.1 2010/08/19 18:09:20 bsouthall Exp $ */
+
+#ifndef DB_UTILITIES_RANDOM
+#define DB_UTILITIES_RANDOM
+
+#include "db_utilities.h"
+
+
+
+/*****************************************************************
+*    Lean and mean begins here                                   *
+*****************************************************************/
+/*!
+ * \defgroup LMRandom (LM) Random numbers, random sampling
+ */
+/*\{*/
+/*!
+ Random Number generator. Initialize with non-zero
+integer value r. A double between zero and one is
+returned.
+\param r    seed
+\return random double
+*/
+inline double db_QuickRandomDouble(int &r)
+{
+    int c;
+    c=r/127773;
+    r=16807*(r-c*127773)-2836*c;
+    if(r<0) r+=2147483647;
+    return((1.0/((double)2147483647))*r);
+    //return (((double)rand())/(double)RAND_MAX);
+}
+
+/*!
+Random Number generator. Initialize with non-zero
+integer value r. An int between and including 0 and max
+ \param r    seed
+ \param max    upped limit
+ \return random int
+*/
+inline int db_RandomInt(int &r,int max)
+{
+    double dtemp;
+    int itemp;
+    dtemp=db_QuickRandomDouble(r)*(max+1);
+    itemp=(int) dtemp;
+    if(itemp<=0) return(0);
+    if(itemp>=max) return(max);
+    return(itemp);
+}
+
+/*!
+ Generate a random sample indexing into [0..pool_size-1].
+ \param s            sample (out) pre-allocated array of size sample_size
+ \param sample_size    size of sample
+ \param pool_size    upper limit on item index
+ \param r_seed        random number generator seed
+ */
+inline void db_RandomSample(int *s,int sample_size,int pool_size,int &r_seed)
+{
+    int temp,temp2,i,j;
+
+    for(i=0;i<sample_size;i++)
+    {
+        temp=db_RandomInt(r_seed,pool_size-1-i);
+
+        for(j=0;j<i;j++)
+        {
+            if(s[j]<=temp) temp++;
+            else
+            {
+                /*swap*/
+                temp2=temp;
+                temp=s[j];
+                s[j]=temp2;
+            }
+        }
+        s[i]=temp;
+    }
+}
+/*\}*/
+#endif /* DB_UTILITIES_RANDOM */
diff --git a/perftests/panorama/feature_stab/db_vlvm/db_utilities_rotation.h b/perftests/panorama/feature_stab/db_vlvm/db_utilities_rotation.h
new file mode 100644
index 0000000..7f5f937
--- /dev/null
+++ b/perftests/panorama/feature_stab/db_vlvm/db_utilities_rotation.h
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+/* $Id: db_utilities_rotation.h,v 1.2 2010/09/03 12:00:11 bsouthall Exp $ */
+
+#ifndef DB_UTILITIES_ROTATION
+#define DB_UTILITIES_ROTATION
+
+#include "db_utilities.h"
+
+
+
+/*****************************************************************
+*    Lean and mean begins here                                   *
+*****************************************************************/
+/*!
+ * \defgroup LMRotation (LM) Rotation Utilities (quaternions, orthonormal)
+ */
+/*\{*/
+/*!
+ Takes a unit quaternion and gives its corresponding rotation matrix.
+ \param R rotation matrix (out)
+ \param q quaternion
+ */
+inline void db_QuaternionToRotation(double R[9],const double q[4])
+{
+    double q0q0,q0qx,q0qy,q0qz,qxqx,qxqy,qxqz,qyqy,qyqz,qzqz;
+
+    q0q0=q[0]*q[0];
+    q0qx=q[0]*q[1];
+    q0qy=q[0]*q[2];
+    q0qz=q[0]*q[3];
+    qxqx=q[1]*q[1];
+    qxqy=q[1]*q[2];
+    qxqz=q[1]*q[3];
+    qyqy=q[2]*q[2];
+    qyqz=q[2]*q[3];
+    qzqz=q[3]*q[3];
+
+    R[0]=q0q0+qxqx-qyqy-qzqz; R[1]=2.0*(qxqy-q0qz);     R[2]=2.0*(qxqz+q0qy);
+    R[3]=2.0*(qxqy+q0qz);     R[4]=q0q0-qxqx+qyqy-qzqz; R[5]=2.0*(qyqz-q0qx);
+    R[6]=2.0*(qxqz-q0qy);     R[7]=2.0*(qyqz+q0qx);     R[8]=q0q0-qxqx-qyqy+qzqz;
+}
+
+/*\}*/
+#endif /* DB_UTILITIES_ROTATION */
diff --git a/perftests/panorama/feature_stab/doc/Readme.txt b/perftests/panorama/feature_stab/doc/Readme.txt
new file mode 100644
index 0000000..fcd7c38
--- /dev/null
+++ b/perftests/panorama/feature_stab/doc/Readme.txt
@@ -0,0 +1,3 @@
+To generate the html docs, execute
+doxygen dbreg_API_doxyfile
+
diff --git a/perftests/panorama/feature_stab/doc/dbreg_API_doxyfile b/perftests/panorama/feature_stab/doc/dbreg_API_doxyfile
new file mode 100755
index 0000000..dc61a9c
--- /dev/null
+++ b/perftests/panorama/feature_stab/doc/dbreg_API_doxyfile
@@ -0,0 +1,1557 @@
+# Doxyfile 1.6.1
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+#       TAG = value [value, ...]
+# For lists items can also be appended using:
+#       TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all
+# text before the first occurrence of this tag. Doxygen uses libiconv (or the
+# iconv built into libc) for the transcoding. See
+# http://www.gnu.org/software/libiconv for the list of possible encodings.
+
+DOXYFILE_ENCODING      = UTF-8
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
+# by quotes) that should identify the project.
+
+PROJECT_NAME           =
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number.
+# This could be handy for archiving the generated documentation or
+# if some version control system is used.
+
+PROJECT_NUMBER         =
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
+# base path where the generated documentation will be put.
+# If a relative path is entered, it will be relative to the location
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY       = .
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
+# 4096 sub-directories (in 2 levels) under the output directory of each output
+# format and will distribute the generated files over these directories.
+# Enabling this option can be useful when feeding doxygen a huge amount of
+# source files, where putting all generated files in the same directory would
+# otherwise cause performance problems for the file system.
+
+CREATE_SUBDIRS         = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# The default language is English, other supported languages are:
+# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
+# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
+# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
+# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
+# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak,
+# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
+
+OUTPUT_LANGUAGE        = English
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
+# include brief member descriptions after the members that are listed in
+# the file and class documentation (similar to JavaDoc).
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
+# the brief description of a member or function before the detailed description.
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF           = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator
+# that is used to form the text in various listings. Each string
+# in this list, if found as the leading text of the brief description, will be
+# stripped from the text and the result after processing the whole list, is
+# used as the annotated text. Otherwise, the brief description is used as-is.
+# If left blank, the following values are used ("$name" is automatically
+# replaced with the name of the entity): "The $name class" "The $name widget"
+# "The $name file" "is" "provides" "specifies" "contains"
+# "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF       = "The $name class" \
+                         "The $name widget" \
+                         "The $name file" \
+                         is \
+                         provides \
+                         specifies \
+                         contains \
+                         represents \
+                         a \
+                         an \
+                         the
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# Doxygen will generate a detailed section even if there is only a brief
+# description.
+
+ALWAYS_DETAILED_SEC    = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+
+INLINE_INHERITED_MEMB  = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
+# path before files name in the file list and in the header files. If set
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES        = YES
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
+# can be used to strip a user-defined part of the path. Stripping is
+# only done if one of the specified strings matches the left-hand part of
+# the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the
+# path to strip.
+
+STRIP_FROM_PATH        = /Users/dimitri/doxygen/mail/1.5.7/doxywizard/
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
+# the path mentioned in the documentation of a class, which tells
+# the reader which header file to include in order to use a class.
+# If left blank only the name of the header file containing the class
+# definition is used. Otherwise one should specify the include paths that
+# are normally passed to the compiler using the -I flag.
+
+STRIP_FROM_INC_PATH    =
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
+# (but less readable) file names. This can be useful is your file systems
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES            = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
+# will interpret the first line (until the first dot) of a JavaDoc-style
+# comment as the brief description. If set to NO, the JavaDoc
+# comments will behave just like regular Qt-style comments
+# (thus requiring an explicit @brief command for a brief description.)
+
+JAVADOC_AUTOBRIEF      = NO
+
+# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
+# interpret the first line (until the first dot) of a Qt-style
+# comment as the brief description. If set to NO, the comments
+# will behave just like regular Qt-style comments (thus requiring
+# an explicit \brief command for a brief description.)
+
+QT_AUTOBRIEF           = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
+# treat a multi-line C++ special comment block (i.e. a block of //! or ///
+# comments) as a brief description. This used to be the default behaviour.
+# The new default is to treat a multi-line C++ comment block as a detailed
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
+# member inherits the documentation from any documented member that it
+# re-implements.
+
+INHERIT_DOCS           = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
+# a new page for each member. If set to NO, the documentation of a member will
+# be part of the file/class/namespace that contains it.
+
+SEPARATE_MEMBER_PAGES  = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab.
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE               = 8
+
+# This tag can be used to specify a number of aliases that acts
+# as commands in the documentation. An alias has the form "name=value".
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to
+# put the command \sideeffect (or @sideeffect) in the documentation, which
+# will result in a user-defined paragraph with heading "Side Effects:".
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES                =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
+# sources only. Doxygen will then generate output that is more tailored for C.
+# For instance, some of the names that are used will be different. The list
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C  = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
+# sources only. Doxygen will then generate output that is more tailored for
+# Java. For instance, namespaces will be presented as packages, qualified
+# scopes will look different, etc.
+
+OPTIMIZE_OUTPUT_JAVA   = NO
+
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources only. Doxygen will then generate output that is more tailored for
+# Fortran.
+
+OPTIMIZE_FOR_FORTRAN   = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for
+# VHDL.
+
+OPTIMIZE_OUTPUT_VHDL   = NO
+
+# Doxygen selects the parser to use depending on the extension of the files it parses.
+# With this tag you can assign which parser to use for a given extension.
+# Doxygen has a built-in mapping, but you can override or extend it using this tag.
+# The format is ext=language, where ext is a file extension, and language is one of
+# the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP,
+# Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat
+# .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran),
+# use: inc=Fortran f=C. Note that for custom extensions you also need to set
+# FILE_PATTERNS otherwise the files are not read by doxygen.
+
+EXTENSION_MAPPING      =
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should
+# set this tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
+# func(std::string) {}). This also make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+
+BUILTIN_STL_SUPPORT    = NO
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+
+CPP_CLI_SUPPORT        = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
+# Doxygen will parse them like normal C++ but will assume all classes use public
+# instead of private inheritance when no explicit protection keyword is present.
+
+SIP_SUPPORT            = NO
+
+# For Microsoft's IDL there are propget and propput attributes to indicate getter
+# and setter methods for a property. Setting this option to YES (the default)
+# will make doxygen to replace the get and set methods by a property in the
+# documentation. This will only work if the methods are indeed getting or
+# setting a simple type. If this is not the case, or you want to show the
+# methods anyway, you should set this option to NO.
+
+IDL_PROPERTY_SUPPORT   = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC   = NO
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
+# the same type (for instance a group of public functions) to be put as a
+# subgroup of that type (e.g. under the Public Functions section). Set it to
+# NO to prevent subgrouping. Alternatively, this can be done per class using
+# the \nosubgrouping command.
+
+SUBGROUPING            = YES
+
+# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
+# is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically
+# be useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+
+TYPEDEF_HIDES_STRUCT   = NO
+
+# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
+# determine which symbols to keep in memory and which to flush to disk.
+# When the cache is full, less often used symbols will be written to disk.
+# For small to medium size projects (<1000 input files) the default value is
+# probably good enough. For larger projects a too small cache size can cause
+# doxygen to be busy swapping symbols to and from disk most of the time
+# causing a significant performance penality.
+# If the system has enough physical memory increasing the cache will improve the
+# performance by keeping more symbols in memory. Note that the value works on
+# a logarithmic scale so increasing the size by one will rougly double the
+# memory usage. The cache size is given by this formula:
+# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
+# corresponding to a cache size of 2^16 = 65536 symbols
+
+SYMBOL_CACHE_SIZE      = 0
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available.
+# Private class members and static file members will be hidden unless
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL            = NO
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
+# will be included in the documentation.
+
+EXTRACT_PRIVATE        = NO
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file
+# will be included in the documentation.
+
+EXTRACT_STATIC         = NO
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
+# defined locally in source files will be included in the documentation.
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES  = YES
+
+# This flag is only useful for Objective-C code. When set to YES local
+# methods, which are defined in the implementation section but not in
+# the interface are included in the documentation.
+# If set to NO (the default) only methods in the interface are included.
+
+EXTRACT_LOCAL_METHODS  = NO
+
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base
+# name of the file that contains the anonymous namespace. By default
+# anonymous namespace are hidden.
+
+EXTRACT_ANON_NSPACES   = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
+# undocumented members of documented classes, files or namespaces.
+# If set to NO (the default) these members will be included in the
+# various overviews, but no documentation section is generated.
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS     = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy.
+# If set to NO (the default) these classes will be included in the various
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES     = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
+# friend (class|struct|union) declarations.
+# If set to NO (the default) these declarations will be included in the
+# documentation.
+
+HIDE_FRIEND_COMPOUNDS  = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
+# documentation blocks found inside the body of a function.
+# If set to NO (the default) these blocks will be appended to the
+# function's detailed documentation block.
+
+HIDE_IN_BODY_DOCS      = NO
+
+# The INTERNAL_DOCS tag determines if documentation
+# that is typed after a \internal command is included. If the tag is set
+# to NO (the default) then the documentation will be excluded.
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS          = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
+# file names in lower-case letters. If set to YES upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+
+CASE_SENSE_NAMES       = NO
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
+# will show members with their full class and namespace scopes in the
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES       = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
+# will put a list of the files that are included by a file in the documentation
+# of that file.
+
+SHOW_INCLUDE_FILES     = YES
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
+# is inserted in the documentation for inline members.
+
+INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
+# will sort the (detailed) documentation of file and class members
+# alphabetically by member name. If set to NO the members will appear in
+# declaration order.
+
+SORT_MEMBER_DOCS       = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
+# brief documentation of file, namespace and class members alphabetically
+# by member name. If set to NO (the default) the members will appear in
+# declaration order.
+
+SORT_BRIEF_DOCS        = NO
+
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
+# will sort the (brief and detailed) documentation of class members so that
+# constructors and destructors are listed first. If set to NO (the default)
+# the constructors will appear in the respective orders defined by
+# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
+# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
+# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
+# hierarchy of group names into alphabetical order. If set to NO (the default)
+# the group names will appear in their defined order.
+
+SORT_GROUP_NAMES       = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
+# sorted by fully-qualified names, including namespaces. If set to
+# NO (the default), the class list will be sorted only by class name,
+# not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the
+# alphabetical list.
+
+SORT_BY_SCOPE_NAME     = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or
+# disable (NO) the todo list. This list is created by putting \todo
+# commands in the documentation.
+
+GENERATE_TODOLIST      = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or
+# disable (NO) the test list. This list is created by putting \test
+# commands in the documentation.
+
+GENERATE_TESTLIST      = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or
+# disable (NO) the bug list. This list is created by putting \bug
+# commands in the documentation.
+
+GENERATE_BUGLIST       = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
+# disable (NO) the deprecated list. This list is created by putting
+# \deprecated commands in the documentation.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS       =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
+# the initial value of a variable or define consists of for it to appear in
+# the documentation. If the initializer consists of more lines than specified
+# here it will be hidden. Use a value of 0 to hide initializers completely.
+# The appearance of the initializer of individual variables and defines in the
+# documentation can be controlled using \showinitializer or \hideinitializer
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES  = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
+# at the bottom of the documentation of classes and structs. If set to YES the
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES        = YES
+
+# If the sources in your project are distributed over multiple directories
+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
+# in the documentation. The default is NO.
+
+SHOW_DIRECTORIES       = NO
+
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
+# This will remove the Files entry from the Quick Index and from the
+# Folder Tree View (if specified). The default is YES.
+
+SHOW_FILES             = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
+# Namespaces page.  This will remove the Namespaces entry from the Quick Index
+# and from the Folder Tree View (if specified). The default is YES.
+
+SHOW_NAMESPACES        = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command <command> <input-file>, where <command> is the value of
+# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
+# provided by doxygen. Whatever the program writes to standard output
+# is used as the file version. See the manual for examples.
+
+FILE_VERSION_FILTER    =
+
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by
+# doxygen. The layout file controls the global structure of the generated output files
+# in an output format independent way. The create the layout file that represents
+# doxygen's defaults, run doxygen with the -l option. You can optionally specify a
+# file name after the option, if omitted DoxygenLayout.xml will be used as the name
+# of the layout file.
+
+LAYOUT_FILE            =
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET                  = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated by doxygen. Possible values are YES and NO. If left blank
+# NO is used.
+
+WARNINGS               = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED   = YES
+
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some
+# parameters in a documented function, or documenting parameters that
+# don't exist or using markup commands wrongly.
+
+WARN_IF_DOC_ERROR      = YES
+
+# This WARN_NO_PARAMDOC option can be abled to get warnings for
+# functions that are documented, but have no documentation for their parameters
+# or return value. If set to NO (the default) doxygen will only warn about
+# wrong or incomplete parameter documentation, but not about the absence of
+# documentation.
+
+WARN_NO_PARAMDOC       = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that
+# doxygen can produce. The string should contain the $file, $line, and $text
+# tags, which will be replaced by the file and line number from which the
+# warning originated and the warning text. Optionally the format may contain
+# $version, which will be replaced by the version of the file (if it could
+# be obtained via FILE_VERSION_FILTER)
+
+WARN_FORMAT            = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning
+# and error messages should be written. If left blank the output is written
+# to stderr.
+
+WARN_LOGFILE           =
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain
+# documented source files. You may enter file names like "myfile.cpp" or
+# directories like "/usr/src/myproject". Separate the files or directories
+# with spaces.
+
+INPUT                  = ../src/dbreg/dbreg.h
+
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
+# also the default input encoding. Doxygen uses libiconv (or the iconv built
+# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
+# the list of possible encodings.
+
+INPUT_ENCODING         = UTF-8
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank the following patterns are tested:
+# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
+# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
+
+FILE_PATTERNS          = *.c \
+                         *.cc \
+                         *.cxx \
+                         *.cpp \
+                         *.c++ \
+                         *.d \
+                         *.java \
+                         *.ii \
+                         *.ixx \
+                         *.ipp \
+                         *.i++ \
+                         *.inl \
+                         *.h \
+                         *.hh \
+                         *.hxx \
+                         *.hpp \
+                         *.h++ \
+                         *.idl \
+                         *.odl \
+                         *.cs \
+                         *.php \
+                         *.php3 \
+                         *.inc \
+                         *.m \
+                         *.mm \
+                         *.dox \
+                         *.py \
+                         *.f90 \
+                         *.f \
+                         *.vhd \
+                         *.vhdl
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories
+# should be searched for input files as well. Possible values are YES and NO.
+# If left blank NO is used.
+
+RECURSIVE              = NO
+
+# The EXCLUDE tag can be used to specify files and/or directories that should
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE                =
+
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
+# directories that are symbolic links (a Unix filesystem feature) are excluded
+# from the input.
+
+EXCLUDE_SYMLINKS       = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories. Note that the wildcards are matched
+# against the file with absolute path, so to exclude all test directories
+# for example use the pattern */test/*
+
+EXCLUDE_PATTERNS       =
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# AClass::ANamespace, ANamespace::*Test
+
+EXCLUDE_SYMBOLS        =
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or
+# directories that contain example code fragments that are included (see
+# the \include command).
+
+EXAMPLE_PATH           =
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank all files are included.
+
+EXAMPLE_PATTERNS       = *
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude
+# commands irrespective of the value of the RECURSIVE tag.
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE      = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or
+# directories that contain image that are included in the documentation (see
+# the \image command).
+
+IMAGE_PATH             =
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command <filter> <input-file>, where <filter>
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
+# input file. Doxygen will then use the output that the filter program writes
+# to standard output.  If FILTER_PATTERNS is specified, this tag will be
+# ignored.
+
+INPUT_FILTER           =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis.  Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match.  The filters are a list of the form:
+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
+# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
+# is applied to all files.
+
+FILTER_PATTERNS        =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will be used to filter the input files when producing source
+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+
+FILTER_SOURCE_FILES    = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will
+# be generated. Documented entities will be cross-referenced with these sources.
+# Note: To get rid of all source code in the generated output, make sure also
+# VERBATIM_HEADERS is set to NO.
+
+SOURCE_BROWSER         = NO
+
+# Setting the INLINE_SOURCES tag to YES will include the body
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES         = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
+# doxygen to hide any special comment blocks from generated source code
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS    = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES
+# then for each documented function all documented
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = NO
+
+# If the REFERENCES_RELATION tag is set to YES
+# then for each documented function all documented entities
+# called/used by that function will be listed.
+
+REFERENCES_RELATION    = NO
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
+# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
+# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
+# link to the source code.  Otherwise they will link to the documentation.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code
+# will point to the HTML generated by the htags(1) tool instead of doxygen
+# built-in source browser. The htags tool is part of GNU's global source
+# tagging system (see http://www.gnu.org/software/global/global.html). You
+# will need version 4.8.6 or higher.
+
+USE_HTAGS              = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
+# will generate a verbatim copy of the header file for each class for
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS       = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
+# of all compounds will be generated. Enable this if the project
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX     = NO
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX    = 5
+
+# In case all classes in a project start with a common prefix, all
+# classes will be put under the same header in the alphabetical index.
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX          =
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
+# generate HTML output.
+
+GENERATE_HTML          = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT            = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
+# doxygen will generate files with .html extension.
+
+HTML_FILE_EXTENSION    = .html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard header.
+
+HTML_HEADER            =
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard footer.
+
+HTML_FOOTER            =
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
+# style sheet that is used by each HTML page. It can be used to
+# fine-tune the look of the HTML output. If the tag is left blank doxygen
+# will generate a default style sheet. Note that doxygen will try to copy
+# the style sheet file to the HTML output directory, so don't put your own
+# stylesheet in the HTML output directory as well, or it will be erased!
+
+HTML_STYLESHEET        =
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
+# files or namespaces will be aligned in HTML using tables. If set to
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS     = YES
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded. For this to work a browser that supports
+# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
+# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
+
+HTML_DYNAMIC_SECTIONS  = NO
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files
+# will be generated that can be used as input for Apple's Xcode 3
+# integrated development environment, introduced with OSX 10.5 (Leopard).
+# To create a documentation set, doxygen will generate a Makefile in the
+# HTML output directory. Running make will produce the docset in that
+# directory and running "make install" will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
+# it at startup.
+# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information.
+
+GENERATE_DOCSET        = NO
+
+# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
+# feed. A documentation feed provides an umbrella under which multiple
+# documentation sets from a single provider (such as a company or product suite)
+# can be grouped.
+
+DOCSET_FEEDNAME        = "Doxygen generated docs"
+
+# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
+# should uniquely identify the documentation set bundle. This should be a
+# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
+# will append .docset to the name.
+
+DOCSET_BUNDLE_ID       = org.doxygen.Project
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files
+# will be generated that can be used as input for tools like the
+# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP      = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
+# be used to specify the file name of the resulting .chm file. You
+# can add a path in front of the file if the result should not be
+# written to the html output directory.
+
+CHM_FILE               =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
+# be used to specify the location (absolute path including file name) of
+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
+# the HTML help compiler on the generated index.hhp.
+
+HHC_LOCATION           =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
+# controls if a separate .chi index file is generated (YES) or that
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI           = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
+# is used to encode HtmlHelp index (hhk), content (hhc) and project file
+# content.
+
+CHM_INDEX_ENCODING     =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
+# controls whether a binary table of contents is generated (YES) or a
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members
+# to the contents of the HTML help documentation and to the tree view.
+
+TOC_EXPAND             = NO
+
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER
+# are set, an additional index file will be generated that can be used as input for
+# Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated
+# HTML documentation.
+
+GENERATE_QHP           = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
+# be used to specify the file name of the resulting .qch file.
+# The path specified is relative to the HTML output folder.
+
+QCH_FILE               =
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating
+# Qt Help Project output. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#namespace
+
+QHP_NAMESPACE          =
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
+# Qt Help Project output. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#virtual-folders
+
+QHP_VIRTUAL_FOLDER     = doc
+
+# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add.
+# For more information please see
+# http://doc.trolltech.com/qthelpproject.html#custom-filters
+
+QHP_CUST_FILTER_NAME   =
+
+# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see
+# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>.
+
+QHP_CUST_FILTER_ATTRS  =
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's
+# filter section matches.
+# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">Qt Help Project / Filter Attributes</a>.
+
+QHP_SECT_FILTER_ATTRS  =
+
+# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
+# be used to specify the location of Qt's qhelpgenerator.
+# If non-empty doxygen will try to run qhelpgenerator on the generated
+# .qhp file.
+
+QHG_LOCATION           =
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
+# top of each HTML page. The value NO (the default) enables the index and
+# the value YES disables it.
+
+DISABLE_INDEX          = NO
+
+# This tag can be used to set the number of enum values (range [1..20])
+# that doxygen will group on one line in the generated HTML documentation.
+
+ENUM_VALUES_PER_LINE   = 4
+
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information.
+# If the tag value is set to YES, a side panel will be generated
+# containing a tree-like index structure (just like the one that
+# is generated for HTML Help). For this to work a browser that supports
+# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
+# Windows users are probably better off using the HTML help feature.
+
+GENERATE_TREEVIEW      = NO
+
+# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
+# and Class Hierarchy pages using a tree view instead of an ordered list.
+
+USE_INLINE_TREES       = NO
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
+# used to set the initial width (in pixels) of the frame in which the tree
+# is shown.
+
+TREEVIEW_WIDTH         = 250
+
+# Use this tag to change the font size of Latex formulas included
+# as images in the HTML documentation. The default is 10. Note that
+# when you change the font size after a successful doxygen run you need
+# to manually remove any form_*.png images from the HTML output directory
+# to force them to be regenerated.
+
+FORMULA_FONTSIZE       = 10
+
+# When the SEARCHENGINE tag is enable doxygen will generate a search box
+# for the HTML output. The underlying search engine uses javascript
+# and DHTML and should work on any modern browser. Note that when using
+# HTML help (GENERATE_HTMLHELP) or Qt help (GENERATE_QHP)
+# there is already a search function so this one should typically
+# be disabled.
+
+SEARCHENGINE           = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
+# generate Latex output.
+
+GENERATE_LATEX         = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT           = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked. If left blank `latex' will be used as the default command name.
+
+LATEX_CMD_NAME         = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
+# generate index for LaTeX. If left blank `makeindex' will be used as the
+# default command name.
+
+MAKEINDEX_CMD_NAME     = makeindex
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
+# LaTeX documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used
+# by the printer. Possible values are: a4, a4wide, letter, legal and
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE             = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES         =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
+# the generated latex document. The header should contain everything until
+# the first chapter. If it is left blank doxygen will generate a
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER           =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will
+# contain links (just like the HTML output) instead of page references
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS         = YES
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
+# plain latex in the generated Makefile. Set this option to YES to get a
+# higher quality PDF documentation.
+
+USE_PDFLATEX           = YES
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
+# command to the generated LaTeX files. This will instruct LaTeX to keep
+# running if errors occur, instead of asking the user for help.
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE        = NO
+
+# If LATEX_HIDE_INDICES is set to YES then doxygen will not
+# include the index chapters (such as File Index, Compound Index, etc.)
+# in the output.
+
+LATEX_HIDE_INDICES     = NO
+
+# If LATEX_SOURCE_CODE is set to YES then doxygen will include
+# source code with syntax highlighting in the LaTeX output.
+# Note that which sources are shown also depends on other settings
+# such as SOURCE_BROWSER.
+
+LATEX_SOURCE_CODE      = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
+# The RTF output is optimized for Word 97 and may not look very pretty with
+# other RTF readers or editors.
+
+GENERATE_RTF           = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT             = rtf
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
+# RTF documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
+# will contain hyperlink fields. The RTF file will
+# contain links (just like the HTML output) instead of page references.
+# This makes the output suitable for online browsing using WORD or other
+# programs which support those fields.
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS         = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's
+# config file, i.e. a series of assignments. You only have to provide
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE    =
+
+# Set optional variables used in the generation of an rtf document.
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE    =
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
+# generate man pages
+
+GENERATE_MAN           = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT             = man
+
+# The MAN_EXTENSION tag determines the extension that is added to
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION          = .3
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
+# then it will generate one additional man file for each entity
+# documented in the real man page(s). These additional files
+# only source the real man page, but without them the man command
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS              = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will
+# generate an XML file that captures the structure of
+# the code including all documentation.
+
+GENERATE_XML           = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `xml' will be used as the default path.
+
+XML_OUTPUT             = xml
+
+# The XML_SCHEMA tag can be used to specify an XML schema,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_SCHEMA             =
+
+# The XML_DTD tag can be used to specify an XML DTD,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_DTD                =
+
+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
+# dump the program listings (including syntax highlighting
+# and cross-referencing information) to the XML output. Note that
+# enabling this will significantly increase the size of the XML output.
+
+XML_PROGRAMLISTING     = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
+# generate an AutoGen Definitions (see autogen.sf.net) file
+# that captures the structure of the code including all
+# documentation. Note that this feature is still experimental
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF   = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES Doxygen will
+# generate a Perl module file that captures the structure of
+# the code including all documentation. Note that this
+# feature is still experimental and incomplete at the
+# moment.
+
+GENERATE_PERLMOD       = NO
+
+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
+# the necessary Makefile rules, Perl scripts and LaTeX code to be able
+# to generate PDF and DVI output from the Perl module output.
+
+PERLMOD_LATEX          = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
+# nicely formatted so it can be parsed by a human reader.  This is useful
+# if you want to understand what is going on.  On the other hand, if this
+# tag is set to NO the size of the Perl module output will be much smaller
+# and Perl will parse it just the same.
+
+PERLMOD_PRETTY         = YES
+
+# The names of the make variables in the generated doxyrules.make file
+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
+# This is useful so different doxyrules.make files included by the same
+# Makefile don't overwrite each other's variables.
+
+PERLMOD_MAKEVAR_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
+# evaluate all C-preprocessor directives found in the sources and include
+# files.
+
+ENABLE_PREPROCESSING   = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
+# names in the source code. If set to NO (the default) only conditional
+# compilation will be performed. Macro expansion can be done in a controlled
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION        = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
+# then the macro expansion is limited to the macros specified with the
+# PREDEFINED and EXPAND_AS_DEFINED tags.
+
+EXPAND_ONLY_PREDEF     = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES        = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by
+# the preprocessor.
+
+INCLUDE_PATH           =
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will
+# be used.
+
+INCLUDE_FILE_PATTERNS  =
+
+# The PREDEFINED tag can be used to specify one or more macro names that
+# are defined before the preprocessor is started (similar to the -D option of
+# gcc). The argument of the tag is a list of macros of the form: name
+# or name=definition (no spaces). If the definition and the = are
+# omitted =1 is assumed. To prevent a macro definition from being
+# undefined via #undef or recursively expanded use the := operator
+# instead of the = operator.
+
+PREDEFINED             =
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
+# this tag can be used to specify a list of macro names that should be expanded.
+# The macro definition that is found in the sources will be used.
+# Use the PREDEFINED tag if you want to use a different macro definition.
+
+EXPAND_AS_DEFINED      =
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
+# doxygen's preprocessor will remove all function-like macros that are alone
+# on a line, have an all uppercase name, and do not end with a semicolon. Such
+# function macros are typically used for boiler-plate code, and will confuse
+# the parser if not removed.
+
+SKIP_FUNCTION_MACROS   = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES option can be used to specify one or more tagfiles.
+# Optionally an initial location of the external documentation
+# can be added for each tagfile. The format of a tag file without
+# this location is as follows:
+#   TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+#   TAGFILES = file1=loc1 "file2 = loc2" ...
+# where "loc1" and "loc2" can be relative or absolute paths or
+# URLs. If a location is present for each tag, the installdox tool
+# does not have to be run to correct the links.
+# Note that each tag file must have a unique name
+# (where the name does NOT include the path)
+# If a tag file is not located in the directory in which doxygen
+# is run, you must also specify the path to the tagfile here.
+
+TAGFILES               =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE       =
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed
+# in the class index. If set to NO only the inherited external classes
+# will be listed.
+
+ALLEXTERNALS           = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will
+# be listed.
+
+EXTERNAL_GROUPS        = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH              = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
+# or super classes. Setting the tag to NO turns the diagrams off. Note that
+# this option is superseded by the HAVE_DOT option below. This is only a
+# fallback. It is recommended to install and use dot, since it yields more
+# powerful graphs.
+
+CLASS_DIAGRAMS         = YES
+
+# You can define message sequence charts within doxygen comments using the \msc
+# command. Doxygen will then run the mscgen tool (see
+# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
+# documentation. The MSCGEN_PATH tag allows you to specify the directory where
+# the mscgen tool resides. If left empty the tool is assumed to be found in the
+# default search path.
+
+MSCGEN_PATH            =
+
+# If set to YES, the inheritance and collaboration graphs will hide
+# inheritance and usage relations if the target is undocumented
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS   = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz, a graph visualization
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT               = NO
+
+# By default doxygen will write a font called FreeSans.ttf to the output
+# directory and reference it in all dot files that doxygen generates. This
+# font does not include all possible unicode characters however, so when you need
+# these (or just want a differently looking font) you can specify the font name
+# using DOT_FONTNAME. You need need to make sure dot is able to find the font,
+# which can be done by putting it in a standard location or by setting the
+# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory
+# containing the font.
+
+DOT_FONTNAME           = FreeSans
+
+# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
+# The default size is 10pt.
+
+DOT_FONTSIZE           = 10
+
+# By default doxygen will tell dot to use the output directory to look for the
+# FreeSans.ttf font (which doxygen will put there itself). If you specify a
+# different font using DOT_FONTNAME you can set the path where dot
+# can find it using this tag.
+
+DOT_FONTPATH           =
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect inheritance relations. Setting this tag to YES will force the
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH            = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect implementation dependencies (inheritance, containment, and
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH    = YES
+
+# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for groups, showing the direct groups dependencies
+
+GROUP_GRAPHS           = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+
+UML_LOOK               = NO
+
+# If set to YES, the inheritance and collaboration graphs will show the
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS     = NO
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
+# tags are set to YES then doxygen will generate a graph for each documented
+# file showing the direct and indirect include dependencies of the file with
+# other documented files.
+
+INCLUDE_GRAPH          = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
+# documented header file showing the documented files that directly or
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH      = YES
+
+# If the CALL_GRAPH and HAVE_DOT options are set to YES then
+# doxygen will generate a call dependency graph for every global function
+# or class method. Note that enabling this option will significantly increase
+# the time of a run. So in most cases it will be better to enable call graphs
+# for selected functions only using the \callgraph command.
+
+CALL_GRAPH             = NO
+
+# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
+# doxygen will generate a caller dependency graph for every global function
+# or class method. Note that enabling this option will significantly increase
+# the time of a run. So in most cases it will be better to enable caller
+# graphs for selected functions only using the \callergraph command.
+
+CALLER_GRAPH           = NO
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
+# will graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY    = YES
+
+# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
+# then doxygen will show the dependencies a directory has on other directories
+# in a graphical way. The dependency relations are determined by the #include
+# relations between the files in the directories.
+
+DIRECTORY_GRAPH        = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. Possible values are png, jpg, or gif
+# If left blank png will be used.
+
+DOT_IMAGE_FORMAT       = png
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+
+DOT_PATH               =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the
+# \dotfile command).
+
+DOTFILE_DIRS           =
+
+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
+# nodes that will be shown in the graph. If the number of nodes in a graph
+# becomes larger than this value, doxygen will truncate the graph, which is
+# visualized by representing a node as a red box. Note that doxygen if the
+# number of direct children of the root node in a graph is already larger than
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
+# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+
+DOT_GRAPH_MAX_NODES    = 50
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
+# graphs generated by dot. A depth value of 3 means that only nodes reachable
+# from the root by following a path via at most 3 edges will be shown. Nodes
+# that lay further from the root node will be omitted. Note that setting this
+# option to 1 or 2 may greatly reduce the computation time needed for large
+# code bases. Also note that the size of a graph can be further restricted by
+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+
+MAX_DOT_GRAPH_DEPTH    = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, because dot on Windows does not
+# seem to support this out of the box. Warning: Depending on the platform used,
+# enabling this option may lead to badly anti-aliased labels on the edges of
+# a graph (i.e. they become hard to read).
+
+DOT_TRANSPARENT        = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10)
+# support this, this feature is disabled by default.
+
+DOT_MULTI_TARGETS      = NO
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
+# generate a legend page explaining the meaning of the various boxes and
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
+# remove the intermediate dot files that are used to generate
+# the various graphs.
+
+DOT_CLEANUP            = YES
diff --git a/perftests/panorama/feature_stab/src/dbreg/dbreg.cpp b/perftests/panorama/feature_stab/src/dbreg/dbreg.cpp
new file mode 100644
index 0000000..da06aa2
--- /dev/null
+++ b/perftests/panorama/feature_stab/src/dbreg/dbreg.cpp
@@ -0,0 +1,794 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+// $Id: dbreg.cpp,v 1.31 2011/06/17 14:04:32 mbansal Exp $
+#include "dbreg.h"
+#include <string.h>
+#include <stdio.h>
+
+
+#if PROFILE
+#endif
+
+//#include <iostream>
+
+db_FrameToReferenceRegistration::db_FrameToReferenceRegistration() :
+  m_initialized(false),m_nr_matches(0),m_over_allocation(256),m_nr_bins(20),m_max_cost_pix(30), m_quarter_resolution(false)
+{
+  m_reference_image = NULL;
+  m_aligned_ins_image = NULL;
+
+  m_quarter_res_image = NULL;
+  m_horz_smooth_subsample_image = NULL;
+
+  m_x_corners_ref = NULL;
+  m_y_corners_ref = NULL;
+
+  m_x_corners_ins = NULL;
+  m_y_corners_ins = NULL;
+
+  m_match_index_ref = NULL;
+  m_match_index_ins = NULL;
+
+  m_inlier_indices = NULL;
+
+  m_num_inlier_indices = 0;
+
+  m_temp_double = NULL;
+  m_temp_int = NULL;
+
+  m_corners_ref = NULL;
+  m_corners_ins = NULL;
+
+  m_sq_cost = NULL;
+  m_cost_histogram = NULL;
+
+  profile_string = NULL;
+
+  db_Identity3x3(m_K);
+  db_Identity3x3(m_H_ref_to_ins);
+  db_Identity3x3(m_H_dref_to_ref);
+
+  m_sq_cost_computed = false;
+  m_reference_set = false;
+
+  m_reference_update_period = 0;
+  m_nr_frames_processed = 0;
+
+  return;
+}
+
+db_FrameToReferenceRegistration::~db_FrameToReferenceRegistration()
+{
+  Clean();
+}
+
+void db_FrameToReferenceRegistration::Clean()
+{
+  if ( m_reference_image )
+    db_FreeImage_u(m_reference_image,m_im_height);
+
+  if ( m_aligned_ins_image )
+    db_FreeImage_u(m_aligned_ins_image,m_im_height);
+
+  if ( m_quarter_res_image )
+  {
+    db_FreeImage_u(m_quarter_res_image, m_im_height);
+  }
+
+  if ( m_horz_smooth_subsample_image )
+  {
+    db_FreeImage_u(m_horz_smooth_subsample_image, m_im_height*2);
+  }
+
+  delete [] m_x_corners_ref;
+  delete [] m_y_corners_ref;
+
+  delete [] m_x_corners_ins;
+  delete [] m_y_corners_ins;
+
+  delete [] m_match_index_ref;
+  delete [] m_match_index_ins;
+
+  delete [] m_temp_double;
+  delete [] m_temp_int;
+
+  delete [] m_corners_ref;
+  delete [] m_corners_ins;
+
+  delete [] m_sq_cost;
+  delete [] m_cost_histogram;
+
+  delete [] m_inlier_indices;
+
+  if(profile_string)
+    delete [] profile_string;
+
+  m_reference_image = NULL;
+  m_aligned_ins_image = NULL;
+
+  m_quarter_res_image = NULL;
+  m_horz_smooth_subsample_image = NULL;
+
+  m_x_corners_ref = NULL;
+  m_y_corners_ref = NULL;
+
+  m_x_corners_ins = NULL;
+  m_y_corners_ins = NULL;
+
+  m_match_index_ref = NULL;
+  m_match_index_ins = NULL;
+
+  m_inlier_indices = NULL;
+
+  m_temp_double = NULL;
+  m_temp_int = NULL;
+
+  m_corners_ref = NULL;
+  m_corners_ins = NULL;
+
+  m_sq_cost = NULL;
+  m_cost_histogram = NULL;
+}
+
+void db_FrameToReferenceRegistration::Init(int width, int height,
+                       int    homography_type,
+                       int    max_iterations,
+                       bool   linear_polish,
+                       bool   quarter_resolution,
+                       double scale,
+                       unsigned int reference_update_period,
+                       bool   do_motion_smoothing,
+                       double motion_smoothing_gain,
+                       int    nr_samples,
+                       int    chunk_size,
+                       int    cd_target_nr_corners,
+                       double cm_max_disparity,
+                           bool   cm_use_smaller_matching_window,
+                       int    cd_nr_horz_blocks,
+                       int    cd_nr_vert_blocks
+                       )
+{
+  Clean();
+
+  m_reference_update_period = reference_update_period;
+  m_nr_frames_processed = 0;
+
+  m_do_motion_smoothing = do_motion_smoothing;
+  m_motion_smoothing_gain = motion_smoothing_gain;
+
+  m_stab_smoother.setSmoothingFactor(m_motion_smoothing_gain);
+
+  m_quarter_resolution = quarter_resolution;
+
+  profile_string = new char[10240];
+
+  if (m_quarter_resolution == true)
+  {
+    width = width/2;
+    height = height/2;
+
+    m_horz_smooth_subsample_image = db_AllocImage_u(width,height*2,m_over_allocation);
+    m_quarter_res_image = db_AllocImage_u(width,height,m_over_allocation);
+  }
+
+  m_im_width = width;
+  m_im_height = height;
+
+  double temp[9];
+  db_Approx3DCalMat(m_K,temp,m_im_width,m_im_height);
+
+  m_homography_type = homography_type;
+  m_max_iterations = max_iterations;
+  m_scale = 2/(m_K[0]+m_K[4]);
+  m_nr_samples = nr_samples;
+  m_chunk_size = chunk_size;
+
+  double outlier_t1 = 5.0;
+
+  m_outlier_t2 = outlier_t1*outlier_t1;//*m_scale*m_scale;
+
+  m_current_is_reference = false;
+
+  m_linear_polish = linear_polish;
+
+  m_reference_image = db_AllocImage_u(m_im_width,m_im_height,m_over_allocation);
+  m_aligned_ins_image = db_AllocImage_u(m_im_width,m_im_height,m_over_allocation);
+
+  // initialize feature detection and matching:
+  //m_max_nr_corners = m_cd.Init(m_im_width,m_im_height,cd_target_nr_corners,cd_nr_horz_blocks,cd_nr_vert_blocks,0.0,0.0);
+  m_max_nr_corners = m_cd.Init(m_im_width,m_im_height,cd_target_nr_corners,cd_nr_horz_blocks,cd_nr_vert_blocks,DB_DEFAULT_ABS_CORNER_THRESHOLD/500.0,0.0);
+
+    int use_21 = 0;
+  m_max_nr_matches = m_cm.Init(m_im_width,m_im_height,cm_max_disparity,m_max_nr_corners,DB_DEFAULT_NO_DISPARITY,cm_use_smaller_matching_window,use_21);
+
+  // allocate space for corner feature locations for reference and inspection images:
+  m_x_corners_ref = new double [m_max_nr_corners];
+  m_y_corners_ref = new double [m_max_nr_corners];
+
+  m_x_corners_ins = new double [m_max_nr_corners];
+  m_y_corners_ins = new double [m_max_nr_corners];
+
+  // allocate space for match indices:
+  m_match_index_ref = new int [m_max_nr_matches];
+  m_match_index_ins = new int [m_max_nr_matches];
+
+  m_temp_double = new double [12*DB_DEFAULT_NR_SAMPLES+10*m_max_nr_matches];
+  m_temp_int = new int [db_maxi(DB_DEFAULT_NR_SAMPLES,m_max_nr_matches)];
+
+  // allocate space for homogenous image points:
+  m_corners_ref = new double [3*m_max_nr_corners];
+  m_corners_ins = new double [3*m_max_nr_corners];
+
+  // allocate cost array and histogram:
+  m_sq_cost = new double [m_max_nr_matches];
+  m_cost_histogram = new int [m_nr_bins];
+
+  // reserve array:
+  //m_inlier_indices.reserve(m_max_nr_matches);
+  m_inlier_indices = new int[m_max_nr_matches];
+
+  m_initialized = true;
+
+  m_max_inlier_count = 0;
+}
+
+
+#define MB 0
+// Save the reference image, detect features and update the dref-to-ref transformation
+int db_FrameToReferenceRegistration::UpdateReference(const unsigned char * const * im, bool subsample, bool detect_corners)
+{
+  double temp[9];
+  db_Multiply3x3_3x3(temp,m_H_dref_to_ref,m_H_ref_to_ins);
+  db_Copy9(m_H_dref_to_ref,temp);
+
+  const unsigned char * const * imptr = im;
+
+  if (m_quarter_resolution && subsample)
+  {
+    GenerateQuarterResImage(im);
+    imptr = m_quarter_res_image;
+  }
+
+  // save the reference image, detect features and quit
+  db_CopyImage_u(m_reference_image,imptr,m_im_width,m_im_height,m_over_allocation);
+
+  if(detect_corners)
+  {
+    #if MB
+    m_cd.DetectCorners(imptr, m_x_corners_ref,m_y_corners_ref,&m_nr_corners_ref);
+    int nr = 0;
+    for(int k=0; k<m_nr_corners_ref; k++)
+    {
+        if(m_x_corners_ref[k]>m_im_width/3)
+        {
+            m_x_corners_ref[nr] = m_x_corners_ref[k];
+            m_y_corners_ref[nr] = m_y_corners_ref[k];
+            nr++;
+        }
+
+    }
+    m_nr_corners_ref = nr;
+    #else
+    m_cd.DetectCorners(imptr, m_x_corners_ref,m_y_corners_ref,&m_nr_corners_ref);
+    #endif
+  }
+  else
+  {
+    m_nr_corners_ref = m_nr_corners_ins;
+
+    for(int k=0; k<m_nr_corners_ins; k++)
+    {
+        m_x_corners_ref[k] = m_x_corners_ins[k];
+        m_y_corners_ref[k] = m_y_corners_ins[k];
+    }
+
+  }
+
+  db_Identity3x3(m_H_ref_to_ins);
+
+  m_max_inlier_count = 0;   // Reset to 0 as no inliers seen until now
+  m_sq_cost_computed = false;
+  m_reference_set = true;
+  m_current_is_reference = true;
+  return 1;
+}
+
+void db_FrameToReferenceRegistration::Get_H_dref_to_ref(double H[9])
+{
+  db_Copy9(H,m_H_dref_to_ref);
+}
+
+void db_FrameToReferenceRegistration::Get_H_dref_to_ins(double H[9])
+{
+  db_Multiply3x3_3x3(H,m_H_dref_to_ref,m_H_ref_to_ins);
+}
+
+void db_FrameToReferenceRegistration::Set_H_dref_to_ins(double H[9])
+{
+    double H_ins_to_ref[9];
+
+    db_Identity3x3(H_ins_to_ref);   // Ensure it has proper values
+    db_InvertAffineTransform(H_ins_to_ref,m_H_ref_to_ins);  // Invert to get ins to ref
+    db_Multiply3x3_3x3(m_H_dref_to_ref,H,H_ins_to_ref); // Update dref to ref using the input H from dref to ins
+}
+
+
+void db_FrameToReferenceRegistration::ResetDisplayReference()
+{
+  db_Identity3x3(m_H_dref_to_ref);
+}
+
+bool db_FrameToReferenceRegistration::NeedReferenceUpdate()
+{
+  // If less than 50% of the starting number of inliers left, then its time to update the reference.
+  if(m_max_inlier_count>0 && float(m_num_inlier_indices)/float(m_max_inlier_count)<0.5)
+    return true;
+  else
+    return false;
+}
+
+int db_FrameToReferenceRegistration::AddFrame(const unsigned char * const * im, double H[9],bool force_reference,bool prewarp)
+{
+  m_current_is_reference = false;
+  if(!m_reference_set || force_reference)
+    {
+      db_Identity3x3(m_H_ref_to_ins);
+      db_Copy9(H,m_H_ref_to_ins);
+
+      UpdateReference(im,true,true);
+      return 0;
+    }
+
+  const unsigned char * const * imptr = im;
+
+  if (m_quarter_resolution)
+  {
+    if (m_quarter_res_image)
+    {
+      GenerateQuarterResImage(im);
+    }
+
+    imptr = (const unsigned char * const* )m_quarter_res_image;
+  }
+
+  double H_last[9];
+  db_Copy9(H_last,m_H_ref_to_ins);
+  db_Identity3x3(m_H_ref_to_ins);
+
+  m_sq_cost_computed = false;
+
+  // detect corners on inspection image and match to reference image features:s
+
+  // @jke - Adding code to time the functions.  TODO: Remove after test
+#if PROFILE
+  double iTimer1, iTimer2;
+  char str[255];
+  strcpy(profile_string,"\n");
+  sprintf(str,"[%dx%d] %p\n",m_im_width,m_im_height,im);
+  strcat(profile_string, str);
+#endif
+
+  // @jke - Adding code to time the functions.  TODO: Remove after test
+#if PROFILE
+  iTimer1 = now_ms();
+#endif
+  m_cd.DetectCorners(imptr, m_x_corners_ins,m_y_corners_ins,&m_nr_corners_ins);
+  // @jke - Adding code to time the functions.  TODO: Remove after test
+# if PROFILE
+  iTimer2 = now_ms();
+  double elapsedTimeCorner = iTimer2 - iTimer1;
+  sprintf(str,"Corner Detection [%d corners] = %g ms\n",m_nr_corners_ins, elapsedTimeCorner);
+  strcat(profile_string, str);
+#endif
+
+  // @jke - Adding code to time the functions.  TODO: Remove after test
+#if PROFILE
+  iTimer1 = now_ms();
+#endif
+    if(prewarp)
+  m_cm.Match(m_reference_image,imptr,m_x_corners_ref,m_y_corners_ref,m_nr_corners_ref,
+         m_x_corners_ins,m_y_corners_ins,m_nr_corners_ins,
+         m_match_index_ref,m_match_index_ins,&m_nr_matches,H,0);
+    else
+  m_cm.Match(m_reference_image,imptr,m_x_corners_ref,m_y_corners_ref,m_nr_corners_ref,
+         m_x_corners_ins,m_y_corners_ins,m_nr_corners_ins,
+         m_match_index_ref,m_match_index_ins,&m_nr_matches);
+  // @jke - Adding code to time the functions.  TODO: Remove after test
+# if PROFILE
+  iTimer2 = now_ms();
+  double elapsedTimeMatch = iTimer2 - iTimer1;
+  sprintf(str,"Matching [%d] = %g ms\n",m_nr_matches,elapsedTimeMatch);
+  strcat(profile_string, str);
+#endif
+
+
+  // copy out matching features:
+  for ( int i = 0; i < m_nr_matches; ++i )
+    {
+      int offset = 3*i;
+      m_corners_ref[offset  ] = m_x_corners_ref[m_match_index_ref[i]];
+      m_corners_ref[offset+1] = m_y_corners_ref[m_match_index_ref[i]];
+      m_corners_ref[offset+2] = 1.0;
+
+      m_corners_ins[offset  ] = m_x_corners_ins[m_match_index_ins[i]];
+      m_corners_ins[offset+1] = m_y_corners_ins[m_match_index_ins[i]];
+      m_corners_ins[offset+2] = 1.0;
+    }
+
+  // @jke - Adding code to time the functions.  TODO: Remove after test
+#if PROFILE
+  iTimer1 = now_ms();
+#endif
+  // perform the alignment:
+  db_RobImageHomography(m_H_ref_to_ins, m_corners_ref, m_corners_ins, m_nr_matches, m_K, m_K, m_temp_double, m_temp_int,
+            m_homography_type,NULL,m_max_iterations,m_max_nr_matches,m_scale,
+            m_nr_samples, m_chunk_size);
+  // @jke - Adding code to time the functions.  TODO: Remove after test
+# if PROFILE
+  iTimer2 = now_ms();
+  double elapsedTimeHomography = iTimer2 - iTimer1;
+  sprintf(str,"Homography = %g ms\n",elapsedTimeHomography);
+  strcat(profile_string, str);
+#endif
+
+
+  SetOutlierThreshold();
+
+  // Compute the inliers for the db compute m_H_ref_to_ins
+  ComputeInliers(m_H_ref_to_ins);
+
+  // Update the max inlier count
+  m_max_inlier_count = (m_max_inlier_count > m_num_inlier_indices)?m_max_inlier_count:m_num_inlier_indices;
+
+  // Fit a least-squares model to just the inliers and put it in m_H_ref_to_ins
+  if(m_linear_polish)
+    Polish(m_inlier_indices, m_num_inlier_indices);
+
+  if (m_quarter_resolution)
+  {
+    m_H_ref_to_ins[2] *= 2.0;
+    m_H_ref_to_ins[5] *= 2.0;
+  }
+
+#if PROFILE
+  sprintf(str,"#Inliers = %d \n",m_num_inlier_indices);
+  strcat(profile_string, str);
+#endif
+/*
+  ///// CHECK IF CURRENT TRANSFORMATION GOOD OR BAD ////
+  ///// IF BAD, then update reference to the last correctly aligned inspection frame;
+  if(m_num_inlier_indices<5)//0.9*m_nr_matches || m_nr_matches < 20)
+  {
+    db_Copy9(m_H_ref_to_ins,H_last);
+    UpdateReference(imptr,false);
+//  UpdateReference(m_aligned_ins_image,false);
+  }
+  else
+  {
+  ///// IF GOOD, then update the last correctly aligned inspection frame to be this;
+  //db_CopyImage_u(m_aligned_ins_image,imptr,m_im_width,m_im_height,m_over_allocation);
+*/
+  if(m_do_motion_smoothing)
+    SmoothMotion();
+
+   // Disable debug printing
+   // db_PrintDoubleMatrix(m_H_ref_to_ins,3,3);
+
+  db_Copy9(H, m_H_ref_to_ins);
+
+  m_nr_frames_processed++;
+{
+  if ( (m_nr_frames_processed % m_reference_update_period) == 0 )
+  {
+    //UpdateReference(imptr,false, false);
+
+    #if MB
+    UpdateReference(imptr,false, true);
+    #else
+    UpdateReference(imptr,false, false);
+    #endif
+  }
+
+
+  }
+
+
+
+  return 1;
+}
+
+//void db_FrameToReferenceRegistration::ComputeInliers(double H[9],std::vector<int> &inlier_indices)
+void db_FrameToReferenceRegistration::ComputeInliers(double H[9])
+{
+  double totnummatches = m_nr_matches;
+  int inliercount=0;
+
+  m_num_inlier_indices = 0;
+//  inlier_indices.clear();
+
+  for(int c=0; c < totnummatches; c++ )
+    {
+      if (m_sq_cost[c] <= m_outlier_t2)
+    {
+      m_inlier_indices[inliercount] = c;
+      inliercount++;
+    }
+    }
+
+  m_num_inlier_indices = inliercount;
+  double frac=inliercount/totnummatches;
+}
+
+//void db_FrameToReferenceRegistration::Polish(std::vector<int> &inlier_indices)
+void db_FrameToReferenceRegistration::Polish(int *inlier_indices, int &num_inlier_indices)
+{
+  db_Zero(m_polish_C,36);
+  db_Zero(m_polish_D,6);
+  for (int i=0;i<num_inlier_indices;i++)
+    {
+      int j = 3*inlier_indices[i];
+      m_polish_C[0]+=m_corners_ref[j]*m_corners_ref[j];
+      m_polish_C[1]+=m_corners_ref[j]*m_corners_ref[j+1];
+      m_polish_C[2]+=m_corners_ref[j];
+      m_polish_C[7]+=m_corners_ref[j+1]*m_corners_ref[j+1];
+      m_polish_C[8]+=m_corners_ref[j+1];
+      m_polish_C[14]+=1;
+      m_polish_D[0]+=m_corners_ref[j]*m_corners_ins[j];
+      m_polish_D[1]+=m_corners_ref[j+1]*m_corners_ins[j];
+      m_polish_D[2]+=m_corners_ins[j];
+      m_polish_D[3]+=m_corners_ref[j]*m_corners_ins[j+1];
+      m_polish_D[4]+=m_corners_ref[j+1]*m_corners_ins[j+1];
+      m_polish_D[5]+=m_corners_ins[j+1];
+    }
+
+  double a=db_maxd(m_polish_C[0],m_polish_C[7]);
+  m_polish_C[0]/=a; m_polish_C[1]/=a;   m_polish_C[2]/=a;
+  m_polish_C[7]/=a; m_polish_C[8]/=a; m_polish_C[14]/=a;
+
+  m_polish_D[0]/=a; m_polish_D[1]/=a;   m_polish_D[2]/=a;
+  m_polish_D[3]/=a; m_polish_D[4]/=a;   m_polish_D[5]/=a;
+
+
+  m_polish_C[6]=m_polish_C[1];
+  m_polish_C[12]=m_polish_C[2];
+  m_polish_C[13]=m_polish_C[8];
+
+  m_polish_C[21]=m_polish_C[0]; m_polish_C[22]=m_polish_C[1]; m_polish_C[23]=m_polish_C[2];
+  m_polish_C[28]=m_polish_C[7]; m_polish_C[29]=m_polish_C[8];
+  m_polish_C[35]=m_polish_C[14];
+
+
+  double d[6];
+  db_CholeskyDecomp6x6(m_polish_C,d);
+  db_CholeskyBacksub6x6(m_H_ref_to_ins,m_polish_C,d,m_polish_D);
+}
+
+void db_FrameToReferenceRegistration::EstimateSecondaryModel(double H[9])
+{
+  /*      if ( m_current_is_reference )
+      {
+      db_Identity3x3(H);
+      return;
+      }
+  */
+
+  // select the outliers of the current model:
+  SelectOutliers();
+
+  // perform the alignment:
+  db_RobImageHomography(m_H_ref_to_ins, m_corners_ref, m_corners_ins, m_nr_matches, m_K, m_K, m_temp_double, m_temp_int,
+            m_homography_type,NULL,m_max_iterations,m_max_nr_matches,m_scale,
+            m_nr_samples, m_chunk_size);
+
+  db_Copy9(H,m_H_ref_to_ins);
+}
+
+void db_FrameToReferenceRegistration::ComputeCostArray()
+{
+  if ( m_sq_cost_computed ) return;
+
+  for( int c=0, k=0 ;c < m_nr_matches; c++, k=k+3)
+    {
+      m_sq_cost[c] = SquaredInhomogenousHomographyError(m_corners_ins+k,m_H_ref_to_ins,m_corners_ref+k);
+    }
+
+  m_sq_cost_computed = true;
+}
+
+void db_FrameToReferenceRegistration::SelectOutliers()
+{
+  int nr_outliers=0;
+
+  ComputeCostArray();
+
+  for(int c=0, k=0 ;c<m_nr_matches;c++,k=k+3)
+    {
+      if (m_sq_cost[c] > m_outlier_t2)
+    {
+      int offset = 3*nr_outliers++;
+      db_Copy3(m_corners_ref+offset,m_corners_ref+k);
+      db_Copy3(m_corners_ins+offset,m_corners_ins+k);
+    }
+    }
+
+  m_nr_matches = nr_outliers;
+}
+
+void db_FrameToReferenceRegistration::ComputeCostHistogram()
+{
+  ComputeCostArray();
+
+  for ( int b = 0; b < m_nr_bins; ++b )
+    m_cost_histogram[b] = 0;
+
+  for(int c = 0; c < m_nr_matches; c++)
+    {
+      double error = db_SafeSqrt(m_sq_cost[c]);
+      int bin = (int)(error/m_max_cost_pix*m_nr_bins);
+      if ( bin < m_nr_bins )
+    m_cost_histogram[bin]++;
+      else
+    m_cost_histogram[m_nr_bins-1]++;
+    }
+
+/*
+  for ( int i = 0; i < m_nr_bins; ++i )
+    std::cout << m_cost_histogram[i] << " ";
+  std::cout << std::endl;
+*/
+}
+
+void db_FrameToReferenceRegistration::SetOutlierThreshold()
+{
+  ComputeCostHistogram();
+
+  int i = 0, last=0;
+  for (; i < m_nr_bins-1; ++i )
+    {
+      if ( last > m_cost_histogram[i] )
+    break;
+      last = m_cost_histogram[i];
+    }
+
+  //std::cout << "I " <<  i << std::endl;
+
+  int max = m_cost_histogram[i];
+
+  for (; i < m_nr_bins-1; ++i )
+    {
+      if ( m_cost_histogram[i] < (int)(0.1*max) )
+    //if ( last < m_cost_histogram[i] )
+    break;
+      last = m_cost_histogram[i];
+    }
+  //std::cout << "J " <<  i << std::endl;
+
+  m_outlier_t2 = db_sqr(i*m_max_cost_pix/m_nr_bins);
+
+  //std::cout << "m_outlier_t2 " <<  m_outlier_t2 << std::endl;
+}
+
+void db_FrameToReferenceRegistration::SmoothMotion(void)
+{
+  VP_MOTION inmot,outmot;
+
+  double H[9];
+
+  Get_H_dref_to_ins(H);
+
+      MXX(inmot) = H[0];
+    MXY(inmot) = H[1];
+    MXZ(inmot) = H[2];
+    MXW(inmot) = 0.0;
+
+    MYX(inmot) = H[3];
+    MYY(inmot) = H[4];
+    MYZ(inmot) = H[5];
+    MYW(inmot) = 0.0;
+
+    MZX(inmot) = H[6];
+    MZY(inmot) = H[7];
+    MZZ(inmot) = H[8];
+    MZW(inmot) = 0.0;
+
+    MWX(inmot) = 0.0;
+    MWY(inmot) = 0.0;
+    MWZ(inmot) = 0.0;
+    MWW(inmot) = 1.0;
+
+    inmot.type = VP_MOTION_AFFINE;
+
+    int w = m_im_width;
+    int h = m_im_height;
+
+    if(m_quarter_resolution)
+    {
+    w = w*2;
+    h = h*2;
+    }
+
+#if 0
+    m_stab_smoother.smoothMotionAdaptive(w,h,&inmot,&outmot);
+#else
+    m_stab_smoother.smoothMotion(&inmot,&outmot);
+#endif
+
+    H[0] = MXX(outmot);
+    H[1] = MXY(outmot);
+    H[2] = MXZ(outmot);
+
+    H[3] = MYX(outmot);
+    H[4] = MYY(outmot);
+    H[5] = MYZ(outmot);
+
+    H[6] = MZX(outmot);
+    H[7] = MZY(outmot);
+    H[8] = MZZ(outmot);
+
+    Set_H_dref_to_ins(H);
+}
+
+void db_FrameToReferenceRegistration::GenerateQuarterResImage(const unsigned char* const* im)
+{
+  int input_h = m_im_height*2;
+  int input_w = m_im_width*2;
+
+  for (int j = 0; j < input_h; j++)
+  {
+    const unsigned char* in_row_ptr = im[j];
+    unsigned char* out_row_ptr = m_horz_smooth_subsample_image[j]+1;
+
+    for (int i = 2; i < input_w-2; i += 2)
+    {
+      int smooth_val = (
+            6*in_row_ptr[i] +
+            ((in_row_ptr[i-1]+in_row_ptr[i+1])<<2) +
+            in_row_ptr[i-2]+in_row_ptr[i+2]
+            ) >> 4;
+      *out_row_ptr++ = (unsigned char) smooth_val;
+
+      if ( (smooth_val < 0) || (smooth_val > 255))
+      {
+        return;
+      }
+
+    }
+  }
+
+  for (int j = 2; j < input_h-2; j+=2)
+  {
+
+    unsigned char* in_row_ptr = m_horz_smooth_subsample_image[j];
+    unsigned char* out_row_ptr = m_quarter_res_image[j/2];
+
+    for (int i = 1; i < m_im_width-1; i++)
+    {
+      int smooth_val = (
+            6*in_row_ptr[i] +
+            ((in_row_ptr[i-m_im_width]+in_row_ptr[i+m_im_width]) << 2)+
+            in_row_ptr[i-2*m_im_width]+in_row_ptr[i+2*m_im_width]
+            ) >> 4;
+      *out_row_ptr++ = (unsigned char)smooth_val;
+
+      if ( (smooth_val < 0) || (smooth_val > 255))
+      {
+        return;
+      }
+
+    }
+  }
+}
diff --git a/perftests/panorama/feature_stab/src/dbreg/dbreg.h b/perftests/panorama/feature_stab/src/dbreg/dbreg.h
new file mode 100644
index 0000000..4eb2444
--- /dev/null
+++ b/perftests/panorama/feature_stab/src/dbreg/dbreg.h
@@ -0,0 +1,581 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+
+#pragma once
+
+#ifdef _WIN32
+#ifdef DBREG_EXPORTS
+#define DBREG_API __declspec(dllexport)
+#else
+#define DBREG_API __declspec(dllimport)
+#endif
+#else
+#define DBREG_API
+#endif
+
+// @jke - the next few lines are for extracting timing data.  TODO: Remove after test
+#define PROFILE 0
+
+#include "dbstabsmooth.h"
+
+#include <db_feature_detection.h>
+#include <db_feature_matching.h>
+#include <db_rob_image_homography.h>
+
+#if PROFILE
+    #include <sys/time.h>
+#endif
+
+/*! \mainpage db_FrameToReferenceRegistration
+
+ \section intro Introduction
+
+ db_FrameToReferenceRegistration provides a simple interface to a set of sophisticated algorithms for stabilizing
+ video sequences.  As its name suggests, the class is used to compute parameters that will allow us to warp incoming video
+ frames and register them with respect to a so-called <i>reference</i> frame.  The reference frame is simply the first
+ frame of a sequence; the registration process is that of estimating the parameters of a warp that can be applied to
+ subsequent frames to make those frames align with the reference.  A video made up of these warped frames will be more
+ stable than the input video.
+
+ For more technical information on the internal structure of the algorithms used within the db_FrameToRegistration class,
+ please follow this <a href="../Sarnoff image registration.docx">link</a>.
+
+ \section usage Usage
+ In addition to the class constructor, there are two main functions of db_FrameToReferenceRegistration that are of
+ interest to the programmer.  db_FrameToReferenceRegistration::Init(...) is used to initialize the parameters of the
+ registration algorithm. db_FrameToReferenceRegistration::AddFrame(...) is the method by which each new video frame
+ is introduced to the registration algorithm, and produces the estimated registration warp parameters.
+
+ The following example illustrates how the major methods of the class db_FrameToReferenceRegistration can be used together
+ to calculate the registration parameters for an image sequence.  In the example, the calls to the methods of
+ db_FrameToReferenceRegistration match those found in the API, but supporting code should be considered pseudo-code.
+ For a more complete example, please consult the source code for dbregtest.
+
+
+    \code
+    // feature-based image registration class:
+    db_FrameToReferenceRegistration reg;
+
+    // Image data
+    const unsigned char * const * image_storage;
+
+    // The 3x3 frame to reference registration parameters
+    double frame_to_ref_homography[9];
+
+    // a counter to count the number of frames processed.
+    unsigned long frame_counter;
+    // ...
+
+    // main loop - keep going while there are images to process.
+    while (ImagesAreAvailable)
+    {
+        // Call functions to place latest data into image_storage
+        // ...
+
+        // if the registration object is not yet initialized, then do so
+        // The arguments to this function are explained in the accompanying
+        // html API documentation
+        if (!reg.Initialized())
+        {
+            reg.Init(w,h,motion_model_type,25,linear_polish,quarter_resolution,
+                   DB_POINT_STANDARDDEV,reference_update_period,
+                   do_motion_smoothing,motion_smoothing_gain,
+                   DB_DEFAULT_NR_SAMPLES,DB_DEFAULT_CHUNK_SIZE,
+                   nr_corners,max_disparity);
+        }
+
+        // Present the new image data to the registration algorithm,
+        // with the result being stored in the frame_to_ref_homography
+        // variable.
+        reg.AddFrame(image_storage,frame_to_ref_homography);
+
+        // frame_to_ref_homography now contains the stabilizing transform
+        // use this to warp the latest image for display, etc.
+
+        // if this is the first frame, we need to tell the registration
+        // class to store the image as its reference.  Otherwise, AddFrame
+        // takes care of that.
+        if (frame_counter == 0)
+        {
+            reg.UpdateReference(image_storage);
+        }
+
+        // increment the frame counter
+        frame_counter++;
+    }
+
+    \endcode
+
+ */
+
+/*!
+ * Performs feature-based frame to reference image registration.
+ */
+class DBREG_API db_FrameToReferenceRegistration
+{
+public:
+    db_FrameToReferenceRegistration(void);
+    ~db_FrameToReferenceRegistration();
+
+    /*!
+     * Set parameters and allocate memory. Note: The default values of these parameters have been set to the values used for the android implementation (i.e. the demo APK).
+     * \param width         image width
+     * \param height        image height
+     * \param homography_type see definitions in \ref LMRobImageHomography
+     * \param max_iterations    max number of polishing steps
+     * \param linear_polish     whether to perform a linear polishing step after RANSAC
+     * \param quarter_resolution    whether to process input images at quarter resolution (for computational efficiency)
+     * \param scale         Cauchy scale coefficient (see db_ExpCauchyReprojectionError() )
+     * \param reference_update_period   how often to update the alignment reference (in units of number of frames)
+     * \param do_motion_smoothing   whether to perform display reference smoothing
+     * \param motion_smoothing_gain weight factor to reflect how fast the display reference must follow the current frame if motion smoothing is enabled
+     * \param nr_samples        number of times to compute a hypothesis
+     * \param chunk_size        size of cost chunks
+     * \param cd_target_nr_corners  target number of corners for corner detector
+     * \param cm_max_disparity      maximum disparity search range for corner matcher (in units of ratio of image width)
+     * \param cm_use_smaller_matching_window    if set to true, uses a correlation window of 5x5 instead of the default 11x11
+     * \param cd_nr_horz_blocks     the number of horizontal blocks for the corner detector to partition the image
+     * \param cd_nr_vert_blocks     the number of vertical blocks for the corner detector to partition the image
+    */
+    void Init(int width, int height,
+          int       homography_type = DB_HOMOGRAPHY_TYPE_DEFAULT,
+          int       max_iterations = DB_DEFAULT_MAX_ITERATIONS,
+          bool      linear_polish = false,
+          bool   quarter_resolution = true,
+          double  scale = DB_POINT_STANDARDDEV,
+          unsigned int reference_update_period = 3,
+          bool   do_motion_smoothing = false,
+          double motion_smoothing_gain = 0.75,
+          int   nr_samples = DB_DEFAULT_NR_SAMPLES,
+          int   chunk_size = DB_DEFAULT_CHUNK_SIZE,
+          int    cd_target_nr_corners = 500,
+          double cm_max_disparity = 0.2,
+          bool   cm_use_smaller_matching_window = false,
+          int    cd_nr_horz_blocks = 5,
+          int    cd_nr_vert_blocks = 5);
+
+    /*!
+     * Reset the transformation type that is being use to perform alignment. Use this to change the alignment type at run time.
+     * \param homography_type   the type of transformation to use for performing alignment (see definitions in \ref LMRobImageHomography)
+    */
+    void ResetHomographyType(int homography_type) { m_homography_type = homography_type; }
+
+    /*!
+     * Enable/Disable motion smoothing. Use this to turn motion smoothing on/off at run time.
+     * \param enable    flag indicating whether to turn the motion smoothing on or off.
+    */
+    void ResetSmoothing(bool enable) { m_do_motion_smoothing = enable; }
+
+    /*!
+     * Align an inspection image to an existing reference image, update the reference image if due and perform motion smoothing if enabled.
+     * \param im                new inspection image
+     * \param H             computed transformation from reference to inspection coordinate frame. Identity is returned if no reference frame was set.
+     * \param force_reference   make this the new reference image
+     */
+    int AddFrame(const unsigned char * const * im, double H[9], bool force_reference=false, bool prewarp=false);
+
+    /*!
+     * Returns true if Init() was run.
+     */
+    bool Initialized() const { return m_initialized; }
+
+    /*!
+     * Returns true if the current frame is being used as the alignment reference.
+    */
+    bool IsCurrentReference() const { return m_current_is_reference; }
+
+    /*!
+     * Returns true if we need to call UpdateReference now.
+     */
+    bool NeedReferenceUpdate();
+
+    /*!
+     * Returns the pointer reference to the alignment reference image data
+    */
+    unsigned char ** GetReferenceImage() { return m_reference_image; }
+
+    /*!
+     * Returns the pointer reference to the double array containing the homogeneous coordinates for the matched reference image corners.
+    */
+    double * GetRefCorners() { return m_corners_ref; }
+    /*!
+     * Returns the pointer reference to the double array containing the homogeneous coordinates for the matched inspection image corners.
+    */
+    double * GetInsCorners() { return m_corners_ins; }
+    /*!
+     * Returns the number of correspondences between the reference and inspection images.
+    */
+    int GetNrMatches() { return m_nr_matches; }
+
+    /*!
+     * Returns the number of corners detected in the current reference image.
+    */
+    int GetNrRefCorners() { return m_nr_corners_ref; }
+
+    /*!
+     * Returns the pointer to an array of indices that were found to be RANSAC inliers from the matched corner lists.
+    */
+    int* GetInliers() { return m_inlier_indices; }
+
+    /*!
+     * Returns the number of inliers from the RANSAC matching step.
+    */
+    int  GetNrInliers() { return m_num_inlier_indices; }
+
+    //std::vector<int>& GetInliers();
+    //void Polish(std::vector<int> &inlier_indices);
+
+    /*!
+     * Perform a linear polishing step by re-estimating the alignment transformation using the RANSAC inliers.
+     * \param inlier_indices    pointer to an array of indices that were found to be RANSAC inliers from the matched corner lists.
+     * \param num_inlier_indices    number of inliers i.e. the length of the array passed as the first argument.
+    */
+    void Polish(int *inlier_indices, int &num_inlier_indices);
+
+    /*!
+     * Reset the motion smoothing parameters to their initial values.
+    */
+    void ResetMotionSmoothingParameters() { m_stab_smoother.Init(); }
+
+    /*!
+     * Update the alignment reference image to the specified image.
+     * \param im    pointer to the image data to be used as the new alignment reference.
+     * \param subsample boolean flag to control whether the function should internally subsample the provided image to the size provided in the Init() function.
+    */
+    int UpdateReference(const unsigned char * const * im, bool subsample = true, bool detect_corners = true);
+
+    /*!
+     * Returns the transformation from the display reference to the alignment reference frame
+    */
+    void Get_H_dref_to_ref(double H[9]);
+    /*!
+     * Returns the transformation from the display reference to the inspection reference frame
+    */
+    void Get_H_dref_to_ins(double H[9]);
+    /*!
+     * Set the transformation from the display reference to the inspection reference frame
+     * \param H the transformation to set
+    */
+    void Set_H_dref_to_ins(double H[9]);
+
+    /*!
+     * Reset the display reference to the current frame.
+    */
+    void ResetDisplayReference();
+
+    /*!
+     * Estimate a secondary motion model starting from the specified transformation.
+     * \param H the primary motion model to start from
+    */
+    void EstimateSecondaryModel(double H[9]);
+
+    /*!
+     *
+    */
+    void SelectOutliers();
+
+    char *profile_string;
+
+protected:
+    void Clean();
+    void GenerateQuarterResImage(const unsigned char* const * im);
+
+    int     m_im_width;
+    int     m_im_height;
+
+    // RANSAC and refinement parameters:
+    int m_homography_type;
+    int     m_max_iterations;
+    double  m_scale;
+    int     m_nr_samples;
+    int     m_chunk_size;
+    double  m_outlier_t2;
+
+    // Whether to fit a linear model to just the inliers at the end
+    bool   m_linear_polish;
+    double m_polish_C[36];
+    double m_polish_D[6];
+
+    // local state
+    bool m_current_is_reference;
+    bool m_initialized;
+
+    // inspection to reference homography:
+    double m_H_ref_to_ins[9];
+    double m_H_dref_to_ref[9];
+
+    // feature extraction and matching:
+    db_CornerDetector_u m_cd;
+    db_Matcher_u        m_cm;
+
+    // length of corner arrays:
+    unsigned long m_max_nr_corners;
+
+    // corner locations of reference image features:
+    double * m_x_corners_ref;
+    double * m_y_corners_ref;
+    int  m_nr_corners_ref;
+
+    // corner locations of inspection image features:
+    double * m_x_corners_ins;
+    double * m_y_corners_ins;
+    int      m_nr_corners_ins;
+
+    // length of match index arrays:
+    unsigned long m_max_nr_matches;
+
+    // match indices:
+    int * m_match_index_ref;
+    int * m_match_index_ins;
+    int   m_nr_matches;
+
+    // pointer to internal copy of the reference image:
+    unsigned char ** m_reference_image;
+
+    // pointer to internal copy of last aligned inspection image:
+    unsigned char ** m_aligned_ins_image;
+
+    // pointer to quarter resolution image, if used.
+    unsigned char** m_quarter_res_image;
+
+    // temporary storage for the quarter resolution image processing
+    unsigned char** m_horz_smooth_subsample_image;
+
+    // temporary space for homography computation:
+    double * m_temp_double;
+    int * m_temp_int;
+
+    // homogenous image point arrays:
+    double * m_corners_ref;
+    double * m_corners_ins;
+
+    // Indices of the points within the match lists
+    int * m_inlier_indices;
+    int m_num_inlier_indices;
+
+    //void ComputeInliers(double H[9], std::vector<int> &inlier_indices);
+    void ComputeInliers(double H[9]);
+
+    // cost arrays:
+    void ComputeCostArray();
+    bool m_sq_cost_computed;
+    double * m_sq_cost;
+
+    // cost histogram:
+    void ComputeCostHistogram();
+    int *m_cost_histogram;
+
+    void SetOutlierThreshold();
+
+    // utility function for smoothing the motion parameters.
+    void SmoothMotion(void);
+
+private:
+    double m_K[9];
+    const int m_over_allocation;
+
+    bool m_reference_set;
+
+    // Maximum number of inliers seen until now w.r.t the current reference frame
+    int m_max_inlier_count;
+
+    // Number of cost histogram bins:
+    int m_nr_bins;
+    // All costs above this threshold get put into the last bin:
+    int m_max_cost_pix;
+
+    // whether to quarter the image resolution for processing, or not
+    bool m_quarter_resolution;
+
+    // the period (in number of frames) for reference update.
+    unsigned int m_reference_update_period;
+
+    // the number of frames processed so far.
+    unsigned int m_nr_frames_processed;
+
+    // smoother for motion transformations
+    db_StabilizationSmoother m_stab_smoother;
+
+    // boolean to control whether motion smoothing occurs (or not)
+    bool m_do_motion_smoothing;
+
+    // double to set the gain for motion smoothing
+    double m_motion_smoothing_gain;
+};
+/*!
+ Create look-up tables to undistort images. Only Bougeut (Matlab toolkit)
+ is currently supported. Can be used with db_WarpImageLut_u().
+ \code
+    xd = H*xs;
+    xd = xd/xd(3);
+ \endcode
+ \param lut_x   pre-allocated float image
+ \param lut_y   pre-allocated float image
+ \param w       width
+ \param h       height
+ \param H       image homography from source to destination
+ */
+inline void db_GenerateHomographyLut(float ** lut_x,float ** lut_y,int w,int h,const double H[9])
+{
+    assert(lut_x && lut_y);
+    double x[3] = {0.0,0.0,1.0};
+    double xb[3];
+
+/*
+    double xl[3];
+
+    // Determine the output coordinate system ROI
+    double Hinv[9];
+    db_InvertAffineTransform(Hinv,H);
+    db_Multiply3x3_3x1(xl, Hinv, x);
+    xl[0] = db_SafeDivision(xl[0],xl[2]);
+    xl[1] = db_SafeDivision(xl[1],xl[2]);
+*/
+
+    for ( int i = 0; i < w; ++i )
+        for ( int j = 0; j < h; ++j )
+        {
+            x[0] = double(i);
+            x[1] = double(j);
+            db_Multiply3x3_3x1(xb, H, x);
+            xb[0] = db_SafeDivision(xb[0],xb[2]);
+            xb[1] = db_SafeDivision(xb[1],xb[2]);
+
+            lut_x[j][i] = float(xb[0]);
+            lut_y[j][i] = float(xb[1]);
+        }
+}
+
+/*!
+ * Perform a look-up table warp for packed RGB ([rgbrgbrgb...]) images.
+ * The LUTs must be float images of the same size as source image.
+ * The source value x_s is determined from destination (x_d,y_d) through lut_x
+ * and y_s is determined from lut_y:
+   \code
+   x_s = lut_x[y_d][x_d];
+   y_s = lut_y[y_d][x_d];
+   \endcode
+
+ * \param src   source image (w*3 by h)
+ * \param dst   destination image (w*3 by h)
+ * \param w     width
+ * \param h     height
+ * \param lut_x LUT for x
+ * \param lut_y LUT for y
+ */
+inline void db_WarpImageLutFast_rgb(const unsigned char * const * src, unsigned char ** dst, int w, int h,
+                                  const float * const * lut_x, const float * const * lut_y)
+{
+    assert(src && dst);
+    int xd=0, yd=0;
+
+    for ( int i = 0; i < w; ++i )
+        for ( int j = 0; j < h; ++j )
+        {
+            xd = static_cast<unsigned int>(lut_x[j][i]);
+            yd = static_cast<unsigned int>(lut_y[j][i]);
+            if ( xd >= w || yd >= h ||
+                 xd < 0 || yd < 0)
+            {
+                dst[j][3*i  ] = 0;
+                dst[j][3*i+1] = 0;
+                dst[j][3*i+2] = 0;
+            }
+            else
+            {
+                dst[j][3*i  ] = src[yd][3*xd  ];
+                dst[j][3*i+1] = src[yd][3*xd+1];
+                dst[j][3*i+2] = src[yd][3*xd+2];
+            }
+        }
+}
+
+inline unsigned char db_BilinearInterpolationRGB(double y, double x, const unsigned char * const * v, int offset)
+{
+         int floor_x=(int) x;
+         int floor_y=(int) y;
+
+         int ceil_x=floor_x+1;
+         int ceil_y=floor_y+1;
+
+         unsigned char f00 = v[floor_y][3*floor_x+offset];
+         unsigned char f01 = v[floor_y][3*ceil_x+offset];
+         unsigned char f10 = v[ceil_y][3*floor_x+offset];
+         unsigned char f11 = v[ceil_y][3*ceil_x+offset];
+
+         double xl = x-floor_x;
+         double yl = y-floor_y;
+
+         return (unsigned char)(f00*(1-yl)*(1-xl) + f10*yl*(1-xl) + f01*(1-yl)*xl + f11*yl*xl);
+}
+
+inline void db_WarpImageLutBilinear_rgb(const unsigned char * const * src, unsigned char ** dst, int w, int h,
+                                  const float * const * lut_x, const float * const * lut_y)
+{
+    assert(src && dst);
+    double xd=0.0, yd=0.0;
+
+    for ( int i = 0; i < w; ++i )
+        for ( int j = 0; j < h; ++j )
+        {
+            xd = static_cast<double>(lut_x[j][i]);
+            yd = static_cast<double>(lut_y[j][i]);
+            if ( xd > w-2 || yd > h-2 ||
+                 xd < 0.0 || yd < 0.0)
+            {
+                dst[j][3*i  ] = 0;
+                dst[j][3*i+1] = 0;
+                dst[j][3*i+2] = 0;
+            }
+            else
+            {
+                dst[j][3*i  ] = db_BilinearInterpolationRGB(yd,xd,src,0);
+                dst[j][3*i+1] = db_BilinearInterpolationRGB(yd,xd,src,1);
+                dst[j][3*i+2] = db_BilinearInterpolationRGB(yd,xd,src,2);
+            }
+        }
+}
+
+inline double SquaredInhomogenousHomographyError(double y[3],double H[9],double x[3]){
+    double x0,x1,x2,mult;
+    double sd;
+
+    x0=H[0]*x[0]+H[1]*x[1]+H[2];
+    x1=H[3]*x[0]+H[4]*x[1]+H[5];
+    x2=H[6]*x[0]+H[7]*x[1]+H[8];
+    mult=1.0/((x2!=0.0)?x2:1.0);
+    sd=(y[0]-x0*mult)*(y[0]-x0*mult)+(y[1]-x1*mult)*(y[1]-x1*mult);
+
+    return(sd);
+}
+
+
+// functions related to profiling
+#if PROFILE
+
+/* return current time in milliseconds */
+static double
+now_ms(void)
+{
+    //struct timespec res;
+    struct timeval res;
+    //clock_gettime(CLOCK_REALTIME, &res);
+    gettimeofday(&res, NULL);
+    return 1000.0*res.tv_sec + (double)res.tv_usec/1e3;
+}
+
+#endif
diff --git a/perftests/panorama/feature_stab/src/dbreg/dbstabsmooth.cpp b/perftests/panorama/feature_stab/src/dbreg/dbstabsmooth.cpp
new file mode 100644
index 0000000..dffff8a
--- /dev/null
+++ b/perftests/panorama/feature_stab/src/dbreg/dbstabsmooth.cpp
@@ -0,0 +1,330 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+#include <stdlib.h>
+#include "dbstabsmooth.h"
+
+///// TODO TODO ////////// Replace this with the actual definition from Jayan's reply /////////////
+#define vp_copy_motion_no_id vp_copy_motion
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+static bool vpmotion_add(VP_MOTION *in1, VP_MOTION *in2, VP_MOTION *out);
+static bool vpmotion_multiply(VP_MOTION *in1, double factor, VP_MOTION *out);
+
+db_StabilizationSmoother::db_StabilizationSmoother()
+{
+    Init();
+}
+
+void db_StabilizationSmoother::Init()
+{
+    f_smoothOn = true;
+    f_smoothReset = false;
+    f_smoothFactor = 1.0f;
+    f_minDampingFactor = 0.2f;
+    f_zoom = 1.0f;
+    VP_MOTION_ID(f_motLF);
+    VP_MOTION_ID(f_imotLF);
+    f_hsize = 0;
+    f_vsize = 0;
+
+    VP_MOTION_ID(f_disp_mot);
+    VP_MOTION_ID(f_src_mot);
+    VP_MOTION_ID(f_diff_avg);
+
+    for( int i = 0; i < MOTION_ARRAY-1; i++) {
+        VP_MOTION_ID(f_hist_mot_speed[i]);
+        VP_MOTION_ID(f_hist_mot[i]);
+        VP_MOTION_ID(f_hist_diff_mot[i]);
+    }
+    VP_MOTION_ID(f_hist_mot[MOTION_ARRAY-1]);
+
+}
+
+db_StabilizationSmoother::~db_StabilizationSmoother()
+{}
+
+
+bool db_StabilizationSmoother::smoothMotion(VP_MOTION *inmot, VP_MOTION *outmot)
+{
+    VP_MOTION_ID(f_motLF);
+    VP_MOTION_ID(f_imotLF);
+    f_motLF.insid = inmot->refid;
+    f_motLF.refid = inmot->insid;
+
+    if(f_smoothOn) {
+        if(!f_smoothReset) {
+            MXX(f_motLF) = (VP_PAR) (f_smoothFactor*(double) MXX(f_motLF) + (1.0-f_smoothFactor)* (double) MXX(*inmot));
+            MXY(f_motLF) = (VP_PAR) (f_smoothFactor*(double) MXY(f_motLF) + (1.0-f_smoothFactor)* (double) MXY(*inmot));
+            MXZ(f_motLF) = (VP_PAR) (f_smoothFactor*(double) MXZ(f_motLF) + (1.0-f_smoothFactor)* (double) MXZ(*inmot));
+            MXW(f_motLF) = (VP_PAR) (f_smoothFactor*(double) MXW(f_motLF) + (1.0-f_smoothFactor)* (double) MXW(*inmot));
+
+            MYX(f_motLF) = (VP_PAR) (f_smoothFactor*(double) MYX(f_motLF) + (1.0-f_smoothFactor)* (double) MYX(*inmot));
+            MYY(f_motLF) = (VP_PAR) (f_smoothFactor*(double) MYY(f_motLF) + (1.0-f_smoothFactor)* (double) MYY(*inmot));
+            MYZ(f_motLF) = (VP_PAR) (f_smoothFactor*(double) MYZ(f_motLF) + (1.0-f_smoothFactor)* (double) MYZ(*inmot));
+            MYW(f_motLF) = (VP_PAR) (f_smoothFactor*(double) MYW(f_motLF) + (1.0-f_smoothFactor)* (double) MYW(*inmot));
+
+            MZX(f_motLF) = (VP_PAR) (f_smoothFactor*(double) MZX(f_motLF) + (1.0-f_smoothFactor)* (double) MZX(*inmot));
+            MZY(f_motLF) = (VP_PAR) (f_smoothFactor*(double) MZY(f_motLF) + (1.0-f_smoothFactor)* (double) MZY(*inmot));
+            MZZ(f_motLF) = (VP_PAR) (f_smoothFactor*(double) MZZ(f_motLF) + (1.0-f_smoothFactor)* (double) MZZ(*inmot));
+            MZW(f_motLF) = (VP_PAR) (f_smoothFactor*(double) MZW(f_motLF) + (1.0-f_smoothFactor)* (double) MZW(*inmot));
+
+            MWX(f_motLF) = (VP_PAR) (f_smoothFactor*(double) MWX(f_motLF) + (1.0-f_smoothFactor)* (double) MWX(*inmot));
+            MWY(f_motLF) = (VP_PAR) (f_smoothFactor*(double) MWY(f_motLF) + (1.0-f_smoothFactor)* (double) MWY(*inmot));
+            MWZ(f_motLF) = (VP_PAR) (f_smoothFactor*(double) MWZ(f_motLF) + (1.0-f_smoothFactor)* (double) MWZ(*inmot));
+            MWW(f_motLF) = (VP_PAR) (f_smoothFactor*(double) MWW(f_motLF) + (1.0-f_smoothFactor)* (double) MWW(*inmot));
+        }
+        else
+            vp_copy_motion_no_id(inmot, &f_motLF); // f_smoothFactor = 0.0
+
+        // Only allow LF motion to be compensated. Remove HF motion from
+        // the output transformation
+        if(!vp_invert_motion(&f_motLF, &f_imotLF))
+            return false;
+
+        if(!vp_cascade_motion(&f_imotLF, inmot, outmot))
+            return false;
+    }
+    else {
+        vp_copy_motion_no_id(inmot, outmot);
+    }
+
+    return true;
+}
+
+bool db_StabilizationSmoother::smoothMotionAdaptive(/*VP_BIMG *bimg,*/int hsize, int vsize, VP_MOTION *inmot, VP_MOTION *outmot)
+{
+    VP_MOTION tmpMotion, testMotion;
+    VP_PAR p1x, p2x, p3x, p4x;
+    VP_PAR p1y, p2y, p3y, p4y;
+    double smoothFactor;
+    double minSmoothFactor = f_minDampingFactor;
+
+//  int hsize = bimg->w;
+//  int vsize = bimg->h;
+    double border_factor = 0.01;//0.2;
+    double border_x = border_factor * hsize;
+    double border_y = border_factor * vsize;
+
+    VP_MOTION_ID(f_motLF);
+    VP_MOTION_ID(f_imotLF);
+    VP_MOTION_ID(testMotion);
+    VP_MOTION_ID(tmpMotion);
+
+    if (f_smoothOn) {
+        VP_MOTION identityMotion;
+        VP_MOTION_ID(identityMotion); // initialize the motion
+        vp_copy_motion(inmot/*in*/, &testMotion/*out*/);
+        VP_PAR delta = vp_motion_cornerdiff(&testMotion, &identityMotion, 0, 0,(int)hsize, (int)vsize);
+
+        smoothFactor = 0.99 - 0.0015 * delta;
+
+        if(smoothFactor < minSmoothFactor)
+            smoothFactor = minSmoothFactor;
+
+        // Find the amount of motion that must be compensated so that no "border" pixels are seen in the stable video
+        for (smoothFactor = smoothFactor; smoothFactor >= minSmoothFactor; smoothFactor -= 0.01) {
+            // Compute the smoothed motion
+            if(!smoothMotion(inmot, &tmpMotion, smoothFactor))
+                break;
+
+            // TmpMotion, or Qsi where s is the smoothed display reference and i is the
+            // current image, tells us how points in the S co-ordinate system map to
+            // points in the I CS.  We would like to check whether the four corners of the
+            // warped and smoothed display reference lies entirely within the I co-ordinate
+            // system.  If yes, then the amount of smoothing is sufficient so that NO
+            // border pixels are seen at the output.  We test for f_smoothFactor terms
+            // between 0.9 and 1.0, in steps of 0.01, and between 0.5 ands 0.9 in steps of 0.1
+
+            (void) vp_zoom_motion2d(&tmpMotion, &testMotion, 1, hsize, vsize, (double)f_zoom); // needs to return bool
+
+            VP_WARP_POINT_2D(0, 0, testMotion, p1x, p1y);
+            VP_WARP_POINT_2D(hsize - 1, 0, testMotion, p2x, p2y);
+            VP_WARP_POINT_2D(hsize - 1, vsize - 1, testMotion, p3x, p3y);
+            VP_WARP_POINT_2D(0, vsize - 1, testMotion, p4x, p4y);
+
+            if (!is_point_in_rect((double)p1x,(double)p1y,-border_x,-border_y,(double)(hsize+2.0*border_x),(double)(vsize+2.0*border_y))) {
+                continue;
+            }
+            if (!is_point_in_rect((double)p2x, (double)p2y,-border_x,-border_y,(double)(hsize+2.0*border_x),(double)(vsize+2.0*border_y))) {
+                continue;
+            }
+            if (!is_point_in_rect((double)p3x,(double)p3y,-border_x,-border_y,(double)(hsize+2.0*border_x),(double)(vsize+2.0*border_y))) {
+                continue;
+            }
+            if (!is_point_in_rect((double)p4x, (double)p4y,-border_x,-border_y,(double)(hsize+2.0*border_x),(double)(vsize+2.0*border_y))) {
+                continue;
+            }
+
+            // If we get here, then all the points are in the rectangle.
+            // Therefore, break out of this loop
+            break;
+        }
+
+        // if we get here and f_smoothFactor <= fMinDampingFactor, reset the stab reference
+        if (smoothFactor < f_minDampingFactor)
+            smoothFactor = f_minDampingFactor;
+
+        // use the smoothed motion for stabilization
+        vp_copy_motion_no_id(&tmpMotion/*in*/, outmot/*out*/);
+    }
+    else
+    {
+        vp_copy_motion_no_id(inmot, outmot);
+    }
+
+    return true;
+}
+
+bool db_StabilizationSmoother::smoothMotion(VP_MOTION *inmot, VP_MOTION *outmot, double smooth_factor)
+{
+    f_motLF.insid = inmot->refid;
+    f_motLF.refid = inmot->insid;
+
+    if(f_smoothOn) {
+        if(!f_smoothReset) {
+            MXX(f_motLF) = (VP_PAR) (smooth_factor*(double) MXX(f_motLF) + (1.0-smooth_factor)* (double) MXX(*inmot));
+            MXY(f_motLF) = (VP_PAR) (smooth_factor*(double) MXY(f_motLF) + (1.0-smooth_factor)* (double) MXY(*inmot));
+            MXZ(f_motLF) = (VP_PAR) (smooth_factor*(double) MXZ(f_motLF) + (1.0-smooth_factor)* (double) MXZ(*inmot));
+            MXW(f_motLF) = (VP_PAR) (smooth_factor*(double) MXW(f_motLF) + (1.0-smooth_factor)* (double) MXW(*inmot));
+
+            MYX(f_motLF) = (VP_PAR) (smooth_factor*(double) MYX(f_motLF) + (1.0-smooth_factor)* (double) MYX(*inmot));
+            MYY(f_motLF) = (VP_PAR) (smooth_factor*(double) MYY(f_motLF) + (1.0-smooth_factor)* (double) MYY(*inmot));
+            MYZ(f_motLF) = (VP_PAR) (smooth_factor*(double) MYZ(f_motLF) + (1.0-smooth_factor)* (double) MYZ(*inmot));
+            MYW(f_motLF) = (VP_PAR) (smooth_factor*(double) MYW(f_motLF) + (1.0-smooth_factor)* (double) MYW(*inmot));
+
+            MZX(f_motLF) = (VP_PAR) (smooth_factor*(double) MZX(f_motLF) + (1.0-smooth_factor)* (double) MZX(*inmot));
+            MZY(f_motLF) = (VP_PAR) (smooth_factor*(double) MZY(f_motLF) + (1.0-smooth_factor)* (double) MZY(*inmot));
+            MZZ(f_motLF) = (VP_PAR) (smooth_factor*(double) MZZ(f_motLF) + (1.0-smooth_factor)* (double) MZZ(*inmot));
+            MZW(f_motLF) = (VP_PAR) (smooth_factor*(double) MZW(f_motLF) + (1.0-smooth_factor)* (double) MZW(*inmot));
+
+            MWX(f_motLF) = (VP_PAR) (smooth_factor*(double) MWX(f_motLF) + (1.0-smooth_factor)* (double) MWX(*inmot));
+            MWY(f_motLF) = (VP_PAR) (smooth_factor*(double) MWY(f_motLF) + (1.0-smooth_factor)* (double) MWY(*inmot));
+            MWZ(f_motLF) = (VP_PAR) (smooth_factor*(double) MWZ(f_motLF) + (1.0-smooth_factor)* (double) MWZ(*inmot));
+            MWW(f_motLF) = (VP_PAR) (smooth_factor*(double) MWW(f_motLF) + (1.0-smooth_factor)* (double) MWW(*inmot));
+        }
+        else
+            vp_copy_motion_no_id(inmot, &f_motLF); // smooth_factor = 0.0
+
+        // Only allow LF motion to be compensated. Remove HF motion from
+        // the output transformation
+        if(!vp_invert_motion(&f_motLF, &f_imotLF))
+            return false;
+
+        if(!vp_cascade_motion(&f_imotLF, inmot, outmot))
+            return false;
+    }
+    else {
+        vp_copy_motion_no_id(inmot, outmot);
+    }
+
+    return true;
+}
+
+//! Overloaded smoother function that takes in user-specidied smoothing factor
+bool
+db_StabilizationSmoother::smoothMotion1(VP_MOTION *inmot, VP_MOTION *outmot, VP_MOTION *motLF, VP_MOTION *imotLF, double factor)
+{
+
+    if(!f_smoothOn) {
+        vp_copy_motion(inmot, outmot);
+        return true;
+    }
+    else {
+        if(!f_smoothReset) {
+            MXX(*motLF) = (VP_PAR) (factor*(double) MXX(*motLF) + (1.0-factor)* (double) MXX(*inmot));
+            MXY(*motLF) = (VP_PAR) (factor*(double) MXY(*motLF) + (1.0-factor)* (double) MXY(*inmot));
+            MXZ(*motLF) = (VP_PAR) (factor*(double) MXZ(*motLF) + (1.0-factor)* (double) MXZ(*inmot));
+            MXW(*motLF) = (VP_PAR) (factor*(double) MXW(*motLF) + (1.0-factor)* (double) MXW(*inmot));
+
+            MYX(*motLF) = (VP_PAR) (factor*(double) MYX(*motLF) + (1.0-factor)* (double) MYX(*inmot));
+            MYY(*motLF) = (VP_PAR) (factor*(double) MYY(*motLF) + (1.0-factor)* (double) MYY(*inmot));
+            MYZ(*motLF) = (VP_PAR) (factor*(double) MYZ(*motLF) + (1.0-factor)* (double) MYZ(*inmot));
+            MYW(*motLF) = (VP_PAR) (factor*(double) MYW(*motLF) + (1.0-factor)* (double) MYW(*inmot));
+
+            MZX(*motLF) = (VP_PAR) (factor*(double) MZX(*motLF) + (1.0-factor)* (double) MZX(*inmot));
+            MZY(*motLF) = (VP_PAR) (factor*(double) MZY(*motLF) + (1.0-factor)* (double) MZY(*inmot));
+            MZZ(*motLF) = (VP_PAR) (factor*(double) MZZ(*motLF) + (1.0-factor)* (double) MZZ(*inmot));
+            MZW(*motLF) = (VP_PAR) (factor*(double) MZW(*motLF) + (1.0-factor)* (double) MZW(*inmot));
+
+            MWX(*motLF) = (VP_PAR) (factor*(double) MWX(*motLF) + (1.0-factor)* (double) MWX(*inmot));
+            MWY(*motLF) = (VP_PAR) (factor*(double) MWY(*motLF) + (1.0-factor)* (double) MWY(*inmot));
+            MWZ(*motLF) = (VP_PAR) (factor*(double) MWZ(*motLF) + (1.0-factor)* (double) MWZ(*inmot));
+            MWW(*motLF) = (VP_PAR) (factor*(double) MWW(*motLF) + (1.0-factor)* (double) MWW(*inmot));
+        }
+        else {
+            vp_copy_motion(inmot, motLF);
+        }
+        // Only allow LF motion to be compensated. Remove HF motion from the output transformation
+        if(!vp_invert_motion(motLF, imotLF)) {
+#if DEBUG_PRINT
+            printfOS("Invert failed \n");
+#endif
+            return false;
+        }
+        if(!vp_cascade_motion(imotLF, inmot, outmot)) {
+#if DEBUG_PRINT
+            printfOS("cascade failed \n");
+#endif
+            return false;
+        }
+    }
+    return true;
+}
+
+
+
+
+bool db_StabilizationSmoother::is_point_in_rect(double px, double py, double rx, double ry, double w, double h)
+{
+    if (px < rx)
+        return(false);
+    if (px >= rx + w)
+        return(false);
+    if (py < ry)
+        return(false);
+    if (py >= ry + h)
+        return(false);
+
+    return(true);
+}
+
+
+
+static bool vpmotion_add(VP_MOTION *in1, VP_MOTION *in2, VP_MOTION *out)
+{
+    int i;
+    if(in1 == NULL || in2 == NULL || out == NULL)
+        return false;
+
+    for(i = 0; i < VP_MAX_MOTION_PAR; i++)
+        out->par[i] = in1->par[i] + in2->par[i];
+
+    return true;
+}
+
+static bool vpmotion_multiply(VP_MOTION *in1, double factor, VP_MOTION *out)
+{
+    int i;
+    if(in1 == NULL || out == NULL)
+        return false;
+
+    for(i = 0; i < VP_MAX_MOTION_PAR; i++)
+        out->par[i] = in1->par[i] * factor;
+
+    return true;
+}
+
diff --git a/perftests/panorama/feature_stab/src/dbreg/dbstabsmooth.h b/perftests/panorama/feature_stab/src/dbreg/dbstabsmooth.h
new file mode 100644
index 0000000..f03546e
--- /dev/null
+++ b/perftests/panorama/feature_stab/src/dbreg/dbstabsmooth.h
@@ -0,0 +1,157 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+#pragma once
+
+
+#ifdef _WIN32
+#ifdef DBREG_EXPORTS
+#define DBREG_API __declspec(dllexport)
+#else
+#define DBREG_API __declspec(dllimport)
+#endif
+#else
+#define DBREG_API
+#endif
+
+extern "C" {
+#include "vp_motionmodel.h"
+}
+
+#define MOTION_ARRAY 5
+
+
+/*!
+ * Performs smoothing on the motion estimate from feature_stab.
+ */
+class DBREG_API db_StabilizationSmoother
+{
+public:
+    db_StabilizationSmoother();
+    ~db_StabilizationSmoother();
+
+    /*!
+     * Initialize parameters for stab-smoother.
+    */
+    void Init();
+
+    //! Smothing type
+    typedef enum {
+        SimpleSmooth = 0, //!< simple smooth
+        AdaptSmooth  = 1, //!< adaptive smooth
+        PanSmooth    = 2  //!< pan motion smooth
+    } SmoothType;
+
+    /*!
+     * Smooth-motion is to do a weight-average between the current affine and
+     * motLF. The way to change the affine is only for the display purpose.
+     * It removes the high frequency motion and keep the low frequency motion
+     * to the display. IIR implmentation.
+     * \param inmot input motion parameters
+     * \param outmot smoothed output motion parameters
+    */
+    bool smoothMotion(VP_MOTION *inmot, VP_MOTION *outmot);
+
+    /*!
+     * The adaptive smoothing version of the above fixed smoothing function.
+     * \param hsize width of the image being aligned
+     * \param vsize height of the image being aligned
+     * \param inmot input motion parameters
+     * \param outmot    smoothed output motion parameters
+    */
+    bool smoothMotionAdaptive(/*VP_BIMG *bimg,*/int hsize, int vsize, VP_MOTION *inmot, VP_MOTION *outmot);
+    bool smoothPanMotion_1(VP_MOTION *inmot, VP_MOTION *outmot);
+    bool smoothPanMotion_2(VP_MOTION *inmot, VP_MOTION *outmot);
+
+    /*!
+    * Set the smoothing factor for the stab-smoother.
+    * \param factor the factor value to set
+    */
+    inline void setSmoothingFactor(float factor) { f_smoothFactor = factor; }
+
+    /*!
+     * Reset smoothing
+    */
+    inline void resetSmoothing(bool flag) { f_smoothReset = flag; }
+    /*!
+     * Set the zoom factor value.
+     * \param zoom  the value to set to
+    */
+    inline void setZoomFactor(float zoom) { f_zoom = zoom; }
+    /*!
+     * Set the minimum damping factor value.
+     * \param factor    the value to set to
+    */
+    inline void setminDampingFactor(float factor) { f_minDampingFactor = factor; }
+
+    /*!
+     * Returns the current smoothing factor.
+    */
+    inline float getSmoothingFactor(void) { return f_smoothFactor; }
+    /*!
+     * Returns the current zoom factor.
+    */
+    inline float getZoomFactor(void) { return f_zoom; }
+    /*!
+     * Returns the current minimum damping factor.
+    */
+    inline float getminDampingFactor(void) { return f_minDampingFactor; }
+    /*!
+     * Returns the current state of the smoothing reset flag.
+    */
+    inline bool  getSmoothReset(void) { return f_smoothReset; }
+    /*!
+     * Returns the current low frequency motion parameters.
+    */
+    inline VP_MOTION getMotLF(void) { return f_motLF; }
+    /*!
+     * Returns the inverse of the current low frequency motion parameters.
+    */
+    inline VP_MOTION getImotLF(void) { return f_imotLF; }
+    /*!
+     * Set the dimensions of the alignment image.
+     * \param hsize width of the image
+     * \param vsize height of the image
+    */
+    inline void setSize(int hsize, int vsize) { f_hsize = hsize; f_vsize = vsize; }
+
+protected:
+
+    bool smoothMotion(VP_MOTION *inmot, VP_MOTION *outmot, double smooth_factor);
+    bool smoothMotion1(VP_MOTION *inmot, VP_MOTION *outmot, VP_MOTION *motLF, VP_MOTION *imotLF, double smooth_factor);
+    void iterativeSmooth(VP_MOTION *input, VP_MOTION *output, double border_factor);
+    bool is_point_in_rect(double px, double py, double rx, double ry, double w, double h);
+
+
+private:
+    int f_hsize;
+    int f_vsize;
+    bool f_smoothOn;
+    bool f_smoothReset;
+    float f_smoothFactor;
+    float f_minDampingFactor;
+    float f_zoom;
+    VP_MOTION f_motLF;
+    VP_MOTION f_imotLF;
+    VP_MOTION f_hist_mot[MOTION_ARRAY];
+    VP_MOTION f_hist_mot_speed[MOTION_ARRAY-1];
+    VP_MOTION f_hist_diff_mot[MOTION_ARRAY-1];
+    VP_MOTION f_disp_mot;
+    VP_MOTION f_src_mot;
+    VP_MOTION f_diff_avg;
+
+};
+
diff --git a/perftests/panorama/feature_stab/src/dbreg/targetver.h b/perftests/panorama/feature_stab/src/dbreg/targetver.h
new file mode 100644
index 0000000..3ca3e87
--- /dev/null
+++ b/perftests/panorama/feature_stab/src/dbreg/targetver.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+#pragma once
+
+// The following macros define the minimum required platform.  The minimum required platform
+// is the earliest version of Windows, Internet Explorer etc. that has the necessary features to run
+// your application.  The macros work by enabling all features available on platform versions up to and
+// including the version specified.
+
+// Modify the following defines if you have to target a platform prior to the ones specified below.
+// Refer to MSDN for the latest info on corresponding values for different platforms.
+#ifndef WINVER                          // Specifies that the minimum required platform is Windows Vista.
+#define WINVER 0x0600           // Change this to the appropriate value to target other versions of Windows.
+#endif
+
+#ifndef _WIN32_WINNT            // Specifies that the minimum required platform is Windows Vista.
+#define _WIN32_WINNT 0x0600     // Change this to the appropriate value to target other versions of Windows.
+#endif
+
+#ifndef _WIN32_WINDOWS          // Specifies that the minimum required platform is Windows 98.
+#define _WIN32_WINDOWS 0x0410 // Change this to the appropriate value to target Windows Me or later.
+#endif
+
+#ifndef _WIN32_IE                       // Specifies that the minimum required platform is Internet Explorer 7.0.
+#define _WIN32_IE 0x0700        // Change this to the appropriate value to target other versions of IE.
+#endif
diff --git a/perftests/panorama/feature_stab/src/dbreg/vp_motionmodel.c b/perftests/panorama/feature_stab/src/dbreg/vp_motionmodel.c
new file mode 100644
index 0000000..1f6af15
--- /dev/null
+++ b/perftests/panorama/feature_stab/src/dbreg/vp_motionmodel.c
@@ -0,0 +1,377 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+/*
+#sourcefile  vpmotion/vp_motionmodel.c
+#category    motion-model
+*
+* Copyright 1998 Sarnoff Corporation
+* All Rights Reserved
+*
+* Modification History
+*      Date: 02/14/98
+*      Author: supuns
+*      Shop Order: 17xxx
+*              @(#) $Id: vp_motionmodel.c,v 1.4 2011/06/17 14:04:33 mbansal Exp $
+*/
+
+/*
+* ===================================================================
+* Include Files
+*/
+
+#include <string.h> /* memmove */
+#include <math.h>
+#include "vp_motionmodel.h"
+
+/* Static Functions */
+static
+double Det3(double m[3][3])
+{
+  double result;
+
+  result =
+    m[0][0]*m[1][1]*m[2][2] + m[0][1]*m[1][2]*m[2][0] +
+    m[0][2]*m[1][0]*m[2][1] - m[0][2]*m[1][1]*m[2][0] -
+    m[0][0]*m[1][2]*m[2][1] - m[0][1]*m[1][0]*m[2][2];
+
+  return(result);
+}
+
+typedef double MATRIX[4][4];
+
+static
+double Det4(MATRIX m)
+{
+    /* ==> This is a poor implementation of determinant.
+       Writing the formula out in closed form is unnecessarily complicated
+       and mistakes are easy to make. */
+  double result;
+
+  result=
+    m[0][3] *m[1][2] *m[2][1] *m[3][0] - m[0][2] *m[1][3] *m[2][1] *m[3][0] - m[0][3] *m[1][1] *m[2][2] *m[3][0] +
+    m[0][1] *m[1][3] *m[2][2] *m[3][0] + m[0][2] *m[1][1] *m[2][3] *m[3][0] - m[0][1] *m[1][2] *m[2][3] *m[3][0] - m[0][3] *m[1][2] *m[2][0] *m[3][1] +
+    m[0][2] *m[1][3] *m[2][0] *m[3][1] + m[0][3] *m[1][0] *m[2][2] *m[3][1] - m[0][0] *m[1][3] *m[2][2] *m[3][1] - m[0][2] *m[1][0] *m[2][3] *m[3][1] +
+    m[0][0] *m[1][2] *m[2][3] *m[3][1] + m[0][3] *m[1][1] *m[2][0] *m[3][2] - m[0][1] *m[1][3] *m[2][0] *m[3][2] - m[0][3] *m[1][0] *m[2][1] *m[3][2] +
+    m[0][0] *m[1][3] *m[2][1] *m[3][2] + m[0][1] *m[1][0] *m[2][3] *m[3][2] - m[0][0] *m[1][1] *m[2][3] *m[3][2] - m[0][2] *m[1][1] *m[2][0] *m[3][3] +
+    m[0][1] *m[1][2] *m[2][0] *m[3][3] + m[0][2] *m[1][0] *m[2][1] *m[3][3] - m[0][0] *m[1][2] *m[2][1] *m[3][3] - m[0][1] *m[1][0] *m[2][2] *m[3][3] +
+    m[0][0] *m[1][1] *m[2][2] *m[3][3];
+  /*
+    m[0][0]*m[1][1]*m[2][2]*m[3][3]-m[0][1]*m[1][0]*m[2][2]*m[3][3]+
+    m[0][1]*m[1][2]*m[2][0]*m[3][3]-m[0][2]*m[1][1]*m[2][0]*m[3][3]+
+    m[0][2]*m[1][0]*m[2][1]*m[3][3]-m[0][0]*m[1][2]*m[2][1]*m[3][3]+
+    m[0][0]*m[1][2]*m[2][3]*m[3][1]-m[0][2]*m[1][0]*m[2][3]*m[3][1]+
+    m[0][2]*m[1][3]*m[2][0]*m[3][1]-m[0][3]*m[1][2]*m[2][0]*m[3][1]+
+    m[0][3]*m[1][0]*m[2][2]*m[3][1]-m[0][0]*m[1][3]*m[2][2]*m[3][1]+
+    m[0][0]*m[1][3]*m[2][1]*m[3][2]-m[0][3]*m[1][0]*m[2][3]*m[3][2]+
+    m[0][1]*m[1][0]*m[2][3]*m[3][2]-m[0][0]*m[1][1]*m[2][0]*m[3][2]+
+    m[0][3]*m[1][1]*m[2][0]*m[3][2]-m[0][1]*m[1][3]*m[2][1]*m[3][2]+
+    m[0][1]*m[1][3]*m[2][2]*m[3][0]-m[0][3]*m[1][1]*m[2][2]*m[3][0]+
+    m[0][2]*m[1][1]*m[2][3]*m[3][0]-m[0][1]*m[1][2]*m[2][3]*m[3][0]+
+    m[0][3]*m[1][2]*m[2][1]*m[3][0]-m[0][2]*m[1][3]*m[2][1]*m[3][0];
+    */
+  return(result);
+}
+
+static
+int inv4Mat(const VP_MOTION* in, VP_MOTION* out)
+{
+    /* ==> This is a poor implementation of inversion.  The determinant
+       method is O(N^4), i.e. unnecessarily slow, and not numerically accurate.
+       The real complexity of inversion is O(N^3), and is best done using
+       LU decomposition. */
+
+  MATRIX inmat,outmat;
+  int i, j, k, l, m, n,ntemp;
+  double mat[3][3], indet, temp;
+
+  /* check for non-empty structures structure */
+  if (((VP_MOTION *) NULL == in) || ((VP_MOTION *) NULL == out)) {
+    return 1;
+  }
+
+  for(k=0,i=0;i<4;i++)
+    for(j=0;j<4;j++,k++)
+      inmat[i][j]=(double)in->par[k];
+
+  indet = Det4(inmat);
+  if (indet==0) return(-1);
+
+  for (i=0;i<4;i++) {
+    for (j=0;j<4;j++) {
+      m = 0;
+      for (k=0;k<4;k++) {
+    if (i != k) {
+      n = 0;
+      for (l=0;l<4;l++)
+        if (j != l) {
+          mat[m][n] = inmat[k][l];
+          n++;
+        }
+      m++;
+    }
+      }
+
+      temp = -1.;
+      ntemp = (i +j ) %2;
+      if( ntemp == 0)  temp = 1.;
+
+      outmat[j][i] = temp * Det3(mat)/indet;
+    }
+  }
+
+  for(k=0,i=0;i<4;i++)
+    for(j=0;j<4;j++,k++)
+      out->par[k]=(VP_PAR)outmat[i][j]; /*lint !e771*/
+
+  return(0);
+}
+
+/*
+* ===================================================================
+* Public Functions
+#htmlstart
+*/
+
+/*
+ * ===================================================================
+#fn vp_invert_motion
+#ft invert a motion
+#fd DEFINITION
+       Bool
+       vp_invert_motion(const VP_MOTION* in,VP_MOTION* out)
+#fd PURPOSE
+       This inverts the motion given in 'in'.
+       All motion models upto VP_MOTION_SEMI_PROJ_3D are supported.
+       It is assumed that the all 16 parameters are properly
+       initialized although you may not be using them. You could
+       use the VP_KEEP_ macro's defined in vp_motionmodel.h to set
+       the un-initialized parameters. This uses a 4x4 matrix invertion
+       function internally.
+       It is SAFE to pass the same pointer as both the 'in' and 'out'
+       parameters.
+#fd INPUTS
+       in  - input motion
+#fd OUTPUTS
+       out - output inverted motion. If singular matrix uninitialized.
+             if MWW(in) is non-zero it is also normalized.
+#fd RETURNS
+       FALSE - matrix is singular or motion model not supported
+       TRUE  - otherwise
+#fd SIDE EFFECTS
+       None
+#endfn
+*/
+
+int vp_invert_motion(const VP_MOTION* in,VP_MOTION* out)
+{
+  int refid;
+
+  /* check for non-empty structures structure */
+  if (((VP_MOTION *) NULL == in) || ((VP_MOTION *) NULL == out)) {
+    return FALSE;
+  }
+
+  if (in->type>VP_MOTION_SEMI_PROJ_3D) {
+    return FALSE;
+  }
+
+  if (inv4Mat(in,out)<0)
+    return FALSE;
+
+  /*VP_NORMALIZE(*out);*/
+  out->type = in->type;
+  refid=in->refid;
+  out->refid=in->insid;
+  out->insid=refid;
+  return TRUE;
+}
+
+/*
+* ===================================================================
+#fn vp_cascade_motion
+#ft Cascade two motion transforms
+#fd DEFINITION
+      Bool
+      vp_cascade_motion(const VP_MOTION* InAB,const VP_MOTION* InBC,VP_MOTION* OutAC)
+#fd PURPOSE
+      Given Motion Transforms A->B and B->C, this function will
+      generate a New Motion that describes the transformation
+      from A->C.
+      More specifically, OutAC = InBC * InAC.
+      This function works ok if InAB,InBC and OutAC are the same pointer.
+#fd INPUTS
+      InAB - First Motion Transform
+      InBC - Second Motion Tranform
+#fd OUTPUTS
+      OutAC - Cascaded Motion
+#fd RETURNS
+      FALSE - motion model not supported
+      TRUE  - otherwise
+#fd SIDE EFFECTS
+      None
+#endfn
+*/
+
+int vp_cascade_motion(const VP_MOTION* InA, const VP_MOTION* InB,VP_MOTION* Out)
+{
+    /* ==> This is a poor implementation of matrix multiplication.
+       Writing the formula out in closed form is unnecessarily complicated
+       and mistakes are easy to make. */
+  VP_PAR mxx,mxy,mxz,mxw;
+  VP_PAR myx,myy,myz,myw;
+  VP_PAR mzx,mzy,mzz,mzw;
+  VP_PAR mwx,mwy,mwz,mww;
+
+  /* check for non-empty structures structure */
+  if (((VP_MOTION *) NULL == InA) || ((VP_MOTION *) NULL == InB) ||
+      ((VP_MOTION *) NULL == Out)) {
+    return FALSE;
+  }
+
+  if (InA->type>VP_MOTION_PROJ_3D) {
+    return FALSE;
+  }
+
+  if (InB->type>VP_MOTION_PROJ_3D) {
+    return FALSE;
+  }
+
+  mxx = MXX(*InB)*MXX(*InA)+MXY(*InB)*MYX(*InA)+MXZ(*InB)*MZX(*InA)+MXW(*InB)*MWX(*InA);
+  mxy = MXX(*InB)*MXY(*InA)+MXY(*InB)*MYY(*InA)+MXZ(*InB)*MZY(*InA)+MXW(*InB)*MWY(*InA);
+  mxz = MXX(*InB)*MXZ(*InA)+MXY(*InB)*MYZ(*InA)+MXZ(*InB)*MZZ(*InA)+MXW(*InB)*MWZ(*InA);
+  mxw = MXX(*InB)*MXW(*InA)+MXY(*InB)*MYW(*InA)+MXZ(*InB)*MZW(*InA)+MXW(*InB)*MWW(*InA);
+  myx = MYX(*InB)*MXX(*InA)+MYY(*InB)*MYX(*InA)+MYZ(*InB)*MZX(*InA)+MYW(*InB)*MWX(*InA);
+  myy = MYX(*InB)*MXY(*InA)+MYY(*InB)*MYY(*InA)+MYZ(*InB)*MZY(*InA)+MYW(*InB)*MWY(*InA);
+  myz = MYX(*InB)*MXZ(*InA)+MYY(*InB)*MYZ(*InA)+MYZ(*InB)*MZZ(*InA)+MYW(*InB)*MWZ(*InA);
+  myw = MYX(*InB)*MXW(*InA)+MYY(*InB)*MYW(*InA)+MYZ(*InB)*MZW(*InA)+MYW(*InB)*MWW(*InA);
+  mzx = MZX(*InB)*MXX(*InA)+MZY(*InB)*MYX(*InA)+MZZ(*InB)*MZX(*InA)+MZW(*InB)*MWX(*InA);
+  mzy = MZX(*InB)*MXY(*InA)+MZY(*InB)*MYY(*InA)+MZZ(*InB)*MZY(*InA)+MZW(*InB)*MWY(*InA);
+  mzz = MZX(*InB)*MXZ(*InA)+MZY(*InB)*MYZ(*InA)+MZZ(*InB)*MZZ(*InA)+MZW(*InB)*MWZ(*InA);
+  mzw = MZX(*InB)*MXW(*InA)+MZY(*InB)*MYW(*InA)+MZZ(*InB)*MZW(*InA)+MZW(*InB)*MWW(*InA);
+  mwx = MWX(*InB)*MXX(*InA)+MWY(*InB)*MYX(*InA)+MWZ(*InB)*MZX(*InA)+MWW(*InB)*MWX(*InA);
+  mwy = MWX(*InB)*MXY(*InA)+MWY(*InB)*MYY(*InA)+MWZ(*InB)*MZY(*InA)+MWW(*InB)*MWY(*InA);
+  mwz = MWX(*InB)*MXZ(*InA)+MWY(*InB)*MYZ(*InA)+MWZ(*InB)*MZZ(*InA)+MWW(*InB)*MWZ(*InA);
+  mww = MWX(*InB)*MXW(*InA)+MWY(*InB)*MYW(*InA)+MWZ(*InB)*MZW(*InA)+MWW(*InB)*MWW(*InA);
+
+  MXX(*Out)=mxx; MXY(*Out)=mxy; MXZ(*Out)=mxz; MXW(*Out)=mxw;
+  MYX(*Out)=myx; MYY(*Out)=myy; MYZ(*Out)=myz; MYW(*Out)=myw;
+  MZX(*Out)=mzx; MZY(*Out)=mzy; MZZ(*Out)=mzz; MZW(*Out)=mzw;
+  MWX(*Out)=mwx; MWY(*Out)=mwy; MWZ(*Out)=mwz; MWW(*Out)=mww;
+  /* VP_NORMALIZE(*Out); */
+  Out->type= (InA->type > InB->type) ? InA->type : InB->type;
+  Out->refid=InA->refid;
+  Out->insid=InB->insid;
+
+  return TRUE;
+}
+
+/*
+* ===================================================================
+#fn vp_copy_motion
+#ft Copies the source motion to the destination motion.
+#fd DEFINITION
+    void
+    vp_copy_motion  (const VP_MOTION *src, VP_MOTION *dst)
+#fd PURPOSE
+    Copies the source motion to the destination motion.
+        It is OK if src == dst.
+    NOTE THAT THE SOURCE IS THE FIRST ARGUMENT.
+    This is different from some of the other VP
+    copy functions.
+#fd INPUTS
+    src is the source motion
+    dst is the destination motion
+#fd RETURNS
+    void
+#endfn
+*/
+void vp_copy_motion  (const VP_MOTION *src, VP_MOTION *dst)
+{
+  /* Use memmove rather than memcpy because it handles overlapping memory
+     OK. */
+  memmove(dst, src, sizeof(VP_MOTION));
+  return;
+} /* vp_copy_motion() */
+
+#define VP_SQR(x)   ( (x)*(x) )
+double vp_motion_cornerdiff(const VP_MOTION *mot_a, const VP_MOTION *mot_b,
+                     int xo, int yo, int w, int h)
+{
+  double ax1, ay1, ax2, ay2, ax3, ay3, ax4, ay4;
+  double bx1, by1, bx2, by2, bx3, by3, bx4, by4;
+  double err;
+
+  /*lint -e639 -e632 -e633 */
+  VP_WARP_POINT_2D(xo, yo,         *mot_a, ax1, ay1);
+  VP_WARP_POINT_2D(xo+w-1, yo,     *mot_a, ax2, ay2);
+  VP_WARP_POINT_2D(xo+w-1, yo+h-1, *mot_a, ax3, ay3);
+  VP_WARP_POINT_2D(xo, yo+h-1,     *mot_a, ax4, ay4);
+  VP_WARP_POINT_2D(xo, yo,         *mot_b, bx1, by1);
+  VP_WARP_POINT_2D(xo+w-1, yo,     *mot_b, bx2, by2);
+  VP_WARP_POINT_2D(xo+w-1, yo+h-1, *mot_b, bx3, by3);
+  VP_WARP_POINT_2D(xo, yo+h-1,     *mot_b, bx4, by4);
+  /*lint +e639 +e632 +e633 */
+
+  err = 0;
+  err += (VP_SQR(ax1 - bx1) + VP_SQR(ay1 - by1));
+  err += (VP_SQR(ax2 - bx2) + VP_SQR(ay2 - by2));
+  err += (VP_SQR(ax3 - bx3) + VP_SQR(ay3 - by3));
+  err += (VP_SQR(ax4 - bx4) + VP_SQR(ay4 - by4));
+
+  return(sqrt(err));
+}
+
+int vp_zoom_motion2d(VP_MOTION* in, VP_MOTION* out,
+                 int n, int w, int h, double zoom)
+{
+  int ii;
+  VP_PAR inv_zoom;
+  VP_PAR cx, cy;
+  VP_MOTION R2r,R2f;
+  VP_MOTION *res;
+
+  /* check for non-empty structures structure */
+  if (((VP_MOTION *) NULL == in)||(zoom <= 0.0)||(w <= 0)||(h <= 0)) {
+    return FALSE;
+  }
+
+  /* ==> Not sure why the special case of out=NULL is necessary.  Why couldn't
+     the caller just pass the same pointer for both in and out? */
+  res = ((VP_MOTION *) NULL == out)?in:out;
+
+  cx = (VP_PAR) (w/2.0);
+  cy = (VP_PAR) (h/2.0);
+
+  VP_MOTION_ID(R2r);
+  inv_zoom = (VP_PAR)(1.0/zoom);
+  MXX(R2r) = inv_zoom;
+  MYY(R2r) = inv_zoom;
+  MXW(R2r)=cx*(((VP_PAR)1.0) - inv_zoom);
+  MYW(R2r)=cy*(((VP_PAR)1.0) - inv_zoom);
+
+  VP_KEEP_AFFINE_2D(R2r);
+
+  for(ii=0;ii<n;ii++) {
+    (void) vp_cascade_motion(&R2r,in+ii,&R2f);
+    res[ii]=R2f;
+  }
+
+  return TRUE;
+} /* vp_zoom_motion2d() */
+
+/* =================================================================== */
+/* end vp_motionmodel.c */
diff --git a/perftests/panorama/feature_stab/src/dbreg/vp_motionmodel.h b/perftests/panorama/feature_stab/src/dbreg/vp_motionmodel.h
new file mode 100644
index 0000000..a63ac00
--- /dev/null
+++ b/perftests/panorama/feature_stab/src/dbreg/vp_motionmodel.h
@@ -0,0 +1,282 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+/*
+#sourcefile  vp_motionmodel.h
+#category    warp
+#description general motion model for tranlation/affine/projective
+#title       motion-model
+#parentlink  hindex.html
+*
+* Copyright 1998 Sarnoff Corporation
+* All Rights Reserved
+*
+* Modification History
+*      Date: 02/13/98
+*      Author: supuns
+*      Shop Order: 15491 001
+*              @(#) $Id: vp_motionmodel.h,v 1.4 2011/06/17 14:04:33 mbansal Exp $
+*/
+
+#ifndef VP_MOTIONMODEL_H
+#define VP_MOTIONMODEL_H
+#include <stdio.h>
+
+#define         FALSE           0
+#define         TRUE            1
+
+#if 0 /* Moved mottomat.c and mattomot_d.c from vpmotion.h to vpcompat.h
+     in order to remove otherwise unnecessary dependency of vpmotion,
+     vpwarp, and newvpio on vpmath */
+#ifndef VPMATH_H
+#include "vpmath.h"
+#endif
+#endif
+
+#if 0
+#ifndef VP_WARP_H
+#include "vp_warp.h"
+#endif
+#endif
+/*
+
+#htmlstart
+# ===================================================================
+#h 1 Introduction
+
+  This defines a motion model that can describe translation,
+  affine, and projective projective 3d and 3d view transforms.
+
+  The main structure VP_MOTION contains a 16 parameter array (That
+  can be considered as elements of a 4x4 matrix) and a type field
+  which can be one of VP_MOTION_NONE,VP_MOTION_TRANSLATION,
+  VP_MOTION_AFFINE, VP_MOTION_PROJECTIVE,VP_MOTION_PROJ_3D or
+  VP_MOTION_VIEW_3D. (These are defined using enums with gaps of 10
+  so that subsets of these motions that are still consistant can be
+  added in between. Motion models that are inconsistant with this set
+  should be added at the end so the routines can hadle them
+  independently.
+
+  The transformation VP_MOTION_NONE,VP_MOTION_TRANSLATION,
+  VP_MOTION_AFFINE, VP_MOTION_PROJECTIVE, VP_MOTION_PROJ_3D and
+  VP_MOTION_SEMI_PROJ_3D would map a point P={x,y,z,w} to a new point
+  P'={x',y',z',w'} using a motion model M such that P'= M.par * P.
+  Where M.par is thought of as  elements of a 4x4 matrix ordered row
+  by row. The interpretation of all models except VP_MOTION_SEMI_PROJ_3D
+  is taken to be mapping of a 3d point P"={x",y",z"} which is obtained
+  from the normalization {x'/w',y'/w',z'/w'}. In the VP_MOTION_SEMI_PROJ_3D
+  the mapping to a point P"={x",y",z"} is obtained from the normalization
+  {x'/w',y'/w',z'}. All these motion models have the property that they
+  can be inverted using 4x4 matrices. Except for the VP_MOTION_SEMI_PROJ_3D all
+  other types can also be cascaded using 4x4 matrices.
+
+  Specific macros and functions have been provided to handle 2d instances
+  of these functions. As the parameter interpretations can change when adding
+  new motion models it is HIGHLY RECOMMENDED that you use the macros MXX,MXY..
+  ect. to interpret each motion component.
+#pre
+*/
+
+/*
+#endpre
+# ===================================================================
+#h 1 Typedef and Struct Declarations
+#pre
+*/
+
+#define VP_MAX_MOTION_PAR 16
+
+typedef double VP_PAR;
+typedef VP_PAR VP_TRS[VP_MAX_MOTION_PAR];
+
+/* Do not add any motion models before VP_MOTION_PROJECTIVE */
+/* The order is assumed in vp functions */
+enum VP_MOTION_MODEL {
+  VP_MOTION_NONE=0,
+  VP_MOTION_TRANSLATION=10,
+  VP_MOTION_SCALE=11,
+  VP_MOTION_ROTATE=12,
+  VP_MOTION_X_SHEAR=13,
+  VP_MOTION_Y_SHEAR=14,
+  VP_MOTION_SIMILARITY=15,
+  VP_MOTION_AFFINE=20,
+  VP_MOTION_PROJECTIVE=30,
+  VP_MOTION_PROJ_3D=40,
+  VP_MOTION_SEMI_PROJ_3D=80,
+  VP_SIMILARITY=100,
+  VP_VFE_AFFINE=120
+};
+
+#define VP_REFID -1   /* Default ID used for reference frame */
+
+typedef struct {
+  VP_TRS par;            /* Contains the motion paramerers.
+                For the standard motion types this is
+                represented as 16 number that refer
+                to a 4x4 matrix */
+  enum VP_MOTION_MODEL type;
+  int refid;            /* Reference frame ( takes a point in refid frame
+               and moves it by the par to get a point in insid
+               frame ) */
+  int insid;            /* Inspection frame */
+} VP_MOTION;
+
+//typedef VP_LIST VP_MOTION_LIST;
+/*
+#endpre
+# ===================================================================
+#h 1 Constant Declarations
+*/
+
+/* Macros related to the 4x4 matrix parameters */
+#define MXX(m) (m).par[0]
+#define MXY(m) (m).par[1]
+#define MXZ(m) (m).par[2]
+#define MXW(m) (m).par[3]
+#define MYX(m) (m).par[4]
+#define MYY(m) (m).par[5]
+#define MYZ(m) (m).par[6]
+#define MYW(m) (m).par[7]
+#define MZX(m) (m).par[8]
+#define MZY(m) (m).par[9]
+#define MZZ(m) (m).par[10]
+#define MZW(m) (m).par[11]
+#define MWX(m) (m).par[12]
+#define MWY(m) (m).par[13]
+#define MWZ(m) (m).par[14]
+#define MWW(m) (m).par[15]
+
+/* The do {...} while (0) technique creates a statement that can be used legally
+   in an if-else statement.  See "Swallowing the semicolon",
+   http://gcc.gnu.org/onlinedocs/gcc-2.95.3/cpp_1.html#SEC23 */
+/* Initialize the Motion to be Identity */
+#define VP_MOTION_ID(m) do {\
+  MXX(m)=MYY(m)=MZZ(m)=MWW(m)=(VP_PAR)1.0; \
+  MXY(m)=MXZ(m)=MXW(m)=(VP_PAR)0.0; \
+  MYX(m)=MYZ(m)=MYW(m)=(VP_PAR)0.0; \
+  MZX(m)=MZY(m)=MZW(m)=(VP_PAR)0.0; \
+  MWX(m)=MWY(m)=MWZ(m)=(VP_PAR)0.0; \
+(m).type = VP_MOTION_TRANSLATION; } while (0)
+
+/* Initialize without altering the translation components */
+#define VP_KEEP_TRANSLATION_3D(m) do {\
+  MXX(m)=MYY(m)=MZZ(m)=MWW(m)=(VP_PAR)1.0; \
+  MXY(m)=MXZ(m)=(VP_PAR)0.0; \
+  MYX(m)=MYZ(m)=(VP_PAR)0.0; \
+  MZX(m)=MZY(m)=(VP_PAR)0.0; \
+  MWX(m)=MWY(m)=MWZ(m)=(VP_PAR)0.0; \
+  (m).type = VP_MOTION_PROJ_3D; } while (0)
+
+/* Initialize without altering the 2d translation components */
+#define VP_KEEP_TRANSLATION_2D(m) do {\
+  VP_KEEP_TRANSLATION_3D(m); MZW(m)=(VP_PAR)0.0; (m).type= VP_MOTION_TRANSLATION;} while (0)
+
+/* Initialize without altering the affine & translation components */
+#define VP_KEEP_AFFINE_3D(m) do {\
+  MWX(m)=MWY(m)=MWZ(m)=(VP_PAR)0.0; MWW(m)=(VP_PAR)1.0; \
+  (m).type = VP_MOTION_PROJ_3D; } while (0)
+
+/* Initialize without altering the 2d affine & translation components */
+#define VP_KEEP_AFFINE_2D(m) do {\
+  VP_KEEP_AFFINE_3D(m); \
+  MXZ(m)=MYZ(m)=(VP_PAR)0.0; MZZ(m)=(VP_PAR)1.0; \
+  MZX(m)=MZY(m)=MZW(m)=(VP_PAR)0.0; \
+  (m).type = VP_MOTION_AFFINE; } while (0)
+
+/* Initialize without altering the 2d projective parameters */
+#define VP_KEEP_PROJECTIVE_2D(m) do {\
+  MXZ(m)=MYZ(m)=(VP_PAR)0.0; MZZ(m)=(VP_PAR)1.0; \
+  MZX(m)=MZY(m)=MZW(m)=MWZ(m)=(VP_PAR)0.0; \
+  (m).type = VP_MOTION_PROJECTIVE; } while (0)
+
+/* Warp a 2d point (assuming the z component is zero) */
+#define VP_WARP_POINT_2D(inx,iny,m,outx,outy) do {\
+  VP_PAR vpTmpWarpPnt___= MWX(m)*(inx)+MWY(m)*(iny)+MWW(m); \
+  outx = (MXX(m)*((VP_PAR)inx)+MXY(m)*((VP_PAR)iny)+MXW(m))/vpTmpWarpPnt___; \
+  outy = (MYX(m)*((VP_PAR)inx)+MYY(m)*((VP_PAR)iny)+MYW(m))/vpTmpWarpPnt___; } while (0)
+
+/* Warp a 3d point */
+#define VP_WARP_POINT_3D(inx,iny,inz,m,outx,outy,outz) do {\
+  VP_PAR vpTmpWarpPnt___= MWX(m)*(inx)+MWY(m)*(iny)+MWZ(m)*((VP_PAR)inz)+MWW(m); \
+  outx = (MXX(m)*((VP_PAR)inx)+MXY(m)*((VP_PAR)iny)+MXZ(m)*((VP_PAR)inz)+MXW(m))/vpTmpWarpPnt___; \
+  outy = (MYX(m)*((VP_PAR)inx)+MYY(m)*((VP_PAR)iny)+MYZ(m)*((VP_PAR)inz)+MYW(m))/vpTmpWarpPnt___; \
+  outz = MZX(m)*((VP_PAR)inx)+MZY(m)*((VP_PAR)iny)+MZZ(m)*((VP_PAR)inz)+MZW(m); \
+  if ((m).type==VP_MOTION_PROJ_3D) outz/=vpTmpWarpPnt___; } while (0)
+
+/* Projections of each component */
+#define VP_PROJW_3D(m,x,y,z,f)   ( MWX(m)*(x)+MWY(m)*(y)+MWZ(m)*(z)+MWW(m) )
+#define VP_PROJX_3D(m,x,y,z,f,w) ((MXX(m)*(x)+MXY(m)*(y)+MXZ(m)*(z)+MXW(m))/(w))
+#define VP_PROJY_3D(m,x,y,z,f,w) ((MYX(m)*(x)+MYY(m)*(y)+MYZ(m)*(z)+MYW(m))/(w))
+#define VP_PROJZ_3D(m,x,y,z,f,w) ((MZX(m)*(x)+MZY(m)*(y)+MZZ(m)*(z)+MZW(m))/(w))
+
+/* Scale Down a matrix by Sfactor */
+#define VP_SCALEDOWN(m,Sfactor) do { \
+  MXW(m) /= (VP_PAR)Sfactor; MWX(m) *= (VP_PAR)Sfactor; \
+  MYW(m) /= (VP_PAR)Sfactor; MWY(m) *= (VP_PAR)Sfactor; \
+  MZW(m) /= (VP_PAR)Sfactor; MWZ(m) *= (VP_PAR)Sfactor; } while (0)
+
+/* Scale Up a matrix by Sfactor */
+#define VP_SCALEUP(m,Sfactor) do { \
+  MXW(m) *= (VP_PAR)Sfactor; MWX(m) /= (VP_PAR)Sfactor; \
+  MYW(m) *= (VP_PAR)Sfactor; MWY(m) /= (VP_PAR)Sfactor; \
+  MZW(m) *= (VP_PAR)Sfactor; MWZ(m) /= (VP_PAR)Sfactor; } while (0)
+
+/* Normalize the transformation matrix so that MWW is 1 */
+#define VP_NORMALIZE(m) if (MWW(m)!=(VP_PAR)0.0) do { \
+  MXX(m)/=MWW(m); MXY(m)/=MWW(m); MXZ(m)/=MWW(m); MXW(m)/= MWW(m); \
+  MYX(m)/=MWW(m); MYY(m)/=MWW(m); MYZ(m)/=MWW(m); MYW(m)/= MWW(m); \
+  MZX(m)/=MWW(m); MZY(m)/=MWW(m); MZZ(m)/=MWW(m); MZW(m)/= MWW(m); \
+  MWX(m)/=MWW(m); MWY(m)/=MWW(m); MWZ(m)/=MWW(m); MWW(m) = (VP_PAR)1.0; } while (0)
+
+#define VP_PRINT_TRANS(msg,b) do { \
+  fprintf(stderr, \
+      "%s\n%f %f %f %f\n%f %f %f %f\n%f %f %f %f\n%f %f %f %f\n", \
+      msg, \
+      MXX(b),MXY(b),MXZ(b),MXW(b),  \
+      MYX(b),MYY(b),MYZ(b),MYW(b),  \
+      MZX(b),MZY(b),MZZ(b),MZW(b),  \
+      MWX(b),MWY(b),MWZ(b),MWW(b)); \
+} while (0)
+
+/* w' projection given a point x,y,0,f */
+#define VP_PROJZ(m,x,y,f) ( \
+    MWX(m)*((VP_PAR)x)+MWY(m)*((VP_PAR)y)+MWW(m)*((VP_PAR)f))
+
+/* X Projection given a point x,y,0,f and w' */
+#define VP_PROJX(m,x,y,w,f) (\
+   (MXX(m)*((VP_PAR)x)+MXY(m)*((VP_PAR)y)+MXW(m)*((VP_PAR)f))/((VP_PAR)w))
+
+/* Y Projection given a point x,y,0,f and the w' */
+#define VP_PROJY(m,x,y,w,f) (\
+  (MYX(m)*((VP_PAR)x)+MYY(m)*((VP_PAR)y)+MYW(m)*((VP_PAR)f))/((VP_PAR)w))
+
+/* Set the reference id for a motion */
+#define VP_SET_REFID(m,id) do { (m).refid=id; } while (0)
+
+/* Set the inspection id for a motion */
+#define VP_SET_INSID(m,id) do { (m).insid=id; } while (0)
+
+void vp_copy_motion  (const VP_MOTION *src, VP_MOTION *dst);
+int vp_invert_motion(const VP_MOTION* in,VP_MOTION* out);
+int vp_cascade_motion(const VP_MOTION* InAB, const VP_MOTION* InBC,VP_MOTION* OutAC);
+int vp_zoom_motion2d(VP_MOTION* in, VP_MOTION* out,
+              int n, int w, int h, double zoom);
+double vp_motion_cornerdiff(const VP_MOTION *mot_a, const VP_MOTION *mot_b,
+                     int xo, int yo, int w, int h);
+
+#endif /* VP_MOTIONMODEL_H */
+/* =================================================================== */
+/* end vp_motionmodel.h */
diff --git a/perftests/panorama/feature_stab/src/dbregtest/PgmImage.cpp b/perftests/panorama/feature_stab/src/dbregtest/PgmImage.cpp
new file mode 100644
index 0000000..0891cfd
--- /dev/null
+++ b/perftests/panorama/feature_stab/src/dbregtest/PgmImage.cpp
@@ -0,0 +1,260 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+#include "PgmImage.h"
+#include <cassert>
+
+using namespace std;
+
+PgmImage::PgmImage(std::string filename) :
+m_w(0),m_h(0),m_colors(255),m_format(PGM_BINARY_GRAYMAP),m_over_allocation(256)
+{
+    if ( !ReadPGM(filename) )
+        return;
+}
+
+PgmImage::PgmImage(int w, int h, int format) :
+m_colors(255),m_w(w),m_h(h),m_format(format),m_over_allocation(256)
+{
+    SetFormat(format);
+}
+
+PgmImage::PgmImage(unsigned char *data, int w, int h) :
+m_colors(255),m_w(w),m_h(h),m_format(PGM_BINARY_GRAYMAP),m_over_allocation(256)
+{
+    SetData(data);
+}
+
+PgmImage::PgmImage(std::vector<unsigned char> &data, int w, int h) :
+m_colors(255),m_w(w),m_h(h),m_format(PGM_BINARY_GRAYMAP),m_over_allocation(256)
+{
+    if ( data.size() == w*h )
+        SetData(&data[0]);
+    else
+        //throw (std::exception("Size of data is not w*h."));
+        throw (std::exception());
+}
+
+PgmImage::PgmImage(const PgmImage &im) :
+m_colors(255),m_w(0),m_h(0),m_format(PGM_BINARY_GRAYMAP),m_over_allocation(256)
+{
+    DeepCopy(im, *this);
+}
+
+PgmImage& PgmImage::operator= (const PgmImage &im)
+{
+    if (this == &im) return *this;
+    DeepCopy(im, *this);
+    return *this;
+}
+
+void PgmImage::DeepCopy(const PgmImage& src, PgmImage& dst)
+{
+    dst.m_data = src.m_data;
+
+    // PGM data
+    dst.m_w = src.m_w;
+    dst.m_h = src.m_h;
+    dst.m_format = src.m_format;
+    dst.m_colors = src.m_colors;
+
+    dst.m_comment = src.m_comment;
+    SetupRowPointers();
+}
+
+PgmImage::~PgmImage()
+{
+
+}
+
+void PgmImage::SetFormat(int format)
+{
+    m_format = format;
+
+    switch (format)
+    {
+    case PGM_BINARY_GRAYMAP:
+        m_data.resize(m_w*m_h+m_over_allocation);
+        break;
+    case PGM_BINARY_PIXMAP:
+        m_data.resize(m_w*m_h*3+m_over_allocation);
+        break;
+    default:
+        return;
+        break;
+    }
+    SetupRowPointers();
+}
+
+void PgmImage::SetData(const unsigned char * data)
+{
+    m_data.resize(m_w*m_h+m_over_allocation);
+    memcpy(&m_data[0],data,m_w*m_h);
+    SetupRowPointers();
+}
+
+bool PgmImage::ReadPGM(const std::string filename)
+{
+    ifstream in(filename.c_str(),std::ios::in | std::ios::binary);
+    if ( !in.is_open() )
+        return false;
+
+    // read the header:
+    string format_header,size_header,colors_header;
+
+    getline(in,format_header);
+    stringstream s;
+    s << format_header;
+
+    s >> format_header >> m_w >> m_h >> m_colors;
+    s.clear();
+
+    if ( m_w == 0 )
+    {
+        while ( in.peek() == '#' )
+            getline(in,m_comment);
+
+        getline(in,size_header);
+
+        while ( in.peek() == '#' )
+            getline(in,m_comment);
+
+            m_colors = 0;
+
+        // parse header
+        s << size_header;
+        s >> m_w >> m_h >> m_colors;
+        s.clear();
+
+        if ( m_colors == 0 )
+        {
+            getline(in,colors_header);
+            s << colors_header;
+            s >> m_colors;
+        }
+    }
+
+    if ( format_header == "P5" )
+        m_format = PGM_BINARY_GRAYMAP;
+    else if (format_header == "P6" )
+        m_format = PGM_BINARY_PIXMAP;
+    else
+        m_format = PGM_FORMAT_INVALID;
+
+    switch(m_format)
+    {
+    case(PGM_BINARY_GRAYMAP):
+        m_data.resize(m_w*m_h+m_over_allocation);
+        in.read((char *)(&m_data[0]),m_data.size());
+        break;
+    case(PGM_BINARY_PIXMAP):
+        m_data.resize(m_w*m_h*3+m_over_allocation);
+        in.read((char *)(&m_data[0]),m_data.size());
+        break;
+    default:
+        return false;
+        break;
+    }
+    in.close();
+
+    SetupRowPointers();
+
+    return true;
+}
+
+bool PgmImage::WritePGM(const std::string filename, const std::string comment)
+{
+    string format_header;
+
+    switch(m_format)
+    {
+    case PGM_BINARY_GRAYMAP:
+        format_header = "P5\n";
+        break;
+    case PGM_BINARY_PIXMAP:
+        format_header = "P6\n";
+        break;
+    default:
+        return false;
+        break;
+    }
+
+    ofstream out(filename.c_str(),std::ios::out |ios::binary);
+    out << format_header << "# " << comment << '\n' << m_w << " " << m_h << '\n' << m_colors << '\n';
+
+    out.write((char *)(&m_data[0]), m_data.size());
+
+    out.close();
+
+    return true;
+}
+
+void PgmImage::SetupRowPointers()
+{
+    int i;
+    m_rows.resize(m_h);
+
+    switch (m_format)
+    {
+    case PGM_BINARY_GRAYMAP:
+        for(i=0;i<m_h;i++)
+        {
+            m_rows[i]=&m_data[m_w*i];
+        }
+        break;
+    case PGM_BINARY_PIXMAP:
+        for(i=0;i<m_h;i++)
+        {
+            m_rows[i]=&m_data[(m_w*3)*i];
+        }
+        break;
+    }
+}
+
+void PgmImage::ConvertToGray()
+{
+    if ( m_format != PGM_BINARY_PIXMAP ) return;
+
+    // Y = 0.3*R + 0.59*G + 0.11*B;
+    for ( int i = 0; i < m_w*m_h; ++i )
+        m_data[i] = (unsigned char)(0.3*m_data[3*i]+0.59*m_data[3*i+1]+0.11*m_data[3*i+2]);
+
+    m_data.resize(m_w*m_h+m_over_allocation);
+    m_format = PGM_BINARY_GRAYMAP;
+
+    SetupRowPointers();
+}
+
+std::ostream& operator<< (std::ostream& o, const PgmImage& im)
+{
+    o << "PGM Image Info:\n";
+    o << "Size: " << im.m_w << " x " << im.m_h << "\n";
+    o << "Comment: " << im.m_comment << "\n";
+    switch (im.m_format)
+    {
+    case PgmImage::PGM_BINARY_PIXMAP:
+        o << "Format: RGB binary pixmap";
+        break;
+    case PgmImage::PGM_BINARY_GRAYMAP:
+        o << "Format: PPM binary graymap";
+        break;
+    default:
+        o << "Format: Invalid";
+        break;
+    }
+    o << endl;
+    return o;
+}
diff --git a/perftests/panorama/feature_stab/src/dbregtest/PgmImage.h b/perftests/panorama/feature_stab/src/dbregtest/PgmImage.h
new file mode 100644
index 0000000..d4d1eeb
--- /dev/null
+++ b/perftests/panorama/feature_stab/src/dbregtest/PgmImage.h
@@ -0,0 +1,95 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+#pragma once
+
+#include <vector>
+#include <iostream>
+#include <fstream>
+#include <sstream>
+#include <memory.h>
+
+/*!
+ * Simple class to manipulate PGM/PPM images. Not suitable for heavy lifting.
+ */
+class PgmImage
+{
+    friend std::ostream& operator<< (std::ostream& o, const PgmImage& im);
+public:
+    enum {PGM_BINARY_GRAYMAP,PGM_BINARY_PIXMAP,PGM_FORMAT_INVALID};
+    /*!
+    * Constructor from a PGM file name.
+    */
+    PgmImage(std::string filename);
+    /*!
+    * Constructor to allocate an image of given size and type.
+    */
+    PgmImage(int w, int h, int format = PGM_BINARY_GRAYMAP);
+    /*!
+    * Constructor to allocate an image of given size and copy the data in.
+    */
+    PgmImage(unsigned char *data, int w, int h);
+    /*!
+    * Constructor to allocate an image of given size and copy the data in.
+    */
+    PgmImage(std::vector<unsigned char> &data, int w, int h);
+
+    PgmImage(const PgmImage &im);
+
+    PgmImage& operator= (const PgmImage &im);
+    ~PgmImage();
+
+    int GetHeight() const { return m_h; }
+    int GetWidth() const { return m_w; }
+
+    //! Copy pixels from data pointer
+    void SetData(const unsigned char * data);
+
+    //! Get a data pointer to unaligned memory area
+    unsigned char * GetDataPointer() { if ( m_data.size() > 0 ) return &m_data[0]; else return NULL; }
+    unsigned char ** GetRowPointers() { if ( m_rows.size() == m_h ) return &m_rows[0]; else return NULL; }
+
+    //! Read a PGM file from disk
+    bool ReadPGM(const std::string filename);
+    //! Write a PGM file to disk
+    bool WritePGM(const std::string filename, const std::string comment="");
+
+    //! Get image format (returns PGM_BINARY_GRAYMAP, PGM_BINARY_PIXMAP or PGM_FORMAT_INVALID)
+    int GetFormat() const { return m_format; }
+
+    //! Set image format (returns PGM_BINARY_GRAYMAP, PGM_BINARY_PIXMAP). Image data becomes invalid.
+    void SetFormat(int format);
+
+    //! If the image is PGM_BINARY_PIXMAP, convert it to PGM_BINARY_GRAYMAP via Y = 0.3*R + 0.59*G + 0.11*B.
+    void ConvertToGray();
+protected:
+    // Generic functions:
+    void DeepCopy(const PgmImage& src, PgmImage& dst);
+    void SetupRowPointers();
+
+    // PGM data
+    int m_w;
+    int m_h;
+    int m_format;
+    int m_colors;
+    int m_over_allocation;
+    std::vector<unsigned char> m_data;
+    std::string m_comment;
+
+    std::vector<unsigned char *> m_rows;
+};
+
+std::ostream& operator<< (std::ostream& o, const PgmImage& im);
diff --git a/perftests/panorama/feature_stab/src/dbregtest/dbregtest.cpp b/perftests/panorama/feature_stab/src/dbregtest/dbregtest.cpp
new file mode 100644
index 0000000..5087362
--- /dev/null
+++ b/perftests/panorama/feature_stab/src/dbregtest/dbregtest.cpp
@@ -0,0 +1,399 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+// $Id: dbregtest.cpp,v 1.24 2011/06/17 14:04:33 mbansal Exp $
+#include "stdafx.h"
+#include "PgmImage.h"
+#include "../dbreg/dbreg.h"
+#include "../dbreg/dbstabsmooth.h"
+#include <db_utilities_camera.h>
+
+#include <iostream>
+#include <iomanip>
+
+#if PROFILE
+    #include <sys/time.h>
+#endif
+
+
+using namespace std;
+
+const int DEFAULT_NR_CORNERS=500;
+const double DEFAULT_MAX_DISPARITY=0.2;
+const int DEFAULT_MOTION_MODEL=DB_HOMOGRAPHY_TYPE_AFFINE;
+//const int DEFAULT_MOTION_MODEL=DB_HOMOGRAPHY_TYPE_R_T;
+//const int DEFAULT_MOTION_MODEL=DB_HOMOGRAPHY_TYPE_TRANSLATION;
+const bool DEFAULT_QUARTER_RESOLUTION=false;
+const unsigned int DEFAULT_REFERENCE_UPDATE_PERIOD=3;
+const bool DEFAULT_DO_MOTION_SMOOTHING = false;
+const double DEFAULT_MOTION_SMOOTHING_GAIN = 0.75;
+const bool DEFAULT_LINEAR_POLISH = false;
+const int DEFAULT_MAX_ITERATIONS = 10;
+
+void usage(string name) {
+
+  const char *helpmsg[] = {
+    "Function: point-based frame to reference registration.",
+    "  -m [rt,a,p]  : motion model, rt = rotation+translation, a = affine (default = affine).",
+    "  -c <int>   : number of corners (default 1000).",
+    "  -d <double>: search disparity as portion of image size (default 0.1).",
+    "  -q         : quarter the image resolution (i.e. half of each dimension) (default on)",
+    "  -r <int>   : the period (in nr of frames) for reference frame updates (default = 5)",
+    "  -s <0/1>   : motion smoothing (1 activates motion smoothing, 0 turns it off - default value = 1)",
+    "  -g <double>: motion smoothing gain, only used if smoothing is on (default value =0.75)",
+    NULL
+  };
+
+  cerr << "Usage: " << name << " [options] image_list.txt" << endl;
+
+  const char **p = helpmsg;
+
+  while (*p)
+  {
+    cerr << *p++ << endl;
+  }
+}
+
+void parse_cmd_line(stringstream& cmdline,
+            const int argc,
+            const string& progname,
+            string& image_list_file_name,
+            int& nr_corners,
+            double& max_disparity,
+            int& motion_model_type,
+            bool& quarter_resolution,
+            unsigned int& reference_update_period,
+            bool& do_motion_smoothing,
+            double& motion_smoothing_gain
+            );
+
+int main(int argc, char* argv[])
+{
+  int    nr_corners = DEFAULT_NR_CORNERS;
+  double max_disparity = DEFAULT_MAX_DISPARITY;
+  int    motion_model_type = DEFAULT_MOTION_MODEL;
+  bool   quarter_resolution = DEFAULT_QUARTER_RESOLUTION;
+
+  unsigned int reference_update_period = DEFAULT_REFERENCE_UPDATE_PERIOD;
+
+  bool   do_motion_smoothing = DEFAULT_DO_MOTION_SMOOTHING;
+  double motion_smoothing_gain = DEFAULT_MOTION_SMOOTHING_GAIN;
+  const bool DEFAULT_USE_SMALLER_MATCHING_WINDOW = true;
+
+  int default_nr_samples = DB_DEFAULT_NR_SAMPLES/5;
+
+  bool   use_smaller_matching_window = DEFAULT_USE_SMALLER_MATCHING_WINDOW;
+
+
+  bool   linear_polish = DEFAULT_LINEAR_POLISH;
+
+  if (argc < 2) {
+    usage(argv[0]);
+    exit(1);
+  }
+
+  stringstream cmdline;
+  string progname(argv[0]);
+  string image_list_file_name;
+
+#if PROFILE
+  timeval ts1, ts2, ts3, ts4;
+#endif
+
+  // put the options and image list file name into the cmdline stringstream
+  for (int c = 1; c < argc; c++)
+  {
+    cmdline << argv[c] << " ";
+  }
+
+  parse_cmd_line(cmdline, argc, progname, image_list_file_name, nr_corners, max_disparity, motion_model_type,quarter_resolution,reference_update_period,do_motion_smoothing,motion_smoothing_gain);
+
+  ifstream in(image_list_file_name.c_str(),ios::in);
+
+  if ( !in.is_open() )
+  {
+    cerr << "Could not open file " << image_list_file_name << ".  Exiting" << endl;
+
+    return false;
+  }
+
+  // feature-based image registration class:
+  db_FrameToReferenceRegistration reg;
+//  db_StabilizationSmoother stab_smoother;
+
+  // input file name:
+  string file_name;
+
+  // look-up tables for image warping:
+  float ** lut_x = NULL, **lut_y = NULL;
+
+  // if the images are color, the input is saved in color_ref:
+  PgmImage color_ref(0,0);
+
+  // image width, height:
+  int w,h;
+
+  int frame_number = 0;
+
+  while ( !in.eof() )
+  {
+    getline(in,file_name);
+
+    PgmImage ref(file_name);
+
+    if ( ref.GetDataPointer() == NULL )
+    {
+      cerr << "Could not open image" << file_name << ". Exiting." << endl;
+      return -1;
+    }
+
+    cout << ref << endl;
+
+    // color format:
+    int format = ref.GetFormat();
+
+    // is the input image color?:
+    bool color = format == PgmImage::PGM_BINARY_PIXMAP;
+
+    w = ref.GetWidth();
+    h = ref.GetHeight();
+
+    if ( !reg.Initialized() )
+    {
+      reg.Init(w,h,motion_model_type,DEFAULT_MAX_ITERATIONS,linear_polish,quarter_resolution,DB_POINT_STANDARDDEV,reference_update_period,do_motion_smoothing,motion_smoothing_gain,default_nr_samples,DB_DEFAULT_CHUNK_SIZE,nr_corners,max_disparity,use_smaller_matching_window);
+      lut_x = db_AllocImage_f(w,h);
+      lut_y = db_AllocImage_f(w,h);
+
+    }
+
+    if ( color )
+    {
+      // save the color image:
+      color_ref = ref;
+    }
+
+    // make a grayscale image:
+    ref.ConvertToGray();
+
+    // compute the homography:
+    double H[9],Hinv[9];
+    db_Identity3x3(Hinv);
+    db_Identity3x3(H);
+
+    bool force_reference = false;
+
+#if PROFILE
+    gettimeofday(&ts1, NULL);
+#endif
+
+    reg.AddFrame(ref.GetRowPointers(),H,false,false);
+    cout << reg.profile_string << std::endl;
+
+#if PROFILE
+    gettimeofday(&ts2, NULL);
+
+    double elapsedTime = (ts2.tv_sec - ts1.tv_sec)*1000.0; // sec to ms
+    elapsedTime += (ts2.tv_usec - ts1.tv_usec)/1000.0; // us to ms
+    cout <<"\nelapsedTime for Reg<< "<<elapsedTime<<" ms >>>>>>>>>>>>>\n";
+#endif
+
+    if (frame_number == 0)
+    {
+      reg.UpdateReference(ref.GetRowPointers());
+    }
+
+
+    //std::vector<int> &inlier_indices = reg.GetInliers();
+    int *inlier_indices = reg.GetInliers();
+    int num_inlier_indices = reg.GetNrInliers();
+    printf("[%d] #Inliers = %d\n",frame_number,num_inlier_indices);
+
+    reg.Get_H_dref_to_ins(H);
+
+    db_GenerateHomographyLut(lut_x,lut_y,w,h,H);
+
+    // create a new image and warp:
+    PgmImage warped(w,h,format);
+
+#if PROFILE
+    gettimeofday(&ts3, NULL);
+#endif
+
+    if ( color )
+      db_WarpImageLutBilinear_rgb(color_ref.GetRowPointers(),warped.GetRowPointers(),w,h,lut_x,lut_y);
+    else
+      db_WarpImageLut_u(ref.GetRowPointers(),warped.GetRowPointers(),w,h,lut_x,lut_y,DB_WARP_FAST);
+
+#if PROFILE
+    gettimeofday(&ts4, NULL);
+    elapsedTime = (ts4.tv_sec - ts3.tv_sec)*1000.0; // sec to ms
+    elapsedTime += (ts4.tv_usec - ts3.tv_usec)/1000.0;     // us to ms
+    cout <<"\nelapsedTime for Warp <<"<<elapsedTime<<" ms >>>>>>>>>>>>>\n";
+#endif
+
+    // write aligned image: name is aligned_<corresponding input file name>
+    stringstream s;
+    s << "aligned_" << file_name;
+    warped.WritePGM(s.str());
+
+    /*
+    // Get the reference and inspection corners to write to file
+    double *ref_corners = reg.GetRefCorners();
+    double *ins_corners = reg.GetInsCorners();
+
+    // get the image file name (without extension), so we
+    // can generate the corresponding filenames for matches
+    // and inliers
+    string file_name_root(file_name.substr(0,file_name.rfind(".")));
+
+    // write matches to file
+    s.str(string(""));
+    s << "Matches_" << file_name_root << ".txt";
+
+    ofstream  match_file(s.str().c_str());
+
+    for (int i = 0; i < reg.GetNrMatches(); i++)
+    {
+      match_file << ref_corners[3*i] << " " << ref_corners[3*i+1] << " " << ins_corners[3*i] << " " << ins_corners[3*i+1] << endl;
+    }
+
+    match_file.close();
+
+    // write the inlier matches to file
+    s.str(string(""));
+    s << "InlierMatches_" << file_name_root << ".txt";
+
+    ofstream inlier_match_file(s.str().c_str());
+
+    for(int i=0; i<num_inlier_indices; i++)
+    {
+      int k = inlier_indices[i];
+      inlier_match_file << ref_corners[3*k] << " "
+            << ref_corners[3*k+1] << " "
+            << ins_corners[3*k] << " "
+            << ins_corners[3*k+1] << endl;
+    }
+    inlier_match_file.close();
+    */
+
+    frame_number++;
+  }
+
+  if ( reg.Initialized() )
+  {
+    db_FreeImage_f(lut_x,h);
+    db_FreeImage_f(lut_y,h);
+  }
+
+  return 0;
+}
+
+void parse_cmd_line(stringstream& cmdline,
+            const int argc,
+            const string& progname,
+            string& image_list_file_name,
+            int& nr_corners,
+            double& max_disparity,
+            int& motion_model_type,
+            bool& quarter_resolution,
+            unsigned int& reference_update_period,
+            bool& do_motion_smoothing,
+            double& motion_smoothing_gain)
+{
+  // for counting down the parsed arguments.
+  int c = argc;
+
+  // a holder
+  string token;
+
+  while (cmdline >> token)
+  {
+    --c;
+
+    int pos = token.find("-");
+
+    if (pos == 0)
+    {
+      switch (token[1])
+      {
+      case 'm':
+    --c; cmdline >> token;
+    if (token.compare("rt") == 0)
+    {
+      motion_model_type = DB_HOMOGRAPHY_TYPE_R_T;
+    }
+    else if (token.compare("a") == 0)
+    {
+      motion_model_type = DB_HOMOGRAPHY_TYPE_AFFINE;
+    }
+    else if (token.compare("p") == 0)
+    {
+      motion_model_type = DB_HOMOGRAPHY_TYPE_PROJECTIVE;
+    }
+    else
+    {
+      usage(progname);
+      exit(1);
+    }
+    break;
+      case 'c':
+    --c; cmdline >> nr_corners;
+    break;
+      case 'd':
+    --c; cmdline >> max_disparity;
+    break;
+      case 'q':
+    quarter_resolution = true;
+    break;
+      case 'r':
+    --c; cmdline >> reference_update_period;
+    break;
+      case 's':
+    --c; cmdline >> do_motion_smoothing;
+    break;
+      case 'g':
+    --c; cmdline >> motion_smoothing_gain;
+    break;
+      default:
+    cerr << progname << "illegal option " << token << endl;
+      case 'h':
+    usage(progname);
+    exit(1);
+    break;
+      }
+    }
+    else
+    {
+      if (c != 1)
+      {
+    usage(progname);
+    exit(1);
+      }
+      else
+      {
+    --c;
+    image_list_file_name = token;
+      }
+    }
+  }
+
+  if (c != 0)
+  {
+    usage(progname);
+    exit(1);
+  }
+}
+
diff --git a/perftests/panorama/feature_stab/src/dbregtest/stdafx.cpp b/perftests/panorama/feature_stab/src/dbregtest/stdafx.cpp
new file mode 100644
index 0000000..0c703e2
--- /dev/null
+++ b/perftests/panorama/feature_stab/src/dbregtest/stdafx.cpp
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+// stdafx.cpp : source file that includes just the standard includes
+// dbregtest.pch will be the pre-compiled header
+// stdafx.obj will contain the pre-compiled type information
+
+#include "stdafx.h"
+
+// TODO: reference any additional headers you need in STDAFX.H
+// and not in this file
diff --git a/perftests/panorama/feature_stab/src/dbregtest/stdafx.h b/perftests/panorama/feature_stab/src/dbregtest/stdafx.h
new file mode 100644
index 0000000..9bc06ea
--- /dev/null
+++ b/perftests/panorama/feature_stab/src/dbregtest/stdafx.h
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+// stdafx.h : include file for standard system include files,
+// or project specific include files that are used frequently, but
+// are changed infrequently
+//
+
+#pragma once
+
+#include "targetver.h"
+
+#include <stdio.h>
+
+// TODO: reference additional headers your program requires here
diff --git a/perftests/panorama/feature_stab/src/dbregtest/targetver.h b/perftests/panorama/feature_stab/src/dbregtest/targetver.h
new file mode 100644
index 0000000..9272b0d
--- /dev/null
+++ b/perftests/panorama/feature_stab/src/dbregtest/targetver.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+#pragma once
+
+// The following macros define the minimum required platform.  The minimum required platform
+// is the earliest version of Windows, Internet Explorer etc. that has the necessary features to run
+// your application.  The macros work by enabling all features available on platform versions up to and
+// including the version specified.
+
+// Modify the following defines if you have to target a platform prior to the ones specified below.
+// Refer to MSDN for the latest info on corresponding values for different platforms.
+#ifndef _WIN32_WINNT            // Specifies that the minimum required platform is Windows Vista.
+#define _WIN32_WINNT 0x0600     // Change this to the appropriate value to target other versions of Windows.
+#endif
+
diff --git a/perftests/panorama/input/test_001.ppm b/perftests/panorama/input/test_001.ppm
new file mode 100644
index 0000000..e7218bf
--- /dev/null
+++ b/perftests/panorama/input/test_001.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_002.ppm b/perftests/panorama/input/test_002.ppm
new file mode 100644
index 0000000..8975073
--- /dev/null
+++ b/perftests/panorama/input/test_002.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_003.ppm b/perftests/panorama/input/test_003.ppm
new file mode 100644
index 0000000..58c9e34
--- /dev/null
+++ b/perftests/panorama/input/test_003.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_004.ppm b/perftests/panorama/input/test_004.ppm
new file mode 100644
index 0000000..142c76b
--- /dev/null
+++ b/perftests/panorama/input/test_004.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_005.ppm b/perftests/panorama/input/test_005.ppm
new file mode 100644
index 0000000..ff229d3
--- /dev/null
+++ b/perftests/panorama/input/test_005.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_006.ppm b/perftests/panorama/input/test_006.ppm
new file mode 100644
index 0000000..2fc5c09
--- /dev/null
+++ b/perftests/panorama/input/test_006.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_007.ppm b/perftests/panorama/input/test_007.ppm
new file mode 100644
index 0000000..d7f6a9a
--- /dev/null
+++ b/perftests/panorama/input/test_007.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_008.ppm b/perftests/panorama/input/test_008.ppm
new file mode 100644
index 0000000..86d92b3
--- /dev/null
+++ b/perftests/panorama/input/test_008.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_009.ppm b/perftests/panorama/input/test_009.ppm
new file mode 100644
index 0000000..72dd05f
--- /dev/null
+++ b/perftests/panorama/input/test_009.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_010.ppm b/perftests/panorama/input/test_010.ppm
new file mode 100644
index 0000000..a09a054
--- /dev/null
+++ b/perftests/panorama/input/test_010.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_011.ppm b/perftests/panorama/input/test_011.ppm
new file mode 100644
index 0000000..be7b61b
--- /dev/null
+++ b/perftests/panorama/input/test_011.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_012.ppm b/perftests/panorama/input/test_012.ppm
new file mode 100644
index 0000000..67fad4a
--- /dev/null
+++ b/perftests/panorama/input/test_012.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_013.ppm b/perftests/panorama/input/test_013.ppm
new file mode 100644
index 0000000..6d92fd1
--- /dev/null
+++ b/perftests/panorama/input/test_013.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_014.ppm b/perftests/panorama/input/test_014.ppm
new file mode 100644
index 0000000..97aff41
--- /dev/null
+++ b/perftests/panorama/input/test_014.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_015.ppm b/perftests/panorama/input/test_015.ppm
new file mode 100644
index 0000000..d1de251
--- /dev/null
+++ b/perftests/panorama/input/test_015.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_016.ppm b/perftests/panorama/input/test_016.ppm
new file mode 100644
index 0000000..70ea1f5
--- /dev/null
+++ b/perftests/panorama/input/test_016.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_017.ppm b/perftests/panorama/input/test_017.ppm
new file mode 100644
index 0000000..e075c9e
--- /dev/null
+++ b/perftests/panorama/input/test_017.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_018.ppm b/perftests/panorama/input/test_018.ppm
new file mode 100644
index 0000000..adf023b
--- /dev/null
+++ b/perftests/panorama/input/test_018.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_019.ppm b/perftests/panorama/input/test_019.ppm
new file mode 100644
index 0000000..1f27d1d
--- /dev/null
+++ b/perftests/panorama/input/test_019.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_020.ppm b/perftests/panorama/input/test_020.ppm
new file mode 100644
index 0000000..fb95f52
--- /dev/null
+++ b/perftests/panorama/input/test_020.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_021.ppm b/perftests/panorama/input/test_021.ppm
new file mode 100644
index 0000000..43baadf
--- /dev/null
+++ b/perftests/panorama/input/test_021.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_022.ppm b/perftests/panorama/input/test_022.ppm
new file mode 100644
index 0000000..f928c83
--- /dev/null
+++ b/perftests/panorama/input/test_022.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_023.ppm b/perftests/panorama/input/test_023.ppm
new file mode 100644
index 0000000..e21b275
--- /dev/null
+++ b/perftests/panorama/input/test_023.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_024.ppm b/perftests/panorama/input/test_024.ppm
new file mode 100644
index 0000000..43ba0ba
--- /dev/null
+++ b/perftests/panorama/input/test_024.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_025.ppm b/perftests/panorama/input/test_025.ppm
new file mode 100644
index 0000000..b9f8892
--- /dev/null
+++ b/perftests/panorama/input/test_025.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_026.ppm b/perftests/panorama/input/test_026.ppm
new file mode 100644
index 0000000..201615f
--- /dev/null
+++ b/perftests/panorama/input/test_026.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_027.ppm b/perftests/panorama/input/test_027.ppm
new file mode 100644
index 0000000..07cf426
--- /dev/null
+++ b/perftests/panorama/input/test_027.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_028.ppm b/perftests/panorama/input/test_028.ppm
new file mode 100644
index 0000000..aedb023
--- /dev/null
+++ b/perftests/panorama/input/test_028.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_029.ppm b/perftests/panorama/input/test_029.ppm
new file mode 100644
index 0000000..9a0d398
--- /dev/null
+++ b/perftests/panorama/input/test_029.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_030.ppm b/perftests/panorama/input/test_030.ppm
new file mode 100644
index 0000000..26a8f53
--- /dev/null
+++ b/perftests/panorama/input/test_030.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_031.ppm b/perftests/panorama/input/test_031.ppm
new file mode 100644
index 0000000..2300461
--- /dev/null
+++ b/perftests/panorama/input/test_031.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_032.ppm b/perftests/panorama/input/test_032.ppm
new file mode 100644
index 0000000..f5e93f8
--- /dev/null
+++ b/perftests/panorama/input/test_032.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_033.ppm b/perftests/panorama/input/test_033.ppm
new file mode 100644
index 0000000..c2f8ad9
--- /dev/null
+++ b/perftests/panorama/input/test_033.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_034.ppm b/perftests/panorama/input/test_034.ppm
new file mode 100644
index 0000000..de93b23
--- /dev/null
+++ b/perftests/panorama/input/test_034.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_035.ppm b/perftests/panorama/input/test_035.ppm
new file mode 100644
index 0000000..62198de
--- /dev/null
+++ b/perftests/panorama/input/test_035.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_036.ppm b/perftests/panorama/input/test_036.ppm
new file mode 100644
index 0000000..bf252e4
--- /dev/null
+++ b/perftests/panorama/input/test_036.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_037.ppm b/perftests/panorama/input/test_037.ppm
new file mode 100644
index 0000000..7cc7ace
--- /dev/null
+++ b/perftests/panorama/input/test_037.ppm
Binary files differ
diff --git a/perftests/panorama/input/test_038.ppm b/perftests/panorama/input/test_038.ppm
new file mode 100644
index 0000000..d44e1f1
--- /dev/null
+++ b/perftests/panorama/input/test_038.ppm
Binary files differ
diff --git a/perftests/panorama/output/golden.ppm b/perftests/panorama/output/golden.ppm
new file mode 100644
index 0000000..69dcdc2
--- /dev/null
+++ b/perftests/panorama/output/golden.ppm
Binary files differ
diff --git a/samples/ApiDemos/AndroidManifest.xml b/samples/ApiDemos/AndroidManifest.xml
index 095d7ee..7d681cd 100644
--- a/samples/ApiDemos/AndroidManifest.xml
+++ b/samples/ApiDemos/AndroidManifest.xml
@@ -2685,6 +2685,24 @@
             </intent-filter>
         </activity>
 
+        <activity android:name=".graphics.ShadowCardStack"
+                  android:label="Graphics/Shadow Card Stack"
+                  android:theme="@android:style/Theme.Material.Light">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.SAMPLE_CODE" />
+            </intent-filter>
+        </activity>
+
+        <activity android:name=".graphics.ShadowCardDrag"
+                  android:label="Graphics/Shadow Card Drag"
+                  android:theme="@android:style/Theme.Material.Light">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.SAMPLE_CODE" />
+            </intent-filter>
+        </activity>
+
         <activity android:name=".graphics.WindowSurface"
                 android:label="Graphics/Surface Window">
             <intent-filter>
diff --git a/samples/ApiDemos/res/drawable/round_rect.xml b/samples/ApiDemos/res/drawable/round_rect.xml
new file mode 100644
index 0000000..6577d14
--- /dev/null
+++ b/samples/ApiDemos/res/drawable/round_rect.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<shape
+    xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#ffffffff" />
+    <corners android:radius="10dp" />
+</shape>
\ No newline at end of file
diff --git a/samples/ApiDemos/res/layout/action_bar_display_options.xml b/samples/ApiDemos/res/layout/action_bar_display_options.xml
index d4216f5..77da8df 100644
--- a/samples/ApiDemos/res/layout/action_bar_display_options.xml
+++ b/samples/ApiDemos/res/layout/action_bar_display_options.xml
@@ -39,10 +39,11 @@
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:text="@string/toggle_show_custom" />
-        <Button android:id="@+id/toggle_navigation"
+        <Spinner android:id="@+id/toggle_navigation"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:text="@string/toggle_navigation" />
+                android:prompt="@string/toggle_navigation"
+                android:entries="@array/navigation_modes" />
         <Button android:id="@+id/cycle_custom_gravity"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
diff --git a/samples/ApiDemos/res/layout/image_block.xml b/samples/ApiDemos/res/layout/image_block.xml
index 4233717..04b8d3f 100644
--- a/samples/ApiDemos/res/layout/image_block.xml
+++ b/samples/ApiDemos/res/layout/image_block.xml
@@ -15,7 +15,7 @@
                android:layout_row="0"
                android:src="@drawable/ducky"
                android:onClick="clicked"
-               android:viewName="ducky"
+               android:transitionName="ducky"
             />
     <ImageView android:id="@+id/woot"
                android:layout_height="wrap_content"
@@ -25,7 +25,7 @@
                android:layout_column="1"
                android:layout_row="0"
                android:onClick="clicked"
-               android:viewName="woot"
+               android:transitionName="woot"
             />
     <ImageView android:id="@+id/ball"
                android:layout_height="wrap_content"
@@ -35,7 +35,7 @@
                android:layout_column="0"
                android:layout_row="1"
                android:onClick="clicked"
-               android:viewName="ball"
+               android:transitionName="ball"
             />
     <ImageView android:id="@+id/block"
                android:layout_height="wrap_content"
@@ -45,7 +45,7 @@
                android:layout_column="1"
                android:layout_row="1"
                android:onClick="clicked"
-               android:viewName="block"
+               android:transitionName="block"
             />
     <ImageView android:id="@+id/jellies"
                android:layout_height="wrap_content"
@@ -55,7 +55,7 @@
                android:layout_column="0"
                android:layout_row="2"
                android:onClick="clicked"
-               android:viewName="jellies"
+               android:transitionName="jellies"
             />
     <ImageView android:id="@+id/mug"
                android:layout_height="wrap_content"
@@ -65,7 +65,7 @@
                android:layout_column="1"
                android:layout_row="2"
                android:onClick="clicked"
-               android:viewName="mug"
+               android:transitionName="mug"
             />
     <ImageView android:id="@+id/pencil"
                android:layout_height="wrap_content"
@@ -75,7 +75,7 @@
                android:layout_column="0"
                android:layout_row="3"
                android:onClick="clicked"
-               android:viewName="pencil"
+               android:transitionName="pencil"
             />
     <ImageView android:id="@+id/scissors"
                android:layout_height="wrap_content"
@@ -85,6 +85,6 @@
                android:layout_column="1"
                android:layout_row="3"
                android:onClick="clicked"
-               android:viewName="scissors"
+               android:transitionName="scissors"
             />
 </GridLayout>
\ No newline at end of file
diff --git a/samples/ApiDemos/res/layout/image_details.xml b/samples/ApiDemos/res/layout/image_details.xml
index a176ce5..1daee46 100644
--- a/samples/ApiDemos/res/layout/image_details.xml
+++ b/samples/ApiDemos/res/layout/image_details.xml
@@ -10,7 +10,7 @@
                android:layout_weight="1"
                android:layout_width="match_parent"
                android:scaleType="centerCrop"
-               android:viewName="hero"
+               android:transitionName="hero"
                android:onClick="clicked"
             />
     <LinearLayout android:layout_height="0px"
diff --git a/samples/ApiDemos/res/layout/shadow_card_drag.xml b/samples/ApiDemos/res/layout/shadow_card_drag.xml
new file mode 100644
index 0000000..c3bc474
--- /dev/null
+++ b/samples/ApiDemos/res/layout/shadow_card_drag.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<FrameLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/card_parent"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:clipChildren="false"
+    android:clipToPadding="false"
+    android:orientation="horizontal" >
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal">
+        <CheckBox
+            android:id="@+id/tilt_check"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:checked="false"
+            android:text="@string/enable_tilt"/>
+        <CheckBox
+            android:id="@+id/shading_check"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:checked="false"
+            android:text="@string/enable_shading"/>
+        <Button
+            android:id="@+id/shape_select"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/select_shape"/>
+        </LinearLayout>
+
+    <TextView
+        android:id="@+id/card"
+        android:layout_width="150dp"
+        android:layout_height="150dp"
+        android:background="@drawable/round_rect"
+        android:clipToPadding="false"
+        android:gravity="center"
+        android:padding="20dp"
+        android:text="@string/draggable_card"
+        android:textSize="20sp"
+        android:elevation="2dp"/>
+</FrameLayout>
\ No newline at end of file
diff --git a/samples/ApiDemos/res/layout/shadow_card_stack.xml b/samples/ApiDemos/res/layout/shadow_card_stack.xml
new file mode 100644
index 0000000..11d60f7
--- /dev/null
+++ b/samples/ApiDemos/res/layout/shadow_card_stack.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<RelativeLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/card_parent"
+    android:orientation="vertical"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:clipChildren="false"
+    android:clipToPadding="false"
+    android:gravity="center">
+    <TextView
+        android:layout_width="250dp"
+        android:layout_height="150dp"
+        android:background="@drawable/round_rect"
+        android:padding="20dp"
+        android:textSize="20sp" />
+    <TextView
+        android:layout_width="250dp"
+        android:layout_height="150dp"
+        android:background="@drawable/round_rect"
+        android:padding="20dp"
+        android:textSize="20sp" />
+    <TextView
+        android:layout_width="250dp"
+        android:layout_height="150dp"
+        android:background="@drawable/round_rect"
+        android:padding="20dp"
+        android:textSize="20sp" />
+    <TextView
+        android:layout_width="250dp"
+        android:layout_height="150dp"
+        android:background="@drawable/round_rect"
+        android:padding="20dp"
+        android:textSize="20sp" />
+    <TextView
+        android:layout_width="250dp"
+        android:layout_height="150dp"
+        android:background="@drawable/round_rect"
+        android:padding="20dp"
+        android:textSize="20sp" />
+</RelativeLayout>
\ No newline at end of file
diff --git a/samples/ApiDemos/res/values/arrays.xml b/samples/ApiDemos/res/values/arrays.xml
index 8f987ae..79f7af4 100644
--- a/samples/ApiDemos/res/values/arrays.xml
+++ b/samples/ApiDemos/res/values/arrays.xml
@@ -359,4 +359,11 @@
         <item>AJS</item>
     </string-array>
 
+    <!-- Used in App/ActionBarDisplayOptions.java -->
+    <string-array name="navigation_modes">
+        <item>NAVIGATION_MODE_STANDARD</item>
+        <item>NAVIGATION_MODE_TABS</item>
+        <item>NAVIGATION_MODE_LIST</item>
+    </string-array>
+
 </resources>
diff --git a/samples/ApiDemos/res/values/strings.xml b/samples/ApiDemos/res/values/strings.xml
index 46ef1a2..6a2df2e 100644
--- a/samples/ApiDemos/res/values/strings.xml
+++ b/samples/ApiDemos/res/values/strings.xml
@@ -904,6 +904,11 @@
     <string name="density_title">Density: Unknown Screen</string>
     <string name="camera_alert">Device has only one camera!</string>
     <string name="switch_cam">Switch Camera</string>
+    <string name="draggable_card">Draggable Card</string>
+
+    <string name="enable_tilt">Enable Tilt</string>
+    <string name="enable_shading">Enable Shading</string>
+    <string name="select_shape">Select Shape</string>
 
     <!-- ============================ -->
     <!--  media examples strings  -->
diff --git a/samples/ApiDemos/src/com/example/android/apis/animation/ActivityTransition.java b/samples/ApiDemos/src/com/example/android/apis/animation/ActivityTransition.java
index bd63870..b295826 100644
--- a/samples/ApiDemos/src/com/example/android/apis/animation/ActivityTransition.java
+++ b/samples/ApiDemos/src/com/example/android/apis/animation/ActivityTransition.java
@@ -117,7 +117,7 @@
     public void clicked(View v) {
         mHero = (ImageView) v;
         Intent intent = new Intent(this, ActivityTransitionDetails.class);
-        intent.putExtra(KEY_ID, v.getViewName());
+        intent.putExtra(KEY_ID, v.getTransitionName());
         ActivityOptions activityOptions
                 = ActivityOptions.makeSceneTransitionAnimation(this, mHero, "hero");
         startActivity(intent, activityOptions.toBundle());
diff --git a/samples/ApiDemos/src/com/example/android/apis/app/ActionBarDisplayOptions.java b/samples/ApiDemos/src/com/example/android/apis/app/ActionBarDisplayOptions.java
index 73d8db9..40e63e9 100644
--- a/samples/ApiDemos/src/com/example/android/apis/app/ActionBarDisplayOptions.java
+++ b/samples/ApiDemos/src/com/example/android/apis/app/ActionBarDisplayOptions.java
@@ -26,12 +26,16 @@
 import android.view.Menu;
 import android.view.View;
 import android.view.ViewGroup.LayoutParams;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.Spinner;
 
 /**
- * This demo shows how various action bar display option flags can be combined and their effects.
+ * This demo shows how various action bar display option flags can be combined
+ * and their effects.
  */
-public class ActionBarDisplayOptions extends Activity
-        implements View.OnClickListener, ActionBar.TabListener {
+public class ActionBarDisplayOptions extends Activity implements View.OnClickListener,
+        ActionBar.TabListener, Spinner.OnItemSelectedListener, ActionBar.OnNavigationListener {
     private View mCustomView;
 
     @Override
@@ -44,11 +48,12 @@
         findViewById(R.id.toggle_use_logo).setOnClickListener(this);
         findViewById(R.id.toggle_show_title).setOnClickListener(this);
         findViewById(R.id.toggle_show_custom).setOnClickListener(this);
-        findViewById(R.id.toggle_navigation).setOnClickListener(this);
         findViewById(R.id.cycle_custom_gravity).setOnClickListener(this);
         findViewById(R.id.toggle_visibility).setOnClickListener(this);
         findViewById(R.id.toggle_system_ui).setOnClickListener(this);
 
+        ((Spinner) findViewById(R.id.toggle_navigation)).setOnItemSelectedListener(this);
+
         mCustomView = getLayoutInflater().inflate(R.layout.action_bar_display_options_custom, null);
         // Configure several action bar elements that will be toggled by display options.
         final ActionBar bar = getActionBar();
@@ -58,6 +63,13 @@
         bar.addTab(bar.newTab().setText("Tab 1").setTabListener(this));
         bar.addTab(bar.newTab().setText("Tab 2").setTabListener(this));
         bar.addTab(bar.newTab().setText("Tab 3").setTabListener(this));
+
+        final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
+                android.R.layout.simple_list_item_1);
+        adapter.add("Item 1");
+        adapter.add("Item 2");
+        adapter.add("Item 3");
+        bar.setListNavigationCallbacks(adapter, this);
     }
 
     @Override
@@ -66,6 +78,7 @@
         return true;
     }
 
+    @Override
     public void onClick(View v) {
         final ActionBar bar = getActionBar();
         int flags = 0;
@@ -85,13 +98,6 @@
             case R.id.toggle_show_custom:
                 flags = ActionBar.DISPLAY_SHOW_CUSTOM;
                 break;
-
-            case R.id.toggle_navigation:
-                bar.setNavigationMode(
-                        bar.getNavigationMode() == ActionBar.NAVIGATION_MODE_STANDARD
-                                ? ActionBar.NAVIGATION_MODE_TABS
-                                : ActionBar.NAVIGATION_MODE_STANDARD);
-                return;
             case R.id.cycle_custom_gravity:
                 ActionBar.LayoutParams lp = (ActionBar.LayoutParams) mCustomView.getLayoutParams();
                 int newGravity = 0;
@@ -131,12 +137,45 @@
         bar.setDisplayOptions(change, flags);
     }
 
+    @Override
     public void onTabSelected(Tab tab, FragmentTransaction ft) {
     }
 
+    @Override
     public void onTabUnselected(Tab tab, FragmentTransaction ft) {
     }
 
+    @Override
     public void onTabReselected(Tab tab, FragmentTransaction ft) {
     }
+
+    @Override
+    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
+        final ActionBar bar = getActionBar();
+        switch (parent.getId()) {
+            case R.id.toggle_navigation:
+                final int mode;
+                switch (position) {
+                    case 1:
+                        mode = ActionBar.NAVIGATION_MODE_TABS;
+                        break;
+                    case 2:
+                        mode = ActionBar.NAVIGATION_MODE_LIST;
+                        break;
+                    default:
+                        mode = ActionBar.NAVIGATION_MODE_STANDARD;
+                }
+                bar.setNavigationMode(mode);
+                return;
+        }
+    }
+
+    @Override
+    public void onNothingSelected(AdapterView<?> parent) {
+    }
+
+    @Override
+    public boolean onNavigationItemSelected(int itemPosition, long itemId) {
+        return false;
+    }
 }
diff --git a/samples/ApiDemos/src/com/example/android/apis/app/DeviceAdminSample.java b/samples/ApiDemos/src/com/example/android/apis/app/DeviceAdminSample.java
index a27dcdf..70d4b6b 100644
--- a/samples/ApiDemos/src/com/example/android/apis/app/DeviceAdminSample.java
+++ b/samples/ApiDemos/src/com/example/android/apis/app/DeviceAdminSample.java
@@ -205,6 +205,15 @@
             }
         }
 
+        protected void postReloadSummaries() {
+            getView().post(new Runnable() {
+                @Override
+                public void run() {
+                    reloadSummaries();
+                }
+            });
+        }
+
         @Override
         public boolean onPreferenceClick(Preference preference) {
             if (mSetPassword != null && preference == mSetPassword) {
@@ -347,14 +356,22 @@
                 }
             } else if (preference == mDisableCameraCheckbox) {
                 mDPM.setCameraDisabled(mDeviceAdminSample, value);
-                reloadSummaries();
+                // Delay update because the change is only applied after exiting this method.
+                postReloadSummaries();
             } else if (preference == mDisableKeyguardWidgetsCheckbox
                     || preference == mDisableKeyguardSecureCameraCheckbox
                     || preference == mDisableKeyguardNotificationCheckbox
                     || preference == mDisableKeyguardUnredactedCheckbox
                     || preference == mDisableKeyguardTrustAgentCheckbox) {
-                mDPM.setKeyguardDisabledFeatures(mDeviceAdminSample, createKeyguardDisabledFlag());
-                reloadSummaries();
+                // Delay update because the change is only applied after exiting this method.
+                getView().post(new Runnable() {
+                    @Override
+                    public void run() {
+                        mDPM.setKeyguardDisabledFeatures(mDeviceAdminSample,
+                                createKeyguardDisabledFlag());
+                    }
+                });
+                postReloadSummaries();
             }
             return true;
         }
@@ -549,7 +566,8 @@
             } else if (preference == mMinNonLetter) {
                 mDPM.setPasswordMinimumNonLetter(mDeviceAdminSample, value);
             }
-            reloadSummaries();
+            // Delay update because the change is only applied after exiting this method.
+            postReloadSummaries();
             return true;
         }
 
@@ -639,7 +657,8 @@
             } else if (preference == mExpirationTimeout) {
                 mDPM.setPasswordExpirationTimeout(mDeviceAdminSample, value * MS_PER_MINUTE);
             }
-            reloadSummaries();
+            // Delay update because the change is only applied after exiting this method.
+            postReloadSummaries();
             return true;
         }
 
@@ -777,7 +796,8 @@
                 }
                 mDPM.setMaximumFailedPasswordsForWipe(mDeviceAdminSample, value);
             }
-            reloadSummaries();
+            // Delay update because the change is only applied after exiting this method.
+            postReloadSummaries();
             return true;
         }
 
@@ -895,7 +915,8 @@
             if (preference == mRequireEncryption) {
                 boolean newActive = (Boolean) newValue;
                 mDPM.setStorageEncryption(mDeviceAdminSample, newActive);
-                reloadSummaries();
+                // Delay update because the change is only applied after exiting this method.
+                postReloadSummaries();
                 return true;
             }
             return true;
diff --git a/samples/ApiDemos/src/com/example/android/apis/graphics/ShadowCardDrag.java b/samples/ApiDemos/src/com/example/android/apis/graphics/ShadowCardDrag.java
new file mode 100644
index 0000000..facc009
--- /dev/null
+++ b/samples/ApiDemos/src/com/example/android/apis/graphics/ShadowCardDrag.java
@@ -0,0 +1,249 @@
+/*
+ * 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.
+ */
+
+package com.example.android.apis.graphics;
+
+import android.animation.ObjectAnimator;
+import android.app.Activity;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Outline;
+import android.graphics.Paint;
+import android.graphics.Path;
+import android.graphics.PorterDuff;
+import android.graphics.drawable.ShapeDrawable;
+import android.graphics.drawable.shapes.OvalShape;
+import android.graphics.drawable.shapes.RectShape;
+import android.graphics.drawable.shapes.RoundRectShape;
+import android.graphics.drawable.shapes.Shape;
+import android.os.Bundle;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.animation.AccelerateInterpolator;
+import android.view.animation.DecelerateInterpolator;
+import android.widget.Button;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
+import com.example.android.apis.R;
+
+import java.util.ArrayList;
+
+public class ShadowCardDrag extends Activity {
+    private static final float MAX_Z_DP = 10;
+    private static final float MOMENTUM_SCALE = 10;
+    private static final int MAX_ANGLE = 10;
+
+    private class CardDragState {
+        long lastEventTime;
+        float lastX;
+        float lastY;
+
+        float momentumX;
+        float momentumY;
+
+        public void onDown(long eventTime, float x, float y) {
+            lastEventTime = eventTime;
+            lastX = x;
+            lastY = y;
+
+            momentumX = 0;
+            momentumY = 0;
+        }
+
+        public void onMove(long eventTime, float x, float y) {
+            final long deltaT = eventTime - lastEventTime;
+
+            if (deltaT != 0) {
+                float newMomentumX = (x - lastX) / (mDensity * deltaT);
+                float newMomentumY = (y - lastY) / (mDensity * deltaT);
+
+                momentumX = 0.9f * momentumX + 0.1f * (newMomentumX * MOMENTUM_SCALE);
+                momentumY = 0.9f * momentumY + 0.1f * (newMomentumY * MOMENTUM_SCALE);
+
+                momentumX = Math.max(Math.min((momentumX), MAX_ANGLE), -MAX_ANGLE);
+                momentumY = Math.max(Math.min((momentumY), MAX_ANGLE), -MAX_ANGLE);
+
+                //noinspection SuspiciousNameCombination
+                mCard.setRotationX(-momentumY);
+                //noinspection SuspiciousNameCombination
+                mCard.setRotationY(momentumX);
+
+                if (mShadingEnabled) {
+                    float alphaDarkening = (momentumX * momentumX + momentumY * momentumY) / (90 * 90);
+                    alphaDarkening /= 2;
+
+                    int alphaByte = 0xff - ((int)(alphaDarkening * 255) & 0xff);
+                    int color = Color.rgb(alphaByte, alphaByte, alphaByte);
+                    mCardBackground.setColorFilter(color, PorterDuff.Mode.MULTIPLY);
+                }
+            }
+
+            lastX = x;
+            lastY = y;
+            lastEventTime = eventTime;
+        }
+
+        public void onUp() {
+            ObjectAnimator flattenX = ObjectAnimator.ofFloat(mCard, "rotationX", 0);
+            flattenX.setDuration(100);
+            flattenX.setInterpolator(new AccelerateInterpolator());
+            flattenX.start();
+
+            ObjectAnimator flattenY = ObjectAnimator.ofFloat(mCard, "rotationY", 0);
+            flattenY.setDuration(100);
+            flattenY.setInterpolator(new AccelerateInterpolator());
+            flattenY.start();
+            mCardBackground.setColorFilter(null);
+        }
+    }
+
+    /**
+     * Simple shape example that generates a shadow casting outline.
+     */
+    private static class TriangleShape extends Shape {
+        private final Path mPath = new Path();
+
+        @Override
+        protected void onResize(float width, float height) {
+            mPath.reset();
+            mPath.moveTo(0, 0);
+            mPath.lineTo(width, 0);
+            mPath.lineTo(width / 2, height);
+            mPath.lineTo(0, 0);
+            mPath.close();
+        }
+
+        @Override
+        public void draw(Canvas canvas, Paint paint) {
+            canvas.drawPath(mPath, paint);
+        }
+
+        @Override
+        public boolean getOutline(Outline outline) {
+            outline.setConvexPath(mPath);
+            return true;
+        }
+    }
+
+    private final ShapeDrawable mCardBackground = new ShapeDrawable();
+    private final ArrayList<Shape> mShapes = new ArrayList<Shape>();
+    private float mDensity;
+    private View mCard;
+
+    private final CardDragState mDragState = new CardDragState();
+    private boolean mTiltEnabled;
+    private boolean mShadingEnabled;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.shadow_card_drag);
+
+        mDensity = getResources().getDisplayMetrics().density;
+        mShapes.add(new RectShape());
+        mShapes.add(new OvalShape());
+        float r = 10 * mDensity;
+        float radii[] = new float[] {r, r, r, r, r, r, r, r};
+        mShapes.add(new RoundRectShape(radii, null, null));
+        mShapes.add(new TriangleShape());
+
+        mCardBackground.getPaint().setColor(Color.WHITE);
+        mCardBackground.setShape(mShapes.get(0));
+        final View cardParent = findViewById(R.id.card_parent);
+        mCard = findViewById(R.id.card);
+        mCard.setBackground(mCardBackground);
+
+        final CheckBox tiltCheck = (CheckBox) findViewById(R.id.tilt_check);
+        tiltCheck.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+            @Override
+            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+                mTiltEnabled = isChecked;
+                if (!mTiltEnabled) {
+                    mDragState.onUp();
+                }
+            }
+        });
+
+        final CheckBox shadingCheck = (CheckBox) findViewById(R.id.shading_check);
+        shadingCheck.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+            @Override
+            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+                mShadingEnabled = isChecked;
+                if (!mShadingEnabled) {
+                    mCardBackground.setColorFilter(null);
+                }
+            }
+        });
+
+        final Button shapeButton = (Button) findViewById(R.id.shape_select);
+        shapeButton.setOnClickListener(new View.OnClickListener() {
+            int index = 0;
+            @Override
+            public void onClick(View v) {
+                index = (index + 1) % mShapes.size();
+                mCardBackground.setShape(mShapes.get(index));
+            }
+        });
+
+        /**
+         * Enable any touch on the parent to drag the card. Note that this doesn't do a proper hit
+         * test, so any drag (including off of the card) will work.
+         *
+         * This enables the user to see the effect more clearly for the purpose of this demo.
+         */
+        cardParent.setOnTouchListener(new View.OnTouchListener() {
+            float downX;
+            float downY;
+            long downTime;
+
+            @Override
+            public boolean onTouch(View v, MotionEvent event) {
+                switch (event.getAction()) {
+                    case MotionEvent.ACTION_DOWN:
+                        downX = event.getX() - mCard.getTranslationX();
+                        downY = event.getY() - mCard.getTranslationY();
+                        downTime = event.getDownTime();
+                        ObjectAnimator upAnim = ObjectAnimator.ofFloat(mCard, "translationZ",
+                                MAX_Z_DP * mDensity);
+                        upAnim.setDuration(100);
+                        upAnim.setInterpolator(new DecelerateInterpolator());
+                        upAnim.start();
+                        if (mTiltEnabled) {
+                            mDragState.onDown(event.getDownTime(), event.getX(), event.getY());
+                        }
+                        break;
+                    case MotionEvent.ACTION_MOVE:
+                        mCard.setTranslationX(event.getX() - downX);
+                        mCard.setTranslationY(event.getY() - downY);
+                        if (mTiltEnabled) {
+                            mDragState.onMove(event.getEventTime(), event.getX(), event.getY());
+                        }
+                        break;
+                    case MotionEvent.ACTION_UP:
+                        ObjectAnimator downAnim = ObjectAnimator.ofFloat(mCard, "translationZ", 0);
+                        downAnim.setDuration(100);
+                        downAnim.setInterpolator(new AccelerateInterpolator());
+                        downAnim.start();
+                        if (mTiltEnabled) {
+                            mDragState.onUp();
+                        }
+                        break;
+                }
+                return true;
+            }
+        });
+    }
+}
diff --git a/samples/ApiDemos/src/com/example/android/apis/graphics/ShadowCardStack.java b/samples/ApiDemos/src/com/example/android/apis/graphics/ShadowCardStack.java
new file mode 100644
index 0000000..5a34251
--- /dev/null
+++ b/samples/ApiDemos/src/com/example/android/apis/graphics/ShadowCardStack.java
@@ -0,0 +1,141 @@
+/*
+ * 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.
+ */
+
+package com.example.android.apis.graphics;
+
+import android.animation.Animator;
+import android.animation.AnimatorSet;
+import android.animation.ObjectAnimator;
+import android.app.Activity;
+import android.os.Bundle;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import com.example.android.apis.R;
+
+import java.util.ArrayList;
+
+public class ShadowCardStack extends Activity {
+
+    private static final float X_SHIFT_DP = 1000;
+    private static final float Y_SHIFT_DP = 50;
+    private static final float Z_LIFT_DP = 8;
+    private static final float ROTATE_DEGREES = 15;
+
+    public AnimatorSet createSet(ArrayList<Animator> items, long startDelay) {
+        AnimatorSet set = new AnimatorSet();
+        set.playTogether(items);
+        set.setStartDelay(startDelay);
+        return set;
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.shadow_card_stack);
+
+        float density = getResources().getDisplayMetrics().density;
+
+        final ViewGroup cardParent = (ViewGroup) findViewById(R.id.card_parent);
+
+        final float X = X_SHIFT_DP * density;
+        final float Y = Y_SHIFT_DP * density;
+        final float Z = Z_LIFT_DP * density;
+
+        ArrayList<Animator> towardAnimators = new ArrayList<Animator>();
+        ArrayList<Animator> expandAnimators = new ArrayList<Animator>();
+        ArrayList<Animator> moveAwayAnimators = new ArrayList<Animator>();
+        ArrayList<Animator> moveBackAnimators = new ArrayList<Animator>();
+        ArrayList<Animator> awayAnimators = new ArrayList<Animator>();
+        ArrayList<Animator> collapseAnimators = new ArrayList<Animator>();
+
+        final int max = cardParent.getChildCount();
+        for (int i = 0; i < max; i++) {
+            TextView card = (TextView) cardParent.getChildAt(i);
+            card.setText("Card number " + i);
+
+            float targetY = (i - (max-1) / 2.0f) * Y;
+            Animator expand = ObjectAnimator.ofFloat(card, "translationY", targetY);
+            expandAnimators.add(expand);
+
+            Animator toward = ObjectAnimator.ofFloat(card, "translationZ", i * Z);
+            toward.setStartDelay(200 * ((max) - i));
+            towardAnimators.add(toward);
+
+            card.setPivotX(X_SHIFT_DP);
+            Animator rotateAway = ObjectAnimator.ofFloat(card, "rotationY",
+                    i == 0 ? 0 : ROTATE_DEGREES);
+            rotateAway.setStartDelay(200 * ((max) - i));
+            rotateAway.setDuration(100);
+            moveAwayAnimators.add(rotateAway);
+            Animator slideAway = ObjectAnimator.ofFloat(card, "translationX",
+                    i == 0 ? 0 : X);
+            slideAway.setStartDelay(200 * ((max) - i));
+            slideAway.setDuration(100);
+            moveAwayAnimators.add(slideAway);
+
+            Animator rotateBack = ObjectAnimator.ofFloat(card, "rotationY", 0);
+            rotateBack.setStartDelay(200 * i);
+            moveBackAnimators.add(rotateBack);
+            Animator slideBack = ObjectAnimator.ofFloat(card, "translationX", 0);
+            slideBack.setStartDelay(200 * i);
+            moveBackAnimators.add(slideBack);
+
+            Animator away = ObjectAnimator.ofFloat(card, "translationZ", 0);
+            away.setStartDelay(200 * i);
+            awayAnimators.add(away);
+
+            Animator collapse = ObjectAnimator.ofFloat(card, "translationY", 0);
+            collapseAnimators.add(collapse);
+        }
+
+        AnimatorSet totalSet = new AnimatorSet();
+        totalSet.playSequentially(
+                createSet(expandAnimators, 250),
+                createSet(towardAnimators, 0),
+
+                createSet(moveAwayAnimators, 250),
+                createSet(moveBackAnimators, 0),
+
+                createSet(awayAnimators, 250),
+                createSet(collapseAnimators, 0));
+        totalSet.start();
+        totalSet.addListener(new RepeatListener(totalSet));
+    }
+
+    public static class RepeatListener implements Animator.AnimatorListener {
+        final Animator mRepeatAnimator;
+        public RepeatListener(Animator repeatAnimator) {
+            mRepeatAnimator = repeatAnimator;
+        }
+
+        @Override
+        public void onAnimationStart(Animator animation) {}
+
+        @Override
+        public void onAnimationEnd(Animator animation) {
+            if (animation == mRepeatAnimator) {
+                mRepeatAnimator.start();
+            }
+        }
+
+        @Override
+        public void onAnimationCancel(Animator animation) {}
+
+        @Override
+        public void onAnimationRepeat(Animator animation) {}
+    }
+}
diff --git a/samples/AtscTvInput/AndroidManifest.xml b/samples/AtscTvInput/AndroidManifest.xml
index 1d44761..9842d5f 100644
--- a/samples/AtscTvInput/AndroidManifest.xml
+++ b/samples/AtscTvInput/AndroidManifest.xml
@@ -26,7 +26,6 @@
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.LAUNCHER" />
-                <action android:name="android.media.tv.SetupActivity" />
             </intent-filter>
         </activity>
         <service android:name="com.example.android.atsctvinput.AtscTvInputService"
@@ -35,6 +34,8 @@
             <intent-filter>
                 <action android:name="android.media.tv.TvInputService" />
             </intent-filter>
+            <meta-data android:name="android.media.tv.input"
+                android:resource="@xml/atsctvinputservice" />
         </service>
     </application>
 </manifest>
diff --git a/samples/AtscTvInput/res/xml/atsctvinputservice.xml b/samples/AtscTvInput/res/xml/atsctvinputservice.xml
new file mode 100644
index 0000000..9f7bc4d
--- /dev/null
+++ b/samples/AtscTvInput/res/xml/atsctvinputservice.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/**
+ * 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.
+ */
+-->
+
+<tv-input xmlns:android="http://schemas.android.com/apk/res/android"
+    android:setupActivity="com.example.android.atsctvinput.AtscTvInputScanActivity" />
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/widget/AnimatedRecyclerView.java b/samples/Support7Demos/src/com/example/android/supportv7/widget/AnimatedRecyclerView.java
index 38a8695..f4165ac 100644
--- a/samples/Support7Demos/src/com/example/android/supportv7/widget/AnimatedRecyclerView.java
+++ b/samples/Support7Demos/src/com/example/android/supportv7/widget/AnimatedRecyclerView.java
@@ -194,18 +194,18 @@
                 View v = recycler.getViewForPosition(mFirstPosition + i);
 
                 RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) v.getLayoutParams();
-                if (!state.isPreLayout() || !params.isItemRemoved()) {
+                if (!mPredictiveAnimationsEnabled || !params.isItemRemoved()) {
                     addView(v);
                 }
                 measureChild(v, 0, 0);
                 bottom = top + v.getMeasuredHeight();
                 v.layout(left, top, right, bottom);
-                if (state.isPreLayout() && params.isItemRemoved()) {
+                if (mPredictiveAnimationsEnabled && params.isItemRemoved()) {
                     parentBottom += v.getHeight();
                 }
             }
 
-            if (mAnimationsEnabled && state.isPreLayout()) {
+            if (mAnimationsEnabled && mPredictiveAnimationsEnabled) {
                 // Now that we've run a full layout, figure out which views were not used
                 // (cached in previousViews). For each of these views, position it where
                 // it would go, according to its position relative to the visible
@@ -286,7 +286,7 @@
                     final int scrollBy = -Math.min(dy - scrolled, hangingBottom);
                     scrolled -= scrollBy;
                     offsetChildrenVertical(scrollBy);
-                    if (scrolled < dy && getItemCount() > mFirstPosition + getChildCount()) {
+                    if (scrolled < dy && state.getItemCount() > mFirstPosition + getChildCount()) {
                         View v = recycler.getViewForPosition(mFirstPosition + getChildCount());
                         final int top = getChildAt(getChildCount() - 1).getBottom();
                         addView(v);
@@ -332,7 +332,7 @@
                 }
             }
             if (direction == View.FOCUS_DOWN || direction == View.FOCUS_FORWARD) {
-                while (mFirstPosition + getChildCount() < getItemCount() &&
+                while (mFirstPosition + getChildCount() < state.getItemCount() &&
                         newViewsHeight < mScrollDistance) {
                     View v = recycler.getViewForPosition(mFirstPosition + getChildCount());
                     final int top = getChildAt(getChildCount() - 1).getBottom();
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/widget/RecyclerViewActivity.java b/samples/Support7Demos/src/com/example/android/supportv7/widget/RecyclerViewActivity.java
index baecf86..747992b 100644
--- a/samples/Support7Demos/src/com/example/android/supportv7/widget/RecyclerViewActivity.java
+++ b/samples/Support7Demos/src/com/example/android/supportv7/widget/RecyclerViewActivity.java
@@ -176,7 +176,7 @@
                     final int scrollBy = -Math.min(dy - scrolled, hangingBottom);
                     scrolled -= scrollBy;
                     offsetChildrenVertical(scrollBy);
-                    if (scrolled < dy && getItemCount() > mFirstPosition + getChildCount()) {
+                    if (scrolled < dy && state.getItemCount() > mFirstPosition + getChildCount()) {
                         View v = recycler.getViewForPosition(mFirstPosition + getChildCount());
                         final int top = getDecoratedBottom(getChildAt(getChildCount() - 1));
                         addView(v);
@@ -222,7 +222,7 @@
                 }
             }
             if (direction == View.FOCUS_DOWN || direction == View.FOCUS_FORWARD) {
-                while (mFirstPosition + getChildCount() < getItemCount() &&
+                while (mFirstPosition + getChildCount() < state.getItemCount() &&
                         newViewsHeight < mScrollDistance) {
                     View v = recycler.getViewForPosition(mFirstPosition + getChildCount());
                     final int top = getDecoratedBottom(getChildAt(getChildCount() - 1));
diff --git a/samples/Vault/src/com/example/android/vault/VaultProvider.java b/samples/Vault/src/com/example/android/vault/VaultProvider.java
index 02e3211..bf3f1ce 100644
--- a/samples/Vault/src/com/example/android/vault/VaultProvider.java
+++ b/samples/Vault/src/com/example/android/vault/VaultProvider.java
@@ -36,6 +36,7 @@
 import android.provider.DocumentsContract.Root;
 import android.provider.DocumentsProvider;
 import android.security.KeyChain;
+import android.text.TextUtils;
 import android.util.Log;
 
 import org.json.JSONArray;
@@ -204,7 +205,8 @@
         final MatrixCursor result = new MatrixCursor(resolveRootProjection(projection));
         final RowBuilder row = result.newRow();
         row.add(Root.COLUMN_ROOT_ID, DEFAULT_ROOT_ID);
-        row.add(Root.COLUMN_FLAGS, Root.FLAG_SUPPORTS_CREATE | Root.FLAG_LOCAL_ONLY);
+        row.add(Root.COLUMN_FLAGS, Root.FLAG_SUPPORTS_CREATE | Root.FLAG_LOCAL_ONLY
+                | Root.FLAG_SUPPORTS_IS_CHILD);
         row.add(Root.COLUMN_TITLE, getContext().getString(R.string.app_label));
         row.add(Root.COLUMN_DOCUMENT_ID, DEFAULT_DOCUMENT_ID);
         row.add(Root.COLUMN_ICON, R.drawable.ic_lock_lock);
@@ -242,6 +244,7 @@
         } else {
             flags |= Document.FLAG_SUPPORTS_WRITE;
         }
+        flags |= Document.FLAG_SUPPORTS_RENAME;
         flags |= Document.FLAG_SUPPORTS_DELETE;
 
         final RowBuilder row = result.newRow();
@@ -254,6 +257,39 @@
     }
 
     @Override
+    public boolean isChildDocument(String parentDocumentId, String documentId) {
+        if (TextUtils.equals(parentDocumentId, documentId)) {
+            return true;
+        }
+
+        try {
+            final long parentDocId = Long.parseLong(parentDocumentId);
+            final EncryptedDocument parentDoc = getDocument(parentDocId);
+
+            // Recursively search any children
+            // TODO: consider building an index to optimize this check
+            final JSONObject meta = parentDoc.readMetadata();
+            if (Document.MIME_TYPE_DIR.equals(meta.getString(Document.COLUMN_MIME_TYPE))) {
+                final JSONArray children = meta.getJSONArray(KEY_CHILDREN);
+                for (int i = 0; i < children.length(); i++) {
+                    final String childDocumentId = children.getString(i);
+                    if (isChildDocument(childDocumentId, documentId)) {
+                        return true;
+                    }
+                }
+            }
+        } catch (IOException e) {
+            throw new IllegalStateException(e);
+        } catch (GeneralSecurityException e) {
+            throw new IllegalStateException(e);
+        } catch (JSONException e) {
+            throw new IllegalStateException(e);
+        }
+
+        return false;
+    }
+
+    @Override
     public String createDocument(String parentDocumentId, String mimeType, String displayName)
             throws FileNotFoundException {
         final long parentDocId = Long.parseLong(parentDocumentId);
@@ -314,6 +350,29 @@
     }
 
     @Override
+    public String renameDocument(String documentId, String displayName)
+            throws FileNotFoundException {
+        final long docId = Long.parseLong(documentId);
+
+        try {
+            final EncryptedDocument doc = getDocument(docId);
+            final JSONObject meta = doc.readMetadata();
+
+            meta.put(Document.COLUMN_DISPLAY_NAME, displayName);
+            doc.writeMetadataAndContent(meta, null);
+
+            return null;
+
+        } catch (IOException e) {
+            throw new IllegalStateException(e);
+        } catch (GeneralSecurityException e) {
+            throw new IllegalStateException(e);
+        } catch (JSONException e) {
+            throw new IllegalStateException(e);
+        }
+    }
+
+    @Override
     public void deleteDocument(String documentId) throws FileNotFoundException {
         final long docId = Long.parseLong(documentId);
 
diff --git a/samples/wearable/.gitignore b/samples/wearable/.gitignore
new file mode 100644
index 0000000..a762655
--- /dev/null
+++ b/samples/wearable/.gitignore
@@ -0,0 +1,42 @@
+# built application files
+*.apk
+*.ap_
+
+# files for the dex VM
+*.dex
+
+# Java class files
+*.class
+
+# generated files
+bin/
+out/
+src/common
+src/template
+_index.jd
+README.txt
+
+# Libraries used by the app
+# Can explicitly add if we want, but shouldn't do so blindly.  Licenses, bloat, etc.
+/libs
+
+
+# Build stuff (auto-generated by android update project ...)
+ant.properties
+local.properties
+
+# Eclipse project files
+.classpath
+.project
+
+# idea project files
+.idea/
+.idea/.name
+*.iml
+*.ipr
+*.iws
+
+##Gradle-based build
+.gradle
+build/
+
diff --git a/samples/wearable/AgendaData/Application/build.gradle b/samples/wearable/AgendaData/Application/build.gradle
new file mode 100644
index 0000000..7de0d36
--- /dev/null
+++ b/samples/wearable/AgendaData/Application/build.gradle
@@ -0,0 +1,30 @@
+apply plugin: 'android'
+
+android {
+    compileSdkVersion 20
+    buildToolsVersion '20'
+
+    defaultConfig {
+        minSdkVersion 18
+        targetSdkVersion 20
+        versionCode 1
+        versionName "1.0"
+    }
+
+    buildTypes {
+        release {
+            runProguard false
+            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
+        }
+    }
+
+    aaptOptions {
+        noCompress 'apk'
+    }
+}
+
+dependencies {
+    compile 'com.google.android.gms:play-services:5.0.+@aar'
+    compile "com.android.support:support-v4:20.0.+"
+    wearApp project(':Wearable')
+}
\ No newline at end of file
diff --git a/samples/wearable/AgendaData/Application/proguard-rules.txt b/samples/wearable/AgendaData/Application/proguard-rules.txt
new file mode 100644
index 0000000..824a322
--- /dev/null
+++ b/samples/wearable/AgendaData/Application/proguard-rules.txt
@@ -0,0 +1,28 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
+-dontwarn android.support.wearable.view.DelayedConfirmationView
+-dontwarn android.support.wearable.view.CircledImageView
+
+-keep class android.support.wearable.view.WearableListView {
+  private void setScrollAnimator(int);
+  private void setScrollVertically(int);
+}
+
diff --git a/samples/wearable/AgendaData/Application/project.properties b/samples/wearable/AgendaData/Application/project.properties
new file mode 100644
index 0000000..4ab1256
--- /dev/null
+++ b/samples/wearable/AgendaData/Application/project.properties
@@ -0,0 +1,14 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-19
diff --git a/samples/wearable/AgendaData/Application/src/main/AndroidManifest.xml b/samples/wearable/AgendaData/Application/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..d96efd8
--- /dev/null
+++ b/samples/wearable/AgendaData/Application/src/main/AndroidManifest.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+          package="com.example.android.wearable.agendadata">
+
+    <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="20" />
+
+    <uses-permission android:name="android.permission.READ_CALENDAR" />
+    <uses-permission android:name="android.permission.READ_CONTACTS" />
+
+    <application
+            android:icon="@drawable/ic_launcher"
+            android:label="@string/app_name"
+            android:theme="@android:style/Theme.Holo.Light"
+            android:allowBackup="false">
+
+        <meta-data
+                android:name="com.google.android.gms.version"
+                android:value="@integer/google_play_services_version" />
+
+        <activity
+                android:name="com.example.android.wearable.agendadata.MainActivity"
+                android:label="@string/app_name"
+                android:configChanges="keyboardHidden|orientation|screenSize">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN"/>
+                <category android:name="android.intent.category.LAUNCHER"/>
+            </intent-filter>
+        </activity>
+
+        <service android:name="com.example.android.wearable.agendadata.CalendarQueryService"/>
+    </application>
+</manifest>
diff --git a/samples/wearable/AgendaData/Application/src/main/java/com/example/android/wearable/agendadata/CalendarQueryService.java b/samples/wearable/AgendaData/Application/src/main/java/com/example/android/wearable/agendadata/CalendarQueryService.java
new file mode 100644
index 0000000..c55fb2c
--- /dev/null
+++ b/samples/wearable/AgendaData/Application/src/main/java/com/example/android/wearable/agendadata/CalendarQueryService.java
@@ -0,0 +1,251 @@
+package com.example.android.wearable.agendadata;
+
+
+import static com.example.android.wearable.agendadata.Constants.TAG;
+import static com.example.android.wearable.agendadata.Constants.CONNECTION_TIME_OUT_MS;
+import static com.example.android.wearable.agendadata.Constants.CAL_DATA_ITEM_PATH_PREFIX;
+import static com.example.android.wearable.agendadata.Constants.ALL_DAY;
+import static com.example.android.wearable.agendadata.Constants.BEGIN;
+import static com.example.android.wearable.agendadata.Constants.DATA_ITEM_URI;
+import static com.example.android.wearable.agendadata.Constants.DESCRIPTION;
+import static com.example.android.wearable.agendadata.Constants.END;
+import static com.example.android.wearable.agendadata.Constants.EVENT_ID;
+import static com.example.android.wearable.agendadata.Constants.ID;
+import static com.example.android.wearable.agendadata.Constants.PROFILE_PIC;
+import static com.example.android.wearable.agendadata.Constants.TITLE;
+
+import android.app.IntentService;
+import android.content.ContentResolver;
+import android.content.ContentUris;
+import android.content.Context;
+import android.content.Intent;
+import android.content.res.Resources;
+import android.database.Cursor;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.net.Uri;
+import android.os.Bundle;
+import android.provider.CalendarContract;
+import android.provider.ContactsContract.CommonDataKinds.Email;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Data;
+import android.text.format.Time;
+import android.util.Log;
+
+import com.google.android.gms.common.ConnectionResult;
+import com.google.android.gms.common.api.GoogleApiClient;
+import com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks;
+import com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener;
+import com.google.android.gms.wearable.Asset;
+import com.google.android.gms.wearable.DataMap;
+import com.google.android.gms.wearable.PutDataMapRequest;
+import com.google.android.gms.wearable.Wearable;
+
+import java.io.ByteArrayOutputStream;
+import java.io.Closeable;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Queries calendar events using Android Calendar Provider API and creates a data item for each
+ * event.
+ */
+public class CalendarQueryService extends IntentService
+        implements ConnectionCallbacks, OnConnectionFailedListener {
+
+    private static final String[] INSTANCE_PROJECTION = {
+            CalendarContract.Instances._ID,
+            CalendarContract.Instances.EVENT_ID,
+            CalendarContract.Instances.TITLE,
+            CalendarContract.Instances.BEGIN,
+            CalendarContract.Instances.END,
+            CalendarContract.Instances.ALL_DAY,
+            CalendarContract.Instances.DESCRIPTION,
+            CalendarContract.Instances.ORGANIZER
+    };
+
+    private static final String[] CONTACT_PROJECTION = new String[] { Data._ID, Data.CONTACT_ID };
+    private static final String CONTACT_SELECTION = Email.ADDRESS + " = ?";
+
+    private GoogleApiClient mGoogleApiClient;
+
+    public CalendarQueryService() {
+        super(CalendarQueryService.class.getSimpleName());
+    }
+
+    @Override
+    public void onCreate() {
+        super.onCreate();
+        mGoogleApiClient = new GoogleApiClient.Builder(this)
+                .addApi(Wearable.API)
+                .addConnectionCallbacks(this)
+                .addOnConnectionFailedListener(this)
+                .build();
+    }
+
+    @Override
+    protected void onHandleIntent(Intent intent) {
+        mGoogleApiClient.blockingConnect(CONNECTION_TIME_OUT_MS, TimeUnit.MILLISECONDS);
+        // Query calendar events in the next 24 hours.
+        Time time = new Time();
+        time.setToNow();
+        long beginTime = time.toMillis(true);
+        time.monthDay++;
+        time.normalize(true);
+        long endTime = time.normalize(true);
+
+        List<Event> events = queryEvents(this, beginTime, endTime);
+        for (Event event : events) {
+            final PutDataMapRequest putDataMapRequest = event.toPutDataMapRequest();
+            if (mGoogleApiClient.isConnected()) {
+                Wearable.DataApi.putDataItem(
+                    mGoogleApiClient, putDataMapRequest.asPutDataRequest()).await();
+            } else {
+                Log.e(TAG, "Failed to send data item: " + putDataMapRequest
+                         + " - Client disconnected from Google Play Services");
+            }
+        }
+        mGoogleApiClient.disconnect();
+    }
+
+    private static String makeDataItemPath(long eventId, long beginTime) {
+        return CAL_DATA_ITEM_PATH_PREFIX + eventId + "/" + beginTime;
+    }
+
+    private static List<Event> queryEvents(Context context, long beginTime, long endTime) {
+        ContentResolver contentResolver = context.getContentResolver();
+        Uri.Builder builder = CalendarContract.Instances.CONTENT_URI.buildUpon();
+        ContentUris.appendId(builder, beginTime);
+        ContentUris.appendId(builder, endTime);
+
+        Cursor cursor = contentResolver.query(builder.build(), INSTANCE_PROJECTION,
+                null /* selection */, null /* selectionArgs */, null /* sortOrder */);
+        try {
+            int idIdx = cursor.getColumnIndex(CalendarContract.Instances._ID);
+            int eventIdIdx = cursor.getColumnIndex(CalendarContract.Instances.EVENT_ID);
+            int titleIdx = cursor.getColumnIndex(CalendarContract.Instances.TITLE);
+            int beginIdx = cursor.getColumnIndex(CalendarContract.Instances.BEGIN);
+            int endIdx = cursor.getColumnIndex(CalendarContract.Instances.END);
+            int allDayIdx = cursor.getColumnIndex(CalendarContract.Instances.ALL_DAY);
+            int descIdx = cursor.getColumnIndex(CalendarContract.Instances.DESCRIPTION);
+            int ownerEmailIdx = cursor.getColumnIndex(CalendarContract.Instances.ORGANIZER);
+
+            List<Event> events = new ArrayList<Event>(cursor.getCount());
+            while (cursor.moveToNext()) {
+                Event event = new Event();
+                event.id = cursor.getLong(idIdx);
+                event.eventId = cursor.getLong(eventIdIdx);
+                event.title = cursor.getString(titleIdx);
+                event.begin = cursor.getLong(beginIdx);
+                event.end = cursor.getLong(endIdx);
+                event.allDay = cursor.getInt(allDayIdx) != 0;
+                event.description = cursor.getString(descIdx);
+                String ownerEmail = cursor.getString(ownerEmailIdx);
+                Cursor contactCursor = contentResolver.query(Data.CONTENT_URI,
+                        CONTACT_PROJECTION, CONTACT_SELECTION, new String[] {ownerEmail}, null);
+                int ownerIdIdx = contactCursor.getColumnIndex(Data.CONTACT_ID);
+                long ownerId = -1;
+                if (contactCursor.moveToFirst()) {
+                    ownerId = contactCursor.getLong(ownerIdIdx);
+                }
+                contactCursor.close();
+                // Use event organizer's profile picture as the notification background.
+                event.ownerProfilePic = getProfilePicture(contentResolver, context, ownerId);
+                events.add(event);
+            }
+            return events;
+        } finally {
+            cursor.close();
+        }
+    }
+
+    @Override
+    public void onConnected(Bundle connectionHint) {
+    }
+
+    @Override
+    public void onConnectionSuspended(int cause) {
+    }
+
+    @Override
+    public void onConnectionFailed(ConnectionResult result) {
+    }
+
+    private static Asset getDefaultProfile(Resources res) {
+        Bitmap bitmap = BitmapFactory.decodeResource(res, R.drawable.nobody);
+        return Asset.createFromBytes(toByteArray(bitmap));
+    }
+
+    private static Asset getProfilePicture(ContentResolver contentResolver, Context context,
+                                           long contactId) {
+        if (contactId != -1) {
+            // Try to retrieve the profile picture for the given contact.
+            Uri contactUri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId);
+            InputStream inputStream = Contacts.openContactPhotoInputStream(contentResolver,
+                    contactUri, true /*preferHighres*/);
+
+            if (null != inputStream) {
+                try {
+                    Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
+                    if (bitmap != null) {
+                        return Asset.createFromBytes(toByteArray(bitmap));
+                    } else {
+                        Log.e(TAG, "Cannot decode profile picture for contact " + contactId);
+                    }
+                } finally {
+                    closeQuietly(inputStream);
+                }
+            }
+        }
+        // Use a default background image if the user has no profile picture or there was an error.
+        return getDefaultProfile(context.getResources());
+    }
+
+    private static byte[] toByteArray(Bitmap bitmap) {
+        ByteArrayOutputStream stream = new ByteArrayOutputStream();
+        bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
+        byte[] byteArray = stream.toByteArray();
+        closeQuietly(stream);
+        return byteArray;
+    }
+
+    private static void closeQuietly(Closeable closeable) {
+        try {
+            closeable.close();
+        } catch (IOException e) {
+            Log.e(TAG, "IOException while closing closeable.", e);
+        }
+    }
+
+    private static class Event {
+
+        public long id;
+        public long eventId;
+        public String title;
+        public long begin;
+        public long end;
+        public boolean allDay;
+        public String description;
+        public Asset ownerProfilePic;
+
+        public PutDataMapRequest toPutDataMapRequest(){
+            final PutDataMapRequest putDataMapRequest = PutDataMapRequest.create(
+                    makeDataItemPath(eventId, begin));
+            DataMap data = putDataMapRequest.getDataMap();
+            data.putString(DATA_ITEM_URI, putDataMapRequest.getUri().toString());
+            data.putLong(ID, id);
+            data.putLong(EVENT_ID, eventId);
+            data.putString(TITLE, title);
+            data.putLong(BEGIN, begin);
+            data.putLong(END, end);
+            data.putBoolean(ALL_DAY, allDay);
+            data.putString(DESCRIPTION, description);
+            data.putAsset(PROFILE_PIC, ownerProfilePic);
+
+            return putDataMapRequest;
+        }
+    }
+}
diff --git a/samples/wearable/AgendaData/Application/src/main/java/com/example/android/wearable/agendadata/Constants.java b/samples/wearable/AgendaData/Application/src/main/java/com/example/android/wearable/agendadata/Constants.java
new file mode 100644
index 0000000..1b9a0f0
--- /dev/null
+++ b/samples/wearable/AgendaData/Application/src/main/java/com/example/android/wearable/agendadata/Constants.java
@@ -0,0 +1,23 @@
+package com.example.android.wearable.agendadata;
+
+/** Constants used in companion app. */
+public final class Constants {
+    private Constants() {
+    }
+
+    public static final String TAG = "AgendaDataSample";
+
+    public static final String CAL_DATA_ITEM_PATH_PREFIX = "/event";
+    // Timeout for making a connection to GoogleApiClient (in milliseconds).
+    public static final long CONNECTION_TIME_OUT_MS = 100;
+
+    public static final String EVENT_ID = "event_id";
+    public static final String ID = "id";
+    public static final String TITLE = "title";
+    public static final String DESCRIPTION = "description";
+    public static final String BEGIN = "begin";
+    public static final String END = "end";
+    public static final String DATA_ITEM_URI = "data_item_uri";
+    public static final String ALL_DAY = "all_day";
+    public static final String PROFILE_PIC = "profile_pic";
+}
diff --git a/samples/wearable/AgendaData/Application/src/main/java/com/example/android/wearable/agendadata/MainActivity.java b/samples/wearable/AgendaData/Application/src/main/java/com/example/android/wearable/agendadata/MainActivity.java
new file mode 100644
index 0000000..046fc8d
--- /dev/null
+++ b/samples/wearable/AgendaData/Application/src/main/java/com/example/android/wearable/agendadata/MainActivity.java
@@ -0,0 +1,186 @@
+package com.example.android.wearable.agendadata;
+
+import static com.example.android.wearable.agendadata.Constants.TAG;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.content.IntentSender;
+import android.net.Uri;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.View;
+import android.widget.ScrollView;
+import android.widget.TextView;
+
+import com.google.android.gms.common.ConnectionResult;
+import com.google.android.gms.common.api.GoogleApiClient;
+import com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks;
+import com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener;
+import com.google.android.gms.common.api.ResultCallback;
+import com.google.android.gms.common.data.FreezableUtils;
+import com.google.android.gms.wearable.DataApi;
+import com.google.android.gms.wearable.DataItem;
+import com.google.android.gms.wearable.DataItemBuffer;
+import com.google.android.gms.wearable.Node;
+import com.google.android.gms.wearable.NodeApi;
+import com.google.android.gms.wearable.Wearable;
+
+import java.util.List;
+
+public class MainActivity extends Activity implements NodeApi.NodeListener, ConnectionCallbacks,
+        OnConnectionFailedListener {
+
+    /** Request code for launching the Intent to resolve Google Play services errors. */
+    private static final int REQUEST_RESOLVE_ERROR = 1000;
+
+    private GoogleApiClient mGoogleApiClient;
+    private boolean mResolvingError = false;
+
+    private TextView mLogTextView;
+    ScrollView mScroller;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        setContentView(R.layout.main);
+        mLogTextView = (TextView) findViewById(R.id.log);
+        mScroller = (ScrollView) findViewById(R.id.scroller);
+        mGoogleApiClient = new GoogleApiClient.Builder(this)
+                .addApi(Wearable.API)
+                .addConnectionCallbacks(this)
+                .addOnConnectionFailedListener(this)
+                .build();
+    }
+
+    @Override
+    protected void onStart() {
+        super.onStart();
+        if (!mResolvingError) {
+            mGoogleApiClient.connect();
+        }
+    }
+
+    @Override
+    protected void onStop() {
+        if (mGoogleApiClient.isConnected()) {
+            Wearable.NodeApi.removeListener(mGoogleApiClient, this);
+        }
+        mGoogleApiClient.disconnect();
+        super.onStop();
+    }
+
+    public void onGetEventsClicked(View v) {
+        startService(new Intent(this, CalendarQueryService.class));
+    }
+
+    public void onDeleteEventsClicked(View v) {
+        if (mGoogleApiClient.isConnected()) {
+            Wearable.DataApi.getDataItems(mGoogleApiClient)
+                    .setResultCallback(new ResultCallback<DataItemBuffer>() {
+                        @Override
+                        public void onResult(DataItemBuffer result) {
+                            if (result.getStatus().isSuccess()) {
+                                deleteDataItems(result);
+                            } else {
+                                if (Log.isLoggable(TAG, Log.DEBUG)) {
+                                    Log.d(TAG, "onDeleteEventsClicked(): failed to get Data Items");
+                                }
+                            }
+                            result.close();
+                        }
+                    });
+        } else {
+            Log.e(TAG, "Failed to delete data items"
+                     + " - Client disconnected from Google Play Services");
+        }
+    }
+
+    private void deleteDataItems(DataItemBuffer dataItems) {
+        if (mGoogleApiClient.isConnected()) {
+            // Store the DataItem URIs in a List and close the buffer. Then use these URIs
+            // to delete the DataItems.
+            final List<DataItem> dataItemList = FreezableUtils.freezeIterable(dataItems);
+            dataItems.close();
+            for (final DataItem dataItem : dataItemList) {
+                final Uri dataItemUri = dataItem.getUri();
+                // In a real calendar application, this might delete the corresponding calendar
+                // event from the calendar data provider. In this sample, we simply delete the
+                // DataItem, but leave the phone's calendar data intact.
+                Wearable.DataApi.deleteDataItems(mGoogleApiClient, dataItemUri)
+                        .setResultCallback(new ResultCallback<DataApi.DeleteDataItemsResult>() {
+                            @Override
+                            public void onResult(DataApi.DeleteDataItemsResult deleteResult) {
+                                if (deleteResult.getStatus().isSuccess()) {
+                                    appendLog("Successfully deleted data item: " + dataItemUri);
+                                } else {
+                                    appendLog("Failed to delete data item:" + dataItemUri);
+                                }
+                            }
+                        });
+            }
+        } else {
+            Log.e(TAG, "Failed to delete data items"
+                     + " - Client disconnected from Google Play Services");
+        }
+    }
+
+    private void appendLog(final String s) {
+        mLogTextView.post(new Runnable() {
+            @Override
+            public void run() {
+                mLogTextView.append(s);
+                mLogTextView.append("\n");
+                mScroller.fullScroll(View.FOCUS_DOWN);
+            }
+        });
+    }
+
+    @Override
+    public void onPeerConnected(Node peer) {
+        appendLog("Device connected");
+    }
+
+    @Override
+    public void onPeerDisconnected(Node peer) {
+        appendLog("Device disconnected");
+    }
+
+    @Override
+    public void onConnected(Bundle connectionHint) {
+        if (Log.isLoggable(TAG, Log.DEBUG)) {
+            Log.d(TAG, "Connected to Google Api Service");
+        }
+        mResolvingError = false;
+        Wearable.NodeApi.addListener(mGoogleApiClient, this);
+    }
+
+    @Override
+    public void onConnectionSuspended(int cause) {
+        // Ignore
+    }
+
+    @Override
+    public void onConnectionFailed(ConnectionResult result) {
+        if (Log.isLoggable(TAG, Log.DEBUG)) {
+            Log.d(TAG, "Disconnected from Google Api Service");
+        }
+        if (null != Wearable.NodeApi) {
+            Wearable.NodeApi.removeListener(mGoogleApiClient, this);
+        }
+        if (mResolvingError) {
+            // Already attempting to resolve an error.
+            return;
+        } else if (result.hasResolution()) {
+            try {
+                mResolvingError = true;
+                result.startResolutionForResult(this, REQUEST_RESOLVE_ERROR);
+            } catch (IntentSender.SendIntentException e) {
+                // There was an error with the resolution intent. Try again.
+                mGoogleApiClient.connect();
+            }
+        } else {
+            mResolvingError = false;
+        }
+    }
+}
diff --git a/samples/wearable/AgendaData/Application/src/main/res/drawable-hdpi/ic_launcher.png b/samples/wearable/AgendaData/Application/src/main/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 0000000..0564717
--- /dev/null
+++ b/samples/wearable/AgendaData/Application/src/main/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/AgendaData/Application/src/main/res/drawable-mdpi/ic_launcher.png b/samples/wearable/AgendaData/Application/src/main/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 0000000..0f40347
--- /dev/null
+++ b/samples/wearable/AgendaData/Application/src/main/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/AgendaData/Application/src/main/res/drawable-nodpi/nobody.png b/samples/wearable/AgendaData/Application/src/main/res/drawable-nodpi/nobody.png
new file mode 100644
index 0000000..5a33d60
--- /dev/null
+++ b/samples/wearable/AgendaData/Application/src/main/res/drawable-nodpi/nobody.png
Binary files differ
diff --git a/samples/wearable/AgendaData/Application/src/main/res/drawable-xhdpi/ic_launcher.png b/samples/wearable/AgendaData/Application/src/main/res/drawable-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..d7705cf
--- /dev/null
+++ b/samples/wearable/AgendaData/Application/src/main/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/AgendaData/Application/src/main/res/drawable-xxhdpi/ic_launcher.png b/samples/wearable/AgendaData/Application/src/main/res/drawable-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..f07299f
--- /dev/null
+++ b/samples/wearable/AgendaData/Application/src/main/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/AgendaData/Application/src/main/res/layout/main.xml b/samples/wearable/AgendaData/Application/src/main/res/layout/main.xml
new file mode 100644
index 0000000..acd6340
--- /dev/null
+++ b/samples/wearable/AgendaData/Application/src/main/res/layout/main.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <Button
+        android:layout_height="wrap_content"
+        android:layout_width="wrap_content"
+        android:text="@string/get_events"
+        android:onClick="onGetEventsClicked"/>
+    <Button
+        android:layout_height="wrap_content"
+        android:layout_width="wrap_content"
+        android:text="@string/delete_events"
+        android:onClick="onDeleteEventsClicked"/>
+
+    <TextView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:textAppearance="?android:textAppearanceLarge"
+        android:layout_marginTop="6dp"
+        android:padding="6dp"
+        android:text="@string/log"
+        android:textAllCaps="true"
+        android:textColor="@android:color/white"
+        android:background="@android:color/black"/>
+
+    <ScrollView
+        android:id="@+id/scroller"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+
+        <TextView
+            android:id="@+id/log"
+            android:fontFamily="courier"
+            android:textColor="@android:color/white"
+            android:background="@android:color/black"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"/>
+    </ScrollView>
+</LinearLayout>
diff --git a/samples/wearable/AgendaData/Application/src/main/res/values/strings.xml b/samples/wearable/AgendaData/Application/src/main/res/values/strings.xml
new file mode 100644
index 0000000..423858e
--- /dev/null
+++ b/samples/wearable/AgendaData/Application/src/main/res/values/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name">Android Wear AgendaData Example Application</string>
+    <string name="get_events">Sync calendar events to wearable</string>
+    <string name="delete_events">Delete calendar events from wearable</string>
+    <string name="log">Log</string>
+</resources>
diff --git a/samples/wearable/AgendaData/Application/src/main/res/values/styles.xml b/samples/wearable/AgendaData/Application/src/main/res/values/styles.xml
new file mode 100644
index 0000000..929c8f4
--- /dev/null
+++ b/samples/wearable/AgendaData/Application/src/main/res/values/styles.xml
@@ -0,0 +1,10 @@
+<resources>
+    <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">
+        <item name="android:windowAnimationStyle">@null</item>
+    </style>
+
+    <!-- Application theme. -->
+    <style name="AppTheme" parent="AppBaseTheme">
+        <!-- All customizations that are NOT specific to a particular API-level can go here. -->
+    </style>
+</resources>
diff --git a/samples/wearable/AgendaData/Wearable/build.gradle b/samples/wearable/AgendaData/Wearable/build.gradle
new file mode 100644
index 0000000..a1921f0
--- /dev/null
+++ b/samples/wearable/AgendaData/Wearable/build.gradle
@@ -0,0 +1,26 @@
+apply plugin: 'android'
+
+android {
+    compileSdkVersion 20
+    buildToolsVersion '20'
+
+    defaultConfig {
+        minSdkVersion 20
+        targetSdkVersion 20
+        versionCode 1
+        versionName "1.0"
+    }
+
+    buildTypes {
+        release {
+            runProguard false
+            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
+        }
+    }
+}
+
+dependencies {
+    compile 'com.google.android.gms:play-services:5.+@aar'
+    compile "com.android.support:support-v4:20.0.+"
+    compile "com.google.android.support:wearable:1.0.+"
+}
\ No newline at end of file
diff --git a/samples/wearable/AgendaData/Wearable/proguard-rules.txt b/samples/wearable/AgendaData/Wearable/proguard-rules.txt
new file mode 100644
index 0000000..08e5bdc
--- /dev/null
+++ b/samples/wearable/AgendaData/Wearable/proguard-rules.txt
@@ -0,0 +1,22 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
+-dontwarn android.support.wearable.view.DelayedConfirmationView
+-dontwarn android.support.wearable.view.CircledImageView
diff --git a/samples/wearable/AgendaData/Wearable/project.properties b/samples/wearable/AgendaData/Wearable/project.properties
new file mode 100644
index 0000000..4ab1256
--- /dev/null
+++ b/samples/wearable/AgendaData/Wearable/project.properties
@@ -0,0 +1,14 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-19
diff --git a/samples/wearable/AgendaData/Wearable/src/main/AndroidManifest.xml b/samples/wearable/AgendaData/Wearable/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..f986b3a
--- /dev/null
+++ b/samples/wearable/AgendaData/Wearable/src/main/AndroidManifest.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+        package="com.example.android.wearable.agendadata" >
+
+    <uses-sdk android:minSdkVersion="20" android:targetSdkVersion="20" />
+
+    <application
+            android:icon="@drawable/ic_launcher"
+            android:label="@string/app_name"
+            android:allowBackup="false">
+
+        <meta-data
+                android:name="com.google.android.gms.version"
+                android:value="@integer/google_play_services_version" />
+
+        <service
+                android:name="com.example.android.wearable.agendadata.HomeListenerService" >
+            <intent-filter>
+                <action android:name="com.google.android.gms.wearable.BIND_LISTENER" />
+            </intent-filter>
+        </service>
+
+        <service android:name="com.example.android.wearable.agendadata.DeleteService"/>
+
+        <activity android:name="android.support.wearable.activity.ConfirmationActivity"/>
+
+    </application>
+</manifest>
diff --git a/samples/wearable/AgendaData/Wearable/src/main/java/com/example/android/wearable/agendadata/Constants.java b/samples/wearable/AgendaData/Wearable/src/main/java/com/example/android/wearable/agendadata/Constants.java
new file mode 100644
index 0000000..669a1a5
--- /dev/null
+++ b/samples/wearable/AgendaData/Wearable/src/main/java/com/example/android/wearable/agendadata/Constants.java
@@ -0,0 +1,19 @@
+package com.example.android.wearable.agendadata;
+
+/** Constants used in wearable app. */
+public final class Constants {
+
+    private Constants() {
+    }
+
+    public static final String TAG = "AgendaDataSample";
+
+    public static final String TITLE = "title";
+    public static final String DESCRIPTION = "description";
+    public static final String BEGIN = "begin";
+    public static final String END = "end";
+    public static final String ALL_DAY = "all_day";
+    public static final String PROFILE_PIC = "profile_pic";
+
+    public static final String EXTRA_SILENT = "silent";
+}
diff --git a/samples/wearable/AgendaData/Wearable/src/main/java/com/example/android/wearable/agendadata/DeleteService.java b/samples/wearable/AgendaData/Wearable/src/main/java/com/example/android/wearable/agendadata/DeleteService.java
new file mode 100644
index 0000000..906c0ee
--- /dev/null
+++ b/samples/wearable/AgendaData/Wearable/src/main/java/com/example/android/wearable/agendadata/DeleteService.java
@@ -0,0 +1,102 @@
+package com.example.android.wearable.agendadata;
+
+import static com.example.android.wearable.agendadata.Constants.TAG;
+import static com.example.android.wearable.agendadata.Constants.EXTRA_SILENT;
+
+import android.app.IntentService;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Bundle;
+import android.support.wearable.activity.ConfirmationActivity;
+import android.util.Log;
+
+import com.google.android.gms.common.ConnectionResult;
+import com.google.android.gms.common.api.GoogleApiClient;
+import com.google.android.gms.wearable.DataApi;
+import com.google.android.gms.wearable.Wearable;
+
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Handles "Delete" button on calendar event card.
+ */
+public class DeleteService extends IntentService implements GoogleApiClient.ConnectionCallbacks,
+        GoogleApiClient.OnConnectionFailedListener {
+
+    /* Timeout for making a connection to GoogleApiClient (in milliseconds) */
+    private static final long TIME_OUT = 100;
+
+    private GoogleApiClient mGoogleApiClient;
+
+    public DeleteService() {
+        super(DeleteService.class.getSimpleName());
+    }
+
+    @Override
+    public void onCreate() {
+        super.onCreate();
+        mGoogleApiClient = new GoogleApiClient.Builder(this)
+                .addApi(Wearable.API)
+                .addConnectionCallbacks(this)
+                .addOnConnectionFailedListener(this)
+                .build();
+    }
+
+    @Override
+    protected void onHandleIntent(Intent intent) {
+        mGoogleApiClient.blockingConnect(TIME_OUT, TimeUnit.MILLISECONDS);
+        Uri dataItemUri = intent.getData();
+        if (Log.isLoggable(TAG, Log.VERBOSE)) {
+            Log.v(TAG, "DeleteService.onHandleIntent=" + dataItemUri);
+        }
+        if (mGoogleApiClient.isConnected()) {
+            DataApi.DeleteDataItemsResult result = Wearable.DataApi
+                    .deleteDataItems(mGoogleApiClient, dataItemUri).await();
+            if (result.getStatus().isSuccess() && !intent.getBooleanExtra(EXTRA_SILENT, false)) {
+                // Show the success animation on the watch unless Silent extra is true.
+                startConfirmationActivity(ConfirmationActivity.SUCCESS_ANIMATION,
+                                          getString(R.string.delete_successful));
+            } else {
+                if (Log.isLoggable(TAG, Log.VERBOSE)) {
+                    Log.v(TAG, "DeleteService.onHandleIntent: Failed to delete dataItem:"
+                            + dataItemUri);
+                }
+                // Show the failure animation on the watch unless Silent extra is true.
+                if (!intent.getBooleanExtra(EXTRA_SILENT, false)) {
+                    startConfirmationActivity(ConfirmationActivity.FAILURE_ANIMATION,
+                                              getString(R.string.delete_unsuccessful));
+                }
+            }
+        } else {
+            Log.e(TAG, "Failed to delete data item: " + dataItemUri
+                    + " - Client disconnected from Google Play Services");
+            // Show the failure animation on the watch unless Silent extra is true.
+            if (!intent.getBooleanExtra(EXTRA_SILENT, false)) {
+                startConfirmationActivity(ConfirmationActivity.FAILURE_ANIMATION,
+                        getString(R.string.delete_unsuccessful));
+            }
+        }
+        mGoogleApiClient.disconnect();
+    }
+
+    private void startConfirmationActivity(int animationType, String message) {
+        Intent confirmationActivity = new Intent(this, ConfirmationActivity.class)
+                .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NO_ANIMATION)
+                .putExtra(ConfirmationActivity.EXTRA_ANIMATION_TYPE, animationType)
+                .putExtra(ConfirmationActivity.EXTRA_MESSAGE, message);
+        startActivity(confirmationActivity);
+    }
+
+    @Override
+    public void onConnected(Bundle connectionHint) {
+    }
+
+    @Override
+    public void onConnectionSuspended(int cause) {
+    }
+
+    @Override
+    public void onConnectionFailed(ConnectionResult result) {
+    }
+
+}
\ No newline at end of file
diff --git a/samples/wearable/AgendaData/Wearable/src/main/java/com/example/android/wearable/agendadata/HomeListenerService.java b/samples/wearable/AgendaData/Wearable/src/main/java/com/example/android/wearable/agendadata/HomeListenerService.java
new file mode 100644
index 0000000..7e702f4
--- /dev/null
+++ b/samples/wearable/AgendaData/Wearable/src/main/java/com/example/android/wearable/agendadata/HomeListenerService.java
@@ -0,0 +1,164 @@
+package com.example.android.wearable.agendadata;
+
+import static com.example.android.wearable.agendadata.Constants.TAG;
+import static com.example.android.wearable.agendadata.Constants.EXTRA_SILENT;
+
+import static com.example.android.wearable.agendadata.Constants.ALL_DAY;
+import static com.example.android.wearable.agendadata.Constants.BEGIN;
+import static com.example.android.wearable.agendadata.Constants.DESCRIPTION;
+import static com.example.android.wearable.agendadata.Constants.END;
+import static com.example.android.wearable.agendadata.Constants.PROFILE_PIC;
+import static com.example.android.wearable.agendadata.Constants.TITLE;
+
+import android.app.Notification;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.net.Uri;
+import android.text.TextUtils;
+import android.text.format.DateFormat;
+import android.util.Log;
+
+import com.google.android.gms.common.api.GoogleApiClient;
+import com.google.android.gms.wearable.Asset;
+import com.google.android.gms.wearable.DataApi;
+import com.google.android.gms.wearable.DataEvent;
+import com.google.android.gms.wearable.DataEventBuffer;
+import com.google.android.gms.wearable.DataItem;
+import com.google.android.gms.wearable.DataMap;
+import com.google.android.gms.wearable.DataMapItem;
+import com.google.android.gms.wearable.MessageEvent;
+import com.google.android.gms.wearable.Wearable;
+import com.google.android.gms.wearable.WearableListenerService;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Listens to DataItem events on the home device.
+ */
+public class HomeListenerService extends WearableListenerService {
+
+    private static final Map<Uri, Integer> sNotificationIdByDataItemUri =
+            new HashMap<Uri, Integer>();
+    private static int sNotificationId = 1;
+    private GoogleApiClient mGoogleApiClient;
+
+    @Override
+    public void onDataChanged(DataEventBuffer dataEvents) {
+        if (Log.isLoggable(TAG, Log.DEBUG)) {
+            Log.d(TAG, "onDataChanged: " + dataEvents + " for " + getPackageName());
+        }
+        for (DataEvent event : dataEvents) {
+            if (event.getType() == DataEvent.TYPE_DELETED) {
+                deleteDataItem(event.getDataItem());
+            } else if (event.getType() == DataEvent.TYPE_CHANGED) {
+                UpdateNotificationForDataItem(event.getDataItem());
+            }
+        }
+        dataEvents.close();
+    }
+
+    @Override
+    public void onCreate() {
+        super.onCreate();
+        mGoogleApiClient = new GoogleApiClient.Builder(this.getApplicationContext())
+                .addApi(Wearable.API)
+                .build();
+        mGoogleApiClient.connect();
+    }
+
+    /**
+     * Posts a local notification to show calendar card.
+     */
+    private void UpdateNotificationForDataItem(DataItem dataItem) {
+        DataMapItem mapDataItem = DataMapItem.fromDataItem(dataItem);
+        DataMap data = mapDataItem.getDataMap();
+
+        String description = data.getString(DESCRIPTION);
+        if (TextUtils.isEmpty(description)) {
+            description = "";
+        } else {
+            // Add a space between the description and the time of the event.
+            description += " ";
+        }
+        String contentText;
+        if (data.getBoolean(ALL_DAY)) {
+            contentText = getString(R.string.desc_all_day, description);
+        } else {
+            String startTime = DateFormat.getTimeFormat(this).format(new Date(data.getLong(BEGIN)));
+            String endTime = DateFormat.getTimeFormat(this).format(new Date(data.getLong(END)));
+            contentText = getString(R.string.desc_time_period, description, startTime, endTime);
+        }
+
+        Intent deleteOperation = new Intent(this, DeleteService.class);
+        // Use a unique identifier for the delete action.
+        String deleteAction = "action_delete" + dataItem.getUri().toString() + sNotificationId;
+        deleteOperation.setAction(deleteAction);
+        deleteOperation.setData(dataItem.getUri());
+        PendingIntent deleteIntent = PendingIntent.getService(this, 0, deleteOperation,
+                PendingIntent.FLAG_ONE_SHOT);
+        PendingIntent silentDeleteIntent = PendingIntent.getService(this, 1,
+                deleteOperation.putExtra(EXTRA_SILENT, true), PendingIntent.FLAG_ONE_SHOT);
+
+        Notification.Builder notificationBuilder = new Notification.Builder(this)
+                .setContentTitle(data.getString(TITLE))
+                .setContentText(contentText)
+                .setSmallIcon(R.drawable.ic_launcher)
+                .addAction(R.drawable.ic_menu_delete, getText(R.string.delete), deleteIntent)
+                .setDeleteIntent(silentDeleteIntent)  // Delete DataItem if notification dismissed.
+                .setLocalOnly(true)
+                .setPriority(Notification.PRIORITY_MIN);
+
+        // Set the event owner's profile picture as the notification background.
+        Asset asset = data.getAsset(PROFILE_PIC);
+        if (null != asset) {
+            if (mGoogleApiClient.isConnected()) {
+                DataApi.GetFdForAssetResult assetFdResult =
+                        Wearable.DataApi.getFdForAsset(mGoogleApiClient, asset).await();
+                if (assetFdResult.getStatus().isSuccess()) {
+                    Bitmap profilePic = BitmapFactory.decodeStream(assetFdResult.getInputStream());
+                    notificationBuilder.extend(new Notification.WearableExtender()
+                            .setBackground(profilePic));
+                } else if (Log.isLoggable(TAG, Log.DEBUG)) {
+                    Log.d(TAG, "asset fetch failed with statusCode: "
+                            + assetFdResult.getStatus().getStatusCode());
+                }
+            } else {
+                Log.e(TAG, "Failed to set notification background"
+                         + " - Client disconnected from Google Play Services");
+            }
+        }
+        Notification card = notificationBuilder.build();
+
+        ((NotificationManager) getSystemService(NOTIFICATION_SERVICE))
+                .notify(sNotificationId, card);
+
+        sNotificationIdByDataItemUri.put(dataItem.getUri(), sNotificationId++);
+    }
+
+    /**
+     * Deletes the calendar card associated with the data item.
+     */
+    private void deleteDataItem(DataItem dataItem) {
+        if (Log.isLoggable(TAG, Log.VERBOSE)) {
+            Log.v(TAG, "onDataItemDeleted:DataItem=" + dataItem.getUri());
+        }
+        Integer notificationId = sNotificationIdByDataItemUri.remove(dataItem.getUri());
+        if (notificationId != null) {
+            ((NotificationManager) getSystemService(NOTIFICATION_SERVICE)).cancel(notificationId);
+        }
+    }
+
+    @Override
+    public void onMessageReceived(MessageEvent messageEvent) {
+        if (Log.isLoggable(TAG, Log.DEBUG)) {
+            Log.d(TAG, "onMessageReceived: " + messageEvent.getPath()
+                     + " " + messageEvent.getData() + " for " + getPackageName());
+        }
+    }
+
+}
diff --git a/samples/wearable/AgendaData/Wearable/src/main/res/drawable-hdpi/ic_launcher.png b/samples/wearable/AgendaData/Wearable/src/main/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 0000000..0564717
--- /dev/null
+++ b/samples/wearable/AgendaData/Wearable/src/main/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/AgendaData/Wearable/src/main/res/drawable-hdpi/ic_menu_delete.png b/samples/wearable/AgendaData/Wearable/src/main/res/drawable-hdpi/ic_menu_delete.png
new file mode 100644
index 0000000..24d8f6a
--- /dev/null
+++ b/samples/wearable/AgendaData/Wearable/src/main/res/drawable-hdpi/ic_menu_delete.png
Binary files differ
diff --git a/samples/wearable/AgendaData/Wearable/src/main/res/drawable-mdpi/ic_launcher.png b/samples/wearable/AgendaData/Wearable/src/main/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 0000000..0f40347
--- /dev/null
+++ b/samples/wearable/AgendaData/Wearable/src/main/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/AgendaData/Wearable/src/main/res/drawable-mdpi/ic_menu_delete.png b/samples/wearable/AgendaData/Wearable/src/main/res/drawable-mdpi/ic_menu_delete.png
new file mode 100644
index 0000000..e2c8700
--- /dev/null
+++ b/samples/wearable/AgendaData/Wearable/src/main/res/drawable-mdpi/ic_menu_delete.png
Binary files differ
diff --git a/samples/wearable/AgendaData/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png b/samples/wearable/AgendaData/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..d7705cf
--- /dev/null
+++ b/samples/wearable/AgendaData/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/AgendaData/Wearable/src/main/res/drawable-xhdpi/ic_menu_delete.png b/samples/wearable/AgendaData/Wearable/src/main/res/drawable-xhdpi/ic_menu_delete.png
new file mode 100644
index 0000000..65b9cae
--- /dev/null
+++ b/samples/wearable/AgendaData/Wearable/src/main/res/drawable-xhdpi/ic_menu_delete.png
Binary files differ
diff --git a/samples/wearable/AgendaData/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png b/samples/wearable/AgendaData/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..f07299f
--- /dev/null
+++ b/samples/wearable/AgendaData/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/AgendaData/Wearable/src/main/res/drawable-xxhdpi/ic_menu_delete.png b/samples/wearable/AgendaData/Wearable/src/main/res/drawable-xxhdpi/ic_menu_delete.png
new file mode 100644
index 0000000..8e9e78d
--- /dev/null
+++ b/samples/wearable/AgendaData/Wearable/src/main/res/drawable-xxhdpi/ic_menu_delete.png
Binary files differ
diff --git a/samples/wearable/AgendaData/Wearable/src/main/res/values/strings.xml b/samples/wearable/AgendaData/Wearable/src/main/res/values/strings.xml
new file mode 100644
index 0000000..a4b3dcd
--- /dev/null
+++ b/samples/wearable/AgendaData/Wearable/src/main/res/values/strings.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name">Android Wear AgendaData Example Application</string>
+    <string name="delete">Delete</string>
+    <string name="desc_all_day">%s(All day)</string>
+    <string name="desc_time_period">%1$s(%2$s - %3$s)</string>
+    <string name="delete_successful">Event deleted</string>
+    <string name="delete_unsuccessful">Unable to delete event</string>
+</resources>
diff --git a/samples/wearable/AgendaData/build.gradle b/samples/wearable/AgendaData/build.gradle
new file mode 100644
index 0000000..07be865
--- /dev/null
+++ b/samples/wearable/AgendaData/build.gradle
@@ -0,0 +1,14 @@
+buildscript {
+    repositories {
+        mavenCentral()
+    }
+    dependencies {
+        classpath 'com.android.tools.build:gradle:0.11.+'
+    }
+}
+
+allprojects {
+    repositories {
+        mavenCentral()
+    }
+}
\ No newline at end of file
diff --git a/samples/wearable/AgendaData/gradle.properties b/samples/wearable/AgendaData/gradle.properties
new file mode 100644
index 0000000..5d08ba7
--- /dev/null
+++ b/samples/wearable/AgendaData/gradle.properties
@@ -0,0 +1,18 @@
+# Project-wide Gradle settings.
+
+# IDE (e.g. Android Studio) users:
+# Settings specified in this file will override any Gradle settings
+# configured through the IDE.
+
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+# Default value: -Xmx10248m -XX:MaxPermSize=256m
+# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
+
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
\ No newline at end of file
diff --git a/samples/wearable/AgendaData/gradle/wrapper/gradle-wrapper.jar b/samples/wearable/AgendaData/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..5838598
--- /dev/null
+++ b/samples/wearable/AgendaData/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/samples/wearable/AgendaData/gradle/wrapper/gradle-wrapper.properties b/samples/wearable/AgendaData/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..e83e460
--- /dev/null
+++ b/samples/wearable/AgendaData/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Fri Mar 14 14:02:22 PDT 2014
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=http\://services.gradle.org/distributions/gradle-1.11-all.zip
diff --git a/samples/wearable/AgendaData/gradlew b/samples/wearable/AgendaData/gradlew
new file mode 100755
index 0000000..91a7e26
--- /dev/null
+++ b/samples/wearable/AgendaData/gradlew
@@ -0,0 +1,164 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+##  Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+    echo "$*"
+}
+
+die ( ) {
+    echo
+    echo "$*"
+    echo
+    exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+  CYGWIN* )
+    cygwin=true
+    ;;
+  Darwin* )
+    darwin=true
+    ;;
+  MINGW* )
+    msys=true
+    ;;
+esac
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched.
+if $cygwin ; then
+    [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+fi
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+        PRG="$link"
+    else
+        PRG=`dirname "$PRG"`"/$link"
+    fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >&-
+APP_HOME="`pwd -P`"
+cd "$SAVED" >&-
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+        # IBM's JDK on AIX uses strange locations for the executables
+        JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+        JAVACMD="$JAVA_HOME/bin/java"
+    fi
+    if [ ! -x "$JAVACMD" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+else
+    JAVACMD="java"
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+    MAX_FD_LIMIT=`ulimit -H -n`
+    if [ $? -eq 0 ] ; then
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+            MAX_FD="$MAX_FD_LIMIT"
+        fi
+        ulimit -n $MAX_FD
+        if [ $? -ne 0 ] ; then
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
+        fi
+    else
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+    fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+    # We build the pattern for arguments to be converted via cygpath
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+    SEP=""
+    for dir in $ROOTDIRSRAW ; do
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
+        SEP="|"
+    done
+    OURCYGPATTERN="(^($ROOTDIRS))"
+    # Add a user-defined pattern to the cygpath arguments
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+    fi
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
+    i=0
+    for arg in "$@" ; do
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
+
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+        else
+            eval `echo args$i`="\"$arg\""
+        fi
+        i=$((i+1))
+    done
+    case $i in
+        (0) set -- ;;
+        (1) set -- "$args0" ;;
+        (2) set -- "$args0" "$args1" ;;
+        (3) set -- "$args0" "$args1" "$args2" ;;
+        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+    esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+    JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/samples/wearable/AgendaData/gradlew.bat b/samples/wearable/AgendaData/gradlew.bat
new file mode 100644
index 0000000..aec9973
--- /dev/null
+++ b/samples/wearable/AgendaData/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem  Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/samples/wearable/AgendaData/settings.gradle b/samples/wearable/AgendaData/settings.gradle
new file mode 100644
index 0000000..f3f25a5
--- /dev/null
+++ b/samples/wearable/AgendaData/settings.gradle
@@ -0,0 +1 @@
+include 'Wearable', 'Application'
diff --git a/samples/wearable/DataLayer/Application/build.gradle b/samples/wearable/DataLayer/Application/build.gradle
new file mode 100644
index 0000000..9568da4
--- /dev/null
+++ b/samples/wearable/DataLayer/Application/build.gradle
@@ -0,0 +1,30 @@
+apply plugin: 'android'
+
+android {
+    compileSdkVersion 19
+    buildToolsVersion '20'
+
+    defaultConfig {
+        minSdkVersion 18
+        targetSdkVersion 19
+        versionCode 1
+        versionName "1.0"
+    }
+
+    buildTypes {
+        release {
+            runProguard false
+            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
+        }
+    }
+
+    aaptOptions {
+        noCompress 'apk'
+    }
+}
+
+dependencies {
+    compile 'com.google.android.gms:play-services:5.0.+@aar'
+    compile "com.android.support:support-v4:20.0.+"
+    wearApp project(':Wearable')
+}
\ No newline at end of file
diff --git a/samples/wearable/DataLayer/Application/proguard-rules.txt b/samples/wearable/DataLayer/Application/proguard-rules.txt
new file mode 100644
index 0000000..f2fe155
--- /dev/null
+++ b/samples/wearable/DataLayer/Application/proguard-rules.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
diff --git a/samples/wearable/DataLayer/Application/src/main/AndroidManifest.xml b/samples/wearable/DataLayer/Application/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..12a18f0
--- /dev/null
+++ b/samples/wearable/DataLayer/Application/src/main/AndroidManifest.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+        package="com.example.android.wearable.datalayer" >
+
+    <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="19" />
+    <uses-feature android:name="android.hardware.camera" android:required="false" />
+
+    <application
+            android:allowBackup="true"
+            android:icon="@drawable/ic_launcher"
+            android:label="@string/app_name">
+
+        <meta-data
+                android:name="com.google.android.gms.version"
+                android:value="@integer/google_play_services_version" />
+
+        <activity
+                android:name=".MainActivity"
+                android:label="@string/app_name"
+                android:launchMode="singleTask" >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+    </application>
+</manifest>
diff --git a/samples/wearable/DataLayer/Application/src/main/java/com/example/android/wearable/datalayer/MainActivity.java b/samples/wearable/DataLayer/Application/src/main/java/com/example/android/wearable/datalayer/MainActivity.java
new file mode 100644
index 0000000..4a960ae
--- /dev/null
+++ b/samples/wearable/DataLayer/Application/src/main/java/com/example/android/wearable/datalayer/MainActivity.java
@@ -0,0 +1,468 @@
+package com.example.android.wearable.datalayer;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentSender;
+import android.content.pm.PackageManager;
+import android.graphics.Bitmap;
+import android.os.AsyncTask;
+import android.os.Bundle;
+import android.os.Handler;
+import android.provider.MediaStore;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.ImageView;
+import android.widget.ListView;
+import android.widget.TextView;
+
+import com.google.android.gms.common.ConnectionResult;
+import com.google.android.gms.common.api.ResultCallback;
+import com.google.android.gms.common.api.GoogleApiClient;
+import com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks;
+import com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener;
+import com.google.android.gms.common.data.FreezableUtils;
+import com.google.android.gms.wearable.Asset;
+import com.google.android.gms.wearable.DataApi.DataItemResult;
+import com.google.android.gms.wearable.DataEvent;
+import com.google.android.gms.wearable.DataEventBuffer;
+import com.google.android.gms.wearable.MessageApi.SendMessageResult;
+import com.google.android.gms.wearable.DataApi;
+import com.google.android.gms.wearable.MessageApi;
+import com.google.android.gms.wearable.MessageEvent;
+import com.google.android.gms.wearable.Node;
+import com.google.android.gms.wearable.NodeApi;
+import com.google.android.gms.wearable.PutDataMapRequest;
+import com.google.android.gms.wearable.PutDataRequest;
+import com.google.android.gms.wearable.Wearable;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.ScheduledFuture;
+import java.util.concurrent.ScheduledThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Receives its own events using a listener API designed for foreground activities. Updates a data
+ * item every second while it is open. Also allows user to take a photo and send that as an asset to
+ * the paired wearable.
+ */
+public class MainActivity extends Activity implements DataApi.DataListener,
+        MessageApi.MessageListener, NodeApi.NodeListener, ConnectionCallbacks,
+        OnConnectionFailedListener {
+
+    private static final String TAG = "MainActivity";
+
+    /** Request code for launching the Intent to resolve Google Play services errors. */
+    private static final int REQUEST_RESOLVE_ERROR = 1000;
+
+    private static final String START_ACTIVITY_PATH = "/start-activity";
+    private static final String COUNT_PATH = "/count";
+    private static final String IMAGE_PATH = "/image";
+    private static final String IMAGE_KEY = "photo";
+    private static final String COUNT_KEY = "count";
+
+    private GoogleApiClient mGoogleApiClient;
+    private boolean mResolvingError = false;
+    private boolean mCameraSupported = false;
+
+    private ListView mDataItemList;
+    private Button mTakePhotoBtn;
+    private Button mSendPhotoBtn;
+    private ImageView mThumbView;
+    private Bitmap mImageBitmap;
+    private View mStartActivityBtn;
+
+    private DataItemAdapter mDataItemListAdapter;
+    private Handler mHandler;
+
+    // Send DataItems.
+    private ScheduledExecutorService mGeneratorExecutor;
+    private ScheduledFuture<?> mDataItemGeneratorFuture;
+
+    static final int REQUEST_IMAGE_CAPTURE = 1;
+
+    @Override
+    public void onCreate(Bundle b) {
+        super.onCreate(b);
+        mHandler = new Handler();
+        LOGD(TAG, "onCreate");
+        mCameraSupported = getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA);
+        setContentView(R.layout.main_activity);
+        setupViews();
+
+        // Stores DataItems received by the local broadcaster or from the paired watch.
+        mDataItemListAdapter = new DataItemAdapter(this, android.R.layout.simple_list_item_1);
+        mDataItemList.setAdapter(mDataItemListAdapter);
+
+        mGeneratorExecutor = new ScheduledThreadPoolExecutor(1);
+
+        mGoogleApiClient = new GoogleApiClient.Builder(this)
+                .addApi(Wearable.API)
+                .addConnectionCallbacks(this)
+                .addOnConnectionFailedListener(this)
+                .build();
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
+            Bundle extras = data.getExtras();
+            mImageBitmap = (Bitmap) extras.get("data");
+            mThumbView.setImageBitmap(mImageBitmap);
+        }
+    }
+
+    @Override
+    protected void onStart() {
+        super.onStart();
+        if (!mResolvingError) {
+            mGoogleApiClient.connect();
+        }
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        mDataItemGeneratorFuture = mGeneratorExecutor.scheduleWithFixedDelay(
+                new DataItemGenerator(), 1, 5, TimeUnit.SECONDS);
+    }
+
+    @Override
+    public void onPause() {
+        super.onPause();
+        mDataItemGeneratorFuture.cancel(true /* mayInterruptIfRunning */);
+    }
+
+    @Override
+    protected void onStop() {
+        if (!mResolvingError) {
+            Wearable.DataApi.removeListener(mGoogleApiClient, this);
+            Wearable.MessageApi.removeListener(mGoogleApiClient, this);
+            Wearable.NodeApi.removeListener(mGoogleApiClient, this);
+            mGoogleApiClient.disconnect();
+        }
+        super.onStop();
+    }
+
+    @Override //ConnectionCallbacks
+    public void onConnected(Bundle connectionHint) {
+        LOGD(TAG, "Google API Client was connected");
+        mResolvingError = false;
+        mStartActivityBtn.setEnabled(true);
+        mSendPhotoBtn.setEnabled(mCameraSupported);
+        Wearable.DataApi.addListener(mGoogleApiClient, this);
+        Wearable.MessageApi.addListener(mGoogleApiClient, this);
+        Wearable.NodeApi.addListener(mGoogleApiClient, this);
+    }
+
+    @Override //ConnectionCallbacks
+    public void onConnectionSuspended(int cause) {
+        LOGD(TAG, "Connection to Google API client was suspended");
+        mStartActivityBtn.setEnabled(false);
+        mSendPhotoBtn.setEnabled(false);
+    }
+
+    @Override //OnConnectionFailedListener
+    public void onConnectionFailed(ConnectionResult result) {
+        if (mResolvingError) {
+            // Already attempting to resolve an error.
+            return;
+        } else if (result.hasResolution()) {
+            try {
+                mResolvingError = true;
+                result.startResolutionForResult(this, REQUEST_RESOLVE_ERROR);
+            } catch (IntentSender.SendIntentException e) {
+                // There was an error with the resolution intent. Try again.
+                mGoogleApiClient.connect();
+            }
+        } else {
+            Log.e(TAG, "Connection to Google API client has failed");
+            mResolvingError = false;
+            mStartActivityBtn.setEnabled(false);
+            mSendPhotoBtn.setEnabled(false);
+            Wearable.DataApi.removeListener(mGoogleApiClient, this);
+            Wearable.MessageApi.removeListener(mGoogleApiClient, this);
+            Wearable.NodeApi.removeListener(mGoogleApiClient, this);
+        }
+    }
+
+    @Override //DataListener
+    public void onDataChanged(DataEventBuffer dataEvents) {
+        LOGD(TAG, "onDataChanged: " + dataEvents);
+        final List<DataEvent> events = FreezableUtils.freezeIterable(dataEvents);
+        dataEvents.close();
+        runOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                for (DataEvent event : events) {
+                    if (event.getType() == DataEvent.TYPE_CHANGED) {
+                        mDataItemListAdapter.add(
+                                new Event("DataItem Changed", event.getDataItem().toString()));
+                    } else if (event.getType() == DataEvent.TYPE_DELETED) {
+                        mDataItemListAdapter.add(
+                                new Event("DataItem Deleted", event.getDataItem().toString()));
+                    }
+                }
+            }
+        });
+    }
+
+    @Override //MessageListener
+    public void onMessageReceived(final MessageEvent messageEvent) {
+        LOGD(TAG, "onMessageReceived() A message from watch was received:" + messageEvent
+                .getRequestId() + " " + messageEvent.getPath());
+        mHandler.post(new Runnable() {
+            @Override
+            public void run() {
+                mDataItemListAdapter.add(new Event("Message from watch", messageEvent.toString()));
+            }
+        });
+
+    }
+
+    @Override //NodeListener
+    public void onPeerConnected(final Node peer) {
+        LOGD(TAG, "onPeerConnected: " + peer);
+        mHandler.post(new Runnable() {
+            @Override
+            public void run() {
+                mDataItemListAdapter.add(new Event("Connected", peer.toString()));
+            }
+        });
+
+    }
+
+    @Override //NodeListener
+    public void onPeerDisconnected(final Node peer) {
+        LOGD(TAG, "onPeerDisconnected: " + peer);
+        mHandler.post(new Runnable() {
+            @Override
+            public void run() {
+                mDataItemListAdapter.add(new Event("Disconnected", peer.toString()));
+            }
+        });
+    }
+
+    /**
+     * A View Adapter for presenting the Event objects in a list
+     */
+    private static class DataItemAdapter extends ArrayAdapter<Event> {
+
+        private final Context mContext;
+
+        public DataItemAdapter(Context context, int unusedResource) {
+            super(context, unusedResource);
+            mContext = context;
+        }
+
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent) {
+            ViewHolder holder;
+            if (convertView == null) {
+                holder = new ViewHolder();
+                LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(
+                        Context.LAYOUT_INFLATER_SERVICE);
+                convertView = inflater.inflate(android.R.layout.two_line_list_item, null);
+                convertView.setTag(holder);
+                holder.text1 = (TextView) convertView.findViewById(android.R.id.text1);
+                holder.text2 = (TextView) convertView.findViewById(android.R.id.text2);
+            } else {
+                holder = (ViewHolder) convertView.getTag();
+            }
+            Event event = getItem(position);
+            holder.text1.setText(event.title);
+            holder.text2.setText(event.text);
+            return convertView;
+        }
+
+        private class ViewHolder {
+
+            TextView text1;
+            TextView text2;
+        }
+    }
+
+    private class Event {
+
+        String title;
+        String text;
+
+        public Event(String title, String text) {
+            this.title = title;
+            this.text = text;
+        }
+    }
+
+    private Collection<String> getNodes() {
+        HashSet<String> results = new HashSet<String>();
+        NodeApi.GetConnectedNodesResult nodes =
+                Wearable.NodeApi.getConnectedNodes(mGoogleApiClient).await();
+
+        for (Node node : nodes.getNodes()) {
+            results.add(node.getId());
+        }
+
+        return results;
+    }
+
+    private void sendStartActivityMessage(String node) {
+        Wearable.MessageApi.sendMessage(
+                mGoogleApiClient, node, START_ACTIVITY_PATH, new byte[0]).setResultCallback(
+                new ResultCallback<SendMessageResult>() {
+                    @Override
+                    public void onResult(SendMessageResult sendMessageResult) {
+                        if (!sendMessageResult.getStatus().isSuccess()) {
+                            Log.e(TAG, "Failed to send message with status code: "
+                                    + sendMessageResult.getStatus().getStatusCode());
+                        }
+                    }
+                }
+        );
+    }
+
+    private class StartWearableActivityTask extends AsyncTask<Void, Void, Void> {
+
+        @Override
+        protected Void doInBackground(Void... args) {
+            Collection<String> nodes = getNodes();
+            for (String node : nodes) {
+                sendStartActivityMessage(node);
+            }
+            return null;
+        }
+    }
+
+    /** Sends an RPC to start a fullscreen Activity on the wearable. */
+    public void onStartWearableActivityClick(View view) {
+        LOGD(TAG, "Generating RPC");
+
+        // Trigger an AsyncTask that will query for a list of connected nodes and send a
+        // "start-activity" message to each connected node.
+        new StartWearableActivityTask().execute();
+    }
+
+    /** Generates a DataItem based on an incrementing count. */
+    private class DataItemGenerator implements Runnable {
+
+        private int count = 0;
+
+        @Override
+        public void run() {
+            PutDataMapRequest putDataMapRequest = PutDataMapRequest.create(COUNT_PATH);
+            putDataMapRequest.getDataMap().putInt(COUNT_KEY, count++);
+            PutDataRequest request = putDataMapRequest.asPutDataRequest();
+
+            LOGD(TAG, "Generating DataItem: " + request);
+            if (!mGoogleApiClient.isConnected()) {
+                return;
+            }
+            Wearable.DataApi.putDataItem(mGoogleApiClient, request)
+                    .setResultCallback(new ResultCallback<DataItemResult>() {
+                        @Override
+                        public void onResult(DataItemResult dataItemResult) {
+                            if (!dataItemResult.getStatus().isSuccess()) {
+                                Log.e(TAG, "ERROR: failed to putDataItem, status code: "
+                                        + dataItemResult.getStatus().getStatusCode());
+                            }
+                        }
+                    });
+        }
+    }
+
+    /**
+     * Dispatches an {@link android.content.Intent} to take a photo. Result will be returned back
+     * in onActivityResult().
+     */
+    private void dispatchTakePictureIntent() {
+        Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
+        if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
+            startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
+        }
+    }
+
+    /**
+     * Builds an {@link com.google.android.gms.wearable.Asset} from a bitmap. The image that we get
+     * back from the camera in "data" is a thumbnail size. Typically, your image should not exceed
+     * 320x320 and if you want to have zoom and parallax effect in your app, limit the size of your
+     * image to 640x400. Resize your image before transferring to your wearable device.
+     */
+    private static Asset toAsset(Bitmap bitmap) {
+        ByteArrayOutputStream byteStream = null;
+        try {
+            byteStream = new ByteArrayOutputStream();
+            bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteStream);
+            return Asset.createFromBytes(byteStream.toByteArray());
+        } finally {
+            if (null != byteStream) {
+                try {
+                    byteStream.close();
+                } catch (IOException e) {
+                    // ignore
+                }
+            }
+        }
+    }
+
+    /**
+     * Sends the asset that was created form the photo we took by adding it to the Data Item store.
+     */
+    private void sendPhoto(Asset asset) {
+        PutDataMapRequest dataMap = PutDataMapRequest.create(IMAGE_PATH);
+        dataMap.getDataMap().putAsset(IMAGE_KEY, asset);
+        dataMap.getDataMap().putLong("time", new Date().getTime());
+        PutDataRequest request = dataMap.asPutDataRequest();
+        Wearable.DataApi.putDataItem(mGoogleApiClient, request)
+                .setResultCallback(new ResultCallback<DataItemResult>() {
+                    @Override
+                    public void onResult(DataItemResult dataItemResult) {
+                        LOGD(TAG, "Sending image was successful: " + dataItemResult.getStatus()
+                                .isSuccess());
+                    }
+                });
+
+    }
+
+    public void onTakePhotoClick(View view) {
+        dispatchTakePictureIntent();
+    }
+
+    public void onSendPhotoClick(View view) {
+        if (null != mImageBitmap && mGoogleApiClient.isConnected()) {
+            sendPhoto(toAsset(mImageBitmap));
+        }
+    }
+
+    /**
+     * Sets up UI components and their callback handlers.
+     */
+    private void setupViews() {
+        mTakePhotoBtn = (Button) findViewById(R.id.takePhoto);
+        mSendPhotoBtn = (Button) findViewById(R.id.sendPhoto);
+
+        // Shows the image received from the handset
+        mThumbView = (ImageView) findViewById(R.id.imageView);
+        mDataItemList = (ListView) findViewById(R.id.data_item_list);
+
+        mStartActivityBtn = findViewById(R.id.start_wearable_activity);
+    }
+
+    /**
+     * As simple wrapper around Log.d
+     */
+    private static void LOGD(final String tag, String message) {
+        if (Log.isLoggable(tag, Log.DEBUG)) {
+            Log.d(tag, message);
+        }
+    }
+
+}
diff --git a/samples/wearable/DataLayer/Application/src/main/res/drawable-hdpi/ic_content_picture.png b/samples/wearable/DataLayer/Application/src/main/res/drawable-hdpi/ic_content_picture.png
new file mode 100644
index 0000000..597997c
--- /dev/null
+++ b/samples/wearable/DataLayer/Application/src/main/res/drawable-hdpi/ic_content_picture.png
Binary files differ
diff --git a/samples/wearable/DataLayer/Application/src/main/res/drawable-hdpi/ic_launcher.png b/samples/wearable/DataLayer/Application/src/main/res/drawable-hdpi/ic_launcher.png
new file mode 100755
index 0000000..589f229
--- /dev/null
+++ b/samples/wearable/DataLayer/Application/src/main/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/DataLayer/Application/src/main/res/drawable-mdpi/ic_content_picture.png b/samples/wearable/DataLayer/Application/src/main/res/drawable-mdpi/ic_content_picture.png
new file mode 100644
index 0000000..c23f4c0
--- /dev/null
+++ b/samples/wearable/DataLayer/Application/src/main/res/drawable-mdpi/ic_content_picture.png
Binary files differ
diff --git a/samples/wearable/DataLayer/Application/src/main/res/drawable-mdpi/ic_launcher.png b/samples/wearable/DataLayer/Application/src/main/res/drawable-mdpi/ic_launcher.png
new file mode 100755
index 0000000..77dd571
--- /dev/null
+++ b/samples/wearable/DataLayer/Application/src/main/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/DataLayer/Application/src/main/res/drawable-xhdpi/ic_content_picture.png b/samples/wearable/DataLayer/Application/src/main/res/drawable-xhdpi/ic_content_picture.png
new file mode 100644
index 0000000..289adf1
--- /dev/null
+++ b/samples/wearable/DataLayer/Application/src/main/res/drawable-xhdpi/ic_content_picture.png
Binary files differ
diff --git a/samples/wearable/DataLayer/Application/src/main/res/drawable-xhdpi/ic_launcher.png b/samples/wearable/DataLayer/Application/src/main/res/drawable-xhdpi/ic_launcher.png
new file mode 100755
index 0000000..fe34ebe
--- /dev/null
+++ b/samples/wearable/DataLayer/Application/src/main/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/DataLayer/Application/src/main/res/drawable-xxhdpi/ic_content_picture.png b/samples/wearable/DataLayer/Application/src/main/res/drawable-xxhdpi/ic_content_picture.png
new file mode 100644
index 0000000..073ad55
--- /dev/null
+++ b/samples/wearable/DataLayer/Application/src/main/res/drawable-xxhdpi/ic_content_picture.png
Binary files differ
diff --git a/samples/wearable/DataLayer/Application/src/main/res/drawable-xxhdpi/ic_launcher.png b/samples/wearable/DataLayer/Application/src/main/res/drawable-xxhdpi/ic_launcher.png
new file mode 100755
index 0000000..ab80bcd
--- /dev/null
+++ b/samples/wearable/DataLayer/Application/src/main/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/DataLayer/Application/src/main/res/drawable/divider.xml b/samples/wearable/DataLayer/Application/src/main/res/drawable/divider.xml
new file mode 100644
index 0000000..f9f182e
--- /dev/null
+++ b/samples/wearable/DataLayer/Application/src/main/res/drawable/divider.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <size android:height="2dip"/>
+    <solid android:color="#ffffffff"/>
+</shape>
\ No newline at end of file
diff --git a/samples/wearable/DataLayer/Application/src/main/res/layout/main_activity.xml b/samples/wearable/DataLayer/Application/src/main/res/layout/main_activity.xml
new file mode 100644
index 0000000..6f5dbfd
--- /dev/null
+++ b/samples/wearable/DataLayer/Application/src/main/res/layout/main_activity.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <RelativeLayout
+        android:id="@+id/top"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_alignParentTop="true"
+        android:layout_marginTop="10dp">
+
+        <Button
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/take_photo"
+            android:id="@+id/takePhoto"
+            android:onClick="onTakePhotoClick"
+            android:layout_marginLeft="39dp"
+            android:layout_alignParentStart="true"
+            android:layout_alignParentTop="true" />
+
+        <Button
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/send_photo"
+            android:id="@+id/sendPhoto"
+            android:layout_alignRight="@+id/takePhoto"
+            android:layout_marginLeft="39dp"
+            android:enabled="false"
+            android:onClick="onSendPhotoClick"
+            android:layout_alignParentStart="true"
+            android:layout_below="@+id/takePhoto" />
+
+        <ImageView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:id="@+id/imageView"
+            android:layout_marginLeft="29dp"
+            android:layout_centerVertical="true"
+            android:layout_alignParentRight="true"
+            android:src="@drawable/ic_content_picture" />
+    </RelativeLayout>
+
+    <View
+        style="@style/Divider"
+        android:id="@+id/divider"
+        android:layout_below="@+id/top"
+        android:layout_marginTop="5dp"
+        android:layout_marginLeft="20dp"
+        android:layout_marginRight="20dp" />
+
+    <Button
+        android:id="@+id/start_wearable_activity"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginRight="10dp"
+        android:onClick="onStartWearableActivityClick"
+        android:text="@string/start_wearable_activity"
+        android:enabled="false"
+        android:layout_below="@+id/divider"
+        android:layout_centerHorizontal="true"
+        android:layout_marginTop="10dp" />
+
+    <ListView
+        android:id="@+id/data_item_list"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_below="@+id/start_wearable_activity"
+        android:transcriptMode="alwaysScroll" />
+</RelativeLayout>
\ No newline at end of file
diff --git a/samples/wearable/DataLayer/Application/src/main/res/values/strings.xml b/samples/wearable/DataLayer/Application/src/main/res/values/strings.xml
new file mode 100644
index 0000000..ae2aeab
--- /dev/null
+++ b/samples/wearable/DataLayer/Application/src/main/res/values/strings.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name">Data Layer Sample App</string>
+    <string name="start_wearable_activity">Start Wearable Activity</string>
+    <string name="start">Start</string>
+    <string name="take_photo">Take a Photo</string>
+    <string name="send_photo">Send Photo</string>
+</resources>
diff --git a/samples/wearable/DataLayer/Application/src/main/res/values/style.xml b/samples/wearable/DataLayer/Application/src/main/res/values/style.xml
new file mode 100644
index 0000000..219aeb7
--- /dev/null
+++ b/samples/wearable/DataLayer/Application/src/main/res/values/style.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <style name="Divider">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">3dp</item>
+        <item name="android:background">?android:attr/listDivider</item>
+    </style>
+</resources>
\ No newline at end of file
diff --git a/samples/wearable/DataLayer/Wearable/build.gradle b/samples/wearable/DataLayer/Wearable/build.gradle
new file mode 100644
index 0000000..9bf690c
--- /dev/null
+++ b/samples/wearable/DataLayer/Wearable/build.gradle
@@ -0,0 +1,25 @@
+apply plugin: 'android'
+
+android {
+    compileSdkVersion 19
+    buildToolsVersion '20'
+
+    defaultConfig {
+        minSdkVersion 19
+        targetSdkVersion 19
+        versionCode 1
+        versionName "1.0"
+    }
+
+    buildTypes {
+        release {
+            runProguard false
+            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
+        }
+    }
+}
+
+dependencies {
+    compile 'com.google.android.gms:play-services:5.0.+@aar'
+    compile "com.android.support:support-v13:20.0.+"
+}
\ No newline at end of file
diff --git a/samples/wearable/DataLayer/Wearable/proguard-rules.txt b/samples/wearable/DataLayer/Wearable/proguard-rules.txt
new file mode 100644
index 0000000..f2fe155
--- /dev/null
+++ b/samples/wearable/DataLayer/Wearable/proguard-rules.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
diff --git a/samples/wearable/DataLayer/Wearable/src/main/AndroidManifest.xml b/samples/wearable/DataLayer/Wearable/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..52aeb74
--- /dev/null
+++ b/samples/wearable/DataLayer/Wearable/src/main/AndroidManifest.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+        package="com.example.android.wearable.datalayer" >
+
+    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="19" />
+
+    <application
+            android:allowBackup="true"
+            android:icon="@drawable/ic_launcher"
+            android:label="@string/app_name"
+            android:theme="@android:style/Theme.DeviceDefault">
+
+        <meta-data
+                android:name="com.google.android.gms.version"
+                android:value="@integer/google_play_services_version" />
+
+        <service
+                android:name=".DataLayerListenerService" >
+            <intent-filter>
+                <action android:name="com.google.android.gms.wearable.BIND_LISTENER" />
+            </intent-filter>
+        </service>
+
+        <activity
+            android:name=".MainActivity"
+            android:screenOrientation="portrait"
+            android:label="@string/app_name">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN"/>
+                <category android:name="android.intent.category.LAUNCHER"/>
+            </intent-filter>
+            <intent-filter>
+                <action android:name="com.example.android.wearable.datalayer.EXAMPLE"/>
+                <category android:name="android.intent.category.DEFAULT"/>
+            </intent-filter>
+        </activity>
+    </application>
+</manifest>
diff --git a/samples/wearable/DataLayer/Wearable/src/main/java/com/example/android/wearable/datalayer/DataLayerListenerService.java b/samples/wearable/DataLayer/Wearable/src/main/java/com/example/android/wearable/datalayer/DataLayerListenerService.java
new file mode 100644
index 0000000..d82cb7e
--- /dev/null
+++ b/samples/wearable/DataLayer/Wearable/src/main/java/com/example/android/wearable/datalayer/DataLayerListenerService.java
@@ -0,0 +1,104 @@
+package com.example.android.wearable.datalayer;
+
+import android.content.Intent;
+import android.net.Uri;
+import android.util.Log;
+
+import com.google.android.gms.common.ConnectionResult;
+import com.google.android.gms.common.api.GoogleApiClient;
+import com.google.android.gms.common.data.FreezableUtils;
+import com.google.android.gms.wearable.DataEvent;
+import com.google.android.gms.wearable.DataEventBuffer;
+import com.google.android.gms.wearable.MessageEvent;
+import com.google.android.gms.wearable.Node;
+import com.google.android.gms.wearable.Wearable;
+import com.google.android.gms.wearable.WearableListenerService;
+
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Listens to DataItems and Messages from the local node.
+ */
+public class DataLayerListenerService extends WearableListenerService {
+
+    private static final String TAG = "DataLayerListenerServic";
+
+    private static final String START_ACTIVITY_PATH = "/start-activity";
+    private static final String DATA_ITEM_RECEIVED_PATH = "/data-item-received";
+    public static final String COUNT_PATH = "/count";
+    public static final String IMAGE_PATH = "/image";
+    public static final String IMAGE_KEY = "photo";
+    private static final String COUNT_KEY = "count";
+    private static final int MAX_LOG_TAG_LENGTH = 23;
+    GoogleApiClient mGoogleApiClient;
+
+    @Override
+    public void onCreate() {
+        super.onCreate();
+        mGoogleApiClient = new GoogleApiClient.Builder(this)
+                .addApi(Wearable.API)
+                .build();
+        mGoogleApiClient.connect();
+    }
+
+    @Override
+    public void onDataChanged(DataEventBuffer dataEvents) {
+        LOGD(TAG, "onDataChanged: " + dataEvents);
+        final List<DataEvent> events = FreezableUtils.freezeIterable(dataEvents);
+        dataEvents.close();
+        if(!mGoogleApiClient.isConnected()) {
+            ConnectionResult connectionResult = mGoogleApiClient
+                    .blockingConnect(30, TimeUnit.SECONDS);
+            if (!connectionResult.isSuccess()) {
+                Log.e(TAG, "DataLayerListenerService failed to connect to GoogleApiClient.");
+                return;
+            }
+        }
+
+        // Loop through the events and send a message back to the node that created the data item.
+        for (DataEvent event : events) {
+            Uri uri = event.getDataItem().getUri();
+            String path = uri.getPath();
+            if (COUNT_PATH.equals(path)) {
+                // Get the node id of the node that created the data item from the host portion of
+                // the uri.
+                String nodeId = uri.getHost();
+                // Set the data of the message to be the bytes of the Uri.
+                byte[] payload = uri.toString().getBytes();
+
+                // Send the rpc
+                Wearable.MessageApi.sendMessage(mGoogleApiClient, nodeId, DATA_ITEM_RECEIVED_PATH,
+                        payload);
+            }
+        }
+    }
+
+    @Override
+    public void onMessageReceived(MessageEvent messageEvent) {
+        LOGD(TAG, "onMessageReceived: " + messageEvent);
+
+        // Check to see if the message is to start an activity
+        if (messageEvent.getPath().equals(START_ACTIVITY_PATH)) {
+            Intent startIntent = new Intent(this, MainActivity.class);
+            startIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+            startActivity(startIntent);
+        }
+    }
+
+    @Override
+    public void onPeerConnected(Node peer) {
+        LOGD(TAG, "onPeerConnected: " + peer);
+    }
+
+    @Override
+    public void onPeerDisconnected(Node peer) {
+        LOGD(TAG, "onPeerDisconnected: " + peer);
+    }
+
+    public static void LOGD(final String tag, String message) {
+        if (Log.isLoggable(tag, Log.DEBUG)) {
+            Log.d(tag, message);
+        }
+    }
+}
diff --git a/samples/wearable/DataLayer/Wearable/src/main/java/com/example/android/wearable/datalayer/MainActivity.java b/samples/wearable/DataLayer/Wearable/src/main/java/com/example/android/wearable/datalayer/MainActivity.java
new file mode 100644
index 0000000..d9faa8d
--- /dev/null
+++ b/samples/wearable/DataLayer/Wearable/src/main/java/com/example/android/wearable/datalayer/MainActivity.java
@@ -0,0 +1,239 @@
+package com.example.android.wearable.datalayer;
+
+import static com.example.android.wearable.datalayer.DataLayerListenerService.LOGD;
+
+import android.app.Activity;
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.graphics.drawable.BitmapDrawable;
+import android.os.Bundle;
+import android.os.Handler;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.WindowManager;
+import android.widget.ArrayAdapter;
+import android.widget.ListView;
+import android.widget.TextView;
+
+import com.google.android.gms.common.ConnectionResult;
+import com.google.android.gms.common.api.GoogleApiClient;
+import com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks;
+import com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener;
+import com.google.android.gms.common.data.FreezableUtils;
+import com.google.android.gms.wearable.Asset;
+import com.google.android.gms.wearable.DataApi;
+import com.google.android.gms.wearable.DataEvent;
+import com.google.android.gms.wearable.DataEventBuffer;
+import com.google.android.gms.wearable.DataMapItem;
+import com.google.android.gms.wearable.MessageApi;
+import com.google.android.gms.wearable.MessageEvent;
+import com.google.android.gms.wearable.Node;
+import com.google.android.gms.wearable.NodeApi;
+import com.google.android.gms.wearable.Wearable;
+
+import java.io.InputStream;
+import java.util.List;
+
+/**
+ * Shows events and photo from the Wearable APIs.
+ */
+public class MainActivity extends Activity implements ConnectionCallbacks,
+        OnConnectionFailedListener, DataApi.DataListener, MessageApi.MessageListener,
+        NodeApi.NodeListener {
+
+    private static final String TAG = "MainActivity";
+
+    private GoogleApiClient mGoogleApiClient;
+    private ListView mDataItemList;
+    private TextView mIntroText;
+    private DataItemAdapter mDataItemListAdapter;
+    private View mLayout;
+    private Handler mHandler;
+
+    @Override
+    public void onCreate(Bundle b) {
+        super.onCreate(b);
+        mHandler = new Handler();
+        LOGD(TAG, "onCreate");
+        setContentView(R.layout.main_activity);
+        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
+        mDataItemList = (ListView) findViewById(R.id.dataItem_list);
+        mIntroText = (TextView) findViewById(R.id.intro);
+        mLayout = findViewById(R.id.layout);
+
+        // Stores data events received by the local broadcaster.
+        mDataItemListAdapter = new DataItemAdapter(this, android.R.layout.simple_list_item_1);
+        mDataItemList.setAdapter(mDataItemListAdapter);
+
+        mGoogleApiClient = new GoogleApiClient.Builder(this)
+                .addApi(Wearable.API)
+                .addConnectionCallbacks(this)
+                .addOnConnectionFailedListener(this)
+                .build();
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        mGoogleApiClient.connect();
+    }
+
+    @Override
+    protected void onPause() {
+        super.onPause();
+        Wearable.DataApi.removeListener(mGoogleApiClient, this);
+        Wearable.MessageApi.removeListener(mGoogleApiClient, this);
+        Wearable.NodeApi.removeListener(mGoogleApiClient, this);
+        mGoogleApiClient.disconnect();
+    }
+
+    @Override
+    public void onConnected(Bundle connectionHint) {
+        LOGD(TAG, "onConnected(): Successfully connected to Google API client");
+        Wearable.DataApi.addListener(mGoogleApiClient, this);
+        Wearable.MessageApi.addListener(mGoogleApiClient, this);
+        Wearable.NodeApi.addListener(mGoogleApiClient, this);
+    }
+
+    @Override
+    public void onConnectionSuspended(int cause) {
+        LOGD(TAG, "onConnectionSuspended(): Connection to Google API client was suspended");
+    }
+
+    @Override
+    public void onConnectionFailed(ConnectionResult result) {
+        Log.e(TAG, "onConnectionFailed(): Failed to connect, with result: " + result);
+    }
+
+    private void generateEvent(final String title, final String text) {
+        runOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                mIntroText.setVisibility(View.INVISIBLE);
+                mDataItemListAdapter.add(new Event(title, text));
+            }
+        });
+    }
+
+    @Override
+    public void onDataChanged(DataEventBuffer dataEvents) {
+        LOGD(TAG, "onDataChanged(): " + dataEvents);
+
+        final List<DataEvent> events = FreezableUtils.freezeIterable(dataEvents);
+        dataEvents.close();
+        for (DataEvent event : events) {
+            if (event.getType() == DataEvent.TYPE_CHANGED) {
+                String path = event.getDataItem().getUri().getPath();
+                if (DataLayerListenerService.IMAGE_PATH.equals(path)) {
+                    DataMapItem dataMapItem = DataMapItem.fromDataItem(event.getDataItem());
+                    Asset photo = dataMapItem.getDataMap()
+                            .getAsset(DataLayerListenerService.IMAGE_KEY);
+                    final Bitmap bitmap = loadBitmapFromAsset(mGoogleApiClient, photo);
+                    mHandler.post(new Runnable() {
+                        @Override
+                        public void run() {
+                            Log.d(TAG, "Setting background image..");
+                            mLayout.setBackground(new BitmapDrawable(getResources(), bitmap));
+                        }
+                    });
+
+                } else if (DataLayerListenerService.COUNT_PATH.equals(path)) {
+                    LOGD(TAG, "Data Changed for COUNT_PATH");
+                    generateEvent("DataItem Changed", event.getDataItem().toString());
+                } else {
+                    LOGD(TAG, "Unrecognized path: " + path);
+                }
+
+            } else if (event.getType() == DataEvent.TYPE_DELETED) {
+                generateEvent("DataItem Deleted", event.getDataItem().toString());
+            } else {
+                generateEvent("Unknown data event type", "Type = " + event.getType());
+            }
+        }
+    }
+
+    /**
+     * Extracts {@link android.graphics.Bitmap} data from the
+     * {@link com.google.android.gms.wearable.Asset}
+     */
+    private Bitmap loadBitmapFromAsset(GoogleApiClient apiClient, Asset asset) {
+        if (asset == null) {
+            throw new IllegalArgumentException("Asset must be non-null");
+        }
+
+        InputStream assetInputStream = Wearable.DataApi.getFdForAsset(
+                apiClient, asset).await().getInputStream();
+
+        if (assetInputStream == null) {
+            Log.w(TAG, "Requested an unknown Asset.");
+            return null;
+        }
+        return BitmapFactory.decodeStream(assetInputStream);
+    }
+
+    @Override
+    public void onMessageReceived(MessageEvent event) {
+        LOGD(TAG, "onMessageReceived: " + event);
+        generateEvent("Message", event.toString());
+    }
+
+    @Override
+    public void onPeerConnected(Node node) {
+        generateEvent("Node Connected", node.getId());
+    }
+
+    @Override
+    public void onPeerDisconnected(Node node) {
+        generateEvent("Node Disconnected", node.getId());
+    }
+
+    private static class DataItemAdapter extends ArrayAdapter<Event> {
+
+        private final Context mContext;
+
+        public DataItemAdapter(Context context, int unusedResource) {
+            super(context, unusedResource);
+            mContext = context;
+        }
+
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent) {
+            ViewHolder holder;
+            if (convertView == null) {
+                holder = new ViewHolder();
+                LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(
+                        Context.LAYOUT_INFLATER_SERVICE);
+                convertView = inflater.inflate(android.R.layout.two_line_list_item, null);
+                convertView.setTag(holder);
+                holder.text1 = (TextView) convertView.findViewById(android.R.id.text1);
+                holder.text2 = (TextView) convertView.findViewById(android.R.id.text2);
+            } else {
+                holder = (ViewHolder) convertView.getTag();
+            }
+            Event event = getItem(position);
+            holder.text1.setText(event.title);
+            holder.text2.setText(event.text);
+            return convertView;
+        }
+
+        private class ViewHolder {
+
+            TextView text1;
+            TextView text2;
+        }
+    }
+
+    private class Event {
+
+        String title;
+        String text;
+
+        public Event(String title, String text) {
+            this.title = title;
+            this.text = text;
+        }
+    }
+}
diff --git a/samples/wearable/DataLayer/Wearable/src/main/res/drawable-hdpi/ic_launcher.png b/samples/wearable/DataLayer/Wearable/src/main/res/drawable-hdpi/ic_launcher.png
new file mode 100755
index 0000000..589f229
--- /dev/null
+++ b/samples/wearable/DataLayer/Wearable/src/main/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/DataLayer/Wearable/src/main/res/drawable-mdpi/ic_launcher.png b/samples/wearable/DataLayer/Wearable/src/main/res/drawable-mdpi/ic_launcher.png
new file mode 100755
index 0000000..77dd571
--- /dev/null
+++ b/samples/wearable/DataLayer/Wearable/src/main/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/DataLayer/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png b/samples/wearable/DataLayer/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png
new file mode 100755
index 0000000..fe34ebe
--- /dev/null
+++ b/samples/wearable/DataLayer/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/DataLayer/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png b/samples/wearable/DataLayer/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png
new file mode 100755
index 0000000..ab80bcd
--- /dev/null
+++ b/samples/wearable/DataLayer/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/DataLayer/Wearable/src/main/res/layout/main_activity.xml b/samples/wearable/DataLayer/Wearable/src/main/res/layout/main_activity.xml
new file mode 100644
index 0000000..e88c6d1
--- /dev/null
+++ b/samples/wearable/DataLayer/Wearable/src/main/res/layout/main_activity.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/layout"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent">
+
+    <ListView
+        android:id="@+id/dataItem_list"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:transcriptMode="alwaysScroll"/>
+
+    <TextView
+        android:id="@+id/intro"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_centerInParent="true"
+        android:textSize="20sp"
+        android:layout_marginLeft="16dp"
+        android:layout_marginRight="16dp"
+        android:gravity="center"
+        android:fontFamily="sans-serif-condensed-light"
+        android:text="@string/intro" />
+</RelativeLayout>
\ No newline at end of file
diff --git a/samples/wearable/DataLayer/Wearable/src/main/res/values/strings.xml b/samples/wearable/DataLayer/Wearable/src/main/res/values/strings.xml
new file mode 100644
index 0000000..5582c7a
--- /dev/null
+++ b/samples/wearable/DataLayer/Wearable/src/main/res/values/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name">Data Layer Sample Wearable App</string>
+    <string name="intro">Waiting for data to arrive\u2026</string>
+</resources>
diff --git a/samples/wearable/DataLayer/build.gradle b/samples/wearable/DataLayer/build.gradle
new file mode 100644
index 0000000..07be865
--- /dev/null
+++ b/samples/wearable/DataLayer/build.gradle
@@ -0,0 +1,14 @@
+buildscript {
+    repositories {
+        mavenCentral()
+    }
+    dependencies {
+        classpath 'com.android.tools.build:gradle:0.11.+'
+    }
+}
+
+allprojects {
+    repositories {
+        mavenCentral()
+    }
+}
\ No newline at end of file
diff --git a/samples/wearable/DataLayer/gradle/wrapper/gradle-wrapper.jar b/samples/wearable/DataLayer/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..5838598
--- /dev/null
+++ b/samples/wearable/DataLayer/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/samples/wearable/DataLayer/gradle/wrapper/gradle-wrapper.properties b/samples/wearable/DataLayer/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..e83e460
--- /dev/null
+++ b/samples/wearable/DataLayer/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Fri Mar 14 14:02:22 PDT 2014
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=http\://services.gradle.org/distributions/gradle-1.11-all.zip
diff --git a/samples/wearable/DataLayer/gradlew b/samples/wearable/DataLayer/gradlew
new file mode 100755
index 0000000..91a7e26
--- /dev/null
+++ b/samples/wearable/DataLayer/gradlew
@@ -0,0 +1,164 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+##  Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+    echo "$*"
+}
+
+die ( ) {
+    echo
+    echo "$*"
+    echo
+    exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+  CYGWIN* )
+    cygwin=true
+    ;;
+  Darwin* )
+    darwin=true
+    ;;
+  MINGW* )
+    msys=true
+    ;;
+esac
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched.
+if $cygwin ; then
+    [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+fi
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+        PRG="$link"
+    else
+        PRG=`dirname "$PRG"`"/$link"
+    fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >&-
+APP_HOME="`pwd -P`"
+cd "$SAVED" >&-
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+        # IBM's JDK on AIX uses strange locations for the executables
+        JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+        JAVACMD="$JAVA_HOME/bin/java"
+    fi
+    if [ ! -x "$JAVACMD" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+else
+    JAVACMD="java"
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+    MAX_FD_LIMIT=`ulimit -H -n`
+    if [ $? -eq 0 ] ; then
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+            MAX_FD="$MAX_FD_LIMIT"
+        fi
+        ulimit -n $MAX_FD
+        if [ $? -ne 0 ] ; then
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
+        fi
+    else
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+    fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+    # We build the pattern for arguments to be converted via cygpath
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+    SEP=""
+    for dir in $ROOTDIRSRAW ; do
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
+        SEP="|"
+    done
+    OURCYGPATTERN="(^($ROOTDIRS))"
+    # Add a user-defined pattern to the cygpath arguments
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+    fi
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
+    i=0
+    for arg in "$@" ; do
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
+
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+        else
+            eval `echo args$i`="\"$arg\""
+        fi
+        i=$((i+1))
+    done
+    case $i in
+        (0) set -- ;;
+        (1) set -- "$args0" ;;
+        (2) set -- "$args0" "$args1" ;;
+        (3) set -- "$args0" "$args1" "$args2" ;;
+        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+    esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+    JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/samples/wearable/DataLayer/gradlew.bat b/samples/wearable/DataLayer/gradlew.bat
new file mode 100644
index 0000000..aec9973
--- /dev/null
+++ b/samples/wearable/DataLayer/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem  Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/samples/wearable/DataLayer/settings.gradle b/samples/wearable/DataLayer/settings.gradle
new file mode 100644
index 0000000..68726d4
--- /dev/null
+++ b/samples/wearable/DataLayer/settings.gradle
@@ -0,0 +1 @@
+include 'Application', 'Wearable'
\ No newline at end of file
diff --git a/samples/wearable/DelayedConfirmation/Application/_index.html b/samples/wearable/DelayedConfirmation/Application/_index.html
new file mode 100644
index 0000000..6996cc7
--- /dev/null
+++ b/samples/wearable/DelayedConfirmation/Application/_index.html
@@ -0,0 +1,5 @@
+<p>Demonstrates how to create a DelayedConfirmationView in your wearable app. In this sample,
+pressing a button on the phone app sends a message to the wearable to start a simple activity. This
+activity displays a DelayedConfirmationView that starts when the user presses "Start Timer." Then,
+callbacks are implemented on both the wearable and phone to show when the timer is selected or
+finishes.</p>
\ No newline at end of file
diff --git a/samples/wearable/DelayedConfirmation/Application/build.gradle b/samples/wearable/DelayedConfirmation/Application/build.gradle
new file mode 100644
index 0000000..ef83ddd
--- /dev/null
+++ b/samples/wearable/DelayedConfirmation/Application/build.gradle
@@ -0,0 +1,33 @@
+apply plugin: 'android'
+
+android {
+    compileSdkVersion 20
+    buildToolsVersion '20'
+
+    defaultConfig {
+        minSdkVersion 18
+        targetSdkVersion 20
+        versionCode 1
+        versionName "1.0"
+    }
+
+    buildTypes {
+        release {
+            runProguard false
+            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
+        }
+    }
+
+    aaptOptions {
+        noCompress 'apk'
+    }
+
+    lintOptions {
+        abortOnError false
+    }
+}
+
+dependencies {
+    compile 'com.google.android.gms:play-services:5.0.+@aar'
+    wearApp project(':Wearable')
+}
\ No newline at end of file
diff --git a/samples/wearable/DelayedConfirmation/Application/proguard-rules.txt b/samples/wearable/DelayedConfirmation/Application/proguard-rules.txt
new file mode 100644
index 0000000..f2fe155
--- /dev/null
+++ b/samples/wearable/DelayedConfirmation/Application/proguard-rules.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
diff --git a/samples/wearable/DelayedConfirmation/Application/src/main/AndroidManifest.xml b/samples/wearable/DelayedConfirmation/Application/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..cff91a4
--- /dev/null
+++ b/samples/wearable/DelayedConfirmation/Application/src/main/AndroidManifest.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+        package="com.example.android.wearable.delayedconfirmation" >
+
+    <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="20" />
+
+    <application
+            android:allowBackup="true"
+            android:icon="@drawable/ic_launcher"
+            android:label="@string/app_name">
+
+        <meta-data
+            android:name="com.google.android.gms.version"
+            android:value="@integer/google_play_services_version" />
+
+        <activity
+                android:name=".MainActivity"
+                android:label="@string/app_name"
+                android:launchMode="singleTask" >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+    </application>
+</manifest>
diff --git a/samples/wearable/DelayedConfirmation/Application/src/main/java/com/example/android/wearable/delayedconfirmation/MainActivity.java b/samples/wearable/DelayedConfirmation/Application/src/main/java/com/example/android/wearable/delayedconfirmation/MainActivity.java
new file mode 100644
index 0000000..4bc17ba
--- /dev/null
+++ b/samples/wearable/DelayedConfirmation/Application/src/main/java/com/example/android/wearable/delayedconfirmation/MainActivity.java
@@ -0,0 +1,118 @@
+package com.example.android.wearable.delayedconfirmation;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.View;
+import android.widget.Toast;
+
+import com.google.android.gms.common.ConnectionResult;
+import com.google.android.gms.common.api.GoogleApiClient;
+import com.google.android.gms.common.api.ResultCallback;
+import com.google.android.gms.wearable.MessageApi;
+import com.google.android.gms.wearable.MessageEvent;
+import com.google.android.gms.wearable.Node;
+import com.google.android.gms.wearable.NodeApi;
+import com.google.android.gms.wearable.Wearable;
+
+/**
+ * Has a single button, used to start the Wearable MainActivity.
+ */
+public class MainActivity extends Activity implements MessageApi.MessageListener,
+        GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {
+
+    private static final String TAG = "DelayedConfirmation";
+    private static final String START_ACTIVITY_PATH = "/start-activity";
+    private static final String TIMER_SELECTED_PATH = "/timer_selected";
+    private static final String TIMER_FINISHED_PATH = "/timer_finished";
+    private GoogleApiClient mGoogleApiClient;
+
+    @Override
+    public void onCreate(Bundle b) {
+        super.onCreate(b);
+        setContentView(R.layout.main_activity);
+        mGoogleApiClient = new GoogleApiClient.Builder(this)
+                .addApi(Wearable.API)
+                .addConnectionCallbacks(this)
+                .addOnConnectionFailedListener(this)
+                .build();
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        if (!mGoogleApiClient.isConnected()) {
+            mGoogleApiClient.connect();
+        }
+    }
+
+    @Override
+    protected void onDestroy() {
+        if (mGoogleApiClient.isConnected()) {
+            mGoogleApiClient.disconnect();
+        }
+        super.onDestroy();
+    }
+
+    @Override
+    public void onConnected(Bundle bundle) {
+        Wearable.MessageApi.addListener(mGoogleApiClient, this);
+    }
+
+    @Override
+    public void onConnectionSuspended(int i) {
+        Wearable.MessageApi.removeListener(mGoogleApiClient, this);
+    }
+
+    @Override
+    public void onMessageReceived(final MessageEvent messageEvent) {
+        runOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                if (messageEvent.getPath().equals(TIMER_SELECTED_PATH)) {
+                    Toast.makeText(getApplicationContext(), R.string.toast_timer_selected,
+                            Toast.LENGTH_SHORT).show();
+                } else if (messageEvent.getPath().equals(TIMER_FINISHED_PATH)) {
+                    Toast.makeText(getApplicationContext(), R.string.toast_timer_finished,
+                            Toast.LENGTH_SHORT).show();
+                }
+            }
+        });
+
+    }
+
+    @Override
+    public void onConnectionFailed(ConnectionResult connectionResult) {
+        Log.e(TAG, "Failed to connect to Google Api Client with error code "
+                + connectionResult.getErrorCode());
+    }
+
+    /**
+     * Sends a message to Wearable MainActivity when button is pressed.
+     */
+    public void onStartWearableActivityClick(View view) {
+        Wearable.NodeApi.getConnectedNodes(mGoogleApiClient).setResultCallback(
+                new ResultCallback<NodeApi.GetConnectedNodesResult>() {
+            @Override
+            public void onResult(NodeApi.GetConnectedNodesResult getConnectedNodesResult) {
+                for (final Node node : getConnectedNodesResult.getNodes()) {
+                    Wearable.MessageApi.sendMessage(
+                            mGoogleApiClient, node.getId(), START_ACTIVITY_PATH, new byte[0])
+                            .setResultCallback(getSendMessageResultCallback());
+                }
+            }
+        });
+    }
+
+    private ResultCallback<MessageApi.SendMessageResult> getSendMessageResultCallback() {
+        return new ResultCallback<MessageApi.SendMessageResult>() {
+            @Override
+            public void onResult(MessageApi.SendMessageResult sendMessageResult) {
+                if (!sendMessageResult.getStatus().isSuccess()) {
+                    Log.e(TAG, "Failed to connect to Google Api Client with status "
+                            + sendMessageResult.getStatus());
+                }
+            }
+        };
+    }
+}
diff --git a/samples/wearable/DelayedConfirmation/Application/src/main/res/drawable-hdpi/ic_launcher.png b/samples/wearable/DelayedConfirmation/Application/src/main/res/drawable-hdpi/ic_launcher.png
new file mode 100755
index 0000000..589f229
--- /dev/null
+++ b/samples/wearable/DelayedConfirmation/Application/src/main/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/DelayedConfirmation/Application/src/main/res/drawable-mdpi/ic_launcher.png b/samples/wearable/DelayedConfirmation/Application/src/main/res/drawable-mdpi/ic_launcher.png
new file mode 100755
index 0000000..77dd571
--- /dev/null
+++ b/samples/wearable/DelayedConfirmation/Application/src/main/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/DelayedConfirmation/Application/src/main/res/drawable-xhdpi/ic_launcher.png b/samples/wearable/DelayedConfirmation/Application/src/main/res/drawable-xhdpi/ic_launcher.png
new file mode 100755
index 0000000..fe34ebe
--- /dev/null
+++ b/samples/wearable/DelayedConfirmation/Application/src/main/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/DelayedConfirmation/Application/src/main/res/drawable-xxhdpi/ic_launcher.png b/samples/wearable/DelayedConfirmation/Application/src/main/res/drawable-xxhdpi/ic_launcher.png
new file mode 100755
index 0000000..ab80bcd
--- /dev/null
+++ b/samples/wearable/DelayedConfirmation/Application/src/main/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/DelayedConfirmation/Application/src/main/res/layout/main_activity.xml b/samples/wearable/DelayedConfirmation/Application/src/main/res/layout/main_activity.xml
new file mode 100644
index 0000000..39f3a40
--- /dev/null
+++ b/samples/wearable/DelayedConfirmation/Application/src/main/res/layout/main_activity.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="horizontal">
+    <TextView
+        android:id="@+id/text_start_wearable_activity"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textSize="20sp"
+        android:text="@string/start_wearable_activity" />
+    <Button
+        android:id="@+id/start_wearable_activity"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:minWidth="150dp"
+        android:onClick="onStartWearableActivityClick"
+        android:text="@string/start"/>
+</LinearLayout>
diff --git a/samples/wearable/DelayedConfirmation/Application/src/main/res/values/strings.xml b/samples/wearable/DelayedConfirmation/Application/src/main/res/values/strings.xml
new file mode 100644
index 0000000..7b5ee47
--- /dev/null
+++ b/samples/wearable/DelayedConfirmation/Application/src/main/res/values/strings.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name">Delayed Confirmation Sample App</string>
+    <string name="start_wearable_activity">Start Wearable Activity</string>
+    <string name="start">Start</string>
+
+    <string name="toast_timer_selected">Timer Selected</string>
+    <string name="toast_timer_finished">Timer Finished</string>
+</resources>
diff --git a/samples/wearable/DelayedConfirmation/Wearable/build.gradle b/samples/wearable/DelayedConfirmation/Wearable/build.gradle
new file mode 100644
index 0000000..fa6b67a
--- /dev/null
+++ b/samples/wearable/DelayedConfirmation/Wearable/build.gradle
@@ -0,0 +1,31 @@
+apply plugin: 'android'
+
+android {
+    compileSdkVersion 20
+    buildToolsVersion '20'
+
+    defaultConfig {
+        minSdkVersion 20
+        targetSdkVersion 20
+        versionCode 1
+        versionName "1.0"
+    }
+
+    buildTypes {
+        release {
+            runProguard false
+            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
+        }
+    }
+
+    lintOptions {
+            abortOnError false
+    }
+
+}
+
+dependencies {
+    compile 'com.google.android.gms:play-services:5.0.+@aar'
+    compile "com.android.support:support-v13:20.0.+"
+    compile "com.google.android.support:wearable:1.0.+"
+}
\ No newline at end of file
diff --git a/samples/wearable/DelayedConfirmation/Wearable/proguard-rules.txt b/samples/wearable/DelayedConfirmation/Wearable/proguard-rules.txt
new file mode 100644
index 0000000..2ddbcfc
--- /dev/null
+++ b/samples/wearable/DelayedConfirmation/Wearable/proguard-rules.txt
@@ -0,0 +1,21 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
+-dontwarn android.support.wearable.view.DelayedConfirmationView
diff --git a/samples/wearable/DelayedConfirmation/Wearable/src/main/AndroidManifest.xml b/samples/wearable/DelayedConfirmation/Wearable/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..81bda1b
--- /dev/null
+++ b/samples/wearable/DelayedConfirmation/Wearable/src/main/AndroidManifest.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+        package="com.example.android.wearable.delayedconfirmation" >
+
+    <uses-sdk android:minSdkVersion="20" android:targetSdkVersion="20" />
+
+    <application
+            android:allowBackup="true"
+            android:icon="@drawable/ic_launcher"
+            android:label="@string/app_name"
+            android:theme="@android:style/Theme.DeviceDefault">
+
+        <meta-data
+            android:name="com.google.android.gms.version"
+            android:value="@integer/google_play_services_version" />
+
+        <service
+            android:name=".WearableMessageListenerService" >
+            <intent-filter>
+                <action android:name="com.google.android.gms.wearable.BIND_LISTENER" />
+            </intent-filter>
+        </service>
+
+        <activity
+            android:name=".MainActivity"
+            android:label="@string/app_name">
+        </activity>
+    </application>
+</manifest>
diff --git a/samples/wearable/DelayedConfirmation/Wearable/src/main/java/com/example/android/wearable/delayedconfirmation/MainActivity.java b/samples/wearable/DelayedConfirmation/Wearable/src/main/java/com/example/android/wearable/delayedconfirmation/MainActivity.java
new file mode 100644
index 0000000..0303aa6
--- /dev/null
+++ b/samples/wearable/DelayedConfirmation/Wearable/src/main/java/com/example/android/wearable/delayedconfirmation/MainActivity.java
@@ -0,0 +1,128 @@
+package com.example.android.wearable.delayedconfirmation;
+
+import android.app.Activity;
+import android.app.Notification;
+import android.os.Bundle;
+import android.support.v4.app.NotificationCompat;
+import android.support.v4.app.NotificationManagerCompat;
+import android.support.wearable.view.DelayedConfirmationView;
+import android.util.Log;
+import android.view.View;
+
+import com.google.android.gms.common.ConnectionResult;
+import com.google.android.gms.common.api.GoogleApiClient;
+import com.google.android.gms.common.api.ResultCallback;
+import com.google.android.gms.wearable.MessageApi;
+import com.google.android.gms.wearable.Node;
+import com.google.android.gms.wearable.NodeApi;
+import com.google.android.gms.wearable.Wearable;
+
+
+public class MainActivity extends Activity implements
+        DelayedConfirmationView.DelayedConfirmationListener,
+        GoogleApiClient.OnConnectionFailedListener {
+
+    private static final String TAG = "DelayedConfirmation";
+    private static final int NUM_SECONDS = 5;
+
+    private static final String TIMER_SELECTED_PATH = "/timer_selected";
+    private static final String TIMER_FINISHED_PATH = "/timer_finished";
+
+    private DelayedConfirmationView delayedConfirmationView;
+    private GoogleApiClient mGoogleApiClient;
+
+    @Override
+    public void onCreate(Bundle b) {
+        super.onCreate(b);
+        setContentView(R.layout.main_activity);
+        delayedConfirmationView = (DelayedConfirmationView) findViewById(R.id.delayed_confirmation);
+        delayedConfirmationView.setTotalTimeMs(NUM_SECONDS * 1000);
+        mGoogleApiClient = new GoogleApiClient.Builder(this)
+                .addApi(Wearable.API)
+                .addOnConnectionFailedListener(this)
+                .build();
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        if (!mGoogleApiClient.isConnected()) {
+            mGoogleApiClient.connect();
+        }
+    }
+
+    @Override
+    protected void onDestroy() {
+        if (mGoogleApiClient.isConnected()) {
+            mGoogleApiClient.disconnect();
+        }
+        super.onDestroy();
+    }
+
+    /**
+     * Starts the DelayedConfirmationView when user presses "Start Timer" button.
+     */
+    public void onStartTimer(View view) {
+        delayedConfirmationView.start();
+        delayedConfirmationView.setListener(this);
+    }
+
+    @Override
+    public void onTimerSelected(View v) {
+        v.setPressed(true);
+        Notification notification = new NotificationCompat.Builder(this)
+                .setSmallIcon(R.drawable.ic_launcher)
+                .setContentTitle(getString(R.string.notification_title))
+                .setContentText(getString(R.string.notification_timer_selected))
+                .build();
+        NotificationManagerCompat.from(this).notify(0, notification);
+        sendMessageToCompanion(TIMER_SELECTED_PATH);
+        // Prevent onTimerFinished from being heard.
+        ((DelayedConfirmationView) v).setListener(null);
+        finish();
+    }
+
+    @Override
+    public void onTimerFinished(View v) {
+        Notification notification = new NotificationCompat.Builder(this)
+                .setSmallIcon(R.drawable.ic_launcher)
+                .setContentTitle(getString(R.string.notification_title))
+                .setContentText(getString(R.string.notification_timer_finished))
+                .build();
+        NotificationManagerCompat.from(this).notify(0, notification);
+        sendMessageToCompanion(TIMER_FINISHED_PATH);
+        finish();
+    }
+
+    @Override
+    public void onConnectionFailed(ConnectionResult connectionResult) {
+        Log.e(TAG, "Failed to connect to Google Api Client");
+    }
+
+    private void sendMessageToCompanion(final String path) {
+        Wearable.NodeApi.getConnectedNodes(mGoogleApiClient).setResultCallback(
+                new ResultCallback<NodeApi.GetConnectedNodesResult>() {
+                    @Override
+                    public void onResult(NodeApi.GetConnectedNodesResult getConnectedNodesResult) {
+                        for (final Node node : getConnectedNodesResult.getNodes()) {
+                            Wearable.MessageApi.sendMessage(mGoogleApiClient, node.getId(), path,
+                                    new byte[0]).setResultCallback(getSendMessageResultCallback());
+                        }
+                    }
+                }
+        );
+
+    }
+
+    private ResultCallback<MessageApi.SendMessageResult> getSendMessageResultCallback() {
+        return new ResultCallback<MessageApi.SendMessageResult>() {
+            @Override
+            public void onResult(MessageApi.SendMessageResult sendMessageResult) {
+                if (!sendMessageResult.getStatus().isSuccess()) {
+                    Log.e(TAG, "Failed to connect to Google Api Client with status "
+                            + sendMessageResult.getStatus());
+                }
+            }
+        };
+    }
+}
diff --git a/samples/wearable/DelayedConfirmation/Wearable/src/main/java/com/example/android/wearable/delayedconfirmation/WearableMessageListenerService.java b/samples/wearable/DelayedConfirmation/Wearable/src/main/java/com/example/android/wearable/delayedconfirmation/WearableMessageListenerService.java
new file mode 100644
index 0000000..881de2e
--- /dev/null
+++ b/samples/wearable/DelayedConfirmation/Wearable/src/main/java/com/example/android/wearable/delayedconfirmation/WearableMessageListenerService.java
@@ -0,0 +1,22 @@
+package com.example.android.wearable.delayedconfirmation;
+
+import android.content.Intent;
+
+import com.google.android.gms.wearable.MessageEvent;
+import com.google.android.gms.wearable.WearableListenerService;
+
+/**
+ * Listens for a message telling it to start the Wearable MainActivity.
+ */
+public class WearableMessageListenerService extends WearableListenerService {
+    private static final String START_ACTIVITY_PATH = "/start-activity";
+
+    @Override
+    public void onMessageReceived(MessageEvent event) {
+        if (event.getPath().equals(START_ACTIVITY_PATH)) {
+            Intent startIntent = new Intent(this, MainActivity.class);
+            startIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+            startActivity(startIntent);
+        }
+    }
+}
diff --git a/samples/wearable/DelayedConfirmation/Wearable/src/main/res/drawable-hdpi/ic_launcher.png b/samples/wearable/DelayedConfirmation/Wearable/src/main/res/drawable-hdpi/ic_launcher.png
new file mode 100755
index 0000000..589f229
--- /dev/null
+++ b/samples/wearable/DelayedConfirmation/Wearable/src/main/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/DelayedConfirmation/Wearable/src/main/res/drawable-mdpi/ic_launcher.png b/samples/wearable/DelayedConfirmation/Wearable/src/main/res/drawable-mdpi/ic_launcher.png
new file mode 100755
index 0000000..77dd571
--- /dev/null
+++ b/samples/wearable/DelayedConfirmation/Wearable/src/main/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/DelayedConfirmation/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png b/samples/wearable/DelayedConfirmation/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png
new file mode 100755
index 0000000..fe34ebe
--- /dev/null
+++ b/samples/wearable/DelayedConfirmation/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/DelayedConfirmation/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png b/samples/wearable/DelayedConfirmation/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png
new file mode 100755
index 0000000..ab80bcd
--- /dev/null
+++ b/samples/wearable/DelayedConfirmation/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/DelayedConfirmation/Wearable/src/main/res/layout/main_activity.xml b/samples/wearable/DelayedConfirmation/Wearable/src/main/res/layout/main_activity.xml
new file mode 100644
index 0000000..970af03
--- /dev/null
+++ b/samples/wearable/DelayedConfirmation/Wearable/src/main/res/layout/main_activity.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.wearable.view.BoxInsetLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_height="match_parent"
+    android:layout_width="match_parent">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="vertical"
+        android:background="@color/grey"
+        app:layout_box="top">
+
+        <Button
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:onClick="onStartTimer"
+            android:text="@string/start_timer"/>
+
+        <android.support.wearable.view.DelayedConfirmationView
+            android:id="@+id/delayed_confirmation"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:src="@drawable/ic_launcher"
+            app:circle_color="@color/blue"
+            app:circle_radius="@dimen/circle_radius"
+            app:circle_radius_pressed="@dimen/circle_radius_pressed"
+            app:circle_padding="@dimen/circle_padding"
+            app:circle_border_width="@dimen/circle_border_normal_width"
+            app:circle_border_color="@color/white"/>
+
+    </LinearLayout>
+</android.support.wearable.view.BoxInsetLayout>
diff --git a/samples/wearable/DelayedConfirmation/Wearable/src/main/res/values/dimens.xml b/samples/wearable/DelayedConfirmation/Wearable/src/main/res/values/dimens.xml
new file mode 100644
index 0000000..a0439944
--- /dev/null
+++ b/samples/wearable/DelayedConfirmation/Wearable/src/main/res/values/dimens.xml
@@ -0,0 +1,6 @@
+<resources>
+    <dimen name="circle_border_normal_width">10dp</dimen>
+    <dimen name="circle_padding">5dp</dimen>
+    <dimen name="circle_radius">60dp</dimen>
+    <dimen name="circle_radius_pressed">55dp</dimen>
+</resources>
diff --git a/samples/wearable/DelayedConfirmation/Wearable/src/main/res/values/strings.xml b/samples/wearable/DelayedConfirmation/Wearable/src/main/res/values/strings.xml
new file mode 100644
index 0000000..ad9ce88
--- /dev/null
+++ b/samples/wearable/DelayedConfirmation/Wearable/src/main/res/values/strings.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+    <string name="app_name">Delayed Confirmation</string>
+    <string name="start_timer">Start Timer (5 seconds)</string>
+
+    <string name="notification_title">DelayedConfirmation</string>
+    <string name="notification_timer_selected">Timer Selected</string>
+    <string name="notification_timer_finished">Timer Finished</string>
+</resources>
diff --git a/samples/wearable/DelayedConfirmation/build.gradle b/samples/wearable/DelayedConfirmation/build.gradle
new file mode 100644
index 0000000..07be865
--- /dev/null
+++ b/samples/wearable/DelayedConfirmation/build.gradle
@@ -0,0 +1,14 @@
+buildscript {
+    repositories {
+        mavenCentral()
+    }
+    dependencies {
+        classpath 'com.android.tools.build:gradle:0.11.+'
+    }
+}
+
+allprojects {
+    repositories {
+        mavenCentral()
+    }
+}
\ No newline at end of file
diff --git a/samples/wearable/DelayedConfirmation/gradle.properties b/samples/wearable/DelayedConfirmation/gradle.properties
new file mode 100644
index 0000000..5d08ba7
--- /dev/null
+++ b/samples/wearable/DelayedConfirmation/gradle.properties
@@ -0,0 +1,18 @@
+# Project-wide Gradle settings.
+
+# IDE (e.g. Android Studio) users:
+# Settings specified in this file will override any Gradle settings
+# configured through the IDE.
+
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+# Default value: -Xmx10248m -XX:MaxPermSize=256m
+# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
+
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
\ No newline at end of file
diff --git a/samples/wearable/DelayedConfirmation/gradle/wrapper/gradle-wrapper.jar b/samples/wearable/DelayedConfirmation/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..5838598
--- /dev/null
+++ b/samples/wearable/DelayedConfirmation/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/samples/wearable/DelayedConfirmation/gradle/wrapper/gradle-wrapper.properties b/samples/wearable/DelayedConfirmation/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..e83e460
--- /dev/null
+++ b/samples/wearable/DelayedConfirmation/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Fri Mar 14 14:02:22 PDT 2014
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=http\://services.gradle.org/distributions/gradle-1.11-all.zip
diff --git a/samples/wearable/DelayedConfirmation/gradlew b/samples/wearable/DelayedConfirmation/gradlew
new file mode 100755
index 0000000..91a7e26
--- /dev/null
+++ b/samples/wearable/DelayedConfirmation/gradlew
@@ -0,0 +1,164 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+##  Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+    echo "$*"
+}
+
+die ( ) {
+    echo
+    echo "$*"
+    echo
+    exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+  CYGWIN* )
+    cygwin=true
+    ;;
+  Darwin* )
+    darwin=true
+    ;;
+  MINGW* )
+    msys=true
+    ;;
+esac
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched.
+if $cygwin ; then
+    [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+fi
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+        PRG="$link"
+    else
+        PRG=`dirname "$PRG"`"/$link"
+    fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >&-
+APP_HOME="`pwd -P`"
+cd "$SAVED" >&-
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+        # IBM's JDK on AIX uses strange locations for the executables
+        JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+        JAVACMD="$JAVA_HOME/bin/java"
+    fi
+    if [ ! -x "$JAVACMD" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+else
+    JAVACMD="java"
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+    MAX_FD_LIMIT=`ulimit -H -n`
+    if [ $? -eq 0 ] ; then
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+            MAX_FD="$MAX_FD_LIMIT"
+        fi
+        ulimit -n $MAX_FD
+        if [ $? -ne 0 ] ; then
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
+        fi
+    else
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+    fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+    # We build the pattern for arguments to be converted via cygpath
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+    SEP=""
+    for dir in $ROOTDIRSRAW ; do
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
+        SEP="|"
+    done
+    OURCYGPATTERN="(^($ROOTDIRS))"
+    # Add a user-defined pattern to the cygpath arguments
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+    fi
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
+    i=0
+    for arg in "$@" ; do
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
+
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+        else
+            eval `echo args$i`="\"$arg\""
+        fi
+        i=$((i+1))
+    done
+    case $i in
+        (0) set -- ;;
+        (1) set -- "$args0" ;;
+        (2) set -- "$args0" "$args1" ;;
+        (3) set -- "$args0" "$args1" "$args2" ;;
+        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+    esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+    JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/samples/wearable/DelayedConfirmation/gradlew.bat b/samples/wearable/DelayedConfirmation/gradlew.bat
new file mode 100644
index 0000000..aec9973
--- /dev/null
+++ b/samples/wearable/DelayedConfirmation/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem  Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/samples/wearable/DelayedConfirmation/settings.gradle b/samples/wearable/DelayedConfirmation/settings.gradle
new file mode 100644
index 0000000..68726d4
--- /dev/null
+++ b/samples/wearable/DelayedConfirmation/settings.gradle
@@ -0,0 +1 @@
+include 'Application', 'Wearable'
\ No newline at end of file
diff --git a/samples/wearable/ElizaChat/_index.html b/samples/wearable/ElizaChat/_index.html
new file mode 100644
index 0000000..bdf2508
--- /dev/null
+++ b/samples/wearable/ElizaChat/_index.html
@@ -0,0 +1,19 @@
+<p>This sample is a phone application that provides a chat experience in which
+users can respond to messages with a quick voice response. New messages create
+a notification with a "Reply" action. The notification is bridged from phone
+to wearable, and selecting the "Reply" action on the wearable opens the voice
+transcription UI allowing the user to speak a response.</p>
+
+<p>To keep the example simple and self-contained, instead of a real chat
+application (which would require a server or a peer-to-peer connection), the
+conversation is conducted with an chat bot on the phone. Each time the bot
+responds, the phone app updates the notification and allows the user to write
+back. This sample is primarily intended to demonstrate the voice-reply
+capabilities provided by the Android Wear notification API.</p>
+
+<p>When using the emulator you can type a response instead of speaking it
+aloud. To allow typed responses, ensure that your emulator image has the
+"hardware keyboard present" option enabled. After typing your message into
+the emulator window, hit the enter key and wait a few seconds for your
+message to be sent.</p>
+
diff --git a/samples/wearable/ElizaChat/build.gradle b/samples/wearable/ElizaChat/build.gradle
new file mode 100644
index 0000000..0b1d4e6
--- /dev/null
+++ b/samples/wearable/ElizaChat/build.gradle
@@ -0,0 +1,41 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+
+buildscript {
+    repositories {
+        mavenCentral()
+    }
+    dependencies {
+        classpath 'com.android.tools.build:gradle:0.11.+'
+    }
+}
+
+allprojects {
+    repositories {
+        mavenCentral()
+    }
+}
+
+apply plugin: 'android'
+
+android {
+    compileSdkVersion 19
+    buildToolsVersion '20'
+
+    defaultConfig {
+        minSdkVersion 18
+        targetSdkVersion 19
+        versionCode 1
+        versionName "1.0"
+    }
+
+    buildTypes {
+        release {
+            runProguard false
+            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
+        }
+    }
+}
+
+dependencies {
+    compile "com.android.support:support-v4:20.0.+"
+}
\ No newline at end of file
diff --git a/samples/wearable/ElizaChat/gradle.properties b/samples/wearable/ElizaChat/gradle.properties
new file mode 100644
index 0000000..5d08ba7
--- /dev/null
+++ b/samples/wearable/ElizaChat/gradle.properties
@@ -0,0 +1,18 @@
+# Project-wide Gradle settings.
+
+# IDE (e.g. Android Studio) users:
+# Settings specified in this file will override any Gradle settings
+# configured through the IDE.
+
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+# Default value: -Xmx10248m -XX:MaxPermSize=256m
+# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
+
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
\ No newline at end of file
diff --git a/samples/wearable/ElizaChat/gradle/wrapper/gradle-wrapper.jar b/samples/wearable/ElizaChat/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..5838598
--- /dev/null
+++ b/samples/wearable/ElizaChat/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/samples/wearable/ElizaChat/gradle/wrapper/gradle-wrapper.properties b/samples/wearable/ElizaChat/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..e83e460
--- /dev/null
+++ b/samples/wearable/ElizaChat/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Fri Mar 14 14:02:22 PDT 2014
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=http\://services.gradle.org/distributions/gradle-1.11-all.zip
diff --git a/samples/wearable/ElizaChat/gradlew b/samples/wearable/ElizaChat/gradlew
new file mode 100755
index 0000000..91a7e26
--- /dev/null
+++ b/samples/wearable/ElizaChat/gradlew
@@ -0,0 +1,164 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+##  Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+    echo "$*"
+}
+
+die ( ) {
+    echo
+    echo "$*"
+    echo
+    exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+  CYGWIN* )
+    cygwin=true
+    ;;
+  Darwin* )
+    darwin=true
+    ;;
+  MINGW* )
+    msys=true
+    ;;
+esac
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched.
+if $cygwin ; then
+    [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+fi
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+        PRG="$link"
+    else
+        PRG=`dirname "$PRG"`"/$link"
+    fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >&-
+APP_HOME="`pwd -P`"
+cd "$SAVED" >&-
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+        # IBM's JDK on AIX uses strange locations for the executables
+        JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+        JAVACMD="$JAVA_HOME/bin/java"
+    fi
+    if [ ! -x "$JAVACMD" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+else
+    JAVACMD="java"
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+    MAX_FD_LIMIT=`ulimit -H -n`
+    if [ $? -eq 0 ] ; then
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+            MAX_FD="$MAX_FD_LIMIT"
+        fi
+        ulimit -n $MAX_FD
+        if [ $? -ne 0 ] ; then
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
+        fi
+    else
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+    fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+    # We build the pattern for arguments to be converted via cygpath
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+    SEP=""
+    for dir in $ROOTDIRSRAW ; do
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
+        SEP="|"
+    done
+    OURCYGPATTERN="(^($ROOTDIRS))"
+    # Add a user-defined pattern to the cygpath arguments
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+    fi
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
+    i=0
+    for arg in "$@" ; do
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
+
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+        else
+            eval `echo args$i`="\"$arg\""
+        fi
+        i=$((i+1))
+    done
+    case $i in
+        (0) set -- ;;
+        (1) set -- "$args0" ;;
+        (2) set -- "$args0" "$args1" ;;
+        (3) set -- "$args0" "$args1" "$args2" ;;
+        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+    esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+    JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/samples/wearable/ElizaChat/gradlew.bat b/samples/wearable/ElizaChat/gradlew.bat
new file mode 100644
index 0000000..aec9973
--- /dev/null
+++ b/samples/wearable/ElizaChat/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem  Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/samples/wearable/ElizaChat/proguard-rules.txt b/samples/wearable/ElizaChat/proguard-rules.txt
new file mode 100644
index 0000000..08e5bdc
--- /dev/null
+++ b/samples/wearable/ElizaChat/proguard-rules.txt
@@ -0,0 +1,22 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
+-dontwarn android.support.wearable.view.DelayedConfirmationView
+-dontwarn android.support.wearable.view.CircledImageView
diff --git a/samples/wearable/ElizaChat/src/main/AndroidManifest.xml b/samples/wearable/ElizaChat/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..fef7224
--- /dev/null
+++ b/samples/wearable/ElizaChat/src/main/AndroidManifest.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.example.android.wearable.elizachat" >
+
+    <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="19"/>
+
+    <application
+        android:allowBackup="true"
+        android:icon="@mipmap/ic_app_eliza"
+        android:label="@string/app_name"
+        android:theme="@style/AppTheme" >
+        <activity
+            android:name=".MainActivity"
+            android:label="@string/app_name" >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <service
+            android:name=".ResponderService">
+            <intent-filter>
+                <action android:name="com.example.android.wearable.elizachat.REPLY" />
+                <action android:name="com.example.android.wearable.elizachat.CONVERSATION" />
+            </intent-filter>
+        </service>
+    </application>
+
+</manifest>
diff --git a/samples/wearable/ElizaChat/src/main/java/com/example/android/wearable/elizachat/ElizaResponder.java b/samples/wearable/ElizaChat/src/main/java/com/example/android/wearable/elizachat/ElizaResponder.java
new file mode 100644
index 0000000..4062ae8
--- /dev/null
+++ b/samples/wearable/ElizaChat/src/main/java/com/example/android/wearable/elizachat/ElizaResponder.java
@@ -0,0 +1,152 @@
+package com.example.android.wearable.elizachat;
+
+import android.text.TextUtils;
+
+/**
+ * A basic chat bot based on ELIZA, one of the earliest programs to employ primitive natural
+ * language processing. Like ELIZA, this bot can simulate a Rogerian psychotherapist using a
+ * collection of vague and generic responses.
+ */
+public class ElizaResponder {
+
+    private static final String[] CONVERSATION_KEYWORDS = {
+            "CAN YOU", "CAN I", "YOU ARE", "YOURE", "I DONT", "I FEEL", "WHY DONT YOU", "WHY CANT I",
+            "ARE YOU", "I CANT", "I AM", " IM ", "YOU", "I WANT", "WHAT", "HOW", "WHO", "WHERE",
+            "WHEN", "WHY", "NAME", "CAUSE", "SORRY", "DREAM", "HELLO", "HI", "MAYBE", "NO", "YOUR",
+            "ALWAYS", "THINK", "ALIKE", "YES", "FRIEND", "COMPUTER", "NOKEYFOUND" };
+
+    private static String[] WORDS_TO_REPLACE = {"ARE","AM","WERE","WAS","YOU","I","YOUR","MY",
+            "IVE","YOUVE","IM","YOURE", "YOU", "ME"};
+
+    private static String[] QUESTIONS = {
+            "DON'T YOU BELIEVE THAT I CAN.", "PERHAPS YOU WOULD LIKE TO BE ABLE TO.",
+            "YOU WANT ME TO BE ABLE TO*", "PERHAPS YOU DON'T WANT TO*",
+            "DO YOU WANT TO BE ABLE TO*", "WHAT MAKES YOU THINK I AM*",
+            "DOES IT PLEASE YOU TO BELIEVE I AM*", "PERHAPS YOU WOULD LIKE TO BE*",
+            "DO YOU SOMETIMES WISH YOU WERE*", "DON'T YOU REALLY*", "WHY DON'T YOU*",
+            "DO YOU WISH TO BE ABLE TO*", "DOES THAT TROUBLE YOU?",
+            "TELL ME MORE ABOUT SUCH FEELINGS*", "DO YOU OFTEN FEEL*",
+            "DO YOU ENJOY FEELING*", "DO YOU REALLY BELIEVE I DON'T*",
+            "PERHAPS IN TIME I WILL*", "DO YOU WANT ME TO*",
+            "DO YOU THINK YOU SHOULD BE ABLE TO*", "WHY CAN'T YOU*",
+            "WHAT MAKES YOU WONDER WHETHER OR NOT I AM*",
+            "WOULD YOU PREFER IF I WERE NOT*", "PERHAPS IN YOUR FANTASIES I AM*",
+            "HOW DO YOU KNOW YOU CAN'T*", "HAVE YOU TRIED?", "PERHAPS YOU CAN NOW*",
+            "DID YOU COME TO ME BECAUSE YOU ARE*", "HOW LONG HAVE YOU BEEN*",
+            "DO YOU BELIEVE IT IS NORMAL TO BE*", "DO YOU ENJOY BEING*",
+            "I AM MORE INTERESTED IN TALKING ABOUT YOU.", "OH, I*",
+            "ARE YOU REALLY SO INTERESTED IN SOMEONE LIKE ME?",
+            "WHAT WOULD IT MEAN TO YOU IF YOU GOT*", "WHY DO YOU WANT*",
+            "SUPPOSE YOU SOON GOT*", "WHAT IF YOU NEVER GOT*", "I SOMETIMES ALSO WANT*",
+            "WHY DO YOU ASK?", "DOES THAT QUESTION INTEREST YOU?",
+            "WHAT ANSWER WOULD PLEASE YOU THE MOST?", "WHAT DO YOU THINK?",
+            "ARE SUCH QUESTIONS ON YOUR MIND OFTEN?",
+            "WHAT IS IT THAT YOU REALLY WANT TO KNOW?", "HAVE YOU ASKED ANYONE ELSE?",
+            "HAVE YOU ASKED SUCH QUESTIONS BEFORE?",
+            "WHAT ELSE COMES TO MIND WHEN YOU ASK THAT?", "WE CAN KEEP THIS ANONYMOUS.",
+            "NO NEED TO SPECIFY ANY NAMES-- PLEASE GO ON.", "IS THAT THE REAL REASON?",
+            "DON'T ANY OTHER REASONS COME TO MIND?",
+            "DOES THAT REASON EXPLAIN ANYTHING ELSE?", "WHAT OTHER REASONS MIGHT THERE BE?",
+            "PLEASE DON'T APOLOGIZE.", "APOLOGIES ARE NOT NECESSARY.",
+            "WHAT FEELINGS DO YOU HAVE WHEN YOU APOLOGIZE?", "NO NEED TO BE DEFENSIVE!",
+            "WHAT DOES THAT DREAM SUGGEST TO YOU?", "DO YOU DREAM OFTEN?",
+            "WHAT PERSONS APPEAR IN YOUR DREAMS?", "DO YOU HAVE PLEASANT DREAMS?",
+            "HOW DO YOU DO ... PLEASE STATE YOUR PROBLEM.", "YOU DON'T SEEM QUITE CERTAIN.",
+            "WHY THE UNCERTAIN TONE?", "LET'S TRY TO KEEP THIS POSITIVE.", "YOU AREN'T SURE?",
+            "DON'T YOU KNOW?", "IS THAT A DEFINITE NO OR MIGHT YOU CHANGE YOUR MIND?",
+            "I AM SENSING SOME NEGATIVITY.", "WHY NOT?", "ARE YOU SURE?", "WHY NO?",
+            "WHY ARE YOU CONCERNED ABOUT MY*", "WHAT ABOUT YOUR OWN*",
+            "CAN'T YOU THINK OF A SPECIFIC EXAMPLE?", "WHEN?", "WHAT ARE YOU THINKING OF?",
+            "REALLY. ALWAYS?", "DO YOU REALLY THINK SO?", "BUT YOU ARE NOT SURE YOU.",
+            "BELIEVE IN YOURSELF.", "IN WHAT WAY?", "WHAT RESEMBLANCE DO YOU SEE?",
+            "WHAT DOES THE SIMILARITY SUGGEST TO YOU?",
+            "WHAT OTHER CONNECTIONS DO YOU SEE?", "COULD THERE REALLY BE SOME CONNECTION?",
+            "HOW?", "YOU SEEM QUITE POSITIVE.", "ARE YOU SURE?", "I SEE.", "I UNDERSTAND.",
+            "TELL ME ABOUT YOUR FRIENDS.", "ARE YOU WORRIED ABOUT YOUR FRIENDS?",
+            "DO YOUR FRIENDS EVER GIVE YOU A HARD TIME?", "WHAT DO YOU LIKE ABOUT YOUR FRIENDS?",
+            "DO YOU LOVE YOUR FRIENDS?", "PERHAPS YOUR LOVE FOR FRIENDS WORRIES YOU.",
+            "DO COMPUTERS EXCITE YOU?", "ARE YOU TALKING ABOUT ME IN PARTICULAR?",
+            "HOW DO YOU LIKE YOUR WATCH?", "WHY DO YOU MENTION COMPUTERS?",
+            "DO YOU FIND MACHINES AS FASCINATING AS I DO?",
+            "DON'T YOU THINK COMPUTERS CAN HELP PEOPLE?",
+            "WHAT ABOUT MACHINES EXCITES YOU THE MOST?",
+            "HEY THERE, HOW CAN I HELP YOU?",
+            "WHAT DOES THAT SUGGEST TO YOU?", "I SEE.",
+            "I'M NOT SURE I UNDERSTAND YOU FULLY.", "COME COME ELUCIDATE YOUR THOUGHTS.",
+            "CAN YOU ELABORATE ON THAT?", "THAT IS QUITE INTERESTING."};
+
+    private static char[] CONVERSATION_TO_RESPONSES_MAP = {
+            1,3,4,2,6,4,6,4,10,4,14,3,17,3,20,2,22,3,25,3,
+            28,4,28,4,32,3,35,5,40,9,40,9,40,9,40,9,40,9,40,9,
+            49,2,51,4,55,4,59,4,63,1,63,1,64,5,69,5,74,2,76,4,
+            80,3,83,7,90,3,93,6,99,7,106,6};
+
+    private int[] responseStarts = new int[36];
+    private int[] responseCurrentIndices = new int[36];
+    private int[] responseEnds = new int[36];
+    private String previousInput = null;
+
+    public ElizaResponder() {
+        for (int i = 0; i < CONVERSATION_TO_RESPONSES_MAP.length / 2; i++) {
+            responseStarts[i] = CONVERSATION_TO_RESPONSES_MAP[2 * i];
+            responseCurrentIndices[i] = CONVERSATION_TO_RESPONSES_MAP[2 * i];
+            responseEnds[i] = responseStarts[i] + CONVERSATION_TO_RESPONSES_MAP[2 * i  + 1];
+        }
+    }
+
+    public String elzTalk(String input) {
+        if (null == input) {
+            input = "";
+        }
+        String result = "";
+
+        input = " " + input.toUpperCase().replace("\'", "") + " ";
+
+        if (previousInput != null && input.equals(previousInput)) {
+            return "DIDN'T YOU JUST SAY THAT?\n";
+        }
+        previousInput = input;
+
+        int keywordIndex = 0;
+        for (; keywordIndex < CONVERSATION_KEYWORDS.length; ++keywordIndex) {
+            int index = input.indexOf(CONVERSATION_KEYWORDS[keywordIndex]);
+            if (index != -1) {
+                break;
+            }
+        }
+
+        String afterKeyword = "";
+        if (keywordIndex == CONVERSATION_KEYWORDS.length) {
+            keywordIndex = 35;
+        } else {
+            int index = input.indexOf(CONVERSATION_KEYWORDS[keywordIndex]);
+            afterKeyword = input.substring(index + CONVERSATION_KEYWORDS[keywordIndex].length());
+            String[] parts = afterKeyword.split("\\s+");
+            for (int i = 0; i < WORDS_TO_REPLACE.length / 2; i++) {
+                String first = WORDS_TO_REPLACE[i * 2];
+                String second = WORDS_TO_REPLACE[i * 2 + 1];
+                for (int j = 0; j < parts.length; ++j) {
+                    if (parts[j].equals(first)) {
+                        parts[j] = second;
+                    } else if (parts[j].equals(second)) {
+                        parts[j] = first;
+                    }
+                }
+            }
+            afterKeyword = TextUtils.join(" ", parts);
+        }
+
+        String question = QUESTIONS[responseCurrentIndices[keywordIndex] - 1];
+        responseCurrentIndices[keywordIndex] = responseCurrentIndices[keywordIndex] + 1;
+        if (responseCurrentIndices[keywordIndex] > responseEnds[keywordIndex]) {
+            responseCurrentIndices[keywordIndex] = responseStarts[keywordIndex];
+        }
+        result += question;
+        if (result.endsWith("*")) {
+            result = result.substring(0, result.length() - 1);
+            result += " " + afterKeyword;
+        }
+
+        return result;
+    }
+}
diff --git a/samples/wearable/ElizaChat/src/main/java/com/example/android/wearable/elizachat/MainActivity.java b/samples/wearable/ElizaChat/src/main/java/com/example/android/wearable/elizachat/MainActivity.java
new file mode 100644
index 0000000..9209536
--- /dev/null
+++ b/samples/wearable/ElizaChat/src/main/java/com/example/android/wearable/elizachat/MainActivity.java
@@ -0,0 +1,94 @@
+package com.example.android.wearable.elizachat;
+
+import android.app.Activity;
+import android.app.Notification;
+import android.app.PendingIntent;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.graphics.BitmapFactory;
+import android.os.Bundle;
+import android.support.v4.content.LocalBroadcastManager;
+import android.text.TextUtils;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.widget.TextView;
+
+public class MainActivity extends Activity {
+
+    @SuppressWarnings("unused")
+    private static final String TAG = "MainActivity";
+
+    public static final String EXTRA_MESSAGE = "message";
+
+    public static final String ACTION_NOTIFY = "com.example.android.wearable.elizachat.NOTIFY";
+
+    public static final String ACTION_GET_CONVERSATION
+            = "com.example.android.wearable.elizachat.CONVERSATION";
+
+    private BroadcastReceiver mReceiver;
+
+    private TextView mHistoryView;
+
+    @Override
+    protected void onCreate(Bundle saved) {
+        super.onCreate(saved);
+        setContentView(R.layout.activity_main);
+        mReceiver = new BroadcastReceiver() {
+            @Override
+            public void onReceive(Context context, Intent intent) {
+                processMessage(intent);
+            }
+        };
+        mHistoryView = (TextView) findViewById(R.id.history);
+        startResponderService();
+    }
+
+    private void startResponderService() {
+        Intent serviceIntent = new Intent(ResponderService.ACTION_INCOMING);
+        startService(serviceIntent);
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        LocalBroadcastManager.getInstance(this).registerReceiver(mReceiver,
+                new IntentFilter(ACTION_NOTIFY));
+        mHistoryView.setText("");
+        Intent serviceIntent = new Intent(ACTION_GET_CONVERSATION);
+        startService(serviceIntent);
+
+    }
+
+    @Override
+    protected void onPause() {
+        LocalBroadcastManager.getInstance(this).unregisterReceiver(mReceiver);
+        super.onPause();
+    }
+
+    private void processMessage(Intent intent) {
+        String text = intent.getStringExtra(EXTRA_MESSAGE);
+        if (!TextUtils.isEmpty(text)) {
+            mHistoryView.append("\n" + text);
+        }
+    }
+
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        super.onCreateOptionsMenu(menu);
+        getMenuInflater().inflate(R.menu.main, menu);
+        return true;
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        switch (item.getItemId()) {
+            case R.id.action_stop_service:
+                stopService(new Intent(this, ResponderService.class));
+                finish();
+                break;
+        }
+        return true;
+    }
+}
diff --git a/samples/wearable/ElizaChat/src/main/java/com/example/android/wearable/elizachat/ResponderService.java b/samples/wearable/ElizaChat/src/main/java/com/example/android/wearable/elizachat/ResponderService.java
new file mode 100644
index 0000000..d776acc
--- /dev/null
+++ b/samples/wearable/ElizaChat/src/main/java/com/example/android/wearable/elizachat/ResponderService.java
@@ -0,0 +1,132 @@
+package com.example.android.wearable.elizachat;
+
+import android.app.Notification;
+import android.app.PendingIntent;
+import android.app.Service;
+import android.content.Intent;
+import android.graphics.BitmapFactory;
+import android.os.Bundle;
+import android.os.IBinder;
+import android.support.v4.app.NotificationCompat;
+import android.support.v4.app.RemoteInput;
+import android.support.v4.content.LocalBroadcastManager;
+import android.support.v4.app.NotificationManagerCompat;
+import android.text.TextUtils;
+import android.util.Log;
+
+/**
+ * A service that runs in the background and provides responses to the incoming messages from the
+ * wearable. It also keeps a record of the chat session history, which it can provide upon request.
+ */
+public class ResponderService extends Service {
+
+    public static final String ACTION_INCOMING = "com.example.android.wearable.elizachat.INCOMING";
+
+    public static final String ACTION_RESPONSE = "com.example.android.wearable.elizachat.REPLY";
+
+    public static final String EXTRA_REPLY = "reply";
+
+    private static final String TAG = "ResponderService";
+
+    private ElizaResponder mResponder;
+
+    private String mLastResponse = null;
+
+    private StringBuffer mCompleteConversation = new StringBuffer();
+
+    private LocalBroadcastManager mBroadcastManager;
+
+    @Override
+    public void onCreate() {
+        super.onCreate();
+        if (Log.isLoggable(TAG, Log.DEBUG)) {
+            Log.d(TAG, "Chat Service started");
+        }
+        mResponder = new ElizaResponder();
+        mBroadcastManager = LocalBroadcastManager.getInstance(this);
+        processIncoming(null);
+    }
+
+    @Override
+    public IBinder onBind(Intent intent) {
+        return null;
+    }
+
+    @Override
+    public int onStartCommand(Intent intent, int flags, int startId) {
+        if (null == intent || null == intent.getAction()) {
+            return Service.START_STICKY;
+        }
+        String action = intent.getAction();
+        if (action.equals(ACTION_RESPONSE)) {
+            Bundle remoteInputResults = RemoteInput.getResultsFromIntent(intent);
+            CharSequence replyMessage = "";
+            if (remoteInputResults != null) {
+                replyMessage = remoteInputResults.getCharSequence(EXTRA_REPLY);
+            }
+            processIncoming(replyMessage.toString());
+        } else if (action.equals(MainActivity.ACTION_GET_CONVERSATION)) {
+            broadcastMessage(mCompleteConversation.toString());
+        }
+        return Service.START_STICKY;
+    }
+
+    private void showNotification() {
+        if (Log.isLoggable(TAG, Log.DEBUG)) {
+            Log.d(TAG, "Sent: " + mLastResponse);
+        }
+        NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
+                .setContentTitle(getString(R.string.eliza))
+                .setContentText(mLastResponse)
+                .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.bg_eliza))
+                .setSmallIcon(R.drawable.bg_eliza)
+                .setPriority(NotificationCompat.PRIORITY_MIN);
+
+        Intent intent = new Intent(ACTION_RESPONSE);
+        PendingIntent pendingIntent = PendingIntent.getService(this, 0, intent,
+                PendingIntent.FLAG_ONE_SHOT | PendingIntent.FLAG_CANCEL_CURRENT);
+        Notification notification = builder
+                .extend(new NotificationCompat.WearableExtender()
+                        .addAction(new NotificationCompat.Action.Builder(
+                                R.drawable.ic_full_reply, getString(R.string.reply), pendingIntent)
+                                .addRemoteInput(new RemoteInput.Builder(EXTRA_REPLY)
+                                        .setLabel(getString(R.string.reply))
+                                        .build())
+                                .build()))
+                .build();
+        NotificationManagerCompat.from(this).notify(0, notification);
+    }
+
+    private void processIncoming(String text) {
+        if (Log.isLoggable(TAG, Log.DEBUG)) {
+            Log.d(TAG, "Received: " + text);
+        }
+        mLastResponse = mResponder.elzTalk(text);
+        String line = TextUtils.isEmpty(text) ? mLastResponse : text + "\n" + mLastResponse;
+
+        // Send a new line of conversation to update the Activity, unless the incoming text was
+        // empty.
+        if (!TextUtils.isEmpty(text)) {
+            broadcastMessage(line);
+        }
+        NotificationManagerCompat.from(this).cancelAll();
+        showNotification();
+        mCompleteConversation.append("\n" + line);
+    }
+
+    private void broadcastMessage(String message) {
+        Intent intent = new Intent(MainActivity.ACTION_NOTIFY);
+        intent.putExtra(MainActivity.EXTRA_MESSAGE, message);
+        mBroadcastManager.sendBroadcast(intent);
+    }
+
+    @Override
+    public void onDestroy() {
+        if (Log.isLoggable(TAG, Log.DEBUG)) {
+            Log.d(TAG, "Chat Service stopped");
+        }
+        NotificationManagerCompat.from(this).cancel(0);
+        mBroadcastManager = null;
+        super.onDestroy();
+    }
+}
diff --git a/samples/wearable/ElizaChat/src/main/res/drawable-hdpi/ic_full_reply.png b/samples/wearable/ElizaChat/src/main/res/drawable-hdpi/ic_full_reply.png
new file mode 100644
index 0000000..66388d5
--- /dev/null
+++ b/samples/wearable/ElizaChat/src/main/res/drawable-hdpi/ic_full_reply.png
Binary files differ
diff --git a/samples/wearable/ElizaChat/src/main/res/drawable-mdpi/ic_full_reply.png b/samples/wearable/ElizaChat/src/main/res/drawable-mdpi/ic_full_reply.png
new file mode 100644
index 0000000..60ce9f9
--- /dev/null
+++ b/samples/wearable/ElizaChat/src/main/res/drawable-mdpi/ic_full_reply.png
Binary files differ
diff --git a/samples/wearable/ElizaChat/src/main/res/drawable-nodpi/bg_eliza.png b/samples/wearable/ElizaChat/src/main/res/drawable-nodpi/bg_eliza.png
new file mode 100644
index 0000000..3bbdf48
--- /dev/null
+++ b/samples/wearable/ElizaChat/src/main/res/drawable-nodpi/bg_eliza.png
Binary files differ
diff --git a/samples/wearable/ElizaChat/src/main/res/drawable-xhdpi/ic_full_reply.png b/samples/wearable/ElizaChat/src/main/res/drawable-xhdpi/ic_full_reply.png
new file mode 100644
index 0000000..dba6fa7
--- /dev/null
+++ b/samples/wearable/ElizaChat/src/main/res/drawable-xhdpi/ic_full_reply.png
Binary files differ
diff --git a/samples/wearable/ElizaChat/src/main/res/layout/activity_main.xml b/samples/wearable/ElizaChat/src/main/res/layout/activity_main.xml
new file mode 100644
index 0000000..6ffed8e
--- /dev/null
+++ b/samples/wearable/ElizaChat/src/main/res/layout/activity_main.xml
@@ -0,0 +1,17 @@
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:paddingLeft="@dimen/activity_horizontal_margin"
+    android:paddingRight="@dimen/activity_horizontal_margin"
+    android:paddingTop="@dimen/activity_vertical_margin"
+    android:paddingBottom="@dimen/activity_vertical_margin"
+    tools:context="com.example.android.wearable.elizachat.MainActivity$PlaceholderFragment"
+    android:orientation="vertical" >
+
+    <TextView
+        android:id="@+id/history"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"/>
+
+</ScrollView>
diff --git a/samples/wearable/ElizaChat/src/main/res/menu/main.xml b/samples/wearable/ElizaChat/src/main/res/menu/main.xml
new file mode 100644
index 0000000..2ec4cf7
--- /dev/null
+++ b/samples/wearable/ElizaChat/src/main/res/menu/main.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+    <item
+        android:id="@+id/action_stop_service"
+        android:orderInCategory="100"
+        android:showAsAction="always|withText"
+        android:title="@string/stop_service" />
+
+</menu>
\ No newline at end of file
diff --git a/samples/wearable/ElizaChat/src/main/res/mipmap-hdpi/ic_app_eliza.png b/samples/wearable/ElizaChat/src/main/res/mipmap-hdpi/ic_app_eliza.png
new file mode 100644
index 0000000..1bdb147
--- /dev/null
+++ b/samples/wearable/ElizaChat/src/main/res/mipmap-hdpi/ic_app_eliza.png
Binary files differ
diff --git a/samples/wearable/ElizaChat/src/main/res/mipmap-mdpi/ic_app_eliza.png b/samples/wearable/ElizaChat/src/main/res/mipmap-mdpi/ic_app_eliza.png
new file mode 100644
index 0000000..2e0e198
--- /dev/null
+++ b/samples/wearable/ElizaChat/src/main/res/mipmap-mdpi/ic_app_eliza.png
Binary files differ
diff --git a/samples/wearable/ElizaChat/src/main/res/mipmap-xhdpi/ic_app_eliza.png b/samples/wearable/ElizaChat/src/main/res/mipmap-xhdpi/ic_app_eliza.png
new file mode 100644
index 0000000..8d0f436
--- /dev/null
+++ b/samples/wearable/ElizaChat/src/main/res/mipmap-xhdpi/ic_app_eliza.png
Binary files differ
diff --git a/samples/wearable/ElizaChat/src/main/res/mipmap-xxhdpi/ic_app_eliza.png b/samples/wearable/ElizaChat/src/main/res/mipmap-xxhdpi/ic_app_eliza.png
new file mode 100644
index 0000000..e72b967
--- /dev/null
+++ b/samples/wearable/ElizaChat/src/main/res/mipmap-xxhdpi/ic_app_eliza.png
Binary files differ
diff --git a/samples/wearable/ElizaChat/src/main/res/mipmap-xxxhdpi/ic_app_eliza.png b/samples/wearable/ElizaChat/src/main/res/mipmap-xxxhdpi/ic_app_eliza.png
new file mode 100644
index 0000000..06ea079
--- /dev/null
+++ b/samples/wearable/ElizaChat/src/main/res/mipmap-xxxhdpi/ic_app_eliza.png
Binary files differ
diff --git a/samples/wearable/ElizaChat/src/main/res/values/dimens.xml b/samples/wearable/ElizaChat/src/main/res/values/dimens.xml
new file mode 100644
index 0000000..47c8224
--- /dev/null
+++ b/samples/wearable/ElizaChat/src/main/res/values/dimens.xml
@@ -0,0 +1,5 @@
+<resources>
+    <!-- Default screen margins, per the Android Design guidelines. -->
+    <dimen name="activity_horizontal_margin">16dp</dimen>
+    <dimen name="activity_vertical_margin">16dp</dimen>
+</resources>
diff --git a/samples/wearable/ElizaChat/src/main/res/values/strings.xml b/samples/wearable/ElizaChat/src/main/res/values/strings.xml
new file mode 100644
index 0000000..20a31d6
--- /dev/null
+++ b/samples/wearable/ElizaChat/src/main/res/values/strings.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+    <string name="app_name">ElizaChat</string>
+    <string name="send_notification">Send notification!</string>
+    <string name="eliza">Eliza</string>
+    <string name="answer_eliza">Answer Eliza</string>
+    <string name="reply">Reply</string>
+    <string name="stop_service">End Chat Session</string>
+
+</resources>
diff --git a/samples/wearable/ElizaChat/src/main/res/values/styles.xml b/samples/wearable/ElizaChat/src/main/res/values/styles.xml
new file mode 100644
index 0000000..ff6c9d2
--- /dev/null
+++ b/samples/wearable/ElizaChat/src/main/res/values/styles.xml
@@ -0,0 +1,8 @@
+<resources>
+
+    <!-- Base application theme. -->
+    <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
+        <!-- Customize your theme here. -->
+    </style>
+
+</resources>
diff --git a/samples/wearable/FindMyPhone/Application/build.gradle b/samples/wearable/FindMyPhone/Application/build.gradle
new file mode 100644
index 0000000..7de0d36
--- /dev/null
+++ b/samples/wearable/FindMyPhone/Application/build.gradle
@@ -0,0 +1,30 @@
+apply plugin: 'android'
+
+android {
+    compileSdkVersion 20
+    buildToolsVersion '20'
+
+    defaultConfig {
+        minSdkVersion 18
+        targetSdkVersion 20
+        versionCode 1
+        versionName "1.0"
+    }
+
+    buildTypes {
+        release {
+            runProguard false
+            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
+        }
+    }
+
+    aaptOptions {
+        noCompress 'apk'
+    }
+}
+
+dependencies {
+    compile 'com.google.android.gms:play-services:5.0.+@aar'
+    compile "com.android.support:support-v4:20.0.+"
+    wearApp project(':Wearable')
+}
\ No newline at end of file
diff --git a/samples/wearable/FindMyPhone/Application/proguard-rules.txt b/samples/wearable/FindMyPhone/Application/proguard-rules.txt
new file mode 100644
index 0000000..08e5bdc
--- /dev/null
+++ b/samples/wearable/FindMyPhone/Application/proguard-rules.txt
@@ -0,0 +1,22 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
+-dontwarn android.support.wearable.view.DelayedConfirmationView
+-dontwarn android.support.wearable.view.CircledImageView
diff --git a/samples/wearable/FindMyPhone/Application/project.properties b/samples/wearable/FindMyPhone/Application/project.properties
new file mode 100644
index 0000000..4ab1256
--- /dev/null
+++ b/samples/wearable/FindMyPhone/Application/project.properties
@@ -0,0 +1,14 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-19
diff --git a/samples/wearable/FindMyPhone/Application/src/main/AndroidManifest.xml b/samples/wearable/FindMyPhone/Application/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..97fd35f
--- /dev/null
+++ b/samples/wearable/FindMyPhone/Application/src/main/AndroidManifest.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+          package="com.example.android.wearable.findphone">
+
+    <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="20" />
+
+    <application
+            android:icon="@drawable/ic_launcher"
+            android:label="@string/app_name"
+            android:theme="@android:style/Theme.Holo.Light"
+            android:allowBackup="true">
+
+        <meta-data
+                android:name="com.google.android.gms.version"
+                android:value="@integer/google_play_services_version" />
+
+        <service
+            android:name="com.example.android.wearable.findphone.SoundAlarmListenerService" >
+            <intent-filter>
+                <action android:name="com.google.android.gms.wearable.BIND_LISTENER" />
+            </intent-filter>
+        </service>
+
+    </application>
+</manifest>
diff --git a/samples/wearable/FindMyPhone/Application/src/main/java/com/example/android/wearable/findphone/SoundAlarmListenerService.java b/samples/wearable/FindMyPhone/Application/src/main/java/com/example/android/wearable/findphone/SoundAlarmListenerService.java
new file mode 100644
index 0000000..c6dd460
--- /dev/null
+++ b/samples/wearable/FindMyPhone/Application/src/main/java/com/example/android/wearable/findphone/SoundAlarmListenerService.java
@@ -0,0 +1,85 @@
+package com.example.android.wearable.findphone;
+
+import android.media.AudioManager;
+import android.media.MediaPlayer;
+import android.media.RingtoneManager;
+import android.net.Uri;
+import android.util.Log;
+
+import com.google.android.gms.wearable.DataEvent;
+import com.google.android.gms.wearable.DataEventBuffer;
+import com.google.android.gms.wearable.DataMap;
+import com.google.android.gms.wearable.WearableListenerService;
+
+import java.io.IOException;
+
+/**
+ * Listens for disconnection from home device.
+ */
+public class SoundAlarmListenerService extends WearableListenerService {
+
+    private static final String TAG = "ExampleFindPhoneApp";
+
+    private static final String FIELD_ALARM_ON = "alarm_on";
+
+    private AudioManager mAudioManager;
+    private static int mOrigVolume;
+    private int mMaxVolume;
+    private Uri mAlarmSound;
+    private MediaPlayer mMediaPlayer;
+
+    @Override
+    public void onCreate() {
+        super.onCreate();
+        mAudioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
+        mOrigVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_ALARM);
+        mMaxVolume = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM);
+        mAlarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
+        mMediaPlayer = new MediaPlayer();
+    }
+
+    @Override
+    public void onDestroy() {
+        // Reset the alarm volume to the user's original setting.
+        mAudioManager.setStreamVolume(AudioManager.STREAM_ALARM, mOrigVolume, 0);
+        mMediaPlayer.release();
+        super.onDestroy();
+    }
+
+    @Override
+    public void onDataChanged(DataEventBuffer dataEvents) {
+        if (Log.isLoggable(TAG, Log.DEBUG)) {
+            Log.d(TAG, "onDataChanged: " + dataEvents + " for " + getPackageName());
+        }
+        for (DataEvent event : dataEvents) {
+            if (event.getType() == DataEvent.TYPE_DELETED) {
+                Log.i(TAG, event + " deleted");
+            } else if (event.getType() == DataEvent.TYPE_CHANGED) {
+                Boolean alarmOn =
+                        DataMap.fromByteArray(event.getDataItem().getData()).get(FIELD_ALARM_ON);
+                if (alarmOn) {
+                    mOrigVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_ALARM);
+                    mMediaPlayer.reset();
+                    // Sound alarm at max volume.
+                    mAudioManager.setStreamVolume(AudioManager.STREAM_ALARM, mMaxVolume, 0);
+                    mMediaPlayer.setAudioStreamType(AudioManager.STREAM_ALARM);
+                    try {
+                        mMediaPlayer.setDataSource(getApplicationContext(), mAlarmSound);
+                        mMediaPlayer.prepare();
+                    } catch (IOException e) {
+                        Log.e(TAG, "Failed to prepare media player to play alarm.", e);
+                    }
+                    mMediaPlayer.start();
+                } else {
+                    // Reset the alarm volume to the user's original setting.
+                    mAudioManager.setStreamVolume(AudioManager.STREAM_ALARM, mOrigVolume, 0);
+                    if (mMediaPlayer.isPlaying()) {
+                        mMediaPlayer.stop();
+                    }
+                }
+            }
+        }
+        dataEvents.close();
+    }
+
+}
diff --git a/samples/wearable/FindMyPhone/Application/src/main/res/drawable-hdpi/ic_launcher.png b/samples/wearable/FindMyPhone/Application/src/main/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 0000000..43254bd
--- /dev/null
+++ b/samples/wearable/FindMyPhone/Application/src/main/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/FindMyPhone/Application/src/main/res/drawable-mdpi/ic_launcher.png b/samples/wearable/FindMyPhone/Application/src/main/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 0000000..de255d6
--- /dev/null
+++ b/samples/wearable/FindMyPhone/Application/src/main/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/FindMyPhone/Application/src/main/res/drawable-xhdpi/ic_launcher.png b/samples/wearable/FindMyPhone/Application/src/main/res/drawable-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..5a849da
--- /dev/null
+++ b/samples/wearable/FindMyPhone/Application/src/main/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/FindMyPhone/Application/src/main/res/drawable-xxhdpi/ic_launcher.png b/samples/wearable/FindMyPhone/Application/src/main/res/drawable-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..96a7cb8
--- /dev/null
+++ b/samples/wearable/FindMyPhone/Application/src/main/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/FindMyPhone/Application/src/main/res/values/strings.xml b/samples/wearable/FindMyPhone/Application/src/main/res/values/strings.xml
new file mode 100644
index 0000000..faf03ef
--- /dev/null
+++ b/samples/wearable/FindMyPhone/Application/src/main/res/values/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+    <string name="app_name">Find My Phone</string>
+
+</resources>
\ No newline at end of file
diff --git a/samples/wearable/FindMyPhone/Wearable/build.gradle b/samples/wearable/FindMyPhone/Wearable/build.gradle
new file mode 100644
index 0000000..7a81345
--- /dev/null
+++ b/samples/wearable/FindMyPhone/Wearable/build.gradle
@@ -0,0 +1,26 @@
+apply plugin: 'android'
+
+android {
+    compileSdkVersion 20
+    buildToolsVersion '20'
+
+    defaultConfig {
+        minSdkVersion 20
+        targetSdkVersion 20
+        versionCode 1
+        versionName "1.0"
+    }
+
+    buildTypes {
+        release {
+            runProguard false
+            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
+        }
+    }
+}
+
+dependencies {
+    compile 'com.google.android.gms:play-services:5.+@aar'
+    compile "com.android.support:support-v13:20.0.+"
+    compile "com.google.android.support:wearable:1.0.+"
+}
\ No newline at end of file
diff --git a/samples/wearable/FindMyPhone/Wearable/proguard-rules.txt b/samples/wearable/FindMyPhone/Wearable/proguard-rules.txt
new file mode 100644
index 0000000..08e5bdc
--- /dev/null
+++ b/samples/wearable/FindMyPhone/Wearable/proguard-rules.txt
@@ -0,0 +1,22 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
+-dontwarn android.support.wearable.view.DelayedConfirmationView
+-dontwarn android.support.wearable.view.CircledImageView
diff --git a/samples/wearable/FindMyPhone/Wearable/project.properties b/samples/wearable/FindMyPhone/Wearable/project.properties
new file mode 100644
index 0000000..4ab1256
--- /dev/null
+++ b/samples/wearable/FindMyPhone/Wearable/project.properties
@@ -0,0 +1,14 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-19
diff --git a/samples/wearable/FindMyPhone/Wearable/src/main/AndroidManifest.xml b/samples/wearable/FindMyPhone/Wearable/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..4208898
--- /dev/null
+++ b/samples/wearable/FindMyPhone/Wearable/src/main/AndroidManifest.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.example.android.wearable.findphone" >
+
+    <uses-sdk android:minSdkVersion="20" android:targetSdkVersion="20" />
+    <uses-permission android:name="android.permission.VIBRATE" />
+
+    <application
+            android:allowBackup="true"
+            android:icon="@drawable/ic_launcher"
+            android:label="@string/app_name"
+            android:theme="@android:style/Theme.DeviceDefault" >
+
+        <meta-data
+            android:name="com.google.android.gms.version"
+            android:value="@integer/google_play_services_version" />
+
+        <service android:name=".DisconnectListenerService" >
+            <intent-filter>
+                <action android:name="com.google.android.gms.wearable.BIND_LISTENER" />
+            </intent-filter>
+        </service>
+
+        <service android:name="com.example.android.wearable.findphone.FindPhoneService"/>
+
+        <activity
+                android:name=".FindPhoneActivity"
+                android:label="@string/app_name" >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN"/>
+                <category android:name="android.intent.category.LAUNCHER"/>
+            </intent-filter>
+        </activity>
+    </application>
+
+</manifest>
diff --git a/samples/wearable/FindMyPhone/Wearable/src/main/java/com/example/android/wearable/findphone/DisconnectListenerService.java b/samples/wearable/FindMyPhone/Wearable/src/main/java/com/example/android/wearable/findphone/DisconnectListenerService.java
new file mode 100644
index 0000000..dacd608
--- /dev/null
+++ b/samples/wearable/FindMyPhone/Wearable/src/main/java/com/example/android/wearable/findphone/DisconnectListenerService.java
@@ -0,0 +1,39 @@
+package com.example.android.wearable.findphone;
+
+import android.app.Notification;
+import android.app.NotificationManager;
+
+import com.google.android.gms.wearable.WearableListenerService;
+
+/**
+ * Listens for disconnection from home device.
+ */
+public class DisconnectListenerService extends WearableListenerService {
+
+    private static final String TAG = "ExampleFindPhoneApp";
+
+    private static final int FORGOT_PHONE_NOTIFICATION_ID = 1;
+
+    @Override
+    public void onPeerDisconnected(com.google.android.gms.wearable.Node peer) {
+        // Create a "forgot phone" notification when phone connection is broken.
+        Notification.Builder notificationBuilder = new Notification.Builder(this)
+                .setContentTitle(getString(R.string.left_phone_title))
+                .setContentText(getString(R.string.left_phone_content))
+                .setVibrate(new long[] {0, 200})  // Vibrate for 200 milliseconds.
+                .setSmallIcon(R.drawable.ic_launcher)
+                .setLocalOnly(true)
+                .setPriority(Notification.PRIORITY_MAX);
+        Notification card = notificationBuilder.build();
+        ((NotificationManager) getSystemService(NOTIFICATION_SERVICE))
+                .notify(FORGOT_PHONE_NOTIFICATION_ID, card);
+    }
+
+    @Override
+    public void onPeerConnected(com.google.android.gms.wearable.Node peer) {
+        // Remove the "forgot phone" notification when connection is restored.
+        ((NotificationManager) getSystemService(NOTIFICATION_SERVICE))
+                .cancel(FORGOT_PHONE_NOTIFICATION_ID);
+    }
+
+}
diff --git a/samples/wearable/FindMyPhone/Wearable/src/main/java/com/example/android/wearable/findphone/FindPhoneActivity.java b/samples/wearable/FindMyPhone/Wearable/src/main/java/com/example/android/wearable/findphone/FindPhoneActivity.java
new file mode 100644
index 0000000..10e1345
--- /dev/null
+++ b/samples/wearable/FindMyPhone/Wearable/src/main/java/com/example/android/wearable/findphone/FindPhoneActivity.java
@@ -0,0 +1,71 @@
+package com.example.android.wearable.findphone;
+
+import android.app.Activity;
+import android.app.Notification;
+import android.app.Notification.Action;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.text.Spannable;
+import android.text.SpannableString;
+import android.text.style.RelativeSizeSpan;
+
+
+public class FindPhoneActivity extends Activity {
+
+    private static final int FIND_PHONE_NOTIFICATION_ID = 2;
+    private static Notification.Builder notification;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        // Create a notification with an action to toggle an alarm on the phone.
+        Intent toggleAlarmOperation = new Intent(this, FindPhoneService.class);
+        toggleAlarmOperation.setAction(FindPhoneService.ACTION_TOGGLE_ALARM);
+        PendingIntent toggleAlarmIntent = PendingIntent.getService(this, 0, toggleAlarmOperation,
+                PendingIntent.FLAG_CANCEL_CURRENT);
+        Action alarmAction = new Action(R.drawable.alarm_action_icon, "", toggleAlarmIntent);
+        // This intent turns off the alarm if the user dismisses the card from the wearable.
+        Intent cancelAlarmOperation = new Intent(this, FindPhoneService.class);
+        cancelAlarmOperation.setAction(FindPhoneService.ACTION_CANCEL_ALARM);
+        PendingIntent cancelAlarmIntent = PendingIntent.getService(this, 0, cancelAlarmOperation,
+                PendingIntent.FLAG_CANCEL_CURRENT);
+        // Use a spannable string for the notification title to resize it.
+        SpannableString title = new SpannableString(getString(R.string.app_name));
+        title.setSpan(new RelativeSizeSpan(0.85f), 0, title.length(), Spannable.SPAN_POINT_MARK);
+        notification = new Notification.Builder(this)
+                .setContentTitle(title)
+                .setContentText(getString(R.string.turn_alarm_on))
+                .setSmallIcon(R.drawable.ic_launcher)
+                .setVibrate(new long[] {0, 50})  // Vibrate to bring card to top of stream.
+                .setDeleteIntent(cancelAlarmIntent)
+                .extend(new Notification.WearableExtender()
+                        .addAction(alarmAction)
+                        .setContentAction(0)
+                        .setHintHideIcon(true))
+                .setLocalOnly(true)
+                .setPriority(Notification.PRIORITY_MAX);
+        ((NotificationManager) getSystemService(NOTIFICATION_SERVICE))
+                .notify(FIND_PHONE_NOTIFICATION_ID, notification.build());
+
+        finish();
+    }
+
+    /**
+     * Updates the text on the wearable notification. This is used so the notification reflects the
+     * current state of the alarm on the phone. For instance, if the alarm is turned on, the
+     * notification text indicates that the user can tap it to turn it off, and vice-versa.
+     *
+     * @param context
+     * @param notificationText The new text to display on the wearable notification.
+     */
+    public static void updateNotification(Context context, String notificationText) {
+        notification.setContentText(notificationText);
+        ((NotificationManager) context.getSystemService(NOTIFICATION_SERVICE))
+                .notify(FIND_PHONE_NOTIFICATION_ID, notification.build());
+    }
+
+}
\ No newline at end of file
diff --git a/samples/wearable/FindMyPhone/Wearable/src/main/java/com/example/android/wearable/findphone/FindPhoneService.java b/samples/wearable/FindMyPhone/Wearable/src/main/java/com/example/android/wearable/findphone/FindPhoneService.java
new file mode 100644
index 0000000..df0a724
--- /dev/null
+++ b/samples/wearable/FindMyPhone/Wearable/src/main/java/com/example/android/wearable/findphone/FindPhoneService.java
@@ -0,0 +1,105 @@
+package com.example.android.wearable.findphone;
+
+import android.app.IntentService;
+import android.content.Intent;
+import android.os.Bundle;
+import android.util.Log;
+
+import com.google.android.gms.common.ConnectionResult;
+import com.google.android.gms.common.api.GoogleApiClient;
+import com.google.android.gms.wearable.DataItemBuffer;
+import com.google.android.gms.wearable.DataMap;
+import com.google.android.gms.wearable.PutDataMapRequest;
+import com.google.android.gms.wearable.Wearable;
+
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Creates a sound on the paired phone to find it.
+ */
+public class FindPhoneService extends IntentService implements GoogleApiClient.ConnectionCallbacks,
+        GoogleApiClient.OnConnectionFailedListener {
+
+    private static final String TAG = "ExampleFindPhoneApp";
+
+    private static final String FIELD_ALARM_ON = "alarm_on";
+    private static final String PATH_SOUND_ALARM = "/sound_alarm";
+    public static final String ACTION_TOGGLE_ALARM = "action_toggle_alarm";
+    public static final String ACTION_CANCEL_ALARM = "action_alarm_off";
+
+    // Timeout for making a connection to GoogleApiClient (in milliseconds).
+    private static final long CONNECTION_TIME_OUT_MS = 100;
+    private GoogleApiClient mGoogleApiClient;
+
+    public FindPhoneService() {
+        super(FindPhoneService.class.getSimpleName());
+    }
+
+    @Override
+    public void onCreate() {
+        super.onCreate();
+        mGoogleApiClient = new GoogleApiClient.Builder(this)
+                .addApi(Wearable.API)
+                .addConnectionCallbacks(this)
+                .addOnConnectionFailedListener(this)
+                .build();
+    }
+
+    @Override
+    protected void onHandleIntent(Intent intent) {
+        mGoogleApiClient.blockingConnect(CONNECTION_TIME_OUT_MS, TimeUnit.MILLISECONDS);
+        if (Log.isLoggable(TAG, Log.VERBOSE)) {
+            Log.v(TAG, "FindPhoneService.onHandleIntent");
+        }
+        if (mGoogleApiClient.isConnected()) {
+            // Set the alarm off by default.
+            boolean alarmOn = false;
+            if (intent.getAction().equals(ACTION_TOGGLE_ALARM)) {
+                // Get current state of the alarm.
+                DataItemBuffer result = Wearable.DataApi.getDataItems(mGoogleApiClient).await();
+                if (result.getStatus().isSuccess()) {
+                    if (result.getCount() == 1) {
+                        alarmOn = DataMap.fromByteArray(result.get(0).getData())
+                                .getBoolean(FIELD_ALARM_ON, false);
+                    } else {
+                        Log.e(TAG, "Unexpected number of DataItems found.\n"
+                                 + "\tExpected: 1\n"
+                                 + "\tActual: " + result.getCount());
+                    }
+                } else if (Log.isLoggable(TAG, Log.DEBUG)) {
+                    Log.d(TAG, "onHandleIntent: failed to get current alarm state");
+                }
+                result.close();
+                // Toggle alarm.
+                alarmOn = !alarmOn;
+                // Change notification text based on new value of alarmOn.
+                String notificationText = alarmOn ? getString(R.string.turn_alarm_off)
+                                                  : getString(R.string.turn_alarm_on);
+                FindPhoneActivity.updateNotification(this, notificationText);
+            }
+            // Use alarmOn boolean to update the DataItem - phone will respond accordingly
+            // when it receives the change.
+            PutDataMapRequest putDataMapRequest = PutDataMapRequest.create(PATH_SOUND_ALARM);
+            putDataMapRequest.getDataMap().putBoolean(FIELD_ALARM_ON, alarmOn);
+            Wearable.DataApi.putDataItem(mGoogleApiClient, putDataMapRequest.asPutDataRequest())
+                    .await();
+        } else {
+            Log.e(TAG, "Failed to toggle alarm on phone - Client disconnected from Google Play "
+                     + "Services");
+        }
+        mGoogleApiClient.disconnect();
+    }
+
+    @Override
+    public void onConnected(Bundle connectionHint) {
+    }
+
+    @Override
+    public void onConnectionSuspended(int cause) {
+    }
+
+    @Override
+    public void onConnectionFailed(ConnectionResult result) {
+    }
+
+}
diff --git a/samples/wearable/FindMyPhone/Wearable/src/main/res/drawable-hdpi/alarm_action_icon.png b/samples/wearable/FindMyPhone/Wearable/src/main/res/drawable-hdpi/alarm_action_icon.png
new file mode 100644
index 0000000..4331a51
--- /dev/null
+++ b/samples/wearable/FindMyPhone/Wearable/src/main/res/drawable-hdpi/alarm_action_icon.png
Binary files differ
diff --git a/samples/wearable/FindMyPhone/Wearable/src/main/res/drawable-hdpi/ic_launcher.png b/samples/wearable/FindMyPhone/Wearable/src/main/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 0000000..43254bd
--- /dev/null
+++ b/samples/wearable/FindMyPhone/Wearable/src/main/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/FindMyPhone/Wearable/src/main/res/drawable-mdpi/ic_launcher.png b/samples/wearable/FindMyPhone/Wearable/src/main/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 0000000..de255d6
--- /dev/null
+++ b/samples/wearable/FindMyPhone/Wearable/src/main/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/FindMyPhone/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png b/samples/wearable/FindMyPhone/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..5a849da
--- /dev/null
+++ b/samples/wearable/FindMyPhone/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/FindMyPhone/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png b/samples/wearable/FindMyPhone/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..96a7cb8
--- /dev/null
+++ b/samples/wearable/FindMyPhone/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/FindMyPhone/Wearable/src/main/res/values/strings.xml b/samples/wearable/FindMyPhone/Wearable/src/main/res/values/strings.xml
new file mode 100644
index 0000000..b72dc82
--- /dev/null
+++ b/samples/wearable/FindMyPhone/Wearable/src/main/res/values/strings.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+    <string name="app_name">Find My Phone</string>
+    <string name="left_phone_title">Forgetting something?</string>
+    <string name="left_phone_content">You may have left your phone behind.</string>
+    <string name="turn_alarm_on">Tap to sound an alarm on phone.</string>
+    <string name="turn_alarm_off">Tap to stop the alarm.</string>
+
+</resources>
diff --git a/samples/wearable/FindMyPhone/build.gradle b/samples/wearable/FindMyPhone/build.gradle
new file mode 100644
index 0000000..f9e56ee
--- /dev/null
+++ b/samples/wearable/FindMyPhone/build.gradle
@@ -0,0 +1,16 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+
+buildscript {
+    repositories {
+        mavenCentral()
+    }
+    dependencies {
+        classpath 'com.android.tools.build:gradle:0.11.+'
+    }
+}
+
+allprojects {
+    repositories {
+        mavenCentral()
+    }
+}
\ No newline at end of file
diff --git a/samples/wearable/FindMyPhone/gradle.properties b/samples/wearable/FindMyPhone/gradle.properties
new file mode 100644
index 0000000..5d08ba7
--- /dev/null
+++ b/samples/wearable/FindMyPhone/gradle.properties
@@ -0,0 +1,18 @@
+# Project-wide Gradle settings.
+
+# IDE (e.g. Android Studio) users:
+# Settings specified in this file will override any Gradle settings
+# configured through the IDE.
+
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+# Default value: -Xmx10248m -XX:MaxPermSize=256m
+# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
+
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
\ No newline at end of file
diff --git a/samples/wearable/FindMyPhone/gradle/wrapper/gradle-wrapper.jar b/samples/wearable/FindMyPhone/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..5838598
--- /dev/null
+++ b/samples/wearable/FindMyPhone/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/samples/wearable/FindMyPhone/gradle/wrapper/gradle-wrapper.properties b/samples/wearable/FindMyPhone/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..e83e460
--- /dev/null
+++ b/samples/wearable/FindMyPhone/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Fri Mar 14 14:02:22 PDT 2014
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=http\://services.gradle.org/distributions/gradle-1.11-all.zip
diff --git a/samples/wearable/FindMyPhone/gradlew b/samples/wearable/FindMyPhone/gradlew
new file mode 100755
index 0000000..91a7e26
--- /dev/null
+++ b/samples/wearable/FindMyPhone/gradlew
@@ -0,0 +1,164 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+##  Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+    echo "$*"
+}
+
+die ( ) {
+    echo
+    echo "$*"
+    echo
+    exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+  CYGWIN* )
+    cygwin=true
+    ;;
+  Darwin* )
+    darwin=true
+    ;;
+  MINGW* )
+    msys=true
+    ;;
+esac
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched.
+if $cygwin ; then
+    [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+fi
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+        PRG="$link"
+    else
+        PRG=`dirname "$PRG"`"/$link"
+    fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >&-
+APP_HOME="`pwd -P`"
+cd "$SAVED" >&-
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+        # IBM's JDK on AIX uses strange locations for the executables
+        JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+        JAVACMD="$JAVA_HOME/bin/java"
+    fi
+    if [ ! -x "$JAVACMD" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+else
+    JAVACMD="java"
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+    MAX_FD_LIMIT=`ulimit -H -n`
+    if [ $? -eq 0 ] ; then
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+            MAX_FD="$MAX_FD_LIMIT"
+        fi
+        ulimit -n $MAX_FD
+        if [ $? -ne 0 ] ; then
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
+        fi
+    else
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+    fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+    # We build the pattern for arguments to be converted via cygpath
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+    SEP=""
+    for dir in $ROOTDIRSRAW ; do
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
+        SEP="|"
+    done
+    OURCYGPATTERN="(^($ROOTDIRS))"
+    # Add a user-defined pattern to the cygpath arguments
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+    fi
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
+    i=0
+    for arg in "$@" ; do
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
+
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+        else
+            eval `echo args$i`="\"$arg\""
+        fi
+        i=$((i+1))
+    done
+    case $i in
+        (0) set -- ;;
+        (1) set -- "$args0" ;;
+        (2) set -- "$args0" "$args1" ;;
+        (3) set -- "$args0" "$args1" "$args2" ;;
+        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+    esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+    JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/samples/wearable/FindMyPhone/gradlew.bat b/samples/wearable/FindMyPhone/gradlew.bat
new file mode 100644
index 0000000..aec9973
--- /dev/null
+++ b/samples/wearable/FindMyPhone/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem  Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/samples/wearable/FindMyPhone/settings.gradle b/samples/wearable/FindMyPhone/settings.gradle
new file mode 100644
index 0000000..f3f25a5
--- /dev/null
+++ b/samples/wearable/FindMyPhone/settings.gradle
@@ -0,0 +1 @@
+include 'Wearable', 'Application'
diff --git a/samples/wearable/Flashlight/Wearable/build.gradle b/samples/wearable/Flashlight/Wearable/build.gradle
new file mode 100644
index 0000000..58ffd2c
--- /dev/null
+++ b/samples/wearable/Flashlight/Wearable/build.gradle
@@ -0,0 +1,29 @@
+apply plugin: 'android'
+
+android {
+    compileSdkVersion 20
+    buildToolsVersion '20'
+
+    defaultConfig {
+        minSdkVersion 20
+        targetSdkVersion 20
+        versionCode 1
+        versionName "1.0"
+    }
+
+    buildTypes {
+        release {
+            runProguard false
+            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
+        }
+    }
+
+    lintOptions {
+        abortOnError false
+    }
+}
+
+dependencies {
+    compile "com.android.support:support-v13:20.0.+"
+    compile "com.google.android.support:wearable:1.0.+"
+}
diff --git a/samples/wearable/Flashlight/Wearable/proguard-rules.txt b/samples/wearable/Flashlight/Wearable/proguard-rules.txt
new file mode 100644
index 0000000..277118a
--- /dev/null
+++ b/samples/wearable/Flashlight/Wearable/proguard-rules.txt
@@ -0,0 +1,44 @@
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add classes here when necessary.
+
+-keep class android.support.wearable.view.WearableListView {
+  private void setScrollAnimator(int);
+  private void setScrollVertically(int);
+}
+-keep class android.support.wearable.view.WearableListView.ViewHolder {
+  private void setFocusPaddingTop(int);
+  private void setFocusPaddingBottom(int);
+}
+
+# GmsCore Proguard rules.
+# See: https://developer.android.com/google/play-services/setup.html
+-keep class * extends java.util.ListResourceBundle {
+    protected Object[][] getContents();
+}
+
+# Keep SafeParcelable value, needed for reflection. This is required to support backwards
+# compatibility of some classes.
+-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
+    public static final *** NULL;
+}
+
+# Keep the names of classes/members we need for client functionality.
+-keepnames @com.google.android.gms.common.annotation.KeepName class *
+-keepclassmembernames class * {
+    @com.google.android.gms.common.annotation.KeepName *;
+}
+
+# Needed for Parcelable/SafeParcelable Creators to not get stripped
+-keepnames class * implements android.os.Parcelable {
+    public static final ** CREATOR;
+}
+
+# End GmsCore Proguard rules.
diff --git a/samples/wearable/Flashlight/Wearable/src/main/AndroidManifest.xml b/samples/wearable/Flashlight/Wearable/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..ee05292
--- /dev/null
+++ b/samples/wearable/Flashlight/Wearable/src/main/AndroidManifest.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+          package="com.example.android.wearable.flashlight" >
+
+    <uses-sdk android:minSdkVersion="20" android:targetSdkVersion="20" />
+
+    <application
+            android:label="@string/app_name"
+            android:icon="@drawable/ic_launcher"
+            android:theme="@android:style/Theme.DeviceDefault" >
+        <activity android:name=".MainActivity"
+                  android:label="@string/app_name"
+                  android:launchMode="singleTop"
+                  android:configChanges="orientation|keyboardHidden">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
+    </application>
+</manifest>
diff --git a/samples/wearable/Flashlight/Wearable/src/main/java/com/example/android/wearable/flashlight/MainActivity.java b/samples/wearable/Flashlight/Wearable/src/main/java/com/example/android/wearable/flashlight/MainActivity.java
new file mode 100644
index 0000000..f32b993
--- /dev/null
+++ b/samples/wearable/Flashlight/Wearable/src/main/java/com/example/android/wearable/flashlight/MainActivity.java
@@ -0,0 +1,109 @@
+package com.example.android.wearable.flashlight;
+
+import android.app.Activity;
+import android.app.Fragment;
+import android.app.FragmentManager;
+import android.os.Bundle;
+import android.support.v13.app.FragmentPagerAdapter;
+import android.support.v4.view.ViewPager;
+import android.support.v4.view.ViewPager.OnPageChangeListener;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import java.util.ArrayList;
+
+/**
+ * Let there be light.
+ */
+public class MainActivity extends Activity {
+
+    private ViewPager mViewPager;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        setContentView(R.layout.main);
+        mViewPager = (ViewPager) findViewById(R.id.pager);
+        final LightFragmentAdapter adapter = new LightFragmentAdapter(getFragmentManager());
+        adapter.addFragment(new WhiteLightFragment());
+        final PartyLightFragment partyFragment = new PartyLightFragment();
+        adapter.addFragment(partyFragment);
+        mViewPager.setAdapter(adapter);
+        mViewPager.setOnPageChangeListener(new OnPageChangeListener() {
+
+            @Override
+            public void onPageSelected(int position) {
+                if (position == 1) {
+                    partyFragment.startCycling();
+                } else {
+                    partyFragment.stopCycling();
+                }
+            }
+
+            @Override
+            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+            }
+
+            @Override
+            public void onPageScrollStateChanged(int state) {
+            }
+        });
+    }
+
+    static class LightFragmentAdapter extends FragmentPagerAdapter {
+        private ArrayList<Fragment> mFragments;
+
+        public LightFragmentAdapter(FragmentManager fm) {
+            super(fm);
+            mFragments = new ArrayList<Fragment>();
+        }
+
+        @Override
+        public Fragment getItem(int position) {
+            return mFragments.get(position);
+        }
+
+        @Override
+        public int getCount() {
+            return mFragments.size();
+        }
+
+        public void addFragment(Fragment fragment) {
+            mFragments.add(fragment);
+            // Update the pager when adding a fragment.
+            notifyDataSetChanged();
+        }
+    }
+
+    static class WhiteLightFragment extends Fragment {
+
+        @Override
+        public View onCreateView(LayoutInflater inflater, ViewGroup container,
+                Bundle savedInstanceState) {
+            return inflater.inflate(R.layout.white_light, container, false);
+        }
+    }
+
+    static class PartyLightFragment extends Fragment {
+
+        private PartyLightView mView;
+
+        @Override
+        public View onCreateView(LayoutInflater inflater, ViewGroup container,
+                Bundle savedInstanceState) {
+            mView = (PartyLightView) inflater.inflate(R.layout.party_light, container, false);
+            return mView;
+        }
+
+        public void startCycling() {
+            mView.startCycling();
+        }
+
+        public void stopCycling() {
+            mView.stopCycling();
+        }
+
+    }
+}
diff --git a/samples/wearable/Flashlight/Wearable/src/main/java/com/example/android/wearable/flashlight/PartyLightView.java b/samples/wearable/Flashlight/Wearable/src/main/java/com/example/android/wearable/flashlight/PartyLightView.java
new file mode 100644
index 0000000..7de1309
--- /dev/null
+++ b/samples/wearable/Flashlight/Wearable/src/main/java/com/example/android/wearable/flashlight/PartyLightView.java
@@ -0,0 +1,104 @@
+package com.example.android.wearable.flashlight;
+
+import android.animation.ArgbEvaluator;
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.os.Handler;
+import android.os.Message;
+import android.util.AttributeSet;
+import android.view.View;
+
+/**
+ * Flashing party lights!
+ */
+public class PartyLightView extends View {
+
+    private int[] mColors = new int[] {
+            Color.RED,
+            Color.GREEN,
+            Color.BLUE,
+            Color.CYAN,
+            Color.MAGENTA
+    };
+
+    private int mFromColorIndex;
+    private int mToColorIndex;
+
+    /**
+     * Value b/t 0 and 1.
+     */
+    private float mProgress;
+
+    private ArgbEvaluator mEvaluator;
+
+    private int mCurrentColor;
+
+    private Handler mHandler;
+
+    public PartyLightView(Context context) {
+        super(context);
+        init();
+    }
+
+    public PartyLightView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        init();
+    }
+
+    @Override
+    protected void onDraw(Canvas canvas) {
+        canvas.drawColor(mCurrentColor);
+        super.onDraw(canvas);
+    }
+
+    public void startCycling() {
+        mHandler.sendEmptyMessage(0);
+    }
+
+    public void stopCycling() {
+        mHandler.removeMessages(0);
+    }
+
+    private void init() {
+        mEvaluator = new ArgbEvaluator();
+        mHandler = new Handler() {
+
+            @Override
+            public void handleMessage(Message msg) {
+                mCurrentColor = getColor(mProgress, mColors[mFromColorIndex],
+                        mColors[mToColorIndex]);
+                postInvalidate();
+                mProgress += 0.1;
+                if (mProgress > 1.0) {
+                    mFromColorIndex = mToColorIndex;
+                    // Find a new color.
+                    mToColorIndex++;
+                    if (mToColorIndex >= mColors.length) {
+                        mToColorIndex = 0;
+                    }
+                }
+                mHandler.sendEmptyMessageDelayed(0, 100);
+            }
+        };
+    }
+
+    private int getColor(float fraction, int colorStart, int colorEnd) {
+        int startInt = colorStart;
+        int startA = (startInt >> 24) & 0xff;
+        int startR = (startInt >> 16) & 0xff;
+        int startG = (startInt >> 8) & 0xff;
+        int startB = startInt & 0xff;
+
+        int endInt = colorEnd;
+        int endA = (endInt >> 24) & 0xff;
+        int endR = (endInt >> 16) & 0xff;
+        int endG = (endInt >> 8) & 0xff;
+        int endB = endInt & 0xff;
+
+        return (startA + (int)(fraction * (endA - startA))) << 24 |
+                (startR + (int)(fraction * (endR - startR))) << 16 |
+                (startG + (int)(fraction * (endG - startG))) << 8 |
+                ((startB + (int)(fraction * (endB - startB))));
+    }
+}
diff --git a/samples/wearable/Flashlight/Wearable/src/main/res/drawable-hdpi/ic_launcher.png b/samples/wearable/Flashlight/Wearable/src/main/res/drawable-hdpi/ic_launcher.png
new file mode 100755
index 0000000..589f229
--- /dev/null
+++ b/samples/wearable/Flashlight/Wearable/src/main/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Flashlight/Wearable/src/main/res/drawable-mdpi/ic_launcher.png b/samples/wearable/Flashlight/Wearable/src/main/res/drawable-mdpi/ic_launcher.png
new file mode 100755
index 0000000..77dd571
--- /dev/null
+++ b/samples/wearable/Flashlight/Wearable/src/main/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Flashlight/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png b/samples/wearable/Flashlight/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png
new file mode 100755
index 0000000..fe34ebe
--- /dev/null
+++ b/samples/wearable/Flashlight/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Flashlight/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png b/samples/wearable/Flashlight/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png
new file mode 100755
index 0000000..ab80bcd
--- /dev/null
+++ b/samples/wearable/Flashlight/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Flashlight/Wearable/src/main/res/layout/main.xml b/samples/wearable/Flashlight/Wearable/src/main/res/layout/main.xml
new file mode 100644
index 0000000..934a922
--- /dev/null
+++ b/samples/wearable/Flashlight/Wearable/src/main/res/layout/main.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.v4.view.ViewPager
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/pager"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="#000"
+    android:keepScreenOn="true"
+    />
diff --git a/samples/wearable/Flashlight/Wearable/src/main/res/layout/party_light.xml b/samples/wearable/Flashlight/Wearable/src/main/res/layout/party_light.xml
new file mode 100644
index 0000000..26d333b
--- /dev/null
+++ b/samples/wearable/Flashlight/Wearable/src/main/res/layout/party_light.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<com.example.android.wearable.flashlight.PartyLightView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    />
diff --git a/samples/wearable/Flashlight/Wearable/src/main/res/layout/white_light.xml b/samples/wearable/Flashlight/Wearable/src/main/res/layout/white_light.xml
new file mode 100644
index 0000000..de3ad9f
--- /dev/null
+++ b/samples/wearable/Flashlight/Wearable/src/main/res/layout/white_light.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<View xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="#fff"
+    />
diff --git a/samples/wearable/Flashlight/Wearable/src/main/res/values/strings.xml b/samples/wearable/Flashlight/Wearable/src/main/res/values/strings.xml
new file mode 100644
index 0000000..06f2453
--- /dev/null
+++ b/samples/wearable/Flashlight/Wearable/src/main/res/values/strings.xml
@@ -0,0 +1,5 @@
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- Name of the wearable app [CHAR LIMIT=NONE] -->
+    <string name="app_name">Flashlight</string>
+
+</resources>
diff --git a/samples/wearable/Flashlight/build.gradle b/samples/wearable/Flashlight/build.gradle
new file mode 100644
index 0000000..4c8f6d8
--- /dev/null
+++ b/samples/wearable/Flashlight/build.gradle
@@ -0,0 +1,16 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+
+buildscript {
+    repositories {
+        mavenCentral()
+    }
+    dependencies {
+        classpath 'com.android.tools.build:gradle:0.11.+'
+    }
+}
+
+allprojects {
+    repositories {
+        mavenCentral()
+    }
+}
diff --git a/samples/wearable/Flashlight/gradle/wrapper/gradle-wrapper.jar b/samples/wearable/Flashlight/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..5838598
--- /dev/null
+++ b/samples/wearable/Flashlight/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/samples/wearable/Flashlight/gradle/wrapper/gradle-wrapper.properties b/samples/wearable/Flashlight/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..e83e460
--- /dev/null
+++ b/samples/wearable/Flashlight/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Fri Mar 14 14:02:22 PDT 2014
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=http\://services.gradle.org/distributions/gradle-1.11-all.zip
diff --git a/samples/wearable/Flashlight/gradlew b/samples/wearable/Flashlight/gradlew
new file mode 100755
index 0000000..91a7e26
--- /dev/null
+++ b/samples/wearable/Flashlight/gradlew
@@ -0,0 +1,164 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+##  Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+    echo "$*"
+}
+
+die ( ) {
+    echo
+    echo "$*"
+    echo
+    exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+  CYGWIN* )
+    cygwin=true
+    ;;
+  Darwin* )
+    darwin=true
+    ;;
+  MINGW* )
+    msys=true
+    ;;
+esac
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched.
+if $cygwin ; then
+    [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+fi
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+        PRG="$link"
+    else
+        PRG=`dirname "$PRG"`"/$link"
+    fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >&-
+APP_HOME="`pwd -P`"
+cd "$SAVED" >&-
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+        # IBM's JDK on AIX uses strange locations for the executables
+        JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+        JAVACMD="$JAVA_HOME/bin/java"
+    fi
+    if [ ! -x "$JAVACMD" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+else
+    JAVACMD="java"
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+    MAX_FD_LIMIT=`ulimit -H -n`
+    if [ $? -eq 0 ] ; then
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+            MAX_FD="$MAX_FD_LIMIT"
+        fi
+        ulimit -n $MAX_FD
+        if [ $? -ne 0 ] ; then
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
+        fi
+    else
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+    fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+    # We build the pattern for arguments to be converted via cygpath
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+    SEP=""
+    for dir in $ROOTDIRSRAW ; do
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
+        SEP="|"
+    done
+    OURCYGPATTERN="(^($ROOTDIRS))"
+    # Add a user-defined pattern to the cygpath arguments
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+    fi
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
+    i=0
+    for arg in "$@" ; do
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
+
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+        else
+            eval `echo args$i`="\"$arg\""
+        fi
+        i=$((i+1))
+    done
+    case $i in
+        (0) set -- ;;
+        (1) set -- "$args0" ;;
+        (2) set -- "$args0" "$args1" ;;
+        (3) set -- "$args0" "$args1" "$args2" ;;
+        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+    esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+    JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/samples/wearable/Flashlight/gradlew.bat b/samples/wearable/Flashlight/gradlew.bat
new file mode 100755
index 0000000..aec9973
--- /dev/null
+++ b/samples/wearable/Flashlight/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem  Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/samples/wearable/Flashlight/settings.gradle b/samples/wearable/Flashlight/settings.gradle
new file mode 100644
index 0000000..1d97d30
--- /dev/null
+++ b/samples/wearable/Flashlight/settings.gradle
@@ -0,0 +1 @@
+include ':Wearable'
diff --git a/samples/wearable/Geofencing/Application/build.gradle b/samples/wearable/Geofencing/Application/build.gradle
new file mode 100644
index 0000000..7de0d36
--- /dev/null
+++ b/samples/wearable/Geofencing/Application/build.gradle
@@ -0,0 +1,30 @@
+apply plugin: 'android'
+
+android {
+    compileSdkVersion 20
+    buildToolsVersion '20'
+
+    defaultConfig {
+        minSdkVersion 18
+        targetSdkVersion 20
+        versionCode 1
+        versionName "1.0"
+    }
+
+    buildTypes {
+        release {
+            runProguard false
+            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
+        }
+    }
+
+    aaptOptions {
+        noCompress 'apk'
+    }
+}
+
+dependencies {
+    compile 'com.google.android.gms:play-services:5.0.+@aar'
+    compile "com.android.support:support-v4:20.0.+"
+    wearApp project(':Wearable')
+}
\ No newline at end of file
diff --git a/samples/wearable/Geofencing/Application/proguard-rules.txt b/samples/wearable/Geofencing/Application/proguard-rules.txt
new file mode 100644
index 0000000..5b89420
--- /dev/null
+++ b/samples/wearable/Geofencing/Application/proguard-rules.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
\ No newline at end of file
diff --git a/samples/wearable/Geofencing/Application/project.properties b/samples/wearable/Geofencing/Application/project.properties
new file mode 100644
index 0000000..4ab1256
--- /dev/null
+++ b/samples/wearable/Geofencing/Application/project.properties
@@ -0,0 +1,14 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-19
diff --git a/samples/wearable/Geofencing/Application/src/main/AndroidManifest.xml b/samples/wearable/Geofencing/Application/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..d56f37d
--- /dev/null
+++ b/samples/wearable/Geofencing/Application/src/main/AndroidManifest.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+          package="com.example.android.wearable.geofencing">
+
+    <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="20"/>
+
+    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
+
+    <application
+            android:icon="@drawable/ic_launcher"
+            android:label="@string/app_name"
+            android:theme="@android:style/Theme.Holo.Light"
+            android:allowBackup="true">
+
+        <meta-data
+                android:name="com.google.android.gms.version"
+                android:value="@integer/google_play_services_version"/>
+
+        <activity
+                android:name=".MainActivity"
+                android:label="@string/app_name"
+                android:theme="@android:style/Theme.Translucent.NoTitleBar"
+                android:excludeFromRecents="true">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN"/>
+                <category android:name="android.intent.category.LAUNCHER"/>
+            </intent-filter>
+        </activity>
+
+        <service
+            android:name=".GeofenceTransitionsIntentService"
+            android:exported="false">
+        </service>
+    </application>
+</manifest>
diff --git a/samples/wearable/Geofencing/Application/src/main/java/com/example/android/wearable/geofencing/Constants.java b/samples/wearable/Geofencing/Application/src/main/java/com/example/android/wearable/geofencing/Constants.java
new file mode 100644
index 0000000..628acf2
--- /dev/null
+++ b/samples/wearable/Geofencing/Application/src/main/java/com/example/android/wearable/geofencing/Constants.java
@@ -0,0 +1,61 @@
+package com.example.android.wearable.geofencing;
+
+import android.net.Uri;
+
+import com.google.android.gms.location.Geofence;
+
+/** Constants used in companion app. */
+public final class Constants {
+
+    private Constants() {
+    }
+
+    public static final String TAG = "ExampleGeofencingApp";
+
+    // Request code to attempt to resolve Google Play services connection failures.
+    public final static int CONNECTION_FAILURE_RESOLUTION_REQUEST = 9000;
+    // Timeout for making a connection to GoogleApiClient (in milliseconds).
+    public static final long CONNECTION_TIME_OUT_MS = 100;
+
+    // For the purposes of this demo, the geofences are hard-coded and should not expire.
+    // An app with dynamically-created geofences would want to include a reasonable expiration time.
+    public static final long GEOFENCE_EXPIRATION_TIME = Geofence.NEVER_EXPIRE;
+
+    // Geofence parameters for the Android building on Google's main campus in Mountain View.
+    public static final String ANDROID_BUILDING_ID = "1";
+    public static final double ANDROID_BUILDING_LATITUDE = 37.420092;
+    public static final double ANDROID_BUILDING_LONGITUDE = -122.083648;
+    public static final float ANDROID_BUILDING_RADIUS_METERS = 60.0f;
+
+    // Geofence parameters for the Yerba Buena Gardens near the Moscone Center in San Francisco.
+    public static final String YERBA_BUENA_ID = "2";
+    public static final double YERBA_BUENA_LATITUDE = 37.784886;
+    public static final double YERBA_BUENA_LONGITUDE = -122.402671;
+    public static final float YERBA_BUENA_RADIUS_METERS = 72.0f;
+
+
+    // The constants below are less interesting than those above.
+
+    // Path for the DataItem containing the last geofence id entered.
+    public static final String GEOFENCE_DATA_ITEM_PATH = "/geofenceid";
+    public static final Uri GEOFENCE_DATA_ITEM_URI =
+            new Uri.Builder().scheme("wear").path(GEOFENCE_DATA_ITEM_PATH).build();
+    public static final String KEY_GEOFENCE_ID = "geofence_id";
+
+    // Keys for flattened geofences stored in SharedPreferences.
+    public static final String KEY_LATITUDE = "com.example.wearable.geofencing.KEY_LATITUDE";
+    public static final String KEY_LONGITUDE = "com.example.wearable.geofencing.KEY_LONGITUDE";
+    public static final String KEY_RADIUS = "com.example.wearable.geofencing.KEY_RADIUS";
+    public static final String KEY_EXPIRATION_DURATION =
+            "com.example.wearable.geofencing.KEY_EXPIRATION_DURATION";
+    public static final String KEY_TRANSITION_TYPE =
+            "com.example.wearable.geofencing.KEY_TRANSITION_TYPE";
+    // The prefix for flattened geofence keys.
+    public static final String KEY_PREFIX = "com.example.wearable.geofencing.KEY";
+
+    // Invalid values, used to test geofence storage when retrieving geofences.
+    public static final long INVALID_LONG_VALUE = -999l;
+    public static final float INVALID_FLOAT_VALUE = -999.0f;
+    public static final int INVALID_INT_VALUE = -999;
+
+}
diff --git a/samples/wearable/Geofencing/Application/src/main/java/com/example/android/wearable/geofencing/GeofenceTransitionsIntentService.java b/samples/wearable/Geofencing/Application/src/main/java/com/example/android/wearable/geofencing/GeofenceTransitionsIntentService.java
new file mode 100644
index 0000000..d60b15d
--- /dev/null
+++ b/samples/wearable/Geofencing/Application/src/main/java/com/example/android/wearable/geofencing/GeofenceTransitionsIntentService.java
@@ -0,0 +1,103 @@
+package com.example.android.wearable.geofencing;
+
+import static com.example.android.wearable.geofencing.Constants.CONNECTION_TIME_OUT_MS;
+import static com.example.android.wearable.geofencing.Constants.GEOFENCE_DATA_ITEM_PATH;
+import static com.example.android.wearable.geofencing.Constants.GEOFENCE_DATA_ITEM_URI;
+import static com.example.android.wearable.geofencing.Constants.KEY_GEOFENCE_ID;
+import static com.example.android.wearable.geofencing.Constants.TAG;
+
+import android.app.IntentService;
+import android.content.Intent;
+import android.os.Bundle;
+import android.util.Log;
+
+import com.google.android.gms.common.ConnectionResult;
+import com.google.android.gms.common.api.GoogleApiClient;
+import com.google.android.gms.location.Geofence;
+import com.google.android.gms.location.LocationClient;
+import com.google.android.gms.wearable.PutDataMapRequest;
+import com.google.android.gms.wearable.Wearable;
+
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Listens for geofence transition changes.
+ */
+public class GeofenceTransitionsIntentService extends IntentService
+        implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {
+
+    private GoogleApiClient mGoogleApiClient;
+
+    public GeofenceTransitionsIntentService() {
+        super(GeofenceTransitionsIntentService.class.getSimpleName());
+    }
+
+    @Override
+    public void onCreate() {
+        super.onCreate();
+        mGoogleApiClient = new GoogleApiClient.Builder(this)
+                .addApi(Wearable.API)
+                .addConnectionCallbacks(this)
+                .addOnConnectionFailedListener(this)
+                .build();
+    }
+
+    /**
+     * Handles incoming intents.
+     * @param intent The Intent sent by Location Services. This Intent is provided to Location
+     *               Services (inside a PendingIntent) when addGeofences() is called.
+     */
+    @Override
+    protected void onHandleIntent(Intent intent) {
+        // First check for errors.
+        if (LocationClient.hasError(intent)) {
+            int errorCode = LocationClient.getErrorCode(intent);
+            Log.e(TAG, "Location Services error: " + errorCode);
+        } else {
+            // Get the type of geofence transition (i.e. enter or exit in this sample).
+            int transitionType = LocationClient.getGeofenceTransition(intent);
+            // Create a DataItem when a user enters one of the geofences. The wearable app will
+            // receive this and create a notification to prompt him/her to check in.
+            if (Geofence.GEOFENCE_TRANSITION_ENTER == transitionType) {
+                // Connect to the Google Api service in preparation for sending a DataItem.
+                mGoogleApiClient.blockingConnect(CONNECTION_TIME_OUT_MS, TimeUnit.MILLISECONDS);
+                // Get the geofence id triggered. Note that only one geofence can be triggered at a
+                // time in this example, but in some cases you might want to consider the full list
+                // of geofences triggered.
+                String triggeredGeofenceId = LocationClient.getTriggeringGeofences(intent).get(0)
+                        .getRequestId();
+                // Create a DataItem with this geofence's id. The wearable can use this to create
+                // a notification.
+                final PutDataMapRequest putDataMapRequest =
+                        PutDataMapRequest.create(GEOFENCE_DATA_ITEM_PATH);
+                putDataMapRequest.getDataMap().putString(KEY_GEOFENCE_ID, triggeredGeofenceId);
+                if (mGoogleApiClient.isConnected()) {
+                    Wearable.DataApi.putDataItem(
+                        mGoogleApiClient, putDataMapRequest.asPutDataRequest()).await();
+                } else {
+                    Log.e(TAG, "Failed to send data item: " + putDataMapRequest
+                             + " - Client disconnected from Google Play Services");
+                }
+                mGoogleApiClient.disconnect();
+            } else if (Geofence.GEOFENCE_TRANSITION_EXIT == transitionType) {
+                // Delete the data item when leaving a geofence region.
+                mGoogleApiClient.blockingConnect(CONNECTION_TIME_OUT_MS, TimeUnit.MILLISECONDS);
+                Wearable.DataApi.deleteDataItems(mGoogleApiClient, GEOFENCE_DATA_ITEM_URI).await();
+                mGoogleApiClient.disconnect();
+            }
+        }
+    }
+
+    @Override
+    public void onConnected(Bundle connectionHint) {
+    }
+
+    @Override
+    public void onConnectionSuspended(int cause) {
+    }
+
+    @Override
+    public void onConnectionFailed(ConnectionResult result) {
+    }
+
+}
diff --git a/samples/wearable/Geofencing/Application/src/main/java/com/example/android/wearable/geofencing/MainActivity.java b/samples/wearable/Geofencing/Application/src/main/java/com/example/android/wearable/geofencing/MainActivity.java
new file mode 100644
index 0000000..c8bf1ff
--- /dev/null
+++ b/samples/wearable/Geofencing/Application/src/main/java/com/example/android/wearable/geofencing/MainActivity.java
@@ -0,0 +1,224 @@
+package com.example.android.wearable.geofencing;
+
+import static com.example.android.wearable.geofencing.Constants.ANDROID_BUILDING_ID;
+import static com.example.android.wearable.geofencing.Constants.ANDROID_BUILDING_LATITUDE;
+import static com.example.android.wearable.geofencing.Constants.ANDROID_BUILDING_LONGITUDE;
+import static com.example.android.wearable.geofencing.Constants.ANDROID_BUILDING_RADIUS_METERS;
+import static com.example.android.wearable.geofencing.Constants.CONNECTION_FAILURE_RESOLUTION_REQUEST;
+import static com.example.android.wearable.geofencing.Constants.GEOFENCE_EXPIRATION_TIME;
+import static com.example.android.wearable.geofencing.Constants.TAG;
+import static com.example.android.wearable.geofencing.Constants.YERBA_BUENA_ID;
+import static com.example.android.wearable.geofencing.Constants.YERBA_BUENA_LATITUDE;
+import static com.example.android.wearable.geofencing.Constants.YERBA_BUENA_LONGITUDE;
+import static com.example.android.wearable.geofencing.Constants.YERBA_BUENA_RADIUS_METERS;
+
+import android.app.Activity;
+import android.app.PendingIntent;
+import android.content.Intent;
+import android.content.IntentSender;
+import android.os.Bundle;
+import android.util.Log;
+import android.widget.Toast;
+
+import com.google.android.gms.common.ConnectionResult;
+import com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks;
+import com.google.android.gms.common.GooglePlayServicesUtil;
+import com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener;
+import com.google.android.gms.location.Geofence;
+import com.google.android.gms.location.LocationClient;
+import com.google.android.gms.location.LocationClient.OnAddGeofencesResultListener;
+import com.google.android.gms.location.LocationStatusCodes;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class MainActivity extends Activity implements ConnectionCallbacks,
+        OnConnectionFailedListener, OnAddGeofencesResultListener {
+
+    // Internal List of Geofence objects. In a real app, these might be provided by an API based on
+    // locations within the user's proximity.
+    List<Geofence> mGeofenceList;
+
+    // These will store hard-coded geofences in this sample app.
+    private SimpleGeofence mAndroidBuildingGeofence;
+    private SimpleGeofence mYerbaBuenaGeofence;
+
+    // Persistent storage for geofences.
+    private SimpleGeofenceStore mGeofenceStorage;
+
+    private LocationClient mLocationClient;
+    // Stores the PendingIntent used to request geofence monitoring.
+    private PendingIntent mGeofenceRequestIntent;
+
+    // Defines the allowable request types (in this example, we only add geofences).
+    private enum REQUEST_TYPE {ADD}
+    private REQUEST_TYPE mRequestType;
+    // Flag that indicates if a request is underway.
+    private boolean mInProgress;
+
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        // Rather than displayng this activity, simply display a toast indicating that the geofence
+        // service is being created. This should happen in less than a second.
+        Toast.makeText(this, getString(R.string.start_geofence_service), Toast.LENGTH_SHORT).show();
+
+        // Instantiate a new geofence storage area.
+        mGeofenceStorage = new SimpleGeofenceStore(this);
+        // Instantiate the current List of geofences.
+        mGeofenceList = new ArrayList<Geofence>();
+        // Start with the request flag set to false.
+        mInProgress = false;
+
+        createGeofences();
+        addGeofences();
+
+        finish();
+    }
+
+    /**
+     * In this sample, the geofences are predetermined and are hard-coded here. A real app might
+     * dynamically create geofences based on the user's location.
+     */
+    public void createGeofences() {
+        // Create internal "flattened" objects containing the geofence data.
+        mAndroidBuildingGeofence = new SimpleGeofence(
+                ANDROID_BUILDING_ID,                // geofenceId.
+                ANDROID_BUILDING_LATITUDE,
+                ANDROID_BUILDING_LONGITUDE,
+                ANDROID_BUILDING_RADIUS_METERS,
+                GEOFENCE_EXPIRATION_TIME,
+                Geofence.GEOFENCE_TRANSITION_ENTER | Geofence.GEOFENCE_TRANSITION_EXIT
+        );
+        mYerbaBuenaGeofence = new SimpleGeofence(
+                YERBA_BUENA_ID,                // geofenceId.
+                YERBA_BUENA_LATITUDE,
+                YERBA_BUENA_LONGITUDE,
+                YERBA_BUENA_RADIUS_METERS,
+                GEOFENCE_EXPIRATION_TIME,
+                Geofence.GEOFENCE_TRANSITION_ENTER | Geofence.GEOFENCE_TRANSITION_EXIT
+        );
+
+        // Store these flat versions in SharedPreferences and add them to the geofence list.
+        mGeofenceStorage.setGeofence(ANDROID_BUILDING_ID, mAndroidBuildingGeofence);
+        mGeofenceStorage.setGeofence(YERBA_BUENA_ID, mYerbaBuenaGeofence);
+        mGeofenceList.add(mAndroidBuildingGeofence.toGeofence());
+        mGeofenceList.add(mYerbaBuenaGeofence.toGeofence());
+    }
+
+    /**
+     * Start a request for geofence monitoring by calling LocationClient.connect().
+     */
+    public void addGeofences() {
+        // Start a request to add geofences.
+        mRequestType = REQUEST_TYPE.ADD;
+        // Test for Google Play services after setting the request type.
+        if (!isGooglePlayServicesAvailable()) {
+            Log.e(TAG, "Unable to add geofences - Google Play services unavailable.");
+            return;
+        }
+        // Create a new location client object. Since this activity class implements
+        // ConnectionCallbacks and OnConnectionFailedListener, it can be used as the listener for
+        // both parameters.
+        mLocationClient = new LocationClient(this, this, this);
+        // If a request is not already underway.
+        if (!mInProgress) {
+            // Indicate that a request is underway.
+            mInProgress = true;
+            // Request a connection from the client to Location Services.
+            mLocationClient.connect();
+        // A request is already underway, so disconnect the client and retry the request.
+        } else {
+            mLocationClient.disconnect();
+            mLocationClient.connect();
+        }
+    }
+
+    @Override
+    public void onConnectionFailed(ConnectionResult connectionResult) {
+        mInProgress = false;
+        // If the error has a resolution, start a Google Play services activity to resolve it.
+        if (connectionResult.hasResolution()) {
+            try {
+                connectionResult.startResolutionForResult(this,
+                        CONNECTION_FAILURE_RESOLUTION_REQUEST);
+            } catch (IntentSender.SendIntentException e) {
+                Log.e(TAG, "Exception while resolving connection error.", e);
+            }
+        } else {
+            int errorCode = connectionResult.getErrorCode();
+            Log.e(TAG, "Connection to Google Play services failed with error code " + errorCode);
+        }
+    }
+
+    /**
+     * Called by Location Services if the location client disconnects.
+     */
+    @Override
+    public void onDisconnected() {
+        // Turn off the request flag.
+        mInProgress = false;
+        // Destroy the current location client.
+        mLocationClient = null;
+    }
+
+    /**
+     * Once the connection is available, send a request to add the Geofences.
+     */
+    @Override
+    public void onConnected(Bundle connectionHint) {
+        // Use mRequestType to determine what action to take. Only ADD is used in this sample.
+        if (REQUEST_TYPE.ADD == mRequestType) {
+            // Get the PendingIntent for the geofence monitoring request.
+            mGeofenceRequestIntent = getGeofenceTransitionPendingIntent();
+            // Send a request to add the current geofences.
+            mLocationClient.addGeofences(mGeofenceList, mGeofenceRequestIntent, this);
+        }
+    }
+
+    /**
+     * Called when request to add geofences is complete, with a result status code.
+     */
+    @Override
+    public void onAddGeofencesResult(int statusCode, String[] geofenceRequestIds) {
+        // Log if adding the geofences was successful.
+        if (LocationStatusCodes.SUCCESS == statusCode) {
+            if (Log.isLoggable(TAG, Log.DEBUG)) {
+                Log.d(TAG, "Added geofences successfully.");
+            }
+        } else {
+            Log.e(TAG, "Failed to add geofences. Status code: " + statusCode);
+        }
+        // Turn off the in progress flag and disconnect the client.
+        mInProgress = false;
+        mLocationClient.disconnect();
+    }
+
+    /**
+     * Checks if Google Play services is available.
+     * @return true if it is.
+     */
+    private boolean isGooglePlayServicesAvailable() {
+        int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
+        if (ConnectionResult.SUCCESS == resultCode) {
+            if (Log.isLoggable(TAG, Log.DEBUG)) {
+                Log.d(TAG, "Google Play services is available.");
+            }
+            return true;
+        } else {
+            Log.e(TAG, "Google Play services is unavailable.");
+            return false;
+        }
+    }
+
+    /**
+     * Create a PendingIntent that triggers GeofenceTransitionIntentService when a geofence
+     * transition occurs.
+     */
+    private PendingIntent getGeofenceTransitionPendingIntent() {
+        Intent intent = new Intent(this, GeofenceTransitionsIntentService.class);
+        return PendingIntent.getService(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
+    }
+
+}
diff --git a/samples/wearable/Geofencing/Application/src/main/java/com/example/android/wearable/geofencing/SimpleGeofence.java b/samples/wearable/Geofencing/Application/src/main/java/com/example/android/wearable/geofencing/SimpleGeofence.java
new file mode 100644
index 0000000..be7e6bd
--- /dev/null
+++ b/samples/wearable/Geofencing/Application/src/main/java/com/example/android/wearable/geofencing/SimpleGeofence.java
@@ -0,0 +1,71 @@
+package com.example.android.wearable.geofencing;
+
+import com.google.android.gms.location.Geofence;
+
+/**
+ * A single Geofence object, defined by its center and radius.
+ */
+public class SimpleGeofence {
+
+    // Instance variables
+    private final String mId;
+    private final double mLatitude;
+    private final double mLongitude;
+    private final float mRadius;
+    private long mExpirationDuration;
+    private int mTransitionType;
+
+    /**
+     * @param geofenceId The Geofence's request ID.
+     * @param latitude Latitude of the Geofence's center in degrees.
+     * @param longitude Longitude of the Geofence's center in degrees.
+     * @param radius Radius of the geofence circle in meters.
+     * @param expiration Geofence expiration duration.
+     * @param transition Type of Geofence transition.
+     */
+    public SimpleGeofence(String geofenceId, double latitude, double longitude, float radius,
+            long expiration, int transition) {
+        // Set the instance fields from the constructor.
+        this.mId = geofenceId;
+        this.mLatitude = latitude;
+        this.mLongitude = longitude;
+        this.mRadius = radius;
+        this.mExpirationDuration = expiration;
+        this.mTransitionType = transition;
+    }
+
+    // Instance field getters.
+    public String getId() {
+        return mId;
+    }
+    public double getLatitude() {
+        return mLatitude;
+    }
+    public double getLongitude() {
+        return mLongitude;
+    }
+    public float getRadius() {
+        return mRadius;
+    }
+    public long getExpirationDuration() {
+        return mExpirationDuration;
+    }
+    public int getTransitionType() {
+        return mTransitionType;
+    }
+
+    /**
+     * Creates a Location Services Geofence object from a SimpleGeofence.
+     * @return A Geofence object.
+     */
+    public Geofence toGeofence() {
+        // Build a new Geofence object.
+        return new Geofence.Builder()
+                .setRequestId(mId)
+                .setTransitionTypes(mTransitionType)
+                .setCircularRegion(mLatitude, mLongitude, mRadius)
+                .setExpirationDuration(mExpirationDuration)
+                .build();
+    }
+
+}
diff --git a/samples/wearable/Geofencing/Application/src/main/java/com/example/android/wearable/geofencing/SimpleGeofenceStore.java b/samples/wearable/Geofencing/Application/src/main/java/com/example/android/wearable/geofencing/SimpleGeofenceStore.java
new file mode 100644
index 0000000..db93a80
--- /dev/null
+++ b/samples/wearable/Geofencing/Application/src/main/java/com/example/android/wearable/geofencing/SimpleGeofenceStore.java
@@ -0,0 +1,108 @@
+package com.example.android.wearable.geofencing;
+
+import static com.example.android.wearable.geofencing.Constants.INVALID_FLOAT_VALUE;
+import static com.example.android.wearable.geofencing.Constants.INVALID_INT_VALUE;
+import static com.example.android.wearable.geofencing.Constants.INVALID_LONG_VALUE;
+import static com.example.android.wearable.geofencing.Constants.KEY_EXPIRATION_DURATION;
+import static com.example.android.wearable.geofencing.Constants.KEY_LATITUDE;
+import static com.example.android.wearable.geofencing.Constants.KEY_LONGITUDE;
+import static com.example.android.wearable.geofencing.Constants.KEY_PREFIX;
+import static com.example.android.wearable.geofencing.Constants.KEY_RADIUS;
+import static com.example.android.wearable.geofencing.Constants.KEY_TRANSITION_TYPE;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+
+/**
+ * Storage for geofence values, implemented in SharedPreferences.
+ */
+public class SimpleGeofenceStore {
+
+    // The SharedPreferences object in which geofences are stored.
+    private final SharedPreferences mPrefs;
+    // The name of the SharedPreferences.
+    private static final String SHARED_PREFERENCES = "SharedPreferences";
+
+    /**
+     * Create the SharedPreferences storage with private access only.
+     */
+    public SimpleGeofenceStore(Context context) {
+        mPrefs = context.getSharedPreferences(SHARED_PREFERENCES, Context.MODE_PRIVATE);
+    }
+
+    /**
+     * Returns a stored geofence by its id, or returns null if it's not found.
+     * @param id The ID of a stored geofence.
+     * @return A SimpleGeofence defined by its center and radius, or null if the ID is invalid.
+     */
+    public SimpleGeofence getGeofence(String id) {
+        // Get the latitude for the geofence identified by id, or INVALID_FLOAT_VALUE if it doesn't
+        // exist (similarly for the other values that follow).
+        double lat = mPrefs.getFloat(getGeofenceFieldKey(id, KEY_LATITUDE),
+                INVALID_FLOAT_VALUE);
+        double lng = mPrefs.getFloat(getGeofenceFieldKey(id, KEY_LONGITUDE),
+                INVALID_FLOAT_VALUE);
+        float radius = mPrefs.getFloat(getGeofenceFieldKey(id, KEY_RADIUS),
+                INVALID_FLOAT_VALUE);
+        long expirationDuration =
+                mPrefs.getLong(getGeofenceFieldKey(id, KEY_EXPIRATION_DURATION),
+                        INVALID_LONG_VALUE);
+        int transitionType = mPrefs.getInt(getGeofenceFieldKey(id, KEY_TRANSITION_TYPE),
+                INVALID_INT_VALUE);
+        // If none of the values is incorrect, return the object.
+        if (lat != INVALID_FLOAT_VALUE
+                && lng != INVALID_FLOAT_VALUE
+                && radius != INVALID_FLOAT_VALUE
+                && expirationDuration != INVALID_LONG_VALUE
+                && transitionType != INVALID_INT_VALUE) {
+            return new SimpleGeofence(id, lat, lng, radius, expirationDuration, transitionType);
+        }
+        // Otherwise, return null.
+        return null;
+    }
+
+    /**
+     * Save a geofence.
+     * @param geofence The SimpleGeofence with the values you want to save in SharedPreferences.
+     */
+    public void setGeofence(String id, SimpleGeofence geofence) {
+        // Get a SharedPreferences editor instance. Among other things, SharedPreferences
+        // ensures that updates are atomic and non-concurrent.
+        SharedPreferences.Editor prefs = mPrefs.edit();
+        // Write the Geofence values to SharedPreferences.
+        prefs.putFloat(getGeofenceFieldKey(id, KEY_LATITUDE), (float) geofence.getLatitude());
+        prefs.putFloat(getGeofenceFieldKey(id, KEY_LONGITUDE), (float) geofence.getLongitude());
+        prefs.putFloat(getGeofenceFieldKey(id, KEY_RADIUS), geofence.getRadius());
+        prefs.putLong(getGeofenceFieldKey(id, KEY_EXPIRATION_DURATION),
+                geofence.getExpirationDuration());
+        prefs.putInt(getGeofenceFieldKey(id, KEY_TRANSITION_TYPE),
+                geofence.getTransitionType());
+        // Commit the changes.
+        prefs.commit();
+    }
+
+    /**
+     * Remove a flattened geofence object from storage by removing all of its keys.
+     */
+    public void clearGeofence(String id) {
+        SharedPreferences.Editor prefs = mPrefs.edit();
+        prefs.remove(getGeofenceFieldKey(id, KEY_LATITUDE));
+        prefs.remove(getGeofenceFieldKey(id, KEY_LONGITUDE));
+        prefs.remove(getGeofenceFieldKey(id, KEY_RADIUS));
+        prefs.remove(getGeofenceFieldKey(id, KEY_EXPIRATION_DURATION));
+        prefs.remove(getGeofenceFieldKey(id, KEY_TRANSITION_TYPE));
+        prefs.commit();
+    }
+
+    /**
+     * Given a Geofence object's ID and the name of a field (for example, KEY_LATITUDE), return
+     * the key name of the object's values in SharedPreferences.
+     * @param id The ID of a Geofence object.
+     * @param fieldName The field represented by the key.
+     * @return The full key name of a value in SharedPreferences.
+     */
+    private String getGeofenceFieldKey(String id, String fieldName) {
+        return KEY_PREFIX + "_" + id + "_" + fieldName;
+    }
+
+}
\ No newline at end of file
diff --git a/samples/wearable/Geofencing/Application/src/main/res/drawable-hdpi/ic_launcher.png b/samples/wearable/Geofencing/Application/src/main/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 0000000..4e3e000
--- /dev/null
+++ b/samples/wearable/Geofencing/Application/src/main/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Geofencing/Application/src/main/res/drawable-mdpi/ic_launcher.png b/samples/wearable/Geofencing/Application/src/main/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 0000000..b405cb2
--- /dev/null
+++ b/samples/wearable/Geofencing/Application/src/main/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Geofencing/Application/src/main/res/drawable-xhdpi/ic_launcher.png b/samples/wearable/Geofencing/Application/src/main/res/drawable-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..61f9d88
--- /dev/null
+++ b/samples/wearable/Geofencing/Application/src/main/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Geofencing/Application/src/main/res/drawable-xxhdpi/ic_launcher.png b/samples/wearable/Geofencing/Application/src/main/res/drawable-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..81c1008
--- /dev/null
+++ b/samples/wearable/Geofencing/Application/src/main/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Geofencing/Application/src/main/res/values/strings.xml b/samples/wearable/Geofencing/Application/src/main/res/values/strings.xml
new file mode 100644
index 0000000..57539b9
--- /dev/null
+++ b/samples/wearable/Geofencing/Application/src/main/res/values/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name">Android Wear Geofencing Example Application</string>
+    <string name="start_geofence_service">Starting geofence transition service</string>
+</resources>
diff --git a/samples/wearable/Geofencing/Wearable/build.gradle b/samples/wearable/Geofencing/Wearable/build.gradle
new file mode 100644
index 0000000..a1921f0
--- /dev/null
+++ b/samples/wearable/Geofencing/Wearable/build.gradle
@@ -0,0 +1,26 @@
+apply plugin: 'android'
+
+android {
+    compileSdkVersion 20
+    buildToolsVersion '20'
+
+    defaultConfig {
+        minSdkVersion 20
+        targetSdkVersion 20
+        versionCode 1
+        versionName "1.0"
+    }
+
+    buildTypes {
+        release {
+            runProguard false
+            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
+        }
+    }
+}
+
+dependencies {
+    compile 'com.google.android.gms:play-services:5.+@aar'
+    compile "com.android.support:support-v4:20.0.+"
+    compile "com.google.android.support:wearable:1.0.+"
+}
\ No newline at end of file
diff --git a/samples/wearable/Geofencing/Wearable/proguard-rules.txt b/samples/wearable/Geofencing/Wearable/proguard-rules.txt
new file mode 100644
index 0000000..f2fe155
--- /dev/null
+++ b/samples/wearable/Geofencing/Wearable/proguard-rules.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
diff --git a/samples/wearable/Geofencing/Wearable/project.properties b/samples/wearable/Geofencing/Wearable/project.properties
new file mode 100644
index 0000000..4ab1256
--- /dev/null
+++ b/samples/wearable/Geofencing/Wearable/project.properties
@@ -0,0 +1,14 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-19
diff --git a/samples/wearable/Geofencing/Wearable/src/main/AndroidManifest.xml b/samples/wearable/Geofencing/Wearable/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..79145cd
--- /dev/null
+++ b/samples/wearable/Geofencing/Wearable/src/main/AndroidManifest.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+        package="com.example.android.wearable.geofencing" >
+
+    <uses-sdk android:minSdkVersion="20" android:targetSdkVersion="20" />
+
+    <application
+            android:icon="@drawable/ic_launcher"
+            android:label="@string/app_name"
+            android:allowBackup="true">
+
+        <meta-data
+                android:name="com.google.android.gms.version"
+                android:value="@integer/google_play_services_version" />
+
+        <service
+                android:name="com.example.android.wearable.geofencing.HomeListenerService" >
+            <intent-filter>
+                <action android:name="com.google.android.gms.wearable.BIND_LISTENER" />
+            </intent-filter>
+        </service>
+        <service android:name=".CheckInAndDeleteDataItemsService"/>
+
+        <activity android:name="android.support.wearable.activity.ConfirmationActivity"/>
+    </application>
+</manifest>
diff --git a/samples/wearable/Geofencing/Wearable/src/main/java/com/example/android/wearable/geofencing/CheckInAndDeleteDataItemsService.java b/samples/wearable/Geofencing/Wearable/src/main/java/com/example/android/wearable/geofencing/CheckInAndDeleteDataItemsService.java
new file mode 100644
index 0000000..ad69293
--- /dev/null
+++ b/samples/wearable/Geofencing/Wearable/src/main/java/com/example/android/wearable/geofencing/CheckInAndDeleteDataItemsService.java
@@ -0,0 +1,108 @@
+package com.example.android.wearable.geofencing;
+
+import com.google.android.gms.common.ConnectionResult;
+import com.google.android.gms.common.api.GoogleApiClient;
+import com.google.android.gms.wearable.DataApi;
+import com.google.android.gms.wearable.Wearable;
+
+import android.app.IntentService;
+import android.app.NotificationManager;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Bundle;
+import android.support.wearable.activity.ConfirmationActivity;
+import android.util.Log;
+
+import java.util.concurrent.TimeUnit;
+
+import static com.example.android.wearable.geofencing.Constants.ACTION_CHECK_IN;
+import static com.example.android.wearable.geofencing.Constants.ACTION_DELETE_DATA_ITEM;
+import static com.example.android.wearable.geofencing.Constants.CONNECTION_TIME_OUT_MS;
+import static com.example.android.wearable.geofencing.Constants.NOTIFICATION_ID;
+import static com.example.android.wearable.geofencing.Constants.TAG;
+
+/**
+ * Handles "Check In" action on the location-based notification. Also deletes orphan DataItems
+ * when a notification is dismissed from the wearable.
+ */
+public class CheckInAndDeleteDataItemsService extends IntentService
+        implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {
+
+    private GoogleApiClient mGoogleApiClient;
+
+    public CheckInAndDeleteDataItemsService() {
+        super(CheckInAndDeleteDataItemsService.class.getSimpleName());
+    }
+
+    @Override
+    public void onCreate() {
+        super.onCreate();
+        mGoogleApiClient = new GoogleApiClient.Builder(this)
+                .addApi(Wearable.API)
+                .addConnectionCallbacks(this)
+                .addOnConnectionFailedListener(this)
+                .build();
+    }
+
+    @Override
+    protected void onHandleIntent(Intent intent) {
+        if (ACTION_CHECK_IN.equals(intent.getAction())) {
+            // In a real app, code for checking in would go here. For this sample, we will simply
+            // display a success animation.
+            startConfirmationActivity(ConfirmationActivity.SUCCESS_ANIMATION,
+                    getString(R.string.check_in_success));
+            // Dismiss the check-in notification.
+            ((NotificationManager) getSystemService(NOTIFICATION_SERVICE)).cancel(NOTIFICATION_ID);
+        } else if (!ACTION_DELETE_DATA_ITEM.equals(intent.getAction())) {
+            // The only possible actions should be checking in or dismissing the notification
+            // (which causes an intent with ACTION_DELETE_DATA_ITEM).
+            Log.e(TAG, "Unrecognized action: " + intent.getAction());
+            return;
+        }
+        // Regardless of the action, delete the DataItem (we are only be handling intents
+        // if the notification is dismissed or if the user has chosen to check in, either of which
+        // would be completed at this point).
+        mGoogleApiClient.blockingConnect(CONNECTION_TIME_OUT_MS, TimeUnit.MILLISECONDS);
+        Uri dataItemUri = intent.getData();
+        if (mGoogleApiClient.isConnected()) {
+            DataApi.DeleteDataItemsResult result = Wearable.DataApi
+                    .deleteDataItems(mGoogleApiClient, dataItemUri).await();
+            if (!result.getStatus().isSuccess()) {
+                Log.e(TAG, "CheckInAndDeleteDataItemsService.onHandleIntent: "
+                         + "Failed to delete dataItem: " + dataItemUri);
+            } else if (Log.isLoggable(TAG, Log.DEBUG)) {
+                Log.d(TAG, "Successfully deleted data item: " + dataItemUri);
+            }
+        } else {
+            Log.e(TAG, "Failed to delete data item: " + dataItemUri
+                     + " - Client disconnected from Google Play Services");
+        }
+        mGoogleApiClient.disconnect();
+    }
+
+    /**
+     * Helper method to create confirmation animations on the wearable.
+     * @param animationType Defined by constants in ConfirmationActivity.
+     * @param message The message to display with the animation.
+     */
+    private void startConfirmationActivity(int animationType, String message) {
+        Intent confirmationActivity = new Intent(this, ConfirmationActivity.class)
+                .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NO_ANIMATION)
+                .putExtra(ConfirmationActivity.EXTRA_ANIMATION_TYPE, animationType)
+                .putExtra(ConfirmationActivity.EXTRA_MESSAGE, message);
+        startActivity(confirmationActivity);
+    }
+
+    @Override
+    public void onConnected(Bundle connectionHint) {
+    }
+
+    @Override
+    public void onConnectionSuspended(int cause) {
+    }
+
+    @Override
+    public void onConnectionFailed(ConnectionResult result) {
+    }
+
+}
\ No newline at end of file
diff --git a/samples/wearable/Geofencing/Wearable/src/main/java/com/example/android/wearable/geofencing/Constants.java b/samples/wearable/Geofencing/Wearable/src/main/java/com/example/android/wearable/geofencing/Constants.java
new file mode 100644
index 0000000..7103a4e
--- /dev/null
+++ b/samples/wearable/Geofencing/Wearable/src/main/java/com/example/android/wearable/geofencing/Constants.java
@@ -0,0 +1,22 @@
+package com.example.android.wearable.geofencing;
+
+/** Constants used in wearable app. */
+public final class Constants {
+
+    private Constants() {
+    }
+
+    public static final String TAG = "ExampleGeofencingApp";
+
+    // Timeout for making a connection to GoogleApiClient (in milliseconds).
+    public static final long CONNECTION_TIME_OUT_MS = 100;
+
+    public static final int NOTIFICATION_ID = 1;
+    public static final String ANDROID_BUILDING_ID = "1";
+    public static final String YERBA_BUENA_ID = "2";
+
+    public static final String ACTION_CHECK_IN = "check_in";
+    public static final String ACTION_DELETE_DATA_ITEM = "delete_data_item";
+    public static final String KEY_GEOFENCE_ID = "geofence_id";
+
+}
diff --git a/samples/wearable/Geofencing/Wearable/src/main/java/com/example/android/wearable/geofencing/HomeListenerService.java b/samples/wearable/Geofencing/Wearable/src/main/java/com/example/android/wearable/geofencing/HomeListenerService.java
new file mode 100644
index 0000000..5ecc8a6
--- /dev/null
+++ b/samples/wearable/Geofencing/Wearable/src/main/java/com/example/android/wearable/geofencing/HomeListenerService.java
@@ -0,0 +1,136 @@
+package com.example.android.wearable.geofencing;
+
+import static com.example.android.wearable.geofencing.Constants.ACTION_CHECK_IN;
+import static com.example.android.wearable.geofencing.Constants.ACTION_DELETE_DATA_ITEM;
+import static com.example.android.wearable.geofencing.Constants.ANDROID_BUILDING_ID;
+import static com.example.android.wearable.geofencing.Constants.KEY_GEOFENCE_ID;
+import static com.example.android.wearable.geofencing.Constants.NOTIFICATION_ID;
+import static com.example.android.wearable.geofencing.Constants.TAG;
+import static com.example.android.wearable.geofencing.Constants.YERBA_BUENA_ID;
+
+import android.app.Notification;
+import android.app.Notification.Action;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.net.Uri;
+import android.text.Spannable;
+import android.text.SpannableString;
+import android.text.style.RelativeSizeSpan;
+import android.util.Log;
+
+import com.google.android.gms.common.api.GoogleApiClient;
+import com.google.android.gms.wearable.DataEvent;
+import com.google.android.gms.wearable.DataEventBuffer;
+import com.google.android.gms.wearable.DataItem;
+import com.google.android.gms.wearable.DataMap;
+import com.google.android.gms.wearable.Wearable;
+import com.google.android.gms.wearable.WearableListenerService;
+
+/**
+ * Listens to DataItem events on the wearable device.
+ */
+public class HomeListenerService extends WearableListenerService {
+
+    private GoogleApiClient mGoogleApiClient;
+
+    @Override
+    public void onCreate() {
+        super.onCreate();
+        mGoogleApiClient = new GoogleApiClient.Builder(this.getApplicationContext())
+                .addApi(Wearable.API)
+                .build();
+        mGoogleApiClient.connect();
+    }
+
+    /**
+     * Listen for DataItems added/deleted from the geofence service running on the companion.
+     */
+    @Override
+    public void onDataChanged(DataEventBuffer dataEvents) {
+        if (Log.isLoggable(TAG, Log.DEBUG)) {
+            Log.d(TAG, "onDataChanged: " + dataEvents + " for " + getPackageName());
+        }
+        for (DataEvent event : dataEvents) {
+            if (event.getType() == DataEvent.TYPE_DELETED) {
+                cancelNotificationForDataItem(event.getDataItem());
+            } else if (event.getType() == DataEvent.TYPE_CHANGED) {
+                // The user has entered a geofence - post a notification!
+                String geofenceId = DataMap.fromByteArray(event.getDataItem().getData())
+                        .getString(KEY_GEOFENCE_ID);
+                postNotificationForGeofenceId(geofenceId, event.getDataItem().getUri());
+            }
+        }
+        dataEvents.close();
+    }
+
+    /**
+     * Deletes the check-in notification when the DataItem is deleted.
+     * @param dataItem Used only for logging in this sample, but could be used to identify which
+     *                 notification to cancel (in this case, there is at most 1 notification).
+     */
+    private void cancelNotificationForDataItem(DataItem dataItem) {
+        if (Log.isLoggable(TAG, Log.VERBOSE)) {
+            Log.v(TAG, "onDataItemDeleted:DataItem=" + dataItem.getUri());
+        }
+        ((NotificationManager) getSystemService(NOTIFICATION_SERVICE)).cancel(NOTIFICATION_ID);
+    }
+
+    /**
+     * Posts a local notification for the given geofence id, with an option to check in.
+     * @param geofenceId The geofence id that the user has triggered.
+     * @param dataItemUri The Uri for the DataItem that triggered this notification. Used to delete
+     *                    this DataItem when the notification is dismissed.
+     */
+    private void postNotificationForGeofenceId(String geofenceId, Uri dataItemUri) {
+        // Use the geofenceId to determine the title and background of the check-in notification.
+        // A SpannableString is used for the notification title for resizing capabilities.
+        SpannableString checkInTitle;
+        Bitmap notificationBackground;
+        if (ANDROID_BUILDING_ID.equals(geofenceId)) {
+            checkInTitle = new SpannableString(getText(R.string.android_building_title));
+            notificationBackground =
+                    BitmapFactory.decodeResource(getResources(), R.drawable.android_building);
+        } else if (YERBA_BUENA_ID.equals(geofenceId)) {
+            checkInTitle = new SpannableString(getText(R.string.yerba_buena_title));
+            notificationBackground =
+                    BitmapFactory.decodeResource(getResources(), R.drawable.yerba_buena);
+        } else {
+            Log.e(TAG, "Unrecognized geofence id: " + geofenceId);
+            return;
+        }
+        // Resize the title to avoid truncation.
+        checkInTitle.setSpan(new RelativeSizeSpan(0.8f), 0, checkInTitle.length(),
+                Spannable.SPAN_POINT_MARK);
+
+        Intent checkInOperation =
+                new Intent(this, CheckInAndDeleteDataItemsService.class).setData(dataItemUri);
+        PendingIntent checkInIntent = PendingIntent.getService(this, 0,
+                checkInOperation.setAction(ACTION_CHECK_IN), PendingIntent.FLAG_CANCEL_CURRENT);
+        PendingIntent deleteDataItemIntent = PendingIntent.getService(this, 1,
+                checkInOperation.setAction(ACTION_DELETE_DATA_ITEM),
+                PendingIntent.FLAG_CANCEL_CURRENT);
+        // This action will be embedded into the notification.
+        Action checkInAction = new Action(R.drawable.ic_action_check_in,
+                getText(R.string.check_in_prompt), checkInIntent);
+
+        Notification notification = new Notification.Builder(this)
+                .setContentTitle(checkInTitle)
+                .setContentText(getText(R.string.check_in_prompt))
+                .setSmallIcon(R.drawable.ic_launcher)
+                .setDeleteIntent(deleteDataItemIntent)
+                .extend(new Notification.WearableExtender()
+                        .setBackground(notificationBackground)
+                        .addAction(checkInAction)
+                        .setContentAction(0)
+                        .setHintHideIcon(true))
+                .setLocalOnly(true)
+                .build();
+
+        ((NotificationManager) getSystemService(NOTIFICATION_SERVICE))
+                .notify(NOTIFICATION_ID, notification);
+    }
+
+}
diff --git a/samples/wearable/Geofencing/Wearable/src/main/res/drawable-hdpi/ic_action_check_in.png b/samples/wearable/Geofencing/Wearable/src/main/res/drawable-hdpi/ic_action_check_in.png
new file mode 100644
index 0000000..f94a1c4
--- /dev/null
+++ b/samples/wearable/Geofencing/Wearable/src/main/res/drawable-hdpi/ic_action_check_in.png
Binary files differ
diff --git a/samples/wearable/Geofencing/Wearable/src/main/res/drawable-hdpi/ic_launcher.png b/samples/wearable/Geofencing/Wearable/src/main/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 0000000..4e3e000
--- /dev/null
+++ b/samples/wearable/Geofencing/Wearable/src/main/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Geofencing/Wearable/src/main/res/drawable-mdpi/ic_launcher.png b/samples/wearable/Geofencing/Wearable/src/main/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 0000000..b405cb2
--- /dev/null
+++ b/samples/wearable/Geofencing/Wearable/src/main/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Geofencing/Wearable/src/main/res/drawable-nodpi/android_building.png b/samples/wearable/Geofencing/Wearable/src/main/res/drawable-nodpi/android_building.png
new file mode 100644
index 0000000..2a28bd4
--- /dev/null
+++ b/samples/wearable/Geofencing/Wearable/src/main/res/drawable-nodpi/android_building.png
Binary files differ
diff --git a/samples/wearable/Geofencing/Wearable/src/main/res/drawable-nodpi/yerba_buena.png b/samples/wearable/Geofencing/Wearable/src/main/res/drawable-nodpi/yerba_buena.png
new file mode 100644
index 0000000..04f39f8
--- /dev/null
+++ b/samples/wearable/Geofencing/Wearable/src/main/res/drawable-nodpi/yerba_buena.png
Binary files differ
diff --git a/samples/wearable/Geofencing/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png b/samples/wearable/Geofencing/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..61f9d88
--- /dev/null
+++ b/samples/wearable/Geofencing/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Geofencing/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png b/samples/wearable/Geofencing/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..81c1008
--- /dev/null
+++ b/samples/wearable/Geofencing/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Geofencing/Wearable/src/main/res/values/strings.xml b/samples/wearable/Geofencing/Wearable/src/main/res/values/strings.xml
new file mode 100644
index 0000000..348b4b6
--- /dev/null
+++ b/samples/wearable/Geofencing/Wearable/src/main/res/values/strings.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name">Android Wear Geofencing Example Application</string>
+    <string name="android_building_title">Android Building</string>
+    <string name="yerba_buena_title">Yerba Buena Gardens</string>
+    <string name="check_in_prompt">Check in here?</string>
+    <string name="check_in_success">Checked In</string>
+</resources>
diff --git a/samples/wearable/Geofencing/build.gradle b/samples/wearable/Geofencing/build.gradle
new file mode 100644
index 0000000..07be865
--- /dev/null
+++ b/samples/wearable/Geofencing/build.gradle
@@ -0,0 +1,14 @@
+buildscript {
+    repositories {
+        mavenCentral()
+    }
+    dependencies {
+        classpath 'com.android.tools.build:gradle:0.11.+'
+    }
+}
+
+allprojects {
+    repositories {
+        mavenCentral()
+    }
+}
\ No newline at end of file
diff --git a/samples/wearable/Geofencing/gradle/wrapper/gradle-wrapper.jar b/samples/wearable/Geofencing/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..5838598
--- /dev/null
+++ b/samples/wearable/Geofencing/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/samples/wearable/Geofencing/gradle/wrapper/gradle-wrapper.properties b/samples/wearable/Geofencing/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..e83e460
--- /dev/null
+++ b/samples/wearable/Geofencing/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Fri Mar 14 14:02:22 PDT 2014
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=http\://services.gradle.org/distributions/gradle-1.11-all.zip
diff --git a/samples/wearable/Geofencing/gradlew b/samples/wearable/Geofencing/gradlew
new file mode 100755
index 0000000..91a7e26
--- /dev/null
+++ b/samples/wearable/Geofencing/gradlew
@@ -0,0 +1,164 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+##  Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+    echo "$*"
+}
+
+die ( ) {
+    echo
+    echo "$*"
+    echo
+    exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+  CYGWIN* )
+    cygwin=true
+    ;;
+  Darwin* )
+    darwin=true
+    ;;
+  MINGW* )
+    msys=true
+    ;;
+esac
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched.
+if $cygwin ; then
+    [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+fi
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+        PRG="$link"
+    else
+        PRG=`dirname "$PRG"`"/$link"
+    fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >&-
+APP_HOME="`pwd -P`"
+cd "$SAVED" >&-
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+        # IBM's JDK on AIX uses strange locations for the executables
+        JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+        JAVACMD="$JAVA_HOME/bin/java"
+    fi
+    if [ ! -x "$JAVACMD" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+else
+    JAVACMD="java"
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+    MAX_FD_LIMIT=`ulimit -H -n`
+    if [ $? -eq 0 ] ; then
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+            MAX_FD="$MAX_FD_LIMIT"
+        fi
+        ulimit -n $MAX_FD
+        if [ $? -ne 0 ] ; then
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
+        fi
+    else
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+    fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+    # We build the pattern for arguments to be converted via cygpath
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+    SEP=""
+    for dir in $ROOTDIRSRAW ; do
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
+        SEP="|"
+    done
+    OURCYGPATTERN="(^($ROOTDIRS))"
+    # Add a user-defined pattern to the cygpath arguments
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+    fi
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
+    i=0
+    for arg in "$@" ; do
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
+
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+        else
+            eval `echo args$i`="\"$arg\""
+        fi
+        i=$((i+1))
+    done
+    case $i in
+        (0) set -- ;;
+        (1) set -- "$args0" ;;
+        (2) set -- "$args0" "$args1" ;;
+        (3) set -- "$args0" "$args1" "$args2" ;;
+        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+    esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+    JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/samples/wearable/Geofencing/gradlew.bat b/samples/wearable/Geofencing/gradlew.bat
new file mode 100644
index 0000000..aec9973
--- /dev/null
+++ b/samples/wearable/Geofencing/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem  Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/samples/wearable/Geofencing/settings.gradle b/samples/wearable/Geofencing/settings.gradle
new file mode 100644
index 0000000..f3f25a5
--- /dev/null
+++ b/samples/wearable/Geofencing/settings.gradle
@@ -0,0 +1 @@
+include 'Wearable', 'Application'
diff --git a/samples/wearable/GridViewPager/Wearable/build.gradle b/samples/wearable/GridViewPager/Wearable/build.gradle
new file mode 100644
index 0000000..58ffd2c
--- /dev/null
+++ b/samples/wearable/GridViewPager/Wearable/build.gradle
@@ -0,0 +1,29 @@
+apply plugin: 'android'
+
+android {
+    compileSdkVersion 20
+    buildToolsVersion '20'
+
+    defaultConfig {
+        minSdkVersion 20
+        targetSdkVersion 20
+        versionCode 1
+        versionName "1.0"
+    }
+
+    buildTypes {
+        release {
+            runProguard false
+            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
+        }
+    }
+
+    lintOptions {
+        abortOnError false
+    }
+}
+
+dependencies {
+    compile "com.android.support:support-v13:20.0.+"
+    compile "com.google.android.support:wearable:1.0.+"
+}
diff --git a/samples/wearable/GridViewPager/Wearable/proguard-rules.txt b/samples/wearable/GridViewPager/Wearable/proguard-rules.txt
new file mode 100644
index 0000000..08e5bdc
--- /dev/null
+++ b/samples/wearable/GridViewPager/Wearable/proguard-rules.txt
@@ -0,0 +1,22 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
+-dontwarn android.support.wearable.view.DelayedConfirmationView
+-dontwarn android.support.wearable.view.CircledImageView
diff --git a/samples/wearable/GridViewPager/Wearable/src/main/AndroidManifest.xml b/samples/wearable/GridViewPager/Wearable/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..e3a5ebe
--- /dev/null
+++ b/samples/wearable/GridViewPager/Wearable/src/main/AndroidManifest.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.example.android.wearable.gridviewpager"
+    android:versionCode="1"
+    android:versionName="1.0" >
+
+    <uses-sdk
+        android:minSdkVersion="20"
+        android:targetSdkVersion="20" />
+
+    <application
+        android:allowBackup="true"
+        android:icon="@drawable/ic_launcher"
+        android:label="@string/app_name"
+        android:theme="@android:style/Theme.DeviceDefault.Light" >
+        <activity
+            android:name="com.example.android.wearable.gridviewpager.MainActivity"
+            android:label="@string/app_name" >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+    </application>
+
+</manifest>
diff --git a/samples/wearable/GridViewPager/Wearable/src/main/java/com/example/android/wearable/gridviewpager/MainActivity.java b/samples/wearable/GridViewPager/Wearable/src/main/java/com/example/android/wearable/gridviewpager/MainActivity.java
new file mode 100644
index 0000000..498b4da
--- /dev/null
+++ b/samples/wearable/GridViewPager/Wearable/src/main/java/com/example/android/wearable/gridviewpager/MainActivity.java
@@ -0,0 +1,50 @@
+/*
+ * 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.
+ */
+package com.example.android.wearable.gridviewpager;
+
+import android.app.Activity;
+import android.content.res.Resources;
+import android.os.Bundle;
+import android.support.wearable.view.GridViewPager;
+import android.view.View;
+import android.view.View.OnApplyWindowInsetsListener;
+import android.view.WindowInsets;
+
+public class MainActivity extends Activity {
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_main);
+        final Resources res = getResources();
+        final GridViewPager pager = (GridViewPager) findViewById(R.id.pager);
+        pager.setOnApplyWindowInsetsListener(new OnApplyWindowInsetsListener() {
+            @Override
+            public WindowInsets onApplyWindowInsets(View v, WindowInsets insets) {
+                // Adjust page margins:
+                //   A little extra horizontal spacing between pages looks a bit
+                //   less crowded on a round display.
+                final boolean round = insets.isRound();
+                int rowMargin = res.getDimensionPixelOffset(R.dimen.page_row_margin);
+                int colMargin = res.getDimensionPixelOffset(round ?
+                        R.dimen.page_column_margin_round : R.dimen.page_column_margin);
+                pager.setPageMargins(rowMargin, colMargin);
+                return insets;
+            }
+        });
+        pager.setAdapter(new SampleGridPagerAdapter(this, getFragmentManager()));
+    }
+}
diff --git a/samples/wearable/GridViewPager/Wearable/src/main/java/com/example/android/wearable/gridviewpager/SampleGridPagerAdapter.java b/samples/wearable/GridViewPager/Wearable/src/main/java/com/example/android/wearable/gridviewpager/SampleGridPagerAdapter.java
new file mode 100644
index 0000000..62277a8
--- /dev/null
+++ b/samples/wearable/GridViewPager/Wearable/src/main/java/com/example/android/wearable/gridviewpager/SampleGridPagerAdapter.java
@@ -0,0 +1,133 @@
+/*
+ * 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.
+ */
+package com.example.android.wearable.gridviewpager;
+
+import android.app.Fragment;
+import android.app.FragmentManager;
+import android.content.Context;
+import android.support.wearable.view.CardFragment;
+import android.support.wearable.view.FragmentGridPagerAdapter;
+import android.support.wearable.view.ImageReference;
+import android.view.Gravity;
+
+/**
+ * Constructs fragments as requested by the GridViewPager. For each row a
+ * different background is provided.
+ */
+public class SampleGridPagerAdapter extends FragmentGridPagerAdapter {
+
+    private final Context mContext;
+
+    public SampleGridPagerAdapter(Context ctx, FragmentManager fm) {
+        super(fm);
+        mContext = ctx;
+    }
+
+    static final int[] BG_IMAGES = new int[] {
+            R.drawable.debug_background_1,
+            R.drawable.debug_background_2,
+            R.drawable.debug_background_3,
+            R.drawable.debug_background_4,
+            R.drawable.debug_background_5
+    };
+
+    /** A simple container for static data in each page */
+    private static class Page {
+        int titleRes;
+        int textRes;
+        int iconRes;
+        int cardGravity = Gravity.BOTTOM;
+        boolean expansionEnabled = true;
+        float expansionFactor = 1.0f;
+        int expansionDirection = CardFragment.EXPAND_DOWN;
+
+        public Page(int titleRes, int textRes, boolean expansion) {
+            this(titleRes, textRes, 0);
+            this.expansionEnabled = expansion;
+        }
+
+        public Page(int titleRes, int textRes, boolean expansion, float expansionFactor) {
+            this(titleRes, textRes, 0);
+            this.expansionEnabled = expansion;
+            this.expansionFactor = expansionFactor;
+        }
+
+        public Page(int titleRes, int textRes, int iconRes) {
+            this.titleRes = titleRes;
+            this.textRes = textRes;
+            this.iconRes = iconRes;
+        }
+
+        public Page(int titleRes, int textRes, int iconRes, int gravity) {
+            this.titleRes = titleRes;
+            this.textRes = textRes;
+            this.iconRes = iconRes;
+            this.cardGravity = gravity;
+        }
+    }
+
+    private final Page[][] PAGES = {
+            {
+                    new Page(R.string.welcome_title, R.string.welcome_text, R.drawable.bugdroid,
+                            Gravity.CENTER_VERTICAL),
+            },
+            {
+                    new Page(R.string.about_title, R.string.about_text, false),
+            },
+            {
+                    new Page(R.string.cards_title, R.string.cards_text, true, 2),
+                    new Page(R.string.expansion_title, R.string.expansion_text, true, 10),
+            },
+            {
+                    new Page(R.string.backgrounds_title, R.string.backgrounds_text, true, 2),
+                    new Page(R.string.columns_title, R.string.columns_text, true, 2)
+            },
+            {
+                    new Page(R.string.dismiss_title, R.string.dismiss_text, R.drawable.bugdroid,
+                            Gravity.CENTER_VERTICAL),
+            },
+
+    };
+
+    @Override
+    public Fragment getFragment(int row, int col) {
+        Page page = PAGES[row][col];
+        String title = page.titleRes != 0 ? mContext.getString(page.titleRes) : null;
+        String text = page.textRes != 0 ? mContext.getString(page.textRes) : null;
+        CardFragment fragment = CardFragment.create(title, text, page.iconRes);
+        // Advanced settings
+        fragment.setCardGravity(page.cardGravity);
+        fragment.setExpansionEnabled(page.expansionEnabled);
+        fragment.setExpansionDirection(page.expansionDirection);
+        fragment.setExpansionFactor(page.expansionFactor);
+        return fragment;
+    }
+
+    @Override
+    public ImageReference getBackground(int row, int column) {
+        return ImageReference.forDrawable(BG_IMAGES[row % BG_IMAGES.length]);
+    }
+
+    @Override
+    public int getRowCount() {
+        return PAGES.length;
+    }
+
+    @Override
+    public int getColumnCount(int rowNum) {
+        return PAGES[rowNum].length;
+    }
+}
diff --git a/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-hdpi/bugdroid.png b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-hdpi/bugdroid.png
new file mode 100644
index 0000000..7cbe661
--- /dev/null
+++ b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-hdpi/bugdroid.png
Binary files differ
diff --git a/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-hdpi/ic_launcher.png b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 0000000..589f229
--- /dev/null
+++ b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-hdpi/ic_swipe_arrow_left.png b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-hdpi/ic_swipe_arrow_left.png
new file mode 100644
index 0000000..88a497f
--- /dev/null
+++ b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-hdpi/ic_swipe_arrow_left.png
Binary files differ
diff --git a/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-hdpi/ic_swipe_arrow_right.png b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-hdpi/ic_swipe_arrow_right.png
new file mode 100644
index 0000000..5bf0e47
--- /dev/null
+++ b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-hdpi/ic_swipe_arrow_right.png
Binary files differ
diff --git a/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-hdpi/ic_swipe_arrow_up.png b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-hdpi/ic_swipe_arrow_up.png
new file mode 100644
index 0000000..9a3256a
--- /dev/null
+++ b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-hdpi/ic_swipe_arrow_up.png
Binary files differ
diff --git a/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-mdpi/bugdroid.png b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-mdpi/bugdroid.png
new file mode 100644
index 0000000..8bf7596
--- /dev/null
+++ b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-mdpi/bugdroid.png
Binary files differ
diff --git a/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-mdpi/ic_launcher.png b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 0000000..77dd571
--- /dev/null
+++ b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-mdpi/ic_swipe_arrow_left.png b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-mdpi/ic_swipe_arrow_left.png
new file mode 100644
index 0000000..ba36d9d
--- /dev/null
+++ b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-mdpi/ic_swipe_arrow_left.png
Binary files differ
diff --git a/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-mdpi/ic_swipe_arrow_right.png b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-mdpi/ic_swipe_arrow_right.png
new file mode 100644
index 0000000..e5930ac
--- /dev/null
+++ b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-mdpi/ic_swipe_arrow_right.png
Binary files differ
diff --git a/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-mdpi/ic_swipe_arrow_up.png b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-mdpi/ic_swipe_arrow_up.png
new file mode 100644
index 0000000..5ded1c3
--- /dev/null
+++ b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-mdpi/ic_swipe_arrow_up.png
Binary files differ
diff --git a/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..fe34ebe
--- /dev/null
+++ b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-xhdpi/ic_swipe_arrow_left.png b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-xhdpi/ic_swipe_arrow_left.png
new file mode 100644
index 0000000..f02901b
--- /dev/null
+++ b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-xhdpi/ic_swipe_arrow_left.png
Binary files differ
diff --git a/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-xhdpi/ic_swipe_arrow_right.png b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-xhdpi/ic_swipe_arrow_right.png
new file mode 100644
index 0000000..154a87e
--- /dev/null
+++ b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-xhdpi/ic_swipe_arrow_right.png
Binary files differ
diff --git a/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-xhdpi/ic_swipe_arrow_up.png b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-xhdpi/ic_swipe_arrow_up.png
new file mode 100644
index 0000000..e99d982
--- /dev/null
+++ b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-xhdpi/ic_swipe_arrow_up.png
Binary files differ
diff --git a/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png
new file mode 100755
index 0000000..ab80bcd
--- /dev/null
+++ b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/GridViewPager/Wearable/src/main/res/drawable/debug_background_1.png b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable/debug_background_1.png
new file mode 100644
index 0000000..7e6437b
--- /dev/null
+++ b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable/debug_background_1.png
Binary files differ
diff --git a/samples/wearable/GridViewPager/Wearable/src/main/res/drawable/debug_background_2.png b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable/debug_background_2.png
new file mode 100644
index 0000000..4fdc5c9
--- /dev/null
+++ b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable/debug_background_2.png
Binary files differ
diff --git a/samples/wearable/GridViewPager/Wearable/src/main/res/drawable/debug_background_3.png b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable/debug_background_3.png
new file mode 100644
index 0000000..20faf46
--- /dev/null
+++ b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable/debug_background_3.png
Binary files differ
diff --git a/samples/wearable/GridViewPager/Wearable/src/main/res/drawable/debug_background_4.png b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable/debug_background_4.png
new file mode 100644
index 0000000..1fd25c6
--- /dev/null
+++ b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable/debug_background_4.png
Binary files differ
diff --git a/samples/wearable/GridViewPager/Wearable/src/main/res/drawable/debug_background_5.png b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable/debug_background_5.png
new file mode 100644
index 0000000..eecdb2c
--- /dev/null
+++ b/samples/wearable/GridViewPager/Wearable/src/main/res/drawable/debug_background_5.png
Binary files differ
diff --git a/samples/wearable/GridViewPager/Wearable/src/main/res/layout/activity_main.xml b/samples/wearable/GridViewPager/Wearable/src/main/res/layout/activity_main.xml
new file mode 100644
index 0000000..24afd91
--- /dev/null
+++ b/samples/wearable/GridViewPager/Wearable/src/main/res/layout/activity_main.xml
@@ -0,0 +1,6 @@
+<android.support.wearable.view.GridViewPager
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/pager"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:keepScreenOn="true" />
diff --git a/samples/wearable/GridViewPager/Wearable/src/main/res/values/dimens.xml b/samples/wearable/GridViewPager/Wearable/src/main/res/values/dimens.xml
new file mode 100644
index 0000000..e354e2b
--- /dev/null
+++ b/samples/wearable/GridViewPager/Wearable/src/main/res/values/dimens.xml
@@ -0,0 +1,5 @@
+<resources>
+    <dimen name="page_row_margin">100dp</dimen>
+    <dimen name="page_column_margin">10dp</dimen>
+    <dimen name="page_column_margin_round">50dp</dimen>
+</resources>
diff --git a/samples/wearable/GridViewPager/Wearable/src/main/res/values/strings.xml b/samples/wearable/GridViewPager/Wearable/src/main/res/values/strings.xml
new file mode 100644
index 0000000..adcd8f9
--- /dev/null
+++ b/samples/wearable/GridViewPager/Wearable/src/main/res/values/strings.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+    <string name="app_name">GridViewPager Sample</string>
+    <string name="welcome_title">GridViewPager</string>
+    <string name="welcome_text">Welcome!</string>
+
+    <string name="about_title">About</string>
+    <string name="about_text">Content is organized into multiple pages. Swipe
+        between cards to view other content.</string>
+
+    <string name="cards_title">Cards</string>
+    <string name="cards_text">Each page is created using a CardFragment. A
+        layout is placed inside the card and the rest is handled
+        automatically.</string>
+
+    <string name="expansion_title">Expansion</string>
+    <string name="expansion_text">By default, each card will grow taller to
+        accommodate extra content. Tall cards can be scrolled through
+        like any scrollable view. The maximum height is controlled by
+        setExpansionFactor() with a default of 10 pages. After that
+        you\'ll notice a faded edge to indicate there is more. Expansion
+        can be disabled completely using setExpansionEnabled(false).
+        With this, the content will be clipped if it\'s taller than one
+        page.</string>
+
+    <string name="backgrounds_title">Backgrounds</string>
+    <string name="backgrounds_text">Backgrounds are supplied by the adapter\'s
+        getBackground method. Parallax and crossfade effects are applied
+        automatically.</string>
+
+    <string name="columns_title">Columns</string>
+    <string name="columns_text">When moving between rows, the pager always
+        returns to column 0. This is adjustable in the adapter. See
+        method getCurrentColumnForRow().</string>
+
+    <string name="dismiss_title">Dismiss</string>
+    <string name="dismiss_text">To exit the application, swipe from left to
+        right.</string>
+
+</resources>
\ No newline at end of file
diff --git a/samples/wearable/GridViewPager/build.gradle b/samples/wearable/GridViewPager/build.gradle
new file mode 100644
index 0000000..8bafed4
--- /dev/null
+++ b/samples/wearable/GridViewPager/build.gradle
@@ -0,0 +1,14 @@
+buildscript {
+    repositories {
+        mavenCentral()
+    }
+    dependencies {
+        classpath 'com.android.tools.build:gradle:0.11.+'
+    }
+}
+
+allprojects {
+    repositories {
+        mavenCentral()
+    }
+}
diff --git a/samples/wearable/GridViewPager/gradle.properties b/samples/wearable/GridViewPager/gradle.properties
new file mode 100644
index 0000000..5d08ba7
--- /dev/null
+++ b/samples/wearable/GridViewPager/gradle.properties
@@ -0,0 +1,18 @@
+# Project-wide Gradle settings.
+
+# IDE (e.g. Android Studio) users:
+# Settings specified in this file will override any Gradle settings
+# configured through the IDE.
+
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+# Default value: -Xmx10248m -XX:MaxPermSize=256m
+# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
+
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
\ No newline at end of file
diff --git a/samples/wearable/GridViewPager/gradle/wrapper/gradle-wrapper.jar b/samples/wearable/GridViewPager/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..5838598
--- /dev/null
+++ b/samples/wearable/GridViewPager/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/samples/wearable/GridViewPager/gradle/wrapper/gradle-wrapper.properties b/samples/wearable/GridViewPager/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..e83e460
--- /dev/null
+++ b/samples/wearable/GridViewPager/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Fri Mar 14 14:02:22 PDT 2014
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=http\://services.gradle.org/distributions/gradle-1.11-all.zip
diff --git a/samples/wearable/GridViewPager/gradlew b/samples/wearable/GridViewPager/gradlew
new file mode 100755
index 0000000..91a7e26
--- /dev/null
+++ b/samples/wearable/GridViewPager/gradlew
@@ -0,0 +1,164 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+##  Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+    echo "$*"
+}
+
+die ( ) {
+    echo
+    echo "$*"
+    echo
+    exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+  CYGWIN* )
+    cygwin=true
+    ;;
+  Darwin* )
+    darwin=true
+    ;;
+  MINGW* )
+    msys=true
+    ;;
+esac
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched.
+if $cygwin ; then
+    [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+fi
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+        PRG="$link"
+    else
+        PRG=`dirname "$PRG"`"/$link"
+    fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >&-
+APP_HOME="`pwd -P`"
+cd "$SAVED" >&-
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+        # IBM's JDK on AIX uses strange locations for the executables
+        JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+        JAVACMD="$JAVA_HOME/bin/java"
+    fi
+    if [ ! -x "$JAVACMD" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+else
+    JAVACMD="java"
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+    MAX_FD_LIMIT=`ulimit -H -n`
+    if [ $? -eq 0 ] ; then
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+            MAX_FD="$MAX_FD_LIMIT"
+        fi
+        ulimit -n $MAX_FD
+        if [ $? -ne 0 ] ; then
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
+        fi
+    else
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+    fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+    # We build the pattern for arguments to be converted via cygpath
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+    SEP=""
+    for dir in $ROOTDIRSRAW ; do
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
+        SEP="|"
+    done
+    OURCYGPATTERN="(^($ROOTDIRS))"
+    # Add a user-defined pattern to the cygpath arguments
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+    fi
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
+    i=0
+    for arg in "$@" ; do
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
+
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+        else
+            eval `echo args$i`="\"$arg\""
+        fi
+        i=$((i+1))
+    done
+    case $i in
+        (0) set -- ;;
+        (1) set -- "$args0" ;;
+        (2) set -- "$args0" "$args1" ;;
+        (3) set -- "$args0" "$args1" "$args2" ;;
+        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+    esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+    JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/samples/wearable/GridViewPager/gradlew.bat b/samples/wearable/GridViewPager/gradlew.bat
new file mode 100755
index 0000000..aec9973
--- /dev/null
+++ b/samples/wearable/GridViewPager/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem  Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/samples/wearable/GridViewPager/settings.gradle b/samples/wearable/GridViewPager/settings.gradle
new file mode 100644
index 0000000..d804d8b
--- /dev/null
+++ b/samples/wearable/GridViewPager/settings.gradle
@@ -0,0 +1 @@
+include 'Wearable'
diff --git a/samples/wearable/JumpingJack/Wearable/build.gradle b/samples/wearable/JumpingJack/Wearable/build.gradle
new file mode 100644
index 0000000..c07ae51
--- /dev/null
+++ b/samples/wearable/JumpingJack/Wearable/build.gradle
@@ -0,0 +1,34 @@
+apply plugin: 'android'
+
+repositories {
+    mavenCentral()
+}
+
+android {
+    compileSdkVersion 20
+    buildToolsVersion '20'
+
+    defaultConfig {
+        minSdkVersion 20
+        targetSdkVersion 20
+        versionCode 1
+        versionName "1.0"
+    }
+    buildTypes {
+        release {
+            runProguard false
+            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
+        }
+    }
+
+    lintOptions {
+        abortOnError false
+    }
+
+}
+
+dependencies {
+    compile 'com.google.android.gms:play-services:5.0.+@aar'
+    compile "com.android.support:support-v13:20.0.+"
+    compile "com.google.android.support:wearable:1.0.+"
+}
diff --git a/samples/wearable/JumpingJack/Wearable/proguard-rules.txt b/samples/wearable/JumpingJack/Wearable/proguard-rules.txt
new file mode 100644
index 0000000..0cc65ee
--- /dev/null
+++ b/samples/wearable/JumpingJack/Wearable/proguard-rules.txt
@@ -0,0 +1,17 @@
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
\ No newline at end of file
diff --git a/samples/wearable/JumpingJack/Wearable/src/main/AndroidManifest.xml b/samples/wearable/JumpingJack/Wearable/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..0be9b06
--- /dev/null
+++ b/samples/wearable/JumpingJack/Wearable/src/main/AndroidManifest.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+          package="com.example.android.wearable.jumpingjack">
+
+    <uses-permission android:name="android.permission.VIBRATE"/>
+
+    <application
+            android:allowBackup="true"
+            android:icon="@drawable/ic_launcher"
+            android:label="@string/app_name"
+            android:theme="@android:style/Theme.DeviceDefault.Light">
+        <activity
+                android:name=".MainActivity"
+                android:label="@string/app_name">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN"/>
+                <category android:name="android.intent.category.LAUNCHER"/>
+            </intent-filter>
+        </activity>
+    </application>
+
+</manifest>
diff --git a/samples/wearable/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/MainActivity.java b/samples/wearable/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/MainActivity.java
new file mode 100644
index 0000000..cdaaf6e
--- /dev/null
+++ b/samples/wearable/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/MainActivity.java
@@ -0,0 +1,257 @@
+/*
+ * Copyright (C) 2014 Google Inc. All Rights Reserved.
+ *
+ * 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.
+ */
+
+package com.example.android.wearable.jumpingjack;
+
+import com.example.android.wearable.jumpingjack.fragments.CounterFragment;
+import com.example.android.wearable.jumpingjack.fragments.SettingsFragment;
+
+import android.app.Activity;
+import android.content.Context;
+import android.hardware.Sensor;
+import android.hardware.SensorEvent;
+import android.hardware.SensorEventListener;
+import android.hardware.SensorManager;
+import android.os.Bundle;
+import android.os.Handler;
+import android.support.v4.view.ViewPager;
+import android.util.Log;
+import android.view.WindowManager;
+import android.widget.ImageView;
+
+import java.util.Timer;
+import java.util.TimerTask;
+
+/**
+ * The main activity for the Jumping Jack application. This activity registers itself to receive
+ * sensor values. Since on wearable devices a full screen activity is very short-lived, we set the
+ * FLAG_KEEP_SCREEN_ON to give user adequate time for taking actions but since we don't want to
+ * keep screen on for an extended period of time, there is a SCREEN_ON_TIMEOUT_MS that is enforced
+ * if no interaction is discovered.
+ *
+ * This activity includes a {@link android.support.v4.view.ViewPager} with two pages, one that
+ * shows the current count and one that allows user to reset the counter. the current value of the
+ * counter is persisted so that upon re-launch, the counter picks up from the last value. At any
+ * stage, user can set this counter to 0.
+ */
+public class MainActivity extends Activity
+        implements SensorEventListener {
+
+    private static final String TAG = "JJMainActivity";
+
+    /** How long to keep the screen on when no activity is happening **/
+    private static final long SCREEN_ON_TIMEOUT_MS = 20000; // in milliseconds
+
+    /** an up-down movement that takes more than this will not be registered as such **/
+    private static final long TIME_THRESHOLD_NS = 2000000000; // in nanoseconds (= 2sec)
+
+    /**
+     * Earth gravity is around 9.8 m/s^2 but user may not completely direct his/her hand vertical
+     * during the exercise so we leave some room. Basically if the x-component of gravity, as
+     * measured by the Gravity sensor, changes with a variation (delta) > GRAVITY_THRESHOLD,
+     * we consider that a successful count.
+     */
+    private static final float GRAVITY_THRESHOLD = 7.0f;
+
+    private SensorManager mSensorManager;
+    private Sensor mSensor;
+    private long mLastTime = 0;
+    private boolean mUp = false;
+    private int mJumpCounter = 0;
+    private ViewPager mPager;
+    private CounterFragment mCounterPage;
+    private SettingsFragment mSettingPage;
+    private ImageView mSecondIndicator;
+    private ImageView mFirstIndicator;
+    private Timer mTimer;
+    private TimerTask mTimerTask;
+    private Handler mHandler;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.jj_layout);
+        setupViews();
+        mHandler = new Handler();
+        mJumpCounter = Utils.getCounterFromPreference(this);
+        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
+        renewTimer();
+        mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
+        mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY);
+    }
+
+    private void setupViews() {
+        mPager = (ViewPager) findViewById(R.id.pager);
+        mFirstIndicator = (ImageView) findViewById(R.id.indicator_0);
+        mSecondIndicator = (ImageView) findViewById(R.id.indicator_1);
+        final PagerAdapter adapter = new PagerAdapter(getFragmentManager());
+        mCounterPage = new CounterFragment();
+        mSettingPage = new SettingsFragment(this);
+        adapter.addFragment(mCounterPage);
+        adapter.addFragment(mSettingPage);
+        setIndicator(0);
+        mPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+            @Override
+            public void onPageScrolled(int i, float v, int i2) {
+            }
+
+            @Override
+            public void onPageSelected(int i) {
+                setIndicator(i);
+                renewTimer();
+            }
+
+            @Override
+            public void onPageScrollStateChanged(int i) {
+            }
+        });
+
+        mPager.setAdapter(adapter);
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        if (mSensorManager.registerListener(this, mSensor,
+                SensorManager.SENSOR_DELAY_NORMAL)) {
+            if (Log.isLoggable(TAG, Log.DEBUG)) {
+                Log.d(TAG, "Successfully registered for the sensor updates");
+            }
+        }
+    }
+
+    @Override
+    protected void onPause() {
+        super.onPause();
+        mSensorManager.unregisterListener(this);
+        if (Log.isLoggable(TAG, Log.DEBUG)) {
+            Log.d(TAG, "Unregistered for sensor events");
+        }
+    }
+
+    @Override
+    public void onSensorChanged(SensorEvent event) {
+        detectJump(event.values[0], event.timestamp);
+    }
+
+    @Override
+    public void onAccuracyChanged(Sensor sensor, int accuracy) {
+    }
+
+    /**
+     * A simple algorithm to detect a successful up-down movement of hand(s). The algorithm is
+     * based on the assumption that when a person is wearing the watch, the x-component of gravity
+     * as measured by the Gravity Sensor is +9.8 when the hand is downward and -9.8 when the hand
+     * is upward (signs are reversed if the watch is worn on the right hand). Since the upward or
+     * downward may not be completely accurate, we leave some room and instead of 9.8, we use
+     * GRAVITY_THRESHOLD. We also consider the up <-> down movement successful if it takes less than
+     * TIME_THRESHOLD_NS.
+     */
+    private void detectJump(float xValue, long timestamp) {
+        if ((Math.abs(xValue) > GRAVITY_THRESHOLD)) {
+            if(timestamp - mLastTime < TIME_THRESHOLD_NS && mUp != (xValue > 0)) {
+                onJumpDetected(!mUp);
+            }
+            mUp = xValue > 0;
+            mLastTime = timestamp;
+        }
+    }
+
+    /**
+     * Called on detection of a successful down -> up or up -> down movement of hand.
+     */
+    private void onJumpDetected(boolean up) {
+        // we only count a pair of up and down as one successful movement
+        if (up) {
+            return;
+        }
+        mJumpCounter++;
+        setCounter(mJumpCounter);
+        renewTimer();
+    }
+
+    /**
+     * Updates the counter on UI, saves it to preferences and vibrates the watch when counter
+     * reaches a multiple of 10.
+     */
+    private void setCounter(int i) {
+        mCounterPage.setCounter(i);
+        Utils.saveCounterToPreference(this, i);
+        if (i > 0 && i % 10 == 0) {
+            Utils.vibrate(this, 0);
+        }
+    }
+
+    public void resetCounter() {
+        setCounter(0);
+        renewTimer();
+    }
+
+    /**
+     * Starts a timer to clear the flag FLAG_KEEP_SCREEN_ON.
+     */
+    private void renewTimer() {
+        if (null != mTimer) {
+            mTimer.cancel();
+        }
+        mTimerTask = new TimerTask() {
+            @Override
+            public void run() {
+                if (Log.isLoggable(TAG, Log.DEBUG)) {
+                    Log.d(TAG,
+                            "Removing the FLAG_KEEP_SCREEN_ON flag to allow going to background");
+                }
+                resetFlag();
+            }
+        };
+        mTimer = new Timer();
+        mTimer.schedule(mTimerTask, SCREEN_ON_TIMEOUT_MS);
+    }
+
+    /**
+     * Resets the FLAG_KEEP_SCREEN_ON flag so activity can go into background.
+     */
+    private void resetFlag() {
+        mHandler.post(new Runnable() {
+            @Override
+            public void run() {
+                if (Log.isLoggable(TAG, Log.DEBUG)) {
+                    Log.d(TAG, "Resetting FLAG_KEEP_SCREEN_ON flag to allow going to background");
+                }
+                getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
+                finish();
+            }
+        });
+    }
+
+    /**
+     * Sets the page indicator for the ViewPager.
+     */
+    private void setIndicator(int i) {
+        switch (i) {
+            case 0:
+                mFirstIndicator.setImageResource(R.drawable.full_10);
+                mSecondIndicator.setImageResource(R.drawable.empty_10);
+                break;
+            case 1:
+                mFirstIndicator.setImageResource(R.drawable.empty_10);
+                mSecondIndicator.setImageResource(R.drawable.full_10);
+                break;
+        }
+    }
+
+
+}
diff --git a/samples/wearable/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/PagerAdapter.java b/samples/wearable/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/PagerAdapter.java
new file mode 100644
index 0000000..f7ac2b0
--- /dev/null
+++ b/samples/wearable/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/PagerAdapter.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2014 Google Inc. All Rights Reserved.
+ *
+ * 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.
+ */
+
+package com.example.android.wearable.jumpingjack;
+
+import android.app.Fragment;
+import android.app.FragmentManager;
+import android.support.v13.app.FragmentPagerAdapter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * A simple adapter for the {@link android.support.v4.view.ViewPager}
+ */
+public class PagerAdapter extends FragmentPagerAdapter {
+
+    List<Fragment> mFragments = null;
+
+    public PagerAdapter(FragmentManager fm) {
+        super(fm);
+        mFragments = new ArrayList<Fragment>();
+    }
+
+    @Override
+    public Fragment getItem(int position) {
+        return mFragments.get(position);
+    }
+
+    @Override
+    public int getCount() {
+        return mFragments.size();
+    }
+
+    public void addFragment(Fragment fragment) {
+        mFragments.add(fragment);
+        notifyDataSetChanged();
+    }
+}
diff --git a/samples/wearable/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/Utils.java b/samples/wearable/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/Utils.java
new file mode 100644
index 0000000..4db66c9
--- /dev/null
+++ b/samples/wearable/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/Utils.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2014 Google Inc. All Rights Reserved.
+ *
+ * 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.
+ */
+
+package com.example.android.wearable.jumpingjack;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.os.Vibrator;
+import android.preference.PreferenceManager;
+
+/**
+ * A utility class for some helper methods.
+ */
+public class Utils {
+
+    private static final int DEFAULT_VIBRATION_DURATION_MS = 200; // in millis
+    private static final String PREF_KEY_COUNTER = "counter";
+
+    /**
+     * Causes device to vibrate for the given duration (in millis). If duration is set to 0, then it
+     * will use the <code>DEFAULT_VIBRATION_DURATION_MS</code>.
+     */
+    public final static void vibrate(Context context, int duration) {
+        if (duration == 0) {
+            duration = DEFAULT_VIBRATION_DURATION_MS;
+        }
+        Vibrator v = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
+        v.vibrate(duration);
+    }
+
+    /**
+     * Saves the counter value in the preference storage. If <code>value</code>
+     * is negative, then the value will be removed from the preferences.
+     */
+    public static void saveCounterToPreference(Context context, int value) {
+        SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context);
+        if (value < 0) {
+            // we want to remove
+            pref.edit().remove(PREF_KEY_COUNTER).apply();
+        } else {
+            pref.edit().putInt(PREF_KEY_COUNTER, value).apply();
+        }
+    }
+
+    /**
+     * Retrieves the value of counter from preference manager. If no value exists, it will return
+     * <code>0</code>.
+     */
+    public static int getCounterFromPreference(Context context) {
+        SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context);
+        return pref.getInt(PREF_KEY_COUNTER, 0);
+    }
+
+}
diff --git a/samples/wearable/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/fragments/CounterFragment.java b/samples/wearable/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/fragments/CounterFragment.java
new file mode 100644
index 0000000..c55eb9b
--- /dev/null
+++ b/samples/wearable/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/fragments/CounterFragment.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2014 Google Inc. All Rights Reserved.
+ *
+ * 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.
+ */
+
+package com.example.android.wearable.jumpingjack.fragments;
+
+import com.example.android.wearable.jumpingjack.R;
+import com.example.android.wearable.jumpingjack.Utils;
+
+import android.app.Fragment;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.os.Handler;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import java.util.Timer;
+import java.util.TimerTask;
+
+/**
+ * A simple fragment for showing the count
+ */
+public class CounterFragment extends Fragment {
+
+    private static final long ANIMATION_INTERVAL_MS = 500; // in milliseconds
+    private TextView mCounterText;
+    private Timer mAnimationTimer;
+    private Handler mHandler;
+    private TimerTask mAnimationTask;
+    private boolean up = false;
+    private Drawable mDownDrawable;
+    private Drawable mUpDrawable;
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        View view = inflater.inflate(R.layout.counter_layout, container, false);
+        mDownDrawable = getResources().getDrawable(R.drawable.jump_down_50);
+        mUpDrawable = getResources().getDrawable(R.drawable.jump_up_50);
+        mCounterText = (TextView) view.findViewById(R.id.counter);
+        mCounterText.setCompoundDrawablesWithIntrinsicBounds(mUpDrawable, null, null, null);
+        setCounter(Utils.getCounterFromPreference(getActivity()));
+        mHandler = new Handler();
+        startAnimation();
+        return view;
+    }
+
+    private void startAnimation() {
+        mAnimationTask = new TimerTask() {
+            @Override
+            public void run() {
+                mHandler.post(new Runnable() {
+                    @Override
+                    public void run() {
+                        mCounterText.setCompoundDrawablesWithIntrinsicBounds(
+                                up ? mUpDrawable : mDownDrawable, null, null, null);
+                        up = !up;
+                    }
+                });
+            }
+        };
+        mAnimationTimer = new Timer();
+        mAnimationTimer.scheduleAtFixedRate(mAnimationTask, ANIMATION_INTERVAL_MS,
+                ANIMATION_INTERVAL_MS);
+    }
+
+    public void setCounter(String text) {
+        mCounterText.setText(text);
+    }
+
+    public void setCounter(int i) {
+        setCounter(i < 0 ? "0" : String.valueOf(i));
+    }
+
+    @Override
+    public void onDetach() {
+        mAnimationTimer.cancel();
+        super.onDetach();
+    }
+}
diff --git a/samples/wearable/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/fragments/SettingsFragment.java b/samples/wearable/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/fragments/SettingsFragment.java
new file mode 100644
index 0000000..fffe8fb
--- /dev/null
+++ b/samples/wearable/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/fragments/SettingsFragment.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2014 Google Inc. All Rights Reserved.
+ *
+ * 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.
+ */
+
+package com.example.android.wearable.jumpingjack.fragments;
+
+import com.example.android.wearable.jumpingjack.MainActivity;
+import com.example.android.wearable.jumpingjack.R;
+
+import android.app.Fragment;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+
+/**
+ * A simple fragment that shows a button to reset the counter
+ */
+public class SettingsFragment extends Fragment {
+
+    private Button mButton;
+    private MainActivity mMainActivity;
+
+    public SettingsFragment(MainActivity mainActivity) {
+        mMainActivity = mainActivity;
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        View view = inflater.inflate(R.layout.setting_layout, container, false);
+        mButton = (Button) view.findViewById(R.id.btn);
+        mButton.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                mMainActivity.resetCounter();
+            }
+        });
+        return view;
+    }
+
+}
diff --git a/samples/wearable/JumpingJack/Wearable/src/main/res/drawable-hdpi/btn_reset_normal_200.png b/samples/wearable/JumpingJack/Wearable/src/main/res/drawable-hdpi/btn_reset_normal_200.png
new file mode 100644
index 0000000..e585202
--- /dev/null
+++ b/samples/wearable/JumpingJack/Wearable/src/main/res/drawable-hdpi/btn_reset_normal_200.png
Binary files differ
diff --git a/samples/wearable/JumpingJack/Wearable/src/main/res/drawable-hdpi/btn_reset_pressed_200.png b/samples/wearable/JumpingJack/Wearable/src/main/res/drawable-hdpi/btn_reset_pressed_200.png
new file mode 100644
index 0000000..0b83b6d
--- /dev/null
+++ b/samples/wearable/JumpingJack/Wearable/src/main/res/drawable-hdpi/btn_reset_pressed_200.png
Binary files differ
diff --git a/samples/wearable/JumpingJack/Wearable/src/main/res/drawable-hdpi/ic_launcher.png b/samples/wearable/JumpingJack/Wearable/src/main/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 0000000..2d0c37d
--- /dev/null
+++ b/samples/wearable/JumpingJack/Wearable/src/main/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/JumpingJack/Wearable/src/main/res/drawable-mdpi/ic_launcher.png b/samples/wearable/JumpingJack/Wearable/src/main/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 0000000..3211c9e
--- /dev/null
+++ b/samples/wearable/JumpingJack/Wearable/src/main/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/JumpingJack/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png b/samples/wearable/JumpingJack/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..4ead8a2
--- /dev/null
+++ b/samples/wearable/JumpingJack/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/JumpingJack/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png b/samples/wearable/JumpingJack/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..8b357e4
--- /dev/null
+++ b/samples/wearable/JumpingJack/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/JumpingJack/Wearable/src/main/res/drawable-xxxhdpi/ic_launcher.png b/samples/wearable/JumpingJack/Wearable/src/main/res/drawable-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000..da3c00a
--- /dev/null
+++ b/samples/wearable/JumpingJack/Wearable/src/main/res/drawable-xxxhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/JumpingJack/Wearable/src/main/res/drawable/empty_10.png b/samples/wearable/JumpingJack/Wearable/src/main/res/drawable/empty_10.png
new file mode 100644
index 0000000..78ee76b
--- /dev/null
+++ b/samples/wearable/JumpingJack/Wearable/src/main/res/drawable/empty_10.png
Binary files differ
diff --git a/samples/wearable/JumpingJack/Wearable/src/main/res/drawable/full_10.png b/samples/wearable/JumpingJack/Wearable/src/main/res/drawable/full_10.png
new file mode 100644
index 0000000..53b799e
--- /dev/null
+++ b/samples/wearable/JumpingJack/Wearable/src/main/res/drawable/full_10.png
Binary files differ
diff --git a/samples/wearable/JumpingJack/Wearable/src/main/res/drawable/jump_down_50.png b/samples/wearable/JumpingJack/Wearable/src/main/res/drawable/jump_down_50.png
new file mode 100644
index 0000000..28980f8
--- /dev/null
+++ b/samples/wearable/JumpingJack/Wearable/src/main/res/drawable/jump_down_50.png
Binary files differ
diff --git a/samples/wearable/JumpingJack/Wearable/src/main/res/drawable/jump_up_50.png b/samples/wearable/JumpingJack/Wearable/src/main/res/drawable/jump_up_50.png
new file mode 100644
index 0000000..86dcef5
--- /dev/null
+++ b/samples/wearable/JumpingJack/Wearable/src/main/res/drawable/jump_up_50.png
Binary files differ
diff --git a/samples/wearable/JumpingJack/Wearable/src/main/res/drawable/submit_button.xml b/samples/wearable/JumpingJack/Wearable/src/main/res/drawable/submit_button.xml
new file mode 100644
index 0000000..e202e9a
--- /dev/null
+++ b/samples/wearable/JumpingJack/Wearable/src/main/res/drawable/submit_button.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@drawable/btn_reset_pressed_200"
+          android:state_pressed="true" />
+    <item android:drawable="@drawable/btn_reset_pressed_200"
+          android:state_focused="true" />
+    <item android:drawable="@drawable/btn_reset_normal_200" />
+</selector>
\ No newline at end of file
diff --git a/samples/wearable/JumpingJack/Wearable/src/main/res/layout/counter_layout.xml b/samples/wearable/JumpingJack/Wearable/src/main/res/layout/counter_layout.xml
new file mode 100644
index 0000000..2216d2f
--- /dev/null
+++ b/samples/wearable/JumpingJack/Wearable/src/main/res/layout/counter_layout.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/white">
+
+    <TextView
+        android:id="@+id/counter"
+        android:layout_centerInParent="true"
+        android:textSize="50sp"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content" />
+
+</RelativeLayout>
\ No newline at end of file
diff --git a/samples/wearable/JumpingJack/Wearable/src/main/res/layout/jj_layout.xml b/samples/wearable/JumpingJack/Wearable/src/main/res/layout/jj_layout.xml
new file mode 100644
index 0000000..371cfe8
--- /dev/null
+++ b/samples/wearable/JumpingJack/Wearable/src/main/res/layout/jj_layout.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/white">
+
+    <android.support.v4.view.ViewPager
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:id="@+id/pager"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="#000"
+        />
+
+    <LinearLayout
+        android:layout_alignParentBottom="true"
+        android:layout_centerHorizontal="true"
+        android:layout_marginBottom="10dp"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content">
+        <ImageView
+            android:id="@+id/indicator_0"
+            android:layout_marginRight="5dp"
+            android:src="@drawable/full_10"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content" />
+        <ImageView
+            android:id="@+id/indicator_1"
+            android:src="@drawable/empty_10"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content" />
+    </LinearLayout>
+
+</RelativeLayout>
diff --git a/samples/wearable/JumpingJack/Wearable/src/main/res/layout/setting_layout.xml b/samples/wearable/JumpingJack/Wearable/src/main/res/layout/setting_layout.xml
new file mode 100644
index 0000000..c012560
--- /dev/null
+++ b/samples/wearable/JumpingJack/Wearable/src/main/res/layout/setting_layout.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/white">
+
+    <Button
+        android:id="@+id/btn"
+        android:layout_alignParentTop="true"
+        android:layout_centerHorizontal="true"
+        android:layout_marginTop="40dp"
+        android:layout_width="75dp"
+        android:layout_height="75dp"
+        android:background="@drawable/submit_button"/>
+
+    <TextView
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_below="@+id/btn"
+        android:layout_marginTop="5dp"
+        android:gravity="center"
+        android:textColor="@color/blue"
+        android:text="@string/reset_counter"/>
+
+</RelativeLayout>
\ No newline at end of file
diff --git a/samples/wearable/JumpingJack/Wearable/src/main/res/values/colors.xml b/samples/wearable/JumpingJack/Wearable/src/main/res/values/colors.xml
new file mode 100644
index 0000000..3e62ace
--- /dev/null
+++ b/samples/wearable/JumpingJack/Wearable/src/main/res/values/colors.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <color name="white">#ffffff</color>
+    <color name="blue">#3f51b5</color>
+</resources>
\ No newline at end of file
diff --git a/samples/wearable/JumpingJack/Wearable/src/main/res/values/dimens.xml b/samples/wearable/JumpingJack/Wearable/src/main/res/values/dimens.xml
new file mode 100644
index 0000000..47c8224
--- /dev/null
+++ b/samples/wearable/JumpingJack/Wearable/src/main/res/values/dimens.xml
@@ -0,0 +1,5 @@
+<resources>
+    <!-- Default screen margins, per the Android Design guidelines. -->
+    <dimen name="activity_horizontal_margin">16dp</dimen>
+    <dimen name="activity_vertical_margin">16dp</dimen>
+</resources>
diff --git a/samples/wearable/JumpingJack/Wearable/src/main/res/values/strings.xml b/samples/wearable/JumpingJack/Wearable/src/main/res/values/strings.xml
new file mode 100644
index 0000000..0c762c7
--- /dev/null
+++ b/samples/wearable/JumpingJack/Wearable/src/main/res/values/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+    <string name="app_name">Jumping Jack</string>
+    <string name="reset_counter">Reset Counter</string>
+
+</resources>
diff --git a/samples/wearable/JumpingJack/build.gradle b/samples/wearable/JumpingJack/build.gradle
new file mode 100644
index 0000000..ce58a8f
--- /dev/null
+++ b/samples/wearable/JumpingJack/build.gradle
@@ -0,0 +1,17 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+
+buildscript {
+    repositories {
+        mavenCentral()
+    }
+    dependencies {
+        classpath 'com.android.tools.build:gradle:0.11.+'
+    }
+}
+
+allprojects {
+    repositories {
+        mavenCentral()
+    }
+}
+
diff --git a/samples/wearable/JumpingJack/gradle.properties b/samples/wearable/JumpingJack/gradle.properties
new file mode 100644
index 0000000..5d08ba7
--- /dev/null
+++ b/samples/wearable/JumpingJack/gradle.properties
@@ -0,0 +1,18 @@
+# Project-wide Gradle settings.
+
+# IDE (e.g. Android Studio) users:
+# Settings specified in this file will override any Gradle settings
+# configured through the IDE.
+
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+# Default value: -Xmx10248m -XX:MaxPermSize=256m
+# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
+
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
\ No newline at end of file
diff --git a/samples/wearable/JumpingJack/gradle/wrapper/gradle-wrapper.jar b/samples/wearable/JumpingJack/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..5838598
--- /dev/null
+++ b/samples/wearable/JumpingJack/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/samples/wearable/JumpingJack/gradle/wrapper/gradle-wrapper.properties b/samples/wearable/JumpingJack/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..e83e460
--- /dev/null
+++ b/samples/wearable/JumpingJack/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Fri Mar 14 14:02:22 PDT 2014
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=http\://services.gradle.org/distributions/gradle-1.11-all.zip
diff --git a/samples/wearable/JumpingJack/gradlew b/samples/wearable/JumpingJack/gradlew
new file mode 100755
index 0000000..91a7e26
--- /dev/null
+++ b/samples/wearable/JumpingJack/gradlew
@@ -0,0 +1,164 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+##  Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+    echo "$*"
+}
+
+die ( ) {
+    echo
+    echo "$*"
+    echo
+    exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+  CYGWIN* )
+    cygwin=true
+    ;;
+  Darwin* )
+    darwin=true
+    ;;
+  MINGW* )
+    msys=true
+    ;;
+esac
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched.
+if $cygwin ; then
+    [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+fi
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+        PRG="$link"
+    else
+        PRG=`dirname "$PRG"`"/$link"
+    fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >&-
+APP_HOME="`pwd -P`"
+cd "$SAVED" >&-
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+        # IBM's JDK on AIX uses strange locations for the executables
+        JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+        JAVACMD="$JAVA_HOME/bin/java"
+    fi
+    if [ ! -x "$JAVACMD" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+else
+    JAVACMD="java"
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+    MAX_FD_LIMIT=`ulimit -H -n`
+    if [ $? -eq 0 ] ; then
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+            MAX_FD="$MAX_FD_LIMIT"
+        fi
+        ulimit -n $MAX_FD
+        if [ $? -ne 0 ] ; then
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
+        fi
+    else
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+    fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+    # We build the pattern for arguments to be converted via cygpath
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+    SEP=""
+    for dir in $ROOTDIRSRAW ; do
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
+        SEP="|"
+    done
+    OURCYGPATTERN="(^($ROOTDIRS))"
+    # Add a user-defined pattern to the cygpath arguments
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+    fi
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
+    i=0
+    for arg in "$@" ; do
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
+
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+        else
+            eval `echo args$i`="\"$arg\""
+        fi
+        i=$((i+1))
+    done
+    case $i in
+        (0) set -- ;;
+        (1) set -- "$args0" ;;
+        (2) set -- "$args0" "$args1" ;;
+        (3) set -- "$args0" "$args1" "$args2" ;;
+        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+    esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+    JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/samples/wearable/JumpingJack/gradlew.bat b/samples/wearable/JumpingJack/gradlew.bat
new file mode 100644
index 0000000..aec9973
--- /dev/null
+++ b/samples/wearable/JumpingJack/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem  Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/samples/wearable/JumpingJack/license.txt b/samples/wearable/JumpingJack/license.txt
new file mode 100644
index 0000000..1555b52
--- /dev/null
+++ b/samples/wearable/JumpingJack/license.txt
@@ -0,0 +1,5 @@
+The Jumping Jack icons used in this app have been created by Jasper Reyes
+(http://thenounproject.com/term/jumping-jack/26440/) and Co-Effect Creative
+(http://thenounproject.com/term/exercise/15085/) from The Noun Project and are used under the
+Creative Commons (CC By 3.0) license
+
diff --git a/samples/wearable/JumpingJack/proguard-rules.txt b/samples/wearable/JumpingJack/proguard-rules.txt
new file mode 100644
index 0000000..0cc65ee
--- /dev/null
+++ b/samples/wearable/JumpingJack/proguard-rules.txt
@@ -0,0 +1,17 @@
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
\ No newline at end of file
diff --git a/samples/wearable/JumpingJack/settings.gradle b/samples/wearable/JumpingJack/settings.gradle
new file mode 100644
index 0000000..1d97d30
--- /dev/null
+++ b/samples/wearable/JumpingJack/settings.gradle
@@ -0,0 +1 @@
+include ':Wearable'
diff --git a/samples/wearable/Notifications/Application/_index.html b/samples/wearable/Notifications/Application/_index.html
new file mode 100644
index 0000000..4bda0fa
--- /dev/null
+++ b/samples/wearable/Notifications/Application/_index.html
@@ -0,0 +1,24 @@
+<p>This sample phone application provides a showcase of available notification
+styles and demonstrates various features of the Android Wear notifications
+API. Running the sample on your phone allows you to select between various
+notification styles and to see how these notifications are displayed, both in
+a phone's notification shade and on the wearable. The sample allows you to
+create the following types of notifications:</p>
+<ul>
+<li>Basic notification</li>
+<li>"Inbox style" notification: multiple lines of text</li>
+<li>"Big picture style" notification: a full-screen background image for the
+card on the wearable</li>
+<li>"Big text style" notification: a tall card that is collapsed and can be
+expanded with a tap</li>
+<li>"Big action style" notification: tapping anywhere on the card triggers the
+notification content intent</li>
+<li>Notification with multiple pages: swipe horizontally to view the second
+page</li>
+<li>Bundled Notifications: a stack of cards that can be individually
+expanded</li>
+</ul>
+<p>This sample also allows you to toggle other attributes for each of these
+notification types, including whether a content intent or action are included,
+and whether the notification is marked as "local only," indicating that it
+should not be bridged between devices.</p>
diff --git a/samples/wearable/Notifications/Application/build.gradle b/samples/wearable/Notifications/Application/build.gradle
new file mode 100644
index 0000000..32208a3
--- /dev/null
+++ b/samples/wearable/Notifications/Application/build.gradle
@@ -0,0 +1,29 @@
+apply plugin: 'android'
+
+android {
+    compileSdkVersion 19
+    buildToolsVersion '20'
+
+    defaultConfig {
+        minSdkVersion 18
+        targetSdkVersion 19
+        versionCode 1
+        versionName "1.0"
+    }
+
+    buildTypes {
+        release {
+            runProguard false
+            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
+        }
+    }
+
+    aaptOptions {
+        noCompress 'apk'
+    }
+}
+
+dependencies {
+    compile "com.android.support:support-v4:20.0.+"
+    wearApp project(':Wearable')
+}
\ No newline at end of file
diff --git a/samples/wearable/Notifications/Application/proguard-rules.txt b/samples/wearable/Notifications/Application/proguard-rules.txt
new file mode 100644
index 0000000..08e5bdc
--- /dev/null
+++ b/samples/wearable/Notifications/Application/proguard-rules.txt
@@ -0,0 +1,22 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
+-dontwarn android.support.wearable.view.DelayedConfirmationView
+-dontwarn android.support.wearable.view.CircledImageView
diff --git a/samples/wearable/Notifications/Application/src/main/AndroidManifest.xml b/samples/wearable/Notifications/Application/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..a5e530e
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/AndroidManifest.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+        package="com.example.android.support.wearable.notifications" >
+
+    <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="19"/>
+
+    <application
+            android:allowBackup="true"
+            android:icon="@mipmap/ic_launcher"
+            android:label="@string/app_name"
+            android:theme="@style/AppTheme" >
+
+        <activity
+                android:name=".MainActivity"
+                android:label="@string/app_name"
+                android:windowSoftInputMode="stateHidden" >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+
+        <receiver android:name=".NotificationIntentReceiver"
+                android:exported="false">
+            <intent-filter>
+                <action android:name="com.example.android.support.wearable.notifications.ACTION_EXAMPLE" />
+                <action android:name="com.example.android.support.wearable.notifications.ACTION_ENABLE_MESSAGES" />
+                <action android:name="com.example.android.support.wearable.notifications.ACTION_DISABLE_MESSAGES" />
+            </intent-filter>
+        </receiver>
+
+    </application>
+
+</manifest>
diff --git a/samples/wearable/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/ActionsPreset.java b/samples/wearable/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/ActionsPreset.java
new file mode 100644
index 0000000..86fe67e
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/ActionsPreset.java
@@ -0,0 +1,17 @@
+package com.example.android.support.wearable.notifications;
+
+import android.content.Context;
+import android.support.v4.app.NotificationCompat;
+
+/**
+ * Base class for notification actions presets.
+ */
+public abstract class ActionsPreset extends NamedPreset {
+    public ActionsPreset(int nameResId) {
+        super(nameResId);
+    }
+
+    /** Apply the priority to a notification builder */
+    public abstract void apply(Context context, NotificationCompat.Builder builder,
+            NotificationCompat.WearableExtender wearableOptions);
+}
diff --git a/samples/wearable/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/ActionsPresets.java b/samples/wearable/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/ActionsPresets.java
new file mode 100644
index 0000000..ebac6c0
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/ActionsPresets.java
@@ -0,0 +1,142 @@
+package com.example.android.support.wearable.notifications;
+
+import android.content.Context;
+import android.support.v4.app.NotificationCompat;
+import android.support.v4.app.RemoteInput;
+
+/**
+ * Collection of notification actions presets.
+ */
+public class ActionsPresets {
+    public static final ActionsPreset NO_ACTIONS_PRESET = new NoActionsPreset();
+    public static final ActionsPreset SINGLE_ACTION_PRESET = new SingleActionPreset();
+
+    public static final ActionsPreset[] PRESETS = new ActionsPreset[] {
+            NO_ACTIONS_PRESET,
+            SINGLE_ACTION_PRESET,
+            new ReplyActionPreset(),
+            new ReplyWithChoicesActionPreset(),
+            new DifferentActionsOnPhoneAndWearable(),
+            new LongTitleActionPreset()
+    };
+
+    private static class NoActionsPreset extends ActionsPreset {
+        public NoActionsPreset() {
+            super(R.string.no_actions);
+        }
+
+        @Override
+        public void apply(Context context, NotificationCompat.Builder builder,
+                NotificationCompat.WearableExtender wearableOptions) {
+        }
+    }
+
+    private static class SingleActionPreset extends ActionsPreset {
+        public SingleActionPreset() {
+            super(R.string.single_action);
+        }
+
+        @Override
+        public void apply(Context context, NotificationCompat.Builder builder,
+                NotificationCompat.WearableExtender wearableOptions) {
+            builder.addAction(R.drawable.ic_full_action,
+                    context.getString(R.string.example_action),
+                    NotificationUtil.getExamplePendingIntent(context,
+                            R.string.example_action_clicked))
+                    .build();
+        }
+    }
+
+    private static class LongTitleActionPreset extends ActionsPreset {
+        public LongTitleActionPreset() {
+            super(R.string.long_title_action);
+        }
+
+        @Override
+        public void apply(Context context, NotificationCompat.Builder builder,
+                NotificationCompat.WearableExtender wearableOptions) {
+            builder.addAction(R.drawable.ic_full_action,
+                    context.getString(R.string.example_action_long_title),
+                    NotificationUtil.getExamplePendingIntent(context,
+                            R.string.example_action_clicked))
+                    .build();
+        }
+    }
+
+    private static class ReplyActionPreset extends ActionsPreset {
+        public ReplyActionPreset() {
+            super(R.string.reply_action);
+        }
+
+        @Override
+        public void apply(Context context, NotificationCompat.Builder builder,
+                NotificationCompat.WearableExtender wearableOptions) {
+            RemoteInput remoteInput = new RemoteInput.Builder(NotificationUtil.EXTRA_REPLY)
+                    .setLabel(context.getString(R.string.example_reply_label))
+                    .build();
+            NotificationCompat.Action action = new NotificationCompat.Action.Builder(
+                    R.drawable.ic_full_reply,
+                    context.getString(R.string.example_reply_action),
+                    NotificationUtil.getExamplePendingIntent(context,
+                            R.string.example_reply_action_clicked))
+                    .addRemoteInput(remoteInput)
+                    .build();
+            builder.addAction(action);
+        }
+    }
+
+    private static class ReplyWithChoicesActionPreset extends ActionsPreset {
+        public ReplyWithChoicesActionPreset() {
+            super(R.string.reply_action_with_choices);
+        }
+
+        @Override
+        public void apply(Context context, NotificationCompat.Builder builder,
+                NotificationCompat.WearableExtender wearableOptions) {
+            RemoteInput remoteInput = new RemoteInput.Builder(NotificationUtil.EXTRA_REPLY)
+                    .setLabel(context.getString(R.string.example_reply_answer_label))
+                    .setChoices(new String[] { context.getString(R.string.yes),
+                            context.getString(R.string.no), context.getString(R.string.maybe) })
+                    .build();
+            NotificationCompat.Action action = new NotificationCompat.Action.Builder(
+                    R.drawable.ic_full_reply,
+                    context.getString(R.string.example_reply_action),
+                    NotificationUtil.getExamplePendingIntent(context,
+                            R.string.example_reply_action_clicked))
+                    .addRemoteInput(remoteInput)
+                    .build();
+            wearableOptions.addAction(action);
+        }
+    }
+
+    private static class DifferentActionsOnPhoneAndWearable extends ActionsPreset {
+        public DifferentActionsOnPhoneAndWearable() {
+            super(R.string.different_actions_on_phone_and_wearable);
+        }
+
+        @Override
+        public void apply(Context context, NotificationCompat.Builder builder,
+                NotificationCompat.WearableExtender wearableOptions) {
+            NotificationCompat.Action phoneAction = new NotificationCompat.Action.Builder(
+                    R.drawable.ic_full_action,
+                    context.getString(R.string.phone_action),
+                    NotificationUtil.getExamplePendingIntent(context,
+                            R.string.phone_action_clicked))
+                    .build();
+            builder.addAction(phoneAction);
+
+            RemoteInput remoteInput = new RemoteInput.Builder(NotificationUtil.EXTRA_REPLY)
+                    .setLabel(context.getString(R.string.example_reply_label))
+                    .build();
+
+            NotificationCompat.Action wearableAction = new NotificationCompat.Action.Builder(
+                    R.drawable.ic_full_reply,
+                    context.getString(R.string.wearable_action),
+                    NotificationUtil.getExamplePendingIntent(context,
+                            R.string.wearable_action_clicked))
+                    .addRemoteInput(remoteInput)
+                    .build();
+            wearableOptions.addAction(wearableAction);
+        }
+    }
+}
diff --git a/samples/wearable/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/BackgroundPickers.java b/samples/wearable/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/BackgroundPickers.java
new file mode 100644
index 0000000..58b3dfe
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/BackgroundPickers.java
@@ -0,0 +1,124 @@
+package com.example.android.support.wearable.notifications;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Manages the background image pickers.
+ */
+public class BackgroundPickers {
+
+    public interface OnBackgroundPickersChangedListener {
+        public void onBackgroundPickersChanged(BackgroundPickers pickers);
+    }
+
+    private final ViewGroup mContainer;
+    private final OnPickedListener mOnPickedListener;
+    private final List<ViewGroup> mPickers;
+    private final OnBackgroundPickersChangedListener listener;
+
+    public BackgroundPickers(ViewGroup container, OnBackgroundPickersChangedListener listener) {
+        this.mContainer = container;
+        this.mOnPickedListener = new OnPickedListener();
+        this.mPickers = new ArrayList<ViewGroup>();
+        this.listener = listener;
+    }
+
+    /**
+     * Generates the pickers as necessary.
+     */
+    public void generatePickers(int count) {
+        // Clear existing containers.
+        clear();
+
+        // Fill in new pickers.
+        LayoutInflater inflater = LayoutInflater.from(mContainer.getContext());
+        Resources res = mContainer.getResources();
+        for (int i = 0; i < count; i++) {
+            View picker = inflater.inflate(R.layout.background_picker, mContainer, false);
+            TextView label = (TextView) picker.findViewById(R.id.bg_picker_label);
+            label.setText(String.format(res.getString(R.string.bg_picker_label), i+1));
+            ViewGroup pickerBox = (ViewGroup) picker.findViewById(R.id.bg_picker_container);
+            mPickers.add(pickerBox);
+            for (int j = 0; j < pickerBox.getChildCount(); j++) {
+                ImageView img = (ImageView) pickerBox.getChildAt(j);
+                img.setOnClickListener(mOnPickedListener);
+            }
+            mContainer.addView(picker);
+        }
+    }
+
+    /**
+     * Returns the background resource for the picker at the given index.
+     * @param position Index of the background picker.
+     * @return Id of the background image resource. null if no image is picked.
+     */
+    public Integer getRes(int position) {
+        String tag = (String) mPickers.get(position).getTag();
+        if (tag == null) {
+            return null;
+        }
+
+        Context context = mContainer.getContext();
+        return context.getResources().getIdentifier(tag, "drawable", context.getPackageName());
+    }
+
+    /**
+     * Returns the all the background resources for the pickers managed by this object. Returns null
+     * if no pickers exist.
+     */
+    public Integer[] getRes() {
+        if (mPickers.size() == 0) {
+            return null;
+        }
+
+        Integer[] res = new Integer[mPickers.size()];
+        for (int i = 0; i < mPickers.size(); i++) {
+            res[i] = getRes(i);
+        }
+        return res;
+    }
+
+    /**
+     * Clears the pickers.
+     */
+    public void clear() {
+        mContainer.removeAllViews();
+        mPickers.clear();
+    }
+
+    public int getCount() {
+        return mPickers.size();
+    }
+
+    private class OnPickedListener implements View.OnClickListener {
+
+        @Override
+        public void onClick(View view) {
+            ImageView pickedView = (ImageView) view;
+            ViewGroup pickerBox = (ViewGroup) view.getParent();
+
+            // Clear old selection.
+            for (int i = 0; i < pickerBox.getChildCount(); i++) {
+                ImageView childView = (ImageView) pickerBox.getChildAt(i);
+                childView.setBackgroundResource(R.drawable.unselected_background);
+            }
+
+            // Set new selection.
+            pickedView.setBackgroundResource(R.drawable.selected_background);
+            pickerBox.setTag(pickedView.getTag());
+
+            if (listener != null) {
+                listener.onBackgroundPickersChanged(BackgroundPickers.this);
+            }
+        }
+    }
+}
diff --git a/samples/wearable/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/MainActivity.java b/samples/wearable/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/MainActivity.java
new file mode 100644
index 0000000..a7474aa
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/MainActivity.java
@@ -0,0 +1,336 @@
+package com.example.android.support.wearable.notifications;
+
+import android.app.Activity;
+import android.app.Notification;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.support.v4.app.NotificationManagerCompat;
+import android.text.Editable;
+import android.text.TextWatcher;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
+import android.widget.EditText;
+import android.widget.Spinner;
+import android.widget.TextView;
+
+import java.util.Arrays;
+
+/**
+ * Main activity which posts a notification when resumed, and allows customization
+ * of that notification via controls.
+ */
+public class MainActivity extends Activity implements Handler.Callback {
+    private static final int MSG_POST_NOTIFICATIONS = 0;
+    private static final long POST_NOTIFICATIONS_DELAY_MS = 200;
+
+    private Handler mHandler;
+    private Spinner mPresetSpinner;
+    private EditText mTitleEditText;
+    private EditText mTextEditText;
+    private TextWatcher mTextChangedListener;
+    private Spinner mPrioritySpinner;
+    private Spinner mActionsSpinner;
+    private CheckBox mIncludeLargeIconCheckbox;
+    private CheckBox mLocalOnlyCheckbox;
+    private CheckBox mIncludeContentIntentCheckbox;
+    private CheckBox mVibrateCheckbox;
+    private BackgroundPickers mBackgroundPickers;
+    private int postedNotificationCount = 0;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_main);
+
+        mHandler = new Handler(this);
+        mTextChangedListener = new UpdateNotificationsOnTextChangeListener();
+
+        initPresetSpinner();
+        initTitleEditText();
+        initTextEditText();
+        initPrioritySpinner();
+        initActionsSpinner();
+        initIncludeLargeIconCheckbox();
+        initLocalOnlyCheckbox();
+        initIncludeContentIntentCheckbox();
+        initVibrateCheckbox();
+        initBackgroundPickers();
+
+        NotificationPreset preset = NotificationPresets.PRESETS[
+                mPresetSpinner.getSelectedItemPosition()];
+        updateTextEditors(preset);
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        updateNotifications(false /* cancelExisting */);
+    }
+
+    private void initPresetSpinner() {
+        mPresetSpinner = (Spinner) findViewById(R.id.preset_spinner);
+        mPresetSpinner.setAdapter(new NamedPresetSpinnerArrayAdapter(this,
+                NotificationPresets.PRESETS));
+        mPresetSpinner.post(new Runnable() {
+            @Override
+            public void run() {
+                mPresetSpinner.setOnItemSelectedListener(new PresetSpinnerListener());
+            }
+        });
+    }
+
+    private void initTitleEditText() {
+        mTitleEditText = (EditText) findViewById(R.id.title_editor);
+    }
+
+    private void initTextEditText() {
+        mTextEditText = (EditText) findViewById(R.id.text_editor);
+    }
+
+    private void initPrioritySpinner() {
+        mPrioritySpinner = (Spinner) findViewById(R.id.priority_spinner);
+        mPrioritySpinner.setAdapter(new NamedPresetSpinnerArrayAdapter(this,
+                PriorityPresets.PRESETS));
+        mPrioritySpinner.setSelection(Arrays.asList(PriorityPresets.PRESETS)
+                .indexOf(PriorityPresets.DEFAULT));
+        mPrioritySpinner.post(new Runnable() {
+            @Override
+            public void run() {
+                mPrioritySpinner.setOnItemSelectedListener(
+                        new UpdateNotificationsOnItemSelectedListener(true /* cancelExisting */));
+            }
+        });
+    }
+
+    private void initActionsSpinner() {
+        mActionsSpinner = (Spinner) findViewById(R.id.actions_spinner);
+        mActionsSpinner.setAdapter(new NamedPresetSpinnerArrayAdapter(this,
+                ActionsPresets.PRESETS));
+        mActionsSpinner.post(new Runnable() {
+            @Override
+            public void run() {
+                mActionsSpinner.setOnItemSelectedListener(
+                        new UpdateNotificationsOnItemSelectedListener(false /* cancelExisting */));
+            }
+        });
+    }
+
+    private void initIncludeLargeIconCheckbox() {
+        mIncludeLargeIconCheckbox = (CheckBox) findViewById(R.id.include_large_icon_checkbox);
+        mIncludeLargeIconCheckbox.setOnCheckedChangeListener(
+                new UpdateNotificationsOnCheckedChangeListener(false /* cancelExisting */));
+    }
+
+    private void initLocalOnlyCheckbox() {
+        mLocalOnlyCheckbox = (CheckBox) findViewById(R.id.local_only_checkbox);
+        mLocalOnlyCheckbox.setOnCheckedChangeListener(
+                new UpdateNotificationsOnCheckedChangeListener(false /* cancelExisting */));
+    }
+
+    private void initIncludeContentIntentCheckbox() {
+        mIncludeContentIntentCheckbox = (CheckBox) findViewById(
+                R.id.include_content_intent_checkbox);
+        mIncludeContentIntentCheckbox.setOnCheckedChangeListener(
+                new UpdateNotificationsOnCheckedChangeListener(false /* cancelExisting */));
+    }
+
+    private void initVibrateCheckbox() {
+        mVibrateCheckbox = (CheckBox) findViewById(R.id.vibrate_checkbox);
+        mVibrateCheckbox.setOnCheckedChangeListener(
+                new UpdateNotificationsOnCheckedChangeListener(false /* cancelExisting */));
+    }
+
+    private void initBackgroundPickers() {
+        mBackgroundPickers = new BackgroundPickers(
+                (ViewGroup) findViewById(R.id.background_pickers),
+                new BackgroundPickerListener());
+    }
+
+    private void updateTextEditors(NotificationPreset preset) {
+        if (preset == NotificationPresets.BASIC) {
+            findViewById(R.id.title_edit_field).setVisibility(View.VISIBLE);
+            mTitleEditText.setText(getString(preset.titleResId));
+            mTitleEditText.addTextChangedListener(mTextChangedListener);
+            findViewById(R.id.text_edit_field).setVisibility(View.VISIBLE);
+            mTextEditText.setText(getString(preset.textResId));
+            mTextEditText.addTextChangedListener(mTextChangedListener);
+        } else {
+            findViewById(R.id.title_edit_field).setVisibility(View.GONE);
+            mTitleEditText.removeTextChangedListener(mTextChangedListener);
+            findViewById(R.id.text_edit_field).setVisibility(View.GONE);
+            mTextEditText.removeTextChangedListener(mTextChangedListener);
+        }
+    }
+
+    /**
+     * Begin to re-post the sample notification(s).
+     */
+    private void updateNotifications(boolean cancelExisting) {
+        // Disable messages to skip notification deleted messages during cancel.
+        sendBroadcast(new Intent(NotificationIntentReceiver.ACTION_DISABLE_MESSAGES)
+                .setClass(this, NotificationIntentReceiver.class));
+
+        if (cancelExisting) {
+            // Cancel all existing notifications to trigger fresh-posting behavior: For example,
+            // switching from HIGH to LOW priority does not cause a reordering in Notification Shade.
+            NotificationManagerCompat.from(this).cancelAll();
+            postedNotificationCount = 0;
+
+            // Post the updated notifications on a delay to avoid a cancel+post race condition
+            // with notification manager.
+            mHandler.removeMessages(MSG_POST_NOTIFICATIONS);
+            mHandler.sendEmptyMessageDelayed(MSG_POST_NOTIFICATIONS, POST_NOTIFICATIONS_DELAY_MS);
+        } else {
+            postNotifications();
+        }
+    }
+
+    /**
+     * Post the sample notification(s) using current options.
+     */
+    private void postNotifications() {
+        sendBroadcast(new Intent(NotificationIntentReceiver.ACTION_ENABLE_MESSAGES)
+                .setClass(this, NotificationIntentReceiver.class));
+
+        NotificationPreset preset = NotificationPresets.PRESETS[
+                mPresetSpinner.getSelectedItemPosition()];
+        CharSequence titlePreset = mTitleEditText.getText();
+        CharSequence textPreset = mTextEditText.getText();
+        PriorityPreset priorityPreset = PriorityPresets.PRESETS[
+                mPrioritySpinner.getSelectedItemPosition()];
+        ActionsPreset actionsPreset = ActionsPresets.PRESETS[
+                mActionsSpinner.getSelectedItemPosition()];
+        if (preset.actionsRequired() && actionsPreset == ActionsPresets.NO_ACTIONS_PRESET) {
+            // If actions are required, but the no-actions preset was selected, change presets.
+            actionsPreset = ActionsPresets.SINGLE_ACTION_PRESET;
+            mActionsSpinner.setSelection(Arrays.asList(ActionsPresets.PRESETS).indexOf(
+                    actionsPreset), true);
+        }
+        NotificationPreset.BuildOptions options = new NotificationPreset.BuildOptions(
+                titlePreset,
+                textPreset,
+                priorityPreset,
+                actionsPreset,
+                mIncludeLargeIconCheckbox.isChecked(),
+                mLocalOnlyCheckbox.isChecked(),
+                mIncludeContentIntentCheckbox.isChecked(),
+                mVibrateCheckbox.isChecked(),
+                mBackgroundPickers.getRes());
+        Notification[] notifications = preset.buildNotifications(this, options);
+
+        // Post new notifications
+        for (int i = 0; i < notifications.length; i++) {
+            NotificationManagerCompat.from(this).notify(i, notifications[i]);
+        }
+        // Cancel any that are beyond the current count.
+        for (int i = notifications.length; i < postedNotificationCount; i++) {
+            NotificationManagerCompat.from(this).cancel(i);
+        }
+        postedNotificationCount = notifications.length;
+    }
+
+    @Override
+    public boolean handleMessage(Message message) {
+        switch (message.what) {
+            case MSG_POST_NOTIFICATIONS:
+                postNotifications();
+                return true;
+        }
+        return false;
+    }
+
+    private class PresetSpinnerListener implements AdapterView.OnItemSelectedListener {
+        @Override
+        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
+            NotificationPreset preset = NotificationPresets.PRESETS[position];
+            mBackgroundPickers.generatePickers(preset.countBackgroundPickersRequired());
+            updateTextEditors(preset);
+            updateNotifications(false /* cancelExisting */);
+        }
+
+        @Override
+        public void onNothingSelected(AdapterView<?> adapterView) {
+        }
+    }
+
+    private class UpdateNotificationsOnTextChangeListener implements TextWatcher {
+        @Override
+        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+        }
+
+        public void onTextChanged(CharSequence s, int start, int before, int count) {
+        }
+
+        @Override
+        public void afterTextChanged(Editable s) {
+            updateNotifications(false /* cancelExisting */);
+        }
+    }
+
+    private class UpdateNotificationsOnItemSelectedListener
+            implements AdapterView.OnItemSelectedListener {
+        private final boolean mCancelExisting;
+
+        public UpdateNotificationsOnItemSelectedListener(boolean cancelExisting) {
+            mCancelExisting = cancelExisting;
+        }
+        @Override
+        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
+            updateNotifications(mCancelExisting);
+        }
+
+        @Override
+        public void onNothingSelected(AdapterView<?> adapterView) {
+        }
+    }
+
+    private class UpdateNotificationsOnCheckedChangeListener
+            implements CompoundButton.OnCheckedChangeListener {
+        private final boolean mCancelExisting;
+
+        public UpdateNotificationsOnCheckedChangeListener(boolean cancelExisting) {
+            mCancelExisting = cancelExisting;
+        }
+
+        @Override
+        public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
+            updateNotifications(mCancelExisting);
+        }
+    }
+
+    private class BackgroundPickerListener
+            implements BackgroundPickers.OnBackgroundPickersChangedListener {
+        @Override
+        public void onBackgroundPickersChanged(BackgroundPickers pickers) {
+            updateNotifications(false /* cancelExisting */);
+        }
+    }
+
+    private class NamedPresetSpinnerArrayAdapter extends ArrayAdapter<NamedPreset> {
+        public NamedPresetSpinnerArrayAdapter(Context context, NamedPreset[] presets) {
+            super(context, R.layout.simple_spinner_item, presets);
+        }
+
+        @Override
+        public View getDropDownView(int position, View convertView, ViewGroup parent) {
+            TextView view = (TextView) super.getDropDownView(position, convertView, parent);
+            view.setText(getString(getItem(position).nameResId));
+            return view;
+        }
+
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent) {
+            TextView view = (TextView) getLayoutInflater().inflate(
+                    android.R.layout.simple_spinner_item, parent, false);
+            view.setText(getString(getItem(position).nameResId));
+            return view;
+        }
+    }
+}
diff --git a/samples/wearable/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/NamedPreset.java b/samples/wearable/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/NamedPreset.java
new file mode 100644
index 0000000..c68251f
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/NamedPreset.java
@@ -0,0 +1,12 @@
+package com.example.android.support.wearable.notifications;
+
+/**
+ * Base class for presets that have a simple name to display.
+ */
+public abstract class NamedPreset {
+    public final int nameResId;
+
+    public NamedPreset(int nameResId) {
+        this.nameResId = nameResId;
+    }
+}
diff --git a/samples/wearable/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/NotificationIntentReceiver.java b/samples/wearable/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/NotificationIntentReceiver.java
new file mode 100644
index 0000000..08d7208
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/NotificationIntentReceiver.java
@@ -0,0 +1,44 @@
+package com.example.android.support.wearable.notifications;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v4.app.RemoteInput;
+import android.widget.Toast;
+
+/**
+ * Broadcast receiver to post toast messages in response to notification intents firing.
+ */
+public class NotificationIntentReceiver extends BroadcastReceiver {
+    public static final String ACTION_EXAMPLE =
+            "com.example.android.support.wearable.notifications.ACTION_EXAMPLE";
+    public static final String ACTION_ENABLE_MESSAGES =
+            "com.example.android.support.wearable.notifications.ACTION_ENABLE_MESSAGES";
+    public static final String ACTION_DISABLE_MESSAGES =
+            "com.example.android.support.wearable.notifications.ACTION_DISABLE_MESSAGES";
+
+    private boolean mEnableMessages = true;
+
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        if (intent.getAction().equals(ACTION_EXAMPLE)) {
+            if (mEnableMessages) {
+                String message = intent.getStringExtra(NotificationUtil.EXTRA_MESSAGE);
+                Bundle remoteInputResults = RemoteInput.getResultsFromIntent(intent);
+                CharSequence replyMessage = null;
+                if (remoteInputResults != null) {
+                    replyMessage = remoteInputResults.getCharSequence(NotificationUtil.EXTRA_REPLY);
+                }
+                if (replyMessage != null) {
+                    message = message + ": \"" + replyMessage + "\"";
+                }
+                Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
+            }
+        } else if (intent.getAction().equals(ACTION_ENABLE_MESSAGES)) {
+            mEnableMessages = true;
+        } else if (intent.getAction().equals(ACTION_DISABLE_MESSAGES)) {
+            mEnableMessages = false;
+        }
+    }
+}
diff --git a/samples/wearable/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/NotificationPreset.java b/samples/wearable/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/NotificationPreset.java
new file mode 100644
index 0000000..a289494
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/NotificationPreset.java
@@ -0,0 +1,58 @@
+package com.example.android.support.wearable.notifications;
+
+import android.app.Notification;
+import android.content.Context;
+
+/**
+ * Base class for notification preset generators.
+ */
+public abstract class NotificationPreset extends NamedPreset {
+    public final int titleResId;
+    public final int textResId;
+
+    public NotificationPreset(int nameResId, int titleResId, int textResId) {
+        super(nameResId);
+        this.titleResId = titleResId;
+        this.textResId = textResId;
+    }
+
+    public static class BuildOptions {
+        public final CharSequence titlePreset;
+        public final CharSequence textPreset;
+        public final PriorityPreset priorityPreset;
+        public final ActionsPreset actionsPreset;
+        public final boolean includeLargeIcon;
+        public final boolean isLocalOnly;
+        public final boolean hasContentIntent;
+        public final boolean vibrate;
+        public final Integer[] backgroundIds;
+
+        public BuildOptions(CharSequence titlePreset, CharSequence textPreset,
+                PriorityPreset priorityPreset, ActionsPreset actionsPreset,
+                boolean includeLargeIcon, boolean isLocalOnly, boolean hasContentIntent,
+                boolean vibrate, Integer[] backgroundIds) {
+            this.titlePreset = titlePreset;
+            this.textPreset = textPreset;
+            this.priorityPreset = priorityPreset;
+            this.actionsPreset = actionsPreset;
+            this.includeLargeIcon = includeLargeIcon;
+            this.isLocalOnly = isLocalOnly;
+            this.hasContentIntent = hasContentIntent;
+            this.vibrate = vibrate;
+            this.backgroundIds = backgroundIds;
+        }
+    }
+
+    /** Build a notification with this preset and the provided options */
+    public abstract Notification[] buildNotifications(Context context, BuildOptions options);
+
+    /** Whether actions are required to use this preset. */
+    public boolean actionsRequired() {
+        return false;
+    }
+
+    /** Number of background pickers required */
+    public int countBackgroundPickersRequired() {
+        return 0;
+    }
+}
diff --git a/samples/wearable/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/NotificationPresets.java b/samples/wearable/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/NotificationPresets.java
new file mode 100644
index 0000000..f175145
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/NotificationPresets.java
@@ -0,0 +1,463 @@
+package com.example.android.support.wearable.notifications;
+
+import android.app.Notification;
+import android.content.Context;
+import android.graphics.BitmapFactory;
+import android.graphics.Color;
+import android.graphics.Typeface;
+import android.support.v4.app.NotificationCompat;
+import android.text.SpannableStringBuilder;
+import android.text.style.ForegroundColorSpan;
+import android.text.style.RelativeSizeSpan;
+import android.text.style.StrikethroughSpan;
+import android.text.style.StyleSpan;
+import android.text.style.SubscriptSpan;
+import android.text.style.SuperscriptSpan;
+import android.text.style.TypefaceSpan;
+import android.text.style.UnderlineSpan;
+import android.view.Gravity;
+
+/**
+ * Collection of notification builder presets.
+ */
+public class NotificationPresets {
+    private static final String EXAMPLE_GROUP_KEY = "example";
+
+    public static final NotificationPreset BASIC = new BasicNotificationPreset();
+    public static final NotificationPreset STYLIZED_TEXT = new StylizedTextNotificationPreset();
+    public static final NotificationPreset INBOX = new InboxNotificationPreset();
+    public static final NotificationPreset BIG_PICTURE = new BigPictureNotificationPreset();
+    public static final NotificationPreset BIG_TEXT = new BigTextNotificationPreset();
+    public static final NotificationPreset BOTTOM_ALIGNED = new BottomAlignedNotificationPreset();
+    public static final NotificationPreset GRAVITY = new GravityNotificationPreset();
+    public static final NotificationPreset CONTENT_ACTION = new ContentActionNotificationPreset();
+    public static final NotificationPreset CONTENT_ICON = new ContentIconNotificationPreset();
+    public static final NotificationPreset MULTIPLE_PAGE = new MultiplePageNotificationPreset();
+    public static final NotificationPreset BUNDLE = new NotificationBundlePreset();
+
+    public static final NotificationPreset[] PRESETS = new NotificationPreset[] {
+            BASIC,
+            STYLIZED_TEXT,
+            INBOX,
+            BIG_PICTURE,
+            BIG_TEXT,
+            BOTTOM_ALIGNED,
+            GRAVITY,
+            CONTENT_ACTION,
+            CONTENT_ICON,
+            MULTIPLE_PAGE,
+            BUNDLE
+    };
+
+    private static NotificationCompat.Builder applyBasicOptions(Context context,
+            NotificationCompat.Builder builder, NotificationCompat.WearableExtender wearableOptions,
+            NotificationPreset.BuildOptions options) {
+        builder.setContentTitle(options.titlePreset)
+                .setContentText(options.textPreset)
+                .setSmallIcon(R.mipmap.ic_launcher)
+                .setDeleteIntent(NotificationUtil.getExamplePendingIntent(
+                        context, R.string.example_notification_deleted));
+        options.actionsPreset.apply(context, builder, wearableOptions);
+        options.priorityPreset.apply(builder, wearableOptions);
+        if (options.includeLargeIcon) {
+            builder.setLargeIcon(BitmapFactory.decodeResource(
+                    context.getResources(), R.drawable.example_large_icon));
+        }
+        if (options.isLocalOnly) {
+            builder.setLocalOnly(true);
+        }
+        if (options.hasContentIntent) {
+            builder.setContentIntent(NotificationUtil.getExamplePendingIntent(context,
+                    R.string.content_intent_clicked));
+        }
+        if (options.vibrate) {
+            builder.setVibrate(new long[] {0, 100, 50, 100} );
+        }
+        return builder;
+    }
+
+    private static class BasicNotificationPreset extends NotificationPreset {
+        public BasicNotificationPreset() {
+            super(R.string.basic_example, R.string.example_content_title,
+                R.string.example_content_text);
+        }
+
+        @Override
+        public Notification[] buildNotifications(Context context, BuildOptions options) {
+            NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
+            NotificationCompat.WearableExtender wearableOptions =
+                    new NotificationCompat.WearableExtender();
+            applyBasicOptions(context, builder, wearableOptions, options);
+            builder.extend(wearableOptions);
+            return new Notification[] { builder.build() };
+        }
+    }
+
+    private static class StylizedTextNotificationPreset extends NotificationPreset {
+        public StylizedTextNotificationPreset() {
+            super(R.string.stylized_text_example, R.string.example_content_title,
+                    R.string.example_content_text);
+        }
+
+        @Override
+        public Notification[] buildNotifications(Context context, BuildOptions options) {
+            NotificationCompat.BigTextStyle style = new NotificationCompat.BigTextStyle();
+
+            SpannableStringBuilder title = new SpannableStringBuilder();
+            appendStyled(title, "Stylized", new StyleSpan(Typeface.BOLD_ITALIC));
+            title.append(" title");
+            SpannableStringBuilder text = new SpannableStringBuilder("Stylized text: ");
+            appendStyled(text, "C", new ForegroundColorSpan(Color.RED));
+            appendStyled(text, "O", new ForegroundColorSpan(Color.GREEN));
+            appendStyled(text, "L", new ForegroundColorSpan(Color.BLUE));
+            appendStyled(text, "O", new ForegroundColorSpan(Color.YELLOW));
+            appendStyled(text, "R", new ForegroundColorSpan(Color.MAGENTA));
+            appendStyled(text, "S", new ForegroundColorSpan(Color.CYAN));
+            text.append("; ");
+            appendStyled(text, "1.25x size", new RelativeSizeSpan(1.25f));
+            text.append("; ");
+            appendStyled(text, "0.75x size", new RelativeSizeSpan(0.75f));
+            text.append("; ");
+            appendStyled(text, "underline", new UnderlineSpan());
+            text.append("; ");
+            appendStyled(text, "strikethrough", new StrikethroughSpan());
+            text.append("; ");
+            appendStyled(text, "bold", new StyleSpan(Typeface.BOLD));
+            text.append("; ");
+            appendStyled(text, "italic", new StyleSpan(Typeface.ITALIC));
+            text.append("; ");
+            appendStyled(text, "sans-serif-thin", new TypefaceSpan("sans-serif-thin"));
+            text.append("; ");
+            appendStyled(text, "monospace", new TypefaceSpan("monospace"));
+            text.append("; ");
+            appendStyled(text, "sub", new SubscriptSpan());
+            text.append("script");
+            appendStyled(text, "super", new SuperscriptSpan());
+
+            style.setBigContentTitle(title);
+            style.bigText(text);
+
+            NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
+                    .setStyle(style);
+            NotificationCompat.WearableExtender wearableOptions =
+                    new NotificationCompat.WearableExtender();
+            applyBasicOptions(context, builder, wearableOptions, options);
+            builder.extend(wearableOptions);
+            return new Notification[] { builder.build() };
+        }
+
+        private void appendStyled(SpannableStringBuilder builder, String str, Object... spans) {
+            builder.append(str);
+            for (Object span : spans) {
+                builder.setSpan(span, builder.length() - str.length(), builder.length(), 0);
+            }
+        }
+    }
+
+    private static class InboxNotificationPreset extends NotificationPreset {
+        public InboxNotificationPreset() {
+            super(R.string.inbox_example, R.string.example_content_title,
+                R.string.example_content_text);
+        }
+
+        @Override
+        public Notification[] buildNotifications(Context context, BuildOptions options) {
+            NotificationCompat.InboxStyle style = new NotificationCompat.InboxStyle();
+            style.addLine(context.getString(R.string.inbox_style_example_line1));
+            style.addLine(context.getString(R.string.inbox_style_example_line2));
+            style.addLine(context.getString(R.string.inbox_style_example_line3));
+            style.setBigContentTitle(context.getString(R.string.inbox_style_example_title));
+            style.setSummaryText(context.getString(R.string.inbox_style_example_summary_text));
+
+            NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
+                    .setStyle(style);
+            NotificationCompat.WearableExtender wearableOptions =
+                    new NotificationCompat.WearableExtender();
+            applyBasicOptions(context, builder, wearableOptions, options);
+            builder.extend(wearableOptions);
+            return new Notification[] { builder.build() };
+        }
+    }
+
+    private static class BigPictureNotificationPreset extends NotificationPreset {
+        public BigPictureNotificationPreset() {
+            super(R.string.big_picture_example, R.string.example_content_title,
+                R.string.example_content_text);
+        }
+
+        @Override
+        public Notification[] buildNotifications(Context context, BuildOptions options) {
+            NotificationCompat.BigPictureStyle style = new NotificationCompat.BigPictureStyle();
+            style.bigPicture(BitmapFactory.decodeResource(context.getResources(),
+                    R.drawable.example_big_picture));
+            style.setBigContentTitle(context.getString(R.string.big_picture_style_example_title));
+            style.setSummaryText(context.getString(
+                    R.string.big_picture_style_example_summary_text));
+
+            NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
+                    .setStyle(style);
+            NotificationCompat.WearableExtender wearableOptions =
+                    new NotificationCompat.WearableExtender();
+            applyBasicOptions(context, builder, wearableOptions, options);
+            builder.extend(wearableOptions);
+            return new Notification[] { builder.build() };
+        }
+    }
+
+    private static class BigTextNotificationPreset extends NotificationPreset {
+        public BigTextNotificationPreset() {
+            super(R.string.big_text_example, R.string.example_content_title,
+                R.string.example_content_text);
+        }
+
+        @Override
+        public Notification[] buildNotifications(Context context, BuildOptions options) {
+            NotificationCompat.BigTextStyle style = new NotificationCompat.BigTextStyle();
+            style.bigText(context.getString(R.string.big_text_example_big_text));
+            style.setBigContentTitle(context.getString(R.string.big_text_example_title));
+            style.setSummaryText(context.getString(R.string.big_text_example_summary_text));
+
+            NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
+                    .setStyle(style);
+            NotificationCompat.WearableExtender wearableOptions =
+                    new NotificationCompat.WearableExtender();
+            applyBasicOptions(context, builder, wearableOptions, options);
+            builder.extend(wearableOptions);
+            return new Notification[] { builder.build() };
+        }
+    }
+
+    private static class BottomAlignedNotificationPreset extends NotificationPreset {
+        public BottomAlignedNotificationPreset() {
+            super(R.string.bottom_aligned_example, R.string.example_content_title,
+                R.string.example_content_text);
+        }
+
+        @Override
+        public Notification[] buildNotifications(Context context, BuildOptions options) {
+            NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
+            NotificationCompat.WearableExtender wearableOptions =
+                    new NotificationCompat.WearableExtender();
+            applyBasicOptions(context, builder, wearableOptions, options);
+
+            NotificationCompat.Builder secondPageBuilder = new NotificationCompat.Builder(context);
+            secondPageBuilder.setContentTitle(
+                    context.getString(R.string.second_page_content_title));
+            secondPageBuilder.setContentText(context.getString(R.string.big_text_example_big_text));
+            secondPageBuilder.extend(new NotificationCompat.WearableExtender()
+                            .setStartScrollBottom(true));
+
+            wearableOptions.addPage(secondPageBuilder.build());
+            builder.extend(wearableOptions);
+            return new Notification[] { builder.build() };
+        }
+    }
+
+    private static class GravityNotificationPreset extends NotificationPreset {
+        public GravityNotificationPreset() {
+            super(R.string.gravity_example, R.string.example_content_title,
+                R.string.example_content_text);
+        }
+
+        @Override
+        public Notification[] buildNotifications(Context context, BuildOptions options) {
+            NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
+            NotificationCompat.WearableExtender wearableOptions =
+                    new NotificationCompat.WearableExtender();
+            applyBasicOptions(context, builder, wearableOptions, options);
+
+            NotificationCompat.Builder secondPageBuilder = new NotificationCompat.Builder(context)
+                    .setContentTitle(options.titlePreset)
+                    .setContentText(options.textPreset)
+                    .extend(new NotificationCompat.WearableExtender()
+                            .setGravity(Gravity.CENTER_VERTICAL));
+            wearableOptions.addPage(secondPageBuilder.build());
+
+            NotificationCompat.Builder thirdPageBuilder = new NotificationCompat.Builder(context)
+                    .setContentTitle(options.titlePreset)
+                    .setContentText(options.textPreset)
+                    .extend(new NotificationCompat.WearableExtender()
+                            .setGravity(Gravity.TOP));
+            wearableOptions.addPage(thirdPageBuilder.build());
+
+            wearableOptions.setGravity(Gravity.BOTTOM);
+            builder.extend(wearableOptions);
+            return new Notification[] { builder.build() };
+        }
+    }
+
+    private static class ContentActionNotificationPreset extends NotificationPreset {
+        public ContentActionNotificationPreset() {
+            super(R.string.content_action_example, R.string.example_content_title,
+                R.string.example_content_text);
+        }
+
+        @Override
+        public Notification[] buildNotifications(Context context, BuildOptions options) {
+            Notification secondPage = new NotificationCompat.Builder(context)
+                    .setContentTitle(context.getString(R.string.second_page_content_title))
+                    .setContentText(context.getString(R.string.second_page_content_text))
+                    .extend(new NotificationCompat.WearableExtender()
+                            .setContentAction(1))
+                    .build();
+
+            NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
+            NotificationCompat.Action action = new NotificationCompat.Action.Builder(
+                    R.drawable.ic_result_open, null, NotificationUtil.getExamplePendingIntent(
+                            context, R.string.example_content_action_clicked)).build();
+            NotificationCompat.Action action2 = new NotificationCompat.Action.Builder(
+                    R.drawable.ic_result_open, null, NotificationUtil.getExamplePendingIntent(
+                            context, R.string.example_content_action2_clicked)).build();
+            NotificationCompat.WearableExtender wearableOptions =
+                    new NotificationCompat.WearableExtender()
+                            .addAction(action)
+                            .addAction(action2)
+                            .addPage(secondPage)
+                            .setContentAction(0)
+                            .setHintHideIcon(true);
+            applyBasicOptions(context, builder, wearableOptions, options);
+            builder.extend(wearableOptions);
+            return new Notification[] { builder.build() };
+        }
+
+        @Override
+        public boolean actionsRequired() {
+            return true;
+        }
+    }
+
+    private static class ContentIconNotificationPreset extends NotificationPreset {
+        public ContentIconNotificationPreset() {
+            super(R.string.content_icon_example, R.string.example_content_title,
+                    R.string.example_content_text);
+        }
+
+        @Override
+        public Notification[] buildNotifications(Context context, BuildOptions options) {
+            Notification secondPage = new NotificationCompat.Builder(context)
+                    .setContentTitle(context.getString(R.string.second_page_content_title))
+                    .setContentText(context.getString(R.string.second_page_content_text))
+                    .extend(new NotificationCompat.WearableExtender()
+                            .setContentIcon(R.drawable.content_icon_small)
+                            .setContentIconGravity(Gravity.START))
+                    .build();
+
+            Notification thirdPage = new NotificationCompat.Builder(context)
+                    .setContentTitle(context.getString(R.string.third_page_content_title))
+                    .setContentText(context.getString(R.string.third_page_content_text))
+                    .extend(new NotificationCompat.WearableExtender()
+                            .setContentIcon(R.drawable.content_icon_large))
+                    .build();
+
+            Notification fourthPage = new NotificationCompat.Builder(context)
+                    .setContentTitle(context.getString(R.string.fourth_page_content_title))
+                    .setContentText(context.getString(R.string.fourth_page_content_text))
+                    .extend(new NotificationCompat.WearableExtender()
+                            .setContentIcon(R.drawable.content_icon_large)
+                            .setContentIconGravity(Gravity.START))
+                    .build();
+
+            NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
+            NotificationCompat.WearableExtender wearableOptions =
+                    new NotificationCompat.WearableExtender()
+                            .setHintHideIcon(true)
+                            .setContentIcon(R.drawable.content_icon_small)
+                            .addPage(secondPage)
+                            .addPage(thirdPage)
+                            .addPage(fourthPage);
+            applyBasicOptions(context, builder, wearableOptions, options);
+            builder.extend(wearableOptions);
+            return new Notification[] { builder.build() };
+        }
+    }
+
+    private static class MultiplePageNotificationPreset extends NotificationPreset {
+        public MultiplePageNotificationPreset() {
+            super(R.string.multiple_page_example, R.string.example_content_title,
+                R.string.example_content_text);
+        }
+
+        @Override
+        public Notification[] buildNotifications(Context context, BuildOptions options) {
+            NotificationCompat.Builder secondPageBuilder = new NotificationCompat.Builder(context)
+                    .setContentTitle(context.getString(R.string.second_page_content_title))
+                    .setContentText(context.getString(R.string.second_page_content_text));
+
+            NotificationCompat.Builder firstPageBuilder = new NotificationCompat.Builder(context);
+            NotificationCompat.WearableExtender firstPageWearableOptions =
+                    new NotificationCompat.WearableExtender();
+            applyBasicOptions(context, firstPageBuilder, firstPageWearableOptions, options);
+
+            Integer firstBackground = options.backgroundIds == null
+                    ? null : options.backgroundIds[0];
+            if (firstBackground != null) {
+                NotificationCompat.BigPictureStyle style =
+                        new NotificationCompat.BigPictureStyle();
+                style.bigPicture(BitmapFactory.decodeResource(context.getResources(),
+                        firstBackground));
+                firstPageBuilder.setStyle(style);
+            }
+
+            Integer secondBackground = options.backgroundIds == null
+                    ? null : options.backgroundIds[1];
+            if (secondBackground != null) {
+                NotificationCompat.BigPictureStyle style = new NotificationCompat.BigPictureStyle();
+                style.bigPicture(BitmapFactory.decodeResource(context.getResources(),
+                        secondBackground));
+                secondPageBuilder.setStyle(style);
+            }
+
+            firstPageBuilder.extend(
+                    firstPageWearableOptions.addPage(secondPageBuilder.build()));
+
+            return new Notification[]{ firstPageBuilder.build() };
+        }
+
+        @Override
+        public int countBackgroundPickersRequired() {
+            return 2; // This sample does 2 pages notifications.
+        }
+    }
+
+    private static class NotificationBundlePreset extends NotificationPreset {
+        public NotificationBundlePreset() {
+            super(R.string.bundle_example, R.string.example_content_title,
+                R.string.example_content_text);
+        }
+
+        @Override
+        public Notification[] buildNotifications(Context context, BuildOptions options) {
+            NotificationCompat.Builder childBuilder1 = new NotificationCompat.Builder(context)
+                    .setContentTitle(context.getString(R.string.first_child_content_title))
+                    .setContentText(context.getString(R.string.first_child_content_text))
+                    .setSmallIcon(R.mipmap.ic_launcher)
+                    .setLocalOnly(options.isLocalOnly)
+                    .setGroup(EXAMPLE_GROUP_KEY)
+                    .setSortKey("0");
+
+            NotificationCompat.Builder childBuilder2 = new NotificationCompat.Builder(context)
+                    .setContentTitle(context.getString(R.string.second_child_content_title))
+                    .setContentText(context.getString(R.string.second_child_content_text))
+                    .setSmallIcon(R.mipmap.ic_launcher)
+                    .addAction(R.mipmap.ic_launcher,
+                            context.getString(R.string.second_child_action),
+                            NotificationUtil.getExamplePendingIntent(
+                                    context, R.string.second_child_action_clicked))
+                    .setLocalOnly(options.isLocalOnly)
+                    .setGroup(EXAMPLE_GROUP_KEY)
+                    .setSortKey("1");
+
+            NotificationCompat.Builder summaryBuilder = new NotificationCompat.Builder(context)
+                    .setGroup(EXAMPLE_GROUP_KEY)
+                    .setGroupSummary(true);
+
+            NotificationCompat.WearableExtender summaryWearableOptions =
+                    new NotificationCompat.WearableExtender();
+            applyBasicOptions(context, summaryBuilder, summaryWearableOptions, options);
+            summaryBuilder.extend(summaryWearableOptions);
+
+            return new Notification[] { summaryBuilder.build(), childBuilder1.build(),
+                    childBuilder2.build() };
+        }
+    }
+}
diff --git a/samples/wearable/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/NotificationUtil.java b/samples/wearable/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/NotificationUtil.java
new file mode 100644
index 0000000..cd4b72c
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/NotificationUtil.java
@@ -0,0 +1,20 @@
+package com.example.android.support.wearable.notifications;
+
+import android.app.PendingIntent;
+import android.content.Context;
+import android.content.Intent;
+
+public class NotificationUtil {
+    public static final String EXTRA_MESSAGE =
+            "com.example.android.support.wearable.notifications.MESSAGE";
+    public static final String EXTRA_REPLY =
+            "com.example.android.support.wearable.notifications.REPLY";
+
+    public static PendingIntent getExamplePendingIntent(Context context, int messageResId) {
+        Intent intent = new Intent(NotificationIntentReceiver.ACTION_EXAMPLE)
+                .setClass(context, NotificationIntentReceiver.class);
+        intent.putExtra(EXTRA_MESSAGE, context.getString(messageResId));
+        return PendingIntent.getBroadcast(context, messageResId /* requestCode */, intent,
+                PendingIntent.FLAG_UPDATE_CURRENT);
+    }
+}
diff --git a/samples/wearable/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/PriorityPreset.java b/samples/wearable/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/PriorityPreset.java
new file mode 100644
index 0000000..7a1682e
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/PriorityPreset.java
@@ -0,0 +1,16 @@
+package com.example.android.support.wearable.notifications;
+
+import android.support.v4.app.NotificationCompat;
+
+/**
+ * Base class for notification priority presets.
+ */
+public abstract class PriorityPreset extends NamedPreset {
+    public PriorityPreset(int nameResId) {
+        super(nameResId);
+    }
+
+    /** Apply the priority to a notification builder */
+    public abstract void apply(NotificationCompat.Builder builder,
+            NotificationCompat.WearableExtender wearableOptions);
+}
diff --git a/samples/wearable/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/PriorityPresets.java b/samples/wearable/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/PriorityPresets.java
new file mode 100644
index 0000000..026f1aa
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/PriorityPresets.java
@@ -0,0 +1,39 @@
+package com.example.android.support.wearable.notifications;
+
+import android.app.Notification;
+import android.support.v4.app.NotificationCompat;
+
+/**
+ * Collection of notification priority presets.
+ */
+public class PriorityPresets {
+    public static final PriorityPreset DEFAULT = new SimplePriorityPreset(
+            R.string.default_priority, Notification.PRIORITY_DEFAULT);
+
+    public static final PriorityPreset[] PRESETS = new PriorityPreset[] {
+            new SimplePriorityPreset(R.string.min_priority, Notification.PRIORITY_MIN),
+            new SimplePriorityPreset(R.string.low_priority, Notification.PRIORITY_LOW),
+            DEFAULT,
+            new SimplePriorityPreset(R.string.high_priority, Notification.PRIORITY_HIGH),
+            new SimplePriorityPreset(R.string.max_priority, Notification.PRIORITY_MAX)
+    };
+
+    /**
+     * Simple notification priority preset that sets a priority using
+     * {@link android.support.v4.app.NotificationCompat.Builder#setPriority}
+     */
+    private static class SimplePriorityPreset extends PriorityPreset {
+        private final int mPriority;
+
+        public SimplePriorityPreset(int nameResId, int priority) {
+            super(nameResId);
+            mPriority = priority;
+        }
+
+        @Override
+        public void apply(NotificationCompat.Builder builder,
+                NotificationCompat.WearableExtender wearableOptions) {
+            builder.setPriority(mPriority);
+        }
+    }
+}
diff --git a/samples/wearable/Notifications/Application/src/main/res/drawable-hdpi/example_large_icon.png b/samples/wearable/Notifications/Application/src/main/res/drawable-hdpi/example_large_icon.png
new file mode 100644
index 0000000..545f8ce
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/res/drawable-hdpi/example_large_icon.png
Binary files differ
diff --git a/samples/wearable/Notifications/Application/src/main/res/drawable-hdpi/ic_full_action.png b/samples/wearable/Notifications/Application/src/main/res/drawable-hdpi/ic_full_action.png
new file mode 100644
index 0000000..1f27499
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/res/drawable-hdpi/ic_full_action.png
Binary files differ
diff --git a/samples/wearable/Notifications/Application/src/main/res/drawable-hdpi/ic_full_reply.png b/samples/wearable/Notifications/Application/src/main/res/drawable-hdpi/ic_full_reply.png
new file mode 100644
index 0000000..66388d5
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/res/drawable-hdpi/ic_full_reply.png
Binary files differ
diff --git a/samples/wearable/Notifications/Application/src/main/res/drawable-hdpi/ic_result_open.png b/samples/wearable/Notifications/Application/src/main/res/drawable-hdpi/ic_result_open.png
new file mode 100644
index 0000000..db8af57
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/res/drawable-hdpi/ic_result_open.png
Binary files differ
diff --git a/samples/wearable/Notifications/Application/src/main/res/drawable-mdpi/ic_full_action.png b/samples/wearable/Notifications/Application/src/main/res/drawable-mdpi/ic_full_action.png
new file mode 100644
index 0000000..b70b74f
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/res/drawable-mdpi/ic_full_action.png
Binary files differ
diff --git a/samples/wearable/Notifications/Application/src/main/res/drawable-mdpi/ic_full_reply.png b/samples/wearable/Notifications/Application/src/main/res/drawable-mdpi/ic_full_reply.png
new file mode 100644
index 0000000..60ce9f9
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/res/drawable-mdpi/ic_full_reply.png
Binary files differ
diff --git a/samples/wearable/Notifications/Application/src/main/res/drawable-mdpi/ic_result_open.png b/samples/wearable/Notifications/Application/src/main/res/drawable-mdpi/ic_result_open.png
new file mode 100644
index 0000000..860d7de
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/res/drawable-mdpi/ic_result_open.png
Binary files differ
diff --git a/samples/wearable/Notifications/Application/src/main/res/drawable-nodpi/bg_1.png b/samples/wearable/Notifications/Application/src/main/res/drawable-nodpi/bg_1.png
new file mode 100644
index 0000000..9c80794
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/res/drawable-nodpi/bg_1.png
Binary files differ
diff --git a/samples/wearable/Notifications/Application/src/main/res/drawable-nodpi/bg_2.png b/samples/wearable/Notifications/Application/src/main/res/drawable-nodpi/bg_2.png
new file mode 100644
index 0000000..23d7062
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/res/drawable-nodpi/bg_2.png
Binary files differ
diff --git a/samples/wearable/Notifications/Application/src/main/res/drawable-nodpi/bg_3.png b/samples/wearable/Notifications/Application/src/main/res/drawable-nodpi/bg_3.png
new file mode 100644
index 0000000..588318d
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/res/drawable-nodpi/bg_3.png
Binary files differ
diff --git a/samples/wearable/Notifications/Application/src/main/res/drawable-nodpi/bg_4.png b/samples/wearable/Notifications/Application/src/main/res/drawable-nodpi/bg_4.png
new file mode 100644
index 0000000..bd1dfee
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/res/drawable-nodpi/bg_4.png
Binary files differ
diff --git a/samples/wearable/Notifications/Application/src/main/res/drawable-nodpi/bg_5.png b/samples/wearable/Notifications/Application/src/main/res/drawable-nodpi/bg_5.png
new file mode 100644
index 0000000..aa1ad23
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/res/drawable-nodpi/bg_5.png
Binary files differ
diff --git a/samples/wearable/Notifications/Application/src/main/res/drawable-nodpi/content_icon_large.png b/samples/wearable/Notifications/Application/src/main/res/drawable-nodpi/content_icon_large.png
new file mode 100644
index 0000000..0eab3b1
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/res/drawable-nodpi/content_icon_large.png
Binary files differ
diff --git a/samples/wearable/Notifications/Application/src/main/res/drawable-nodpi/content_icon_small.png b/samples/wearable/Notifications/Application/src/main/res/drawable-nodpi/content_icon_small.png
new file mode 100644
index 0000000..9a9f4b4
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/res/drawable-nodpi/content_icon_small.png
Binary files differ
diff --git a/samples/wearable/Notifications/Application/src/main/res/drawable-nodpi/example_big_picture.jpg b/samples/wearable/Notifications/Application/src/main/res/drawable-nodpi/example_big_picture.jpg
new file mode 100644
index 0000000..68473ba
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/res/drawable-nodpi/example_big_picture.jpg
Binary files differ
diff --git a/samples/wearable/Notifications/Application/src/main/res/drawable-xhdpi/ic_full_action.png b/samples/wearable/Notifications/Application/src/main/res/drawable-xhdpi/ic_full_action.png
new file mode 100644
index 0000000..6a76952
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/res/drawable-xhdpi/ic_full_action.png
Binary files differ
diff --git a/samples/wearable/Notifications/Application/src/main/res/drawable-xhdpi/ic_full_reply.png b/samples/wearable/Notifications/Application/src/main/res/drawable-xhdpi/ic_full_reply.png
new file mode 100644
index 0000000..dba6fa7
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/res/drawable-xhdpi/ic_full_reply.png
Binary files differ
diff --git a/samples/wearable/Notifications/Application/src/main/res/drawable-xhdpi/ic_result_open.png b/samples/wearable/Notifications/Application/src/main/res/drawable-xhdpi/ic_result_open.png
new file mode 100644
index 0000000..7d3c785
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/res/drawable-xhdpi/ic_result_open.png
Binary files differ
diff --git a/samples/wearable/Notifications/Application/src/main/res/drawable/selected_background.xml b/samples/wearable/Notifications/Application/src/main/res/drawable/selected_background.xml
new file mode 100644
index 0000000..351774a
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/res/drawable/selected_background.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <padding
+        android:top="4dp"
+        android:bottom="4dp"
+        android:left="4dp"
+        android:right="4dp"/>
+    <stroke
+        android:width="4dp"
+        android:color="@android:color/holo_blue_bright" />
+</shape>
\ No newline at end of file
diff --git a/samples/wearable/Notifications/Application/src/main/res/drawable/unselected_background.xml b/samples/wearable/Notifications/Application/src/main/res/drawable/unselected_background.xml
new file mode 100644
index 0000000..b9a43d1
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/res/drawable/unselected_background.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <padding
+        android:top="4dp"
+        android:bottom="4dp"
+        android:left="4dp"
+        android:right="4dp"/>
+    <stroke
+        android:width="4dp"
+        android:color="#ff000000" />
+</shape>
\ No newline at end of file
diff --git a/samples/wearable/Notifications/Application/src/main/res/layout/activity_main.xml b/samples/wearable/Notifications/Application/src/main/res/layout/activity_main.xml
new file mode 100644
index 0000000..1f57949
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/res/layout/activity_main.xml
@@ -0,0 +1,157 @@
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+        xmlns:tools="http://schemas.android.com/tools"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:paddingBottom="@dimen/activity_vertical_margin"
+        android:paddingLeft="@dimen/activity_horizontal_margin"
+        android:paddingRight="@dimen/activity_horizontal_margin"
+        android:paddingTop="@dimen/activity_vertical_margin"
+        tools:context="com.example.android.support.wearable.notifications.MainActivity"
+        tools:ignore="MergeRootFrame">
+
+    <LinearLayout android:id="@+id/container"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical">
+
+        <include layout="@layout/layout_divider" />
+
+        <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="horizontal">
+
+            <TextView
+                    android:layout_height="wrap_content"
+                    android:layout_width="wrap_content"
+                    android:minWidth="@dimen/editor_spinner_caption_min_width"
+                    android:minHeight="?android:attr/listPreferredItemHeightSmall"
+                    android:gravity="center_vertical"
+                    android:text="@string/preset" />
+
+            <Spinner android:id="@+id/preset_spinner"
+                    android:layout_marginLeft="10dp"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content" />
+
+        </LinearLayout>
+
+        <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="horizontal">
+
+            <TextView
+                    android:layout_height="wrap_content"
+                    android:layout_width="wrap_content"
+                    android:minWidth="@dimen/editor_spinner_caption_min_width"
+                    android:minHeight="?android:attr/listPreferredItemHeightSmall"
+                    android:gravity="center_vertical"
+                    android:text="@string/priority" />
+
+            <Spinner android:id="@+id/priority_spinner"
+                    android:layout_marginLeft="10dp"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content" />
+
+        </LinearLayout>
+
+        <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="horizontal">
+
+            <TextView
+                    android:layout_height="wrap_content"
+                    android:layout_width="wrap_content"
+                    android:minWidth="@dimen/editor_spinner_caption_min_width"
+                    android:minHeight="?android:attr/listPreferredItemHeightSmall"
+                    android:gravity="center_vertical"
+                    android:text="@string/actions" />
+
+            <Spinner android:id="@+id/actions_spinner"
+                    android:layout_marginLeft="10dp"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content" />
+
+        </LinearLayout>
+
+        <LinearLayout
+                android:id="@+id/title_edit_field"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="horizontal">
+
+            <TextView
+                    android:layout_height="wrap_content"
+                    android:layout_width="wrap_content"
+                    android:minWidth="@dimen/editor_spinner_caption_min_width"
+                    android:minHeight="?android:attr/listPreferredItemHeightSmall"
+                    android:gravity="center_vertical"
+                    android:text="@string/title" />
+
+            <EditText android:id="@+id/title_editor"
+                    android:layout_marginLeft="10dp"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content" />
+
+        </LinearLayout>
+
+        <LinearLayout
+                android:id="@+id/text_edit_field"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="horizontal">
+
+            <TextView
+                    android:layout_height="wrap_content"
+                    android:layout_width="wrap_content"
+                    android:minWidth="@dimen/editor_spinner_caption_min_width"
+                    android:minHeight="?android:attr/listPreferredItemHeightSmall"
+                    android:gravity="center_vertical"
+                    android:text="@string/text" />
+
+            <EditText android:id="@+id/text_editor"
+                    android:layout_marginLeft="10dp"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content" />
+
+        </LinearLayout>
+
+        <CheckBox android:id="@+id/include_large_icon_checkbox"
+                android:layout_height="wrap_content"
+                android:layout_width="wrap_content"
+                android:paddingTop="@dimen/editor_item_padding_top"
+                android:paddingBottom="@dimen/editor_item_padding_bottom"
+                android:text="@string/include_large_icon" />
+
+        <CheckBox android:id="@+id/local_only_checkbox"
+                android:layout_height="wrap_content"
+                android:layout_width="wrap_content"
+                android:paddingTop="@dimen/editor_item_padding_top"
+                android:paddingBottom="@dimen/editor_item_padding_bottom"
+                android:text="@string/local_only" />
+
+        <CheckBox android:id="@+id/include_content_intent_checkbox"
+                android:layout_height="wrap_content"
+                android:layout_width="wrap_content"
+                android:paddingTop="@dimen/editor_item_padding_top"
+                android:paddingBottom="@dimen/editor_item_padding_bottom"
+                android:text="@string/include_content_intent" />
+
+        <CheckBox android:id="@+id/vibrate_checkbox"
+                  android:layout_height="wrap_content"
+                  android:layout_width="wrap_content"
+                  android:paddingTop="@dimen/editor_item_padding_top"
+                  android:paddingBottom="@dimen/editor_item_padding_bottom"
+                  android:text="@string/vibrate" />
+
+        <LinearLayout android:id="@+id/background_pickers"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical">
+        </LinearLayout>
+
+    </LinearLayout>
+
+</ScrollView>
diff --git a/samples/wearable/Notifications/Application/src/main/res/layout/background_picker.xml b/samples/wearable/Notifications/Application/src/main/res/layout/background_picker.xml
new file mode 100644
index 0000000..e4e2952
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/res/layout/background_picker.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <TextView
+        android:id="@+id/bg_picker_label"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="@dimen/editor_item_padding_top"
+        android:paddingTop="@dimen/editor_item_padding_top"
+        android:paddingBottom="@dimen/editor_item_padding_top"
+        android:text="@string/bg_picker_label"/>
+
+    <HorizontalScrollView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+        <LinearLayout
+            android:id="@+id/bg_picker_container"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content">
+            <ImageView
+                android:id="@+id/bg_none"
+                android:background="@drawable/selected_background"
+                style="@style/bg_picker"
+                android:layout_width="@dimen/image_picker_item_side"
+                android:layout_height="@dimen/image_picker_item_side"
+                android:src="@android:color/background_light"/>
+            <ImageView
+                android:id="@+id/bg1"
+                style="@style/bg_picker"
+                android:layout_width="@dimen/image_picker_item_side"
+                android:layout_height="@dimen/image_picker_item_side"
+                android:tag="bg_1"
+                android:src="@drawable/bg_1"/>
+            <ImageView
+                android:id="@+id/bg2"
+                style="@style/bg_picker"
+                android:layout_width="@dimen/image_picker_item_side"
+                android:layout_height="@dimen/image_picker_item_side"
+                android:tag="bg_2"
+                android:src="@drawable/bg_2"/>
+            <ImageView
+                android:id="@+id/bg3"
+                style="@style/bg_picker"
+                android:layout_width="@dimen/image_picker_item_side"
+                android:layout_height="@dimen/image_picker_item_side"
+                android:tag="bg_3"
+                android:src="@drawable/bg_3"/>
+            <ImageView
+                android:id="@+id/bg4"
+                style="@style/bg_picker"
+                android:layout_width="@dimen/image_picker_item_side"
+                android:layout_height="@dimen/image_picker_item_side"
+                android:tag="bg_4"
+                android:src="@drawable/bg_4"/>
+            <ImageView
+                android:id="@+id/bg5"
+                style="@style/bg_picker"
+                android:layout_width="@dimen/image_picker_item_side"
+                android:layout_height="@dimen/image_picker_item_side"
+                android:tag="bg_5"
+                android:src="@drawable/bg_5"/>
+        </LinearLayout>
+
+    </HorizontalScrollView>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/samples/wearable/Notifications/Application/src/main/res/layout/layout_divider.xml b/samples/wearable/Notifications/Application/src/main/res/layout/layout_divider.xml
new file mode 100644
index 0000000..606c42b
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/res/layout/layout_divider.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright 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.
+  -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical" >
+
+    <TextView
+            android:id="@+id/divider_text"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="3dp"
+            android:textAllCaps="true"
+            android:textColor="@color/divider_text"
+            android:textSize="@dimen/editor_text_size"
+            android:text="@string/properties"/>
+
+    <View
+            android:layout_width="match_parent"
+            android:layout_height="1dp"
+            android:layout_marginTop="3dp"
+            android:background="@color/divider_text" />
+
+</LinearLayout>
diff --git a/samples/wearable/Notifications/Application/src/main/res/layout/simple_spinner_item.xml b/samples/wearable/Notifications/Application/src/main/res/layout/simple_spinner_item.xml
new file mode 100644
index 0000000..4eed3fa
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/res/layout/simple_spinner_item.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:textAppearance="?android:attr/textAppearanceListItemSmall"
+        android:gravity="center_vertical"
+        android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+        android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+        android:background="?android:attr/activatedBackgroundIndicator"
+        android:minHeight="?android:attr/listPreferredItemHeightSmall" />
diff --git a/samples/wearable/Notifications/Application/src/main/res/mipmap-hdpi/ic_launcher.png b/samples/wearable/Notifications/Application/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000..41479de
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/res/mipmap-hdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Notifications/Application/src/main/res/mipmap-mdpi/ic_launcher.png b/samples/wearable/Notifications/Application/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000..380b02f
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/res/mipmap-mdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Notifications/Application/src/main/res/mipmap-xhdpi/ic_launcher.png b/samples/wearable/Notifications/Application/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..b3e251e
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/res/mipmap-xhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Notifications/Application/src/main/res/mipmap-xxhdpi/ic_launcher.png b/samples/wearable/Notifications/Application/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..1962289
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/res/mipmap-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Notifications/Application/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/samples/wearable/Notifications/Application/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000..163f1f0
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/res/mipmap-xxxhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Notifications/Application/src/main/res/values/colors.xml b/samples/wearable/Notifications/Application/src/main/res/values/colors.xml
new file mode 100644
index 0000000..840978e
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/res/values/colors.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <color name="divider_text">@android:color/holo_blue_bright</color>
+</resources>
diff --git a/samples/wearable/Notifications/Application/src/main/res/values/dimens.xml b/samples/wearable/Notifications/Application/src/main/res/values/dimens.xml
new file mode 100644
index 0000000..8f4947f
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/res/values/dimens.xml
@@ -0,0 +1,13 @@
+<resources>
+    <!-- Default screen margins, per the Android Design guidelines. -->
+    <dimen name="activity_horizontal_margin">16dp</dimen>
+    <dimen name="activity_vertical_margin">16dp</dimen>
+
+    <dimen name="editor_text_size">12dp</dimen>
+    <dimen name="editor_item_padding_top">8dp</dimen>
+    <dimen name="editor_item_padding_bottom">8dp</dimen>
+    <dimen name="editor_spinner_caption_min_width">50dp</dimen>
+
+    <dimen name="image_picker_item_side">48dp</dimen>
+
+</resources>
diff --git a/samples/wearable/Notifications/Application/src/main/res/values/strings.xml b/samples/wearable/Notifications/Application/src/main/res/values/strings.xml
new file mode 100644
index 0000000..84535e7
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/res/values/strings.xml
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+    <string name="app_name">Wearable Notifications</string>
+    <string name="properties">Properties</string>
+    <string name="preset">Preset</string>
+    <string name="text">Text</string>
+    <string name="title">Title</string>
+    <string name="priority">Priority</string>
+    <string name="actions">Actions</string>
+    <string name="include_large_icon">Include large icon</string>
+    <string name="local_only">Local only</string>
+    <string name="include_content_intent">Include content intent</string>
+    <string name="vibrate">Vibrate</string>
+
+    <string name="basic_example">Basic example</string>
+    <string name="stylized_text_example">Stylized text example</string>
+    <string name="inbox_example">Inbox example</string>
+    <string name="big_picture_example">Big picture example</string>
+    <string name="big_text_example">Big text example</string>
+    <string name="bottom_aligned_example">Bottom-aligned example</string>
+    <string name="gravity_example">Gravity example</string>
+    <string name="content_action_example">Content action example</string>
+    <string name="content_icon_example">Content icon example</string>
+    <string name="multiple_page_example">Multiple page example</string>
+    <string name="bundle_example">Bundle example</string>
+
+    <string name="min_priority">Min priority</string>
+    <string name="low_priority">Low priority</string>
+    <string name="default_priority">Default priority</string>
+    <string name="high_priority">High priority</string>
+    <string name="max_priority">Max priority</string>
+
+    <string name="no_actions">No actions</string>
+    <string name="single_action">Single action</string>
+    <string name="long_title_action">Single action with a long title</string>
+    <string name="reply_action">Reply action</string>
+    <string name="reply_action_with_choices">Reply action with choices</string>
+    <string name="different_actions_on_phone_and_wearable">Different on phone and wearable</string>
+
+    <string name="example_action">Example action</string>
+    <string name="example_action_long_title">Example action with a long title which wraps</string>
+    <string name="example_reply_action">Example reply action</string>
+    <string name="phone_action">Phone action</string>
+    <string name="wearable_action">Wearable action</string>
+
+    <string name="example_action_clicked">Example action clicked</string>
+    <string name="example_reply_action_clicked">Example reply action clicked</string>
+    <string name="phone_action_clicked">Phone action clicked</string>
+    <string name="wearable_action_clicked">Wearable action clicked</string>
+    <string name="second_child_action_clicked">Second child action clicked</string>
+    <string name="content_intent_clicked">Content intent clicked</string>
+    <string name="example_content_action_clicked">Example content action clicked</string>
+    <string name="example_content_action2_clicked">Example content action 2 clicked</string>
+    <string name="example_notification_deleted">Example notification deleted</string>
+
+    <string name="example_content_title">Basic example title</string>
+    <string name="example_content_text">Basic example text</string>
+
+    <string name="big_text_example_title">Big text example title</string>
+    <string name="big_text_example_summary_text">Big text example summary</string>
+    <string name="big_text_example_big_text">
+        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
+        incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
+        exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
+        dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+        Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit
+        anim id est laborum.
+
+        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
+        incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
+        exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
+        dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+        Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit
+        anim id est laborum.
+
+        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
+        incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
+        exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
+        dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+        Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit
+        anim id est laborum.
+
+        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
+        incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
+        exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
+        dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+        Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit
+        anim id est laborum.
+
+        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
+        incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
+        exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
+        dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+        Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit
+        anim id est laborum.
+
+        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
+        incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
+        exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
+        dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+        Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit
+        anim id est laborum.
+
+        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
+        incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
+        exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
+        dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+        Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit
+        anim id est laborum.
+
+        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
+        incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
+        exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
+        dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+        Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit
+        anim id est laborum.
+
+        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
+        incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
+        exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
+        dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+        Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit
+        anim id est laborum.
+
+        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
+        incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
+        exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
+        dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+        Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit
+        anim id est laborum.
+
+        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
+        incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
+        exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
+        dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+        Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit
+        anim id est laborum.
+    </string>
+
+    <string name="inbox_style_example_title">Inbox style example title</string>
+    <string name="inbox_style_example_summary_text">Inbox style example summary</string>
+    <string name="inbox_style_example_line1">Inbox style example line 1</string>
+    <string name="inbox_style_example_line2">Inbox style example line 2</string>
+    <string name="inbox_style_example_line3">Inbox style example line 3</string>
+
+    <string name="big_picture_style_example_title">Big picture style example title</string>
+    <string name="big_picture_style_example_summary_text">Big picture style example summary</string>
+
+    <string name="second_page_content_title">Second page title</string>
+    <string name="second_page_content_text">Second page text</string>
+
+    <string name="third_page_content_title">Third page title</string>
+    <string name="third_page_content_text">Third page text</string>
+
+    <string name="fourth_page_content_title">Fourth page title</string>
+    <string name="fourth_page_content_text">Fourth page text</string>
+
+    <string name="first_child_content_title">First child title</string>
+    <string name="first_child_content_text">
+        First child text. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+        tempor incididunt ut labore et dolore magna aliqua.</string>
+    <string name="second_child_content_title">Second child title</string>
+    <string name="second_child_content_text">
+        Second child text. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+        tempor incididunt ut labore et dolore magna aliqua.</string>
+    <string name="second_child_action">Second child action</string>
+
+    <string name="example_reply_label">Message?</string>
+
+    <string name="example_reply_answer_label">Answer?</string>
+    <string name="yes">Yes</string>
+    <string name="no">No</string>
+    <string name="maybe">Maybe</string>
+
+    <string name="bg_picker_label">Page %s background: </string>
+
+</resources>
diff --git a/samples/wearable/Notifications/Application/src/main/res/values/styles.xml b/samples/wearable/Notifications/Application/src/main/res/values/styles.xml
new file mode 100644
index 0000000..7247b39
--- /dev/null
+++ b/samples/wearable/Notifications/Application/src/main/res/values/styles.xml
@@ -0,0 +1,13 @@
+<resources>
+
+    <!-- Base application theme. -->
+    <style name="AppTheme" parent="android:Theme.Holo">
+        <!-- Customize your theme here. -->
+    </style>
+
+    <style name="bg_picker">
+        <item name="android:layout_marginLeft">16dp</item>
+        <item name="android:background">@drawable/unselected_background</item>
+    </style>
+
+</resources>
diff --git a/samples/wearable/Notifications/Wearable/build.gradle b/samples/wearable/Notifications/Wearable/build.gradle
new file mode 100644
index 0000000..2a52030
--- /dev/null
+++ b/samples/wearable/Notifications/Wearable/build.gradle
@@ -0,0 +1,25 @@
+apply plugin: 'android'
+
+android {
+    compileSdkVersion 20
+    buildToolsVersion '20'
+
+    defaultConfig {
+        minSdkVersion 20
+        targetSdkVersion 20
+        versionCode 1
+        versionName "1.0"
+    }
+
+    buildTypes {
+        release {
+            runProguard false
+            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
+        }
+    }
+}
+
+dependencies {
+    compile "com.android.support:support-v13:20.0.+"
+    compile "com.google.android.support:wearable:1.0.+"
+}
diff --git a/samples/wearable/Notifications/Wearable/proguard-rules.txt b/samples/wearable/Notifications/Wearable/proguard-rules.txt
new file mode 100644
index 0000000..08e5bdc
--- /dev/null
+++ b/samples/wearable/Notifications/Wearable/proguard-rules.txt
@@ -0,0 +1,22 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
+-dontwarn android.support.wearable.view.DelayedConfirmationView
+-dontwarn android.support.wearable.view.CircledImageView
diff --git a/samples/wearable/Notifications/Wearable/src/main/AndroidManifest.xml b/samples/wearable/Notifications/Wearable/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..32b5039
--- /dev/null
+++ b/samples/wearable/Notifications/Wearable/src/main/AndroidManifest.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+        package="com.example.android.support.wearable.notifications" >
+
+    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="19"/>
+
+    <application
+            android:allowBackup="true"
+            android:icon="@mipmap/ic_launcher"
+            android:label="@string/app_name"
+            android:theme="@android:style/Theme.DeviceDefault.Light" >
+
+        <activity
+                android:name=".MainActivity"
+                android:label="@string/app_name" >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity
+                android:name=".BasicNotificationDisplayActivity"
+                android:exported="true"
+                android:allowEmbedded="true"
+                android:label="@string/app_name"
+                android:taskAffinity="" />
+        <activity
+                android:name=".AnimatedNotificationDisplayActivity"
+                android:exported="true"
+                android:allowEmbedded="true"
+                android:label="@string/app_name"
+                android:taskAffinity="" />
+    </application>
+
+</manifest>
diff --git a/samples/wearable/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/AnimatedNotificationDisplayActivity.java b/samples/wearable/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/AnimatedNotificationDisplayActivity.java
new file mode 100644
index 0000000..678d6e2
--- /dev/null
+++ b/samples/wearable/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/AnimatedNotificationDisplayActivity.java
@@ -0,0 +1,122 @@
+package com.example.android.support.wearable.notifications;
+
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.ObjectAnimator;
+import android.animation.PropertyValuesHolder;
+import android.app.Activity;
+import android.content.Context;
+import android.os.Bundle;
+import android.view.ViewGroup;
+import android.view.animation.AccelerateDecelerateInterpolator;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import java.util.Random;
+
+/**
+ * Custom display activity for an animated sample notification.
+ */
+public class AnimatedNotificationDisplayActivity extends Activity {
+    public static final String EXTRA_TITLE = "title";
+
+    private static final int BASE_ANIMATION_DURATION_MS = 2000;
+
+    private Random mRandom;
+    private int mAnimationRange;
+    private ImageView mImageView;
+    private Animator mAnimation;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_animated_notification_display);
+
+        mRandom = new Random(System.currentTimeMillis());
+        mAnimationRange = getResources().getDimensionPixelSize(R.dimen.animation_range);
+
+        String title = getIntent().getStringExtra(EXTRA_TITLE);
+        ((TextView) findViewById(R.id.title)).setText(title);
+
+        mImageView = new ImageView(this);
+        mImageView.setImageResource(R.drawable.example_big_picture);
+
+        ImageZoomView zoomView = new ImageZoomView(this, mImageView, mAnimationRange);
+        zoomView.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
+                ViewGroup.LayoutParams.MATCH_PARENT));
+
+        ((FrameLayout) findViewById(R.id.container)).addView(zoomView, 0);
+
+        createNextAnimation(false);
+    }
+
+    private void createNextAnimation(boolean start) {
+        float startX = mImageView.getTranslationX();
+        float startY = mImageView.getTranslationY();
+        float endX = -mRandom.nextInt(mAnimationRange);
+        float endY = -mRandom.nextInt(mAnimationRange);
+        float distance = (float) Math.sqrt(Math.pow(endX - startX, 2) + Math.pow(endY - startY, 2));
+
+        mAnimation = ObjectAnimator.ofPropertyValuesHolder(mImageView,
+                PropertyValuesHolder.ofFloat("translationX", startX, endX),
+                PropertyValuesHolder.ofFloat("translationY", startY, endY));
+        mAnimation.setInterpolator(new AccelerateDecelerateInterpolator());
+
+        mAnimation.setDuration(Math.max(BASE_ANIMATION_DURATION_MS / 10,
+                (int) (distance * BASE_ANIMATION_DURATION_MS / mAnimationRange)));
+
+        mAnimation.addListener(new AnimatorListenerAdapter() {
+            @Override
+            public void onAnimationEnd(Animator animation) {
+                super.onAnimationEnd(animation);
+                createNextAnimation(true);
+            }
+        });
+        if (start) {
+            mAnimation.start();
+        }
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        mAnimation.start();
+    }
+
+    @Override
+    protected void onPause() {
+        mAnimation.pause();
+        super.onPause();
+    }
+
+    /** Helper view that zooms in on a child image view */
+    private static class ImageZoomView extends ViewGroup {
+        private final int mZoomLength;
+
+        public ImageZoomView(Context context, ImageView imageView, int zoomLength) {
+            super(context);
+            addView(imageView);
+            mZoomLength = zoomLength;
+        }
+
+        @Override
+        protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
+            ImageView imageView = (ImageView) getChildAt(0);
+
+            // Resize the image view to be at least mZoomLength pixels larger in both
+            // dimensions than the containing view.
+            int imageWidth = imageView.getDrawable().getIntrinsicWidth();
+            int imageHeight = imageView.getDrawable().getIntrinsicHeight();
+            int minSize = Math.max(right - left, bottom - top) + mZoomLength;
+            if (imageWidth > imageHeight) {
+                imageWidth = minSize * imageWidth / imageHeight;
+                imageHeight = minSize;
+            } else {
+                imageHeight = minSize * imageHeight / imageWidth;
+                imageWidth = minSize;
+            }
+            imageView.layout(left, top, left + imageWidth, top + imageHeight);
+        }
+    }
+}
diff --git a/samples/wearable/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/BasicNotificationDisplayActivity.java b/samples/wearable/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/BasicNotificationDisplayActivity.java
new file mode 100644
index 0000000..d394fb3
--- /dev/null
+++ b/samples/wearable/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/BasicNotificationDisplayActivity.java
@@ -0,0 +1,22 @@
+package com.example.android.support.wearable.notifications;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.widget.TextView;
+
+/**
+ * Custom display activity for a sample notification.
+ */
+public class BasicNotificationDisplayActivity extends Activity {
+    public static final String EXTRA_TITLE = "title";
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_notification_display);
+
+        String title = getIntent().getStringExtra(EXTRA_TITLE);
+
+        ((TextView) findViewById(R.id.title)).setText(title);
+    }
+}
diff --git a/samples/wearable/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/MainActivity.java b/samples/wearable/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/MainActivity.java
new file mode 100644
index 0000000..74e5920
--- /dev/null
+++ b/samples/wearable/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/MainActivity.java
@@ -0,0 +1,89 @@
+package com.example.android.support.wearable.notifications;
+
+import android.app.Activity;
+import android.app.Notification;
+import android.app.RemoteInput;
+import android.content.Context;
+import android.os.Bundle;
+import android.support.v4.app.NotificationManagerCompat;
+import android.support.wearable.view.WearableListView;
+import android.text.TextUtils;
+import android.view.LayoutInflater;
+import android.view.ViewGroup;
+import android.widget.TextView;
+import android.widget.Toast;
+
+public class MainActivity extends Activity implements WearableListView.ClickListener {
+    private static final int SAMPLE_NOTIFICATION_ID = 0;
+    public static final String KEY_REPLY = "reply";
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_main);
+
+        WearableListView listView = (WearableListView) findViewById(R.id.list);
+        listView.setAdapter(new Adapter(this));
+        listView.setClickListener(this);
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        if (getIntent() != null) {
+            Bundle inputResults = RemoteInput.getResultsFromIntent(getIntent());
+            if (inputResults != null) {
+                CharSequence replyText = inputResults.getCharSequence(KEY_REPLY);
+                if (replyText != null) {
+                    Toast.makeText(this, TextUtils.concat(getString(R.string.reply_was), replyText),
+                            Toast.LENGTH_LONG).show();
+                }
+            }
+        }
+    }
+
+    /** Post a new or updated notification using the selected notification options. */
+    private void updateNotification(int presetIndex) {
+        NotificationPreset preset = NotificationPresets.PRESETS[presetIndex];
+        Notification notif = preset.buildNotification(this);
+        NotificationManagerCompat.from(this).notify(SAMPLE_NOTIFICATION_ID, notif);
+        finish();
+    }
+
+    @Override
+    public void onClick(WearableListView.ViewHolder v) {
+        updateNotification((Integer) v.itemView.getTag());
+    }
+
+    @Override
+    public void onTopEmptyRegionClick() {
+    }
+
+    private static final class Adapter extends WearableListView.Adapter {
+        private final Context mContext;
+        private final LayoutInflater mInflater;
+
+        private Adapter(Context context) {
+            mContext = context;
+            mInflater = LayoutInflater.from(context);
+        }
+
+        @Override
+        public WearableListView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+            return new WearableListView.ViewHolder(
+                    mInflater.inflate(R.layout.notif_preset_list_item, null));
+        }
+
+        @Override
+        public void onBindViewHolder(WearableListView.ViewHolder holder, int position) {
+            TextView view = (TextView) holder.itemView.findViewById(R.id.name);
+            view.setText(mContext.getString(NotificationPresets.PRESETS[position].nameResId));
+            holder.itemView.setTag(position);
+        }
+
+        @Override
+        public int getItemCount() {
+            return NotificationPresets.PRESETS.length;
+        }
+    }
+}
diff --git a/samples/wearable/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/NotificationPreset.java b/samples/wearable/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/NotificationPreset.java
new file mode 100644
index 0000000..7cfa1e8
--- /dev/null
+++ b/samples/wearable/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/NotificationPreset.java
@@ -0,0 +1,18 @@
+package com.example.android.support.wearable.notifications;
+
+import android.app.Notification;
+import android.content.Context;
+
+/**
+ * Base class for notification preset generators.
+ */
+public abstract class NotificationPreset {
+    public final int nameResId;
+
+    public NotificationPreset(int nameResId) {
+        this.nameResId = nameResId;
+    }
+
+    /** Start building a notification with this preset */
+    public abstract Notification buildNotification(Context context);
+}
diff --git a/samples/wearable/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/NotificationPresets.java b/samples/wearable/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/NotificationPresets.java
new file mode 100644
index 0000000..451b270
--- /dev/null
+++ b/samples/wearable/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/NotificationPresets.java
@@ -0,0 +1,298 @@
+package com.example.android.support.wearable.notifications;
+
+import android.app.Notification;
+import android.app.PendingIntent;
+import android.app.RemoteInput;
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.BitmapFactory;
+import android.graphics.Color;
+import android.graphics.Typeface;
+import android.net.Uri;
+import android.text.SpannableStringBuilder;
+import android.text.style.ForegroundColorSpan;
+import android.text.style.RelativeSizeSpan;
+import android.text.style.StrikethroughSpan;
+import android.text.style.StyleSpan;
+import android.text.style.SubscriptSpan;
+import android.text.style.SuperscriptSpan;
+import android.text.style.TypefaceSpan;
+import android.text.style.UnderlineSpan;
+import android.util.TypedValue;
+import android.view.Gravity;
+
+/**
+ * Collection of notification builder presets.
+ */
+public class NotificationPresets {
+    public static final NotificationPreset[] PRESETS = new NotificationPreset[] {
+            new BasicPreset(),
+            new StylizedTextPreset(),
+            new DisplayIntentPreset(),
+            new MultiSizeDisplayIntentPreset(),
+            new AnimatedDisplayIntentPreset(),
+            new ContentIconPreset()
+    };
+
+    private static Notification.Builder buildBasicNotification(Context context) {
+        return new Notification.Builder(context)
+                .setContentTitle(context.getString(R.string.example_content_title))
+                .setContentText(context.getString(R.string.example_content_text))
+                // Set a content intent to return to this sample
+                .setContentIntent(PendingIntent.getActivity(context, 0,
+                        new Intent(context, MainActivity.class), 0))
+                .setSmallIcon(R.mipmap.ic_launcher);
+    }
+
+    private static class BasicPreset extends NotificationPreset {
+        public BasicPreset() {
+            super(R.string.basic_example);
+        }
+
+        @Override
+        public Notification buildNotification(Context context) {
+            PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
+                    new Intent(context, MainActivity.class), 0);
+
+            Notification page2 = buildBasicNotification(context)
+                    .extend(new Notification.WearableExtender()
+                            .setHintShowBackgroundOnly(true)
+                            .setBackground(BitmapFactory.decodeResource(context.getResources(),
+                                    R.drawable.example_big_picture)))
+                    .build();
+
+            Notification page3 = buildBasicNotification(context)
+                    .setContentTitle(context.getString(R.string.third_page))
+                    .setContentText(null)
+                    .extend(new Notification.WearableExtender()
+                            .setContentAction(0 /* action A */))
+                    .build();
+
+            SpannableStringBuilder choice2 = new SpannableStringBuilder(
+                    "This choice is best");
+            choice2.setSpan(new StyleSpan(Typeface.BOLD_ITALIC), 5, 11, 0);
+
+            return buildBasicNotification(context)
+                    .extend(new Notification.WearableExtender()
+                            .addAction(new Notification.Action(R.mipmap.ic_launcher,
+                                    context.getString(R.string.action_a), pendingIntent))
+                            .addAction(new Notification.Action.Builder(R.mipmap.ic_launcher,
+                                    context.getString(R.string.reply), pendingIntent)
+                                    .addRemoteInput(new RemoteInput.Builder(MainActivity.KEY_REPLY)
+                                            .setChoices(new CharSequence[] {
+                                                    context.getString(R.string.choice_1),
+                                                    choice2 })
+                                            .build())
+                                    .build())
+                            .addPage(page2)
+                            .addPage(page3))
+                    .build();
+        }
+    }
+
+    private static class StylizedTextPreset extends NotificationPreset {
+        public StylizedTextPreset() {
+            super(R.string.stylized_text_example);
+        }
+
+        @Override
+        public Notification buildNotification(Context context) {
+            Notification.Builder builder = buildBasicNotification(context);
+
+            Notification.BigTextStyle style = new Notification.BigTextStyle();
+
+            SpannableStringBuilder title = new SpannableStringBuilder();
+            appendStyled(title, "Stylized", new StyleSpan(Typeface.BOLD_ITALIC));
+            title.append(" title");
+            SpannableStringBuilder text = new SpannableStringBuilder("Stylized text: ");
+            appendStyled(text, "C", new ForegroundColorSpan(Color.RED));
+            appendStyled(text, "O", new ForegroundColorSpan(Color.GREEN));
+            appendStyled(text, "L", new ForegroundColorSpan(Color.BLUE));
+            appendStyled(text, "O", new ForegroundColorSpan(Color.YELLOW));
+            appendStyled(text, "R", new ForegroundColorSpan(Color.MAGENTA));
+            appendStyled(text, "S", new ForegroundColorSpan(Color.CYAN));
+            text.append("; ");
+            appendStyled(text, "1.25x size", new RelativeSizeSpan(1.25f));
+            text.append("; ");
+            appendStyled(text, "0.75x size", new RelativeSizeSpan(0.75f));
+            text.append("; ");
+            appendStyled(text, "underline", new UnderlineSpan());
+            text.append("; ");
+            appendStyled(text, "strikethrough", new StrikethroughSpan());
+            text.append("; ");
+            appendStyled(text, "bold", new StyleSpan(Typeface.BOLD));
+            text.append("; ");
+            appendStyled(text, "italic", new StyleSpan(Typeface.ITALIC));
+            text.append("; ");
+            appendStyled(text, "sans-serif-thin", new TypefaceSpan("sans-serif-thin"));
+            text.append("; ");
+            appendStyled(text, "monospace", new TypefaceSpan("monospace"));
+            text.append("; ");
+            appendStyled(text, "sub", new SubscriptSpan());
+            text.append("script");
+            appendStyled(text, "super", new SuperscriptSpan());
+
+            style.setBigContentTitle(title);
+            style.bigText(text);
+
+            builder.setStyle(style);
+            return builder.build();
+        }
+
+        private void appendStyled(SpannableStringBuilder builder, String str, Object... spans) {
+            builder.append(str);
+            for (Object span : spans) {
+                builder.setSpan(span, builder.length() - str.length(), builder.length(), 0);
+            }
+        }
+    }
+
+    private static class DisplayIntentPreset extends NotificationPreset {
+        public DisplayIntentPreset() {
+            super(R.string.display_intent_example);
+        }
+
+        @Override
+        public Notification buildNotification(Context context) {
+            Intent displayIntent = new Intent(context, BasicNotificationDisplayActivity.class);
+            displayIntent.putExtra(BasicNotificationDisplayActivity.EXTRA_TITLE,
+                    context.getString(nameResId));
+            PendingIntent displayPendingIntent = PendingIntent.getActivity(context,
+                    0, displayIntent, PendingIntent.FLAG_UPDATE_CURRENT);
+            return buildBasicNotification(context)
+                    .extend(new Notification.WearableExtender()
+                            .setDisplayIntent(displayPendingIntent))
+                    .build();
+        }
+    }
+
+    private static class MultiSizeDisplayIntentPreset extends NotificationPreset {
+        public MultiSizeDisplayIntentPreset() {
+            super(R.string.multisize_display_intent_example);
+        }
+
+        @Override
+        public Notification buildNotification(Context context) {
+           PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
+                                   new Intent(context, MainActivity.class), 0);
+             Intent displayIntent = new Intent(context, BasicNotificationDisplayActivity.class)
+                    .putExtra(BasicNotificationDisplayActivity.EXTRA_TITLE,
+                            context.getString(R.string.xsmall_sized_display));
+            return buildBasicNotification(context)
+                    .extend(new Notification.WearableExtender()
+                            .setDisplayIntent(PendingIntent.getActivity(context, 0, displayIntent,
+                                    PendingIntent.FLAG_UPDATE_CURRENT))
+                            .addPage(createPageForSizePreset(context,
+                                    Notification.WearableExtender.SIZE_SMALL,
+                                    R.string.small_sized_display, 0))
+                            .addPage(createPageForSizePreset(context,
+                                    Notification.WearableExtender.SIZE_MEDIUM,
+                                    R.string.medium_sized_display, 1))
+                            .addPage(createPageForSizePreset(context,
+                                    Notification.WearableExtender.SIZE_LARGE,
+                                    R.string.large_sized_display, 2))
+                            .addPage(createPageForSizePreset(context,
+                                    Notification.WearableExtender.SIZE_FULL_SCREEN,
+                                    R.string.full_screen_display, 3))
+                             .addPage(createPageForCustomHeight(context, 256,
+                                    R.string.dp256_height_display))
+                            .addPage(createPageForCustomHeight(context, 512,
+                                    R.string.dp512_height_display))
+                            .addAction(new Notification.Action(R.mipmap.ic_launcher,
+                                    context.getString(R.string.action_a), pendingIntent))
+                            .addAction(new Notification.Action(R.mipmap.ic_launcher,
+                                    context.getString(R.string.action_b), pendingIntent))
+                            .addAction(new Notification.Action(R.mipmap.ic_launcher,
+                                    context.getString(R.string.action_c), pendingIntent))
+                            .addAction(new Notification.Action(R.mipmap.ic_launcher,
+                                    context.getString(R.string.action_d), pendingIntent))
+                            .setCustomSizePreset(Notification.WearableExtender.SIZE_XSMALL))
+                    .build();
+        }
+
+        private Notification createPageForCustomHeight(Context context, int heightDisplayDp,
+                int pageNameResId) {
+            int contentHeight = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
+                    heightDisplayDp, context.getResources().getDisplayMetrics());
+            Intent displayIntent = new Intent(context, BasicNotificationDisplayActivity.class)
+                    .setData(Uri.fromParts("example", "height/" + heightDisplayDp, null))
+                    .putExtra(BasicNotificationDisplayActivity.EXTRA_TITLE,
+                            context.getString(pageNameResId));
+            return buildBasicNotification(context)
+                    .extend(new Notification.WearableExtender()
+                            .setDisplayIntent(PendingIntent.getActivity(context, 0, displayIntent,
+                                    PendingIntent.FLAG_UPDATE_CURRENT))
+                            .setCustomContentHeight(contentHeight))
+                    .build();
+        }
+
+        private Notification createPageForSizePreset(Context context, int sizePreset,
+                int pageNameResId, int contentAction) {
+           Intent displayIntent = new Intent(context, BasicNotificationDisplayActivity.class)
+                    .setData(Uri.fromParts("example", "size/" + sizePreset, null))
+                    .putExtra(BasicNotificationDisplayActivity.EXTRA_TITLE,
+                            context.getString(pageNameResId));
+            return buildBasicNotification(context)
+                    .extend(new Notification.WearableExtender()
+                            .setDisplayIntent(PendingIntent.getActivity(context, 0, displayIntent,
+                                    PendingIntent.FLAG_UPDATE_CURRENT))
+                            .setCustomSizePreset(sizePreset)
+                            .setContentAction(contentAction))
+                    .build();
+        }
+    }
+
+    private static class AnimatedDisplayIntentPreset extends NotificationPreset {
+        public AnimatedDisplayIntentPreset() {
+            super(R.string.animated_display_intent_example);
+        }
+
+        @Override
+        public Notification buildNotification(Context context) {
+            Intent displayIntent = new Intent(context, AnimatedNotificationDisplayActivity.class);
+            displayIntent.putExtra(BasicNotificationDisplayActivity.EXTRA_TITLE,
+                    context.getString(nameResId));
+            PendingIntent displayPendingIntent = PendingIntent.getActivity(context,
+                    0, displayIntent, 0);
+            return buildBasicNotification(context)
+                    .extend(new Notification.WearableExtender()
+                            .setDisplayIntent(displayPendingIntent))
+                    .build();
+        }
+    }
+
+    private static class ContentIconPreset extends NotificationPreset {
+        public ContentIconPreset() {
+            super(R.string.content_icon_example);
+        }
+
+        @Override
+        public Notification buildNotification(Context context) {
+            Notification page2 = buildBasicNotification(context)
+                    .extend(new Notification.WearableExtender()
+                            .setContentIcon(R.drawable.content_icon_small)
+                            .setContentIconGravity(Gravity.START))
+                    .build();
+
+            Notification page3 = buildBasicNotification(context)
+                    .extend(new Notification.WearableExtender()
+                            .setContentIcon(R.drawable.content_icon_large))
+                    .build();
+
+            Notification page4 = buildBasicNotification(context)
+                    .extend(new Notification.WearableExtender()
+                            .setContentIcon(R.drawable.content_icon_large)
+                            .setContentIconGravity(Gravity.START))
+                    .build();
+
+            return buildBasicNotification(context)
+                    .extend(new Notification.WearableExtender()
+                            .setHintHideIcon(true)
+                            .setContentIcon(R.drawable.content_icon_small)
+                            .addPage(page2)
+                            .addPage(page3)
+                            .addPage(page4))
+                    .build();
+        }
+    }
+}
diff --git a/samples/wearable/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/WearableListItemLayout.java b/samples/wearable/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/WearableListItemLayout.java
new file mode 100644
index 0000000..4b2c1db
--- /dev/null
+++ b/samples/wearable/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/WearableListItemLayout.java
@@ -0,0 +1,75 @@
+package com.example.android.support.wearable.notifications;
+
+import android.content.Context;
+import android.graphics.drawable.GradientDrawable;
+import android.support.wearable.view.WearableListView;
+import android.util.AttributeSet;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+public class WearableListItemLayout extends LinearLayout implements WearableListView.Item {
+
+    private final float mFadedTextAlpha;
+    private final int mFadedCircleColor;
+    private final int mChosenCircleColor;
+    private ImageView mCircle;
+    private float mScale;
+    private TextView mName;
+
+    public WearableListItemLayout(Context context) {
+        this(context, null);
+    }
+
+    public WearableListItemLayout(Context context, AttributeSet attrs) {
+        this(context, attrs, 0);
+    }
+
+    public WearableListItemLayout(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+        mFadedTextAlpha = getResources().getInteger(R.integer.action_text_faded_alpha) / 100f;
+        mFadedCircleColor = getResources().getColor(R.color.wl_gray);
+        mChosenCircleColor = getResources().getColor(R.color.wl_blue);
+    }
+
+    @Override
+    protected void onFinishInflate() {
+        super.onFinishInflate();
+        mCircle = (ImageView) findViewById(R.id.circle);
+        mName = (TextView) findViewById(R.id.name);
+    }
+
+    @Override
+    public float getProximityMinValue() {
+        return 1f;
+    }
+
+    @Override
+    public float getProximityMaxValue() {
+        return 1.6f;
+    }
+
+    @Override
+    public float getCurrentProximityValue() {
+        return mScale;
+    }
+
+    @Override
+    public void setScalingAnimatorValue(float scale) {
+        mScale = scale;
+        mCircle.setScaleX(scale);
+        mCircle.setScaleY(scale);
+    }
+
+    @Override
+    public void onScaleUpStart() {
+        mName.setAlpha(1f);
+        ((GradientDrawable) mCircle.getDrawable()).setColor(mChosenCircleColor);
+    }
+
+    @Override
+    public void onScaleDownStart() {
+        ((GradientDrawable) mCircle.getDrawable()).setColor(mFadedCircleColor);
+        mName.setAlpha(mFadedTextAlpha);
+    }
+}
diff --git a/samples/wearable/Notifications/Wearable/src/main/res/drawable-nodpi/content_icon_large.png b/samples/wearable/Notifications/Wearable/src/main/res/drawable-nodpi/content_icon_large.png
new file mode 100644
index 0000000..0eab3b1
--- /dev/null
+++ b/samples/wearable/Notifications/Wearable/src/main/res/drawable-nodpi/content_icon_large.png
Binary files differ
diff --git a/samples/wearable/Notifications/Wearable/src/main/res/drawable-nodpi/content_icon_small.png b/samples/wearable/Notifications/Wearable/src/main/res/drawable-nodpi/content_icon_small.png
new file mode 100644
index 0000000..9a9f4b4
--- /dev/null
+++ b/samples/wearable/Notifications/Wearable/src/main/res/drawable-nodpi/content_icon_small.png
Binary files differ
diff --git a/samples/wearable/Notifications/Wearable/src/main/res/drawable-nodpi/example_big_picture.jpg b/samples/wearable/Notifications/Wearable/src/main/res/drawable-nodpi/example_big_picture.jpg
new file mode 100644
index 0000000..68473ba
--- /dev/null
+++ b/samples/wearable/Notifications/Wearable/src/main/res/drawable-nodpi/example_big_picture.jpg
Binary files differ
diff --git a/samples/wearable/Notifications/Wearable/src/main/res/drawable/wl_circle.xml b/samples/wearable/Notifications/Wearable/src/main/res/drawable/wl_circle.xml
new file mode 100644
index 0000000..a06c53a
--- /dev/null
+++ b/samples/wearable/Notifications/Wearable/src/main/res/drawable/wl_circle.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="oval">
+    <solid android:color="@color/wl_gray"/>
+</shape>
diff --git a/samples/wearable/Notifications/Wearable/src/main/res/layout/activity_animated_notification_display.xml b/samples/wearable/Notifications/Wearable/src/main/res/layout/activity_animated_notification_display.xml
new file mode 100644
index 0000000..285b117
--- /dev/null
+++ b/samples/wearable/Notifications/Wearable/src/main/res/layout/activity_animated_notification_display.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+        android:id="@+id/container"
+        android:orientation="vertical"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent" >
+
+    <TextView android:id="@+id/title"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:textSize="16sp"
+            android:padding="8dp"
+            android:gravity="center_vertical|center_horizontal"
+            android:textColor="#FF3333"
+            android:shadowColor="#992222"
+            android:shadowRadius="2"
+            android:shadowDx="1"
+            android:shadowDy="1" />
+
+</FrameLayout>
diff --git a/samples/wearable/Notifications/Wearable/src/main/res/layout/activity_main.xml b/samples/wearable/Notifications/Wearable/src/main/res/layout/activity_main.xml
new file mode 100644
index 0000000..0a3eb76
--- /dev/null
+++ b/samples/wearable/Notifications/Wearable/src/main/res/layout/activity_main.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.wearable.view.WearableListView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/list"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:scrollbars="none"
+    android:dividerHeight="0dp"/>
diff --git a/samples/wearable/Notifications/Wearable/src/main/res/layout/activity_notification_display.xml b/samples/wearable/Notifications/Wearable/src/main/res/layout/activity_notification_display.xml
new file mode 100644
index 0000000..02b61db
--- /dev/null
+++ b/samples/wearable/Notifications/Wearable/src/main/res/layout/activity_notification_display.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+        android:orientation="vertical"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent" >
+
+    <TextView android:id="@+id/title"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:textSize="16sp"
+            android:padding="8dp"
+            android:gravity="center_vertical|center_horizontal"
+            android:textColor="#7777FF"
+            android:shadowColor="#222299"
+            android:shadowRadius="2"
+            android:shadowDx="1"
+            android:shadowDy="1"
+            />
+
+</LinearLayout>
diff --git a/samples/wearable/Notifications/Wearable/src/main/res/layout/notif_preset_list_item.xml b/samples/wearable/Notifications/Wearable/src/main/res/layout/notif_preset_list_item.xml
new file mode 100644
index 0000000..68670f4
--- /dev/null
+++ b/samples/wearable/Notifications/Wearable/src/main/res/layout/notif_preset_list_item.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<com.example.android.support.wearable.notifications.WearableListItemLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:gravity="center_vertical"
+    android:layout_width="match_parent"
+    android:layout_height="80dp">
+    <ImageView
+        android:id="@+id/circle"
+        android:layout_height="20dp"
+        android:layout_margin="16dp"
+        android:layout_width="20dp"
+        android:src="@drawable/wl_circle"/>
+    <TextView
+        android:id="@+id/name"
+        android:gravity="center_vertical|left"
+        android:layout_width="wrap_content"
+        android:layout_marginRight="16dp"
+        android:layout_height="match_parent"
+        android:fontFamily="sans-serif-condensed-light"
+        android:lineSpacingExtra="-4sp"
+        android:textColor="@color/text_color"
+        android:textSize="16sp"/>
+</com.example.android.support.wearable.notifications.WearableListItemLayout>
diff --git a/samples/wearable/Notifications/Wearable/src/main/res/mipmap-hdpi/ic_launcher.png b/samples/wearable/Notifications/Wearable/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000..41479de
--- /dev/null
+++ b/samples/wearable/Notifications/Wearable/src/main/res/mipmap-hdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Notifications/Wearable/src/main/res/mipmap-mdpi/ic_launcher.png b/samples/wearable/Notifications/Wearable/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000..380b02f
--- /dev/null
+++ b/samples/wearable/Notifications/Wearable/src/main/res/mipmap-mdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Notifications/Wearable/src/main/res/mipmap-xhdpi/ic_launcher.png b/samples/wearable/Notifications/Wearable/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..b3e251e
--- /dev/null
+++ b/samples/wearable/Notifications/Wearable/src/main/res/mipmap-xhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Notifications/Wearable/src/main/res/mipmap-xxhdpi/ic_launcher.png b/samples/wearable/Notifications/Wearable/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..1962289
--- /dev/null
+++ b/samples/wearable/Notifications/Wearable/src/main/res/mipmap-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Notifications/Wearable/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/samples/wearable/Notifications/Wearable/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000..163f1f0
--- /dev/null
+++ b/samples/wearable/Notifications/Wearable/src/main/res/mipmap-xxxhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Notifications/Wearable/src/main/res/values/colors.xml b/samples/wearable/Notifications/Wearable/src/main/res/values/colors.xml
new file mode 100644
index 0000000..a8bb87b
--- /dev/null
+++ b/samples/wearable/Notifications/Wearable/src/main/res/values/colors.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <color name="wl_blue">#2878ff</color>
+    <color name="wl_gray">#c1c1c1</color>
+    <color name="text_color">#434343</color>
+</resources>
diff --git a/samples/wearable/Notifications/Wearable/src/main/res/values/dimens.xml b/samples/wearable/Notifications/Wearable/src/main/res/values/dimens.xml
new file mode 100644
index 0000000..9eaca988
--- /dev/null
+++ b/samples/wearable/Notifications/Wearable/src/main/res/values/dimens.xml
@@ -0,0 +1,7 @@
+<resources>
+    <!-- Default screen margins, per the Android Design guidelines. -->
+    <dimen name="activity_horizontal_margin">16dp</dimen>
+    <dimen name="activity_vertical_margin">16dp</dimen>
+    <dimen name="animation_range">60dp</dimen>
+
+</resources>
diff --git a/samples/wearable/Notifications/Wearable/src/main/res/values/integers.xml b/samples/wearable/Notifications/Wearable/src/main/res/values/integers.xml
new file mode 100644
index 0000000..c3bc252
--- /dev/null
+++ b/samples/wearable/Notifications/Wearable/src/main/res/values/integers.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <integer name="action_text_faded_alpha">40</integer>
+</resources>
diff --git a/samples/wearable/Notifications/Wearable/src/main/res/values/strings.xml b/samples/wearable/Notifications/Wearable/src/main/res/values/strings.xml
new file mode 100644
index 0000000..7c12e31
--- /dev/null
+++ b/samples/wearable/Notifications/Wearable/src/main/res/values/strings.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+    <string name="app_name">Wearable Notifications</string>
+    <string name="basic_example">Basic example</string>
+    <string name="stylized_text_example">Stylized text example</string>
+    <string name="display_intent_example">Display intent example</string>
+    <string name="multisize_display_intent_example">Multiple-sized display intent example</string>
+    <string name="animated_display_intent_example">Animated display intent example</string>
+    <string name="content_icon_example">Content icon example</string>
+
+    <string name="example_content_title">Example content title</string>
+    <string name="example_content_text">Example content text</string>
+
+    <string name="xsmall_sized_display">X-Small sized display</string>
+    <string name="small_sized_display">Small sized display</string>
+    <string name="medium_sized_display">Medium sized display</string>
+    <string name="large_sized_display">Large sized display</string>
+    <string name="full_screen_display">Full-Screen display</string>
+    <string name="dp256_height_display">256dp height display</string>
+    <string name="dp512_height_display">512dp height display</string>
+
+    <string name="action_a">Action A</string>
+    <string name="action_b">Action B</string>
+    <string name="action_c">Action C</string>
+    <string name="action_d">Action D</string>
+    <string name="reply">Reply</string>
+    <string name="reply_was">Reply was: </string>
+    <string name="third_page">Third page</string>
+    <string name="choice_1">Choice #1</string>
+</resources>
diff --git a/samples/wearable/Notifications/build.gradle b/samples/wearable/Notifications/build.gradle
new file mode 100644
index 0000000..8bafed4
--- /dev/null
+++ b/samples/wearable/Notifications/build.gradle
@@ -0,0 +1,14 @@
+buildscript {
+    repositories {
+        mavenCentral()
+    }
+    dependencies {
+        classpath 'com.android.tools.build:gradle:0.11.+'
+    }
+}
+
+allprojects {
+    repositories {
+        mavenCentral()
+    }
+}
diff --git a/samples/wearable/Notifications/gradle.properties b/samples/wearable/Notifications/gradle.properties
new file mode 100644
index 0000000..5d08ba7
--- /dev/null
+++ b/samples/wearable/Notifications/gradle.properties
@@ -0,0 +1,18 @@
+# Project-wide Gradle settings.
+
+# IDE (e.g. Android Studio) users:
+# Settings specified in this file will override any Gradle settings
+# configured through the IDE.
+
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+# Default value: -Xmx10248m -XX:MaxPermSize=256m
+# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
+
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
\ No newline at end of file
diff --git a/samples/wearable/Notifications/gradle/wrapper/gradle-wrapper.jar b/samples/wearable/Notifications/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..5838598
--- /dev/null
+++ b/samples/wearable/Notifications/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/samples/wearable/Notifications/gradle/wrapper/gradle-wrapper.properties b/samples/wearable/Notifications/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..e83e460
--- /dev/null
+++ b/samples/wearable/Notifications/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Fri Mar 14 14:02:22 PDT 2014
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=http\://services.gradle.org/distributions/gradle-1.11-all.zip
diff --git a/samples/wearable/Notifications/gradlew b/samples/wearable/Notifications/gradlew
new file mode 100755
index 0000000..91a7e26
--- /dev/null
+++ b/samples/wearable/Notifications/gradlew
@@ -0,0 +1,164 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+##  Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+    echo "$*"
+}
+
+die ( ) {
+    echo
+    echo "$*"
+    echo
+    exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+  CYGWIN* )
+    cygwin=true
+    ;;
+  Darwin* )
+    darwin=true
+    ;;
+  MINGW* )
+    msys=true
+    ;;
+esac
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched.
+if $cygwin ; then
+    [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+fi
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+        PRG="$link"
+    else
+        PRG=`dirname "$PRG"`"/$link"
+    fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >&-
+APP_HOME="`pwd -P`"
+cd "$SAVED" >&-
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+        # IBM's JDK on AIX uses strange locations for the executables
+        JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+        JAVACMD="$JAVA_HOME/bin/java"
+    fi
+    if [ ! -x "$JAVACMD" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+else
+    JAVACMD="java"
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+    MAX_FD_LIMIT=`ulimit -H -n`
+    if [ $? -eq 0 ] ; then
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+            MAX_FD="$MAX_FD_LIMIT"
+        fi
+        ulimit -n $MAX_FD
+        if [ $? -ne 0 ] ; then
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
+        fi
+    else
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+    fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+    # We build the pattern for arguments to be converted via cygpath
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+    SEP=""
+    for dir in $ROOTDIRSRAW ; do
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
+        SEP="|"
+    done
+    OURCYGPATTERN="(^($ROOTDIRS))"
+    # Add a user-defined pattern to the cygpath arguments
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+    fi
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
+    i=0
+    for arg in "$@" ; do
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
+
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+        else
+            eval `echo args$i`="\"$arg\""
+        fi
+        i=$((i+1))
+    done
+    case $i in
+        (0) set -- ;;
+        (1) set -- "$args0" ;;
+        (2) set -- "$args0" "$args1" ;;
+        (3) set -- "$args0" "$args1" "$args2" ;;
+        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+    esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+    JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/samples/wearable/Notifications/gradlew.bat b/samples/wearable/Notifications/gradlew.bat
new file mode 100755
index 0000000..aec9973
--- /dev/null
+++ b/samples/wearable/Notifications/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem  Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/samples/wearable/Notifications/settings.gradle b/samples/wearable/Notifications/settings.gradle
new file mode 100644
index 0000000..f3f25a5
--- /dev/null
+++ b/samples/wearable/Notifications/settings.gradle
@@ -0,0 +1 @@
+include 'Wearable', 'Application'
diff --git a/samples/wearable/Quiz/Application/_index.html b/samples/wearable/Quiz/Application/_index.html
new file mode 100644
index 0000000..39e7075
--- /dev/null
+++ b/samples/wearable/Quiz/Application/_index.html
@@ -0,0 +1,12 @@
+<p>This sample provides an example of an app that uses Google Play Services Wearable Data APIs to
+communicate between applications on a phone and a paired wearable device. Users can create quiz
+questions on the phone, each of which has a DataItem associated with it. These DataItems are then
+received on the wearable, which then displays them as notifications. Each notification contains the
+question as the first page, followed by answers as actions. When an answer is selected, the
+corresponding question's DataItem is updated, which allows the phone application to update the
+status of the question (i.e. did the user answer it correctly or not) and prompt the next question.
+</p>
+<p>At the end of the quiz, the sample uses the Google Play Services Wearable Message APIs to create
+an end-of-quiz report notification on the wearable, with an option to reset the quiz (by sending a
+message back to the phone).
+</p>
\ No newline at end of file
diff --git a/samples/wearable/Quiz/Application/build.gradle b/samples/wearable/Quiz/Application/build.gradle
new file mode 100644
index 0000000..8482f34
--- /dev/null
+++ b/samples/wearable/Quiz/Application/build.gradle
@@ -0,0 +1,30 @@
+apply plugin: 'android'
+
+android {
+    compileSdkVersion 20
+    buildToolsVersion '20'
+
+    defaultConfig {
+        minSdkVersion 18
+        targetSdkVersion 20
+        versionCode 1
+        versionName "1.0"
+    }
+
+    buildTypes {
+        release {
+            runProguard false
+            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
+        }
+    }
+
+    aaptOptions {
+        noCompress 'apk'
+    }
+}
+
+dependencies {
+    compile 'com.google.android.gms:play-services:5.0.+@aar'
+    compile "com.android.support:support-v13:20.0.+"
+    wearApp project(':Wearable')
+}
diff --git a/samples/wearable/Quiz/Application/proguard-rules.txt b/samples/wearable/Quiz/Application/proguard-rules.txt
new file mode 100644
index 0000000..08e5bdc
--- /dev/null
+++ b/samples/wearable/Quiz/Application/proguard-rules.txt
@@ -0,0 +1,22 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
+-dontwarn android.support.wearable.view.DelayedConfirmationView
+-dontwarn android.support.wearable.view.CircledImageView
diff --git a/samples/wearable/Quiz/Application/src/main/AndroidManifest.xml b/samples/wearable/Quiz/Application/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..fff21d0
--- /dev/null
+++ b/samples/wearable/Quiz/Application/src/main/AndroidManifest.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+        package="com.example.android.wearable.quiz" >
+
+    <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="19"/>
+
+    <application
+            android:allowBackup="true"
+            android:icon="@drawable/ic_launcher"
+            android:label="@string/app_name"
+            android:theme="@style/AppTheme">
+        <meta-data android:name="com.google.android.gms.version"
+                   android:value="@integer/google_play_services_version" />
+
+        <activity
+                android:name="com.example.android.wearable.quiz.MainActivity"
+                android:label="@string/app_name"
+                android:windowSoftInputMode="stateHidden"
+                android:configChanges="keyboardHidden|orientation|screenSize"  >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+
+    </application>
+
+</manifest>
diff --git a/samples/wearable/Quiz/Application/src/main/assets/Quiz.json b/samples/wearable/Quiz/Application/src/main/assets/Quiz.json
new file mode 100644
index 0000000..db2448d
--- /dev/null
+++ b/samples/wearable/Quiz/Application/src/main/assets/Quiz.json
@@ -0,0 +1,124 @@
+{
+"questions": [
+{
+"question": "What is the scientific name of a butterfly?",
+"answers": [
+"Apis",
+"Coleoptera",
+"Formicidae",
+"Rhopalocera"
+],
+"correctIndex": 3
+},
+{
+"question": "How hot is the surface of the sun?",
+"answers": [
+"1,233 K",
+"5,778 K",
+"12,130 K",
+"101,300 K"
+],
+"correctIndex": 1
+},
+{
+"question": "Who are the actors in The Internship?",
+"answers": [
+"Ben Stiller, Jonah Hill",
+"Courteney Cox, Matt LeBlanc",
+"Kaley Cuoco, Jim Parsons",
+"Vince Vaughn, Owen Wilson"
+],
+"correctIndex": 3
+},
+{
+"question": "What is the capital of Spain?",
+"answers": [
+"Berlin",
+"Buenos Aires",
+"Madrid",
+"San Juan"
+],
+"correctIndex": 2
+},
+{
+"question": "What are the school colors of the University of Texas at Austin?",
+"answers": [
+"Black, Red",
+"Blue, Orange",
+"White, Burnt Orange",
+"White, Old gold, Gold"
+],
+"correctIndex": 2
+},
+{
+"question": "What is 70 degrees Fahrenheit in Celsius?",
+"answers": [
+"18.8889",
+"20",
+"21.1111",
+"158"
+],
+"correctIndex": 2
+},
+{
+"question": "When was Mahatma Gandhi born?",
+"answers": [
+"October 2, 1869",
+"December 15, 1872",
+"July 18, 1918",
+"January 15, 1929"
+],
+"correctIndex": 0
+},
+{
+"question": "How far is the moon from Earth?",
+"answers": [
+"7,918 miles (12,742 km)",
+"86,881 miles (139,822 km)",
+"238,400 miles (384,400 km)",
+"35,980,000 miles (57,910,000 km)"
+],
+"correctIndex": 2
+},
+{
+"question": "What is 65 times 52?",
+"answers": [
+"117",
+"3120",
+"3380",
+"3520"
+],
+"correctIndex": 2
+},
+{
+"question": "How tall is Mount Everest?",
+"answers": [
+"6,683 ft (2,037 m)",
+"7,918 ft (2,413 m)",
+"19,341 ft (5,895 m)",
+"29,029 ft (8,847 m)"
+],
+"correctIndex": 3
+},
+{
+"question": "When did The Avengers come out?",
+"answers": [
+"May 2, 2008",
+"May 4, 2012",
+"May 3, 2013",
+"April 4, 2014"
+],
+"correctIndex": 1
+},
+{
+"question": "What is 48,879 in hexidecimal?",
+"answers": [
+"0x18C1",
+"0xBEEF",
+"0xDEAD",
+"0x12D591"
+],
+"correctIndex": 1
+}
+]
+}
\ No newline at end of file
diff --git a/samples/wearable/Quiz/Application/src/main/java/com/example/android/wearable/quiz/Constants.java b/samples/wearable/Quiz/Application/src/main/java/com/example/android/wearable/quiz/Constants.java
new file mode 100644
index 0000000..832ddac
--- /dev/null
+++ b/samples/wearable/Quiz/Application/src/main/java/com/example/android/wearable/quiz/Constants.java
@@ -0,0 +1,23 @@
+package com.example.android.wearable.quiz;
+
+/** Constants used in the companion app. */
+public final class Constants {
+    private Constants() {
+    }
+
+    public static final String ANSWERS = "answers";
+    public static final String CHOSEN_ANSWER_CORRECT = "chosen_answer_correct";
+    public static final String CORRECT_ANSWER_INDEX = "correct_answer_index";
+    public static final String QUESTION = "question";
+    public static final String QUESTION_INDEX = "question_index";
+    public static final String QUESTION_WAS_ANSWERED = "question_was_answered";
+    public static final String QUESTION_WAS_DELETED = "question_was_deleted";
+
+    public static final String NUM_CORRECT = "num_correct";
+    public static final String NUM_INCORRECT = "num_incorrect";
+    public static final String NUM_SKIPPED = "num_skipped";
+
+    public static final String QUIZ_ENDED_PATH = "/quiz_ended";
+    public static final String QUIZ_EXITED_PATH = "/quiz_exited";
+    public static final String RESET_QUIZ_PATH = "/reset_quiz";
+}
diff --git a/samples/wearable/Quiz/Application/src/main/java/com/example/android/wearable/quiz/JsonUtils.java b/samples/wearable/Quiz/Application/src/main/java/com/example/android/wearable/quiz/JsonUtils.java
new file mode 100644
index 0000000..21ac24a
--- /dev/null
+++ b/samples/wearable/Quiz/Application/src/main/java/com/example/android/wearable/quiz/JsonUtils.java
@@ -0,0 +1,31 @@
+package com.example.android.wearable.quiz;
+
+import android.content.Context;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+final class JsonUtils {
+    public static final String JSON_FIELD_QUESTIONS = "questions";
+    public static final String JSON_FIELD_QUESTION = "question";
+    public static final String JSON_FIELD_ANSWERS = "answers";
+    public static final String JSON_FIELD_CORRECT_INDEX = "correctIndex";
+    public static final int NUM_ANSWER_CHOICES = 4;
+
+    private JsonUtils() {
+    }
+
+    public static JSONObject loadJsonFile(Context context, String fileName) throws IOException,
+            JSONException {
+        InputStream is = context.getAssets().open(fileName);
+        int size = is.available();
+        byte[] buffer = new byte[size];
+        is.read(buffer);
+        is.close();
+        String jsonString = new String(buffer);
+        return new JSONObject(jsonString);
+    }
+}
diff --git a/samples/wearable/Quiz/Application/src/main/java/com/example/android/wearable/quiz/MainActivity.java b/samples/wearable/Quiz/Application/src/main/java/com/example/android/wearable/quiz/MainActivity.java
new file mode 100644
index 0000000..94b66e9
--- /dev/null
+++ b/samples/wearable/Quiz/Application/src/main/java/com/example/android/wearable/quiz/MainActivity.java
@@ -0,0 +1,569 @@
+package com.example.android.wearable.quiz;
+
+import static com.example.android.wearable.quiz.Constants.ANSWERS;
+import static com.example.android.wearable.quiz.Constants.CHOSEN_ANSWER_CORRECT;
+import static com.example.android.wearable.quiz.Constants.CORRECT_ANSWER_INDEX;
+import static com.example.android.wearable.quiz.Constants.NUM_CORRECT;
+import static com.example.android.wearable.quiz.Constants.NUM_INCORRECT;
+import static com.example.android.wearable.quiz.Constants.NUM_SKIPPED;
+import static com.example.android.wearable.quiz.Constants.QUESTION;
+import static com.example.android.wearable.quiz.Constants.QUESTION_INDEX;
+import static com.example.android.wearable.quiz.Constants.QUESTION_WAS_ANSWERED;
+import static com.example.android.wearable.quiz.Constants.QUESTION_WAS_DELETED;
+import static com.example.android.wearable.quiz.Constants.QUIZ_ENDED_PATH;
+import static com.example.android.wearable.quiz.Constants.QUIZ_EXITED_PATH;
+import static com.example.android.wearable.quiz.Constants.RESET_QUIZ_PATH;
+
+import android.app.Activity;
+import android.graphics.Color;
+import android.net.Uri;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.LinearLayout;
+import android.widget.RadioGroup;
+import android.widget.TextView;
+
+import com.google.android.gms.common.ConnectionResult;
+import com.google.android.gms.common.api.GoogleApiClient;
+import com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks;
+import com.google.android.gms.common.api.ResultCallback;
+import com.google.android.gms.common.data.FreezableUtils;
+import com.google.android.gms.wearable.DataApi;
+import com.google.android.gms.wearable.DataEvent;
+import com.google.android.gms.wearable.DataEventBuffer;
+import com.google.android.gms.wearable.DataItem;
+import com.google.android.gms.wearable.DataItemBuffer;
+import com.google.android.gms.wearable.DataMap;
+import com.google.android.gms.wearable.DataMapItem;
+import com.google.android.gms.wearable.MessageApi;
+import com.google.android.gms.wearable.MessageEvent;
+import com.google.android.gms.wearable.Node;
+import com.google.android.gms.wearable.NodeApi;
+import com.google.android.gms.wearable.PutDataMapRequest;
+import com.google.android.gms.wearable.PutDataRequest;
+import com.google.android.gms.wearable.Wearable;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.PriorityQueue;
+
+/**
+ * Allows the user to create questions, which will be put as notifications on the watch's stream.
+ * The status of questions will be updated on the phone when the user answers them.
+ */
+public class MainActivity extends Activity implements DataApi.DataListener,
+        MessageApi.MessageListener, ConnectionCallbacks,
+        GoogleApiClient.OnConnectionFailedListener {
+
+    private static final String TAG = "ExampleQuizApp";
+    private static final String QUIZ_JSON_FILE = "Quiz.json";
+
+    // Various UI components.
+    private EditText questionEditText;
+    private EditText choiceAEditText;
+    private EditText choiceBEditText;
+    private EditText choiceCEditText;
+    private EditText choiceDEditText;
+    private RadioGroup choicesRadioGroup;
+    private TextView quizStatus;
+    private LinearLayout quizButtons;
+    private LinearLayout questionsContainer;
+    private Button readQuizFromFileButton;
+    private Button resetQuizButton;
+
+    private GoogleApiClient mGoogleApiClient;
+    private PriorityQueue<Question> mFutureQuestions;
+    private int mQuestionIndex = 0;
+    private boolean mHasQuestionBeenAsked = false;
+
+    // Data to display in end report.
+    private int mNumCorrect = 0;
+    private int mNumIncorrect = 0;
+    private int mNumSkipped = 0;
+
+    private static final Map<Integer, Integer> radioIdToIndex;
+
+    static {
+        Map<Integer, Integer> temp = new HashMap<Integer, Integer>(4);
+        temp.put(R.id.choice_a_radio, 0);
+        temp.put(R.id.choice_b_radio, 1);
+        temp.put(R.id.choice_c_radio, 2);
+        temp.put(R.id.choice_d_radio, 3);
+        radioIdToIndex = Collections.unmodifiableMap(temp);
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_main);
+
+        mGoogleApiClient = new GoogleApiClient.Builder(this)
+                .addApi(Wearable.API)
+                .addConnectionCallbacks(this)
+                .addOnConnectionFailedListener(this)
+                .build();
+        mFutureQuestions = new PriorityQueue<Question>(10);
+
+        // Find UI components to be used later.
+        questionEditText = (EditText) findViewById(R.id.question_text);
+        choiceAEditText = (EditText) findViewById(R.id.choice_a_text);
+        choiceBEditText = (EditText) findViewById(R.id.choice_b_text);
+        choiceCEditText = (EditText) findViewById(R.id.choice_c_text);
+        choiceDEditText = (EditText) findViewById(R.id.choice_d_text);
+        choicesRadioGroup = (RadioGroup) findViewById(R.id.choices_radio_group);
+        quizStatus = (TextView) findViewById(R.id.quiz_status);
+        quizButtons = (LinearLayout) findViewById(R.id.quiz_buttons);
+        questionsContainer = (LinearLayout) findViewById(R.id.questions_container);
+        readQuizFromFileButton = (Button) findViewById(R.id.read_quiz_from_file_button);
+        resetQuizButton = (Button) findViewById(R.id.reset_quiz_button);
+    }
+
+    @Override
+    protected void onStart() {
+        super.onStart();
+        if (!mGoogleApiClient.isConnected()) {
+            mGoogleApiClient.connect();
+        }
+    }
+
+    @Override
+    protected void onStop() {
+        Wearable.DataApi.removeListener(mGoogleApiClient, this);
+        Wearable.MessageApi.removeListener(mGoogleApiClient, this);
+
+        // Tell the wearable to end the quiz (counting unanswered questions as skipped), and then
+        // disconnect mGoogleApiClient.
+        DataMap dataMap = new DataMap();
+        dataMap.putInt(NUM_CORRECT, mNumCorrect);
+        dataMap.putInt(NUM_INCORRECT, mNumIncorrect);
+        if (mHasQuestionBeenAsked) {
+            mNumSkipped += 1;
+        }
+        mNumSkipped += mFutureQuestions.size();
+        dataMap.putInt(NUM_SKIPPED, mNumSkipped);
+        if (mNumCorrect + mNumIncorrect + mNumSkipped > 0) {
+            sendMessageToWearable(QUIZ_EXITED_PATH, dataMap.toByteArray());
+        }
+
+        clearQuizStatus();
+        super.onStop();
+    }
+
+    @Override
+    public void onConnected(Bundle connectionHint) {
+        Wearable.DataApi.addListener(mGoogleApiClient, this);
+        Wearable.MessageApi.addListener(mGoogleApiClient, this);
+    }
+
+    @Override
+    public void onConnectionSuspended(int cause) {
+        // Ignore
+    }
+
+    @Override
+    public void onConnectionFailed(ConnectionResult result) {
+        Log.e(TAG, "Failed to connect to Google Play Services");
+    }
+
+    @Override
+    public void onMessageReceived(MessageEvent messageEvent) {
+        if (messageEvent.getPath().equals(RESET_QUIZ_PATH)) {
+            runOnUiThread(new Runnable() {
+                @Override
+                public void run() {
+                    resetQuiz(null);
+                }
+            });
+        }
+    }
+
+    /**
+     * Used to ensure questions with smaller indexes come before questions with larger
+     * indexes. For example, question0 should come before question1.
+     */
+    private static class Question implements Comparable<Question> {
+        private String question;
+        private int questionIndex;
+        private String[] answers;
+        private int correctAnswerIndex;
+
+        public Question(String question, int questionIndex, String[] answers,
+                int correctAnswerIndex) {
+            this.question = question;
+            this.questionIndex = questionIndex;
+            this.answers = answers;
+            this.correctAnswerIndex = correctAnswerIndex;
+        }
+
+        public static Question fromJson(JSONObject questionObject, int questionIndex)
+                throws JSONException {
+            String question = questionObject.getString(JsonUtils.JSON_FIELD_QUESTION);
+            JSONArray answersJsonArray = questionObject.getJSONArray(JsonUtils.JSON_FIELD_ANSWERS);
+            String[] answers = new String[JsonUtils.NUM_ANSWER_CHOICES];
+            for (int j = 0; j < answersJsonArray.length(); j++) {
+                answers[j] = answersJsonArray.getString(j);
+            }
+            int correctIndex = questionObject.getInt(JsonUtils.JSON_FIELD_CORRECT_INDEX);
+            return new Question(question, questionIndex, answers, correctIndex);
+        }
+
+        @Override
+        public int compareTo(Question that) {
+            return this.questionIndex - that.questionIndex;
+        }
+
+        public PutDataRequest toPutDataRequest() {
+            PutDataMapRequest request = PutDataMapRequest.create("/question/" + questionIndex);
+            DataMap dataMap = request.getDataMap();
+            dataMap.putString(QUESTION, question);
+            dataMap.putInt(QUESTION_INDEX, questionIndex);
+            dataMap.putStringArray(ANSWERS, answers);
+            dataMap.putInt(CORRECT_ANSWER_INDEX, correctAnswerIndex);
+            return request.asPutDataRequest();
+        }
+    }
+
+    /**
+     * Create a quiz, as defined in Quiz.json, when the user clicks on "Read quiz from file."
+     * @throws IOException
+     */
+    public void readQuizFromFile(View view) throws IOException, JSONException {
+        clearQuizStatus();
+        JSONObject jsonObject = JsonUtils.loadJsonFile(this, QUIZ_JSON_FILE);
+        JSONArray jsonArray = jsonObject.getJSONArray(JsonUtils.JSON_FIELD_QUESTIONS);
+        for (int i = 0; i < jsonArray.length(); i++) {
+            JSONObject questionObject = jsonArray.getJSONObject(i);
+            Question question = Question.fromJson(questionObject, mQuestionIndex++);
+            addQuestionDataItem(question);
+            setNewQuestionStatus(question.question);
+        }
+    }
+
+    /**
+     * Adds a question (with answer choices) when user clicks on "Add Question."
+     */
+    public void addQuestion(View view) {
+        // Retrieve the question and answers supplied by the user.
+        String question = questionEditText.getText().toString();
+        String[] answers = new String[4];
+        answers[0] = choiceAEditText.getText().toString();
+        answers[1] = choiceBEditText.getText().toString();
+        answers[2] = choiceCEditText.getText().toString();
+        answers[3] = choiceDEditText.getText().toString();
+        int correctAnswerIndex = radioIdToIndex.get(choicesRadioGroup.getCheckedRadioButtonId());
+
+        addQuestionDataItem(new Question(question, mQuestionIndex++, answers, correctAnswerIndex));
+        setNewQuestionStatus(question);
+
+        // Clear the edit boxes to let the user input a new question.
+        questionEditText.setText("");
+        choiceAEditText.setText("");
+        choiceBEditText.setText("");
+        choiceCEditText.setText("");
+        choiceDEditText.setText("");
+    }
+
+    /**
+     * Adds the questions (and answers) to the wearable's stream by creating a Data Item
+     * that will be received on the wearable, which will create corresponding notifications.
+     */
+    private void addQuestionDataItem(Question question) {
+        if (!mHasQuestionBeenAsked) {
+            // Ask the question now.
+            Wearable.DataApi.putDataItem(mGoogleApiClient, question.toPutDataRequest());
+            setHasQuestionBeenAsked(true);
+        } else {
+            // Enqueue the question to be asked in the future.
+            mFutureQuestions.add(question);
+        }
+    }
+
+    /**
+     * Sets the question's status to be the default "unanswered." This will be updated when the
+     * user chooses an answer for the question on the wearable.
+     */
+    private void setNewQuestionStatus(String question) {
+        quizStatus.setVisibility(View.VISIBLE);
+        quizButtons.setVisibility(View.VISIBLE);
+        LayoutInflater inflater = LayoutInflater.from(this);
+        View questionStatusElem = inflater.inflate(R.layout.question_status_element, null, false);
+        ((TextView) questionStatusElem.findViewById(R.id.question)).setText(question);
+        ((TextView) questionStatusElem.findViewById(R.id.status))
+                .setText(R.string.question_unanswered);
+        questionsContainer.addView(questionStatusElem);
+    }
+
+    @Override
+    public void onDataChanged(DataEventBuffer dataEvents) {
+        final List<DataEvent> events = FreezableUtils.freezeIterable(dataEvents);
+        dataEvents.close();
+        runOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                for (DataEvent event : events) {
+                    if (event.getType() == DataEvent.TYPE_CHANGED) {
+                        DataMap dataMap = DataMapItem.fromDataItem(event.getDataItem())
+                                .getDataMap();
+                        boolean questionWasAnswered = dataMap.getBoolean(QUESTION_WAS_ANSWERED);
+                        boolean questionWasDeleted = dataMap.getBoolean(QUESTION_WAS_DELETED);
+                        if (questionWasAnswered) {
+                            // Update the answered question's status.
+                            int questionIndex = dataMap.getInt(QUESTION_INDEX);
+                            boolean questionCorrect = dataMap.getBoolean(CHOSEN_ANSWER_CORRECT);
+                            updateQuestionStatus(questionIndex, questionCorrect);
+                            askNextQuestionIfExists();
+                        } else if (questionWasDeleted) {
+                            // Update the deleted question's status by marking it as left blank.
+                            int questionIndex = dataMap.getInt(QUESTION_INDEX);
+                            markQuestionLeftBlank(questionIndex);
+                            askNextQuestionIfExists();
+                        }
+                    }
+                }
+            }
+        });
+    }
+
+    /**
+     * Updates the given question based on whether it was answered correctly or not.
+     * This involves changing the question's text color and changing the status text for it.
+     */
+    public void updateQuestionStatus(int questionIndex, boolean questionCorrect) {
+        LinearLayout questionStatusElement = (LinearLayout)
+                questionsContainer.getChildAt(questionIndex);
+        TextView questionText = (TextView) questionStatusElement.findViewById(R.id.question);
+        TextView questionStatus = (TextView) questionStatusElement.findViewById(R.id.status);
+        if (questionCorrect) {
+            questionText.setTextColor(Color.GREEN);
+            questionStatus.setText(R.string.question_correct);
+            mNumCorrect++;
+        } else {
+            questionText.setTextColor(Color.RED);
+            questionStatus.setText(R.string.question_incorrect);
+            mNumIncorrect++;
+        }
+    }
+
+    /**
+     * Marks a question as "left blank" when its corresponding question notification is deleted.
+     */
+    private void markQuestionLeftBlank(int index) {
+        LinearLayout questionStatusElement = (LinearLayout) questionsContainer.getChildAt(index);
+        if (questionStatusElement != null) {
+            TextView questionText = (TextView) questionStatusElement.findViewById(R.id.question);
+            TextView questionStatus = (TextView) questionStatusElement.findViewById(R.id.status);
+            if (questionStatus.getText().equals(getString(R.string.question_unanswered))) {
+                questionText.setTextColor(Color.YELLOW);
+                questionStatus.setText(R.string.question_left_blank);
+                mNumSkipped++;
+            }
+        }
+    }
+
+    /**
+     * Asks the next enqueued question if it exists, otherwise ends the quiz.
+     */
+    private void askNextQuestionIfExists() {
+        if (mFutureQuestions.isEmpty()) {
+            // Quiz has been completed - send message to wearable to display end report.
+            DataMap dataMap = new DataMap();
+            dataMap.putInt(NUM_CORRECT, mNumCorrect);
+            dataMap.putInt(NUM_INCORRECT, mNumIncorrect);
+            dataMap.putInt(NUM_SKIPPED, mNumSkipped);
+            sendMessageToWearable(QUIZ_ENDED_PATH, dataMap.toByteArray());
+            setHasQuestionBeenAsked(false);
+        } else {
+            // Ask next question by putting a DataItem that will be received on the wearable.
+            Wearable.DataApi.putDataItem(mGoogleApiClient,
+                    mFutureQuestions.remove().toPutDataRequest());
+            setHasQuestionBeenAsked(true);
+        }
+    }
+
+    private void sendMessageToWearable(final String path, final byte[] data) {
+        Wearable.NodeApi.getConnectedNodes(mGoogleApiClient).setResultCallback(
+                new ResultCallback<NodeApi.GetConnectedNodesResult>() {
+            @Override
+            public void onResult(NodeApi.GetConnectedNodesResult nodes) {
+                for (Node node : nodes.getNodes()) {
+                    Wearable.MessageApi.sendMessage(mGoogleApiClient, node.getId(), path, data);
+                }
+
+                if (path.equals(QUIZ_EXITED_PATH) && mGoogleApiClient.isConnected()) {
+                    mGoogleApiClient.disconnect();
+                }
+            }
+        });
+    }
+
+    /**
+     * Resets the current quiz when Reset Quiz is pressed.
+     */
+    public void resetQuiz(View view) {
+        // Reset quiz status in phone layout.
+        for(int i = 0; i < questionsContainer.getChildCount(); i++) {
+            LinearLayout questionStatusElement = (LinearLayout) questionsContainer.getChildAt(i);
+            TextView questionText = (TextView) questionStatusElement.findViewById(R.id.question);
+            TextView questionStatus = (TextView) questionStatusElement.findViewById(R.id.status);
+            questionText.setTextColor(Color.WHITE);
+            questionStatus.setText(R.string.question_unanswered);
+        }
+        // Reset data items and notifications on wearable.
+        if (mGoogleApiClient.isConnected()) {
+            Wearable.DataApi.getDataItems(mGoogleApiClient)
+                    .setResultCallback(new ResultCallback<DataItemBuffer>() {
+                        @Override
+                        public void onResult(DataItemBuffer result) {
+                            if (result.getStatus().isSuccess()) {
+                                List<DataItem> dataItemList = FreezableUtils.freezeIterable(result);
+                                result.close();
+                                resetDataItems(dataItemList);
+                            } else {
+                                if (Log.isLoggable(TAG, Log.DEBUG)) {
+                                    Log.d(TAG, "Reset quiz: failed to get Data Items to reset");
+                                }
+                            }
+                            result.close();
+                        }
+                    });
+        } else {
+            Log.e(TAG, "Failed to reset data items because client is disconnected from "
+                    + "Google Play Services");
+        }
+        setHasQuestionBeenAsked(false);
+        mNumCorrect = 0;
+        mNumIncorrect = 0;
+        mNumSkipped = 0;
+    }
+
+    private void resetDataItems(List<DataItem> dataItemList) {
+        if (mGoogleApiClient.isConnected()) {
+            for (final DataItem dataItem : dataItemList) {
+                final Uri dataItemUri = dataItem.getUri();
+                Wearable.DataApi.getDataItem(mGoogleApiClient, dataItemUri)
+                        .setResultCallback(new ResetDataItemCallback());
+            }
+        } else {
+            Log.e(TAG, "Failed to reset data items because client is disconnected from "
+                    + "Google Play Services");
+        }
+    }
+
+    /**
+     * Callback that marks a DataItem, which represents a question, as unanswered and not deleted.
+     */
+    private class ResetDataItemCallback implements ResultCallback<DataApi.DataItemResult> {
+        @Override
+        public void onResult(DataApi.DataItemResult dataItemResult) {
+            if (dataItemResult.getStatus().isSuccess()) {
+                PutDataMapRequest request = PutDataMapRequest.createFromDataMapItem(
+                                DataMapItem.fromDataItem(dataItemResult.getDataItem()));
+                DataMap dataMap = request.getDataMap();
+                dataMap.putBoolean(QUESTION_WAS_ANSWERED, false);
+                dataMap.putBoolean(QUESTION_WAS_DELETED, false);
+                if (!mHasQuestionBeenAsked && dataMap.getInt(QUESTION_INDEX) == 0) {
+                    // Ask the first question now.
+                    Wearable.DataApi.putDataItem(mGoogleApiClient, request.asPutDataRequest());
+                    setHasQuestionBeenAsked(true);
+                } else {
+                    // Enqueue future questions.
+                    mFutureQuestions.add(new Question(dataMap.getString(QUESTION),
+                            dataMap.getInt(QUESTION_INDEX), dataMap.getStringArray(ANSWERS),
+                            dataMap.getInt(CORRECT_ANSWER_INDEX)));
+                }
+            } else {
+                Log.e(TAG, "Failed to reset data item " + dataItemResult.getDataItem().getUri());
+            }
+        }
+    }
+
+    /**
+     * Clears the current quiz when user clicks on "New Quiz."
+     * On this end, this involves clearing the quiz status layout and deleting all DataItems. The
+     * wearable will then remove any outstanding question notifications upon receiving this change.
+     */
+    public void newQuiz(View view) {
+        clearQuizStatus();
+        if (mGoogleApiClient.isConnected()) {
+            Wearable.DataApi.getDataItems(mGoogleApiClient)
+                    .setResultCallback(new ResultCallback<DataItemBuffer>() {
+                        @Override
+                        public void onResult(DataItemBuffer result) {
+                            if (result.getStatus().isSuccess()) {
+                                List<Uri> dataItemUriList = new ArrayList<Uri>();
+                                for (final DataItem dataItem : result) {
+                                    dataItemUriList.add(dataItem.getUri());
+                                }
+                                result.close();
+                                deleteDataItems(dataItemUriList);
+                            } else {
+                                if (Log.isLoggable(TAG, Log.DEBUG)) {
+                                    Log.d(TAG, "Clear quiz: failed to get Data Items for deletion");
+                                }
+                            }
+                            result.close();
+                        }
+                    });
+        } else {
+            Log.e(TAG, "Failed to delete data items because client is disconnected from "
+                    + "Google Play Services");
+        }
+    }
+
+    /**
+     * Removes quiz status views (i.e. the views describing the status of each question).
+     */
+    private void clearQuizStatus() {
+        questionsContainer.removeAllViews();
+        quizStatus.setVisibility(View.INVISIBLE);
+        quizButtons.setVisibility(View.INVISIBLE);
+        setHasQuestionBeenAsked(false);
+        mFutureQuestions.clear();
+        mQuestionIndex = 0;
+        mNumCorrect = 0;
+        mNumIncorrect = 0;
+        mNumSkipped = 0;
+    }
+
+    private void deleteDataItems(List<Uri> dataItemUriList) {
+        if (mGoogleApiClient.isConnected()) {
+            for (final Uri dataItemUri : dataItemUriList) {
+                Wearable.DataApi.deleteDataItems(mGoogleApiClient, dataItemUri)
+                        .setResultCallback(new ResultCallback<DataApi.DeleteDataItemsResult>() {
+                            @Override
+                            public void onResult(DataApi.DeleteDataItemsResult deleteResult) {
+                                if (Log.isLoggable(TAG, Log.DEBUG)) {
+                                    if (deleteResult.getStatus().isSuccess()) {
+                                        Log.d(TAG, "Successfully deleted data item " + dataItemUri);
+                                    } else {
+                                        Log.d(TAG, "Failed to delete data item " + dataItemUri);
+                                    }
+                                }
+                            }
+                        });
+            }
+        } else {
+            Log.e(TAG, "Failed to delete data items because client is disconnected from "
+                    + "Google Play Services");
+        }
+    }
+
+    private void setHasQuestionBeenAsked(boolean b) {
+        mHasQuestionBeenAsked = b;
+        // Only let user click on Reset or Read from file if they have answered all the questions.
+        readQuizFromFileButton.setEnabled(!mHasQuestionBeenAsked);
+        resetQuizButton.setEnabled(!mHasQuestionBeenAsked);
+    }
+}
diff --git a/samples/wearable/Quiz/Application/src/main/res/drawable-hdpi/ic_choice_a.png b/samples/wearable/Quiz/Application/src/main/res/drawable-hdpi/ic_choice_a.png
new file mode 100644
index 0000000..de18ce1
--- /dev/null
+++ b/samples/wearable/Quiz/Application/src/main/res/drawable-hdpi/ic_choice_a.png
Binary files differ
diff --git a/samples/wearable/Quiz/Application/src/main/res/drawable-hdpi/ic_choice_b.png b/samples/wearable/Quiz/Application/src/main/res/drawable-hdpi/ic_choice_b.png
new file mode 100644
index 0000000..3cdfe97
--- /dev/null
+++ b/samples/wearable/Quiz/Application/src/main/res/drawable-hdpi/ic_choice_b.png
Binary files differ
diff --git a/samples/wearable/Quiz/Application/src/main/res/drawable-hdpi/ic_choice_c.png b/samples/wearable/Quiz/Application/src/main/res/drawable-hdpi/ic_choice_c.png
new file mode 100644
index 0000000..f0ed2ef
--- /dev/null
+++ b/samples/wearable/Quiz/Application/src/main/res/drawable-hdpi/ic_choice_c.png
Binary files differ
diff --git a/samples/wearable/Quiz/Application/src/main/res/drawable-hdpi/ic_choice_d.png b/samples/wearable/Quiz/Application/src/main/res/drawable-hdpi/ic_choice_d.png
new file mode 100644
index 0000000..c158d29
--- /dev/null
+++ b/samples/wearable/Quiz/Application/src/main/res/drawable-hdpi/ic_choice_d.png
Binary files differ
diff --git a/samples/wearable/Quiz/Application/src/main/res/drawable-hdpi/ic_launcher.png b/samples/wearable/Quiz/Application/src/main/res/drawable-hdpi/ic_launcher.png
new file mode 100755
index 0000000..91a8cff
--- /dev/null
+++ b/samples/wearable/Quiz/Application/src/main/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Quiz/Application/src/main/res/drawable-hdpi/ic_unknown_choice.png b/samples/wearable/Quiz/Application/src/main/res/drawable-hdpi/ic_unknown_choice.png
new file mode 100644
index 0000000..9aed517
--- /dev/null
+++ b/samples/wearable/Quiz/Application/src/main/res/drawable-hdpi/ic_unknown_choice.png
Binary files differ
diff --git a/samples/wearable/Quiz/Application/src/main/res/drawable-mdpi/ic_choice_a.png b/samples/wearable/Quiz/Application/src/main/res/drawable-mdpi/ic_choice_a.png
new file mode 100644
index 0000000..5745936
--- /dev/null
+++ b/samples/wearable/Quiz/Application/src/main/res/drawable-mdpi/ic_choice_a.png
Binary files differ
diff --git a/samples/wearable/Quiz/Application/src/main/res/drawable-mdpi/ic_choice_b.png b/samples/wearable/Quiz/Application/src/main/res/drawable-mdpi/ic_choice_b.png
new file mode 100644
index 0000000..958b92e
--- /dev/null
+++ b/samples/wearable/Quiz/Application/src/main/res/drawable-mdpi/ic_choice_b.png
Binary files differ
diff --git a/samples/wearable/Quiz/Application/src/main/res/drawable-mdpi/ic_choice_c.png b/samples/wearable/Quiz/Application/src/main/res/drawable-mdpi/ic_choice_c.png
new file mode 100644
index 0000000..9fcfab7
--- /dev/null
+++ b/samples/wearable/Quiz/Application/src/main/res/drawable-mdpi/ic_choice_c.png
Binary files differ
diff --git a/samples/wearable/Quiz/Application/src/main/res/drawable-mdpi/ic_choice_d.png b/samples/wearable/Quiz/Application/src/main/res/drawable-mdpi/ic_choice_d.png
new file mode 100644
index 0000000..821cadb
--- /dev/null
+++ b/samples/wearable/Quiz/Application/src/main/res/drawable-mdpi/ic_choice_d.png
Binary files differ
diff --git a/samples/wearable/Quiz/Application/src/main/res/drawable-mdpi/ic_launcher.png b/samples/wearable/Quiz/Application/src/main/res/drawable-mdpi/ic_launcher.png
new file mode 100755
index 0000000..728ee6d
--- /dev/null
+++ b/samples/wearable/Quiz/Application/src/main/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Quiz/Application/src/main/res/drawable-mdpi/ic_unknown_choice.png b/samples/wearable/Quiz/Application/src/main/res/drawable-mdpi/ic_unknown_choice.png
new file mode 100644
index 0000000..b8030ef
--- /dev/null
+++ b/samples/wearable/Quiz/Application/src/main/res/drawable-mdpi/ic_unknown_choice.png
Binary files differ
diff --git a/samples/wearable/Quiz/Application/src/main/res/drawable-xhdpi/ic_choice_a.png b/samples/wearable/Quiz/Application/src/main/res/drawable-xhdpi/ic_choice_a.png
new file mode 100644
index 0000000..3dba96f
--- /dev/null
+++ b/samples/wearable/Quiz/Application/src/main/res/drawable-xhdpi/ic_choice_a.png
Binary files differ
diff --git a/samples/wearable/Quiz/Application/src/main/res/drawable-xhdpi/ic_choice_b.png b/samples/wearable/Quiz/Application/src/main/res/drawable-xhdpi/ic_choice_b.png
new file mode 100644
index 0000000..9ca3c85
--- /dev/null
+++ b/samples/wearable/Quiz/Application/src/main/res/drawable-xhdpi/ic_choice_b.png
Binary files differ
diff --git a/samples/wearable/Quiz/Application/src/main/res/drawable-xhdpi/ic_choice_c.png b/samples/wearable/Quiz/Application/src/main/res/drawable-xhdpi/ic_choice_c.png
new file mode 100644
index 0000000..b84b3b7
--- /dev/null
+++ b/samples/wearable/Quiz/Application/src/main/res/drawable-xhdpi/ic_choice_c.png
Binary files differ
diff --git a/samples/wearable/Quiz/Application/src/main/res/drawable-xhdpi/ic_choice_d.png b/samples/wearable/Quiz/Application/src/main/res/drawable-xhdpi/ic_choice_d.png
new file mode 100644
index 0000000..185e91e
--- /dev/null
+++ b/samples/wearable/Quiz/Application/src/main/res/drawable-xhdpi/ic_choice_d.png
Binary files differ
diff --git a/samples/wearable/Quiz/Application/src/main/res/drawable-xhdpi/ic_launcher.png b/samples/wearable/Quiz/Application/src/main/res/drawable-xhdpi/ic_launcher.png
new file mode 100755
index 0000000..64a5854
--- /dev/null
+++ b/samples/wearable/Quiz/Application/src/main/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Quiz/Application/src/main/res/drawable-xxhdpi/ic_launcher.png b/samples/wearable/Quiz/Application/src/main/res/drawable-xxhdpi/ic_launcher.png
new file mode 100755
index 0000000..86a395b
--- /dev/null
+++ b/samples/wearable/Quiz/Application/src/main/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Quiz/Application/src/main/res/drawable/selected_background.xml b/samples/wearable/Quiz/Application/src/main/res/drawable/selected_background.xml
new file mode 100644
index 0000000..351774a
--- /dev/null
+++ b/samples/wearable/Quiz/Application/src/main/res/drawable/selected_background.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <padding
+        android:top="4dp"
+        android:bottom="4dp"
+        android:left="4dp"
+        android:right="4dp"/>
+    <stroke
+        android:width="4dp"
+        android:color="@android:color/holo_blue_bright" />
+</shape>
\ No newline at end of file
diff --git a/samples/wearable/Quiz/Application/src/main/res/drawable/unselected_background.xml b/samples/wearable/Quiz/Application/src/main/res/drawable/unselected_background.xml
new file mode 100644
index 0000000..b9a43d1
--- /dev/null
+++ b/samples/wearable/Quiz/Application/src/main/res/drawable/unselected_background.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <padding
+        android:top="4dp"
+        android:bottom="4dp"
+        android:left="4dp"
+        android:right="4dp"/>
+    <stroke
+        android:width="4dp"
+        android:color="#ff000000" />
+</shape>
\ No newline at end of file
diff --git a/samples/wearable/Quiz/Application/src/main/res/layout/activity_main.xml b/samples/wearable/Quiz/Application/src/main/res/layout/activity_main.xml
new file mode 100644
index 0000000..ed684f1
--- /dev/null
+++ b/samples/wearable/Quiz/Application/src/main/res/layout/activity_main.xml
@@ -0,0 +1,152 @@
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+        xmlns:tools="http://schemas.android.com/tools"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:paddingBottom="@dimen/activity_vertical_margin"
+        android:paddingLeft="@dimen/activity_horizontal_margin"
+        android:paddingRight="@dimen/activity_horizontal_margin"
+        android:paddingTop="@dimen/activity_vertical_margin"
+        tools:context="com.example.android.support.wearable.quiz.MainActivity"
+        tools:ignore="MergeRootFrame">
+
+    <LinearLayout android:id="@+id/container"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical">
+
+        <Button
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:id="@+id/read_quiz_from_file_button"
+            android:text="@string/read_from_file_button"
+            android:onClick="readQuizFromFile"
+            android:layout_gravity="center"/>
+
+        <LinearLayout
+            android:orientation="horizontal"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textAppearance="?android:attr/textAppearanceLarge"
+                android:text="@string/edit_question"
+                android:id="@+id/textView2" />
+
+            <EditText
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:id="@+id/question_text" />
+        </LinearLayout>
+
+        <LinearLayout
+            android:orientation="horizontal"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content">
+
+            <RadioGroup
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:orientation="vertical"
+                android:id="@+id/choices_radio_group">
+                <RadioButton
+                    android:layout_width="wrap_content"
+                    android:layout_height="50dp"
+                    android:text="@string/edit_choice_a"
+                    android:id="@+id/choice_a_radio"
+                    android:checked="true" />
+                <RadioButton
+                    android:layout_width="wrap_content"
+                    android:layout_height="50dp"
+                    android:text="@string/edit_choice_b"
+                    android:id="@+id/choice_b_radio"
+                    android:checked="false" />
+                <RadioButton
+                        android:layout_width="wrap_content"
+                    android:layout_height="50dp"
+                        android:text="@string/edit_choice_c"
+                        android:id="@+id/choice_c_radio" />
+                <RadioButton
+                        android:layout_width="wrap_content"
+                    android:layout_height="50dp"
+                        android:text="@string/edit_choice_d"
+                        android:id="@+id/choice_d_radio" />
+            </RadioGroup>
+
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical">
+                <EditText
+                    android:layout_width="match_parent"
+                    android:layout_height="50dp"
+                    android:id="@+id/choice_a_text" />
+                <EditText
+                    android:layout_width="match_parent"
+                    android:layout_height="50dp"
+                    android:id="@+id/choice_b_text" />
+                <EditText
+                    android:layout_width="match_parent"
+                    android:layout_height="50dp"
+                    android:id="@+id/choice_c_text" />
+                <EditText
+                    android:layout_width="match_parent"
+                    android:layout_height="50dp"
+                    android:id="@+id/choice_d_text" />
+              </LinearLayout>
+
+
+        </LinearLayout>
+
+        <Button android:id="@+id/add_question"
+            android:layout_height="wrap_content"
+            android:layout_width="wrap_content"
+            android:text="@string/add_question"
+            android:onClick="addQuestion"
+            android:layout_gravity="center">
+        </Button>
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textAppearance="?android:attr/textAppearanceLarge"
+            android:text="@string/quiz_status"
+            android:id="@+id/quiz_status"
+            android:paddingTop="30dp"
+            android:paddingBottom="10dp"
+            android:visibility="invisible"/>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:id="@+id/questions_container"
+            android:orientation="vertical"
+            android:paddingBottom="10dp">
+         </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:id="@+id/quiz_buttons"
+            android:layout_gravity="center"
+            android:visibility="invisible">
+            <Button android:id="@+id/reset_quiz_button"
+                android:layout_height="wrap_content"
+                android:layout_width="wrap_content"
+                android:text="@string/reset_quiz"
+                android:onClick="resetQuiz">
+            </Button>
+            <Button android:id="@+id/new_quiz_button"
+                android:layout_height="wrap_content"
+                android:layout_width="wrap_content"
+                android:text="@string/new_quiz"
+                android:onClick="newQuiz">
+            </Button>
+        </LinearLayout>
+
+
+    </LinearLayout>
+
+</ScrollView>
diff --git a/samples/wearable/Quiz/Application/src/main/res/layout/question_status_element.xml b/samples/wearable/Quiz/Application/src/main/res/layout/question_status_element.xml
new file mode 100644
index 0000000..3cf9ec2
--- /dev/null
+++ b/samples/wearable/Quiz/Application/src/main/res/layout/question_status_element.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical" android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textAppearance="?android:attr/textAppearanceMedium"
+        android:text="@string/question_placeholder"
+        android:id="@+id/question" />
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textAppearance="?android:attr/textAppearanceSmall"
+        android:text="@string/question_unanswered"
+        android:id="@+id/status" />
+</LinearLayout>
\ No newline at end of file
diff --git a/samples/wearable/Quiz/Application/src/main/res/values/dimens.xml b/samples/wearable/Quiz/Application/src/main/res/values/dimens.xml
new file mode 100644
index 0000000..8f4947f
--- /dev/null
+++ b/samples/wearable/Quiz/Application/src/main/res/values/dimens.xml
@@ -0,0 +1,13 @@
+<resources>
+    <!-- Default screen margins, per the Android Design guidelines. -->
+    <dimen name="activity_horizontal_margin">16dp</dimen>
+    <dimen name="activity_vertical_margin">16dp</dimen>
+
+    <dimen name="editor_text_size">12dp</dimen>
+    <dimen name="editor_item_padding_top">8dp</dimen>
+    <dimen name="editor_item_padding_bottom">8dp</dimen>
+    <dimen name="editor_spinner_caption_min_width">50dp</dimen>
+
+    <dimen name="image_picker_item_side">48dp</dimen>
+
+</resources>
diff --git a/samples/wearable/Quiz/Application/src/main/res/values/strings.xml b/samples/wearable/Quiz/Application/src/main/res/values/strings.xml
new file mode 100644
index 0000000..5d3a448
--- /dev/null
+++ b/samples/wearable/Quiz/Application/src/main/res/values/strings.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+    <string name="app_name">Quiz</string>
+
+    <string name="read_from_file_button">Read quiz from file</string>
+
+    <string name="edit_question">Question</string>
+    <string name="edit_choice_a">Choice A</string>
+    <string name="edit_choice_b">Choice B</string>
+    <string name="edit_choice_c">Choice C</string>
+    <string name="edit_choice_d">Choice D</string>
+    <string name="add_question">Add Question</string>
+
+    <string name="quiz_status">Quiz Status</string>
+    <string name="question_placeholder">Question</string>
+    <string name="question_unanswered">This question has not yet been answered.</string>
+    <string name="question_incorrect">This question has been answered incorrectly.</string>
+    <string name="question_correct">This question has been answered correctly!</string>
+    <string name="question_left_blank">This question was left blank.</string>
+
+    <string name="reset_quiz">Reset Quiz</string>
+    <string name="new_quiz">New Quiz</string>
+
+</resources>
diff --git a/samples/wearable/Quiz/Application/src/main/res/values/styles.xml b/samples/wearable/Quiz/Application/src/main/res/values/styles.xml
new file mode 100644
index 0000000..7247b39
--- /dev/null
+++ b/samples/wearable/Quiz/Application/src/main/res/values/styles.xml
@@ -0,0 +1,13 @@
+<resources>
+
+    <!-- Base application theme. -->
+    <style name="AppTheme" parent="android:Theme.Holo">
+        <!-- Customize your theme here. -->
+    </style>
+
+    <style name="bg_picker">
+        <item name="android:layout_marginLeft">16dp</item>
+        <item name="android:background">@drawable/unselected_background</item>
+    </style>
+
+</resources>
diff --git a/samples/wearable/Quiz/Wearable/build.gradle b/samples/wearable/Quiz/Wearable/build.gradle
new file mode 100644
index 0000000..35b2f1f
--- /dev/null
+++ b/samples/wearable/Quiz/Wearable/build.gradle
@@ -0,0 +1,26 @@
+apply plugin: 'android'
+
+android {
+    compileSdkVersion 20
+    buildToolsVersion '20'
+
+    defaultConfig {
+        minSdkVersion 20
+        targetSdkVersion 20
+        versionCode 1
+        versionName "1.0"
+    }
+
+    buildTypes {
+        release {
+            runProguard false
+            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
+        }
+    }
+}
+
+dependencies {
+    compile 'com.google.android.gms:play-services:5.0.+@aar'
+    compile "com.android.support:support-v13:20.0.+"
+    compile "com.google.android.support:wearable:1.0.+"
+}
diff --git a/samples/wearable/Quiz/Wearable/proguard-rules.txt b/samples/wearable/Quiz/Wearable/proguard-rules.txt
new file mode 100644
index 0000000..f2fe155
--- /dev/null
+++ b/samples/wearable/Quiz/Wearable/proguard-rules.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
diff --git a/samples/wearable/Quiz/Wearable/src/main/AndroidManifest.xml b/samples/wearable/Quiz/Wearable/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..3427de5
--- /dev/null
+++ b/samples/wearable/Quiz/Wearable/src/main/AndroidManifest.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.example.android.wearable.quiz" >
+
+    <uses-sdk
+        android:minSdkVersion="20"
+        android:targetSdkVersion="20" />
+
+    <application
+        android:allowBackup="true"
+        android:icon="@drawable/ic_launcher"
+        android:label="@string/app_name"
+        android:theme="@android:style/Theme.DeviceDefault" >
+        <meta-data
+            android:name="com.google.android.gms.version"
+            android:value="@integer/google_play_services_version" />
+
+        <service android:name=".QuizListenerService" >
+            <intent-filter>
+                <action android:name="com.google.android.gms.wearable.BIND_LISTENER" />
+            </intent-filter>
+        </service>
+        <service android:name=".UpdateQuestionService" />
+        <service android:name=".DeleteQuestionService" />
+        <service android:name=".QuizReportActionService" />
+
+    </application>
+
+</manifest>
diff --git a/samples/wearable/Quiz/Wearable/src/main/java/com/example/android/wearable/quiz/Constants.java b/samples/wearable/Quiz/Wearable/src/main/java/com/example/android/wearable/quiz/Constants.java
new file mode 100644
index 0000000..2038817
--- /dev/null
+++ b/samples/wearable/Quiz/Wearable/src/main/java/com/example/android/wearable/quiz/Constants.java
@@ -0,0 +1,25 @@
+package com.example.android.wearable.quiz;
+
+/** Constants used in the wearable app. */
+public final class Constants {
+    private Constants() {
+    }
+
+    public static final String ANSWERS = "answers";
+    public static final String CHOSEN_ANSWER_CORRECT = "chosen_answer_correct";
+    public static final String CORRECT_ANSWER_INDEX = "correct_answer_index";
+    public static final String QUESTION = "question";
+    public static final String QUESTION_INDEX = "question_index";
+    public static final String QUESTION_WAS_ANSWERED = "question_was_answered";
+    public static final String QUESTION_WAS_DELETED = "question_was_deleted";
+
+    public static final String NUM_CORRECT = "num_correct";
+    public static final String NUM_INCORRECT = "num_incorrect";
+    public static final String NUM_SKIPPED = "num_skipped";
+
+    public static final String QUIZ_ENDED_PATH = "/quiz_ended";
+    public static final String QUIZ_EXITED_PATH = "/quiz_exited";
+    public static final String RESET_QUIZ_PATH = "/reset_quiz";
+
+    public static final int CONNECT_TIMEOUT_MS = 100;
+}
diff --git a/samples/wearable/Quiz/Wearable/src/main/java/com/example/android/wearable/quiz/DeleteQuestionService.java b/samples/wearable/Quiz/Wearable/src/main/java/com/example/android/wearable/quiz/DeleteQuestionService.java
new file mode 100644
index 0000000..6c5e09f
--- /dev/null
+++ b/samples/wearable/Quiz/Wearable/src/main/java/com/example/android/wearable/quiz/DeleteQuestionService.java
@@ -0,0 +1,78 @@
+package com.example.android.wearable.quiz;
+
+import android.app.IntentService;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Bundle;
+import android.util.Log;
+
+import com.google.android.gms.common.ConnectionResult;
+import com.google.android.gms.common.api.GoogleApiClient;
+import com.google.android.gms.wearable.DataApi;
+import com.google.android.gms.wearable.DataMap;
+import com.google.android.gms.wearable.DataMapItem;
+import com.google.android.gms.wearable.PutDataMapRequest;
+import com.google.android.gms.wearable.PutDataRequest;
+import com.google.android.gms.wearable.Wearable;
+
+import java.util.concurrent.TimeUnit;
+
+import static com.example.android.wearable.quiz.Constants.CONNECT_TIMEOUT_MS;
+import static com.example.android.wearable.quiz.Constants.QUESTION_WAS_DELETED;
+
+/**
+ * Used to update quiz status on the phone when user dismisses a question on the watch.
+ */
+public class DeleteQuestionService extends IntentService
+        implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {
+
+    private static final String TAG = "DeleteQuestionReceiver";
+
+    private GoogleApiClient mGoogleApiClient;
+
+    public DeleteQuestionService() {
+        super(DeleteQuestionService.class.getSimpleName());
+    }
+
+    @Override
+    public void onCreate() {
+        super.onCreate();
+        mGoogleApiClient = new GoogleApiClient.Builder(this)
+                .addApi(Wearable.API)
+                .addConnectionCallbacks(this)
+                .addOnConnectionFailedListener(this)
+                .build();
+    }
+
+    @Override
+    public void onHandleIntent(Intent intent) {
+        mGoogleApiClient.blockingConnect(CONNECT_TIMEOUT_MS, TimeUnit.MILLISECONDS);
+        Uri dataItemUri = intent.getData();
+        if (!mGoogleApiClient.isConnected()) {
+            Log.e(TAG, "Failed to update data item " + dataItemUri
+                    + " because client is disconnected from Google Play Services");
+            return;
+        }
+        DataApi.DataItemResult dataItemResult = Wearable.DataApi.getDataItem(
+                mGoogleApiClient, dataItemUri).await();
+        PutDataMapRequest putDataMapRequest = PutDataMapRequest
+                .createFromDataMapItem(DataMapItem.fromDataItem(dataItemResult.getDataItem()));
+        DataMap dataMap = putDataMapRequest.getDataMap();
+        dataMap.putBoolean(QUESTION_WAS_DELETED, true);
+        PutDataRequest request = putDataMapRequest.asPutDataRequest();
+        Wearable.DataApi.putDataItem(mGoogleApiClient, request).await();
+        mGoogleApiClient.disconnect();
+    }
+
+    @Override
+    public void onConnected(Bundle bundle) {
+    }
+
+    @Override
+    public void onConnectionSuspended(int i) {
+    }
+
+    @Override
+    public void onConnectionFailed(ConnectionResult connectionResult) {
+    }
+}
diff --git a/samples/wearable/Quiz/Wearable/src/main/java/com/example/android/wearable/quiz/QuizListenerService.java b/samples/wearable/Quiz/Wearable/src/main/java/com/example/android/wearable/quiz/QuizListenerService.java
new file mode 100644
index 0000000..f8c5322
--- /dev/null
+++ b/samples/wearable/Quiz/Wearable/src/main/java/com/example/android/wearable/quiz/QuizListenerService.java
@@ -0,0 +1,203 @@
+package com.example.android.wearable.quiz;
+
+import static com.example.android.wearable.quiz.Constants.ANSWERS;
+import static com.example.android.wearable.quiz.Constants.CONNECT_TIMEOUT_MS;
+import static com.example.android.wearable.quiz.Constants.CORRECT_ANSWER_INDEX;
+import static com.example.android.wearable.quiz.Constants.NUM_CORRECT;
+import static com.example.android.wearable.quiz.Constants.NUM_INCORRECT;
+import static com.example.android.wearable.quiz.Constants.NUM_SKIPPED;
+import static com.example.android.wearable.quiz.Constants.QUESTION;
+import static com.example.android.wearable.quiz.Constants.QUESTION_INDEX;
+import static com.example.android.wearable.quiz.Constants.QUESTION_WAS_ANSWERED;
+import static com.example.android.wearable.quiz.Constants.QUESTION_WAS_DELETED;
+import static com.example.android.wearable.quiz.Constants.QUIZ_ENDED_PATH;
+import static com.example.android.wearable.quiz.Constants.QUIZ_EXITED_PATH;
+
+import android.app.Notification;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.content.Intent;
+import android.net.Uri;
+import android.text.SpannableStringBuilder;
+import android.text.style.ForegroundColorSpan;
+import android.util.Log;
+
+import com.google.android.gms.common.ConnectionResult;
+import com.google.android.gms.common.api.GoogleApiClient;
+import com.google.android.gms.common.data.FreezableUtils;
+import com.google.android.gms.wearable.DataEvent;
+import com.google.android.gms.wearable.DataEventBuffer;
+import com.google.android.gms.wearable.DataItem;
+import com.google.android.gms.wearable.DataMap;
+import com.google.android.gms.wearable.DataMapItem;
+import com.google.android.gms.wearable.MessageEvent;
+import com.google.android.gms.wearable.Wearable;
+import com.google.android.gms.wearable.WearableListenerService;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Listens to changes in DataItems, which represent quiz questions.
+ * If a new question is created, this builds a new notification for it.
+ * Otherwise, if a question is deleted, this cancels the corresponding notification.
+ *
+ * When the quiz ends, this listener receives a message telling it to create an end-of-quiz report.
+ */
+public class QuizListenerService extends WearableListenerService {
+    private static final String TAG = "QuizSample";
+    private static final int QUIZ_REPORT_NOTIF_ID = -1; // Never used by question notifications.
+    private static final Map<Integer, Integer> questionNumToDrawableId;
+
+    static {
+        Map<Integer, Integer> temp = new HashMap<Integer, Integer>(4);
+        temp.put(0, R.drawable.ic_choice_a);
+        temp.put(1, R.drawable.ic_choice_b);
+        temp.put(2, R.drawable.ic_choice_c);
+        temp.put(3, R.drawable.ic_choice_d);
+        questionNumToDrawableId = Collections.unmodifiableMap(temp);
+    }
+
+    @Override
+    public void onDataChanged(DataEventBuffer dataEvents) {
+        final List<DataEvent> events = FreezableUtils.freezeIterable(dataEvents);
+        dataEvents.close();
+
+        GoogleApiClient googleApiClient = new GoogleApiClient.Builder(this)
+                .addApi(Wearable.API)
+                .build();
+
+        ConnectionResult connectionResult = googleApiClient.blockingConnect(CONNECT_TIMEOUT_MS,
+                TimeUnit.MILLISECONDS);
+        if (!connectionResult.isSuccess()) {
+            Log.e(TAG, "QuizListenerService failed to connect to GoogleApiClient.");
+            return;
+        }
+
+        for (DataEvent event : events) {
+            if (event.getType() == DataEvent.TYPE_CHANGED) {
+                DataItem dataItem = event.getDataItem();
+                DataMap dataMap = DataMapItem.fromDataItem(dataItem).getDataMap();
+                if (dataMap.getBoolean(QUESTION_WAS_ANSWERED)
+                        || dataMap.getBoolean(QUESTION_WAS_DELETED)) {
+                    // Ignore the change in data; it is used in MainActivity to update
+                    // the question's status (i.e. was the answer right or wrong or left blank).
+                    continue;
+                }
+                String question = dataMap.getString(QUESTION);
+                int questionIndex = dataMap.getInt(QUESTION_INDEX);
+                int questionNum = questionIndex + 1;
+                String[] answers = dataMap.getStringArray(ANSWERS);
+                int correctAnswerIndex = dataMap.getInt(CORRECT_ANSWER_INDEX);
+                Intent deleteOperation = new Intent(this, DeleteQuestionService.class);
+                deleteOperation.setData(dataItem.getUri());
+                PendingIntent deleteIntent = PendingIntent.getService(this, 0,
+                        deleteOperation, PendingIntent.FLAG_UPDATE_CURRENT);
+                // First page of notification contains question as Big Text.
+                Notification.BigTextStyle bigTextStyle = new Notification.BigTextStyle()
+                        .setBigContentTitle(getString(R.string.question, questionNum))
+                        .bigText(question);
+                Notification.Builder builder = new Notification.Builder(this)
+                        .setStyle(bigTextStyle)
+                        .setSmallIcon(R.drawable.ic_launcher)
+                        .setLocalOnly(true)
+                        .setDeleteIntent(deleteIntent);
+
+                // Add answers as actions.
+                Notification.WearableExtender wearableOptions = new Notification.WearableExtender();
+                for (int i = 0; i < answers.length; i++) {
+                    Notification answerPage = new Notification.Builder(this)
+                            .setContentTitle(question)
+                            .setContentText(answers[i])
+                            .extend(new Notification.WearableExtender()
+                                    .setContentAction(i))
+                            .build();
+
+                    boolean correct = (i == correctAnswerIndex);
+                    Intent updateOperation = new Intent(this, UpdateQuestionService.class);
+                    // Give each intent a unique action.
+                    updateOperation.setAction("question_" + questionIndex + "_answer_" + i);
+                    updateOperation.setData(dataItem.getUri());
+                    updateOperation.putExtra(UpdateQuestionService.EXTRA_QUESTION_INDEX,
+                            questionIndex);
+                    updateOperation.putExtra(UpdateQuestionService.EXTRA_QUESTION_CORRECT, correct);
+                    PendingIntent updateIntent = PendingIntent.getService(this, 0, updateOperation,
+                            PendingIntent.FLAG_UPDATE_CURRENT);
+                    Notification.Action action = new Notification.Action.Builder(
+                            questionNumToDrawableId.get(i), null, updateIntent)
+                            .build();
+                    wearableOptions.addAction(action).addPage(answerPage);
+                }
+                builder.extend(wearableOptions);
+                Notification notification = builder.build();
+                ((NotificationManager) getSystemService(NOTIFICATION_SERVICE))
+                        .notify(questionIndex, notification);
+            } else if (event.getType() == DataEvent.TYPE_DELETED) {
+                Uri uri = event.getDataItem().getUri();
+                // URI's are of the form "/question/0", "/question/1" etc.
+                // We use the question index as the notification id.
+                int notificationId = Integer.parseInt(uri.getLastPathSegment());
+                ((NotificationManager) getSystemService(NOTIFICATION_SERVICE))
+                        .cancel(notificationId);
+            }
+            // Delete the quiz report, if it exists.
+            ((NotificationManager) getSystemService(NOTIFICATION_SERVICE))
+                    .cancel(QUIZ_REPORT_NOTIF_ID);
+        }
+        googleApiClient.disconnect();
+    }
+
+    @Override
+    public void onMessageReceived(MessageEvent messageEvent) {
+        String path = messageEvent.getPath();
+        if (path.equals(QUIZ_EXITED_PATH)) {
+            // Remove any lingering question notifications.
+            ((NotificationManager) getSystemService(NOTIFICATION_SERVICE)).cancelAll();
+        }
+        if (path.equals(QUIZ_ENDED_PATH) || path.equals(QUIZ_EXITED_PATH)) {
+            // Quiz ended - display overall results.
+            DataMap dataMap = DataMap.fromByteArray(messageEvent.getData());
+            int numCorrect = dataMap.getInt(NUM_CORRECT);
+            int numIncorrect = dataMap.getInt(NUM_INCORRECT);
+            int numSkipped = dataMap.getInt(NUM_SKIPPED);
+
+            Notification.Builder builder = new Notification.Builder(this)
+                    .setContentTitle(getString(R.string.quiz_report))
+                    .setSmallIcon(R.drawable.ic_launcher)
+                    .setLocalOnly(true);
+            SpannableStringBuilder quizReportText = new SpannableStringBuilder();
+            appendColored(quizReportText, String.valueOf(numCorrect), R.color.dark_green);
+            quizReportText.append(" " + getString(R.string.correct) + "\n");
+            appendColored(quizReportText, String.valueOf(numIncorrect), R.color.dark_red);
+            quizReportText.append(" " + getString(R.string.incorrect) + "\n");
+            appendColored(quizReportText, String.valueOf(numSkipped), R.color.dark_yellow);
+            quizReportText.append(" " + getString(R.string.skipped) + "\n");
+
+            builder.setContentText(quizReportText);
+            if (!path.equals(QUIZ_EXITED_PATH)) {
+                // Don't add reset option if user exited quiz (there might not be a quiz to reset!).
+                builder.addAction(R.drawable.ic_launcher,
+                        getString(R.string.reset_quiz), getResetQuizPendingIntent());
+            }
+            ((NotificationManager) getSystemService(NOTIFICATION_SERVICE))
+                    .notify(QUIZ_REPORT_NOTIF_ID, builder.build());
+        }
+    }
+
+    private void appendColored(SpannableStringBuilder builder, String text, int colorResId) {
+        builder.append(text).setSpan(new ForegroundColorSpan(getResources().getColor(colorResId)),
+                builder.length() - text.length(), builder.length(), 0);
+    }
+
+    /**
+     * Returns a PendingIntent that will send a message to the phone to reset the quiz when fired.
+     */
+    private PendingIntent getResetQuizPendingIntent() {
+        Intent intent = new Intent(QuizReportActionService.ACTION_RESET_QUIZ)
+                .setClass(this, QuizReportActionService.class);
+        return PendingIntent.getService(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
+    }
+}
diff --git a/samples/wearable/Quiz/Wearable/src/main/java/com/example/android/wearable/quiz/QuizReportActionService.java b/samples/wearable/Quiz/Wearable/src/main/java/com/example/android/wearable/quiz/QuizReportActionService.java
new file mode 100644
index 0000000..4bb5398
--- /dev/null
+++ b/samples/wearable/Quiz/Wearable/src/main/java/com/example/android/wearable/quiz/QuizReportActionService.java
@@ -0,0 +1,51 @@
+package com.example.android.wearable.quiz;
+
+import android.app.IntentService;
+import android.content.Intent;
+import android.util.Log;
+
+import com.google.android.gms.common.ConnectionResult;
+import com.google.android.gms.common.api.GoogleApiClient;
+import com.google.android.gms.wearable.Node;
+import com.google.android.gms.wearable.NodeApi;
+import com.google.android.gms.wearable.Wearable;
+
+import java.util.concurrent.TimeUnit;
+
+import static com.example.android.wearable.quiz.Constants.CONNECT_TIMEOUT_MS;
+import static com.example.android.wearable.quiz.Constants.RESET_QUIZ_PATH;
+
+/**
+ * Service to reset the quiz (by sending a message to the phone) when the Reset Quiz
+ * action on the Quiz Report is selected.
+ */
+public class QuizReportActionService extends IntentService {
+    public static final String ACTION_RESET_QUIZ = "com.example.android.wearable.quiz.RESET_QUIZ";
+
+    private static final String TAG = "QuizReportActionReceiver";
+
+    public QuizReportActionService() {
+        super(QuizReportActionService.class.getSimpleName());
+    }
+
+    @Override
+    public void onHandleIntent(Intent intent) {
+        if (intent.getAction().equals(ACTION_RESET_QUIZ)) {
+            GoogleApiClient googleApiClient = new GoogleApiClient.Builder(this)
+                    .addApi(Wearable.API)
+                    .build();
+            ConnectionResult result = googleApiClient.blockingConnect(CONNECT_TIMEOUT_MS,
+                    TimeUnit.MILLISECONDS);
+            if (!result.isSuccess()) {
+                Log.e(TAG, "QuizListenerService failed to connect to GoogleApiClient.");
+                return;
+            }
+            NodeApi.GetConnectedNodesResult nodes =
+                    Wearable.NodeApi.getConnectedNodes(googleApiClient).await();
+            for (Node node : nodes.getNodes()) {
+                Wearable.MessageApi.sendMessage(googleApiClient, node.getId(), RESET_QUIZ_PATH,
+                        new byte[0]);
+            }
+        }
+    }
+}
diff --git a/samples/wearable/Quiz/Wearable/src/main/java/com/example/android/wearable/quiz/UpdateQuestionService.java b/samples/wearable/Quiz/Wearable/src/main/java/com/example/android/wearable/quiz/UpdateQuestionService.java
new file mode 100644
index 0000000..0668c97
--- /dev/null
+++ b/samples/wearable/Quiz/Wearable/src/main/java/com/example/android/wearable/quiz/UpdateQuestionService.java
@@ -0,0 +1,92 @@
+package com.example.android.wearable.quiz;
+
+import android.app.IntentService;
+import android.app.NotificationManager;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Bundle;
+import android.util.Log;
+
+import com.google.android.gms.common.ConnectionResult;
+import com.google.android.gms.common.api.GoogleApiClient;
+import com.google.android.gms.wearable.DataApi;
+import com.google.android.gms.wearable.DataMap;
+import com.google.android.gms.wearable.DataMapItem;
+import com.google.android.gms.wearable.PutDataMapRequest;
+import com.google.android.gms.wearable.PutDataRequest;
+import com.google.android.gms.wearable.Wearable;
+
+import java.util.concurrent.TimeUnit;
+
+import static com.example.android.wearable.quiz.Constants.CHOSEN_ANSWER_CORRECT;
+import static com.example.android.wearable.quiz.Constants.QUESTION_INDEX;
+import static com.example.android.wearable.quiz.Constants.QUESTION_WAS_ANSWERED;
+
+/**
+ * Updates quiz status on the phone when user selects an answer to a question on the watch.
+ */
+public class UpdateQuestionService extends IntentService
+        implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {
+    public static final String EXTRA_QUESTION_CORRECT = "extra_question_correct";
+    public static final String EXTRA_QUESTION_INDEX = "extra_question_index";
+
+    private static final long TIME_OUT_MS = 100;
+    private static final String TAG = "UpdateQuestionService";
+
+    private GoogleApiClient mGoogleApiClient;
+
+    public UpdateQuestionService() {
+        super(UpdateQuestionService.class.getSimpleName());
+    }
+
+    @Override
+    public void onCreate() {
+        super.onCreate();
+        mGoogleApiClient = new GoogleApiClient.Builder(this)
+                .addApi(Wearable.API)
+                .addConnectionCallbacks(this)
+                .addOnConnectionFailedListener(this)
+                .build();
+    }
+
+    @Override
+    protected void onHandleIntent(Intent intent) {
+        mGoogleApiClient.blockingConnect(TIME_OUT_MS, TimeUnit.MILLISECONDS);
+        Uri dataItemUri = intent.getData();
+        if (!mGoogleApiClient.isConnected()) {
+            Log.e(TAG, "Failed to update data item " + dataItemUri
+                    + " because client is disconnected from Google Play Services");
+            return;
+        }
+        DataApi.DataItemResult dataItemResult = Wearable.DataApi.getDataItem(
+                mGoogleApiClient, dataItemUri).await();
+        PutDataMapRequest putDataMapRequest = PutDataMapRequest
+                .createFromDataMapItem(DataMapItem.fromDataItem(dataItemResult.getDataItem()));
+        DataMap dataMap = putDataMapRequest.getDataMap();
+
+        // Update quiz status variables, which will be reflected on the phone.
+        int questionIndex = intent.getIntExtra(EXTRA_QUESTION_INDEX, -1);
+        boolean chosenAnswerCorrect = intent.getBooleanExtra(EXTRA_QUESTION_CORRECT, false);
+        dataMap.putInt(QUESTION_INDEX, questionIndex);
+        dataMap.putBoolean(CHOSEN_ANSWER_CORRECT, chosenAnswerCorrect);
+        dataMap.putBoolean(QUESTION_WAS_ANSWERED, true);
+        PutDataRequest request = putDataMapRequest.asPutDataRequest();
+        Wearable.DataApi.putDataItem(mGoogleApiClient, request).await();
+
+        // Remove this question notification.
+        ((NotificationManager) getSystemService(NOTIFICATION_SERVICE)).cancel(questionIndex);
+        mGoogleApiClient.disconnect();
+    }
+
+    @Override
+    public void onConnected(Bundle connectionHint) {
+    }
+
+    @Override
+    public void onConnectionSuspended(int cause) {
+    }
+
+    @Override
+    public void onConnectionFailed(ConnectionResult result) {
+    }
+}
diff --git a/samples/wearable/Quiz/Wearable/src/main/res/drawable-hdpi/ic_choice_a.png b/samples/wearable/Quiz/Wearable/src/main/res/drawable-hdpi/ic_choice_a.png
new file mode 100644
index 0000000..de18ce1
--- /dev/null
+++ b/samples/wearable/Quiz/Wearable/src/main/res/drawable-hdpi/ic_choice_a.png
Binary files differ
diff --git a/samples/wearable/Quiz/Wearable/src/main/res/drawable-hdpi/ic_choice_b.png b/samples/wearable/Quiz/Wearable/src/main/res/drawable-hdpi/ic_choice_b.png
new file mode 100644
index 0000000..3cdfe97
--- /dev/null
+++ b/samples/wearable/Quiz/Wearable/src/main/res/drawable-hdpi/ic_choice_b.png
Binary files differ
diff --git a/samples/wearable/Quiz/Wearable/src/main/res/drawable-hdpi/ic_choice_c.png b/samples/wearable/Quiz/Wearable/src/main/res/drawable-hdpi/ic_choice_c.png
new file mode 100644
index 0000000..f0ed2ef
--- /dev/null
+++ b/samples/wearable/Quiz/Wearable/src/main/res/drawable-hdpi/ic_choice_c.png
Binary files differ
diff --git a/samples/wearable/Quiz/Wearable/src/main/res/drawable-hdpi/ic_choice_d.png b/samples/wearable/Quiz/Wearable/src/main/res/drawable-hdpi/ic_choice_d.png
new file mode 100644
index 0000000..c158d29
--- /dev/null
+++ b/samples/wearable/Quiz/Wearable/src/main/res/drawable-hdpi/ic_choice_d.png
Binary files differ
diff --git a/samples/wearable/Quiz/Wearable/src/main/res/drawable-hdpi/ic_launcher.png b/samples/wearable/Quiz/Wearable/src/main/res/drawable-hdpi/ic_launcher.png
new file mode 100755
index 0000000..91a8cff
--- /dev/null
+++ b/samples/wearable/Quiz/Wearable/src/main/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Quiz/Wearable/src/main/res/drawable-hdpi/ic_unknown_choice.png b/samples/wearable/Quiz/Wearable/src/main/res/drawable-hdpi/ic_unknown_choice.png
new file mode 100644
index 0000000..9aed517
--- /dev/null
+++ b/samples/wearable/Quiz/Wearable/src/main/res/drawable-hdpi/ic_unknown_choice.png
Binary files differ
diff --git a/samples/wearable/Quiz/Wearable/src/main/res/drawable-mdpi/ic_choice_a.png b/samples/wearable/Quiz/Wearable/src/main/res/drawable-mdpi/ic_choice_a.png
new file mode 100644
index 0000000..5745936
--- /dev/null
+++ b/samples/wearable/Quiz/Wearable/src/main/res/drawable-mdpi/ic_choice_a.png
Binary files differ
diff --git a/samples/wearable/Quiz/Wearable/src/main/res/drawable-mdpi/ic_choice_b.png b/samples/wearable/Quiz/Wearable/src/main/res/drawable-mdpi/ic_choice_b.png
new file mode 100644
index 0000000..958b92e
--- /dev/null
+++ b/samples/wearable/Quiz/Wearable/src/main/res/drawable-mdpi/ic_choice_b.png
Binary files differ
diff --git a/samples/wearable/Quiz/Wearable/src/main/res/drawable-mdpi/ic_choice_c.png b/samples/wearable/Quiz/Wearable/src/main/res/drawable-mdpi/ic_choice_c.png
new file mode 100644
index 0000000..9fcfab7
--- /dev/null
+++ b/samples/wearable/Quiz/Wearable/src/main/res/drawable-mdpi/ic_choice_c.png
Binary files differ
diff --git a/samples/wearable/Quiz/Wearable/src/main/res/drawable-mdpi/ic_choice_d.png b/samples/wearable/Quiz/Wearable/src/main/res/drawable-mdpi/ic_choice_d.png
new file mode 100644
index 0000000..821cadb
--- /dev/null
+++ b/samples/wearable/Quiz/Wearable/src/main/res/drawable-mdpi/ic_choice_d.png
Binary files differ
diff --git a/samples/wearable/Quiz/Wearable/src/main/res/drawable-mdpi/ic_launcher.png b/samples/wearable/Quiz/Wearable/src/main/res/drawable-mdpi/ic_launcher.png
new file mode 100755
index 0000000..728ee6d
--- /dev/null
+++ b/samples/wearable/Quiz/Wearable/src/main/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Quiz/Wearable/src/main/res/drawable-mdpi/ic_unknown_choice.png b/samples/wearable/Quiz/Wearable/src/main/res/drawable-mdpi/ic_unknown_choice.png
new file mode 100644
index 0000000..b8030ef
--- /dev/null
+++ b/samples/wearable/Quiz/Wearable/src/main/res/drawable-mdpi/ic_unknown_choice.png
Binary files differ
diff --git a/samples/wearable/Quiz/Wearable/src/main/res/drawable-xhdpi/ic_choice_a.png b/samples/wearable/Quiz/Wearable/src/main/res/drawable-xhdpi/ic_choice_a.png
new file mode 100644
index 0000000..3dba96f
--- /dev/null
+++ b/samples/wearable/Quiz/Wearable/src/main/res/drawable-xhdpi/ic_choice_a.png
Binary files differ
diff --git a/samples/wearable/Quiz/Wearable/src/main/res/drawable-xhdpi/ic_choice_b.png b/samples/wearable/Quiz/Wearable/src/main/res/drawable-xhdpi/ic_choice_b.png
new file mode 100644
index 0000000..9ca3c85
--- /dev/null
+++ b/samples/wearable/Quiz/Wearable/src/main/res/drawable-xhdpi/ic_choice_b.png
Binary files differ
diff --git a/samples/wearable/Quiz/Wearable/src/main/res/drawable-xhdpi/ic_choice_c.png b/samples/wearable/Quiz/Wearable/src/main/res/drawable-xhdpi/ic_choice_c.png
new file mode 100644
index 0000000..b84b3b7
--- /dev/null
+++ b/samples/wearable/Quiz/Wearable/src/main/res/drawable-xhdpi/ic_choice_c.png
Binary files differ
diff --git a/samples/wearable/Quiz/Wearable/src/main/res/drawable-xhdpi/ic_choice_d.png b/samples/wearable/Quiz/Wearable/src/main/res/drawable-xhdpi/ic_choice_d.png
new file mode 100644
index 0000000..185e91e
--- /dev/null
+++ b/samples/wearable/Quiz/Wearable/src/main/res/drawable-xhdpi/ic_choice_d.png
Binary files differ
diff --git a/samples/wearable/Quiz/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png b/samples/wearable/Quiz/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png
new file mode 100755
index 0000000..64a5854
--- /dev/null
+++ b/samples/wearable/Quiz/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Quiz/Wearable/src/main/res/drawable-xhdpi/ic_unknown_choice.png b/samples/wearable/Quiz/Wearable/src/main/res/drawable-xhdpi/ic_unknown_choice.png
new file mode 100644
index 0000000..57838d1
--- /dev/null
+++ b/samples/wearable/Quiz/Wearable/src/main/res/drawable-xhdpi/ic_unknown_choice.png
Binary files differ
diff --git a/samples/wearable/Quiz/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png b/samples/wearable/Quiz/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png
new file mode 100755
index 0000000..86a395b
--- /dev/null
+++ b/samples/wearable/Quiz/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Quiz/Wearable/src/main/res/values/colors.xml b/samples/wearable/Quiz/Wearable/src/main/res/values/colors.xml
new file mode 100644
index 0000000..e19c9e7
--- /dev/null
+++ b/samples/wearable/Quiz/Wearable/src/main/res/values/colors.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <color name="dark_green">#009900</color>
+    <color name="dark_red">#800000</color>
+    <color name="dark_yellow">#FF9900</color>
+</resources>
\ No newline at end of file
diff --git a/samples/wearable/Quiz/Wearable/src/main/res/values/strings.xml b/samples/wearable/Quiz/Wearable/src/main/res/values/strings.xml
new file mode 100644
index 0000000..2136073
--- /dev/null
+++ b/samples/wearable/Quiz/Wearable/src/main/res/values/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+    <string name="app_name">Quiz Sample Wearable App</string>
+
+    <string name="question">Question %d</string>
+
+    <string name="quiz_report">Quiz Report</string>
+    <string name="correct">correct</string>
+    <string name="incorrect">incorrect</string>
+    <string name="skipped">skipped</string>
+    <string name="reset_quiz">Reset Quiz</string>
+
+</resources>
diff --git a/samples/wearable/Quiz/build.gradle b/samples/wearable/Quiz/build.gradle
new file mode 100644
index 0000000..4c8f6d8
--- /dev/null
+++ b/samples/wearable/Quiz/build.gradle
@@ -0,0 +1,16 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+
+buildscript {
+    repositories {
+        mavenCentral()
+    }
+    dependencies {
+        classpath 'com.android.tools.build:gradle:0.11.+'
+    }
+}
+
+allprojects {
+    repositories {
+        mavenCentral()
+    }
+}
diff --git a/samples/wearable/Quiz/gradle.properties b/samples/wearable/Quiz/gradle.properties
new file mode 100644
index 0000000..5d08ba7
--- /dev/null
+++ b/samples/wearable/Quiz/gradle.properties
@@ -0,0 +1,18 @@
+# Project-wide Gradle settings.
+
+# IDE (e.g. Android Studio) users:
+# Settings specified in this file will override any Gradle settings
+# configured through the IDE.
+
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+# Default value: -Xmx10248m -XX:MaxPermSize=256m
+# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
+
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
\ No newline at end of file
diff --git a/samples/wearable/Quiz/gradle/wrapper/gradle-wrapper.jar b/samples/wearable/Quiz/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..5838598
--- /dev/null
+++ b/samples/wearable/Quiz/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/samples/wearable/Quiz/gradle/wrapper/gradle-wrapper.properties b/samples/wearable/Quiz/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..e83e460
--- /dev/null
+++ b/samples/wearable/Quiz/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Fri Mar 14 14:02:22 PDT 2014
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=http\://services.gradle.org/distributions/gradle-1.11-all.zip
diff --git a/samples/wearable/Quiz/gradlew b/samples/wearable/Quiz/gradlew
new file mode 100755
index 0000000..91a7e26
--- /dev/null
+++ b/samples/wearable/Quiz/gradlew
@@ -0,0 +1,164 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+##  Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+    echo "$*"
+}
+
+die ( ) {
+    echo
+    echo "$*"
+    echo
+    exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+  CYGWIN* )
+    cygwin=true
+    ;;
+  Darwin* )
+    darwin=true
+    ;;
+  MINGW* )
+    msys=true
+    ;;
+esac
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched.
+if $cygwin ; then
+    [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+fi
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+        PRG="$link"
+    else
+        PRG=`dirname "$PRG"`"/$link"
+    fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >&-
+APP_HOME="`pwd -P`"
+cd "$SAVED" >&-
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+        # IBM's JDK on AIX uses strange locations for the executables
+        JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+        JAVACMD="$JAVA_HOME/bin/java"
+    fi
+    if [ ! -x "$JAVACMD" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+else
+    JAVACMD="java"
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+    MAX_FD_LIMIT=`ulimit -H -n`
+    if [ $? -eq 0 ] ; then
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+            MAX_FD="$MAX_FD_LIMIT"
+        fi
+        ulimit -n $MAX_FD
+        if [ $? -ne 0 ] ; then
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
+        fi
+    else
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+    fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+    # We build the pattern for arguments to be converted via cygpath
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+    SEP=""
+    for dir in $ROOTDIRSRAW ; do
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
+        SEP="|"
+    done
+    OURCYGPATTERN="(^($ROOTDIRS))"
+    # Add a user-defined pattern to the cygpath arguments
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+    fi
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
+    i=0
+    for arg in "$@" ; do
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
+
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+        else
+            eval `echo args$i`="\"$arg\""
+        fi
+        i=$((i+1))
+    done
+    case $i in
+        (0) set -- ;;
+        (1) set -- "$args0" ;;
+        (2) set -- "$args0" "$args1" ;;
+        (3) set -- "$args0" "$args1" "$args2" ;;
+        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+    esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+    JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/samples/wearable/Quiz/gradlew.bat b/samples/wearable/Quiz/gradlew.bat
new file mode 100755
index 0000000..aec9973
--- /dev/null
+++ b/samples/wearable/Quiz/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem  Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/samples/wearable/Quiz/settings.gradle b/samples/wearable/Quiz/settings.gradle
new file mode 100644
index 0000000..d6b72d1
--- /dev/null
+++ b/samples/wearable/Quiz/settings.gradle
@@ -0,0 +1 @@
+include 'Application', 'Wearable'
diff --git a/samples/wearable/RecipeAssistant/Application/build.gradle b/samples/wearable/RecipeAssistant/Application/build.gradle
new file mode 100644
index 0000000..03f9be8
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/build.gradle
@@ -0,0 +1,24 @@
+apply plugin: 'android'
+
+android {
+    compileSdkVersion 19
+    buildToolsVersion '20'
+
+    defaultConfig {
+        minSdkVersion 18
+        targetSdkVersion 19
+        versionCode 1
+        versionName "1.0"
+    }
+
+    buildTypes {
+        release {
+            runProguard false
+            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
+        }
+    }
+}
+
+dependencies {
+    compile "com.android.support:support-v4:20.0.+"
+}
diff --git a/samples/wearable/RecipeAssistant/Application/proguard-rules.txt b/samples/wearable/RecipeAssistant/Application/proguard-rules.txt
new file mode 100644
index 0000000..08e5bdc
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/proguard-rules.txt
@@ -0,0 +1,22 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
+-dontwarn android.support.wearable.view.DelayedConfirmationView
+-dontwarn android.support.wearable.view.CircledImageView
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/AndroidManifest.xml b/samples/wearable/RecipeAssistant/Application/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..7a1a04a
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/AndroidManifest.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.example.android.wearable.recipeassistant"
+    android:versionCode="1"
+    android:versionName="1.0" >
+
+    <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="19" />
+
+    <application
+        android:allowBackup="true"
+        android:icon="@mipmap/ic_app_recipe"
+        android:label="@string/app_name"
+        android:theme="@android:style/Theme.Holo.Light" >
+        <activity
+            android:name=".MainActivity"
+            android:label="@string/app_name" >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity
+            android:name=".RecipeActivity"
+            android:label="@string/app_name" >
+        </activity>
+        <service
+            android:name=".RecipeService" />
+    </application>
+
+</manifest>
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/assets/beef-brisket-chili.json b/samples/wearable/RecipeAssistant/Application/src/main/assets/beef-brisket-chili.json
new file mode 100644
index 0000000..19598f9
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/assets/beef-brisket-chili.json
@@ -0,0 +1,91 @@
+{
+name: "beef-brisket-chili.json",
+steps: [
+{
+text: "Place the cinnamon stick, cumin, paprika and oregano in a pestle and mortar. Bash and grind until the cinnamon is in very small flakes. ",
+img: "step-1-grind-spices.jpg"
+},
+{
+text: "Score the beef and rub the spice mix into the cuts. ",
+img: "step-2-score-beef.jpg"
+},
+{
+text: "Season the beef and drizzle with olive oil. Brown in a hot pan. ",
+img: "step-3-brown-beef.jpg"
+},
+{
+text: "Finely slice the onion and fry in a little olive oil together with the chillies, finely sliced. You can control the heat of your chili by deseeding some of the chillies. ",
+img: "step-4-fry-onion.jpg"
+},
+{
+text: "Add the browned brisket to the pan with the onions and chillies and fry on a low heat."
+},
+{
+text: "Place the bell peppers, roughly sliced, the bay leaves and chopped tomatoes in a large covered pot. Bring to the boil and then add the beef, onions and chillies. ",
+img: "step-6-combine.jpg"
+},
+{
+text: "Bring back to the boil, cover and allow to simmer on a low heat for 4 hours."
+},
+{
+text: "Remove the brisket from the pot, place on a large plate and use two forks to pull the beef apart into individual pieces. ",
+img: "step-8-pull.jpg"
+},
+{
+text: "Remove the bay leaves and add the pulled beef and coriander back to the pot, together with the kidney beans."
+},
+{
+text: "Bring back to the boil and simmer gently for a further 15 - 20 mins."
+}
+],
+summary: "",
+title: "Beef brisket chili",
+img: "chili.jpg",
+serving: [
+"Serve with rice, yoghurt and fresh guacamole. Garnish with the remaining coriander."
+],
+ingredients: [
+{
+text: "3 lbs beef brisket"
+},
+{
+text: "2 red onions"
+},
+{
+text: "4 jalapeno chillies"
+},
+{
+text: "1 large cinnamon stick"
+},
+{
+text: "1 tbsp ground cumin"
+},
+{
+text: "1 tbsp paprika"
+},
+{
+text: "1 heaped tbsp dried oregano"
+},
+{
+text: "2 fresh bay leaves"
+},
+{
+text: "2 red bell peppers"
+},
+{
+text: "2 green bell peppers"
+},
+{
+text: "800g tin chopped tomatoes"
+},
+{
+text: "400g tin kidney beans"
+},
+{
+text: "400ml beef stock"
+},
+{
+text: "1/2 bunch coriander"
+}
+]
+}
\ No newline at end of file
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/assets/chili.jpg b/samples/wearable/RecipeAssistant/Application/src/main/assets/chili.jpg
new file mode 100644
index 0000000..ca5f751
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/assets/chili.jpg
Binary files differ
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/assets/guacamole.jpg b/samples/wearable/RecipeAssistant/Application/src/main/assets/guacamole.jpg
new file mode 100644
index 0000000..77175eb
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/assets/guacamole.jpg
Binary files differ
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/assets/guacamole.json b/samples/wearable/RecipeAssistant/Application/src/main/assets/guacamole.json
new file mode 100644
index 0000000..5fae53f
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/assets/guacamole.json
@@ -0,0 +1,36 @@
+{
+name: "guacamole.json",
+steps: [
+{
+text: "Use a spoon to scoop the flesh of the avocados into a bowl."
+},
+{
+text: "Mash with a fork until fairly smooth and creamy. Preserve some small solid chunks to add texture."
+},
+{
+text: "Add the juice of the lime. ",
+img: "step-3-lime.jpg"
+},
+{
+text: "Add the cilantro."
+},
+{
+text: "Mix thoroughly."
+}
+],
+summary: "Some guacamole recipes call for many ingredients and can be a pain to prepare. This super simple guac can be thrown together in a couple of minutes and tastes great.",
+title: "Super simple guacamole",
+img: "guacamole.jpg",
+serving: "",
+ingredients: [
+{
+text: "2 ripe avocados"
+},
+{
+text: "1 lime"
+},
+{
+text: "2 tbsp cilantro"
+}
+]
+}
\ No newline at end of file
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/assets/irish-stew.jpg b/samples/wearable/RecipeAssistant/Application/src/main/assets/irish-stew.jpg
new file mode 100644
index 0000000..0c20766
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/assets/irish-stew.jpg
Binary files differ
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/assets/northern-irish-vegetable-soup.json b/samples/wearable/RecipeAssistant/Application/src/main/assets/northern-irish-vegetable-soup.json
new file mode 100644
index 0000000..55d2591
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/assets/northern-irish-vegetable-soup.json
@@ -0,0 +1,46 @@
+{
+name: "northern-irish-vegetable-soup.json",
+steps: [
+{
+text: "Place the beef in a large stock pot, cover with water and stew for 1 - 2 hours."
+},
+{
+text: "Allow the stock to cool, skim off any fat."
+},
+{
+text: "Add the soup mix to the stock, bring to the boil and simmer for 1 hour."
+},
+{
+text: "Roughly chop the leeks (green and white parts), onion, carrots, celery and parsley. Add to the soup. Season well and simmer until the vegetables are soft."
+}
+],
+summary: "This recipe is apparently unique to Northern Ireland and uses soup/herb celery which is hard to find outside the area, but regular table celery can be substituted (including the leaves).",
+title: "Northern irish vegetable soup",
+img: "irish-stew.jpg",
+serving: [
+"Whole boiled potatoes are traditionally placed in the soup at time of serving."
+],
+ingredients: [
+{
+text: "2 lbs beef shin or similar beef on bone"
+},
+{
+text: "60g soup mix (30g barley, 15g red lentils, 15g split peas)"
+},
+{
+text: "3 carrots"
+},
+{
+text: "1 white onion"
+},
+{
+text: "field celery or 1 stalk celery, plus any leaves on the bunch"
+},
+{
+text: "2 leeks"
+},
+{
+text: "1 bunch parsley"
+}
+]
+}
\ No newline at end of file
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/assets/recipelist.json b/samples/wearable/RecipeAssistant/Application/src/main/assets/recipelist.json
new file mode 100644
index 0000000..efd787d
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/assets/recipelist.json
@@ -0,0 +1,23 @@
+{
+recipe_list:
+[
+{
+name: "guacamole.json",
+summary: "Some guacamole recipes call for many ingredients and can be a pain to prepare. This super simple guac can be thrown together in a couple of minutes and tastes great.",
+title: "Super simple guacamole",
+img: "guacamole.jpg"
+},
+{
+name: "northern-irish-vegetable-soup.json",
+summary: "This recipe is apparently unique to Northern Ireland and uses soup/herb celery which is hard to find outside the area, but regular table celery can be substituted (including the leaves).",
+title: "Northern irish vegetable soup",
+img: "irish-stew.jpg"
+},
+{
+name: "beef-brisket-chili.json",
+summary: "",
+title: "Beef brisket chili",
+img: "chili.jpg"
+}
+]
+}
\ No newline at end of file
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/assets/step-1-grind-spices.jpg b/samples/wearable/RecipeAssistant/Application/src/main/assets/step-1-grind-spices.jpg
new file mode 100644
index 0000000..9b5f2b9
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/assets/step-1-grind-spices.jpg
Binary files differ
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/assets/step-2-score-beef.jpg b/samples/wearable/RecipeAssistant/Application/src/main/assets/step-2-score-beef.jpg
new file mode 100644
index 0000000..66c549d
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/assets/step-2-score-beef.jpg
Binary files differ
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/assets/step-3-brown-beef.jpg b/samples/wearable/RecipeAssistant/Application/src/main/assets/step-3-brown-beef.jpg
new file mode 100644
index 0000000..1bb801e
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/assets/step-3-brown-beef.jpg
Binary files differ
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/assets/step-3-lime.jpg b/samples/wearable/RecipeAssistant/Application/src/main/assets/step-3-lime.jpg
new file mode 100644
index 0000000..b615d55
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/assets/step-3-lime.jpg
Binary files differ
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/assets/step-4-fry-onion.jpg b/samples/wearable/RecipeAssistant/Application/src/main/assets/step-4-fry-onion.jpg
new file mode 100644
index 0000000..b5d2a18
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/assets/step-4-fry-onion.jpg
Binary files differ
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/assets/step-6-combine.jpg b/samples/wearable/RecipeAssistant/Application/src/main/assets/step-6-combine.jpg
new file mode 100644
index 0000000..fe29405
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/assets/step-6-combine.jpg
Binary files differ
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/assets/step-8-pull.jpg b/samples/wearable/RecipeAssistant/Application/src/main/assets/step-8-pull.jpg
new file mode 100644
index 0000000..f8288a8
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/assets/step-8-pull.jpg
Binary files differ
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/AssetUtils.java b/samples/wearable/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/AssetUtils.java
new file mode 100644
index 0000000..c7991bb
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/AssetUtils.java
@@ -0,0 +1,64 @@
+package com.example.android.wearable.recipeassistant;
+
+
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.util.Log;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+final class AssetUtils {
+    private static final String TAG = "RecipeAssistant";
+
+    public static byte[] loadAsset(Context context, String asset) {
+        byte[] buffer = null;
+        try {
+            InputStream is = context.getAssets().open(asset);
+            int size = is.available();
+            buffer = new byte[size];
+            is.read(buffer);
+            is.close();
+        } catch (IOException e) {
+            Log.e(TAG, "Failed to load asset " + asset + ": " + e);
+        }
+        return buffer;
+    }
+
+    public static JSONObject loadJSONAsset(Context context, String asset) {
+        String jsonString = new String(loadAsset(context, asset));
+        JSONObject jsonObject = null;
+        try {
+            jsonObject = new JSONObject(jsonString);
+        } catch (JSONException e) {
+            Log.e(TAG, "Failed to parse JSON asset " + asset + ": " + e);
+        }
+        return jsonObject;
+    }
+
+    public static Bitmap loadBitmapAsset(Context context, String asset) {
+        InputStream is = null;
+        Bitmap bitmap = null;
+        try {
+            is = context.getAssets().open(asset);
+            if (is != null) {
+                bitmap = BitmapFactory.decodeStream(is);
+            }
+        } catch (IOException e) {
+            Log.e(TAG, e.toString());
+        } finally {
+            if (is != null) {
+                try {
+                    is.close();
+                } catch (IOException e) {
+                    Log.e(TAG, "Cannot close InputStream: ", e);
+                }
+            }
+        }
+        return bitmap;
+    }
+}
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/Constants.java b/samples/wearable/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/Constants.java
new file mode 100644
index 0000000..375444e
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/Constants.java
@@ -0,0 +1,27 @@
+package com.example.android.wearable.recipeassistant;
+
+public final class Constants {
+    private Constants() {
+    }
+    public static final String RECIPE_LIST_FILE = "recipelist.json";
+    public static final String RECIPE_NAME_TO_LOAD = "recipe_name";
+
+    public static final String RECIPE_FIELD_LIST = "recipe_list";
+    public static final String RECIPE_FIELD_IMAGE = "img";
+    public static final String RECIPE_FIELD_INGREDIENTS = "ingredients";
+    public static final String RECIPE_FIELD_NAME = "name";
+    public static final String RECIPE_FIELD_SUMMARY = "summary";
+    public static final String RECIPE_FIELD_STEPS = "steps";
+    public static final String RECIPE_FIELD_TEXT = "text";
+    public static final String RECIPE_FIELD_TITLE = "title";
+    public static final String RECIPE_FIELD_STEP_TEXT = "step_text";
+    public static final String RECIPE_FIELD_STEP_IMAGE = "step_image";
+
+    static final String ACTION_START_COOKING =
+            "com.example.android.wearable.recipeassistant.START_COOKING";
+    public static final String EXTRA_RECIPE = "recipe";
+
+    public static final int NOTIFICATION_ID = 0;
+    public static final int NOTIFICATION_IMAGE_WIDTH = 280;
+    public static final int NOTIFICATION_IMAGE_HEIGHT = 280;
+}
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/MainActivity.java b/samples/wearable/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/MainActivity.java
new file mode 100644
index 0000000..a456190
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/MainActivity.java
@@ -0,0 +1,35 @@
+
+package com.example.android.wearable.recipeassistant;
+
+import android.app.ListActivity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.View;
+import android.widget.ListView;
+
+public class MainActivity extends ListActivity {
+
+    private static final String TAG = "RecipeAssistant";
+    private RecipeListAdapter mAdapter;
+
+    @Override
+    protected void onListItemClick(ListView l, View v, int position, long id) {
+        if (Log.isLoggable(TAG, Log.DEBUG)) {
+            Log.d(TAG , "onListItemClick " + position);
+        }
+        String itemName = mAdapter.getItemName(position);
+        Intent intent = new Intent(getApplicationContext(), RecipeActivity.class);
+        intent.putExtra(Constants.RECIPE_NAME_TO_LOAD, itemName);
+        startActivity(intent);
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(android.R.layout.list_content);
+
+        mAdapter = new RecipeListAdapter(this);
+        setListAdapter(mAdapter);
+    }
+}
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/Recipe.java b/samples/wearable/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/Recipe.java
new file mode 100644
index 0000000..24356b6
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/Recipe.java
@@ -0,0 +1,110 @@
+package com.example.android.wearable.recipeassistant;
+
+import android.content.Context;
+import android.os.Bundle;
+import android.os.Parcelable;
+import android.util.Log;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.ArrayList;
+
+public class Recipe {
+    private static final String TAG = "RecipeAssistant";
+
+    public String titleText;
+    public String summaryText;
+    public String recipeImage;
+    public String ingredientsText;
+
+    public static class RecipeStep {
+        RecipeStep() { }
+        public String stepImage;
+        public String stepText;
+
+        public Bundle toBundle() {
+            Bundle bundle = new Bundle();
+            bundle.putString(Constants.RECIPE_FIELD_STEP_TEXT, stepText);
+            bundle.putString(Constants.RECIPE_FIELD_STEP_IMAGE, stepImage);
+            return bundle;
+        }
+
+        public static RecipeStep fromBundle(Bundle bundle) {
+            RecipeStep recipeStep = new RecipeStep();
+            recipeStep.stepText = bundle.getString(Constants.RECIPE_FIELD_STEP_TEXT);
+            recipeStep.stepImage = bundle.getString(Constants.RECIPE_FIELD_STEP_IMAGE);
+            return recipeStep;
+        }
+    }
+    ArrayList<RecipeStep> recipeSteps;
+
+    public Recipe() {
+        recipeSteps = new ArrayList<RecipeStep>();
+    }
+
+    public static Recipe fromJson(Context context, JSONObject json) {
+        Recipe recipe = new Recipe();
+        try {
+            recipe.titleText = json.getString(Constants.RECIPE_FIELD_TITLE);
+            recipe.summaryText = json.getString(Constants.RECIPE_FIELD_SUMMARY);
+            if (json.has(Constants.RECIPE_FIELD_IMAGE)) {
+                recipe.recipeImage = json.getString(Constants.RECIPE_FIELD_IMAGE);
+            }
+            JSONArray ingredients = json.getJSONArray(Constants.RECIPE_FIELD_INGREDIENTS);
+            recipe.ingredientsText = "";
+            for (int i = 0; i < ingredients.length(); i++) {
+                recipe.ingredientsText += " - "
+                        + ingredients.getJSONObject(i).getString(Constants.RECIPE_FIELD_TEXT) + "\n";
+            }
+
+            JSONArray steps = json.getJSONArray(Constants.RECIPE_FIELD_STEPS);
+            for (int i = 0; i < steps.length(); i++) {
+                JSONObject step = steps.getJSONObject(i);
+                RecipeStep recipeStep = new RecipeStep();
+                recipeStep.stepText = step.getString(Constants.RECIPE_FIELD_TEXT);
+                if (step.has(Constants.RECIPE_FIELD_IMAGE)) {
+                    recipeStep.stepImage = step.getString(Constants.RECIPE_FIELD_IMAGE);
+                }
+                recipe.recipeSteps.add(recipeStep);
+            }
+        } catch (JSONException e) {
+            Log.e(TAG, "Error loading recipe: " + e);
+            return null;
+        }
+        return recipe;
+    }
+
+    public Bundle toBundle() {
+        Bundle bundle = new Bundle();
+        bundle.putString(Constants.RECIPE_FIELD_TITLE, titleText);
+        bundle.putString(Constants.RECIPE_FIELD_SUMMARY, summaryText);
+        bundle.putString(Constants.RECIPE_FIELD_IMAGE, recipeImage);
+        bundle.putString(Constants.RECIPE_FIELD_INGREDIENTS, ingredientsText);
+        if (recipeSteps != null) {
+            ArrayList<Parcelable> stepBundles = new ArrayList<Parcelable>(recipeSteps.size());
+            for (RecipeStep recipeStep : recipeSteps) {
+                stepBundles.add(recipeStep.toBundle());
+            }
+            bundle.putParcelableArrayList(Constants.RECIPE_FIELD_STEPS, stepBundles);
+        }
+        return bundle;
+    }
+
+    public static Recipe fromBundle(Bundle bundle) {
+        Recipe recipe = new Recipe();
+        recipe.titleText = bundle.getString(Constants.RECIPE_FIELD_TITLE);
+        recipe.summaryText = bundle.getString(Constants.RECIPE_FIELD_SUMMARY);
+        recipe.recipeImage = bundle.getString(Constants.RECIPE_FIELD_IMAGE);
+        recipe.ingredientsText = bundle.getString(Constants.RECIPE_FIELD_INGREDIENTS);
+        ArrayList<Parcelable> stepBundles =
+                bundle.getParcelableArrayList(Constants.RECIPE_FIELD_STEPS);
+        if (stepBundles != null) {
+            for (Parcelable stepBundle : stepBundles) {
+                recipe.recipeSteps.add(RecipeStep.fromBundle((Bundle) stepBundle));
+            }
+        }
+        return recipe;
+    }
+}
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/RecipeActivity.java b/samples/wearable/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/RecipeActivity.java
new file mode 100644
index 0000000..1637745
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/RecipeActivity.java
@@ -0,0 +1,122 @@
+package com.example.android.wearable.recipeassistant;
+
+import android.app.Activity;
+import android.app.PendingIntent;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.animation.Animation;
+import android.view.animation.AnimationUtils;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import org.json.JSONObject;
+
+public class RecipeActivity extends Activity {
+    private static final String TAG = "RecipeAssistant";
+    private String mRecipeName;
+    private Recipe mRecipe;
+    private ImageView mImageView;
+    private TextView mTitleTextView;
+    private TextView mSummaryTextView;
+    private TextView mIngredientsTextView;
+    private LinearLayout mStepsLayout;
+
+    @Override
+    protected void onStart() {
+        super.onStart();
+        Intent intent = getIntent();
+        mRecipeName = intent.getStringExtra(Constants.RECIPE_NAME_TO_LOAD);
+        if (Log.isLoggable(TAG, Log.DEBUG)) {
+            Log.d(TAG, "Intent: " + intent.toString() + " " + mRecipeName);
+        }
+        loadRecipe();
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.recipe);
+        mTitleTextView = (TextView) findViewById(R.id.recipeTextTitle);
+        mSummaryTextView = (TextView) findViewById(R.id.recipeTextSummary);
+        mImageView = (ImageView) findViewById(R.id.recipeImageView);
+        mIngredientsTextView = (TextView) findViewById(R.id.textIngredients);
+        mStepsLayout = (LinearLayout) findViewById(R.id.layoutSteps);
+    }
+
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        // Inflate the menu; this adds items to the action bar if it is present.
+        getMenuInflater().inflate(R.menu.main, menu);
+        return true;
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        switch(item.getItemId()) {
+            case R.id.action_cook:
+                startCooking();
+                return true;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+    private void loadRecipe() {
+        JSONObject jsonObject = AssetUtils.loadJSONAsset(this, mRecipeName);
+        if (jsonObject != null) {
+            mRecipe = Recipe.fromJson(this, jsonObject);
+            if (mRecipe != null) {
+                displayRecipe(mRecipe);
+            }
+        }
+    }
+
+    private void displayRecipe(Recipe recipe) {
+        Animation fadeIn = AnimationUtils.loadAnimation(this, android.R.anim.fade_in);
+        mTitleTextView.setAnimation(fadeIn);
+        mTitleTextView.setText(recipe.titleText);
+        mSummaryTextView.setText(recipe.summaryText);
+        if (recipe.recipeImage != null) {
+            mImageView.setAnimation(fadeIn);
+            Bitmap recipeImage = AssetUtils.loadBitmapAsset(this, recipe.recipeImage);
+            mImageView.setImageBitmap(recipeImage);
+        }
+        mIngredientsTextView.setText(recipe.ingredientsText);
+
+        findViewById(R.id.ingredientsHeader).setAnimation(fadeIn);
+        findViewById(R.id.ingredientsHeader).setVisibility(View.VISIBLE);
+        findViewById(R.id.stepsHeader).setAnimation(fadeIn);
+
+        findViewById(R.id.stepsHeader).setVisibility(View.VISIBLE);
+
+        LayoutInflater inf = LayoutInflater.from(this);
+        mStepsLayout.removeAllViews();
+        int stepNumber = 1;
+        for (Recipe.RecipeStep step : recipe.recipeSteps) {
+            View view = inf.inflate(R.layout.step_item, null);
+            ImageView iv = (ImageView) view.findViewById(R.id.stepImageView);
+            if (step.stepImage == null) {
+                iv.setVisibility(View.GONE);
+            } else {
+                Bitmap stepImage = AssetUtils.loadBitmapAsset(this, step.stepImage);
+                iv.setImageBitmap(stepImage);
+            }
+            ((TextView) view.findViewById(R.id.textStep)).setText(
+                    (stepNumber++) + ". " + step.stepText);
+            mStepsLayout.addView(view);
+        }
+    }
+
+    private void startCooking() {
+        Intent intent = new Intent(this, RecipeService.class);
+        intent.setAction(Constants.ACTION_START_COOKING);
+        intent.putExtra(Constants.EXTRA_RECIPE, mRecipe.toBundle());
+        startService(intent);
+    }
+}
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/RecipeListAdapter.java b/samples/wearable/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/RecipeListAdapter.java
new file mode 100644
index 0000000..9602bc6
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/RecipeListAdapter.java
@@ -0,0 +1,157 @@
+package com.example.android.wearable.recipeassistant;
+
+import android.content.Context;
+import android.database.DataSetObserver;
+import android.graphics.Bitmap;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.ListAdapter;
+import android.widget.TextView;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class RecipeListAdapter implements ListAdapter {
+    private String TAG = "RecipeListAdapter";
+
+    private class Item {
+        String title;
+        String name;
+        String summary;
+        Bitmap image;
+    }
+
+    private List<Item> mItems = new ArrayList<Item>();
+    private Context mContext;
+    private DataSetObserver mObserver;
+
+    public RecipeListAdapter(Context context) {
+        mContext = context;
+        loadRecipeList();
+    }
+
+    private void loadRecipeList() {
+        JSONObject jsonObject = AssetUtils.loadJSONAsset(mContext, Constants.RECIPE_LIST_FILE);
+        if (jsonObject != null) {
+            List<Item> items = parseJson(jsonObject);
+            appendItemsToList(items);
+        }
+    }
+
+    private List<Item> parseJson(JSONObject json) {
+        List<Item> result = new ArrayList<Item>();
+        try {
+            JSONArray items = json.getJSONArray(Constants.RECIPE_FIELD_LIST);
+            for (int i = 0; i < items.length(); i++) {
+                JSONObject item = items.getJSONObject(i);
+                Item parsed = new Item();
+                parsed.name = item.getString(Constants.RECIPE_FIELD_NAME);
+                parsed.title = item.getString(Constants.RECIPE_FIELD_TITLE);
+                if (item.has(Constants.RECIPE_FIELD_IMAGE)) {
+                    String imageFile = item.getString(Constants.RECIPE_FIELD_IMAGE);
+                    parsed.image = AssetUtils.loadBitmapAsset(mContext, imageFile);
+                }
+                parsed.summary = item.getString(Constants.RECIPE_FIELD_SUMMARY);
+                result.add(parsed);
+            }
+        } catch (JSONException e) {
+            Log.e(TAG, "Failed to parse recipe list: " + e);
+        }
+        return result;
+    }
+
+    private void appendItemsToList(List<Item> items) {
+        mItems.addAll(items);
+        if (mObserver != null) {
+            mObserver.onChanged();
+        }
+    }
+
+    @Override
+    public int getCount() {
+        return mItems.size();
+    }
+
+    @Override
+    public Object getItem(int position) {
+        return mItems.get(position);
+    }
+
+    @Override
+    public long getItemId(int position) {
+        return 0;
+    }
+
+    @Override
+    public int getItemViewType(int position) {
+        return 0;
+    }
+
+    @Override
+    public View getView(int position, View convertView, ViewGroup parent) {
+        View view = convertView;
+        if (view == null) {
+            LayoutInflater inf = LayoutInflater.from(mContext);
+            view = inf.inflate(R.layout.list_item, null);
+        }
+        Item item = (Item) getItem(position);
+        TextView titleView = (TextView) view.findViewById(R.id.textTitle);
+        TextView summaryView = (TextView) view.findViewById(R.id.textSummary);
+        ImageView iv = (ImageView) view.findViewById(R.id.imageView);
+
+        titleView.setText(item.title);
+        summaryView.setText(item.summary);
+        if (item.image != null) {
+            iv.setImageBitmap(item.image);
+        } else {
+            iv.setImageDrawable(mContext.getResources().getDrawable(R.drawable.ic_noimage));
+        }
+        return view;
+    }
+
+    @Override
+    public int getViewTypeCount() {
+        return 1;
+    }
+
+    @Override
+    public boolean hasStableIds() {
+        return false;
+    }
+
+    @Override
+    public boolean isEmpty() {
+        return mItems.isEmpty();
+    }
+
+    @Override
+    public void registerDataSetObserver(DataSetObserver observer) {
+        mObserver = observer;
+    }
+
+    @Override
+    public void unregisterDataSetObserver(DataSetObserver observer) {
+        mObserver = null;
+    }
+
+    @Override
+    public boolean areAllItemsEnabled() {
+        return true;
+    }
+
+    @Override
+    public boolean isEnabled(int position) {
+        return true;
+    }
+
+    public String getItemName(int position) {
+        return mItems.get(position).name;
+    }
+}
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/RecipeService.java b/samples/wearable/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/RecipeService.java
new file mode 100644
index 0000000..607dd28
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/RecipeService.java
@@ -0,0 +1,80 @@
+package com.example.android.wearable.recipeassistant;
+
+import android.app.Notification;
+import android.app.Service;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.os.Binder;
+import android.os.IBinder;
+import android.support.v4.app.NotificationManagerCompat;
+import android.support.v4.app.NotificationCompat;
+
+import java.util.ArrayList;
+
+public class RecipeService extends Service {
+    private NotificationManagerCompat mNotificationManager;
+    private Binder mBinder = new LocalBinder();
+    private Recipe mRecipe;
+
+    public class LocalBinder extends Binder {
+        RecipeService getService() {
+            return RecipeService.this;
+        }
+    }
+
+    @Override
+    public void onCreate() {
+        mNotificationManager = NotificationManagerCompat.from(this);
+    }
+
+    @Override
+    public IBinder onBind(Intent intent) {
+        return mBinder;
+    }
+
+    @Override
+    public int onStartCommand(Intent intent, int flags, int startId) {
+        if (intent.getAction().equals(Constants.ACTION_START_COOKING)) {
+            createNotification(intent);
+            return START_STICKY;
+        }
+        return START_NOT_STICKY;
+    }
+
+    private void createNotification(Intent intent) {
+        mRecipe = Recipe.fromBundle(intent.getBundleExtra(Constants.EXTRA_RECIPE));
+        ArrayList<Notification> notificationPages = new ArrayList<Notification>();
+
+        int stepCount = mRecipe.recipeSteps.size();
+
+        for (int i = 0; i < stepCount; ++i) {
+            Recipe.RecipeStep recipeStep = mRecipe.recipeSteps.get(i);
+            NotificationCompat.BigTextStyle style = new NotificationCompat.BigTextStyle();
+            style.bigText(recipeStep.stepText);
+            style.setBigContentTitle(String.format(
+                    getResources().getString(R.string.step_count), i + 1, stepCount));
+            style.setSummaryText("");
+            NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
+            builder.setStyle(style);
+            notificationPages.add(builder.build());
+        }
+
+        NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
+
+        if (mRecipe.recipeImage != null) {
+            Bitmap recipeImage = Bitmap.createScaledBitmap(
+                    AssetUtils.loadBitmapAsset(this, mRecipe.recipeImage),
+                    Constants.NOTIFICATION_IMAGE_WIDTH, Constants.NOTIFICATION_IMAGE_HEIGHT, false);
+            builder.setLargeIcon(recipeImage);
+        }
+        builder.setContentTitle(mRecipe.titleText);
+        builder.setContentText(mRecipe.summaryText);
+        builder.setSmallIcon(R.mipmap.ic_notification_recipe);
+
+        Notification notification = builder
+                .extend(new NotificationCompat.WearableExtender()
+                        .addPages(notificationPages))
+                .build();
+        mNotificationManager.notify(Constants.NOTIFICATION_ID, notification);
+    }
+}
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/res/drawable-hdpi/ic_noimage.png b/samples/wearable/RecipeAssistant/Application/src/main/res/drawable-hdpi/ic_noimage.png
new file mode 100644
index 0000000..7bba7ab
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/res/drawable-hdpi/ic_noimage.png
Binary files differ
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/res/drawable-mdpi/ic_noimage.png b/samples/wearable/RecipeAssistant/Application/src/main/res/drawable-mdpi/ic_noimage.png
new file mode 100644
index 0000000..a5ad26f
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/res/drawable-mdpi/ic_noimage.png
Binary files differ
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/res/drawable-xhdpi/ic_noimage.png b/samples/wearable/RecipeAssistant/Application/src/main/res/drawable-xhdpi/ic_noimage.png
new file mode 100644
index 0000000..8b631d1
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/res/drawable-xhdpi/ic_noimage.png
Binary files differ
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/res/layout/list_item.xml b/samples/wearable/RecipeAssistant/Application/src/main/res/layout/list_item.xml
new file mode 100644
index 0000000..421d057
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/res/layout/list_item.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:layout_marginBottom="16dp"
+    android:orientation="vertical" >
+
+    <ImageView
+        android:id="@+id/imageView"
+        android:layout_width="fill_parent"
+        android:layout_height="300dp"
+        android:layout_alignParentLeft="true"
+        android:layout_alignParentTop="true"
+        android:layout_marginBottom="16dp"
+        android:background="@color/list_image_bg_color"
+        android:src="@drawable/ic_noimage" />
+
+    <LinearLayout
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_alignBottom="@+id/imageView"
+        android:layout_alignParentLeft="true"
+        android:background="@color/list_text_bg_color"
+        android:orientation="vertical" >
+
+        <TextView
+            android:id="@+id/textTitle"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="8dp"
+            android:layout_marginLeft="8dp"
+            android:textAppearance="@style/RecipeTitleFont" />
+
+        <TextView
+            android:id="@+id/textSummary"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="16dp"
+            android:layout_marginLeft="16dp"
+            android:textAppearance="@style/RecipeSummaryFont" />
+    </LinearLayout>
+
+</RelativeLayout>
\ No newline at end of file
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/res/layout/recipe.xml b/samples/wearable/RecipeAssistant/Application/src/main/res/layout/recipe.xml
new file mode 100644
index 0000000..220aac2
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/res/layout/recipe.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent" >
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical" >
+
+        <ImageView
+            android:id="@+id/recipeImageView"
+            android:layout_width="fill_parent"
+            android:layout_height="300dp"
+            android:layout_marginBottom="16dp"
+            android:background="@color/list_image_bg_color"
+            android:src="@drawable/ic_noimage" />
+
+        <LinearLayout
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:background="@color/list_text_bg_color"
+            android:orientation="vertical" >
+
+            <TextView
+                android:id="@+id/recipeTextTitle"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginBottom="8dp"
+                android:layout_marginLeft="8dp"
+                android:textAppearance="@style/RecipeHugeFont" />
+
+            <TextView
+                android:id="@+id/recipeTextSummary"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginBottom="16dp"
+                android:layout_marginLeft="16dp"
+                android:textAppearance="@style/RecipeSummaryFont" />
+        </LinearLayout>
+
+        <TextView
+            android:id="@+id/ingredientsHeader"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="8dp"
+            android:layout_marginLeft="8dp"
+            android:text="@string/ingredients"
+            android:textAppearance="@style/RecipeTitleFont"
+            android:visibility="gone" />
+
+        <TextView
+            android:id="@+id/textIngredients"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="8dp"
+            android:layout_marginLeft="8dp"
+            android:textAppearance="@style/RecipeSummaryFont" />
+
+        <TextView
+            android:id="@+id/stepsHeader"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="8dp"
+            android:layout_marginLeft="8dp"
+            android:text="@string/steps"
+            android:textAppearance="@style/RecipeTitleFont"
+            android:visibility="gone" />
+
+        <LinearLayout
+            android:id="@+id/layoutSteps"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_margin="8dp"
+            android:orientation="vertical"
+            android:textAppearance="@style/RecipeSummaryFont" >
+        </LinearLayout>
+    </LinearLayout>
+
+</ScrollView>
\ No newline at end of file
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/res/layout/step_item.xml b/samples/wearable/RecipeAssistant/Application/src/main/res/layout/step_item.xml
new file mode 100644
index 0000000..2eee919
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/res/layout/step_item.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:layout_marginBottom="32dp"
+    android:orientation="vertical" >
+
+    <ImageView
+        android:id="@+id/stepImageView"
+        android:layout_width="fill_parent"
+        android:layout_height="300dp"
+        android:layout_alignParentLeft="true"
+        android:layout_alignParentTop="true"
+        android:layout_marginBottom="16dp"
+        android:background="@color/list_image_bg_color"
+        android:src="@drawable/ic_noimage" />
+
+    <LinearLayout
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_alignBottom="@+id/stepImageView"
+        android:layout_alignParentLeft="true"
+        android:background="@color/list_text_bg_color"
+        android:orientation="vertical" >
+
+        <TextView
+            android:id="@+id/textStep"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="8dp"
+            android:layout_marginLeft="8dp"
+            android:layout_marginRight="8dp"
+            android:textAppearance="@style/RecipeTitleFont" />
+    </LinearLayout>
+
+</RelativeLayout>
\ No newline at end of file
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/res/menu/main.xml b/samples/wearable/RecipeAssistant/Application/src/main/res/menu/main.xml
new file mode 100644
index 0000000..fd1ead7
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/res/menu/main.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+    <item
+        android:id="@+id/action_cook"
+        android:orderInCategory="100"
+        android:showAsAction="always|withText"
+        android:title="@string/action_cook" />
+</menu>
\ No newline at end of file
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/res/mipmap-hdpi/ic_app_recipe.png b/samples/wearable/RecipeAssistant/Application/src/main/res/mipmap-hdpi/ic_app_recipe.png
new file mode 100644
index 0000000..8ceb869
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/res/mipmap-hdpi/ic_app_recipe.png
Binary files differ
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/res/mipmap-hdpi/ic_notification_recipe.png b/samples/wearable/RecipeAssistant/Application/src/main/res/mipmap-hdpi/ic_notification_recipe.png
new file mode 100644
index 0000000..844d8ed
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/res/mipmap-hdpi/ic_notification_recipe.png
Binary files differ
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/res/mipmap-mdpi/ic_app_recipe.png b/samples/wearable/RecipeAssistant/Application/src/main/res/mipmap-mdpi/ic_app_recipe.png
new file mode 100644
index 0000000..b884789
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/res/mipmap-mdpi/ic_app_recipe.png
Binary files differ
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/res/mipmap-mdpi/ic_notification_recipe.png b/samples/wearable/RecipeAssistant/Application/src/main/res/mipmap-mdpi/ic_notification_recipe.png
new file mode 100644
index 0000000..3f3f58c
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/res/mipmap-mdpi/ic_notification_recipe.png
Binary files differ
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/res/mipmap-xhdpi/ic_app_recipe.png b/samples/wearable/RecipeAssistant/Application/src/main/res/mipmap-xhdpi/ic_app_recipe.png
new file mode 100644
index 0000000..2a27c32
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/res/mipmap-xhdpi/ic_app_recipe.png
Binary files differ
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/res/mipmap-xhdpi/ic_notification_recipe.png b/samples/wearable/RecipeAssistant/Application/src/main/res/mipmap-xhdpi/ic_notification_recipe.png
new file mode 100644
index 0000000..5a99b7c
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/res/mipmap-xhdpi/ic_notification_recipe.png
Binary files differ
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/res/mipmap-xxhdpi/ic_app_recipe.png b/samples/wearable/RecipeAssistant/Application/src/main/res/mipmap-xxhdpi/ic_app_recipe.png
new file mode 100644
index 0000000..b10c770
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/res/mipmap-xxhdpi/ic_app_recipe.png
Binary files differ
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/res/mipmap-xxhdpi/ic_notification_recipe.png b/samples/wearable/RecipeAssistant/Application/src/main/res/mipmap-xxhdpi/ic_notification_recipe.png
new file mode 100644
index 0000000..799726d
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/res/mipmap-xxhdpi/ic_notification_recipe.png
Binary files differ
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/res/mipmap-xxxhdpi/ic_app_recipe.png b/samples/wearable/RecipeAssistant/Application/src/main/res/mipmap-xxxhdpi/ic_app_recipe.png
new file mode 100644
index 0000000..606f07f
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/res/mipmap-xxxhdpi/ic_app_recipe.png
Binary files differ
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/res/mipmap-xxxhdpi/ic_notification_recipe.png b/samples/wearable/RecipeAssistant/Application/src/main/res/mipmap-xxxhdpi/ic_notification_recipe.png
new file mode 100644
index 0000000..30e28a8
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/res/mipmap-xxxhdpi/ic_notification_recipe.png
Binary files differ
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/res/values/colors.xml b/samples/wearable/RecipeAssistant/Application/src/main/res/values/colors.xml
new file mode 100644
index 0000000..6e4689a
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/res/values/colors.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <color name="list_text_bg_color">#dfff</color>
+    <color name="list_image_bg_color">#6aaa</color>
+</resources>
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/res/values/strings.xml b/samples/wearable/RecipeAssistant/Application/src/main/res/values/strings.xml
new file mode 100644
index 0000000..e99a612
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/res/values/strings.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <string name="app_name">Recipe Assistant</string>
+    <string name="action_settings">Settings</string>
+    <string name="action_cook">Start</string>
+    <string name="steps">Steps</string>
+    <string name="ingredients">Ingredients</string>
+    <string name="step_count">Step %1$d of %2$d</string>
+</resources>
diff --git a/samples/wearable/RecipeAssistant/Application/src/main/res/values/styles.xml b/samples/wearable/RecipeAssistant/Application/src/main/res/values/styles.xml
new file mode 100644
index 0000000..93071e2
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/Application/src/main/res/values/styles.xml
@@ -0,0 +1,23 @@
+<resources xmlns:android="http://schemas.android.com/apk/res/android">
+    <style name="RecipeTitleFont" parent="@android:style/TextAppearance.Large">
+        <item name="android:layout_width">fill_parent</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:textColor">#333333</item>
+        <item name="android:fontFamily">sans-serif</item>
+    </style>
+
+    <style name="RecipeHugeFont" parent="@android:style/TextAppearance.Large">
+        <item name="android:layout_width">fill_parent</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:textColor">#333333</item>
+        <item name="android:fontFamily">sans-serif</item>
+        <item name="android:textSize">20pt</item>
+    </style>
+
+    <style name="RecipeSummaryFont" parent="@android:style/TextAppearance.Medium">
+        <item name="android:layout_width">fill_parent</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:textColor">#333333</item>
+        <item name="android:fontFamily">sans-serif</item>
+    </style>
+</resources>
\ No newline at end of file
diff --git a/samples/wearable/RecipeAssistant/_index.html b/samples/wearable/RecipeAssistant/_index.html
new file mode 100644
index 0000000..3dce7d3
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/_index.html
@@ -0,0 +1,8 @@
+<p>This phone application uses the enhanced notifications API to display
+recipe instructions using paged notifications. After starting the application
+on your phone, you can browse from a short list of recipes and select one to
+view. Each recipe is broken down into a number of steps; when ready, you can
+click on the START action in the action bar to send the steps to the wearable.
+On the wearable device, the steps are displayed as a multi-page notification,
+with one page for each step in the recipe.</p>
+
diff --git a/samples/wearable/RecipeAssistant/build.gradle b/samples/wearable/RecipeAssistant/build.gradle
new file mode 100644
index 0000000..4c8f6d8
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/build.gradle
@@ -0,0 +1,16 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+
+buildscript {
+    repositories {
+        mavenCentral()
+    }
+    dependencies {
+        classpath 'com.android.tools.build:gradle:0.11.+'
+    }
+}
+
+allprojects {
+    repositories {
+        mavenCentral()
+    }
+}
diff --git a/samples/wearable/RecipeAssistant/gradle/wrapper/gradle-wrapper.jar b/samples/wearable/RecipeAssistant/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..5838598
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/samples/wearable/RecipeAssistant/gradle/wrapper/gradle-wrapper.properties b/samples/wearable/RecipeAssistant/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..e83e460
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Fri Mar 14 14:02:22 PDT 2014
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=http\://services.gradle.org/distributions/gradle-1.11-all.zip
diff --git a/samples/wearable/RecipeAssistant/gradlew b/samples/wearable/RecipeAssistant/gradlew
new file mode 100755
index 0000000..91a7e26
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/gradlew
@@ -0,0 +1,164 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+##  Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+    echo "$*"
+}
+
+die ( ) {
+    echo
+    echo "$*"
+    echo
+    exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+  CYGWIN* )
+    cygwin=true
+    ;;
+  Darwin* )
+    darwin=true
+    ;;
+  MINGW* )
+    msys=true
+    ;;
+esac
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched.
+if $cygwin ; then
+    [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+fi
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+        PRG="$link"
+    else
+        PRG=`dirname "$PRG"`"/$link"
+    fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >&-
+APP_HOME="`pwd -P`"
+cd "$SAVED" >&-
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+        # IBM's JDK on AIX uses strange locations for the executables
+        JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+        JAVACMD="$JAVA_HOME/bin/java"
+    fi
+    if [ ! -x "$JAVACMD" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+else
+    JAVACMD="java"
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+    MAX_FD_LIMIT=`ulimit -H -n`
+    if [ $? -eq 0 ] ; then
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+            MAX_FD="$MAX_FD_LIMIT"
+        fi
+        ulimit -n $MAX_FD
+        if [ $? -ne 0 ] ; then
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
+        fi
+    else
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+    fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+    # We build the pattern for arguments to be converted via cygpath
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+    SEP=""
+    for dir in $ROOTDIRSRAW ; do
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
+        SEP="|"
+    done
+    OURCYGPATTERN="(^($ROOTDIRS))"
+    # Add a user-defined pattern to the cygpath arguments
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+    fi
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
+    i=0
+    for arg in "$@" ; do
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
+
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+        else
+            eval `echo args$i`="\"$arg\""
+        fi
+        i=$((i+1))
+    done
+    case $i in
+        (0) set -- ;;
+        (1) set -- "$args0" ;;
+        (2) set -- "$args0" "$args1" ;;
+        (3) set -- "$args0" "$args1" "$args2" ;;
+        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+    esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+    JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/samples/wearable/RecipeAssistant/gradlew.bat b/samples/wearable/RecipeAssistant/gradlew.bat
new file mode 100644
index 0000000..aec9973
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem  Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/samples/wearable/RecipeAssistant/settings.gradle b/samples/wearable/RecipeAssistant/settings.gradle
new file mode 100644
index 0000000..aa94981
--- /dev/null
+++ b/samples/wearable/RecipeAssistant/settings.gradle
@@ -0,0 +1 @@
+include 'Application'
\ No newline at end of file
diff --git a/samples/wearable/SkeletonWearableApp/Wearable/build.gradle b/samples/wearable/SkeletonWearableApp/Wearable/build.gradle
new file mode 100644
index 0000000..2a52030
--- /dev/null
+++ b/samples/wearable/SkeletonWearableApp/Wearable/build.gradle
@@ -0,0 +1,25 @@
+apply plugin: 'android'
+
+android {
+    compileSdkVersion 20
+    buildToolsVersion '20'
+
+    defaultConfig {
+        minSdkVersion 20
+        targetSdkVersion 20
+        versionCode 1
+        versionName "1.0"
+    }
+
+    buildTypes {
+        release {
+            runProguard false
+            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
+        }
+    }
+}
+
+dependencies {
+    compile "com.android.support:support-v13:20.0.+"
+    compile "com.google.android.support:wearable:1.0.+"
+}
diff --git a/samples/wearable/SkeletonWearableApp/Wearable/proguard-rules.txt b/samples/wearable/SkeletonWearableApp/Wearable/proguard-rules.txt
new file mode 100644
index 0000000..2ddbcfc
--- /dev/null
+++ b/samples/wearable/SkeletonWearableApp/Wearable/proguard-rules.txt
@@ -0,0 +1,21 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
+-dontwarn android.support.wearable.view.DelayedConfirmationView
diff --git a/samples/wearable/SkeletonWearableApp/Wearable/src/main/AndroidManifest.xml b/samples/wearable/SkeletonWearableApp/Wearable/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..cd68406
--- /dev/null
+++ b/samples/wearable/SkeletonWearableApp/Wearable/src/main/AndroidManifest.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+        package="com.example.android.google.wearable.app" >
+
+    <uses-sdk android:minSdkVersion="20" android:targetSdkVersion="20" />
+
+    <application
+            android:allowBackup="true"
+            android:icon="@drawable/ic_launcher"
+            android:label="@string/app_name"
+            android:theme="@android:style/Theme.DeviceDefault">
+        <activity
+            android:name="com.example.android.google.wearable.app.MainActivity"
+            android:label="@string/app_name">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN"/>
+                <category android:name="android.intent.category.LAUNCHER"/>
+            </intent-filter>
+            <intent-filter>
+                <action android:name="com.google.android.clockwork.example.SKELETON"/>
+                <category android:name="android.intent.category.DEFAULT"/>
+            </intent-filter>
+        </activity>
+        <activity
+            android:name="com.example.android.google.wearable.app.GridExampleActivity">
+            <intent-filter>
+                <action android:name="com.example.android.google.wearable.app.GRID_ACTIVITY"/>
+                <category android:name="android.intent.category.DEFAULT"/>
+            </intent-filter>
+        </activity>
+    </application>
+
+</manifest>
diff --git a/samples/wearable/SkeletonWearableApp/Wearable/src/main/java/com/example/android/google/wearable/app/GridExampleActivity.java b/samples/wearable/SkeletonWearableApp/Wearable/src/main/java/com/example/android/google/wearable/app/GridExampleActivity.java
new file mode 100644
index 0000000..0a88c04
--- /dev/null
+++ b/samples/wearable/SkeletonWearableApp/Wearable/src/main/java/com/example/android/google/wearable/app/GridExampleActivity.java
@@ -0,0 +1,108 @@
+/*
+ * 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.
+ */
+
+package com.example.android.google.wearable.app;
+
+import android.app.Activity;
+import android.app.Fragment;
+import android.app.FragmentManager;
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.Point;
+import android.graphics.Typeface;
+import android.os.Bundle;
+import android.support.wearable.view.CardFragment;
+import android.support.wearable.view.FragmentGridPagerAdapter;
+import android.support.wearable.view.GridViewPager;
+import android.support.wearable.view.ImageReference;
+import java.util.HashMap;
+import java.util.Map;
+
+public class GridExampleActivity extends Activity {
+    private static final int NUM_ROWS = 10;
+    private static final int NUM_COLS = 3;
+
+    MainAdapter mAdapter;
+    GridViewPager mPager;
+
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.grid_activity);
+        mPager = (GridViewPager) findViewById(R.id.fragment_container);
+        mAdapter = new MainAdapter(getFragmentManager());
+        mPager.setAdapter(mAdapter);
+
+    }
+
+    private static class MainAdapter extends FragmentGridPagerAdapter{
+        Map<Point, ImageReference> mBackgrounds = new HashMap<Point, ImageReference>();
+
+        public MainAdapter(FragmentManager fm) {
+            super(fm);
+        }
+
+        @Override
+        public int getRowCount() {
+            return NUM_ROWS;
+        }
+
+        @Override
+        public int getColumnCount(int rowNum) {
+            return NUM_COLS;
+        }
+
+        @Override
+        public Fragment getFragment(int rowNum, int colNum) {
+            return MainFragment.newInstance(rowNum, colNum);
+        }
+
+        @Override
+        public ImageReference getBackground(int row, int column) {
+            Point pt = new Point(column, row);
+            ImageReference ref = mBackgrounds.get(pt);
+            if (ref == null) {
+                Bitmap bm = Bitmap.createBitmap(200, 200, Bitmap.Config.ARGB_8888);
+                Canvas c = new Canvas(bm);
+                Paint p = new Paint();
+                // Clear previous image.
+                c.drawRect(0, 0, 200, 200, p);
+                p.setAntiAlias(true);
+                p.setTypeface(Typeface.DEFAULT);
+                p.setTextSize(64);
+                p.setColor(Color.LTGRAY);
+                c.drawText(column+ "-" + row, 20, 100, p);
+                ref = ImageReference.forBitmap(bm);
+                mBackgrounds.put(pt, ref);
+            }
+            return ref;
+        }
+    }
+
+    public static class MainFragment extends CardFragment {
+        private static MainFragment newInstance(int rowNum, int colNum) {
+            Bundle args = new Bundle();
+            args.putString(CardFragment.KEY_TITLE, "Row:" + rowNum);
+            args.putString(CardFragment.KEY_TEXT, "Col:" + colNum);
+            MainFragment f = new MainFragment();
+            f.setArguments(args);
+            return f;
+        }
+    }
+}
diff --git a/samples/wearable/SkeletonWearableApp/Wearable/src/main/java/com/example/android/google/wearable/app/MainActivity.java b/samples/wearable/SkeletonWearableApp/Wearable/src/main/java/com/example/android/google/wearable/app/MainActivity.java
new file mode 100644
index 0000000..11bcee7
--- /dev/null
+++ b/samples/wearable/SkeletonWearableApp/Wearable/src/main/java/com/example/android/google/wearable/app/MainActivity.java
@@ -0,0 +1,114 @@
+package com.example.android.google.wearable.app;
+
+import android.app.Activity;
+import android.app.Notification;
+import android.app.PendingIntent;
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v4.app.NotificationCompat;
+import android.support.v4.app.NotificationManagerCompat;
+import android.support.v4.view.GestureDetectorCompat;
+import android.support.wearable.view.DelayedConfirmationView;
+import android.support.wearable.view.DismissOverlayView;
+import android.util.Log;
+import android.view.GestureDetector;
+import android.view.MotionEvent;
+import android.view.View;
+import android.widget.ScrollView;
+
+
+public class MainActivity extends Activity
+        implements DelayedConfirmationView.DelayedConfirmationListener {
+    private static final String TAG = "MainActivity";
+
+    private static final int NOTIFICATION_ID = 1;
+    private static final int NOTIFICATION_REQUEST_CODE = 1;
+    private static final int NUM_SECONDS = 5;
+
+    private GestureDetectorCompat mGestureDetector;
+    private DismissOverlayView mDismissOverlayView;
+
+    @Override
+    public void onCreate(Bundle b) {
+        super.onCreate(b);
+        setContentView(R.layout.main_activity);
+
+        mDismissOverlayView = (DismissOverlayView) findViewById(R.id.dismiss_overlay);
+        mDismissOverlayView.setIntroText(R.string.intro_text);
+        mDismissOverlayView.showIntroIfNecessary();
+        mGestureDetector = new GestureDetectorCompat(this, new LongPressListener());
+    }
+
+    @Override
+    public boolean dispatchTouchEvent(MotionEvent event) {
+        return mGestureDetector.onTouchEvent(event) || super.dispatchTouchEvent(event);
+    }
+
+    private class LongPressListener extends GestureDetector.SimpleOnGestureListener {
+        @Override
+        public void onLongPress(MotionEvent event) {
+            mDismissOverlayView.show();
+        }
+    }
+
+    /**
+     * Handles the button to launch a notification.
+     */
+    public void showNotification(View view) {
+        Notification notification = new NotificationCompat.Builder(this)
+                .setContentTitle(getString(R.string.notification_title))
+                .setContentText(getString(R.string.notification_title))
+                .setSmallIcon(R.drawable.ic_launcher)
+                .addAction(R.drawable.ic_launcher,
+                        getText(R.string.action_launch_activity),
+                        PendingIntent.getActivity(this, NOTIFICATION_REQUEST_CODE,
+                                new Intent(this, GridExampleActivity.class),
+                                PendingIntent.FLAG_UPDATE_CURRENT))
+                .build();
+        NotificationManagerCompat.from(this).notify(NOTIFICATION_ID, notification);
+        finish();
+    }
+
+
+    /**
+     * Handles the button press to finish this activity and take the user back to the Home.
+     */
+    public void onFinishActivity(View view) {
+        setResult(RESULT_OK);
+        finish();
+    }
+
+    /**
+     * Handles the button to start a DelayedConfirmationView timer.
+     */
+    public void onStartTimer(View view) {
+        DelayedConfirmationView delayedConfirmationView = (DelayedConfirmationView)
+                findViewById(R.id.timer);
+        delayedConfirmationView.setTotalTimeMs(NUM_SECONDS * 1000);
+        delayedConfirmationView.setListener(this);
+        delayedConfirmationView.start();
+        scroll(View.FOCUS_DOWN);
+    }
+
+    @Override
+    public void onTimerFinished(View v) {
+        Log.d(TAG, "onTimerFinished is called.");
+        scroll(View.FOCUS_UP);
+    }
+
+    @Override
+    public void onTimerSelected(View v) {
+        Log.d(TAG, "onTimerSelected is called.");
+        scroll(View.FOCUS_UP);
+    }
+
+    private void scroll(final int scrollDirection) {
+        final ScrollView scrollView = (ScrollView) findViewById(R.id.scroll);
+        scrollView.post(new Runnable() {
+            @Override
+            public void run() {
+                scrollView.fullScroll(scrollDirection);
+            }
+        });
+    }
+}
\ No newline at end of file
diff --git a/samples/wearable/SkeletonWearableApp/Wearable/src/main/res/drawable-hdpi/ic_launcher.png b/samples/wearable/SkeletonWearableApp/Wearable/src/main/res/drawable-hdpi/ic_launcher.png
new file mode 100755
index 0000000..589f229
--- /dev/null
+++ b/samples/wearable/SkeletonWearableApp/Wearable/src/main/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/SkeletonWearableApp/Wearable/src/main/res/drawable-mdpi/ic_launcher.png b/samples/wearable/SkeletonWearableApp/Wearable/src/main/res/drawable-mdpi/ic_launcher.png
new file mode 100755
index 0000000..77dd571
--- /dev/null
+++ b/samples/wearable/SkeletonWearableApp/Wearable/src/main/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/SkeletonWearableApp/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png b/samples/wearable/SkeletonWearableApp/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png
new file mode 100755
index 0000000..fe34ebe
--- /dev/null
+++ b/samples/wearable/SkeletonWearableApp/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/SkeletonWearableApp/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png b/samples/wearable/SkeletonWearableApp/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png
new file mode 100755
index 0000000..ab80bcd
--- /dev/null
+++ b/samples/wearable/SkeletonWearableApp/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/SkeletonWearableApp/Wearable/src/main/res/layout/grid_activity.xml b/samples/wearable/SkeletonWearableApp/Wearable/src/main/res/layout/grid_activity.xml
new file mode 100644
index 0000000..3ee687c
--- /dev/null
+++ b/samples/wearable/SkeletonWearableApp/Wearable/src/main/res/layout/grid_activity.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.wearable.view.GridViewPager
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/fragment_container"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent" />
diff --git a/samples/wearable/SkeletonWearableApp/Wearable/src/main/res/layout/main_activity.xml b/samples/wearable/SkeletonWearableApp/Wearable/src/main/res/layout/main_activity.xml
new file mode 100644
index 0000000..7b92da2
--- /dev/null
+++ b/samples/wearable/SkeletonWearableApp/Wearable/src/main/res/layout/main_activity.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<FrameLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <ScrollView
+        android:id="@+id/scroll"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:orientation="vertical"
+        android:background="#000000"
+        android:fillViewport="true">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginBottom="2dp"
+                android:text="@string/main_activity_title_text"
+                android:textSize="36sp"
+                android:textColor="#006600"/>
+
+            <Button
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:onClick="showNotification"
+                android:text="@string/show_notification" />
+
+            <Button
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:onClick="onFinishActivity"
+                android:text="@string/finish_activity" />
+
+            <Button
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:id="@+id/start_timer_button"
+                android:onClick="onStartTimer"
+                android:text="@string/start_timer" />
+
+            <android.support.wearable.view.DelayedConfirmationView
+                xmlns:app="http://schemas.android.com/apk/res-auto"
+                android:id="@+id/timer"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center"
+                android:src="@drawable/ic_launcher"
+                app:circle_color="@color/blue"
+                app:circle_padding="@dimen/circle_padding"
+                app:circle_border_width="@dimen/circle_border_normal_width"
+                app:circle_border_color="@color/white"
+                app:circle_radius="@dimen/circle_radius"/>
+
+        </LinearLayout>
+
+    </ScrollView>
+
+    <android.support.wearable.view.DismissOverlayView
+        android:id="@+id/dismiss_overlay"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent" />
+
+</FrameLayout>
diff --git a/samples/wearable/SkeletonWearableApp/Wearable/src/main/res/values/dimens.xml b/samples/wearable/SkeletonWearableApp/Wearable/src/main/res/values/dimens.xml
new file mode 100644
index 0000000..ea93886
--- /dev/null
+++ b/samples/wearable/SkeletonWearableApp/Wearable/src/main/res/values/dimens.xml
@@ -0,0 +1,5 @@
+<resources>
+    <dimen name="circle_border_normal_width">10dp</dimen>
+    <dimen name="circle_padding">5dp</dimen>
+    <dimen name="circle_radius">50dp</dimen>
+</resources>
diff --git a/samples/wearable/SkeletonWearableApp/Wearable/src/main/res/values/strings.xml b/samples/wearable/SkeletonWearableApp/Wearable/src/main/res/values/strings.xml
new file mode 100644
index 0000000..6046af0
--- /dev/null
+++ b/samples/wearable/SkeletonWearableApp/Wearable/src/main/res/values/strings.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+    <string name="app_name">Skeleton Wearable App</string>
+    <string name="intro_text">Long press to go back home.</string>
+    <string name="main_activity_title_text"> Main Activity </string>
+    <string name="grid_activity_title_text"> Grid Activity </string>
+    <string name="finish_activity"> Finish Activity </string>
+    <string name="start_timer"> Start Timer (5 sec) </string>
+    <string name="show_notification"> Show Notification </string>
+    <string name="notification_title"> Skeleton App Notification </string>
+    <string name="action_launch_activity">Launch Activity</string>
+</resources>
diff --git a/samples/wearable/SkeletonWearableApp/build.gradle b/samples/wearable/SkeletonWearableApp/build.gradle
new file mode 100644
index 0000000..d9bdcb3
--- /dev/null
+++ b/samples/wearable/SkeletonWearableApp/build.gradle
@@ -0,0 +1,15 @@
+buildscript {
+    repositories {
+        mavenCentral()
+    }
+    dependencies {
+        classpath 'com.android.tools.build:gradle:0.11.+'
+    }
+}
+
+allprojects {
+    repositories {
+        mavenCentral()
+    }
+}
+
diff --git a/samples/wearable/SkeletonWearableApp/gradle.properties b/samples/wearable/SkeletonWearableApp/gradle.properties
new file mode 100644
index 0000000..5d08ba7
--- /dev/null
+++ b/samples/wearable/SkeletonWearableApp/gradle.properties
@@ -0,0 +1,18 @@
+# Project-wide Gradle settings.
+
+# IDE (e.g. Android Studio) users:
+# Settings specified in this file will override any Gradle settings
+# configured through the IDE.
+
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+# Default value: -Xmx10248m -XX:MaxPermSize=256m
+# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
+
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
\ No newline at end of file
diff --git a/samples/wearable/SkeletonWearableApp/gradle/wrapper/gradle-wrapper.jar b/samples/wearable/SkeletonWearableApp/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..5838598
--- /dev/null
+++ b/samples/wearable/SkeletonWearableApp/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/samples/wearable/SkeletonWearableApp/gradle/wrapper/gradle-wrapper.properties b/samples/wearable/SkeletonWearableApp/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..e83e460
--- /dev/null
+++ b/samples/wearable/SkeletonWearableApp/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Fri Mar 14 14:02:22 PDT 2014
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=http\://services.gradle.org/distributions/gradle-1.11-all.zip
diff --git a/samples/wearable/SkeletonWearableApp/gradlew b/samples/wearable/SkeletonWearableApp/gradlew
new file mode 100755
index 0000000..91a7e26
--- /dev/null
+++ b/samples/wearable/SkeletonWearableApp/gradlew
@@ -0,0 +1,164 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+##  Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+    echo "$*"
+}
+
+die ( ) {
+    echo
+    echo "$*"
+    echo
+    exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+  CYGWIN* )
+    cygwin=true
+    ;;
+  Darwin* )
+    darwin=true
+    ;;
+  MINGW* )
+    msys=true
+    ;;
+esac
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched.
+if $cygwin ; then
+    [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+fi
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+        PRG="$link"
+    else
+        PRG=`dirname "$PRG"`"/$link"
+    fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >&-
+APP_HOME="`pwd -P`"
+cd "$SAVED" >&-
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+        # IBM's JDK on AIX uses strange locations for the executables
+        JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+        JAVACMD="$JAVA_HOME/bin/java"
+    fi
+    if [ ! -x "$JAVACMD" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+else
+    JAVACMD="java"
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+    MAX_FD_LIMIT=`ulimit -H -n`
+    if [ $? -eq 0 ] ; then
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+            MAX_FD="$MAX_FD_LIMIT"
+        fi
+        ulimit -n $MAX_FD
+        if [ $? -ne 0 ] ; then
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
+        fi
+    else
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+    fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+    # We build the pattern for arguments to be converted via cygpath
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+    SEP=""
+    for dir in $ROOTDIRSRAW ; do
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
+        SEP="|"
+    done
+    OURCYGPATTERN="(^($ROOTDIRS))"
+    # Add a user-defined pattern to the cygpath arguments
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+    fi
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
+    i=0
+    for arg in "$@" ; do
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
+
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+        else
+            eval `echo args$i`="\"$arg\""
+        fi
+        i=$((i+1))
+    done
+    case $i in
+        (0) set -- ;;
+        (1) set -- "$args0" ;;
+        (2) set -- "$args0" "$args1" ;;
+        (3) set -- "$args0" "$args1" "$args2" ;;
+        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+    esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+    JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/samples/wearable/SkeletonWearableApp/gradlew.bat b/samples/wearable/SkeletonWearableApp/gradlew.bat
new file mode 100755
index 0000000..aec9973
--- /dev/null
+++ b/samples/wearable/SkeletonWearableApp/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem  Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/samples/wearable/SkeletonWearableApp/settings.gradle b/samples/wearable/SkeletonWearableApp/settings.gradle
new file mode 100644
index 0000000..1d97d30
--- /dev/null
+++ b/samples/wearable/SkeletonWearableApp/settings.gradle
@@ -0,0 +1 @@
+include ':Wearable'
diff --git a/samples/wearable/Timer/Wearable/build.gradle b/samples/wearable/Timer/Wearable/build.gradle
new file mode 100644
index 0000000..4c5f5e9
--- /dev/null
+++ b/samples/wearable/Timer/Wearable/build.gradle
@@ -0,0 +1,26 @@
+apply plugin: 'android'
+
+android {
+    compileSdkVersion 20
+    buildToolsVersion '20'
+
+    defaultConfig {
+        minSdkVersion 20
+        targetSdkVersion 20
+        versionCode 1
+        versionName "1.0"
+    }
+
+    buildTypes {
+        release {
+            runProguard false
+            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
+        }
+    }
+}
+
+dependencies {
+    compile 'com.google.android.gms:play-services:5.+@aar'
+    compile "com.android.support:support-v4:20.0.+"
+    compile "com.google.android.support:wearable:1.0.+"
+}
diff --git a/samples/wearable/Timer/Wearable/proguard-rules.txt b/samples/wearable/Timer/Wearable/proguard-rules.txt
new file mode 100644
index 0000000..08e5bdc
--- /dev/null
+++ b/samples/wearable/Timer/Wearable/proguard-rules.txt
@@ -0,0 +1,22 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
+-dontwarn android.support.wearable.view.DelayedConfirmationView
+-dontwarn android.support.wearable.view.CircledImageView
diff --git a/samples/wearable/Timer/Wearable/src/main/AndroidManifest.xml b/samples/wearable/Timer/Wearable/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..58f61e3
--- /dev/null
+++ b/samples/wearable/Timer/Wearable/src/main/AndroidManifest.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 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.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+        package="com.example.android.wearable.timer" >
+
+    <uses-sdk android:minSdkVersion="20" android:targetSdkVersion="20" />
+
+    <application
+            android:icon="@mipmap/ic_launcher"
+            android:label="@string/app_name"
+            android:theme="@android:style/Theme.DeviceDefault.Light">
+
+        <meta-data
+                android:name="com.google.android.gms.version"
+                android:value="@integer/google_play_services_version" />
+
+        <!-- Timer components -->
+        <activity android:name=".SetTimerActivity">
+            <intent-filter>
+                <action android:name="com.android.example.clockwork.timer.TIMER"/>
+                <category android:name="android.intent.category.DEFAULT"/>
+            </intent-filter>
+            <!-- Set a timer voice command -->
+            <intent-filter>
+                <action android:name="android.intent.action.SET_ALARM"/>
+                <category android:name="android.intent.category.DEFAULT"/>
+            </intent-filter>
+        </activity>
+
+        <service android:name=".TimerNotificationService" />
+
+    </application>
+</manifest>
diff --git a/samples/wearable/Timer/Wearable/src/main/java/com/example/android/wearable/timer/SetTimerActivity.java b/samples/wearable/Timer/Wearable/src/main/java/com/example/android/wearable/timer/SetTimerActivity.java
new file mode 100644
index 0000000..92dbfc0
--- /dev/null
+++ b/samples/wearable/Timer/Wearable/src/main/java/com/example/android/wearable/timer/SetTimerActivity.java
@@ -0,0 +1,222 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+package com.example.android.wearable.timer;
+
+import android.app.Activity;
+import android.app.AlarmManager;
+import android.app.Notification;
+import android.app.PendingIntent;
+import android.content.Context;
+import android.content.Intent;
+import android.content.res.Resources;
+import android.os.Bundle;
+import android.provider.AlarmClock;
+import android.support.v4.app.NotificationCompat;
+import android.support.v4.app.NotificationManagerCompat;
+import android.util.Log;
+import android.view.View;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.ListView;
+
+import com.example.android.wearable.timer.util.Constants;
+import com.example.android.wearable.timer.util.TimerFormat;
+import com.google.android.gms.common.ConnectionResult;
+import com.google.android.gms.common.api.GoogleApiClient;
+import com.google.android.gms.wearable.Wearable;
+
+/** This class sets a timer. */
+public class SetTimerActivity extends Activity
+        implements AdapterView.OnItemClickListener, GoogleApiClient.ConnectionCallbacks,
+        GoogleApiClient.OnConnectionFailedListener {
+
+    public static final int NUMBER_OF_TIMES = 10;
+    public static final String TAG = "SetTimerActivity";
+
+    private ListViewItem[] mTimeOptions = new ListViewItem[NUMBER_OF_TIMES];
+    private ListView mListView;
+    private GoogleApiClient mGoogleApiClient;
+
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        int paramLength = getIntent().getIntExtra(AlarmClock.EXTRA_LENGTH, 0);
+        if (Log.isLoggable(TAG, Log.DEBUG)) {
+            Log.d(TAG, "SetTimerActivity:onCreate=" + paramLength);
+        }
+        if (paramLength > 0 && paramLength <= 86400) {
+            long durationMillis = paramLength * 1000;
+            setupTimer(durationMillis);
+            finish();
+            return;
+        }
+
+        Resources res = getResources();
+        for (int i = 0; i < NUMBER_OF_TIMES; i++) {
+            mTimeOptions[i] = new ListViewItem(
+                    res.getQuantityString(R.plurals.timer_minutes, i + 1, i + 1),
+                    (i + 1) * 60 * 1000);
+        }
+
+        setContentView(R.layout.timer_set_timer);
+
+        // Initialize a simple list of countdown time options.
+        mListView = (ListView) findViewById(R.id.times_list_view);
+        ArrayAdapter<ListViewItem> arrayAdapter = new ArrayAdapter<ListViewItem>(this,
+                android.R.layout.simple_list_item_1, mTimeOptions);
+        mListView.setAdapter(arrayAdapter);
+        mListView.setOnItemClickListener(this);
+
+        mGoogleApiClient = new GoogleApiClient.Builder(this)
+                .addApi(Wearable.API)
+                .addConnectionCallbacks(this)
+                .addOnConnectionFailedListener(this)
+                .build();
+    }
+
+    @Override
+    protected void onStart() {
+        super.onStart();
+        mGoogleApiClient.connect();
+    }
+
+    @Override
+    protected void onStop() {
+        super.onStop();
+        mGoogleApiClient.disconnect();
+    }
+
+    /**
+     * Sets up an alarm (and an associated notification) to go off after <code>duration</code>
+     * milliseconds.
+     */
+    private void setupTimer(long duration) {
+        NotificationManagerCompat notifyMgr = NotificationManagerCompat.from(this);
+
+        // Delete dataItem and cancel a potential old countdown.
+        cancelCountdown(notifyMgr);
+
+        // Build notification and set it.
+        notifyMgr.notify(Constants.NOTIFICATION_TIMER_COUNTDOWN, buildNotification(duration));
+
+        // Register with the alarm manager to display a notification when the timer is done.
+        registerWithAlarmManager(duration);
+
+        finish();
+    }
+
+    @Override
+    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+        long duration = mTimeOptions[position].duration;
+        setupTimer(duration);
+    }
+
+    private void registerWithAlarmManager(long duration) {
+        // Get the alarm manager.
+        AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
+
+        // Create intent that gets fired when timer expires.
+        Intent intent = new Intent(Constants.ACTION_SHOW_ALARM, null, this,
+                TimerNotificationService.class);
+        PendingIntent pendingIntent = PendingIntent.getService(this, 0, intent,
+                PendingIntent.FLAG_UPDATE_CURRENT);
+
+        // Calculate the time when it expires.
+        long wakeupTime = System.currentTimeMillis() + duration;
+
+        // Schedule an alarm.
+        alarm.setExact(AlarmManager.RTC_WAKEUP, wakeupTime, pendingIntent);
+    }
+
+    /**
+     * Build a notification including different actions and other various setup and return it.
+     *
+     * @param duration the duration of the timer.
+     * @return the notification to display.
+     */
+
+    private Notification buildNotification(long duration) {
+        // Intent to restart a timer.
+        Intent restartIntent = new Intent(Constants.ACTION_RESTART_ALARM, null, this,
+                TimerNotificationService.class);
+        PendingIntent pendingIntentRestart = PendingIntent
+                .getService(this, 0, restartIntent, PendingIntent.FLAG_UPDATE_CURRENT);
+
+        // Intent to delete a timer.
+        Intent deleteIntent = new Intent(Constants.ACTION_DELETE_ALARM, null, this,
+                TimerNotificationService.class);
+        PendingIntent pendingIntentDelete = PendingIntent
+                .getService(this, 0, deleteIntent, PendingIntent.FLAG_UPDATE_CURRENT);
+
+        // Create countdown notification using a chronometer style.
+        return new NotificationCompat.Builder(this)
+                .setSmallIcon(R.drawable.ic_cc_alarm)
+                .setContentTitle(getString(R.string.timer_time_left))
+                .setContentText(TimerFormat.getTimeString(duration))
+                .setUsesChronometer(true)
+                .setWhen(System.currentTimeMillis() + duration)
+                .addAction(R.drawable.ic_cc_alarm, getString(R.string.timer_restart),
+                        pendingIntentRestart)
+                .addAction(R.drawable.ic_cc_alarm, getString(R.string.timer_delete),
+                        pendingIntentDelete)
+                .setDeleteIntent(pendingIntentDelete)
+                .setLocalOnly(true)
+                .build();
+    }
+
+    /**
+     * Cancels an old countdown and deletes the dataItem.
+     *
+     * @param notifyMgr the notification manager.
+     */
+    private void cancelCountdown(NotificationManagerCompat notifyMgr) {
+        notifyMgr.cancel(Constants.NOTIFICATION_TIMER_EXPIRED);
+    }
+
+    /** Model class for the listview. */
+    private static class ListViewItem {
+
+        // Duration in milliseconds.
+        long duration;
+        // Label to display.
+        private String label;
+
+        public ListViewItem(String label, long duration) {
+            this.label = label;
+            this.duration = duration;
+        }
+
+        @Override
+        public String toString() {
+            return label;
+        }
+    }
+
+    @Override
+    public void onConnected(Bundle connectionHint) {
+    }
+
+    @Override
+    public void onConnectionSuspended(int cause) {
+    }
+
+    @Override
+    public void onConnectionFailed(ConnectionResult result) {
+    }
+}
diff --git a/samples/wearable/Timer/Wearable/src/main/java/com/example/android/wearable/timer/TimerNotificationService.java b/samples/wearable/Timer/Wearable/src/main/java/com/example/android/wearable/timer/TimerNotificationService.java
new file mode 100644
index 0000000..344d84c
--- /dev/null
+++ b/samples/wearable/Timer/Wearable/src/main/java/com/example/android/wearable/timer/TimerNotificationService.java
@@ -0,0 +1,137 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+package com.example.android.wearable.timer;
+
+import android.app.AlarmManager;
+import android.app.IntentService;
+import android.app.Notification;
+import android.app.PendingIntent;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v4.app.NotificationCompat;
+import android.support.v4.app.NotificationManagerCompat;
+import android.util.Log;
+
+import com.example.android.wearable.timer.util.Constants;
+import com.google.android.gms.common.ConnectionResult;
+import com.google.android.gms.common.api.GoogleApiClient;
+import com.google.android.gms.wearable.Wearable;
+
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Service class that manages notifications of the timer.
+ */
+public class TimerNotificationService extends IntentService
+        implements GoogleApiClient.ConnectionCallbacks,
+        GoogleApiClient.OnConnectionFailedListener {
+
+    public static final String TAG = "TimerNotificationSvc";
+
+    public TimerNotificationService() {
+        super(TAG);
+    }
+
+    @Override
+    public void onCreate() {
+        super.onCreate();
+    }
+
+    @Override
+    protected void onHandleIntent(Intent intent) {
+        if (Log.isLoggable(TAG, Log.DEBUG)) {
+            Log.d(TAG, "onHandleIntent called with intent: " + intent);
+        }
+        String action = intent.getAction();
+        if (Constants.ACTION_SHOW_ALARM.equals(action)) {
+            showTimerDoneNotification();
+        } else if (Constants.ACTION_DELETE_ALARM.equals(action)) {
+            deleteTimer();
+        } else if (Constants.ACTION_RESTART_ALARM.equals(action)) {
+            restartAlarm();
+        } else {
+            throw new IllegalStateException("Undefined constant used: " + action);
+        }
+    }
+
+    private void restartAlarm() {
+        Intent dialogIntent = new Intent(this, SetTimerActivity.class);
+        dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        startActivity(dialogIntent);
+        if (Log.isLoggable(TAG, Log.DEBUG)) {
+            Log.d(TAG, "Timer restarted.");
+        }
+    }
+
+    private void deleteTimer() {
+        cancelCountdownNotification();
+
+        AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
+        Intent intent = new Intent(Constants.ACTION_SHOW_ALARM, null, this,
+                TimerNotificationService.class);
+        PendingIntent pendingIntent = PendingIntent.getService(this, 0, intent,
+                PendingIntent.FLAG_UPDATE_CURRENT);
+        alarm.cancel(pendingIntent);
+
+        if (Log.isLoggable(TAG, Log.DEBUG)) {
+            Log.d(TAG, "Timer deleted.");
+        }
+    }
+
+    private void cancelCountdownNotification() {
+        NotificationManagerCompat notifyMgr = NotificationManagerCompat.from(this);
+        notifyMgr.cancel(Constants.NOTIFICATION_TIMER_COUNTDOWN);
+    }
+
+    private void showTimerDoneNotification() {
+        // Cancel the countdown notification to show the "timer done" notification.
+        cancelCountdownNotification();
+
+        // Create an intent to restart a timer.
+        Intent restartIntent = new Intent(Constants.ACTION_RESTART_ALARM, null, this,
+                TimerNotificationService.class);
+        PendingIntent pendingIntentRestart = PendingIntent
+                .getService(this, 0, restartIntent, PendingIntent.FLAG_UPDATE_CURRENT);
+
+        // Create notification that timer has expired.
+        NotificationManagerCompat notifyMgr = NotificationManagerCompat.from(this);
+        Notification notif = new NotificationCompat.Builder(this)
+                .setSmallIcon(R.drawable.ic_cc_alarm)
+                .setContentTitle(getString(R.string.timer_done))
+                .setContentText(getString(R.string.timer_done))
+                .setUsesChronometer(true)
+                .setWhen(System.currentTimeMillis())
+                .addAction(R.drawable.ic_cc_alarm, getString(R.string.timer_restart),
+                        pendingIntentRestart)
+                .setLocalOnly(true)
+                .build();
+        notifyMgr.notify(Constants.NOTIFICATION_TIMER_EXPIRED, notif);
+    }
+
+    @Override
+    public void onConnected(Bundle connectionHint) {
+    }
+
+    @Override
+    public void onConnectionSuspended(int cause) {
+    }
+
+    @Override
+    public void onConnectionFailed(ConnectionResult result) {
+    }
+}
diff --git a/samples/wearable/Timer/Wearable/src/main/java/com/example/android/wearable/timer/util/Constants.java b/samples/wearable/Timer/Wearable/src/main/java/com/example/android/wearable/timer/util/Constants.java
new file mode 100644
index 0000000..b5f58fb
--- /dev/null
+++ b/samples/wearable/Timer/Wearable/src/main/java/com/example/android/wearable/timer/util/Constants.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+package com.example.android.wearable.timer.util;
+
+import android.net.Uri;
+
+/** Used to hold constants. */
+public final class Constants {
+
+    public static final String START_TIME = "timer_start_time";
+    public static final String ORIGINAL_TIME = "timer_original_time";
+    public static final String DATA_ITEM_PATH = "/timer";
+    public static final Uri URI_PATTERN_DATA_ITEMS =
+            Uri.fromParts("wear", DATA_ITEM_PATH, null);
+
+    public static final int NOTIFICATION_TIMER_COUNTDOWN = 1;
+    public static final int NOTIFICATION_TIMER_EXPIRED = 2;
+
+    public static final String ACTION_SHOW_ALARM
+            = "com.android.example.clockwork.timer.ACTION_SHOW";
+    public static final String ACTION_DELETE_ALARM
+            = "com.android.example.clockwork.timer.ACTION_DELETE";
+    public static final String ACTION_RESTART_ALARM
+            = "com.android.example.clockwork.timer.ACTION_RESTART";
+
+    private Constants() {
+    }
+
+}
diff --git a/samples/wearable/Timer/Wearable/src/main/java/com/example/android/wearable/timer/util/TimerFormat.java b/samples/wearable/Timer/Wearable/src/main/java/com/example/android/wearable/timer/util/TimerFormat.java
new file mode 100644
index 0000000..ca84394
--- /dev/null
+++ b/samples/wearable/Timer/Wearable/src/main/java/com/example/android/wearable/timer/util/TimerFormat.java
@@ -0,0 +1,121 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+package com.example.android.wearable.timer.util;
+
+/** Helper class to format the timer. Based on com.android.deskclock.timer.CountingTimerView. */
+public final class TimerFormat {
+
+    private static final String TWO_DIGITS = "%02d";
+
+    private static final String ONE_DIGIT = "%01d";
+
+    private static final String NEG_TWO_DIGITS = "-%02d";
+
+    private static final String NEG_ONE_DIGIT = "-%01d";
+
+    private static String mHours;
+
+    private static String mMinutes;
+
+    private static String mSeconds;
+
+    private TimerFormat() {
+
+    }
+
+    /**
+     * Update the time to display. Separates that time into the hours, minutes, seconds.
+     * Copied and shortened from com.android.deskclock.timer.CountingTimerView.
+     *
+     * @param time new time to display - in milliseconds
+     */
+    private static void setTime(long time) {
+        boolean neg = false;
+        boolean showNeg = false;
+        String format;
+        if (time < 0) {
+            time = -time;
+            neg = showNeg = true;
+        }
+        long seconds = time / 1000;
+        long hundreds = (time - seconds * 1000) / 10;
+        long minutes = seconds / 60;
+        seconds = seconds - minutes * 60;
+        long hours = minutes / 60;
+        minutes = minutes - hours * 60;
+        if (hours > 999) {
+            hours = 0;
+        }
+        // The time  can be between 0 and -1 seconds, but the "truncated" equivalent time of hours
+        // and minutes and seconds could be zero, so since we do not show fractions of seconds
+        // when counting down, do not show the minus sign.
+        if (hours == 0 && minutes == 0 && seconds == 0) {
+            showNeg = false;
+        }
+
+        // Normalize and check if it is 'time' to invalidate
+        if (!neg && hundreds != 0) {
+            seconds++;
+            if (seconds == 60) {
+                seconds = 0;
+                minutes++;
+                if (minutes == 60) {
+                    minutes = 0;
+                    hours++;
+                }
+            }
+        }
+
+        // Hours may be empty
+        if (hours >= 10) {
+            format = showNeg ? NEG_TWO_DIGITS : TWO_DIGITS;
+            mHours = String.format(format, hours);
+        } else if (hours > 0) {
+            format = showNeg ? NEG_ONE_DIGIT : ONE_DIGIT;
+            mHours = String.format(format, hours);
+        } else {
+            mHours = null;
+        }
+
+        // Minutes are never empty and when hours are non-empty, must be two digits
+        if (minutes >= 10 || hours > 0) {
+            format = (showNeg && hours == 0) ? NEG_TWO_DIGITS : TWO_DIGITS;
+            mMinutes = String.format(format, minutes);
+        } else {
+            format = (showNeg && hours == 0) ? NEG_ONE_DIGIT : ONE_DIGIT;
+            mMinutes = String.format(format, minutes);
+        }
+
+        // Seconds are always two digits
+        mSeconds = String.format(TWO_DIGITS, seconds);
+    }
+
+    /**
+     * Based on com.android.deskclock.timer.CountingTimerView.
+     *
+     * @param time the time to format.
+     * @return nicely formatted time.
+     */
+    public static String getTimeString(long time) {
+        setTime(time);
+        if (mHours == null) {
+            return String.format("%s:%s", mMinutes, mSeconds);
+        }
+        return String.format("%s:%s:%s", mHours, mMinutes, mSeconds);
+
+    }
+}
diff --git a/samples/wearable/Timer/Wearable/src/main/java/com/example/android/wearable/timer/util/TimerObj.java b/samples/wearable/Timer/Wearable/src/main/java/com/example/android/wearable/timer/util/TimerObj.java
new file mode 100644
index 0000000..2c33734
--- /dev/null
+++ b/samples/wearable/Timer/Wearable/src/main/java/com/example/android/wearable/timer/util/TimerObj.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+package com.example.android.wearable.timer.util;
+
+import android.os.SystemClock;
+
+
+/** This class represents a timer. */
+public class TimerObj {
+
+    // Start time in milliseconds.
+    public long startTime;
+
+    // Length of the timer in milliseconds.
+    public long originalLength;
+
+    /**
+     * Construct a timer with a specific start time and length.
+     *
+     * @param startTime the start time of the timer.
+     * @param timerLength the length of the timer.
+     */
+    public TimerObj(long startTime, long timerLength) {
+        this.startTime = startTime;
+        this.originalLength = timerLength;
+    }
+
+    /**
+     * Calculate the time left of this timer.
+     * @return the time left for this timer.
+     */
+    public long timeLeft() {
+        long millis = SystemClock.elapsedRealtime();
+        return originalLength - (millis - startTime);
+    }
+}
diff --git a/samples/wearable/Timer/Wearable/src/main/res/drawable/ic_cc_alarm.png b/samples/wearable/Timer/Wearable/src/main/res/drawable/ic_cc_alarm.png
new file mode 100644
index 0000000..ad51ddf
--- /dev/null
+++ b/samples/wearable/Timer/Wearable/src/main/res/drawable/ic_cc_alarm.png
Binary files differ
diff --git a/samples/wearable/Timer/Wearable/src/main/res/layout/timer_set_timer.xml b/samples/wearable/Timer/Wearable/src/main/res/layout/timer_set_timer.xml
new file mode 100644
index 0000000..190b73c
--- /dev/null
+++ b/samples/wearable/Timer/Wearable/src/main/res/layout/timer_set_timer.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 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.
+-->
+
+<ListView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="wrap_content"
+    android:layout_height="match_parent"
+    android:id="@+id/times_list_view" />
diff --git a/samples/wearable/Timer/Wearable/src/main/res/mipmap-hdpi/ic_launcher.png b/samples/wearable/Timer/Wearable/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000..56f7fc1
--- /dev/null
+++ b/samples/wearable/Timer/Wearable/src/main/res/mipmap-hdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Timer/Wearable/src/main/res/mipmap-mdpi/ic_launcher.png b/samples/wearable/Timer/Wearable/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000..dec99cd
--- /dev/null
+++ b/samples/wearable/Timer/Wearable/src/main/res/mipmap-mdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Timer/Wearable/src/main/res/mipmap-xhdpi/ic_launcher.png b/samples/wearable/Timer/Wearable/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..48fa0ab
--- /dev/null
+++ b/samples/wearable/Timer/Wearable/src/main/res/mipmap-xhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Timer/Wearable/src/main/res/mipmap-xxhdpi/ic_launcher.png b/samples/wearable/Timer/Wearable/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..8173921
--- /dev/null
+++ b/samples/wearable/Timer/Wearable/src/main/res/mipmap-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Timer/Wearable/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/samples/wearable/Timer/Wearable/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000..0dce809
--- /dev/null
+++ b/samples/wearable/Timer/Wearable/src/main/res/mipmap-xxxhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/Timer/Wearable/src/main/res/values/strings.xml b/samples/wearable/Timer/Wearable/src/main/res/values/strings.xml
new file mode 100644
index 0000000..8cd0259
--- /dev/null
+++ b/samples/wearable/Timer/Wearable/src/main/res/values/strings.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 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.
+-->
+
+<resources>
+    <string name="app_name">Timer Example Wearable App</string>
+    <string name="timer_done">Timer done</string>
+    <string name="timer_time_left">Time remaining</string>
+    <string name="timer_delete">Delete</string>
+    <string name="timer_restart">Restart</string>
+    <plurals name="timer_minutes">
+        <item quantity="one">1 minute</item>
+        <item quantity="other">%d minutes</item>
+    </plurals>
+</resources>
diff --git a/samples/wearable/Timer/build.gradle b/samples/wearable/Timer/build.gradle
new file mode 100644
index 0000000..4c8f6d8
--- /dev/null
+++ b/samples/wearable/Timer/build.gradle
@@ -0,0 +1,16 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+
+buildscript {
+    repositories {
+        mavenCentral()
+    }
+    dependencies {
+        classpath 'com.android.tools.build:gradle:0.11.+'
+    }
+}
+
+allprojects {
+    repositories {
+        mavenCentral()
+    }
+}
diff --git a/samples/wearable/Timer/gradle/wrapper/gradle-wrapper.jar b/samples/wearable/Timer/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..5838598
--- /dev/null
+++ b/samples/wearable/Timer/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/samples/wearable/Timer/gradle/wrapper/gradle-wrapper.properties b/samples/wearable/Timer/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..e83e460
--- /dev/null
+++ b/samples/wearable/Timer/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Fri Mar 14 14:02:22 PDT 2014
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=http\://services.gradle.org/distributions/gradle-1.11-all.zip
diff --git a/samples/wearable/Timer/gradlew b/samples/wearable/Timer/gradlew
new file mode 100755
index 0000000..91a7e26
--- /dev/null
+++ b/samples/wearable/Timer/gradlew
@@ -0,0 +1,164 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+##  Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+    echo "$*"
+}
+
+die ( ) {
+    echo
+    echo "$*"
+    echo
+    exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+  CYGWIN* )
+    cygwin=true
+    ;;
+  Darwin* )
+    darwin=true
+    ;;
+  MINGW* )
+    msys=true
+    ;;
+esac
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched.
+if $cygwin ; then
+    [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+fi
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+        PRG="$link"
+    else
+        PRG=`dirname "$PRG"`"/$link"
+    fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >&-
+APP_HOME="`pwd -P`"
+cd "$SAVED" >&-
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+        # IBM's JDK on AIX uses strange locations for the executables
+        JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+        JAVACMD="$JAVA_HOME/bin/java"
+    fi
+    if [ ! -x "$JAVACMD" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+else
+    JAVACMD="java"
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+    MAX_FD_LIMIT=`ulimit -H -n`
+    if [ $? -eq 0 ] ; then
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+            MAX_FD="$MAX_FD_LIMIT"
+        fi
+        ulimit -n $MAX_FD
+        if [ $? -ne 0 ] ; then
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
+        fi
+    else
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+    fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+    # We build the pattern for arguments to be converted via cygpath
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+    SEP=""
+    for dir in $ROOTDIRSRAW ; do
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
+        SEP="|"
+    done
+    OURCYGPATTERN="(^($ROOTDIRS))"
+    # Add a user-defined pattern to the cygpath arguments
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+    fi
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
+    i=0
+    for arg in "$@" ; do
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
+
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+        else
+            eval `echo args$i`="\"$arg\""
+        fi
+        i=$((i+1))
+    done
+    case $i in
+        (0) set -- ;;
+        (1) set -- "$args0" ;;
+        (2) set -- "$args0" "$args1" ;;
+        (3) set -- "$args0" "$args1" "$args2" ;;
+        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+    esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+    JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/samples/wearable/Timer/gradlew.bat b/samples/wearable/Timer/gradlew.bat
new file mode 100644
index 0000000..aec9973
--- /dev/null
+++ b/samples/wearable/Timer/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem  Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/samples/wearable/Timer/settings.gradle b/samples/wearable/Timer/settings.gradle
new file mode 100644
index 0000000..1d97d30
--- /dev/null
+++ b/samples/wearable/Timer/settings.gradle
@@ -0,0 +1 @@
+include ':Wearable'
diff --git a/samples/wearable/WatchViewStub/Wearable/_index.html b/samples/wearable/WatchViewStub/Wearable/_index.html
new file mode 100644
index 0000000..b46a3ec
--- /dev/null
+++ b/samples/wearable/WatchViewStub/Wearable/_index.html
@@ -0,0 +1,13 @@
+<p>This sample demonstrates how to specify different layouts for round and rectangular screens.
+The layouts used in this sample are as follows:
+    <ul>
+        <li>Round:  The background is a blue/green ring surrounding red text.</li>
+        <li>Rect:   The background is a blue/breen rounded rectangle with red text on top.</li>
+    </ul>
+Additionally, a unique animation is played when the user clicks on the layout, depending on whether
+the screen is round or rectangular:
+    <ul>
+        <li>Round:  The layout rotates 360 degrees.</li>
+        <li>Rect:   The layout shrinks to 70% and then grows back to 100%.</li>
+    </ul>
+</p>
\ No newline at end of file
diff --git a/samples/wearable/WatchViewStub/Wearable/build.gradle b/samples/wearable/WatchViewStub/Wearable/build.gradle
new file mode 100644
index 0000000..2a52030
--- /dev/null
+++ b/samples/wearable/WatchViewStub/Wearable/build.gradle
@@ -0,0 +1,25 @@
+apply plugin: 'android'
+
+android {
+    compileSdkVersion 20
+    buildToolsVersion '20'
+
+    defaultConfig {
+        minSdkVersion 20
+        targetSdkVersion 20
+        versionCode 1
+        versionName "1.0"
+    }
+
+    buildTypes {
+        release {
+            runProguard false
+            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
+        }
+    }
+}
+
+dependencies {
+    compile "com.android.support:support-v13:20.0.+"
+    compile "com.google.android.support:wearable:1.0.+"
+}
diff --git a/samples/wearable/WatchViewStub/Wearable/proguard-rules.txt b/samples/wearable/WatchViewStub/Wearable/proguard-rules.txt
new file mode 100644
index 0000000..f2fe155
--- /dev/null
+++ b/samples/wearable/WatchViewStub/Wearable/proguard-rules.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
diff --git a/samples/wearable/WatchViewStub/Wearable/src/main/AndroidManifest.xml b/samples/wearable/WatchViewStub/Wearable/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..2192546
--- /dev/null
+++ b/samples/wearable/WatchViewStub/Wearable/src/main/AndroidManifest.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+        package="com.example.android.google.wearable.watchviewstub" >
+
+    <uses-sdk android:minSdkVersion="20" android:targetSdkVersion="20" />
+
+    <application
+            android:allowBackup="true"
+            android:icon="@drawable/ic_launcher"
+            android:label="@string/app_name"
+            android:theme="@android:style/Theme.DeviceDefault">
+        <activity
+            android:name="com.example.android.google.wearable.watchviewstub.MainActivity"
+            android:label="@string/app_name">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN"/>
+                <category android:name="android.intent.category.LAUNCHER"/>
+            </intent-filter>
+        </activity>
+    </application>
+
+</manifest>
diff --git a/samples/wearable/WatchViewStub/Wearable/src/main/java/com/example/android/google/wearable/watchviewstub/MainActivity.java b/samples/wearable/WatchViewStub/Wearable/src/main/java/com/example/android/google/wearable/watchviewstub/MainActivity.java
new file mode 100644
index 0000000..b8d14f5
--- /dev/null
+++ b/samples/wearable/WatchViewStub/Wearable/src/main/java/com/example/android/google/wearable/watchviewstub/MainActivity.java
@@ -0,0 +1,70 @@
+package com.example.android.google.wearable.watchviewstub;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.support.v4.view.GestureDetectorCompat;
+import android.support.wearable.view.DismissOverlayView;
+import android.support.wearable.view.WatchViewStub;
+import android.view.GestureDetector;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.animation.Animation;
+import android.view.animation.ScaleAnimation;
+import android.widget.RelativeLayout;
+
+
+public class MainActivity extends Activity {
+    private RelativeLayout mRectBackground;
+    private RelativeLayout mRoundBackground;
+
+    private GestureDetectorCompat mGestureDetector;
+    private DismissOverlayView mDismissOverlayView;
+
+    @Override
+    public void onCreate(Bundle b) {
+        super.onCreate(b);
+        setContentView(R.layout.main_activity);
+
+        WatchViewStub stub = (WatchViewStub) findViewById(R.id.stub);
+        stub.setOnLayoutInflatedListener(new WatchViewStub.OnLayoutInflatedListener() {
+            @Override
+            public void onLayoutInflated(WatchViewStub stub) {
+                mRectBackground = (RelativeLayout) findViewById(R.id.rect_layout);
+                mRoundBackground = (RelativeLayout) findViewById(R.id.round_layout);
+            }
+        });
+
+        mDismissOverlayView = (DismissOverlayView) findViewById(R.id.dismiss_overlay);
+        mGestureDetector = new GestureDetectorCompat(this, new LongPressListener());
+    }
+
+    /**
+     * Animates the layout when clicked. The animation used depends on whether the
+     * device is round or rectangular.
+     */
+    public void onLayoutClicked(View view) {
+        if (mRectBackground != null) {
+            ScaleAnimation scaleAnimation = new ScaleAnimation(1.0f, 0.7f, 1.0f, 0.7f,
+                    Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
+            scaleAnimation.setDuration(300);
+            scaleAnimation.setRepeatCount(1);
+            scaleAnimation.setRepeatMode(Animation.REVERSE);
+            mRectBackground.startAnimation(scaleAnimation);
+        }
+        if (mRoundBackground != null) {
+            mRoundBackground.animate().rotationBy(360).setDuration(300).start();
+        }
+    }
+
+    @Override
+    public boolean dispatchTouchEvent(MotionEvent event) {
+        return mGestureDetector.onTouchEvent(event) || super.dispatchTouchEvent(event);
+    }
+
+    private class LongPressListener extends GestureDetector.SimpleOnGestureListener {
+        @Override
+        public void onLongPress(MotionEvent event) {
+            mDismissOverlayView.show();
+        }
+    }
+}
\ No newline at end of file
diff --git a/samples/wearable/WatchViewStub/Wearable/src/main/res/drawable-hdpi/ic_launcher.png b/samples/wearable/WatchViewStub/Wearable/src/main/res/drawable-hdpi/ic_launcher.png
new file mode 100755
index 0000000..589f229
--- /dev/null
+++ b/samples/wearable/WatchViewStub/Wearable/src/main/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/WatchViewStub/Wearable/src/main/res/drawable-mdpi/ic_launcher.png b/samples/wearable/WatchViewStub/Wearable/src/main/res/drawable-mdpi/ic_launcher.png
new file mode 100755
index 0000000..77dd571
--- /dev/null
+++ b/samples/wearable/WatchViewStub/Wearable/src/main/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/WatchViewStub/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png b/samples/wearable/WatchViewStub/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png
new file mode 100755
index 0000000..fe34ebe
--- /dev/null
+++ b/samples/wearable/WatchViewStub/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/WatchViewStub/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png b/samples/wearable/WatchViewStub/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png
new file mode 100755
index 0000000..ab80bcd
--- /dev/null
+++ b/samples/wearable/WatchViewStub/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/wearable/WatchViewStub/Wearable/src/main/res/drawable/rect_background.xml b/samples/wearable/WatchViewStub/Wearable/src/main/res/drawable/rect_background.xml
new file mode 100644
index 0000000..f370bcb
--- /dev/null
+++ b/samples/wearable/WatchViewStub/Wearable/src/main/res/drawable/rect_background.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <corners android:radius="@dimen/rect_corner_radius"/>
+    <gradient android:startColor="@color/green"
+        android:endColor="@color/blue"
+        android:angle="45"/>
+</shape>
\ No newline at end of file
diff --git a/samples/wearable/WatchViewStub/Wearable/src/main/res/drawable/round_background.xml b/samples/wearable/WatchViewStub/Wearable/src/main/res/drawable/round_background.xml
new file mode 100644
index 0000000..d9e822e
--- /dev/null
+++ b/samples/wearable/WatchViewStub/Wearable/src/main/res/drawable/round_background.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="ring"
+    android:useLevel="false" >
+    <gradient android:startColor="@color/green"
+        android:endColor="@color/blue"/>
+</shape>
\ No newline at end of file
diff --git a/samples/wearable/WatchViewStub/Wearable/src/main/res/layout/main_activity.xml b/samples/wearable/WatchViewStub/Wearable/src/main/res/layout/main_activity.xml
new file mode 100644
index 0000000..4d48650
--- /dev/null
+++ b/samples/wearable/WatchViewStub/Wearable/src/main/res/layout/main_activity.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<FrameLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <android.support.wearable.view.WatchViewStub
+        xmlns:app="http://schemas.android.com/apk/res-auto"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:id="@+id/stub"
+        app:rectLayout="@layout/rect_layout"
+        app:roundLayout="@layout/round_layout"/>
+
+    <android.support.wearable.view.DismissOverlayView
+        android:id="@+id/dismiss_overlay"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent" />
+
+</FrameLayout>
+
diff --git a/samples/wearable/WatchViewStub/Wearable/src/main/res/layout/rect_layout.xml b/samples/wearable/WatchViewStub/Wearable/src/main/res/layout/rect_layout.xml
new file mode 100644
index 0000000..da9eb39
--- /dev/null
+++ b/samples/wearable/WatchViewStub/Wearable/src/main/res/layout/rect_layout.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:id="@+id/rect_layout"
+    android:background="@drawable/rect_background"
+    android:onClick="onLayoutClicked">
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/rect_string"
+        android:textColor="@color/red"
+        android:textSize="@dimen/text_size"
+        android:gravity="center"
+        android:layout_centerInParent="true"/>
+</RelativeLayout>
\ No newline at end of file
diff --git a/samples/wearable/WatchViewStub/Wearable/src/main/res/layout/round_layout.xml b/samples/wearable/WatchViewStub/Wearable/src/main/res/layout/round_layout.xml
new file mode 100644
index 0000000..9cbb4da
--- /dev/null
+++ b/samples/wearable/WatchViewStub/Wearable/src/main/res/layout/round_layout.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:id="@+id/round_layout"
+    android:background="@drawable/round_background"
+    android:onClick="onLayoutClicked">
+    <TextView
+        android:layout_width="@dimen/round_text_view_width"
+        android:layout_height="wrap_content"
+        android:text="@string/round_string"
+        android:textColor="@color/red"
+        android:textSize="@dimen/text_size"
+        android:gravity="center"
+        android:layout_centerInParent="true"/>
+</RelativeLayout>
\ No newline at end of file
diff --git a/samples/wearable/WatchViewStub/Wearable/src/main/res/values/dimens.xml b/samples/wearable/WatchViewStub/Wearable/src/main/res/values/dimens.xml
new file mode 100644
index 0000000..dc1f1c4
--- /dev/null
+++ b/samples/wearable/WatchViewStub/Wearable/src/main/res/values/dimens.xml
@@ -0,0 +1,5 @@
+<resources>
+    <dimen name="rect_corner_radius">20dp</dimen>
+    <dimen name="round_text_view_width">150dp</dimen>
+    <dimen name="text_size">24sp</dimen>
+</resources>
diff --git a/samples/wearable/WatchViewStub/Wearable/src/main/res/values/strings.xml b/samples/wearable/WatchViewStub/Wearable/src/main/res/values/strings.xml
new file mode 100644
index 0000000..71a51c6
--- /dev/null
+++ b/samples/wearable/WatchViewStub/Wearable/src/main/res/values/strings.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+    <string name="app_name">WatchViewStub Sample</string>
+    <string name="round_string">Your screen is round!</string>
+    <string name="rect_string">Your screen is rectangular!</string>
+
+</resources>
diff --git a/samples/wearable/WatchViewStub/build.gradle b/samples/wearable/WatchViewStub/build.gradle
new file mode 100644
index 0000000..d9bdcb3
--- /dev/null
+++ b/samples/wearable/WatchViewStub/build.gradle
@@ -0,0 +1,15 @@
+buildscript {
+    repositories {
+        mavenCentral()
+    }
+    dependencies {
+        classpath 'com.android.tools.build:gradle:0.11.+'
+    }
+}
+
+allprojects {
+    repositories {
+        mavenCentral()
+    }
+}
+
diff --git a/samples/wearable/WatchViewStub/gradle.properties b/samples/wearable/WatchViewStub/gradle.properties
new file mode 100644
index 0000000..5d08ba7
--- /dev/null
+++ b/samples/wearable/WatchViewStub/gradle.properties
@@ -0,0 +1,18 @@
+# Project-wide Gradle settings.
+
+# IDE (e.g. Android Studio) users:
+# Settings specified in this file will override any Gradle settings
+# configured through the IDE.
+
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+# Default value: -Xmx10248m -XX:MaxPermSize=256m
+# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
+
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
\ No newline at end of file
diff --git a/samples/wearable/WatchViewStub/gradle/wrapper/gradle-wrapper.jar b/samples/wearable/WatchViewStub/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..5838598
--- /dev/null
+++ b/samples/wearable/WatchViewStub/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/samples/wearable/WatchViewStub/gradle/wrapper/gradle-wrapper.properties b/samples/wearable/WatchViewStub/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..e83e460
--- /dev/null
+++ b/samples/wearable/WatchViewStub/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Fri Mar 14 14:02:22 PDT 2014
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=http\://services.gradle.org/distributions/gradle-1.11-all.zip
diff --git a/samples/wearable/WatchViewStub/gradlew b/samples/wearable/WatchViewStub/gradlew
new file mode 100755
index 0000000..91a7e26
--- /dev/null
+++ b/samples/wearable/WatchViewStub/gradlew
@@ -0,0 +1,164 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+##  Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+    echo "$*"
+}
+
+die ( ) {
+    echo
+    echo "$*"
+    echo
+    exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+  CYGWIN* )
+    cygwin=true
+    ;;
+  Darwin* )
+    darwin=true
+    ;;
+  MINGW* )
+    msys=true
+    ;;
+esac
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched.
+if $cygwin ; then
+    [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+fi
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+        PRG="$link"
+    else
+        PRG=`dirname "$PRG"`"/$link"
+    fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >&-
+APP_HOME="`pwd -P`"
+cd "$SAVED" >&-
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+        # IBM's JDK on AIX uses strange locations for the executables
+        JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+        JAVACMD="$JAVA_HOME/bin/java"
+    fi
+    if [ ! -x "$JAVACMD" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+else
+    JAVACMD="java"
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+    MAX_FD_LIMIT=`ulimit -H -n`
+    if [ $? -eq 0 ] ; then
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+            MAX_FD="$MAX_FD_LIMIT"
+        fi
+        ulimit -n $MAX_FD
+        if [ $? -ne 0 ] ; then
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
+        fi
+    else
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+    fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+    # We build the pattern for arguments to be converted via cygpath
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+    SEP=""
+    for dir in $ROOTDIRSRAW ; do
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
+        SEP="|"
+    done
+    OURCYGPATTERN="(^($ROOTDIRS))"
+    # Add a user-defined pattern to the cygpath arguments
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+    fi
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
+    i=0
+    for arg in "$@" ; do
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
+
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+        else
+            eval `echo args$i`="\"$arg\""
+        fi
+        i=$((i+1))
+    done
+    case $i in
+        (0) set -- ;;
+        (1) set -- "$args0" ;;
+        (2) set -- "$args0" "$args1" ;;
+        (3) set -- "$args0" "$args1" "$args2" ;;
+        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+    esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+    JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/samples/wearable/WatchViewStub/gradlew.bat b/samples/wearable/WatchViewStub/gradlew.bat
new file mode 100755
index 0000000..aec9973
--- /dev/null
+++ b/samples/wearable/WatchViewStub/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem  Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/samples/wearable/WatchViewStub/settings.gradle b/samples/wearable/WatchViewStub/settings.gradle
new file mode 100644
index 0000000..1d97d30
--- /dev/null
+++ b/samples/wearable/WatchViewStub/settings.gradle
@@ -0,0 +1 @@
+include ':Wearable'
diff --git a/samples/wearable/build.gradle b/samples/wearable/build.gradle
new file mode 100644
index 0000000..c55e069
--- /dev/null
+++ b/samples/wearable/build.gradle
@@ -0,0 +1,44 @@
+buildscript {
+    ext.topDir = file('../../../../../')
+    repositories {
+        mavenCentral()
+    }
+    dependencies {
+        classpath 'com.android.tools.build:gradle:0.11.+'
+    }
+}
+
+List<String> samples = [
+    "AgendaData",
+    "DataLayer",
+    "DelayedConfirmation",
+    "ElizaChat",
+    "FindMyPhone",
+    "Flashlight",
+    "Geofencing",
+    "GridViewPager",
+    "JumpingJack",
+    "Notifications",
+    "Quiz",
+    "RecipeAssistant",
+    "SkeletonWearableApp",
+    "Timer",
+    "WatchViewStub",
+]
+
+List<String> taskNames = [
+    "clean",
+    "build",
+]
+
+taskNames.each { taskName ->
+    def task = project.hasProperty(taskName) ? project.tasks[taskName] : project.task(taskName)
+    samples.each { sample ->
+        File sampleDir = new File(sample)
+        task.dependsOn project.task([type: GradleBuild], "${sample}_${taskName}", {
+            buildFile = "${sample}/build.gradle"
+            dir = sample
+            tasks = [taskName]
+        })
+    }
+}
diff --git a/samples/wearable/gradle.properties b/samples/wearable/gradle.properties
new file mode 100644
index 0000000..3372dc3f
--- /dev/null
+++ b/samples/wearable/gradle.properties
@@ -0,0 +1 @@
+org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=1024m
diff --git a/samples/wearable/gradle/wrapper/gradle-wrapper.jar b/samples/wearable/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..5838598
--- /dev/null
+++ b/samples/wearable/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/samples/wearable/gradle/wrapper/gradle-wrapper.properties b/samples/wearable/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..e83e460
--- /dev/null
+++ b/samples/wearable/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Fri Mar 14 14:02:22 PDT 2014
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=http\://services.gradle.org/distributions/gradle-1.11-all.zip
diff --git a/samples/wearable/gradlew b/samples/wearable/gradlew
new file mode 100755
index 0000000..d8910a5
--- /dev/null
+++ b/samples/wearable/gradlew
@@ -0,0 +1,174 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+##  Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+    echo "$*"
+}
+
+die ( ) {
+    echo
+    echo "$*"
+    echo
+    exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+  CYGWIN* )
+    cygwin=true
+    ;;
+  Darwin* )
+    darwin=true
+    ;;
+  MINGW* )
+    msys=true
+    ;;
+esac
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched.
+if $cygwin ; then
+    [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+fi
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+        PRG="$link"
+    else
+        PRG=`dirname "$PRG"`"/$link"
+    fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >&-
+APP_HOME="`pwd -P`"
+cd "$SAVED" >&-
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+        # IBM's JDK on AIX uses strange locations for the executables
+        JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+        JAVACMD="$JAVA_HOME/bin/java"
+    fi
+    if [ ! -x "$JAVACMD" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+else
+    JAVACMD="java"
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+    MAX_FD_LIMIT=`ulimit -H -n`
+    if [ $? -eq 0 ] ; then
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+            MAX_FD="$MAX_FD_LIMIT"
+        fi
+        ulimit -n $MAX_FD
+        if [ $? -ne 0 ] ; then
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
+        fi
+    else
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+    fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+    # We build the pattern for arguments to be converted via cygpath
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+    SEP=""
+    for dir in $ROOTDIRSRAW ; do
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
+        SEP="|"
+    done
+    OURCYGPATTERN="(^($ROOTDIRS))"
+    # Add a user-defined pattern to the cygpath arguments
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+    fi
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
+    i=0
+    for arg in "$@" ; do
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
+
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+        else
+            eval `echo args$i`="\"$arg\""
+        fi
+        i=$((i+1))
+    done
+    case $i in
+        (0) set -- ;;
+        (1) set -- "$args0" ;;
+        (2) set -- "$args0" "$args1" ;;
+        (3) set -- "$args0" "$args1" "$args2" ;;
+        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+    esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+    JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+# Change the project's .gradle to the android out dir.
+ANDROID_GRADLE_ROOT="$APP_HOME/../../../out/host/gradle/tools/updater"
+if [[ -z "$ANDROID_CACHE_DIR" ]]; then
+  ANDROID_CACHE_DIR="$ANDROID_GRADLE_ROOT/.gradle"
+fi
+
+# Change the local user directories to be under the android out dir
+export GRADLE_USER_HOME="$ANDROID_GRADLE_ROOT/.gradle"
+export M2_HOME="$ANDROID_GRADLE_ROOT/.m2"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/samples/wearable/gradlew.bat b/samples/wearable/gradlew.bat
new file mode 100755
index 0000000..aec9973
--- /dev/null
+++ b/samples/wearable/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem  Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/ndk/platforms/android-20/include/lastlog.h b/samples/wearable/settings.gradle
similarity index 100%
copy from ndk/platforms/android-20/include/lastlog.h
copy to samples/wearable/settings.gradle
diff --git a/scripts/app_engine_server/LICENSE b/scripts/app_engine_server/LICENSE
deleted file mode 100644
index d645695..0000000
--- a/scripts/app_engine_server/LICENSE
+++ /dev/null
@@ -1,202 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   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.
diff --git a/scripts/app_engine_server/MOVED-README.txt b/scripts/app_engine_server/MOVED-README.txt
new file mode 100644
index 0000000..5dba2bd
--- /dev/null
+++ b/scripts/app_engine_server/MOVED-README.txt
@@ -0,0 +1,4 @@
+The server configuration for developer.android.com documentation site
+has moved to:
+
+../../../vendor/google/docs/app-engine-server
diff --git a/scripts/app_engine_server/app.yaml b/scripts/app_engine_server/app.yaml
deleted file mode 100755
index 15f02e1..0000000
--- a/scripts/app_engine_server/app.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-application: androidappdocs-staging
-version: 2
-runtime: python
-api_version: 1
-
-handlers:
-- url: /remote_api
-  script: $PYTHON_LIB/google/appengine/ext/remote_api/handler.py
-  login: admin
-
-- url: /gae_shell/static
-  static_dir: gae_shell/static
-  expiration: 1d
-
-- url: /gae_shell/.*
-  script: /gae_shell/shell.py
-  login: admin
-
-- url: .*
-  script: main.py
diff --git a/scripts/app_engine_server/app.yaml.production b/scripts/app_engine_server/app.yaml.production
deleted file mode 100644
index 61bd51a..0000000
--- a/scripts/app_engine_server/app.yaml.production
+++ /dev/null
@@ -1,16 +0,0 @@
-application: androiddevdocs
-version: 1
-runtime: python
-api_version: 1
-
-handlers:
-- url: /gae_shell/static
-  static_dir: gae_shell/static
-  expiration: 1d
-
-- url: /gae_shell/.*
-  script: /gae_shell/shell.py
-  login: admin
-
-- url: .*
-  script: main.py
diff --git a/scripts/app_engine_server/gae_shell/README b/scripts/app_engine_server/gae_shell/README
deleted file mode 100644
index 5b0089f..0000000
--- a/scripts/app_engine_server/gae_shell/README
+++ /dev/null
@@ -1,17 +0,0 @@
-An interactive, stateful AJAX shell that runs Python code on the server.
-
-Part of http://code.google.com/p/google-app-engine-samples/.
-
-May be run as a standalone app or in an existing app as an admin-only handler.
-Can be used for system administration tasks, as an interactive way to try out
-APIs, or as a debugging aid during development.
-
-The logging, os, sys, db, and users modules are imported automatically.
-
-Interpreter state is stored in the datastore so that variables, function
-definitions, and other values in the global and local namespaces can be used
-across commands.
-
-To use the shell in your app, copy shell.py, static/*, and templates/* into
-your app's source directory. Then, copy the URL handlers from app.yaml into
-your app.yaml.
diff --git a/scripts/app_engine_server/gae_shell/__init__.py b/scripts/app_engine_server/gae_shell/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/scripts/app_engine_server/gae_shell/__init__.py
+++ /dev/null
diff --git a/scripts/app_engine_server/gae_shell/shell.py b/scripts/app_engine_server/gae_shell/shell.py
deleted file mode 100755
index df2fb17..0000000
--- a/scripts/app_engine_server/gae_shell/shell.py
+++ /dev/null
@@ -1,308 +0,0 @@
-#!/usr/bin/python
-#
-# Copyright 2007 Google Inc.
-#
-# 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.
-
-"""
-An interactive, stateful AJAX shell that runs Python code on the server.
-
-Part of http://code.google.com/p/google-app-engine-samples/.
-
-May be run as a standalone app or in an existing app as an admin-only handler.
-Can be used for system administration tasks, as an interactive way to try out
-APIs, or as a debugging aid during development.
-
-The logging, os, sys, db, and users modules are imported automatically.
-
-Interpreter state is stored in the datastore so that variables, function
-definitions, and other values in the global and local namespaces can be used
-across commands.
-
-To use the shell in your app, copy shell.py, static/*, and templates/* into
-your app's source directory. Then, copy the URL handlers from app.yaml into
-your app.yaml.
-
-TODO: unit tests!
-"""
-
-import logging
-import new
-import os
-import pickle
-import sys
-import traceback
-import types
-import wsgiref.handlers
-
-from google.appengine.api import users
-from google.appengine.ext import db
-from google.appengine.ext import webapp
-from google.appengine.ext.webapp import template
-
-
-# Set to True if stack traces should be shown in the browser, etc.
-_DEBUG = True
-
-# The entity kind for shell sessions. Feel free to rename to suit your app.
-_SESSION_KIND = '_Shell_Session'
-
-# Types that can't be pickled.
-UNPICKLABLE_TYPES = (
-  types.ModuleType,
-  types.TypeType,
-  types.ClassType,
-  types.FunctionType,
-  )
-
-# Unpicklable statements to seed new sessions with.
-INITIAL_UNPICKLABLES = [
-  'import logging',
-  'import os',
-  'import sys',
-  'from google.appengine.ext import db',
-  'from google.appengine.api import users',
-  ]
-
-
-class Session(db.Model):
-  """A shell session. Stores the session's globals.
-
-  Each session globals is stored in one of two places:
-
-  If the global is picklable, it's stored in the parallel globals and
-  global_names list properties. (They're parallel lists to work around the
-  unfortunate fact that the datastore can't store dictionaries natively.)
-
-  If the global is not picklable (e.g. modules, classes, and functions), or if
-  it was created by the same statement that created an unpicklable global,
-  it's not stored directly. Instead, the statement is stored in the
-  unpicklables list property. On each request, before executing the current
-  statement, the unpicklable statements are evaluated to recreate the
-  unpicklable globals.
-
-  The unpicklable_names property stores all of the names of globals that were
-  added by unpicklable statements. When we pickle and store the globals after
-  executing a statement, we skip the ones in unpicklable_names.
-
-  Using Text instead of string is an optimization. We don't query on any of
-  these properties, so they don't need to be indexed.
-  """
-  global_names = db.ListProperty(db.Text)
-  globals = db.ListProperty(db.Blob)
-  unpicklable_names = db.ListProperty(db.Text)
-  unpicklables = db.ListProperty(db.Text)
-
-  def set_global(self, name, value):
-    """Adds a global, or updates it if it already exists.
-
-    Also removes the global from the list of unpicklable names.
-
-    Args:
-      name: the name of the global to remove
-      value: any picklable value
-    """
-    blob = db.Blob(pickle.dumps(value))
-
-    if name in self.global_names:
-      index = self.global_names.index(name)
-      self.globals[index] = blob
-    else:
-      self.global_names.append(db.Text(name))
-      self.globals.append(blob)
-
-    self.remove_unpicklable_name(name)
-
-  def remove_global(self, name):
-    """Removes a global, if it exists.
-
-    Args:
-      name: string, the name of the global to remove
-    """
-    if name in self.global_names:
-      index = self.global_names.index(name)
-      del self.global_names[index]
-      del self.globals[index]
-
-  def globals_dict(self):
-    """Returns a dictionary view of the globals.
-    """
-    return dict((name, pickle.loads(val))
-                for name, val in zip(self.global_names, self.globals))
-
-  def add_unpicklable(self, statement, names):
-    """Adds a statement and list of names to the unpicklables.
-
-    Also removes the names from the globals.
-
-    Args:
-      statement: string, the statement that created new unpicklable global(s).
-      names: list of strings; the names of the globals created by the statement.
-    """
-    self.unpicklables.append(db.Text(statement))
-
-    for name in names:
-      self.remove_global(name)
-      if name not in self.unpicklable_names:
-        self.unpicklable_names.append(db.Text(name))
-
-  def remove_unpicklable_name(self, name):
-    """Removes a name from the list of unpicklable names, if it exists.
-
-    Args:
-      name: string, the name of the unpicklable global to remove
-    """
-    if name in self.unpicklable_names:
-      self.unpicklable_names.remove(name)
-
-
-class FrontPageHandler(webapp.RequestHandler):
-  """Creates a new session and renders the shell.html template.
-  """
-
-  def get(self):
-    # set up the session. TODO: garbage collect old shell sessions
-    session_key = self.request.get('session')
-    if session_key:
-      session = Session.get(session_key)
-    else:
-      # create a new session
-      session = Session()
-      session.unpicklables = [db.Text(line) for line in INITIAL_UNPICKLABLES]
-      session_key = session.put()
-
-    template_file = os.path.join(os.path.dirname(__file__), 'templates',
-                                 'shell.html')
-    session_url = '/?session=%s' % session_key
-    vars = { 'server_software': os.environ['SERVER_SOFTWARE'],
-             'python_version': sys.version,
-             'session': str(session_key),
-             'user': users.get_current_user(),
-             'login_url': users.create_login_url(session_url),
-             'logout_url': users.create_logout_url(session_url),
-             }
-    rendered = webapp.template.render(template_file, vars, debug=_DEBUG)
-    self.response.out.write(rendered)
-
-
-class StatementHandler(webapp.RequestHandler):
-  """Evaluates a python statement in a given session and returns the result.
-  """
-
-  def get(self):
-    self.response.headers['Content-Type'] = 'text/plain'
-
-    # extract the statement to be run
-    statement = self.request.get('statement')
-    if not statement:
-      return
-
-    # the python compiler doesn't like network line endings
-    statement = statement.replace('\r\n', '\n')
-
-    # add a couple newlines at the end of the statement. this makes
-    # single-line expressions such as 'class Foo: pass' evaluate happily.
-    statement += '\n\n'
-
-    # log and compile the statement up front
-    try:
-      logging.info('Compiling and evaluating:\n%s' % statement)
-      compiled = compile(statement, '<string>', 'single')
-    except:
-      self.response.out.write(traceback.format_exc())
-      return
-
-    # create a dedicated module to be used as this statement's __main__
-    statement_module = new.module('__main__')
-
-    # use this request's __builtin__, since it changes on each request.
-    # this is needed for import statements, among other things.
-    import __builtin__
-    statement_module.__builtins__ = __builtin__
-
-    # load the session from the datastore
-    session = Session.get(self.request.get('session'))
-
-    # swap in our custom module for __main__. then unpickle the session
-    # globals, run the statement, and re-pickle the session globals, all
-    # inside it.
-    old_main = sys.modules.get('__main__')
-    try:
-      sys.modules['__main__'] = statement_module
-      statement_module.__name__ = '__main__'
-
-      # re-evaluate the unpicklables
-      for code in session.unpicklables:
-        exec code in statement_module.__dict__
-
-      # re-initialize the globals
-      for name, val in session.globals_dict().items():
-        try:
-          statement_module.__dict__[name] = val
-        except:
-          msg = 'Dropping %s since it could not be unpickled.\n' % name
-          self.response.out.write(msg)
-          logging.warning(msg + traceback.format_exc())
-          session.remove_global(name)
-
-      # run!
-      old_globals = dict(statement_module.__dict__)
-      try:
-        old_stdout = sys.stdout
-        old_stderr = sys.stderr
-        try:
-          sys.stdout = self.response.out
-          sys.stderr = self.response.out
-          exec compiled in statement_module.__dict__
-        finally:
-          sys.stdout = old_stdout
-          sys.stderr = old_stderr
-      except:
-        self.response.out.write(traceback.format_exc())
-        return
-
-      # extract the new globals that this statement added
-      new_globals = {}
-      for name, val in statement_module.__dict__.items():
-        if name not in old_globals or val != old_globals[name]:
-          new_globals[name] = val
-
-      if True in [isinstance(val, UNPICKLABLE_TYPES)
-                  for val in new_globals.values()]:
-        # this statement added an unpicklable global. store the statement and
-        # the names of all of the globals it added in the unpicklables.
-        session.add_unpicklable(statement, new_globals.keys())
-        logging.debug('Storing this statement as an unpicklable.')
-
-      else:
-        # this statement didn't add any unpicklables. pickle and store the
-        # new globals back into the datastore.
-        for name, val in new_globals.items():
-          if not name.startswith('__'):
-            session.set_global(name, val)
-
-    finally:
-      sys.modules['__main__'] = old_main
-
-    session.put()
-
-
-def main():
-  application = webapp.WSGIApplication(
-    [('/gae_shell/', FrontPageHandler),
-     ('/gae_shell/shell.do', StatementHandler)], debug=_DEBUG)
-  wsgiref.handlers.CGIHandler().run(application)
-
-
-if __name__ == '__main__':
-  main()
diff --git a/scripts/app_engine_server/gae_shell/static/shell.js b/scripts/app_engine_server/gae_shell/static/shell.js
deleted file mode 100644
index 4aa1583..0000000
--- a/scripts/app_engine_server/gae_shell/static/shell.js
+++ /dev/null
@@ -1,195 +0,0 @@
-// Copyright 2007 Google Inc.
-//
-// 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.
-
-/**
- * @fileoverview
- * Javascript code for the interactive AJAX shell.
- *
- * Part of http://code.google.com/p/google-app-engine-samples/.
- *
- * Includes a function (shell.runStatement) that sends the current python
- * statement in the shell prompt text box to the server, and a callback
- * (shell.done) that displays the results when the XmlHttpRequest returns.
- *
- * Also includes cross-browser code (shell.getXmlHttpRequest) to get an
- * XmlHttpRequest.
- */
-
-/**
- * Shell namespace.
- * @type {Object}
- */
-var shell = {}
-
-/**
- * The shell history. history is an array of strings, ordered oldest to
- * newest. historyCursor is the current history element that the user is on.
- *
- * The last history element is the statement that the user is currently
- * typing. When a statement is run, it's frozen in the history, a new history
- * element is added to the end of the array for the new statement, and
- * historyCursor is updated to point to the new element.
- *
- * @type {Array}
- */
-shell.history = [''];
-
-/**
- * See {shell.history}
- * @type {number}
- */
-shell.historyCursor = 0;
-
-/**
- * A constant for the XmlHttpRequest 'done' state.
- * @type Number
- */
-shell.DONE_STATE = 4;
-
-/**
- * A cross-browser function to get an XmlHttpRequest object.
- *
- * @return {XmlHttpRequest?} a new XmlHttpRequest
- */
-shell.getXmlHttpRequest = function() {
-  if (window.XMLHttpRequest) {
-    return new XMLHttpRequest();
-  } else if (window.ActiveXObject) {
-    try {
-      return new ActiveXObject('Msxml2.XMLHTTP');
-    } catch(e) {
-      return new ActiveXObject('Microsoft.XMLHTTP');
-    }
-  }
-
-  return null;
-};
-
-/**
- * This is the prompt textarea's onkeypress handler. Depending on the key that
- * was pressed, it will run the statement, navigate the history, or update the
- * current statement in the history.
- *
- * @param {Event} event the keypress event
- * @return {Boolean} false to tell the browser not to submit the form.
- */
-shell.onPromptKeyPress = function(event) {
-  var statement = document.getElementById('statement');
-
-  if (this.historyCursor == this.history.length - 1) {
-    // we're on the current statement. update it in the history before doing
-    // anything.
-    this.history[this.historyCursor] = statement.value;
-  }
-
-  // should we pull something from the history?
-  if (event.ctrlKey && event.keyCode == 38 /* up arrow */) {
-    if (this.historyCursor > 0) {
-      statement.value = this.history[--this.historyCursor];
-    }
-    return false;
-  } else if (event.ctrlKey && event.keyCode == 40 /* down arrow */) {
-    if (this.historyCursor < this.history.length - 1) {
-      statement.value = this.history[++this.historyCursor];
-    }
-    return false;
-  } else if (!event.altKey) {
-    // probably changing the statement. update it in the history.
-    this.historyCursor = this.history.length - 1;
-    this.history[this.historyCursor] = statement.value;
-  }
-
-  // should we submit?
-  var ctrlEnter = (document.getElementById('submit_key').value == 'ctrl-enter');
-  if (event.keyCode == 13 /* enter */ && !event.altKey && !event.shiftKey &&
-      event.ctrlKey == ctrlEnter) {
-    return this.runStatement();
-  }
-};
-
-/**
- * The XmlHttpRequest callback. If the request succeeds, it adds the command
- * and its resulting output to the shell history div.
- *
- * @param {XmlHttpRequest} req the XmlHttpRequest we used to send the current
- *     statement to the server
- */
-shell.done = function(req) {
-  if (req.readyState == this.DONE_STATE) {
-    var statement = document.getElementById('statement')
-    statement.className = 'prompt';
-
-    // add the command to the shell output
-    var output = document.getElementById('output');
-
-    output.value += '\n>>> ' + statement.value;
-    statement.value = '';
-
-    // add a new history element
-    this.history.push('');
-    this.historyCursor = this.history.length - 1;
-
-    // add the command's result
-    var result = req.responseText.replace(/^\s*|\s*$/g, '');  // trim whitespace
-    if (result != '')
-      output.value += '\n' + result;
-
-    // scroll to the bottom
-    output.scrollTop = output.scrollHeight;
-    if (output.createTextRange) {
-      var range = output.createTextRange();
-      range.collapse(false);
-      range.select();
-    }
-  }
-};
-
-/**
- * This is the form's onsubmit handler. It sends the python statement to the
- * server, and registers shell.done() as the callback to run when it returns.
- *
- * @return {Boolean} false to tell the browser not to submit the form.
- */
-shell.runStatement = function() {
-  var form = document.getElementById('form');
-
-  // build a XmlHttpRequest
-  var req = this.getXmlHttpRequest();
-  if (!req) {
-    document.getElementById('ajax-status').innerHTML =
-        "<span class='error'>Your browser doesn't support AJAX. :(</span>";
-    return false;
-  }
-
-  req.onreadystatechange = function() { shell.done(req); };
-
-  // build the query parameter string
-  var params = '';
-  for (i = 0; i < form.elements.length; i++) {
-    var elem = form.elements[i];
-    if (elem.type != 'submit' && elem.type != 'button' && elem.id != 'caret') {
-      var value = escape(elem.value).replace(/\+/g, '%2B'); // escape ignores +
-      params += '&' + elem.name + '=' + value;
-    }
-  }
-
-  // send the request and tell the user.
-  document.getElementById('statement').className = 'prompt processing';
-  req.open(form.method, form.action + '?' + params, true);
-  req.setRequestHeader('Content-type',
-                       'application/x-www-form-urlencoded;charset=UTF-8');
-  req.send(null);
-
-  return false;
-};
diff --git a/scripts/app_engine_server/gae_shell/static/spinner.gif b/scripts/app_engine_server/gae_shell/static/spinner.gif
deleted file mode 100644
index 3e58d6e..0000000
--- a/scripts/app_engine_server/gae_shell/static/spinner.gif
+++ /dev/null
Binary files differ
diff --git a/scripts/app_engine_server/gae_shell/templates/shell.html b/scripts/app_engine_server/gae_shell/templates/shell.html
deleted file mode 100644
index 123b200..0000000
--- a/scripts/app_engine_server/gae_shell/templates/shell.html
+++ /dev/null
@@ -1,122 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-<meta http-equiv="content-type" content="text/html; charset=utf-8" />
-<title> Interactive Shell </title>
-<script type="text/javascript" src="/gae_shell/static/shell.js"></script>
-<style type="text/css">
-body {
-  font-family: monospace;
-  font-size: 10pt;
-}
-
-p {
-  margin: 0.5em;
-}
-
-.prompt, #output {
-  width: 45em;
-  border: 1px solid silver;
-  background-color: #f5f5f5;
-  font-size: 10pt;
-  margin: 0.5em;
-  padding: 0.5em;
-  padding-right: 0em;
-  overflow-x: hidden;
-}
-
-#toolbar {
-  margin-left: 0.5em;
-  padding-left: 0.5em;
-}
-
-#caret {
-  width: 2.5em;
-  margin-right: 0px;
-  padding-right: 0px;
-  border-right: 0px;
-}
-
-#statement {
-  width: 43em;
-  margin-left: -1em;
-  padding-left: 0px;
-  border-left: 0px;
-  background-position: top right;
-  background-repeat: no-repeat;
-}
-
-.processing {
-  background-image: url("/gae_shell/static/spinner.gif");
-}
-
-#ajax-status {
-  font-weight: bold;
-}
-
-.message {
-  color: #8AD;
-  font-weight: bold;
-  font-style: italic;
-}
-
-.error {
-  color: #F44;
-}
-
-.username {
-  font-weight: bold;
-}
-
-</style>
-</head>
-
-<body>
-
-<p> Interactive server-side Python shell for
-<a href="http://code.google.com/appengine/">Google App Engine</a>.
-(<a href="http://code.google.com/p/google-app-engine-samples/">source</a>)
-</p>
-
-<textarea id="output" rows="22" readonly="readonly">
-{{ server_software }}
-Python {{ python_version }}
-</textarea>
-
-<form id="form" action="shell.do" method="get">
-  <nobr>
-  <textarea class="prompt" id="caret" readonly="readonly" rows="4"
-            onfocus="document.getElementById('statement').focus()"
-            >&gt;&gt;&gt;</textarea>
-  <textarea class="prompt" name="statement" id="statement" rows="4"
-            onkeypress="return shell.onPromptKeyPress(event);"></textarea>
-  </nobr>
-  <input type="hidden" name="session" value="{{ session }}" />
-  <input type="submit" style="display: none" />
-</form>
-
-<p id="ajax-status"></p>
-
-<p id="toolbar">
-{% if user %}
-  <span class="username">{{ user.nickname }}</span>
-  (<a href="{{ logout_url }}">log out</a>)
-{% else %}
-  <a href="{{ login_url }}">log in</a>
-{% endif %}
- | Ctrl-Up/Down for history |
-<select id="submit_key">
-  <option value="enter">Enter</option>
-  <option value="ctrl-enter" selected="selected">Ctrl-Enter</option>
-</select>
-<label for="submit_key">submits</label>
-</p>
-
-<script type="text/javascript">
-document.getElementById('statement').focus();
-</script>
-
-</body>
-</html>
-
diff --git a/scripts/app_engine_server/index.yaml b/scripts/app_engine_server/index.yaml
deleted file mode 100644
index 8e6046d..0000000
--- a/scripts/app_engine_server/index.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-indexes:
-
-# AUTOGENERATED
-
-# This index.yaml is automatically updated whenever the dev_appserver
-# detects that a new type of query is run.  If you want to manage the
-# index.yaml file manually, remove the above marker line (the line
-# saying "# AUTOGENERATED").  If you want to manage some indexes
-# manually, move them above the marker line.  The index.yaml file is
-# automatically uploaded to the admin console when you next deploy
-# your application using appcfg.py.
-
diff --git a/scripts/app_engine_server/memcache_zipserve.py b/scripts/app_engine_server/memcache_zipserve.py
deleted file mode 100644
index 4efd984..0000000
--- a/scripts/app_engine_server/memcache_zipserve.py
+++ /dev/null
@@ -1,756 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-# Copyright 2009 Google Inc.
-#
-# 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.
-#
-
-"""A class to serve pages from zip files and use memcache for performance.
-
-This contains a class and a function to create an anonymous instance of the
-class to serve HTTP GET requests. Memcache is used to increase response speed
-and lower processing cycles used in serving. Credit to Guido van Rossum and
-his implementation of zipserve which served as a reference as I wrote this.
-
-  MemcachedZipHandler: Class that serves request
-  create_handler: method to create instance of MemcachedZipHandler
-"""
-
-__author__ = 'jmatt@google.com (Justin Mattson)'
-
-import email.Utils
-import logging
-import mimetypes
-import re
-import sys
-import time
-import yaml
-import zipfile
-
-from google.appengine.api import memcache
-from google.appengine.ext import webapp
-from google.appengine.ext.webapp import util
-from time import localtime, strftime
-
-def create_handler(zip_files, max_age=None, public=None):
-  """Factory method to create a MemcachedZipHandler instance.
-
-  Args:
-    zip_files: A list of file names, or a list of lists of file name, first
-        member of file mappings. See MemcachedZipHandler documentation for
-        more information about using the list of lists format
-    max_age: The maximum client-side cache lifetime
-    public: Whether this should be declared public in the client-side cache
-  Returns:
-    A MemcachedZipHandler wrapped in a pretty, anonymous bow for use with App
-    Engine
-
-  Raises:
-    ValueError: if the zip_files argument is not a list
-  """
-  # verify argument integrity. If the argument is passed in list format,
-  # convert it to list of lists format
-  if zip_files and type(zip_files).__name__ == 'list':
-    num_items = len(zip_files)
-    while num_items > 0:
-      if type(zip_files[num_items - 1]).__name__ != 'list':
-        zip_files[num_items - 1] = [zip_files[num_items-1]]
-      num_items -= 1
-  else:
-    raise ValueError('File name arguments must be a list')
-
-  class HandlerWrapper(MemcachedZipHandler):
-    """Simple wrapper for an instance of MemcachedZipHandler.
-
-    I'm still not sure why this is needed
-    """
-    def get(self, name):
-      self.zipfilenames = zip_files
-      self.TrueGet(name)
-      if max_age is not None:
-        MAX_AGE = max_age
-      if public is not None:
-        PUBLIC = public
-
-  return HandlerWrapper
-
-
-class MemcachedZipHandler(webapp.RequestHandler):
-  """Handles get requests for a given URL.
-
-  Serves a GET request from a series of zip files. As files are served they are
-  put into memcache, which is much faster than retreiving them from the zip
-  source file again. It also uses considerably fewer CPU cycles.
-  """
-  zipfile_cache = {}                # class cache of source zip files
-  MAX_AGE = 43200                   # max client-side cache lifetime, in seconds
-  PUBLIC = True                     # public cache setting
-  CACHE_PREFIX = 'cache://'         # memcache key prefix for actual URLs
-  NEG_CACHE_PREFIX = 'noncache://'  # memcache key prefix for non-existant URL
-  REDIRECT_PREFIX = 'redirect://'   # memcache key prefix for redirect data
-  REDIRECT_FILE = 'redirects.yaml'  # Name of file that contains redirect table
-  REDIRECT_SRC = 'src'              # Name of the 'source' attribute for a
-                                    #   redirect table entry
-  REDIRECT_DST = 'dst'              # Name of the 'destination' attribute for
-                                    #   a redirect table entry
-  REDIRECT_TYPE = 'type'            # Name of the 'type' attribute for a
-                                    #   redirect table entry
-  REDIRECT_TYPE_PERM = 'permanent'  # Redirect 'type' string indicating a 301
-                                    #   redirect should be served
-  REDIRECT_TYPE_TEMP = 'temporary'  # Redirect 'type'string indicate a 302
-                                    #   Redirect should be served
-  intlString = 'intl/'
-  validLangs = ['en', 'de', 'es', 'fr','it','ja','ko','ru','zh-CN','zh-cn','zh-TW','zh-tw']
-
-  def TrueGet(self, reqUri):
-    """The top-level entry point to serving requests.
-
-    Called 'True' get because it does the work when called from the wrapper
-    class' get method. Some logic is applied to the request to serve files
-    from an intl/<lang>/... directory or fall through to the default language.
-
-    Args:
-      name: URL requested
-
-    Returns:
-      None
-    """
-    langName = 'en'
-    resetLangCookie = False
-    urlLangName = None
-    retry = False
-    isValidIntl = False
-    isStripped = False
-
-    # Try to retrieve the user's lang pref from the cookie. If there is no
-    # lang pref cookie in the request, add set-cookie to the response with the
-    # default value of 'en'.
-    try:
-      langName = self.request.cookies['android_developer_pref_lang']
-    except KeyError:
-      resetLangCookie = True
-      #logging.info('==========================EXCEPTION: NO LANG COOKIE FOUND, USING [%s]', langName)
-    logging.info('==========================REQ INIT name [%s] langName [%s] resetLangCookie [%s]', reqUri, langName, resetLangCookie)
-
-    # Do some prep for handling intl requests. Parse the url and validate
-    # the intl/lang substring, extract the url lang code (urlLangName) and the
-    # the uri that follows the intl/lang substring(contentUri)
-    sections = reqUri.split("/", 2)
-    isIntl = len(sections) > 2 and (sections[0] == "intl")
-    if isIntl:
-      isValidIntl = sections[1] in self.validLangs
-      urlLangName = sections[1]
-      contentUri = sections[2]
-      logging.info('  Content URI is [%s]...', contentUri)
-      if isValidIntl:
-        if (langName != urlLangName) or (langName == 'en'):
-          # if the lang code in the request is different from that in
-          # the cookie, or if the target lang is en, strip the
-          # intl/nn substring. It will later be redirected to
-          # the user's preferred language url.
-          # logging.info('  Handling a MISMATCHED intl request')
-          reqUri = contentUri
-          isStripped = True
-          isValidIntl = False
-          isIntl = False
-          #logging.info('INTL PREP resetting langName to urlLangName [%s]', langName)
-        #else:
-        #  logging.info('INTL PREP no need to reset langName')
-    else:
-      contentUri = reqUri
-
-    # Apply manual redirects from redirects.yaml. This occurs before any
-    # other mutations are performed, to avoid odd redirect behavior
-    # (For example, a user may want to redirect a directory without having
-    # /index.html appended.)
-    did_redirect = self.ProcessManualRedirects(contentUri, langName, isIntl)
-    if did_redirect:
-      return
-
-    # Preprocess the req url. If it references a directory or the domain itself,
-    # append '/index.html' to the url and 302 redirect. Otherwise, continue
-    # processing the request below.
-    did_redirect = self.PreprocessUrl(reqUri, langName)
-    if did_redirect:
-      return
-
-    # Send for processing
-    if self.isCleanUrl(reqUri, langName, isValidIntl, isStripped):
-      # handle a 'clean' request.
-      # Try to form a response using the actual request url.
-      # logging.info('  Request being handled as clean: [%s]', name)
-      if not self.CreateResponse(reqUri, langName, isValidIntl, resetLangCookie):
-        # If CreateResponse returns False, there was no such document
-        # in the intl/lang tree. Before going to 404, see if there is an
-        # English-language version of the doc in the default
-        # default tree and return it, else go to 404.
-        self.CreateResponse(contentUri, langName, False, resetLangCookie)
-
-    elif isIntl:
-      # handle the case where we need to pass through an invalid intl req
-      # for processing (so as to get 404 as appropriate). This is needed
-      # because intl urls are passed through clean and retried in English,
-      # if necessary.
-      # logging.info('  Handling an invalid intl request...')
-      self.CreateResponse(reqUri, langName, isValidIntl, resetLangCookie)
-
-    else:
-      # handle the case where we have a non-clean url (usually a non-intl
-      # url) that we need to interpret in the context of any lang pref
-      # that is set. Prepend an intl/lang string to the request url and
-      # send it as a 302 redirect. After the redirect, the subsequent
-      # request will be handled as a clean url.
-      self.RedirToIntl(reqUri, self.intlString, langName)
-
-  def ProcessManualRedirects(self, contentUri, langName, isIntl):
-    """Compute any manual redirects for a request and execute them.
-
-    This allows content authors to manually define a set of regex rules which,
-    when matched, will cause an HTTP redirect to be performed.
-
-    Redirect rules are typically stored in a file named redirects.yaml. See the
-    comments in that file for more information about formatting.
-
-    Redirect computations are stored in memcache for performance.
-
-    Note that international URIs are handled automatically, and are assumed to
-    mirror redirects for non-intl requests.
-
-    Args:
-      contentUri: The relative URI (without leading slash) that was requested.
-        This should NOT contain an intl-prefix, if otherwise present.
-      langName: The requested language.
-      isIntl: True if contentUri originally contained an intl prefix.
-
-    Results:
-      boolean: True if a redirect has been set, False otherwise.
-    """
-    # Redirect data is stored in memcache for performance
-    memcache_key = self.REDIRECT_PREFIX + contentUri
-    redirect_data = memcache.get(memcache_key)
-    if redirect_data is None:
-      logging.info('Redirect cache miss. Computing new redirect data.\n'
-                   'Memcache Key: ' + memcache_key)
-      redirect_data = self.ComputeManualRedirectUrl(contentUri)
-      memcache.set(memcache_key, redirect_data)
-    contentUri = redirect_data[0]
-    redirectType = redirect_data[1]
-
-    # If this is an international URL, prepend intl path to minimize
-    # number of redirects
-    if isIntl:
-      contentUri = '/%s%s%s' % (self.intlString, langName, contentUri)
-
-    if redirectType is None:
-      # No redirect necessary
-      return False
-    elif redirectType == self.REDIRECT_TYPE_PERM:
-      logging.info('Sending permanent redirect: ' + contentUri);
-      self.redirect(contentUri, permanent=True)
-      return True
-    elif redirectType == self.REDIRECT_TYPE_TEMP:
-      logging.info('Sending temporary redirect: ' + contentUri);
-      self.redirect(contentUri, permanent=False)
-      return True
-    else:
-      # Invalid redirect type
-      logging.error('Invalid redirect type: %s', redirectType)
-      raise ('Invalid redirect type: %s', redirectType)
-
-  def ComputeManualRedirectUrl(self, uri):
-    """Read redirects file and evaluate redirect rules for a given URI.
-
-    Args:
-      uri: The relative URI (without leading slash) for which redirect data
-        should be computed. No special handling of intl URIs is pefromed
-        at this level.
-
-    Returns:
-      tuple: The computed redirect data. This tuple has two parts:
-        redirect_uri: The new URI that should be used. (If no redirect rule is
-          found, the original input to 'uri' will be returned.
-        redirect_type: Either 'permanent' for an HTTP 301 redirect, 'temporary'
-          for an HTTP 302 redirect, or None if no redirect should be performed.
-    """
-    # Redircts are defined in a file named redirects.yaml.
-    try:
-      f = open(self.REDIRECT_FILE)
-      data = yaml.load(f)
-      f.close()
-    except IOError, e:
-      logging.warning('Error opening redirect file (' + self.REDIRECT_FILE +
-                      '): ' + e.strerror)
-      return (uri, None)
-
-    # The incoming path is missing a leading slash. However, many parts of the
-    # redirect system require leading slashes to distinguish between relative
-    # and absolute redirects. So, to compensate for this, we'll add a leading
-    # slash here as well.
-    uri = '/' + uri
-
-    # Check to make sure we actually got an iterable list out of the YAML file
-    if data is None:
-      logging.warning('Redirect file (' + self.REDIRECT_FILE + ') not valid '
-                      'YAML.')
-    elif 'redirects' not in data:
-      logging.warning('Redirect file (' + self.REDIRECT_FILE + ') not '
-                      'properly formatted -- no \'redirects:\' header.')
-    elif hasattr(data['redirects'], '__iter__'):
-      # Iterate through redirect data, try to find a redirect that matches.
-      for redirect in data['redirects']:
-          # Note: re.search adds an implied '^' to the beginning of the regex
-          # This means that the regex must match from the beginning of the
-          # string.
-          try:
-            if re.match(redirect[self.REDIRECT_SRC], uri):
-              # Match found. Apply redirect rule.
-              redirect_uri = re.sub('^' + redirect[self.REDIRECT_SRC],
-                  redirect[self.REDIRECT_DST], uri)
-              logging.info('Redirect rule matched.\n'
-                             'Rule: %s\n'
-                             'Src: %s\n'
-                             'Dst: %s',
-                           redirect[self.REDIRECT_SRC], uri, redirect_uri)
-              if self.REDIRECT_TYPE in redirect:
-                redirect_type = redirect[self.REDIRECT_TYPE]
-              else:
-                # Default redirect type, if unspecified
-                redirect_type = self.REDIRECT_TYPE_PERM
-              return (redirect_uri, redirect_type)
-          except:
-            e = sys.exc_info()[1]
-            raise ('Error while processing redirect rule.\n'
-                     'Rule: %s\n'
-                     'Error: %s' % (redirect[self.REDIRECT_SRC], e))
-    # No redirect found, return URL unchanged
-    return (uri, None)
-
-  def isCleanUrl(self, name, langName, isValidIntl, isStripped):
-    """Determine whether to pass an incoming url straight to processing.
-
-       Args:
-         name: The incoming URL
-
-       Returns:
-         boolean: Whether the URL should be sent straight to processing
-    """
-    # logging.info('  >>>> isCleanUrl name [%s] langName [%s] isValidIntl [%s]', name, langName, isValidIntl)
-    if (langName == 'en' and not isStripped) or isValidIntl or not ('.html' in name) or (not isValidIntl and not langName):
-      return True
-
-  def PreprocessUrl(self, name, langName):
-    """Any preprocessing work on the URL when it comes in.
-
-    Put any work related to interpreting the incoming URL here. For example,
-    this is used to redirect requests for a directory to the index.html file
-    in that directory. Subclasses should override this method to do different
-    preprocessing.
-
-    Args:
-      name: The incoming URL
-
-    Returns:
-      True if the request was redirected to '/index.html'.
-      Otherewise False.
-    """
-
-    # determine if this is a request for a directory
-    final_path_segment = name
-    final_slash_offset = name.rfind('/')
-    if final_slash_offset != len(name) - 1:
-      final_path_segment = name[final_slash_offset + 1:]
-      if final_path_segment.find('.') == -1:
-        name = ''.join([name, '/'])
-
-    # if this is a directory or the domain itself, redirect to /index.html
-    if not name or (name[len(name) - 1:] == '/'):
-      uri = ''.join(['/', name, 'index.html'])
-      # logging.info('--->PREPROCESSING REDIRECT [%s] to [%s] with langName [%s]', name, uri, langName)
-      self.redirect(uri, False)
-      return True
-    else:
-      return False
-
-  def RedirToIntl(self, name, intlString, langName):
-    """Redirect an incoming request to the appropriate intl uri.
-
-       For non-en langName, builds the intl/lang string from a
-       base (en) string and redirects (302) the request to look for
-       a version of the file in langName. For en langName, simply
-       redirects a stripped uri string (intl/nn removed).
-
-    Args:
-      name: The incoming, preprocessed URL
-
-    Returns:
-      The lang-specific URL
-    """
-    if not (langName == 'en'):
-      builtIntlLangUri = ''.join([intlString, langName, '/', name, '?', self.request.query_string])
-    else:
-      builtIntlLangUri = name
-    uri = ''.join(['/', builtIntlLangUri])
-    logging.info('-->REDIRECTING %s to  %s', name, uri)
-    self.redirect(uri, False)
-    return uri
-
-  def CreateResponse(self, name, langName, isValidIntl, resetLangCookie):
-    """Process the url and form a response, if appropriate.
-
-       Attempts to retrieve the requested file (name) from cache,
-       negative cache, or store (zip) and form the response.
-       For intl requests that are not found (in the localized tree),
-       returns False rather than forming a response, so that
-       the request can be retried with the base url (this is the
-       fallthrough to default language).
-
-       For requests that are found, forms the headers and
-       adds the content to the response entity. If the request was
-       for an intl (localized) url, also resets the language cookie
-       to the language specified in the url if needed, to ensure that
-       the client language and response data remain harmonious.
-
-    Args:
-      name: The incoming, preprocessed URL
-      langName: The language id. Used as necessary to reset the
-                language cookie in the response.
-      isValidIntl: If present, indicates whether the request is
-                   for a language-specific url
-      resetLangCookie: Whether the response should reset the
-                       language cookie to 'langName'
-
-    Returns:
-      True: A response was successfully created for the request
-      False: No response was created.
-    """
-    # see if we have the page in the memcache
-    logging.info('PROCESSING %s langName [%s] isValidIntl [%s] resetLang [%s]',
-      name, langName, isValidIntl, resetLangCookie)
-    resp_data = self.GetFromCache(name)
-    if resp_data is None:
-      logging.info('  Cache miss for %s', name)
-      resp_data = self.GetFromNegativeCache(name)
-      if resp_data is None:
-        resp_data = self.GetFromStore(name)
-
-        # IF we have the file, put it in the memcache
-        # ELSE put it in the negative cache
-        if resp_data is not None:
-          self.StoreOrUpdateInCache(name, resp_data)
-        elif isValidIntl:
-          # couldn't find the intl doc. Try to fall through to English.
-          #logging.info('  Retrying with base uri...')
-          return False
-        else:
-          logging.info('  Adding %s to negative cache, serving 404', name)
-          self.StoreInNegativeCache(name)
-          self.Write404Error()
-          return True
-      else:
-        # found it in negative cache
-        self.Write404Error()
-        return True
-
-    # found content from cache or store
-    logging.info('FOUND CLEAN')
-    if resetLangCookie:
-      logging.info('  Resetting android_developer_pref_lang cookie to [%s]',
-      langName)
-      expireDate = time.mktime(localtime()) + 60 * 60 * 24 * 365 * 10
-      self.response.headers.add_header('Set-Cookie',
-      'android_developer_pref_lang=%s; path=/; expires=%s' %
-      (langName, strftime("%a, %d %b %Y %H:%M:%S", localtime(expireDate))))
-    mustRevalidate = False
-    if ('.html' in name):
-      # revalidate html files -- workaround for cache inconsistencies for
-      # negotiated responses
-      mustRevalidate = True
-      #logging.info('  Adding [Vary: Cookie] to response...')
-      self.response.headers.add_header('Vary', 'Cookie')
-    content_type, encoding = mimetypes.guess_type(name)
-    if content_type:
-      self.response.headers['Content-Type'] = content_type
-      self.SetCachingHeaders(mustRevalidate)
-      self.response.out.write(resp_data)
-    elif (name == 'favicon.ico'):
-      self.response.headers['Content-Type'] = 'image/x-icon'
-      self.SetCachingHeaders(mustRevalidate)
-      self.response.out.write(resp_data)
-    elif name.endswith('.psd'):
-      self.response.headers['Content-Type'] = 'application/octet-stream'
-      self.SetCachingHeaders(mustRevalidate)
-      self.response.out.write(resp_data)
-    elif name.endswith('.svg'):
-      self.response.headers['Content-Type'] = 'image/svg+xml'
-      self.SetCachingHeaders(mustRevalidate)
-      self.response.out.write(resp_data)
-    elif name.endswith('.mp4'):
-      self.response.headers['Content-Type'] = 'video/mp4'
-      self.SetCachingHeaders(mustRevalidate)
-      self.response.out.write(resp_data)
-    elif name.endswith('.webm'):
-      self.response.headers['Content-Type'] = 'video/webm'
-      self.SetCachingHeaders(mustRevalidate)
-      self.response.out.write(resp_data)
-    elif name.endswith('.ogv'):
-      self.response.headers['Content-Type'] = 'video/ogg'
-      self.SetCachingHeaders(mustRevalidate)
-      self.response.out.write(resp_data)
-    return True
-
-  def GetFromStore(self, file_path):
-    """Retrieve file from zip files.
-
-    Get the file from the source, it must not have been in the memcache. If
-    possible, we'll use the zip file index to quickly locate where the file
-    should be found. (See MapToFileArchive documentation for assumptions about
-    file ordering.) If we don't have an index or don't find the file where the
-    index says we should, look through all the zip files to find it.
-
-    Args:
-      file_path: the file that we're looking for
-
-    Returns:
-      The contents of the requested file
-    """
-    resp_data = None
-    file_itr = iter(self.zipfilenames)
-
-    # decode any escape characters in the URI
-    # Note: We are currenty just looking for '@' (%40)
-    file_path = file_path.replace('%40', '@')
-
-    # check the index, if we have one, to see what archive the file is in
-    archive_name = self.MapFileToArchive(file_path)
-    if not archive_name:
-      archive_name = file_itr.next()[0]
-
-    while resp_data is None and archive_name:
-      zip_archive = self.LoadZipFile(archive_name)
-      if zip_archive:
-
-        # we expect some lookups will fail, and that's okay, 404s will deal
-        # with that
-        try:
-          resp_data = zip_archive.read(file_path)
-        except (KeyError, RuntimeError), err:
-          # no op
-          x = False
-        if resp_data is not None:
-          logging.info('%s read from %s', file_path, archive_name)
-
-      try:
-        archive_name = file_itr.next()[0]
-      except (StopIteration), err:
-        archive_name = False
-
-    return resp_data
-
-  def LoadZipFile(self, zipfilename):
-    """Convenience method to load zip file.
-
-    Just a convenience method to load the zip file from the data store. This is
-    useful if we ever want to change data stores and also as a means of
-    dependency injection for testing. This method will look at our file cache
-    first, and then load and cache the file if there's a cache miss
-
-    Args:
-      zipfilename: the name of the zip file to load
-
-    Returns:
-      The zip file requested, or None if there is an I/O error
-    """
-    zip_archive = None
-    zip_archive = self.zipfile_cache.get(zipfilename)
-    if zip_archive is None:
-      try:
-        zip_archive = zipfile.ZipFile(zipfilename)
-        self.zipfile_cache[zipfilename] = zip_archive
-      except (IOError, RuntimeError), err:
-        logging.error('Can\'t open zipfile %s, cause: %s' % (zipfilename,
-                                                             err))
-    return zip_archive
-
-  def MapFileToArchive(self, file_path):
-    """Given a file name, determine what archive it should be in.
-
-    This method makes two critical assumptions.
-    (1) The zip files passed as an argument to the handler, if concatenated
-        in that same order, would result in a total ordering
-        of all the files. See (2) for ordering type.
-    (2) Upper case letters before lower case letters. The traversal of a
-        directory tree is depth first. A parent directory's files are added
-        before the files of any child directories
-
-    Args:
-      file_path: the file to be mapped to an archive
-
-    Returns:
-      The name of the archive where we expect the file to be
-    """
-    num_archives = len(self.zipfilenames)
-    while num_archives > 0:
-      target = self.zipfilenames[num_archives - 1]
-      if len(target) > 1:
-        if self.CompareFilenames(target[1], file_path) >= 0:
-          return target[0]
-      num_archives -= 1
-
-    return None
-
-  def CompareFilenames(self, file1, file2):
-    """Determines whether file1 is lexigraphically 'before' file2.
-
-    WARNING: This method assumes that paths are output in a depth-first,
-    with parent directories' files stored before childs'
-
-    We say that file1 is lexigraphically before file2 if the last non-matching
-    path segment of file1 is alphabetically before file2.
-
-    Args:
-      file1: the first file path
-      file2: the second file path
-
-    Returns:
-      A positive number if file1 is before file2
-      A negative number if file2 is before file1
-      0 if filenames are the same
-    """
-    f1_segments = file1.split('/')
-    f2_segments = file2.split('/')
-
-    segment_ptr = 0
-    while (segment_ptr < len(f1_segments) and
-           segment_ptr < len(f2_segments) and
-           f1_segments[segment_ptr] == f2_segments[segment_ptr]):
-      segment_ptr += 1
-
-    if len(f1_segments) == len(f2_segments):
-
-      # we fell off the end, the paths much be the same
-      if segment_ptr == len(f1_segments):
-        return 0
-
-      # we didn't fall of the end, compare the segments where they differ
-      if f1_segments[segment_ptr] < f2_segments[segment_ptr]:
-        return 1
-      elif f1_segments[segment_ptr] > f2_segments[segment_ptr]:
-        return -1
-      else:
-        return 0
-
-      # the number of segments differs, we either mismatched comparing
-      # directories, or comparing a file to a directory
-    else:
-
-      # IF we were looking at the last segment of one of the paths,
-      # the one with fewer segments is first because files come before
-      # directories
-      # ELSE we just need to compare directory names
-      if (segment_ptr + 1 == len(f1_segments) or
-          segment_ptr + 1 == len(f2_segments)):
-        return len(f2_segments) - len(f1_segments)
-      else:
-        if f1_segments[segment_ptr] < f2_segments[segment_ptr]:
-          return 1
-        elif f1_segments[segment_ptr] > f2_segments[segment_ptr]:
-          return -1
-        else:
-          return 0
-
-  def SetCachingHeaders(self, revalidate):
-    """Set caching headers for the request."""
-    max_age = self.MAX_AGE
-    #self.response.headers['Expires'] = email.Utils.formatdate(
-    #    time.time() + max_age, usegmt=True)
-    cache_control = []
-    if self.PUBLIC:
-      cache_control.append('public')
-    cache_control.append('max-age=%d' % max_age)
-    if revalidate:
-      cache_control.append('must-revalidate')
-    self.response.headers['Cache-Control'] = ', '.join(cache_control)
-
-  def GetFromCache(self, filename):
-    """Get file from memcache, if available.
-
-    Args:
-      filename: The URL of the file to return
-
-    Returns:
-      The content of the file
-    """
-    return memcache.get('%s%s' % (self.CACHE_PREFIX, filename))
-
-  def StoreOrUpdateInCache(self, filename, data):
-    """Store data in the cache.
-
-    Store a piece of data in the memcache. Memcache has a maximum item size of
-    1*10^6 bytes. If the data is too large, fail, but log the failure. Future
-    work will consider compressing the data before storing or chunking it
-
-    Args:
-      filename: the name of the file to store
-      data: the data of the file
-
-    Returns:
-      None
-    """
-    try:
-      if not memcache.add('%s%s' % (self.CACHE_PREFIX, filename), data):
-        memcache.replace('%s%s' % (self.CACHE_PREFIX, filename), data)
-    except (ValueError), err:
-      logging.warning('Data size too large to cache\n%s' % err)
-
-  def Write404Error(self):
-    """Ouptut a simple 404 response."""
-    self.error(404)
-    self.response.out.write(
-        ''.join(['<html><head><title>404: Not Found</title></head>',
-                 '<body><b><h2>Error 404</h2><br/>',
-                 'File not found</b></body></html>']))
-
-  def StoreInNegativeCache(self, filename):
-    """If a non-existant URL is accessed, cache this result as well.
-
-    Future work should consider setting a maximum negative cache size to
-    prevent it from from negatively impacting the real cache.
-
-    Args:
-      filename: URL to add ot negative cache
-
-    Returns:
-      None
-    """
-    memcache.add('%s%s' % (self.NEG_CACHE_PREFIX, filename), -1)
-
-  def GetFromNegativeCache(self, filename):
-    """Retrieve from negative cache.
-
-    Args:
-      filename: URL to retreive
-
-    Returns:
-      The file contents if present in the negative cache.
-    """
-    return memcache.get('%s%s' % (self.NEG_CACHE_PREFIX, filename))
-
-def main():
-  application = webapp.WSGIApplication([('/([^/]+)/(.*)',
-                                         MemcachedZipHandler)])
-  util.run_wsgi_app(application)
-
-
-if __name__ == '__main__':
-  main()
diff --git a/scripts/app_engine_server/redirects.yaml b/scripts/app_engine_server/redirects.yaml
deleted file mode 100644
index b7a90a5..0000000
--- a/scripts/app_engine_server/redirects.yaml
+++ /dev/null
@@ -1,700 +0,0 @@
-# Redirect file.
-# This file contains the list of rewrite rules that are applied when serving
-# pages.
-#
-# Each redirect has four parts:
-#
-# - src: The path to redirect. This is a regex rule prefixed with an implied
-#   '^'. Unless you're doing something advanced, your path should start with
-#   '/' character.
-#
-# - dst: The path to redirect to. If the path begins with a slash,
-#   it is considered a relative redirect. Otherwise, it is an absolute
-#   redirct (and should probably begin with http: or http://). You may use
-#   capturing groups to preserve part of the source path. To referece a
-#   capturing group, use \N, where N is the (1-based) index of desired group.
-#
-# - type: Either 'permanent' or 'temporary', depending on whether you want an
-#   HTTP 301 or HTTP 302 redirect, respectiviely. See RFC 2616 for the
-#   difference between these:
-#
-#       http://tools.ietf.org/html/rfc2616
-#
-#   If you don't specify a type, 'permanent' will be used by default. Note that
-#   this is different from the Apache convention (which uses 'temporary' by
-#   default.)
-#
-# - comment: Currently ignored by the computer, but useful for humans.
-#
-# Example:
-#
-# redirects:
-# - src: /foo
-#   dst: /bar
-#   # Redirect /foo to /bar. This will also redirect foo/ and
-#   # foo/test.html. Note that the redirect type is optional. This will be
-#   # treated as a permanent redirect.
-#
-# - src: /(.+droid(/.*)?)$
-#   dst: /droids/\1
-#   type: permanent
-#   # Redirect /android to /droids/android and /bugdroid to
-#   # /droids/bugdroid. However, it will not redirect /droid or
-#   # /bugdroids.
-
-#
-# - src: /google
-#   dst: http://www.google.com
-#   type: temporary
-#   # This is an example of a redirect to an absolute URI.
-#
-#
-#   WATCH OUT -- SRC LINE HAS TO START WITH A HYPHEN !!
-
-redirects:
-# new one works
-- src: /sdk/android-
-  dst: /about/versions/android-
-  type: permanent
-  comment: Redirect sdk reference to new location
-
-- src: /about/versions/index.html
-  dst: /about/index.html
-  type: permanent
-
-- src: /about/versions/api-levels.html
-  dst: /guide/topics/manifest/uses-sdk-element.html#ApiLevels
-  type: permanent
-
-# new one works
-- src: /sdk/oem-usb.html
-  dst: /tools/extras/oem-usb.html
-  type: permanent
-  comment: Redirect sdk reference to new location
-
-- src: /sdk/installing.html
-  dst: /sdk/installing/index.html
-  type: permanent
-  comment: Redirect sdk reference to new location
-
-- src: /sdk/compatibility-library.html
-  dst: /tools/support-library/index.html
-  type: permanent
-
-- src: /tools/extras/support-library.html
-  dst: /tools/support-library/index.html
-  type: permanent
-
-- src: /training/basics/fragments/support-lib.html
-  dst: /tools/support-library/setup.html
-  type: permanent
-
-- src: /training/id-auth/.*
-  dst: /google/play-services/auth.html
-  type: permanent
-
-# new one works
-- src: /sdk/eclipse-adt.html
-  dst: /tools/sdk/eclipse-adt.html
-  type: permanent
-  comment: Redirect sdk reference to new location
-
-# new one works
-- src: /sdk/tools-notes.html
-  dst: /tools/sdk/tools-notes.html
-  type: permanent
-  comment: Redirect sdk reference to new location
-
-# new one works
-- src: /sdk/adding-components.html
-  dst: /sdk/exploring.html
-  type: permanent
-  comment: Redirect sdk reference to new location
-
-- src: /sdk/ndk/overview.html
-  dst: /tools/sdk/ndk/index.html
-  type: permanent
-
-- src: /sdk/ndk/
-  dst: /tools/sdk/ndk/
-  type: permanent
-  comment: Redirect sdk reference to new location
-
-- src: /tools/sdk/win-usb.html
-  dst: /sdk/win-usb.html
-  type: permanent
-
-- src: /tools/sdk/index.html
-  dst: /sdk/index.html
-  type: permanent
-
-- src: /tools/sdk/installing.html
-  dst: /sdk/installing/bundle.html
-  type: permanent
-
-#new one works
-- src: /sdk/requirements.html
-  dst: /sdk/index.html
-  type: permanent
-  comment: Redirect sdk reference to new location
-
-- src: /sdk/installing/next.html
-  dst: /training/basics/firstapp/index.html
-  type: permanent
-  comment: Next steps doc was lame and everybody should go to first class
-
-
-#- src: /sdk/(?!index.html|installing/|exploring)
-#  dst: /tools/sdk/
-#  type: permanent
-#  comment: Redirect sdk reference to new location
-
-#- src: /sdk/compatibility
-#  dst: /tools/sdk/support-package.html
-#  type: permanent
-#  comment: Redirect to new location
-
-# new one
-- src: /guide/market/
-  dst: /google/play/
-  type: permanent
-  comment: redirect billing to new loc
-
-- src: /guide/google/gcm/client-javadoc/.*
-  dst: /reference/com/google/android/gcm/package-summary.html
-  type: permanent
-  comment: redirect to new loc
-
-- src: /guide/google/gcm/server-javadoc/.*
-  dst: /reference/com/google/android/gcm/server/package-summary.html
-  type: permanent
-  comment: redirect to new loc
-
-- src: /guide/google/play/services.html
-  dst: /google/play-services/index.html
-  type: permanent
-  comment: redirect to new loc
-
-- src: /guide/google/
-  dst: /google/
-  type: permanent
-  comment: redirect to new loc
-
-- src: /guide/publishing/licensing.html
-  dst: /google/play/licensing/index.html
-  type: permanent
-  comment: Redirect Licensing docs to new location
-
-# new one
-- src: /google/play/billing/billing_about.html
-  dst: /google/play/billing/index.html
-  type: permanent
-  comment: Redirect Licensing docs to new location
-
-- src: /guide/developing/tools/
-  dst: /tools/help/
-  type: permanent
-  comment: Redirect to new location
-
-- src: /guide/developing/
-  dst: /tools/
-  type: permanent
-  comment: Redirect to new location
-
-- src: /tools/aidl.html
-  dst: /guide/components/aidl.html
-  type: permanent
-
-- src: /guide/market/publishing/multiple-apks.html
-  dst: /google/play/publishing/multiple-apks.html
-  type: permanent
-  comment: Redirect to new location
-
-- src: /guide/publishing/publishing.html
-  dst: /distribute/googleplay/publish/preparing.html
-  type: permanent
-  comment: Redirect to new location
-
-- src: /guide/publishing/
-  dst: /tools/publishing/
-  type: permanent
-  comment: Redirect to new location
-
-- src: /guide/topics/fundamentals.html
-  dst: /guide/components/fundamentals.html
-  type: permanent
-
-- src: /guide/topics/intents/intents-filters.html
-  dst: /guide/components/intents-filters.html
-  type: permanent
-
-- src: /guide/topics/fundamentals/
-  dst: /guide/components/
-  type: permanent
-  comment: Redirect to new location
-
-- src: /guide/topics/clipboard/copy-paste.html
-  dst: /guide/topics/text/copy-paste.html
-  type: permanent
-  comment: Redirect to new location
-
-- src: /guide/topics/ui/notifiers/index.html
-  dst: /guide/topics/ui/notifiers/notifications.html
-  type: permanent
-  comment: Flatten side nav to make Notifications and Toasts separate
-
-# new one
-- src: /guide/topics/wireless/
-  dst: /guide/topics/connectivity/
-  type: permanent
-  comment: Redirect to new location
-
-# new one
-- src: /guide/topics/drawing/.*
-  dst: /guide/topics/graphics/opengl.html
-  type: permanent
-  comment: Redirect to new location
-
-- src: /guide/topics/connectivity/usb/adk.html
-  dst: /tools/adk/index.html
-  type: permanent
-
-- src: /tools/workflow/publishing/versioning.html
-  dst: /tools/publishing/versioning.html
-  type: permanent
-
-- src: /tools/workflow/publishing/publishing.html
-  dst: /tools/publishing/publishing_overview.html
-  type: permanent
-
-- src: /tools/workflow/publishing_overview.html
-  dst: /tools/publishing/publishing_overview.html
-  type: permanent
-
-- src: /tools/workflow/publishing/publishing_overview.html
-  dst: /tools/publishing/publishing_overview.html
-  type: permanent
-
-- src: /tools/workflow/app-signing.html
-  dst: /tools/publishing/app-signing.html
-  type: permanent
-
-- src: /tools/adk/aoa.html
-  dst: http://source.android.com/tech/accessories/aoap/aoa.html
-  type: permanent
-  comment: Open Accessory Protocol content has moved to source.android.com.
-
-- src: /tools/adk/aoa2.html
-  dst: http://source.android.com/tech/accessories/aoap/aoa2.html
-  type: permanent
-  comment: Open Accessory Protocol content has moved to source.android.com.
-
-- src: /guide/topics/usb
-  dst: /guide/topics/connectivity/usb
-  type: permanent
-  comment: Redirect to new location
-
-# new one
-- src: /guide/appendix/api-levels.html
-  dst: /guide/topics/manifest/uses-sdk-element.html#ApiLevels
-  type: permanent
-  comment: Redirect to new location
-
-- src: /guide/appendix/install-location.html
-  dst: /guide/topics/data/install-location.html
-  type: permanent
-
-- src: /guide/appendix/g-app-intents.html
-  dst: /guide/components/intents-common.html
-  type: permanent
-  comment: Redirect to new location
-
-# new one
-- src: /guide/basics/.*
-  dst: /about/index.html
-  type: permanent
-  comment: Redirect to new location
-
-- src: /guide/topics/security/security.html
-  dst: /training/articles/security-tips.html
-  type: permanent
-  comment: Redirect to new location
-
-- src: /guide/topics/security/index.html
-  dst: /training/articles/security-tips.html
-  type: permanent
-  comment: Redirect to new location
-
-# new one
-- src: /guide/appendix/market-filters.html
-  dst: /google/play/filters.html
-  type: permanent
-  comment: Redirect to new location
-
-- src: /guide/topics/testing/
-  dst: /tools/testing/
-  type: permanent
-
-- src: /guide/topics/graphics/animation.html
-  dst: /guide/topics/graphics/overview.html
-  type: permanent
-  comment: Redirect to new location
-
-- src: /guide/topics/graphics/renderscript/(compute.html|index.html|reference.html)
-  dst: /guide/topics/renderscript/index.html
-  type: permanent
-  comment: Redirect to new location
-
-- src: /guide/topics/graphics/renderscript.html
-  dst: /guide/topics/renderscript/index.html
-  type: permanent
-  comment: Redirect to new location
-
-- src: /guide/topics/location/obtaining-user-location.html
-  dst: /guide/topics/location/strategies.html
-  type: permanent
-  comment: Redirect to new location
-
-# new one
-- src: /guide/topics/nfc/
-  dst: /guide/topics/connectivity/nfc/
-  type: permanent
-  comment: Redirect to new location
-
-# new one
-- src: /guide/topics/wireless/
-  dst: /guide/topics/connectivity/
-  type: permanent
-  comment: Redirect to new location
-
-# new one
-- src: /guide/topics/network/
-  dst: /guide/topics/connectivity/
-  type: permanent
-  comment: Redirect to new location
-
-# new one
-- src: /resources/articles/creating-input-method.html
-  dst: /guide/topics/text/creating-input-method.html
-  type: permanent
-
-# new one
-- src: /resources/articles/spell-checker-framework.html
-  dst: /guide/topics/text/spell-checker-framework.html
-  type: permanent
-
-# new one
-- src: /resources/tutorials/notepad/
-  dst: /training/notepad/
-  type: permanent
-  comment: this is only for external links, until we update this documentation
-
-# new one
-- src: /resources/faq/
-  dst: /guide/faq/
-  type: permanent
-  comment: FAQ still needs a permanent home
-
-# new one
-- src: /resources/tutorials/hello-world.html
-  dst: /training/basics/firstapp/index.html
-  type: permanent
-  comment: Redirect to new location
-
-# add the rest of the tutorials here
-
-- src: /guide/practices/design/
-  dst: /guide/practices/
-  type: permanent
-  comment: Redirect to new location
-
-- src: /guide/practices/accessibility.html
-  dst: /guide/topics/ui/accessibility/index.html
-  type: permanent
-
-# move best practices to training
-
-- src: /guide/practices/app-design/performance.html
-  dst: /training/articles/perf-tips.html
-  type: permanent
-
-- src: /guide/practices/performance.html
-  dst: /training/articles/perf-tips.html
-  type: permanent
-
-- src: /guide/practices/app-design/responsiveness.html
-  dst: /training/articles/perf-anr.html
-  type: permanent
-
-- src: /guide/practices/responsiveness.html
-  dst: /training/articles/perf-anr.html
-  type: permanent
-
-- src: /guide/practices/security.html
-  dst: /training/articles/security-tips.html
-  type: permanent
-
-- src: /guide/practices/jni.html
-  dst: /training/articles/perf-jni.html
-  type: permanent
-
-# move ui docs to design
-
-- src: /guide/practices/ui_guidelines/index.html
-  dst: /design/index.html
-  type: permanent
-
-- src: /guide/practices/ui_guidelines/icon_design.*
-  dst: /design/style/iconography.html
-  type: permanent
-
-- src: /guide/practices/ui_guidelines/activity_task_design.html
-  dst: /design/patterns/app-structure.html
-  type: permanent
-
-- src: /guide/practices/ui_guidelines/menu_design.html
-  dst: /design/patterns/actionbar.html
-  type: permanent
-
-
-# new one
-- src: /resources/dashboard/.*
-  dst: /about/dashboards/index.html
-  type: permanent
-  comment: Redirect to new location
-
-- src: /resources/community-groups.html
-  dst: /support.html
-  type: permanent
-  comment: Redirect to new location
-
-- src: /guide/tutorials/
-  dst: /resources/tutorials/
-  type: permanent
-
-- src: /resources/tutorials/views/hello-linearlayout.html
-  dst: /guide/topics/ui/layout/linear.html
-  type: permanent
-  comment: Redirect to new location
-
-- src: /resources/tutorials/views/hello-relativelayout.html
-  dst: /guide/topics/ui/layout/relative.html
-  type: permanent
-  comment: Redirect to new location
-
-- src: /resources/tutorials/views/hello-listview.html
-  dst: /guide/topics/ui/layout/listview.html
-  type: permanent
-  comment: Redirect to new location
-
-- src: /resources/tutorials/views/hello-gridview.html
-  dst: /guide/topics/ui/layout/gridview.html
-  type: permanent
-  comment: Redirect to new location
-
-- src: /guide/webapps/overview.html
-  dst: /guide/webapps/index.html
-  type: permanent
-
-- src: /resources/tutorials/views/hello-webview.html
-  dst: /guide/webapps/webview.html
-  type: permanent
-  comment: Redirect to new location
-
-- src: /resources/tutorials/views/hello-formstuff.html
-  dst: /guide/topics/ui/controls.html
-  type: permanent
-  comment: Redirect to new location
-
-- src: /resources/tutorials/views/hello-datepicker.html
-  dst: /guide/topics/ui/controls/pickers.html
-  type: permanent
-  comment: Redirect to new location
-
-- src: /resources/tutorials/views/hello-timepicker.html
-  dst: /guide/topics/ui/controls/pickers.html
-  type: permanent
-  comment: Redirect to new location
-
-- src: /resources/tutorials/views/hello-autocomplete.html
-  dst: /guide/topics/ui/controls/text.html
-  type: permanent
-  comment: Redirect to new location
-
-- src: /resources/tutorials/views/hello-spinner.html
-  dst: /guide/topics/ui/controls/spinner.html
-  type: permanent
-  comment: Redirect to new location
-
-- src: /resources/tutorials/opengl/opengl-es10.html
-  dst: /training/graphics/opengl/index.html
-  type: permanent
-
-- src: /resources/tutorials/opengl/opengl-es20.html
-  dst: /training/graphics/opengl/index.html
-  type: permanent
-
-- src: /resources/tutorials/views/hello-mapview.html
-  dst: https://developers.google.com/maps/documentation/android/hello-mapview
-  type: permanent
-
-- src: /resources/tutorials/views/.*
-  dst: /guide/topics/ui/declaring-layout.html#CommonLayouts
-  type: permanent
-
-- src: /guide/topics/ui/layout-objects.html
-  dst: /guide/topics/ui/declaring-layout.html#CommonLayouts
-  type: permanent
-
-- src: /resources/tutorials/localization/.*
-  dst: /training/basics/supporting-devices/languages.html
-  type: permanent
-
-- src: /resources/samples/.*
-  dst: /samples/index.html
-  type: permanent
-
-- src: /tools/samples/index.html
-  dst: /samples/index.html
-  type: permanent
-  comment: Redirect to new location
-
-- src: /resources/(?!articles)
-  dst: /training/
-  type: permanent
-  comment: Redirect to new location
-
-- src: /guide/publishing/publishing.html#BuildaButton
-  dst: /distribute/googleplay/promote/badges.html
-  type: permanent
-  comment: Redirect to new location
-
-
-# ------------------- TRAINING -------------------
-
-- src: /guide/topics/ui/layout/tabs.html
-  dst: /training/implementing-navigation/lateral.html
-  type: permanent
-
-- src: /training/cloudsync/aesync.html
-  dst: /google/gcm/index.html
-  type: permanent
-  comment: Syncing with App Engine was removed because it's obsolete.
-
-- src: /training/basics/location/
-  dst: /training/location/
-  type: permanent
-
-# -------------------- MISC ----------------------
-
-- src: /shareables/
-  dst: http://commondatastorage.googleapis.com/androiddevelopers/shareables/
-  type: permanent
-  comment: Redirect to new location
-
-- src: /downloads/
-  dst: http://commondatastorage.googleapis.com/androiddevelopers/
-  type: permanent
-  comment: Redirect to new location
-
-- src: /search.html
-  dst: /index.html
-  type: permanent
-  comment: Redirect to new location
-
-- src: /videos/index.html
-  dst: /develop/index.html
-  type: permanent
-  comment: Redirect to new location
-
-- src: /live/index.html
-  dst: https://developers.google.com/live/
-  type: permanent
-  comment: Redirect to new location
-
-- src: /intl/zh-CN/...
-  dst: /intl/zh-cn/...
-  type: permanent
-
-- src: /intl/zh-TW/...
-  dst: /intl/zh-tw/...
-  type: permanent
-
-# -------------------- EASTER EGG REDIRECTS ----------------------
-
-
-
-
-
-# ---------- PLATFORM VERSIONS ----------------
-
-- src: /4.2
-  dst: /about/versions/android-4.2.html
-  type: permanent
-
-- src: /4.1
-  dst: /about/versions/android-4.1.html
-  type: permanent
-
-- src: /4.0
-  dst: /about/versions/android-4.0.html
-  type: permanent
-
-- src: /(k|kk|kitkat)/?$
-  dst: /about/versions/kitkat.html
-  type: permanent
-
-- src: /(j|jb|jellybean)/?$
-  dst: /about/versions/jelly-bean.html
-  type: permanent
-
-- src: /(i|ics|icecreamsandwich)/?$
-  dst: /about/versions/android-4.0-highlights.html
-  type: permanent
-
-- src: /(h|hc|honeycomb)/?$
-  dst: /about/versions/android-3.0-highlights.html
-  type: permanent
-
-- src: /(g|gb|gingerbread)/?$
-  dst: /about/versions/android-2.3-highlights.html
-  type: permanent
-
-# ---------- MISC -----------------
-
-- src: /%2B/?$
-  dst: https://plus.google.com/108967384991768947849/posts
-  type: permanent
-  comment: Redirect /+ and /+/ to Google+
-
-- src: /blog
-  dst: http://android-developers.blogspot.com/
-  type: permanent
-
-- src: /stats
-  dst: /about/dashboards/index.html
-  type: permanent
-
-- src: /youtube
-  dst: http://www.youtube.com/user/androiddevelopers
-  type: permanent
-
-- src: /playbadge/?$
-  dst: http://developer.android.com/distribute/googleplay/promote/badges.html
-  type: permanent
-
-- src: /deviceart/?$
-  dst: http://developer.android.com/distribute/promote/device-art.html
-  type: permanent
-
-- src: /edu/signup/?$
-  dst: https://services.google.com/fb/forms/playedu
-  type: permanent
-
-- src: /edu/?$
-  dst: /distribute/googleplay/edu/index.html
-  type: permanent
-
-- src: /edu/signup
-  dst: https://services.google.com/fb/forms/playedu
-  type: permanent
diff --git a/scripts/divide_and_compress.py b/scripts/divide_and_compress.py
deleted file mode 100755
index 2bcb0ab..0000000
--- a/scripts/divide_and_compress.py
+++ /dev/null
@@ -1,366 +0,0 @@
-#!/usr/bin/python2.4
-#
-# Copyright (C) 2008 Google Inc.
-#
-# 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.
-#
-
-"""Module to compress directories in to series of zip files.
-
-This module will take a directory and compress all its contents, including
-child directories into a series of zip files named N.zip where 'N' ranges from
-0 to infinity. The zip files will all be below a certain specified maximum
-threshold.
-
-The directory is compressed with a depth first traversal, each directory's
-file contents being compressed as it is visisted, before the compression of any
-child directory's contents. In this way the files within an archive are ordered
-and the archives themselves are ordered.
-
-The class also constructs a 'main.py' file intended for use with Google App
-Engine with a custom App Engine program not currently distributed with this
-code base. The custom App Engine runtime can leverage the index files written
-out by this class to more quickly locate which zip file to serve a given URL
-from.
-"""
-
-__author__ = 'jmatt@google.com (Justin Mattson)'
-
-import optparse
-import os
-import stat
-import sys
-import zipfile
-import divide_and_compress_constants
-
-
-def CreateOptionsParser():
-  """Creates the parser for command line arguments.
-
-  Returns:
-    A configured optparse.OptionParser object.
-  """
-  rtn = optparse.OptionParser()
-  rtn.add_option('-s', '--sourcefiles', dest='sourcefiles', default=None,
-                 help='The directory containing the files to compress')
-  rtn.add_option('-d', '--destination', dest='destination', default=None,
-                 help=('Where to put the archive files, this should not be'
-                       ' a child of where the source files exist.'))
-  rtn.add_option('-f', '--filesize', dest='filesize', default='1M',
-                 help=('Maximum size of archive files. A number followed by '
-                       'a magnitude indicator either "B", "K", "M", or "G". '
-                       'Examples:\n  1000000B == one million BYTES\n'
-                       '  1.2M == one point two MEGABYTES\n'
-                       '  1M == 1048576 BYTES'))
-  rtn.add_option('-n', '--nocompress', action='store_false', dest='compress',
-                 default=True,
-                 help=('Whether the archive files should be compressed, or '
-                       'just a concatenation of the source files'))
-  return rtn
-
-
-def VerifyArguments(options, parser):
-  """Runs simple checks on correctness of commandline arguments.
-
-  Args:
-    options: The command line options passed.
-    parser: The parser object used to parse the command string.
-  """
-  try:
-    if options.sourcefiles is None or options.destination is None:
-      parser.print_help()
-      sys.exit(-1)
-  except AttributeError:
-    parser.print_help()
-    sys.exit(-1)
-
-
-def ParseSize(size_str):
-  """Parse the file size argument from a string to a number of bytes.
-
-  Args:
-    size_str: The string representation of the file size.
-
-  Returns:
-    The file size in bytes.
-
-  Raises:
-    ValueError: Raises an error if the numeric or qualifier portions of the
-      file size argument is invalid.
-  """
-  if len(size_str) < 2:
-    raise ValueError(('filesize argument not understood, please include'
-                      ' a numeric value and magnitude indicator'))
-  magnitude = size_str[-1]
-  if not magnitude in ('B', 'K', 'M', 'G'):
-    raise ValueError(('filesize magnitude indicator not valid, must be "B",'
-                      '"K","M", or "G"'))
-  numeral = float(size_str[:-1])
-  if magnitude == 'K':
-    numeral *= 1024
-  elif magnitude == 'M':
-    numeral *= 1048576
-  elif magnitude == 'G':
-    numeral *= 1073741824
-  return int(numeral)
-
-
-class DirectoryZipper(object):
-  """Class to compress a directory and all its sub-directories."""
-
-  def __init__(self, output_path, base_dir, archive_size, enable_compression):
-    """DirectoryZipper constructor.
-
-    Args:
-      output_path: A string, the path to write the archives and index file to.
-      base_dir: A string, the directory to compress.
-      archive_size: An number, the maximum size, in bytes, of a single
-        archive file.
-      enable_compression: A boolean, whether or not compression should be
-        enabled, if disabled, the files will be written into an uncompresed
-        zip.
-    """
-    self.output_dir = output_path
-    self.current_archive = '0.zip'
-    self.base_path = base_dir
-    self.max_size = archive_size
-    self.compress = enable_compression
-
-    # Set index_fp to None, because we don't know what it will be yet.
-    self.index_fp = None
-
-  def StartCompress(self):
-    """Start compress of the directory.
-
-    This will start the compression process and write the archives to the
-    specified output directory. It will also produce an 'index.txt' file in the
-    output directory that maps from file to archive.
-    """
-    self.index_fp = open(os.path.join(self.output_dir, 'main.py'), 'w')
-    self.index_fp.write(divide_and_compress_constants.file_preamble)
-    os.path.walk(self.base_path, self.CompressDirectory, 1)
-    self.index_fp.write(divide_and_compress_constants.file_endpiece)
-    self.index_fp.close()
-
-  def RemoveLastFile(self, archive_path=None):
-    """Removes the last item in the archive.
-
-    This removes the last item in the archive by reading the items out of the
-    archive, adding them to a new archive, deleting the old archive, and
-    moving the new archive to the location of the old archive.
-
-    Args:
-      archive_path: Path to the archive to modify. This archive should not be
-        open elsewhere, since it will need to be deleted.
-
-    Returns:
-      A new ZipFile object that points to the modified archive file.
-    """
-    if archive_path is None:
-      archive_path = os.path.join(self.output_dir, self.current_archive)
-
-    # Move the old file and create a new one at its old location.
-    root, ext = os.path.splitext(archive_path)
-    old_archive = ''.join([root, '-old', ext])
-    os.rename(archive_path, old_archive)
-    old_fp = self.OpenZipFileAtPath(old_archive, mode='r')
-
-    # By default, store uncompressed.
-    compress_bit = zipfile.ZIP_STORED
-    if self.compress:
-      compress_bit = zipfile.ZIP_DEFLATED
-    new_fp = self.OpenZipFileAtPath(archive_path,
-                                    mode='w',
-                                    compress=compress_bit)
-
-    # Read the old archive in a new archive, except the last one.
-    for zip_member in old_fp.infolist()[:-1]:
-      new_fp.writestr(zip_member, old_fp.read(zip_member.filename))
-
-    # Close files and delete the old one.
-    old_fp.close()
-    new_fp.close()
-    os.unlink(old_archive)
-
-  def OpenZipFileAtPath(self, path, mode=None, compress=zipfile.ZIP_DEFLATED):
-    """This method is mainly for testing purposes, eg dependency injection."""
-    if mode is None:
-      if os.path.exists(path):
-        mode = 'a'
-      else:
-        mode = 'w'
-
-    if mode == 'r':
-      return zipfile.ZipFile(path, mode)
-    else:
-      return zipfile.ZipFile(path, mode, compress)
-
-  def CompressDirectory(self, unused_id, dir_path, dir_contents):
-    """Method to compress the given directory.
-
-    This method compresses the directory 'dir_path'. It will add to an existing
-    zip file that still has space and create new ones as necessary to keep zip
-    file sizes under the maximum specified size. This also writes out the
-    mapping of files to archives to the self.index_fp file descriptor
-
-    Args:
-      unused_id: A numeric identifier passed by the os.path.walk method, this
-        is not used by this method.
-      dir_path: A string, the path to the directory to compress.
-      dir_contents: A list of directory contents to be compressed.
-    """
-    # Construct the queue of files to be added that this method will use
-    # it seems that dir_contents is given in reverse alphabetical order,
-    # so put them in alphabetical order by inserting to front of the list.
-    dir_contents.sort()
-    zip_queue = []
-    for filename in dir_contents:
-      zip_queue.append(os.path.join(dir_path, filename))
-    compress_bit = zipfile.ZIP_DEFLATED
-    if not self.compress:
-      compress_bit = zipfile.ZIP_STORED
-
-    # Zip all files in this directory, adding to existing archives and creating
-    # as necessary.
-    while zip_queue:
-      target_file = zip_queue[0]
-      if os.path.isfile(target_file):
-        self.AddFileToArchive(target_file, compress_bit)
-
-        # See if adding the new file made our archive too large.
-        if not self.ArchiveIsValid():
-
-          # IF fixing fails, the last added file was to large, skip it
-          # ELSE the current archive filled normally, make a new one and try
-          #  adding the file again.
-          if not self.FixArchive('SIZE'):
-            zip_queue.pop(0)
-          else:
-            self.current_archive = '%i.zip' % (
-                int(self.current_archive[
-                    0:self.current_archive.rfind('.zip')]) + 1)
-        else:
-
-          # Write an index record if necessary.
-          self.WriteIndexRecord()
-          zip_queue.pop(0)
-      else:
-        zip_queue.pop(0)
-
-  def WriteIndexRecord(self):
-    """Write an index record to the index file.
-
-    Only write an index record if this is the first file to go into archive
-
-    Returns:
-      True if an archive record is written, False if it isn't.
-    """
-    archive = self.OpenZipFileAtPath(
-        os.path.join(self.output_dir, self.current_archive), 'r')
-    archive_index = archive.infolist()
-    if len(archive_index) == 1:
-      self.index_fp.write(
-          '[\'%s\', \'%s\'],\n' % (self.current_archive,
-                                   archive_index[0].filename))
-      archive.close()
-      return True
-    else:
-      archive.close()
-      return False
-
-  def FixArchive(self, problem):
-    """Make the archive compliant.
-
-    Args:
-      problem: An enum, the reason the archive is invalid.
-
-    Returns:
-      Whether the file(s) removed to fix the archive could conceivably be
-      in an archive, but for some reason can't be added to this one.
-    """
-    archive_path = os.path.join(self.output_dir, self.current_archive)
-    return_value = None
-
-    if problem == 'SIZE':
-      archive_obj = self.OpenZipFileAtPath(archive_path, mode='r')
-      num_archive_files = len(archive_obj.infolist())
-
-      # IF there is a single file, that means its too large to compress,
-      # delete the created archive
-      # ELSE do normal finalization.
-      if num_archive_files == 1:
-        print ('WARNING: %s%s is too large to store.' % (
-            self.base_path, archive_obj.infolist()[0].filename))
-        archive_obj.close()
-        os.unlink(archive_path)
-        return_value = False
-      else:
-        archive_obj.close()
-        self.RemoveLastFile(
-          os.path.join(self.output_dir, self.current_archive))
-        print 'Final archive size for %s is %i' % (
-            self.current_archive, os.path.getsize(archive_path))
-        return_value = True
-    return return_value
-
-  def AddFileToArchive(self, filepath, compress_bit):
-    """Add the file at filepath to the current archive.
-
-    Args:
-      filepath: A string, the path of the file to add.
-      compress_bit: A boolean, whether or not this file should be compressed
-        when added.
-
-    Returns:
-      True if the file could be added (typically because this is a file) or
-      False if it couldn't be added (typically because its a directory).
-    """
-    curr_archive_path = os.path.join(self.output_dir, self.current_archive)
-    if os.path.isfile(filepath) and not os.path.islink(filepath):
-      if os.path.getsize(filepath) > 1048576:
-        print 'Warning: %s is potentially too large to serve on GAE' % filepath
-      archive = self.OpenZipFileAtPath(curr_archive_path,
-                                       compress=compress_bit)
-      # Add the file to the archive.
-      archive.write(filepath, filepath[len(self.base_path):])
-      archive.close()
-      return True
-    else:
-      return False
-
-  def ArchiveIsValid(self):
-    """Check whether the archive is valid.
-
-    Currently this only checks whether the archive is under the required size.
-    The thought is that eventually this will do additional validation
-
-    Returns:
-      True if the archive is valid, False if its not.
-    """
-    archive_path = os.path.join(self.output_dir, self.current_archive)
-    return os.path.getsize(archive_path) <= self.max_size
-
-
-def main(argv):
-  parser = CreateOptionsParser()
-  (options, unused_args) = parser.parse_args(args=argv[1:])
-  VerifyArguments(options, parser)
-  zipper = DirectoryZipper(options.destination,
-                           options.sourcefiles,
-                           ParseSize(options.filesize),
-                           options.compress)
-  zipper.StartCompress()
-
-
-if __name__ == '__main__':
-  main(sys.argv)
diff --git a/scripts/divide_and_compress_constants.py b/scripts/divide_and_compress_constants.py
deleted file mode 100644
index 89a607d..0000000
--- a/scripts/divide_and_compress_constants.py
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/usr/bin/python2.4
-#
-# Copyright (C) 2008 Google Inc.
-#
-# 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.
-#
-
-"""Constants for the divide_and_compress script and DirectoryZipper class."""
-
-__author__ = 'jmatt@google.com (Justin Mattson)'
-
-file_preamble = """#!/usr/bin/env python
-#
-# Copyright 2008 Google Inc.
-#
-# 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.
-#
-
-import wsgiref.handlers
-from google.appengine.ext import zipserve
-from google.appengine.ext import webapp
-import memcache_zipserve
-
-class MainHandler(webapp.RequestHandler):
-
-  def get(self):
-    self.response.out.write('Hello world!')
-
-def main():
-  handler = memcache_zipserve.create_handler(["""
-
-file_endpiece = """
-    ])
-  application = webapp.WSGIApplication([('/(.*)', handler)], debug=False)
-  wsgiref.handlers.CGIHandler().run(application)
-
-if __name__ == '__main__':
-    main()
-"""
\ No newline at end of file
diff --git a/scripts/divide_and_compress_test.py b/scripts/divide_and_compress_test.py
deleted file mode 100755
index 426449a..0000000
--- a/scripts/divide_and_compress_test.py
+++ /dev/null
@@ -1,489 +0,0 @@
-#!/usr/bin/python2.4
-#
-# Copyright (C) 2008 Google Inc.
-#
-# 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.
-#
-
-"""Tests for divide_and_compress.py.
-
-TODO(jmatt): Add tests for module methods.
-"""
-
-__author__ = 'jmatt@google.com (Justin Mattson)'
-
-import os
-import stat
-import unittest
-import zipfile
-
-import divide_and_compress
-import mox
-
-
-class BagOfParts(object):
-  """Just a generic class that I can use to assign random attributes to."""
-
-  def NoOp(self):
-    x = 1
-
-    
-class ValidAndRemoveTests(unittest.TestCase):
-  """Test the ArchiveIsValid and RemoveLastFile methods."""
-  
-  def setUp(self):
-    """Prepare the test.
-
-    Construct some mock objects for use with the tests.
-    """
-    self.my_mox = mox.Mox()
-    file1 = BagOfParts()
-    file1.filename = 'file1.txt'
-    file1.contents = 'This is a test file'
-    file2 = BagOfParts()
-    file2.filename = 'file2.txt'
-    file2.contents = ('akdjfk;djsf;kljdslkfjslkdfjlsfjkdvn;kn;2389rtu4i'
-                      'tn;ghf8:89H*hp748FJw80fu9WJFpwf39pujens;fihkhjfk'
-                      'sdjfljkgsc n;iself')
-    self.files = {'file1': file1, 'file2': file2}
-
-  def tearDown(self):
-    """Remove any stubs we've created."""
-    self.my_mox.UnsetStubs()
-
-  def testArchiveIsValid(self):
-    """Test the DirectoryZipper.ArchiveIsValid method.
-
-    Run two tests, one that we expect to pass and one that we expect to fail
-    """
-    test_file_size = 1056730
-    self.my_mox.StubOutWithMock(os, 'stat')
-    os.stat('/foo/0.zip').AndReturn([test_file_size])
-    self.my_mox.StubOutWithMock(stat, 'ST_SIZE')
-    stat.ST_SIZE = 0
-    os.stat('/baz/0.zip').AndReturn([test_file_size])
-    mox.Replay(os.stat)
-    test_target = divide_and_compress.DirectoryZipper('/foo/', 'bar', 
-                                                      test_file_size - 1, True)
-
-    self.assertEqual(False, test_target.ArchiveIsValid(),
-                     msg=('ERROR: Test failed, ArchiveIsValid should have '
-                          'returned false, but returned true'))
-
-    test_target = divide_and_compress.DirectoryZipper('/baz/', 'bar',
-                                                      test_file_size + 1, True)
-    self.assertEqual(True, test_target.ArchiveIsValid(),
-                     msg=('ERROR: Test failed, ArchiveIsValid should have'
-                          ' returned true, but returned false'))
-
-  def testRemoveLastFile(self):
-    """Test DirectoryZipper.RemoveLastFile method.
-
-    Construct a ZipInfo mock object with two records, verify that write is
-    only called once on the new ZipFile object.
-    """
-    source = self.CreateZipSource()
-    dest = self.CreateZipDestination()
-    source_path = ''.join([os.getcwd(), '/0-old.zip'])
-    dest_path = ''.join([os.getcwd(), '/0.zip'])
-    test_target = divide_and_compress.DirectoryZipper(
-        ''.join([os.getcwd(), '/']), 'dummy', 1024*1024, True)
-    self.my_mox.StubOutWithMock(test_target, 'OpenZipFileAtPath')
-    test_target.OpenZipFileAtPath(source_path, mode='r').AndReturn(source)
-    test_target.OpenZipFileAtPath(dest_path,
-                                  compress=zipfile.ZIP_DEFLATED,
-                                  mode='w').AndReturn(dest)
-    self.my_mox.StubOutWithMock(os, 'rename')
-    os.rename(dest_path, source_path)
-    self.my_mox.StubOutWithMock(os, 'unlink')
-    os.unlink(source_path)
-    
-    self.my_mox.ReplayAll()
-    test_target.RemoveLastFile()
-    self.my_mox.VerifyAll()    
-
-  def CreateZipSource(self):
-    """Create a mock zip sourec object.
-
-    Read should only be called once, because the second file is the one
-    being removed.
-
-    Returns:
-      A configured mocked
-    """
-    
-    source_zip = self.my_mox.CreateMock(zipfile.ZipFile)
-    source_zip.infolist().AndReturn([self.files['file1'], self.files['file1']])
-    source_zip.infolist().AndReturn([self.files['file1'], self.files['file1']])
-    source_zip.read(self.files['file1'].filename).AndReturn(
-        self.files['file1'].contents)
-    source_zip.close()
-    return source_zip
-
-  def CreateZipDestination(self):
-    """Create mock destination zip.
-
-    Write should only be called once, because there are two files in the
-    source zip and we expect the second to be removed.
-
-    Returns:
-      A configured mocked
-    """
-    
-    dest_zip = mox.MockObject(zipfile.ZipFile)
-    dest_zip.writestr(self.files['file1'].filename,
-                      self.files['file1'].contents)
-    dest_zip.close()
-    return dest_zip
-
-
-class FixArchiveTests(unittest.TestCase):
-  """Tests for the DirectoryZipper.FixArchive method."""
-  
-  def setUp(self):
-    """Create a mock file object."""
-    self.my_mox = mox.Mox()
-    self.file1 = BagOfParts()
-    self.file1.filename = 'file1.txt'
-    self.file1.contents = 'This is a test file'
-
-  def tearDown(self):
-    """Unset any mocks that we've created."""
-    self.my_mox.UnsetStubs()
-
-  def _InitMultiFileData(self):
-    """Create an array of mock file objects.
-
-    Create three mock file objects that we can use for testing.
-    """
-    self.multi_file_dir = []
-    
-    file1 = BagOfParts()
-    file1.filename = 'file1.txt'
-    file1.contents = 'kjaskl;jkdjfkja;kjsnbvjnvnbuewklriujalvjsd'
-    self.multi_file_dir.append(file1)
-
-    file2 = BagOfParts()
-    file2.filename = 'file2.txt'
-    file2.contents = ('He entered the room and there in the center, it was.'
-                      ' Looking upon the thing, suddenly he could not remember'
-                      ' whether he had actually seen it before or whether'
-                      ' his memory of it was merely the effect of something'
-                      ' so often being imagined that it had long since become '
-                      ' manifest in his mind.')
-    self.multi_file_dir.append(file2)
-
-    file3 = BagOfParts()
-    file3.filename = 'file3.txt'
-    file3.contents = 'Whoa, what is \'file2.txt\' all about?'
-    self.multi_file_dir.append(file3)
-    
-  def testSingleFileArchive(self):
-    """Test behavior of FixArchive when the archive has a single member.
-
-    We expect that when this method is called with an archive that has a
-    single member that it will return False and unlink the archive.
-    """
-    test_target = divide_and_compress.DirectoryZipper(
-        ''.join([os.getcwd(), '/']), 'dummy', 1024*1024, True)
-    self.my_mox.StubOutWithMock(test_target, 'OpenZipFileAtPath')
-    test_target.OpenZipFileAtPath(
-        ''.join([os.getcwd(), '/0.zip']), mode='r').AndReturn(
-            self.CreateSingleFileMock())
-    self.my_mox.StubOutWithMock(os, 'unlink')
-    os.unlink(''.join([os.getcwd(), '/0.zip']))
-    self.my_mox.ReplayAll()
-    self.assertEqual(False, test_target.FixArchive('SIZE'))
-    self.my_mox.VerifyAll()
-
-  def CreateSingleFileMock(self):
-    """Create a mock ZipFile object for testSingleFileArchive.
-
-    We just need it to return a single member infolist twice
-
-    Returns:
-      A configured mock object
-    """
-    mock_zip = self.my_mox.CreateMock(zipfile.ZipFile)
-    mock_zip.infolist().AndReturn([self.file1])
-    mock_zip.infolist().AndReturn([self.file1])
-    mock_zip.close()
-    return mock_zip
-
-  def testMultiFileArchive(self):
-    """Test behavior of DirectoryZipper.FixArchive with a multi-file archive.
-
-    We expect that FixArchive will rename the old archive, adding '-old' before
-    '.zip', read all the members except the last one of '-old' into a new
-    archive with the same name as the original, and then unlink the '-old' copy
-    """
-    test_target = divide_and_compress.DirectoryZipper(
-        ''.join([os.getcwd(), '/']), 'dummy', 1024*1024, True)
-    self.my_mox.StubOutWithMock(test_target, 'OpenZipFileAtPath')
-    test_target.OpenZipFileAtPath(
-        ''.join([os.getcwd(), '/0.zip']), mode='r').AndReturn(
-            self.CreateMultiFileMock())
-    self.my_mox.StubOutWithMock(test_target, 'RemoveLastFile')
-    test_target.RemoveLastFile(''.join([os.getcwd(), '/0.zip']))
-    self.my_mox.StubOutWithMock(os, 'stat')
-    os.stat(''.join([os.getcwd(), '/0.zip'])).AndReturn([49302])
-    self.my_mox.StubOutWithMock(stat, 'ST_SIZE')
-    stat.ST_SIZE = 0
-    self.my_mox.ReplayAll()
-    self.assertEqual(True, test_target.FixArchive('SIZE'))
-    self.my_mox.VerifyAll()
-
-  def CreateMultiFileMock(self):
-    """Create mock ZipFile object for use with testMultiFileArchive.
-
-    The mock just needs to return the infolist mock that is prepared in
-    InitMultiFileData()
-
-    Returns:
-      A configured mock object
-    """
-    self._InitMultiFileData()
-    mock_zip = self.my_mox.CreateMock(zipfile.ZipFile)
-    mock_zip.infolist().AndReturn(self.multi_file_dir)
-    mock_zip.close()
-    return mock_zip
-
-
-class AddFileToArchiveTest(unittest.TestCase):
-  """Test behavior of method to add a file to an archive."""
-
-  def setUp(self):
-    """Setup the arguments for the DirectoryZipper object."""
-    self.my_mox = mox.Mox()
-    self.output_dir = '%s/' % os.getcwd()
-    self.file_to_add = 'file.txt'
-    self.input_dir = '/foo/bar/baz/'
-
-  def tearDown(self):
-    self.my_mox.UnsetStubs()
-
-  def testAddFileToArchive(self):
-    """Test the DirectoryZipper.AddFileToArchive method.
-
-    We are testing a pretty trivial method, we just expect it to look at the
-    file its adding, so that it possible can through out a warning.
-    """
-    test_target = divide_and_compress.DirectoryZipper(self.output_dir,
-                                                      self.input_dir,
-                                                      1024*1024, True)
-    self.my_mox.StubOutWithMock(test_target, 'OpenZipFileAtPath')
-    archive_mock = self.CreateArchiveMock()
-    test_target.OpenZipFileAtPath(
-        ''.join([self.output_dir, '0.zip']),
-        compress=zipfile.ZIP_DEFLATED).AndReturn(archive_mock)
-    self.StubOutOsModule()
-    self.my_mox.ReplayAll()
-    test_target.AddFileToArchive(''.join([self.input_dir, self.file_to_add]),
-                                 zipfile.ZIP_DEFLATED)
-    self.my_mox.VerifyAll()
-
-  def StubOutOsModule(self):
-    """Create a mock for the os.path and os.stat objects.
-
-    Create a stub that will return the type (file or directory) and size of the
-    object that is to be added.
-    """
-    self.my_mox.StubOutWithMock(os.path, 'isfile')
-    os.path.isfile(''.join([self.input_dir, self.file_to_add])).AndReturn(True)
-    self.my_mox.StubOutWithMock(os, 'stat')
-    os.stat(''.join([self.input_dir, self.file_to_add])).AndReturn([39480])
-    self.my_mox.StubOutWithMock(stat, 'ST_SIZE')
-    stat.ST_SIZE = 0
-    
-  def CreateArchiveMock(self):
-    """Create a mock ZipFile for use with testAddFileToArchive.
-
-    Just verify that write is called with the file we expect and that the
-    archive is closed after the file addition
-
-    Returns:
-      A configured mock object
-    """
-    archive_mock = self.my_mox.CreateMock(zipfile.ZipFile)
-    archive_mock.write(''.join([self.input_dir, self.file_to_add]),
-                       self.file_to_add)
-    archive_mock.close()
-    return archive_mock
-
-
-class CompressDirectoryTest(unittest.TestCase):
-  """Test the master method of the class.
-
-  Testing with the following directory structure.
-  /dir1/
-  /dir1/file1.txt
-  /dir1/file2.txt
-  /dir1/dir2/
-  /dir1/dir2/dir3/
-  /dir1/dir2/dir4/
-  /dir1/dir2/dir4/file3.txt
-  /dir1/dir5/
-  /dir1/dir5/file4.txt
-  /dir1/dir5/file5.txt
-  /dir1/dir5/file6.txt
-  /dir1/dir5/file7.txt
-  /dir1/dir6/
-  /dir1/dir6/file8.txt
-
-  file1.txt., file2.txt, file3.txt should be in 0.zip
-  file4.txt should be in 1.zip
-  file5.txt, file6.txt should be in 2.zip
-  file7.txt will not be stored since it will be too large compressed
-  file8.txt should b in 3.zip
-  """
-
-  def setUp(self):
-    """Setup all the mocks for this test."""
-    self.my_mox = mox.Mox()
-
-    self.base_dir = '/dir1'
-    self.output_path = '/out_dir/'
-    self.test_target = divide_and_compress.DirectoryZipper(
-        self.output_path, self.base_dir, 1024*1024, True)
-    
-    self.InitArgLists()
-    self.InitOsDotPath()
-    self.InitArchiveIsValid()
-    self.InitWriteIndexRecord()
-    self.InitAddFileToArchive()
-
-  def tearDown(self):
-    self.my_mox.UnsetStubs()
-
-  def testCompressDirectory(self):
-    """Test the DirectoryZipper.CompressDirectory method."""
-    self.my_mox.ReplayAll()
-    for arguments in self.argument_lists:
-      self.test_target.CompressDirectory(None, arguments[0], arguments[1])
-    self.my_mox.VerifyAll()
-
-  def InitAddFileToArchive(self):
-    """Setup mock for DirectoryZipper.AddFileToArchive.
-
-    Make sure that the files are added in the order we expect.
-    """
-    self.my_mox.StubOutWithMock(self.test_target, 'AddFileToArchive')
-    self.test_target.AddFileToArchive('/dir1/file1.txt', zipfile.ZIP_DEFLATED)
-    self.test_target.AddFileToArchive('/dir1/file2.txt', zipfile.ZIP_DEFLATED)
-    self.test_target.AddFileToArchive('/dir1/dir2/dir4/file3.txt',
-                                      zipfile.ZIP_DEFLATED)
-    self.test_target.AddFileToArchive('/dir1/dir5/file4.txt',
-                                      zipfile.ZIP_DEFLATED)
-    self.test_target.AddFileToArchive('/dir1/dir5/file4.txt',
-                                      zipfile.ZIP_DEFLATED)
-    self.test_target.AddFileToArchive('/dir1/dir5/file5.txt',
-                                      zipfile.ZIP_DEFLATED)
-    self.test_target.AddFileToArchive('/dir1/dir5/file5.txt',
-                                      zipfile.ZIP_DEFLATED)
-    self.test_target.AddFileToArchive('/dir1/dir5/file6.txt',
-                                      zipfile.ZIP_DEFLATED)
-    self.test_target.AddFileToArchive('/dir1/dir5/file7.txt',
-                                      zipfile.ZIP_DEFLATED)
-    self.test_target.AddFileToArchive('/dir1/dir5/file7.txt',
-                                      zipfile.ZIP_DEFLATED)
-    self.test_target.AddFileToArchive('/dir1/dir6/file8.txt',
-                                      zipfile.ZIP_DEFLATED)
-  
-  def InitWriteIndexRecord(self):
-    """Setup mock for DirectoryZipper.WriteIndexRecord."""
-    self.my_mox.StubOutWithMock(self.test_target, 'WriteIndexRecord')
-
-    # we are trying to compress 8 files, but we should only attempt to
-    # write an index record 7 times, because one file is too large to be stored
-    self.test_target.WriteIndexRecord().AndReturn(True)
-    self.test_target.WriteIndexRecord().AndReturn(False)
-    self.test_target.WriteIndexRecord().AndReturn(False)
-    self.test_target.WriteIndexRecord().AndReturn(True)
-    self.test_target.WriteIndexRecord().AndReturn(True)
-    self.test_target.WriteIndexRecord().AndReturn(False)
-    self.test_target.WriteIndexRecord().AndReturn(True)
-
-  def InitArchiveIsValid(self):
-    """Mock out DirectoryZipper.ArchiveIsValid and DirectoryZipper.FixArchive.
-
-    Mock these methods out such that file1, file2, and file3 go into one
-    archive. file4 then goes into the next archive, file5 and file6 in the
-    next, file 7 should appear too large to compress into an archive, and
-    file8 goes into the final archive
-    """
-    self.my_mox.StubOutWithMock(self.test_target, 'ArchiveIsValid')
-    self.my_mox.StubOutWithMock(self.test_target, 'FixArchive')
-    self.test_target.ArchiveIsValid().AndReturn(True)
-    self.test_target.ArchiveIsValid().AndReturn(True)
-    self.test_target.ArchiveIsValid().AndReturn(True)
-
-    # should be file4.txt
-    self.test_target.ArchiveIsValid().AndReturn(False)
-    self.test_target.FixArchive('SIZE').AndReturn(True)
-    self.test_target.ArchiveIsValid().AndReturn(True)
-
-    # should be file5.txt
-    self.test_target.ArchiveIsValid().AndReturn(False)
-    self.test_target.FixArchive('SIZE').AndReturn(True)
-    self.test_target.ArchiveIsValid().AndReturn(True)
-    self.test_target.ArchiveIsValid().AndReturn(True)
-
-    # should be file7.txt
-    self.test_target.ArchiveIsValid().AndReturn(False)
-    self.test_target.FixArchive('SIZE').AndReturn(True)
-    self.test_target.ArchiveIsValid().AndReturn(False)
-    self.test_target.FixArchive('SIZE').AndReturn(False)
-    self.test_target.ArchiveIsValid().AndReturn(True)
-    
-  def InitOsDotPath(self):
-    """Mock out os.path.isfile.
-
-    Mock this out so the things we want to appear as files appear as files and
-    the things we want to appear as directories appear as directories. Also
-    make sure that the order of file visits is as we expect (which is why
-    InAnyOrder isn't used here).
-    """
-    self.my_mox.StubOutWithMock(os.path, 'isfile')
-    os.path.isfile('/dir1/dir2').AndReturn(False)
-    os.path.isfile('/dir1/dir5').AndReturn(False)
-    os.path.isfile('/dir1/dir6').AndReturn(False)
-    os.path.isfile('/dir1/file1.txt').AndReturn(True)
-    os.path.isfile('/dir1/file2.txt').AndReturn(True)
-    os.path.isfile('/dir1/dir2/dir3').AndReturn(False)
-    os.path.isfile('/dir1/dir2/dir4').AndReturn(False)
-    os.path.isfile('/dir1/dir2/dir4/file3.txt').AndReturn(True)
-    os.path.isfile('/dir1/dir5/file4.txt').AndReturn(True)
-    os.path.isfile('/dir1/dir5/file4.txt').AndReturn(True)
-    os.path.isfile('/dir1/dir5/file5.txt').AndReturn(True)
-    os.path.isfile('/dir1/dir5/file5.txt').AndReturn(True)
-    os.path.isfile('/dir1/dir5/file6.txt').AndReturn(True)
-    os.path.isfile('/dir1/dir5/file7.txt').AndReturn(True)
-    os.path.isfile('/dir1/dir5/file7.txt').AndReturn(True)
-    os.path.isfile('/dir1/dir6/file8.txt').AndReturn(True)
-
-  def InitArgLists(self):
-    """Create the directory path => directory contents mappings."""
-    self.argument_lists = []
-    self.argument_lists.append(['/dir1',
-                                ['file1.txt', 'file2.txt', 'dir2', 'dir5',
-                                 'dir6']])
-    self.argument_lists.append(['/dir1/dir2', ['dir3', 'dir4']])
-    self.argument_lists.append(['/dir1/dir2/dir3', []])
-    self.argument_lists.append(['/dir1/dir2/dir4', ['file3.txt']])
-    self.argument_lists.append(['/dir1/dir5',
-                                ['file4.txt', 'file5.txt', 'file6.txt',
-                                 'file7.txt']])
-    self.argument_lists.append(['/dir1/dir6', ['file8.txt']])
-      
-if __name__ == '__main__':
-  unittest.main()
diff --git a/scripts/stack_core.py b/scripts/stack_core.py
index 28a5977..31b68be 100755
--- a/scripts/stack_core.py
+++ b/scripts/stack_core.py
@@ -23,9 +23,12 @@
 def PrintTraceLines(trace_lines):
   """Print back trace."""
   maxlen = max(map(lambda tl: len(tl[1]), trace_lines))
+  spacing = ""
+  if symbol.ARCH == "arm64" or symbol.ARCH == "mips64" or symbol.ARCH == "x86_64":
+    spacing = "        "
   print
   print "Stack Trace:"
-  print "  RELADDR   " + "FUNCTION".ljust(maxlen) + "  FILE:LINE"
+  print "  RELADDR   " + spacing + "FUNCTION".ljust(maxlen) + "  FILE:LINE"
   for tl in trace_lines:
     (addr, symbol_with_offset, location) = tl
     print "  %8s  %s  %s" % (addr, symbol_with_offset.ljust(maxlen), location)
@@ -58,19 +61,35 @@
   print
   print "-----------------------------------------------------\n"
 
+def CleanLine(ln):
+  # AndroidFeedback adds zero width spaces into its crash reports. These
+  # should be removed or the regular expresssions will fail to match.
+  return unicode(ln, errors='ignore')
+
 def ConvertTrace(lines):
   """Convert strings containing native crash to a stack."""
+  lines = map(CleanLine, lines)
+
   process_info_line = re.compile("(pid: [0-9]+, tid: [0-9]+.*)")
+  abi_line = re.compile("(ABI: \'(.*)\')")
   signal_line = re.compile("(signal [0-9]+ \(.*\).*)")
-  register_line = re.compile("(([ ]*[0-9a-z]{2} [0-9a-f]{8}){4})")
+  abort_message_line = re.compile("(Abort message: '.*')")
   thread_line = re.compile("(.*)(\-\-\- ){15}\-\-\-")
   dalvik_jni_thread_line = re.compile("(\".*\" prio=[0-9]+ tid=[0-9]+ NATIVE.*)")
   dalvik_native_thread_line = re.compile("(\".*\" sysTid=[0-9]+ nice=[0-9]+.*)")
 
+  for line in lines:
+    abi_header = abi_line.search(line)
+    if abi_header:
+      symbol.ARCH = abi_header.group(2)
+      break
+
   width = "{8}"
-  if symbol.ARCH == "arm64" or symbol.ARCH == "x86_64":
+  if symbol.ARCH == "arm64" or symbol.ARCH == "mips64" or symbol.ARCH == "x86_64":
     width = "{16}"
 
+  register_line = re.compile("(([ ]*[0-9a-z]{2} +[0-9a-f]" + width + "){4})")
+
   # Note that both trace and value line matching allow for variable amounts of
   # whitespace (e.g. \t). This is because the we want to allow for the stack
   # tool to operate on AndroidFeedback provided system logs. AndroidFeedback
@@ -107,18 +126,17 @@
   value_lines = []
   last_frame = -1
 
-  for ln in lines:
-    # AndroidFeedback adds zero width spaces into its crash reports. These
-    # should be removed or the regular expresssions will fail to match.
-    line = unicode(ln, errors='ignore')
+  for line in lines:
     process_header = process_info_line.search(line)
     signal_header = signal_line.search(line)
-    register_header = register_line.search(line)
+    abort_message_header = abort_message_line.search(line)
     thread_header = thread_line.search(line)
+    register_header = register_line.search(line)
+    abi_header = abi_line.search(line)
     dalvik_jni_thread_header = dalvik_jni_thread_line.search(line)
     dalvik_native_thread_header = dalvik_native_thread_line.search(line)
-    if process_header or signal_header or register_header or thread_header \
-        or dalvik_jni_thread_header or dalvik_native_thread_header:
+    if process_header or signal_header or abort_message_header or thread_header or abi_header or \
+        register_header or dalvik_jni_thread_header or dalvik_native_thread_header:
       if trace_lines or value_lines:
         PrintOutput(trace_lines, value_lines)
         PrintDivider()
@@ -129,6 +147,8 @@
         print process_header.group(1)
       if signal_header:
         print signal_header.group(1)
+      if abort_message_header:
+        print abort_message_header.group(1)
       if register_header:
         print register_header.group(1)
       if thread_header:
@@ -137,6 +157,8 @@
         print dalvik_jni_thread_header.group(1)
       if dalvik_native_thread_header:
         print dalvik_native_thread_header.group(1)
+      if abi_header:
+        print abi_header.group(1)
       continue
     if trace_line.match(line):
       match = trace_line.match(line)
diff --git a/scripts/symbol.py b/scripts/symbol.py
index 8c1fa68..a10621a 100755
--- a/scripts/symbol.py
+++ b/scripts/symbol.py
@@ -19,6 +19,7 @@
 The information can include symbol names, offsets, and source locations.
 """
 
+import glob
 import os
 import re
 import subprocess
@@ -43,73 +44,45 @@
 
 ARCH = "arm"
 
-TOOLCHAIN_INFO = None
+TOOLCHAIN = None
 
-def Uname():
-  """'uname' for constructing prebuilt/<...> and out/host/<...> paths."""
-  uname = os.uname()[0]
-  if uname == "Darwin":
-    proc = os.uname()[-1]
-    if proc == "i386" or proc == "x86_64":
-      return "darwin-x86"
-    return "darwin-ppc"
-  if uname == "Linux":
-    return "linux-x86"
-  return uname
-
-def ToolPath(tool, toolchain_info=None):
-  """Return a full qualified path to the specified tool"""
-  if not toolchain_info:
-    toolchain_info = FindToolchain()
-  (label, platform, target) = toolchain_info
-  return os.path.join(ANDROID_BUILD_TOP, "prebuilts/gcc", Uname(), platform, label, "bin",
-                     target + "-" + tool)
+def ToolPath(tool, toolchain=None):
+  """Return a fully-qualified path to the specified tool"""
+  if not toolchain:
+    toolchain = FindToolchain()
+  return glob.glob(os.path.join(toolchain, "*-" + tool))[0]
 
 def FindToolchain():
-  """Look for the latest available toolchain
+  """Returns the toolchain matching ARCH. Assumes that you're lunched
+  such that the necessary toolchain is either your primary or secondary.
+  TODO: we could make this 'just work' for most users by just globbing the
+  newest toolchains for every architecture out of prebuilts/, but other
+  parts of this tool assume you're lunched correctly anyway."""
+  global TOOLCHAIN
+  if TOOLCHAIN is not None:
+    return TOOLCHAIN
 
-  Args:
-    None
+  # We say "arm64", GCC says "aarch64".
+  gcc_arch = ARCH
+  if gcc_arch == "arm64":
+    gcc_arch = "aarch64"
 
-  Returns:
-    A pair of strings containing toolchain label and target prefix.
-  """
-  global TOOLCHAIN_INFO
-  if TOOLCHAIN_INFO is not None:
-    return TOOLCHAIN_INFO
+  tc1 = os.environ["ANDROID_TOOLCHAIN"]
+  tc2 = os.environ["ANDROID_TOOLCHAIN_2ND_ARCH"]
 
-  ## Known toolchains, newer ones in the front.
-  if ARCH == "arm64":
-    gcc_version = os.environ["TARGET_GCC_VERSION"]
-    known_toolchains = [
-      ("aarch64-linux-android-" + gcc_version, "aarch64", "aarch64-linux-android")
-    ]
-  elif ARCH == "arm":
-    gcc_version = os.environ["TARGET_GCC_VERSION"]
-    known_toolchains = [
-      ("arm-linux-androideabi-" + gcc_version, "arm", "arm-linux-androideabi"),
-    ]
-  elif ARCH =="x86":
-    known_toolchains = [
-      ("i686-android-linux-4.4.3", "x86", "i686-android-linux")
-    ]
-  elif ARCH == "mips":
-    gcc_version = os.environ["TARGET_GCC_VERSION"]
-    known_toolchains = [
-      ("mipsel-linux-android-" + gcc_version, "mips", "mipsel-linux-android")
-    ]
+  if (gcc_arch + "/" + gcc_arch + "-") in tc1:
+    toolchain = tc1
+  elif (gcc_arch + "/" + gcc_arch + "-") in tc2:
+    toolchain = tc2
   else:
-    known_toolchains = []
+    raise Exception("Could not find tool chain for %s" % (gcc_arch))
 
-  # Look for addr2line to check for valid toolchain path.
-  for (label, platform, target) in known_toolchains:
-    toolchain_info = (label, platform, target);
-    if os.path.exists(ToolPath("addr2line", toolchain_info)):
-      TOOLCHAIN_INFO = toolchain_info
-      print "Using toolchain from :" + ToolPath("", TOOLCHAIN_INFO)
-      return toolchain_info
+  if not os.path.exists(ToolPath("addr2line", toolchain)):
+    raise Exception("No addr2line for %s" % (toolchain))
 
-  raise Exception("Could not find tool chain")
+  TOOLCHAIN = toolchain
+  print "Using toolchain from: %s" % TOOLCHAIN
+  return TOOLCHAIN
 
 def SymbolInformation(lib, addr):
   """Look up symbol information about an address.
@@ -206,7 +179,6 @@
   if not os.path.exists(symbols):
     return None
 
-  (label, platform, target) = FindToolchain()
   cmd = [ToolPath("addr2line"), "--functions", "--inlines",
       "--demangle", "--exe=" + symbols]
   child = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
diff --git a/sdk/api-versions.xml b/sdk/api-versions.xml
deleted file mode 100644
index 5576def..0000000
--- a/sdk/api-versions.xml
+++ /dev/null
@@ -1,55564 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<api version="1">
-	<class name="android/Manifest" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/Manifest$permission" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="ACCESS_CHECKIN_PROPERTIES" />
-		<field name="ACCESS_COARSE_LOCATION" />
-		<field name="ACCESS_FINE_LOCATION" />
-		<field name="ACCESS_LOCATION_EXTRA_COMMANDS" />
-		<field name="ACCESS_MOCK_LOCATION" />
-		<field name="ACCESS_NETWORK_STATE" />
-		<field name="ACCESS_SURFACE_FLINGER" />
-		<field name="ACCESS_WIFI_STATE" />
-		<field name="ACCOUNT_MANAGER" since="5" />
-		<field name="ADD_SYSTEM_SERVICE" />
-		<field name="ADD_VOICEMAIL" since="14" />
-		<field name="AUTHENTICATE_ACCOUNTS" since="5" />
-		<field name="BATTERY_STATS" />
-		<field name="BIND_ACCESSIBILITY_SERVICE" since="16" />
-		<field name="BIND_APPWIDGET" since="3" />
-		<field name="BIND_DEVICE_ADMIN" since="8" />
-		<field name="BIND_INPUT_METHOD" since="3" />
-		<field name="BIND_NFC_SERVICE" since="19" />
-		<field name="BIND_NOTIFICATION_LISTENER_SERVICE" since="18" />
-		<field name="BIND_PRINT_SERVICE" since="19" />
-		<field name="BIND_REMOTEVIEWS" since="11" />
-		<field name="BIND_TEXT_SERVICE" since="14" />
-		<field name="BIND_TV_INPUT" since="21" />
-		<field name="BIND_VOICE_INTERACTION" since="21" />
-		<field name="BIND_VPN_SERVICE" since="14" />
-		<field name="BIND_WALLPAPER" since="8" />
-		<field name="BLUETOOTH" />
-		<field name="BLUETOOTH_ADMIN" />
-		<field name="BLUETOOTH_PRIVILEGED" since="19" />
-		<field name="BODY_SENSORS" since="20" />
-		<field name="BRICK" />
-		<field name="BROADCAST_PACKAGE_REMOVED" />
-		<field name="BROADCAST_SMS" since="2" />
-		<field name="BROADCAST_STICKY" />
-		<field name="BROADCAST_WAP_PUSH" since="2" />
-		<field name="CALL_PHONE" />
-		<field name="CALL_PRIVILEGED" />
-		<field name="CAMERA" />
-		<field name="CAPTURE_AUDIO_OUTPUT" since="19" />
-		<field name="CAPTURE_SECURE_VIDEO_OUTPUT" since="19" />
-		<field name="CAPTURE_VIDEO_OUTPUT" since="19" />
-		<field name="CHANGE_COMPONENT_ENABLED_STATE" />
-		<field name="CHANGE_CONFIGURATION" />
-		<field name="CHANGE_NETWORK_STATE" />
-		<field name="CHANGE_WIFI_MULTICAST_STATE" since="4" />
-		<field name="CHANGE_WIFI_STATE" />
-		<field name="CLEAR_APP_CACHE" />
-		<field name="CLEAR_APP_USER_DATA" />
-		<field name="CONTROL_LOCATION_UPDATES" />
-		<field name="DELETE_CACHE_FILES" />
-		<field name="DELETE_PACKAGES" />
-		<field name="DEVICE_POWER" />
-		<field name="DIAGNOSTIC" />
-		<field name="DISABLE_KEYGUARD" />
-		<field name="DUMP" />
-		<field name="EXPAND_STATUS_BAR" />
-		<field name="FACTORY_TEST" />
-		<field name="FLASHLIGHT" />
-		<field name="FORCE_BACK" />
-		<field name="FOTA_UPDATE" />
-		<field name="GET_ACCOUNTS" />
-		<field name="GET_PACKAGE_SIZE" />
-		<field name="GET_TASKS" />
-		<field name="GET_TOP_ACTIVITY_INFO" since="18" />
-		<field name="GLOBAL_SEARCH" since="4" />
-		<field name="HARDWARE_TEST" />
-		<field name="INJECT_EVENTS" />
-		<field name="INSTALL_LOCATION_PROVIDER" since="4" />
-		<field name="INSTALL_PACKAGES" />
-		<field name="INSTALL_SHORTCUT" since="19" />
-		<field name="INTERNAL_SYSTEM_WINDOW" />
-		<field name="INTERNET" />
-		<field name="KILL_BACKGROUND_PROCESSES" since="8" />
-		<field name="LOCATION_HARDWARE" since="18" />
-		<field name="MANAGE_ACCOUNTS" since="5" />
-		<field name="MANAGE_APP_TOKENS" />
-		<field name="MANAGE_DOCUMENTS" since="19" />
-		<field name="MASTER_CLEAR" />
-		<field name="MEDIA_CONTENT_CONTROL" since="19" />
-		<field name="MODIFY_AUDIO_SETTINGS" />
-		<field name="MODIFY_PHONE_STATE" />
-		<field name="MOUNT_FORMAT_FILESYSTEMS" since="3" />
-		<field name="MOUNT_UNMOUNT_FILESYSTEMS" />
-		<field name="NFC" since="9" />
-		<field name="PERSISTENT_ACTIVITY" />
-		<field name="PROCESS_OUTGOING_CALLS" />
-		<field name="READ_CALENDAR" />
-		<field name="READ_CALL_LOG" since="16" />
-		<field name="READ_CONTACTS" />
-		<field name="READ_EXTERNAL_STORAGE" since="16" />
-		<field name="READ_FRAME_BUFFER" />
-		<field name="READ_HISTORY_BOOKMARKS" since="4" />
-		<field name="READ_INPUT_STATE" />
-		<field name="READ_LOGS" />
-		<field name="READ_OWNER_DATA" />
-		<field name="READ_PHONE_STATE" />
-		<field name="READ_PROFILE" since="14" />
-		<field name="READ_SMS" />
-		<field name="READ_SOCIAL_STREAM" since="15" />
-		<field name="READ_SYNC_SETTINGS" />
-		<field name="READ_SYNC_STATS" />
-		<field name="READ_USER_DICTIONARY" since="16" />
-		<field name="REBOOT" />
-		<field name="RECEIVE_BOOT_COMPLETED" />
-		<field name="RECEIVE_MMS" />
-		<field name="RECEIVE_SMS" />
-		<field name="RECEIVE_WAP_PUSH" />
-		<field name="RECORD_AUDIO" />
-		<field name="REORDER_TASKS" />
-		<field name="RESTART_PACKAGES" />
-		<field name="SEND_RESPOND_VIA_MESSAGE" since="18" />
-		<field name="SEND_SMS" />
-		<field name="SET_ACTIVITY_WATCHER" />
-		<field name="SET_ALARM" since="9" />
-		<field name="SET_ALWAYS_FINISH" />
-		<field name="SET_ANIMATION_SCALE" />
-		<field name="SET_DEBUG_APP" />
-		<field name="SET_ORIENTATION" />
-		<field name="SET_POINTER_SPEED" since="13" />
-		<field name="SET_PREFERRED_APPLICATIONS" />
-		<field name="SET_PROCESS_FOREGROUND" />
-		<field name="SET_PROCESS_LIMIT" />
-		<field name="SET_TIME" since="8" />
-		<field name="SET_TIME_ZONE" />
-		<field name="SET_WALLPAPER" />
-		<field name="SET_WALLPAPER_HINTS" />
-		<field name="SIGNAL_PERSISTENT_PROCESSES" />
-		<field name="STATUS_BAR" />
-		<field name="SUBSCRIBED_FEEDS_READ" />
-		<field name="SUBSCRIBED_FEEDS_WRITE" />
-		<field name="SYSTEM_ALERT_WINDOW" />
-		<field name="TRANSMIT_IR" since="19" />
-		<field name="UNINSTALL_SHORTCUT" since="19" />
-		<field name="UPDATE_DEVICE_STATS" since="3" />
-		<field name="USE_CREDENTIALS" since="5" />
-		<field name="USE_SIP" since="9" />
-		<field name="VIBRATE" />
-		<field name="WAKE_LOCK" />
-		<field name="WRITE_APN_SETTINGS" />
-		<field name="WRITE_CALENDAR" />
-		<field name="WRITE_CALL_LOG" since="16" />
-		<field name="WRITE_CONTACTS" />
-		<field name="WRITE_EXTERNAL_STORAGE" since="4" />
-		<field name="WRITE_GSERVICES" />
-		<field name="WRITE_HISTORY_BOOKMARKS" since="4" />
-		<field name="WRITE_OWNER_DATA" />
-		<field name="WRITE_PROFILE" since="14" />
-		<field name="WRITE_SECURE_SETTINGS" since="3" />
-		<field name="WRITE_SETTINGS" />
-		<field name="WRITE_SMS" />
-		<field name="WRITE_SOCIAL_STREAM" since="15" />
-		<field name="WRITE_SYNC_SETTINGS" />
-		<field name="WRITE_USER_DICTIONARY" since="16" />
-	</class>
-	<class name="android/Manifest$permission_group" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="ACCESSIBILITY_FEATURES" since="18" />
-		<field name="ACCOUNTS" />
-		<field name="AFFECTS_BATTERY" since="17" />
-		<field name="APP_INFO" since="17" />
-		<field name="AUDIO_SETTINGS" since="17" />
-		<field name="BLUETOOTH_NETWORK" since="17" />
-		<field name="BOOKMARKS" since="17" />
-		<field name="CALENDAR" since="17" />
-		<field name="CAMERA" since="17" />
-		<field name="COST_MONEY" />
-		<field name="DEVELOPMENT_TOOLS" />
-		<field name="DEVICE_ALARMS" since="17" />
-		<field name="DISPLAY" since="17" />
-		<field name="HARDWARE_CONTROLS" />
-		<field name="LOCATION" />
-		<field name="MESSAGES" />
-		<field name="MICROPHONE" since="17" />
-		<field name="NETWORK" />
-		<field name="PERSONAL_INFO" />
-		<field name="PHONE_CALLS" />
-		<field name="SCREENLOCK" since="17" />
-		<field name="SOCIAL_INFO" since="17" />
-		<field name="STATUS_BAR" since="17" />
-		<field name="STORAGE" since="4" />
-		<field name="SYNC_SETTINGS" since="17" />
-		<field name="SYSTEM_CLOCK" since="17" />
-		<field name="SYSTEM_TOOLS" />
-		<field name="USER_DICTIONARY" since="17" />
-		<field name="VOICEMAIL" since="17" />
-		<field name="WALLPAPER" since="17" />
-		<field name="WRITE_USER_DICTIONARY" since="17" />
-	</class>
-	<class name="android/R" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/R$anim" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="accelerate_decelerate_interpolator" />
-		<field name="accelerate_interpolator" />
-		<field name="anticipate_interpolator" since="4" />
-		<field name="anticipate_overshoot_interpolator" since="4" />
-		<field name="bounce_interpolator" since="4" />
-		<field name="cycle_interpolator" since="8" />
-		<field name="decelerate_interpolator" />
-		<field name="fade_in" />
-		<field name="fade_out" />
-		<field name="linear_interpolator" since="4" />
-		<field name="overshoot_interpolator" since="4" />
-		<field name="slide_in_left" />
-		<field name="slide_out_right" />
-	</class>
-	<class name="android/R$animator" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="fade_in" />
-		<field name="fade_out" />
-	</class>
-	<class name="android/R$array" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="emailAddressTypes" />
-		<field name="imProtocols" />
-		<field name="organizationTypes" />
-		<field name="phoneTypes" />
-		<field name="postalAddressTypes" />
-	</class>
-	<class name="android/R$attr" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="absListViewStyle" />
-		<field name="accessibilityEventTypes" since="14" />
-		<field name="accessibilityFeedbackType" since="14" />
-		<field name="accessibilityFlags" since="14" />
-		<field name="accessibilityLiveRegion" since="19" />
-		<field name="accountPreferences" since="5" />
-		<field name="accountType" since="5" />
-		<field name="action" />
-		<field name="actionBarDivider" since="14" />
-		<field name="actionBarItemBackground" since="14" />
-		<field name="actionBarSize" since="11" />
-		<field name="actionBarSplitStyle" since="14" />
-		<field name="actionBarStyle" since="11" />
-		<field name="actionBarTabBarStyle" since="11" />
-		<field name="actionBarTabStyle" since="11" />
-		<field name="actionBarTabTextStyle" since="11" />
-		<field name="actionBarTheme" since="21" />
-		<field name="actionBarWidgetTheme" since="14" />
-		<field name="actionButtonStyle" since="11" />
-		<field name="actionDropDownStyle" since="11" />
-		<field name="actionLayout" since="11" />
-		<field name="actionMenuTextAppearance" since="11" />
-		<field name="actionMenuTextColor" since="11" />
-		<field name="actionModeBackground" since="11" />
-		<field name="actionModeCloseButtonStyle" since="11" />
-		<field name="actionModeCloseDrawable" since="11" />
-		<field name="actionModeCopyDrawable" since="11" />
-		<field name="actionModeCutDrawable" since="11" />
-		<field name="actionModePasteDrawable" since="11" />
-		<field name="actionModeSelectAllDrawable" since="14" />
-		<field name="actionModeSplitBackground" since="14" />
-		<field name="actionModeStyle" since="14" />
-		<field name="actionOverflowButtonStyle" since="11" />
-		<field name="actionOverflowMenuStyle" since="21" />
-		<field name="actionProviderClass" since="14" />
-		<field name="actionViewClass" since="11" />
-		<field name="activatedBackgroundIndicator" since="11" />
-		<field name="activityCloseEnterAnimation" />
-		<field name="activityCloseExitAnimation" />
-		<field name="activityOpenEnterAnimation" />
-		<field name="activityOpenExitAnimation" />
-		<field name="addPrintersActivity" since="19" />
-		<field name="addStatesFromChildren" />
-		<field name="adjustViewBounds" />
-		<field name="advancedPrintOptionsActivity" since="19" />
-		<field name="alertDialogIcon" since="11" />
-		<field name="alertDialogStyle" />
-		<field name="alertDialogTheme" since="11" />
-		<field name="alignmentMode" since="14" />
-		<field name="allContactsName" since="11" />
-		<field name="allowBackup" since="4" />
-		<field name="allowClearUserData" />
-		<field name="allowEmbedded" since="20" />
-		<field name="allowParallelSyncs" since="11" />
-		<field name="allowSingleTap" since="3" />
-		<field name="allowTaskReparenting" />
-		<field name="alpha" since="11" />
-		<field name="alphabeticShortcut" />
-		<field name="alwaysDrawnWithCache" />
-		<field name="alwaysRetainTaskState" />
-		<field name="angle" />
-		<field name="animateFirstView" since="11" />
-		<field name="animateLayoutChanges" since="11" />
-		<field name="animateOnClick" since="3" />
-		<field name="animation" />
-		<field name="animationCache" />
-		<field name="animationDuration" />
-		<field name="animationOrder" />
-		<field name="animationResolution" since="11" />
-		<field name="antialias" />
-		<field name="anyDensity" since="4" />
-		<field name="apduServiceBanner" since="19" />
-		<field name="apiKey" />
-		<field name="author" since="7" />
-		<field name="authorities" />
-		<field name="autoAdvanceViewId" since="11" />
-		<field name="autoCompleteTextViewStyle" />
-		<field name="autoLink" />
-		<field name="autoMirrored" since="19" />
-		<field name="autoRemoveFromRecents" since="21" />
-		<field name="autoStart" since="7" />
-		<field name="autoText" />
-		<field name="autoUrlDetect" since="4" />
-		<field name="background" />
-		<field name="backgroundDimAmount" />
-		<field name="backgroundDimEnabled" since="3" />
-		<field name="backgroundSplit" since="14" />
-		<field name="backgroundStacked" since="14" />
-		<field name="backupAgent" since="4" />
-		<field name="banner" since="21" />
-		<field name="baseline" since="11" />
-		<field name="baselineAlignBottom" />
-		<field name="baselineAligned" />
-		<field name="baselineAlignedChildIndex" />
-		<field name="borderlessButtonStyle" since="11" />
-		<field name="bottom" />
-		<field name="bottomBright" />
-		<field name="bottomDark" />
-		<field name="bottomLeftRadius" />
-		<field name="bottomMedium" />
-		<field name="bottomOffset" since="3" />
-		<field name="bottomRightRadius" />
-		<field name="breadCrumbShortTitle" since="11" />
-		<field name="breadCrumbTitle" since="11" />
-		<field name="bufferType" />
-		<field name="button" />
-		<field name="buttonBarButtonStyle" since="11" />
-		<field name="buttonBarStyle" since="11" />
-		<field name="buttonStyle" />
-		<field name="buttonStyleInset" />
-		<field name="buttonStyleSmall" />
-		<field name="buttonStyleToggle" />
-		<field name="cacheColorHint" />
-		<field name="calendarViewShown" since="11" />
-		<field name="calendarViewStyle" since="11" />
-		<field name="canRequestEnhancedWebAccessibility" since="18" />
-		<field name="canRequestFilterKeyEvents" since="18" />
-		<field name="canRequestTouchExplorationMode" since="18" />
-		<field name="canRetrieveWindowContent" since="14" />
-		<field name="candidatesTextStyleSpans" since="3" />
-		<field name="capitalize" />
-		<field name="category" since="19" />
-		<field name="centerBright" />
-		<field name="centerColor" />
-		<field name="centerDark" />
-		<field name="centerMedium" />
-		<field name="centerX" />
-		<field name="centerY" />
-		<field name="checkBoxPreferenceStyle" />
-		<field name="checkMark" />
-		<field name="checkable" />
-		<field name="checkableBehavior" />
-		<field name="checkboxStyle" />
-		<field name="checked" />
-		<field name="checkedButton" />
-		<field name="checkedTextViewStyle" since="17" />
-		<field name="childDivider" />
-		<field name="childIndicator" />
-		<field name="childIndicatorEnd" since="18" />
-		<field name="childIndicatorLeft" />
-		<field name="childIndicatorRight" />
-		<field name="childIndicatorStart" since="18" />
-		<field name="choiceMode" />
-		<field name="clearTaskOnLaunch" />
-		<field name="clickable" />
-		<field name="clipChildren" />
-		<field name="clipOrientation" />
-		<field name="clipToPadding" />
-		<field name="clipToPath" since="21" />
-		<field name="codes" since="3" />
-		<field name="collapseColumns" />
-		<field name="color" />
-		<field name="colorAccent" since="21" />
-		<field name="colorActivatedHighlight" since="14" />
-		<field name="colorBackground" />
-		<field name="colorBackgroundCacheHint" since="5" />
-		<field name="colorButtonNormal" since="21" />
-		<field name="colorControlActivated" since="21" />
-		<field name="colorControlHighlight" since="21" />
-		<field name="colorControlNormal" since="21" />
-		<field name="colorFocusedHighlight" since="14" />
-		<field name="colorForeground" />
-		<field name="colorForegroundInverse" />
-		<field name="colorLongPressedHighlight" since="14" />
-		<field name="colorMultiSelectHighlight" since="14" />
-		<field name="colorPressedHighlight" since="14" />
-		<field name="colorPrimary" since="21" />
-		<field name="colorPrimaryDark" since="21" />
-		<field name="columnCount" since="14" />
-		<field name="columnDelay" />
-		<field name="columnOrderPreserved" since="14" />
-		<field name="columnWidth" />
-		<field name="compatibleWidthLimitDp" since="13" />
-		<field name="completionHint" />
-		<field name="completionHintView" />
-		<field name="completionThreshold" />
-		<field name="configChanges" />
-		<field name="configure" since="3" />
-		<field name="constantSize" />
-		<field name="content" since="3" />
-		<field name="contentAuthority" since="5" />
-		<field name="contentDescription" since="4" />
-		<field name="contentInsetEnd" since="21" />
-		<field name="contentInsetLeft" since="21" />
-		<field name="contentInsetRight" since="21" />
-		<field name="contentInsetStart" since="21" />
-		<field name="controlX1" since="21" />
-		<field name="controlX2" since="21" />
-		<field name="controlY1" since="21" />
-		<field name="controlY2" since="21" />
-		<field name="cropToPadding" />
-		<field name="cursorVisible" />
-		<field name="customNavigationLayout" since="11" />
-		<field name="customTokens" since="11" />
-		<field name="cycles" />
-		<field name="dashGap" />
-		<field name="dashWidth" />
-		<field name="data" />
-		<field name="datePickerStyle" since="11" />
-		<field name="dateTextAppearance" since="11" />
-		<field name="debuggable" />
-		<field name="defaultValue" />
-		<field name="delay" />
-		<field name="dependency" />
-		<field name="descendantFocusability" />
-		<field name="description" />
-		<field name="detachWallpaper" since="5" />
-		<field name="detailColumn" since="5" />
-		<field name="detailSocialSummary" since="5" />
-		<field name="detailsElementBackground" since="11" />
-		<field name="dial" />
-		<field name="dialogIcon" />
-		<field name="dialogLayout" />
-		<field name="dialogMessage" />
-		<field name="dialogPreferenceStyle" />
-		<field name="dialogTheme" since="11" />
-		<field name="dialogTitle" />
-		<field name="digits" />
-		<field name="direction" />
-		<field name="directionDescriptions" since="14" />
-		<field name="directionPriority" />
-		<field name="disableDependentsState" />
-		<field name="disabledAlpha" />
-		<field name="displayOptions" since="11" />
-		<field name="dither" />
-		<field name="divider" />
-		<field name="dividerHeight" />
-		<field name="dividerHorizontal" since="11" />
-		<field name="dividerPadding" since="11" />
-		<field name="dividerVertical" since="11" />
-		<field name="documentLaunchMode" since="21" />
-		<field name="drawSelectorOnTop" />
-		<field name="drawable" />
-		<field name="drawableBottom" />
-		<field name="drawableEnd" since="14" />
-		<field name="drawableLeft" />
-		<field name="drawablePadding" />
-		<field name="drawableRight" />
-		<field name="drawableStart" since="14" />
-		<field name="drawableTop" />
-		<field name="drawingCacheQuality" />
-		<field name="dropDownAnchor" since="3" />
-		<field name="dropDownHeight" since="4" />
-		<field name="dropDownHintAppearance" />
-		<field name="dropDownHorizontalOffset" since="5" />
-		<field name="dropDownItemStyle" />
-		<field name="dropDownListViewStyle" />
-		<field name="dropDownSelector" />
-		<field name="dropDownSpinnerStyle" since="11" />
-		<field name="dropDownVerticalOffset" since="5" />
-		<field name="dropDownWidth" since="3" />
-		<field name="duplicateParentState" />
-		<field name="duration" />
-		<field name="editTextBackground" since="11" />
-		<field name="editTextColor" since="11" />
-		<field name="editTextPreferenceStyle" />
-		<field name="editTextStyle" />
-		<field name="editable" />
-		<field name="editorExtras" since="3" />
-		<field name="elegantTextHeight" since="21" />
-		<field name="elevation" since="21" />
-		<field name="ellipsize" />
-		<field name="ems" />
-		<field name="enabled" />
-		<field name="endColor" />
-		<field name="endYear" />
-		<field name="enterFadeDuration" since="11" />
-		<field name="entries" />
-		<field name="entryValues" />
-		<field name="eventsInterceptionEnabled" since="4" />
-		<field name="excludeClass" since="21" />
-		<field name="excludeFromRecents" />
-		<field name="excludeId" since="21" />
-		<field name="excludeViewName" since="21" />
-		<field name="exitFadeDuration" since="11" />
-		<field name="expandableListPreferredChildIndicatorLeft" />
-		<field name="expandableListPreferredChildIndicatorRight" />
-		<field name="expandableListPreferredChildPaddingLeft" />
-		<field name="expandableListPreferredItemIndicatorLeft" />
-		<field name="expandableListPreferredItemIndicatorRight" />
-		<field name="expandableListPreferredItemPaddingLeft" />
-		<field name="expandableListViewStyle" />
-		<field name="expandableListViewWhiteStyle" since="8" />
-		<field name="exported" />
-		<field name="extraTension" since="4" />
-		<field name="factor" />
-		<field name="fadeDuration" since="4" />
-		<field name="fadeEnabled" since="4" />
-		<field name="fadeOffset" since="4" />
-		<field name="fadeScrollbars" since="5" />
-		<field name="fadingEdge" />
-		<field name="fadingEdgeLength" />
-		<field name="fadingMode" since="19" />
-		<field name="fastScrollAlwaysVisible" since="11" />
-		<field name="fastScrollEnabled" since="3" />
-		<field name="fastScrollOverlayPosition" since="11" />
-		<field name="fastScrollPreviewBackgroundLeft" since="11" />
-		<field name="fastScrollPreviewBackgroundRight" since="11" />
-		<field name="fastScrollStyle" since="21" />
-		<field name="fastScrollTextColor" since="11" />
-		<field name="fastScrollThumbDrawable" since="11" />
-		<field name="fastScrollTrackDrawable" since="11" />
-		<field name="fill" since="21" />
-		<field name="fillAfter" />
-		<field name="fillBefore" />
-		<field name="fillEnabled" since="3" />
-		<field name="fillOpacity" since="21" />
-		<field name="fillViewport" />
-		<field name="filter" />
-		<field name="filterTouchesWhenObscured" since="9" />
-		<field name="finishOnCloseSystemDialogs" since="5" />
-		<field name="finishOnTaskLaunch" />
-		<field name="firstDayOfWeek" since="11" />
-		<field name="fitsSystemWindows" />
-		<field name="flipInterval" />
-		<field name="focusable" />
-		<field name="focusableInTouchMode" />
-		<field name="focusedMonthDateColor" since="11" />
-		<field name="fontFamily" since="16" />
-		<field name="footerDividersEnabled" since="3" />
-		<field name="foreground" />
-		<field name="foregroundGravity" />
-		<field name="format" />
-		<field name="format12Hour" since="17" />
-		<field name="format24Hour" since="17" />
-		<field name="fragment" since="11" />
-		<field name="fragmentCloseEnterAnimation" since="11" />
-		<field name="fragmentCloseExitAnimation" since="11" />
-		<field name="fragmentFadeEnterAnimation" since="11" />
-		<field name="fragmentFadeExitAnimation" since="11" />
-		<field name="fragmentOpenEnterAnimation" since="11" />
-		<field name="fragmentOpenExitAnimation" since="11" />
-		<field name="freezesText" />
-		<field name="fromAlpha" />
-		<field name="fromDegrees" />
-		<field name="fromId" since="21" />
-		<field name="fromScene" since="19" />
-		<field name="fromXDelta" />
-		<field name="fromXScale" />
-		<field name="fromYDelta" />
-		<field name="fromYScale" />
-		<field name="fullBright" />
-		<field name="fullDark" />
-		<field name="functionalTest" />
-		<field name="galleryItemBackground" />
-		<field name="galleryStyle" />
-		<field name="gestureColor" since="4" />
-		<field name="gestureStrokeAngleThreshold" since="4" />
-		<field name="gestureStrokeLengthThreshold" since="4" />
-		<field name="gestureStrokeSquarenessThreshold" since="4" />
-		<field name="gestureStrokeType" since="4" />
-		<field name="gestureStrokeWidth" since="4" />
-		<field name="glEsVersion" since="4" />
-		<field name="gradientRadius" />
-		<field name="grantUriPermissions" />
-		<field name="gravity" />
-		<field name="gridViewStyle" />
-		<field name="groupIndicator" />
-		<field name="hand_hour" />
-		<field name="hand_minute" />
-		<field name="handle" since="3" />
-		<field name="handleProfiling" />
-		<field name="hapticFeedbackEnabled" since="3" />
-		<field name="hardwareAccelerated" since="11" />
-		<field name="hasCode" />
-		<field name="headerBackground" />
-		<field name="headerDividersEnabled" since="3" />
-		<field name="height" />
-		<field name="hideOnContentScroll" since="21" />
-		<field name="hint" />
-		<field name="homeAsUpIndicator" since="11" />
-		<field name="homeLayout" since="11" />
-		<field name="horizontalDivider" />
-		<field name="horizontalGap" since="3" />
-		<field name="horizontalScrollViewStyle" since="11" />
-		<field name="horizontalSpacing" />
-		<field name="host" />
-		<field name="icon" />
-		<field name="iconPreview" since="3" />
-		<field name="iconifiedByDefault" since="11" />
-		<field name="id" />
-		<field name="ignoreGravity" />
-		<field name="imageButtonStyle" />
-		<field name="imageWellStyle" />
-		<field name="imeActionId" since="3" />
-		<field name="imeActionLabel" since="3" />
-		<field name="imeExtractEnterAnimation" since="3" />
-		<field name="imeExtractExitAnimation" since="3" />
-		<field name="imeFullscreenBackground" since="3" />
-		<field name="imeOptions" since="3" />
-		<field name="imeSubtypeExtraValue" since="11" />
-		<field name="imeSubtypeLocale" since="11" />
-		<field name="imeSubtypeMode" since="11" />
-		<field name="immersive" since="11" />
-		<field name="importantForAccessibility" since="16" />
-		<field name="inAnimation" />
-		<field name="includeFontPadding" />
-		<field name="includeInGlobalSearch" since="4" />
-		<field name="indeterminate" />
-		<field name="indeterminateBehavior" />
-		<field name="indeterminateDrawable" />
-		<field name="indeterminateDuration" />
-		<field name="indeterminateOnly" />
-		<field name="indeterminateProgressStyle" since="11" />
-		<field name="indicatorEnd" since="18" />
-		<field name="indicatorLeft" />
-		<field name="indicatorRight" />
-		<field name="indicatorStart" since="18" />
-		<field name="inflatedId" />
-		<field name="initOrder" />
-		<field name="initialKeyguardLayout" since="17" />
-		<field name="initialLayout" since="3" />
-		<field name="innerRadius" since="3" />
-		<field name="innerRadiusRatio" />
-		<field name="inputMethod" />
-		<field name="inputType" since="3" />
-		<field name="insetBottom" />
-		<field name="insetLeft" />
-		<field name="insetRight" />
-		<field name="insetTop" />
-		<field name="installLocation" since="8" />
-		<field name="interpolator" />
-		<field name="isAlwaysSyncable" since="11" />
-		<field name="isAsciiCapable" since="19" />
-		<field name="isAuxiliary" since="14" />
-		<field name="isDefault" since="3" />
-		<field name="isGame" since="21" />
-		<field name="isIndicator" />
-		<field name="isModifier" since="3" />
-		<field name="isRepeatable" since="3" />
-		<field name="isScrollContainer" since="3" />
-		<field name="isSticky" since="3" />
-		<field name="isolatedProcess" since="16" />
-		<field name="itemBackground" />
-		<field name="itemIconDisabledAlpha" />
-		<field name="itemPadding" since="11" />
-		<field name="itemTextAppearance" />
-		<field name="keepScreenOn" />
-		<field name="key" />
-		<field name="keyBackground" since="3" />
-		<field name="keyEdgeFlags" since="3" />
-		<field name="keyHeight" since="3" />
-		<field name="keyIcon" since="3" />
-		<field name="keyLabel" since="3" />
-		<field name="keyOutputText" since="3" />
-		<field name="keyPreviewHeight" since="3" />
-		<field name="keyPreviewLayout" since="3" />
-		<field name="keyPreviewOffset" since="3" />
-		<field name="keySet" since="19" />
-		<field name="keyTextColor" since="3" />
-		<field name="keyTextSize" since="3" />
-		<field name="keyWidth" since="3" />
-		<field name="keyboardLayout" since="16" />
-		<field name="keyboardMode" since="3" />
-		<field name="keycode" />
-		<field name="killAfterRestore" since="5" />
-		<field name="l_resource_pad1" since="21" />
-		<field name="l_resource_pad10" since="21" />
-		<field name="l_resource_pad11" since="21" />
-		<field name="l_resource_pad12" since="21" />
-		<field name="l_resource_pad13" since="21" />
-		<field name="l_resource_pad14" since="21" />
-		<field name="l_resource_pad15" since="21" />
-		<field name="l_resource_pad16" since="21" />
-		<field name="l_resource_pad17" since="21" />
-		<field name="l_resource_pad18" since="21" />
-		<field name="l_resource_pad19" since="21" />
-		<field name="l_resource_pad2" since="21" />
-		<field name="l_resource_pad20" since="21" />
-		<field name="l_resource_pad21" since="21" />
-		<field name="l_resource_pad22" since="21" />
-		<field name="l_resource_pad23" since="21" />
-		<field name="l_resource_pad24" since="21" />
-		<field name="l_resource_pad25" since="21" />
-		<field name="l_resource_pad3" since="21" />
-		<field name="l_resource_pad4" since="21" />
-		<field name="l_resource_pad5" since="21" />
-		<field name="l_resource_pad6" since="21" />
-		<field name="l_resource_pad7" since="21" />
-		<field name="l_resource_pad8" since="21" />
-		<field name="l_resource_pad9" since="21" />
-		<field name="label" />
-		<field name="labelFor" since="17" />
-		<field name="labelTextSize" since="3" />
-		<field name="largeHeap" since="11" />
-		<field name="largeScreens" since="4" />
-		<field name="largestWidthLimitDp" since="13" />
-		<field name="launchMode" />
-		<field name="layerType" since="11" />
-		<field name="layout" />
-		<field name="layoutAnimation" />
-		<field name="layoutDirection" since="17" />
-		<field name="layoutMode" since="18" />
-		<field name="layout_above" />
-		<field name="layout_alignBaseline" />
-		<field name="layout_alignBottom" />
-		<field name="layout_alignEnd" since="17" />
-		<field name="layout_alignLeft" />
-		<field name="layout_alignParentBottom" />
-		<field name="layout_alignParentEnd" since="17" />
-		<field name="layout_alignParentLeft" />
-		<field name="layout_alignParentRight" />
-		<field name="layout_alignParentStart" since="17" />
-		<field name="layout_alignParentTop" />
-		<field name="layout_alignRight" />
-		<field name="layout_alignStart" since="17" />
-		<field name="layout_alignTop" />
-		<field name="layout_alignWithParentIfMissing" />
-		<field name="layout_below" />
-		<field name="layout_centerHorizontal" />
-		<field name="layout_centerInParent" />
-		<field name="layout_centerVertical" />
-		<field name="layout_column" />
-		<field name="layout_columnSpan" since="14" />
-		<field name="layout_gravity" />
-		<field name="layout_height" />
-		<field name="layout_margin" />
-		<field name="layout_marginBottom" />
-		<field name="layout_marginEnd" since="17" />
-		<field name="layout_marginLeft" />
-		<field name="layout_marginRight" />
-		<field name="layout_marginStart" since="17" />
-		<field name="layout_marginTop" />
-		<field name="layout_row" since="14" />
-		<field name="layout_rowSpan" since="14" />
-		<field name="layout_scale" />
-		<field name="layout_span" />
-		<field name="layout_toEndOf" since="17" />
-		<field name="layout_toLeftOf" />
-		<field name="layout_toRightOf" />
-		<field name="layout_toStartOf" since="17" />
-		<field name="layout_weight" />
-		<field name="layout_width" />
-		<field name="layout_x" />
-		<field name="layout_y" />
-		<field name="left" />
-		<field name="lineSpacingExtra" />
-		<field name="lineSpacingMultiplier" />
-		<field name="lines" />
-		<field name="linksClickable" />
-		<field name="listChoiceBackgroundIndicator" since="11" />
-		<field name="listChoiceIndicatorMultiple" />
-		<field name="listChoiceIndicatorSingle" />
-		<field name="listDivider" />
-		<field name="listDividerAlertDialog" since="11" />
-		<field name="listPopupWindowStyle" since="11" />
-		<field name="listPreferredItemHeight" />
-		<field name="listPreferredItemHeightLarge" since="14" />
-		<field name="listPreferredItemHeightSmall" since="14" />
-		<field name="listPreferredItemPaddingEnd" since="17" />
-		<field name="listPreferredItemPaddingLeft" since="14" />
-		<field name="listPreferredItemPaddingRight" since="14" />
-		<field name="listPreferredItemPaddingStart" since="17" />
-		<field name="listSelector" />
-		<field name="listSeparatorTextViewStyle" />
-		<field name="listViewStyle" />
-		<field name="listViewWhiteStyle" />
-		<field name="logo" since="11" />
-		<field name="longClickable" />
-		<field name="loopViews" since="11" />
-		<field name="manageSpaceActivity" />
-		<field name="mapViewStyle" />
-		<field name="marqueeRepeatLimit" since="2" />
-		<field name="matchOrder" since="21" />
-		<field name="max" />
-		<field name="maxDate" since="11" />
-		<field name="maxEms" />
-		<field name="maxHeight" />
-		<field name="maxItemsPerRow" />
-		<field name="maxLength" />
-		<field name="maxLevel" />
-		<field name="maxLines" />
-		<field name="maxRecents" since="21" />
-		<field name="maxRows" />
-		<field name="maxSdkVersion" since="4" />
-		<field name="maxWidth" />
-		<field name="measureAllChildren" />
-		<field name="measureWithLargestChild" since="11" />
-		<field name="mediaRouteButtonStyle" since="16" />
-		<field name="mediaRouteTypes" since="16" />
-		<field name="menuCategory" />
-		<field name="mimeType" />
-		<field name="minDate" since="11" />
-		<field name="minEms" />
-		<field name="minHeight" />
-		<field name="minLevel" />
-		<field name="minLines" />
-		<field name="minResizeHeight" since="14" />
-		<field name="minResizeWidth" since="14" />
-		<field name="minSdkVersion" />
-		<field name="minWidth" />
-		<field name="mipMap" since="18" />
-		<field name="mirrorForRtl" since="18" />
-		<field name="mode" />
-		<field name="moreIcon" />
-		<field name="multiprocess" />
-		<field name="name" />
-		<field name="navigationBarColor" since="21" />
-		<field name="navigationMode" since="11" />
-		<field name="negativeButtonText" />
-		<field name="nestedScrollingEnabled" since="21" />
-		<field name="nextFocusDown" />
-		<field name="nextFocusForward" since="11" />
-		<field name="nextFocusLeft" />
-		<field name="nextFocusRight" />
-		<field name="nextFocusUp" />
-		<field name="noHistory" since="3" />
-		<field name="normalScreens" since="4" />
-		<field name="notificationTimeout" since="14" />
-		<field name="numColumns" />
-		<field name="numStars" />
-		<field name="numeric" />
-		<field name="numericShortcut" />
-		<field name="onClick" since="4" />
-		<field name="oneshot" />
-		<field name="opacity" since="11" />
-		<field name="order" />
-		<field name="orderInCategory" />
-		<field name="ordering" since="11" />
-		<field name="orderingFromXml" />
-		<field name="orientation" />
-		<field name="outAnimation" />
-		<field name="overScrollFooter" since="9" />
-		<field name="overScrollHeader" since="9" />
-		<field name="overScrollMode" since="9" />
-		<field name="overridesImplicitlyEnabledSubtype" since="14" />
-		<field name="packageNames" since="14" />
-		<field name="padding" />
-		<field name="paddingBottom" />
-		<field name="paddingEnd" since="17" />
-		<field name="paddingLeft" />
-		<field name="paddingMode" since="21" />
-		<field name="paddingRight" />
-		<field name="paddingStart" since="17" />
-		<field name="paddingTop" />
-		<field name="panelBackground" />
-		<field name="panelColorBackground" />
-		<field name="panelColorForeground" />
-		<field name="panelFullBackground" />
-		<field name="panelTextAppearance" />
-		<field name="parentActivityName" since="16" />
-		<field name="password" />
-		<field name="path" />
-		<field name="pathData" since="21" />
-		<field name="pathPattern" />
-		<field name="pathPrefix" />
-		<field name="permission" />
-		<field name="permissionFlags" since="17" />
-		<field name="permissionGroup" />
-		<field name="permissionGroupFlags" since="17" />
-		<field name="persistable" since="21" />
-		<field name="persistent" />
-		<field name="persistentDrawingCache" />
-		<field name="phoneNumber" />
-		<field name="pivotX" />
-		<field name="pivotY" />
-		<field name="popupAnimationStyle" since="9" />
-		<field name="popupBackground" />
-		<field name="popupCharacters" since="3" />
-		<field name="popupKeyboard" since="3" />
-		<field name="popupLayout" since="3" />
-		<field name="popupMenuStyle" since="11" />
-		<field name="popupWindowStyle" />
-		<field name="port" />
-		<field name="positiveButtonText" />
-		<field name="preferenceCategoryStyle" />
-		<field name="preferenceInformationStyle" />
-		<field name="preferenceLayoutChild" />
-		<field name="preferenceScreenStyle" />
-		<field name="preferenceStyle" />
-		<field name="presentationTheme" since="17" />
-		<field name="previewImage" since="11" />
-		<field name="priority" />
-		<field name="privateImeOptions" since="3" />
-		<field name="process" />
-		<field name="progress" />
-		<field name="progressBarPadding" since="11" />
-		<field name="progressBarStyle" />
-		<field name="progressBarStyleHorizontal" />
-		<field name="progressBarStyleInverse" since="4" />
-		<field name="progressBarStyleLarge" />
-		<field name="progressBarStyleLargeInverse" since="4" />
-		<field name="progressBarStyleSmall" />
-		<field name="progressBarStyleSmallInverse" since="4" />
-		<field name="progressBarStyleSmallTitle" />
-		<field name="progressDrawable" />
-		<field name="prompt" />
-		<field name="propertyName" since="11" />
-		<field name="protectionLevel" />
-		<field name="publicKey" since="14" />
-		<field name="queryActionMsg" />
-		<field name="queryAfterZeroResults" since="4" />
-		<field name="queryHint" since="11" />
-		<field name="quickContactBadgeStyleSmallWindowLarge" since="6" />
-		<field name="quickContactBadgeStyleSmallWindowMedium" since="6" />
-		<field name="quickContactBadgeStyleSmallWindowSmall" since="6" />
-		<field name="quickContactBadgeStyleWindowLarge" since="6" />
-		<field name="quickContactBadgeStyleWindowMedium" since="6" />
-		<field name="quickContactBadgeStyleWindowSmall" since="6" />
-		<field name="radioButtonStyle" />
-		<field name="radius" />
-		<field name="rating" />
-		<field name="ratingBarStyle" />
-		<field name="ratingBarStyleIndicator" />
-		<field name="ratingBarStyleSmall" />
-		<field name="readPermission" />
-		<field name="repeatCount" />
-		<field name="repeatMode" />
-		<field name="reqFiveWayNav" since="3" />
-		<field name="reqHardKeyboard" since="3" />
-		<field name="reqKeyboardType" since="3" />
-		<field name="reqNavigation" since="3" />
-		<field name="reqTouchScreen" since="3" />
-		<field name="requireDeviceUnlock" since="19" />
-		<field name="required" since="5" />
-		<field name="requiredAccountType" since="18" />
-		<field name="requiredForAllUsers" since="18" />
-		<field name="requiredForProfile" since="21" />
-		<field name="requiresFadingEdge" since="14" />
-		<field name="requiresSmallestWidthDp" since="13" />
-		<field name="resizeMode" since="12" />
-		<field name="resizeable" since="4" />
-		<field name="resource" />
-		<field name="restoreAnyVersion" since="8" />
-		<field name="restoreNeedsApplication" since="5" />
-		<field name="restrictedAccountType" since="18" />
-		<field name="reversible" since="21" />
-		<field name="right" />
-		<field name="ringtonePreferenceStyle" />
-		<field name="ringtoneType" />
-		<field name="rotation" since="11" />
-		<field name="rotationX" since="11" />
-		<field name="rotationY" since="11" />
-		<field name="rowCount" since="14" />
-		<field name="rowDelay" />
-		<field name="rowEdgeFlags" since="3" />
-		<field name="rowHeight" />
-		<field name="rowOrderPreserved" since="14" />
-		<field name="saveEnabled" />
-		<field name="scaleGravity" />
-		<field name="scaleHeight" />
-		<field name="scaleType" />
-		<field name="scaleWidth" />
-		<field name="scaleX" since="11" />
-		<field name="scaleY" since="11" />
-		<field name="scheme" />
-		<field name="screenDensity" since="9" />
-		<field name="screenOrientation" />
-		<field name="screenSize" since="9" />
-		<field name="scrollHorizontally" />
-		<field name="scrollViewStyle" />
-		<field name="scrollX" />
-		<field name="scrollY" />
-		<field name="scrollbarAlwaysDrawHorizontalTrack" />
-		<field name="scrollbarAlwaysDrawVerticalTrack" />
-		<field name="scrollbarDefaultDelayBeforeFade" since="5" />
-		<field name="scrollbarFadeDuration" since="5" />
-		<field name="scrollbarSize" />
-		<field name="scrollbarStyle" />
-		<field name="scrollbarThumbHorizontal" />
-		<field name="scrollbarThumbVertical" />
-		<field name="scrollbarTrackHorizontal" />
-		<field name="scrollbarTrackVertical" />
-		<field name="scrollbars" />
-		<field name="scrollingCache" />
-		<field name="searchButtonText" />
-		<field name="searchMode" />
-		<field name="searchSettingsDescription" since="4" />
-		<field name="searchSuggestAuthority" />
-		<field name="searchSuggestIntentAction" />
-		<field name="searchSuggestIntentData" />
-		<field name="searchSuggestPath" />
-		<field name="searchSuggestSelection" />
-		<field name="searchSuggestThreshold" since="4" />
-		<field name="secondaryProgress" />
-		<field name="seekBarStyle" />
-		<field name="segmentedButtonStyle" since="11" />
-		<field name="selectAllOnFocus" />
-		<field name="selectable" />
-		<field name="selectableItemBackground" since="11" />
-		<field name="selectableItemBackgroundBorderless" since="21" />
-		<field name="selectedDateVerticalBar" since="11" />
-		<field name="selectedWeekBackgroundColor" since="11" />
-		<field name="sessionService" since="21" />
-		<field name="settingsActivity" since="3" />
-		<field name="setupActivity" since="21" />
-		<field name="shadowColor" />
-		<field name="shadowDx" />
-		<field name="shadowDy" />
-		<field name="shadowRadius" />
-		<field name="shape" />
-		<field name="shareInterpolator" />
-		<field name="sharedUserId" />
-		<field name="sharedUserLabel" since="3" />
-		<field name="shouldDisableView" />
-		<field name="showAsAction" since="11" />
-		<field name="showDefault" />
-		<field name="showDividers" since="11" />
-		<field name="showOnLockScreen" since="17" />
-		<field name="showSilent" />
-		<field name="showWeekNumber" since="11" />
-		<field name="shownWeekCount" since="11" />
-		<field name="shrinkColumns" />
-		<field name="singleLine" />
-		<field name="singleUser" since="17" />
-		<field name="slideEdge" since="21" />
-		<field name="smallIcon" since="5" />
-		<field name="smallScreens" since="4" />
-		<field name="smoothScrollbar" since="3" />
-		<field name="soundEffectsEnabled" />
-		<field name="spacing" />
-		<field name="spinnerDropDownItemStyle" />
-		<field name="spinnerItemStyle" />
-		<field name="spinnerMode" since="11" />
-		<field name="spinnerStyle" />
-		<field name="spinnersShown" since="11" />
-		<field name="splitMotionEvents" since="11" />
-		<field name="splitTrack" since="21" />
-		<field name="src" />
-		<field name="ssp" since="19" />
-		<field name="sspPattern" since="19" />
-		<field name="sspPrefix" since="19" />
-		<field name="stackFromBottom" />
-		<field name="stackViewStyle" since="21" />
-		<field name="starStyle" />
-		<field name="startColor" />
-		<field name="startDelay" since="19" />
-		<field name="startOffset" />
-		<field name="startYear" />
-		<field name="stateListAnimator" since="21" />
-		<field name="stateNotNeeded" />
-		<field name="state_above_anchor" />
-		<field name="state_accelerated" since="11" />
-		<field name="state_activated" since="11" />
-		<field name="state_active" />
-		<field name="state_checkable" />
-		<field name="state_checked" />
-		<field name="state_drag_can_accept" since="14" />
-		<field name="state_drag_hovered" since="14" />
-		<field name="state_empty" />
-		<field name="state_enabled" />
-		<field name="state_expanded" />
-		<field name="state_first" />
-		<field name="state_focused" />
-		<field name="state_hovered" since="14" />
-		<field name="state_last" />
-		<field name="state_long_pressable" since="3" />
-		<field name="state_middle" />
-		<field name="state_multiline" since="11" />
-		<field name="state_pressed" />
-		<field name="state_selected" />
-		<field name="state_single" />
-		<field name="state_window_focused" />
-		<field name="staticWallpaperPreview" since="11" />
-		<field name="statusBarColor" since="21" />
-		<field name="stepSize" />
-		<field name="stopWithTask" since="14" />
-		<field name="streamType" />
-		<field name="stretchColumns" />
-		<field name="stretchMode" />
-		<field name="stroke" since="21" />
-		<field name="strokeLineCap" since="21" />
-		<field name="strokeLineJoin" since="21" />
-		<field name="strokeOpacity" since="21" />
-		<field name="strokeWidth" since="21" />
-		<field name="subtitle" since="11" />
-		<field name="subtitleTextAppearance" since="21" />
-		<field name="subtitleTextStyle" since="11" />
-		<field name="subtypeExtraValue" since="14" />
-		<field name="subtypeId" since="17" />
-		<field name="subtypeLocale" since="14" />
-		<field name="suggestActionMsg" />
-		<field name="suggestActionMsgColumn" />
-		<field name="summary" />
-		<field name="summaryColumn" since="5" />
-		<field name="summaryOff" />
-		<field name="summaryOn" />
-		<field name="supportsRtl" since="17" />
-		<field name="supportsSwitchingToNextInputMethod" since="19" />
-		<field name="supportsUploading" since="5" />
-		<field name="switchMinWidth" since="14" />
-		<field name="switchPadding" since="14" />
-		<field name="switchPreferenceStyle" since="14" />
-		<field name="switchStyle" since="21" />
-		<field name="switchTextAppearance" since="14" />
-		<field name="switchTextOff" since="14" />
-		<field name="switchTextOn" since="14" />
-		<field name="syncable" />
-		<field name="tabStripEnabled" since="8" />
-		<field name="tabStripLeft" since="8" />
-		<field name="tabStripRight" since="8" />
-		<field name="tabWidgetStyle" />
-		<field name="tag" />
-		<field name="targetActivity" />
-		<field name="targetClass" />
-		<field name="targetDescriptions" since="14" />
-		<field name="targetId" since="19" />
-		<field name="targetPackage" />
-		<field name="targetSdkVersion" since="4" />
-		<field name="targetViewName" since="21" />
-		<field name="taskAffinity" />
-		<field name="taskCloseEnterAnimation" />
-		<field name="taskCloseExitAnimation" />
-		<field name="taskOpenEnterAnimation" />
-		<field name="taskOpenExitAnimation" />
-		<field name="taskToBackEnterAnimation" />
-		<field name="taskToBackExitAnimation" />
-		<field name="taskToFrontEnterAnimation" />
-		<field name="taskToFrontExitAnimation" />
-		<field name="tension" since="4" />
-		<field name="testOnly" since="4" />
-		<field name="text" />
-		<field name="textAlignment" since="17" />
-		<field name="textAllCaps" since="14" />
-		<field name="textAppearance" />
-		<field name="textAppearanceButton" />
-		<field name="textAppearanceInverse" />
-		<field name="textAppearanceLarge" />
-		<field name="textAppearanceLargeInverse" />
-		<field name="textAppearanceLargePopupMenu" since="11" />
-		<field name="textAppearanceListItem" since="14" />
-		<field name="textAppearanceListItemSecondary" since="21" />
-		<field name="textAppearanceListItemSmall" since="14" />
-		<field name="textAppearanceMedium" />
-		<field name="textAppearanceMediumInverse" />
-		<field name="textAppearanceSearchResultSubtitle" since="5" />
-		<field name="textAppearanceSearchResultTitle" since="5" />
-		<field name="textAppearanceSmall" />
-		<field name="textAppearanceSmallInverse" />
-		<field name="textAppearanceSmallPopupMenu" since="11" />
-		<field name="textCheckMark" />
-		<field name="textCheckMarkInverse" />
-		<field name="textColor" />
-		<field name="textColorAlertDialogListItem" since="11" />
-		<field name="textColorHighlight" />
-		<field name="textColorHighlightInverse" since="11" />
-		<field name="textColorHint" />
-		<field name="textColorHintInverse" />
-		<field name="textColorLink" />
-		<field name="textColorLinkInverse" since="11" />
-		<field name="textColorPrimary" />
-		<field name="textColorPrimaryDisableOnly" />
-		<field name="textColorPrimaryInverse" />
-		<field name="textColorPrimaryInverseDisableOnly" since="4" />
-		<field name="textColorPrimaryInverseNoDisable" />
-		<field name="textColorPrimaryNoDisable" />
-		<field name="textColorSecondary" />
-		<field name="textColorSecondaryInverse" />
-		<field name="textColorSecondaryInverseNoDisable" />
-		<field name="textColorSecondaryNoDisable" />
-		<field name="textColorTertiary" />
-		<field name="textColorTertiaryInverse" />
-		<field name="textCursorDrawable" since="12" />
-		<field name="textDirection" since="17" />
-		<field name="textEditNoPasteWindowLayout" since="11" />
-		<field name="textEditPasteWindowLayout" since="11" />
-		<field name="textEditSideNoPasteWindowLayout" since="11" />
-		<field name="textEditSidePasteWindowLayout" since="11" />
-		<field name="textEditSuggestionItemLayout" since="14" />
-		<field name="textFilterEnabled" />
-		<field name="textIsSelectable" since="11" />
-		<field name="textOff" />
-		<field name="textOn" />
-		<field name="textScaleX" />
-		<field name="textSelectHandle" since="9" />
-		<field name="textSelectHandleLeft" since="9" />
-		<field name="textSelectHandleRight" since="9" />
-		<field name="textSelectHandleWindowStyle" since="9" />
-		<field name="textSize" />
-		<field name="textStyle" />
-		<field name="textSuggestionsWindowStyle" since="14" />
-		<field name="textViewStyle" />
-		<field name="theme" />
-		<field name="thickness" since="3" />
-		<field name="thicknessRatio" />
-		<field name="thumb" />
-		<field name="thumbOffset" />
-		<field name="thumbTextPadding" since="14" />
-		<field name="thumbnail" since="5" />
-		<field name="tileMode" />
-		<field name="timeZone" since="17" />
-		<field name="tint" />
-		<field name="tintMode" since="21" />
-		<field name="title" />
-		<field name="titleCondensed" />
-		<field name="titleTextAppearance" since="21" />
-		<field name="titleTextStyle" since="11" />
-		<field name="toAlpha" />
-		<field name="toDegrees" />
-		<field name="toId" since="21" />
-		<field name="toScene" since="19" />
-		<field name="toXDelta" />
-		<field name="toXScale" />
-		<field name="toYDelta" />
-		<field name="toYScale" />
-		<field name="top" />
-		<field name="topBright" />
-		<field name="topDark" />
-		<field name="topLeftRadius" />
-		<field name="topOffset" since="3" />
-		<field name="topRightRadius" />
-		<field name="track" since="14" />
-		<field name="transcriptMode" />
-		<field name="transformPivotX" since="11" />
-		<field name="transformPivotY" since="11" />
-		<field name="transition" since="19" />
-		<field name="transitionGroup" since="21" />
-		<field name="transitionOrdering" since="19" />
-		<field name="translationX" since="11" />
-		<field name="translationY" since="11" />
-		<field name="translationZ" since="21" />
-		<field name="trimPathEnd" since="21" />
-		<field name="trimPathOffset" since="21" />
-		<field name="trimPathStart" since="21" />
-		<field name="tvInputType" since="21" />
-		<field name="type" />
-		<field name="typeface" />
-		<field name="uiOptions" since="14" />
-		<field name="uncertainGestureColor" since="4" />
-		<field name="unfocusedMonthDateColor" since="11" />
-		<field name="unselectedAlpha" />
-		<field name="updatePeriodMillis" since="3" />
-		<field name="useDefaultMargins" since="14" />
-		<field name="useIntrinsicSizeAsMinimum" since="11" />
-		<field name="useLevel" />
-		<field name="userVisible" since="5" />
-		<field name="value" />
-		<field name="valueFrom" since="11" />
-		<field name="valueTo" since="11" />
-		<field name="valueType" since="11" />
-		<field name="variablePadding" />
-		<field name="vendor" since="19" />
-		<field name="versionCode" />
-		<field name="versionName" />
-		<field name="verticalCorrection" since="3" />
-		<field name="verticalDivider" />
-		<field name="verticalGap" since="3" />
-		<field name="verticalScrollbarPosition" since="11" />
-		<field name="verticalSpacing" />
-		<field name="viewName" since="21" />
-		<field name="viewportHeight" since="21" />
-		<field name="viewportWidth" since="21" />
-		<field name="visibility" />
-		<field name="visible" />
-		<field name="vmSafeMode" since="8" />
-		<field name="voiceLanguage" since="3" />
-		<field name="voiceLanguageModel" since="3" />
-		<field name="voiceMaxResults" since="3" />
-		<field name="voicePromptText" since="3" />
-		<field name="voiceSearchMode" since="3" />
-		<field name="wallpaperCloseEnterAnimation" since="5" />
-		<field name="wallpaperCloseExitAnimation" since="5" />
-		<field name="wallpaperIntraCloseEnterAnimation" since="5" />
-		<field name="wallpaperIntraCloseExitAnimation" since="5" />
-		<field name="wallpaperIntraOpenEnterAnimation" since="5" />
-		<field name="wallpaperIntraOpenExitAnimation" since="5" />
-		<field name="wallpaperOpenEnterAnimation" since="5" />
-		<field name="wallpaperOpenExitAnimation" since="5" />
-		<field name="webTextViewStyle" since="8" />
-		<field name="webViewStyle" />
-		<field name="weekDayTextAppearance" since="11" />
-		<field name="weekNumberColor" since="11" />
-		<field name="weekSeparatorLineColor" since="11" />
-		<field name="weightSum" />
-		<field name="widgetCategory" since="17" />
-		<field name="widgetLayout" />
-		<field name="width" />
-		<field name="windowActionBar" since="11" />
-		<field name="windowActionBarOverlay" since="11" />
-		<field name="windowActionModeOverlay" since="11" />
-		<field name="windowAllowEnterTransitionOverlap" since="21" />
-		<field name="windowAllowExitTransitionOverlap" since="21" />
-		<field name="windowAnimationStyle" />
-		<field name="windowBackground" />
-		<field name="windowCloseOnTouchOutside" since="11" />
-		<field name="windowContentOverlay" />
-		<field name="windowContentTransitionManager" since="21" />
-		<field name="windowContentTransitions" since="21" />
-		<field name="windowDisablePreview" since="3" />
-		<field name="windowDrawsSystemBarBackgrounds" since="21" />
-		<field name="windowEnableSplitTouch" since="11" />
-		<field name="windowEnterAnimation" />
-		<field name="windowEnterTransition" since="21" />
-		<field name="windowExitAnimation" />
-		<field name="windowExitTransition" since="21" />
-		<field name="windowFrame" />
-		<field name="windowFullscreen" />
-		<field name="windowHideAnimation" />
-		<field name="windowIsFloating" />
-		<field name="windowIsTranslucent" />
-		<field name="windowMinWidthMajor" since="11" />
-		<field name="windowMinWidthMinor" since="11" />
-		<field name="windowNoDisplay" since="3" />
-		<field name="windowNoTitle" />
-		<field name="windowOverscan" since="18" />
-		<field name="windowSharedElementEnterTransition" since="21" />
-		<field name="windowSharedElementExitTransition" since="21" />
-		<field name="windowShowAnimation" />
-		<field name="windowShowWallpaper" since="5" />
-		<field name="windowSoftInputMode" since="3" />
-		<field name="windowSwipeToDismiss" since="20" />
-		<field name="windowTitleBackgroundStyle" />
-		<field name="windowTitleSize" />
-		<field name="windowTitleStyle" />
-		<field name="windowTranslucentNavigation" since="19" />
-		<field name="windowTranslucentStatus" since="19" />
-		<field name="writePermission" />
-		<field name="x" />
-		<field name="xlargeScreens" since="9" />
-		<field name="y" />
-		<field name="yesNoPreferenceStyle" />
-		<field name="zAdjustment" />
-	</class>
-	<class name="android/R$bool" since="3">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/R$color" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="background_dark" />
-		<field name="background_light" />
-		<field name="black" />
-		<field name="darker_gray" />
-		<field name="holo_blue_bright" since="14" />
-		<field name="holo_blue_dark" since="14" />
-		<field name="holo_blue_light" since="14" />
-		<field name="holo_green_dark" since="14" />
-		<field name="holo_green_light" since="14" />
-		<field name="holo_orange_dark" since="14" />
-		<field name="holo_orange_light" since="14" />
-		<field name="holo_purple" since="14" />
-		<field name="holo_red_dark" since="14" />
-		<field name="holo_red_light" since="14" />
-		<field name="primary_text_dark" />
-		<field name="primary_text_dark_nodisable" />
-		<field name="primary_text_light" />
-		<field name="primary_text_light_nodisable" />
-		<field name="secondary_text_dark" />
-		<field name="secondary_text_dark_nodisable" />
-		<field name="secondary_text_light" />
-		<field name="secondary_text_light_nodisable" />
-		<field name="tab_indicator_text" />
-		<field name="tertiary_text_dark" />
-		<field name="tertiary_text_light" />
-		<field name="transparent" />
-		<field name="white" />
-		<field name="widget_edittext_dark" />
-	</class>
-	<class name="android/R$dimen" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="app_icon_size" />
-		<field name="dialog_min_width_major" since="11" />
-		<field name="dialog_min_width_minor" since="11" />
-		<field name="l_resource_pad1" since="21" />
-		<field name="l_resource_pad10" since="21" />
-		<field name="l_resource_pad2" since="21" />
-		<field name="l_resource_pad3" since="21" />
-		<field name="l_resource_pad4" since="21" />
-		<field name="l_resource_pad5" since="21" />
-		<field name="l_resource_pad6" since="21" />
-		<field name="l_resource_pad7" since="21" />
-		<field name="l_resource_pad8" since="21" />
-		<field name="l_resource_pad9" since="21" />
-		<field name="notification_large_icon_height" since="11" />
-		<field name="notification_large_icon_width" since="11" />
-		<field name="thumbnail_height" />
-		<field name="thumbnail_width" />
-	</class>
-	<class name="android/R$drawable" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="alert_dark_frame" />
-		<field name="alert_light_frame" />
-		<field name="arrow_down_float" />
-		<field name="arrow_up_float" />
-		<field name="bottom_bar" />
-		<field name="btn_default" />
-		<field name="btn_default_small" />
-		<field name="btn_dialog" />
-		<field name="btn_dropdown" />
-		<field name="btn_minus" />
-		<field name="btn_plus" />
-		<field name="btn_radio" />
-		<field name="btn_star" />
-		<field name="btn_star_big_off" />
-		<field name="btn_star_big_on" />
-		<field name="button_onoff_indicator_off" />
-		<field name="button_onoff_indicator_on" />
-		<field name="checkbox_off_background" />
-		<field name="checkbox_on_background" />
-		<field name="dark_header" since="3" />
-		<field name="dialog_frame" />
-		<field name="dialog_holo_dark_frame" since="11" />
-		<field name="dialog_holo_light_frame" since="11" />
-		<field name="divider_horizontal_bright" />
-		<field name="divider_horizontal_dark" />
-		<field name="divider_horizontal_dim_dark" />
-		<field name="divider_horizontal_textfield" />
-		<field name="edit_text" />
-		<field name="editbox_background" />
-		<field name="editbox_background_normal" />
-		<field name="editbox_dropdown_dark_frame" />
-		<field name="editbox_dropdown_light_frame" />
-		<field name="gallery_thumb" />
-		<field name="ic_btn_speak_now" since="3" />
-		<field name="ic_delete" />
-		<field name="ic_dialog_alert" />
-		<field name="ic_dialog_dialer" />
-		<field name="ic_dialog_email" />
-		<field name="ic_dialog_info" />
-		<field name="ic_dialog_map" />
-		<field name="ic_input_add" />
-		<field name="ic_input_delete" />
-		<field name="ic_input_get" />
-		<field name="ic_lock_idle_alarm" />
-		<field name="ic_lock_idle_charging" />
-		<field name="ic_lock_idle_lock" />
-		<field name="ic_lock_idle_low_battery" />
-		<field name="ic_lock_lock" />
-		<field name="ic_lock_power_off" />
-		<field name="ic_lock_silent_mode" />
-		<field name="ic_lock_silent_mode_off" />
-		<field name="ic_media_ff" />
-		<field name="ic_media_next" />
-		<field name="ic_media_pause" />
-		<field name="ic_media_play" />
-		<field name="ic_media_previous" />
-		<field name="ic_media_rew" />
-		<field name="ic_menu_add" />
-		<field name="ic_menu_agenda" />
-		<field name="ic_menu_always_landscape_portrait" />
-		<field name="ic_menu_call" />
-		<field name="ic_menu_camera" />
-		<field name="ic_menu_close_clear_cancel" />
-		<field name="ic_menu_compass" />
-		<field name="ic_menu_crop" />
-		<field name="ic_menu_day" />
-		<field name="ic_menu_delete" />
-		<field name="ic_menu_directions" />
-		<field name="ic_menu_edit" />
-		<field name="ic_menu_gallery" />
-		<field name="ic_menu_help" />
-		<field name="ic_menu_info_details" />
-		<field name="ic_menu_manage" />
-		<field name="ic_menu_mapmode" />
-		<field name="ic_menu_month" />
-		<field name="ic_menu_more" />
-		<field name="ic_menu_my_calendar" />
-		<field name="ic_menu_mylocation" />
-		<field name="ic_menu_myplaces" />
-		<field name="ic_menu_preferences" />
-		<field name="ic_menu_recent_history" />
-		<field name="ic_menu_report_image" />
-		<field name="ic_menu_revert" />
-		<field name="ic_menu_rotate" />
-		<field name="ic_menu_save" />
-		<field name="ic_menu_search" />
-		<field name="ic_menu_send" />
-		<field name="ic_menu_set_as" />
-		<field name="ic_menu_share" />
-		<field name="ic_menu_slideshow" />
-		<field name="ic_menu_sort_alphabetically" />
-		<field name="ic_menu_sort_by_size" />
-		<field name="ic_menu_today" />
-		<field name="ic_menu_upload" />
-		<field name="ic_menu_upload_you_tube" />
-		<field name="ic_menu_view" />
-		<field name="ic_menu_week" />
-		<field name="ic_menu_zoom" />
-		<field name="ic_notification_clear_all" />
-		<field name="ic_notification_overlay" />
-		<field name="ic_partial_secure" />
-		<field name="ic_popup_disk_full" />
-		<field name="ic_popup_reminder" />
-		<field name="ic_popup_sync" />
-		<field name="ic_search_category_default" />
-		<field name="ic_secure" />
-		<field name="list_selector_background" />
-		<field name="menu_frame" />
-		<field name="menu_full_frame" />
-		<field name="menuitem_background" />
-		<field name="picture_frame" />
-		<field name="presence_audio_away" since="9" />
-		<field name="presence_audio_busy" since="9" />
-		<field name="presence_audio_online" since="9" />
-		<field name="presence_away" />
-		<field name="presence_busy" />
-		<field name="presence_invisible" />
-		<field name="presence_offline" />
-		<field name="presence_online" />
-		<field name="presence_video_away" since="9" />
-		<field name="presence_video_busy" since="9" />
-		<field name="presence_video_online" since="9" />
-		<field name="progress_horizontal" />
-		<field name="progress_indeterminate_horizontal" />
-		<field name="radiobutton_off_background" />
-		<field name="radiobutton_on_background" />
-		<field name="screen_background_dark" />
-		<field name="screen_background_dark_transparent" since="5" />
-		<field name="screen_background_light" />
-		<field name="screen_background_light_transparent" since="5" />
-		<field name="spinner_background" />
-		<field name="spinner_dropdown_background" />
-		<field name="star_big_off" />
-		<field name="star_big_on" />
-		<field name="star_off" />
-		<field name="star_on" />
-		<field name="stat_notify_call_mute" />
-		<field name="stat_notify_chat" />
-		<field name="stat_notify_error" />
-		<field name="stat_notify_missed_call" />
-		<field name="stat_notify_more" />
-		<field name="stat_notify_sdcard" />
-		<field name="stat_notify_sdcard_prepare" since="5" />
-		<field name="stat_notify_sdcard_usb" />
-		<field name="stat_notify_sync" />
-		<field name="stat_notify_sync_noanim" />
-		<field name="stat_notify_voicemail" />
-		<field name="stat_sys_data_bluetooth" />
-		<field name="stat_sys_download" />
-		<field name="stat_sys_download_done" />
-		<field name="stat_sys_headset" />
-		<field name="stat_sys_phone_call" />
-		<field name="stat_sys_phone_call_forward" />
-		<field name="stat_sys_phone_call_on_hold" />
-		<field name="stat_sys_speakerphone" />
-		<field name="stat_sys_upload" />
-		<field name="stat_sys_upload_done" />
-		<field name="stat_sys_vp_phone_call" since="4" />
-		<field name="stat_sys_vp_phone_call_on_hold" since="4" />
-		<field name="stat_sys_warning" />
-		<field name="status_bar_item_app_background" />
-		<field name="status_bar_item_background" />
-		<field name="sym_action_call" />
-		<field name="sym_action_chat" />
-		<field name="sym_action_email" />
-		<field name="sym_call_incoming" />
-		<field name="sym_call_missed" />
-		<field name="sym_call_outgoing" />
-		<field name="sym_contact_card" />
-		<field name="sym_def_app_icon" />
-		<field name="title_bar" />
-		<field name="title_bar_tall" since="3" />
-		<field name="toast_frame" />
-		<field name="zoom_plate" />
-	</class>
-	<class name="android/R$fraction" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/R$id" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="addToDictionary" since="3" />
-		<field name="background" />
-		<field name="button1" />
-		<field name="button2" />
-		<field name="button3" />
-		<field name="candidatesArea" since="3" />
-		<field name="checkbox" />
-		<field name="closeButton" since="3" />
-		<field name="content" />
-		<field name="copy" since="3" />
-		<field name="copyUrl" since="3" />
-		<field name="custom" since="8" />
-		<field name="cut" since="3" />
-		<field name="edit" />
-		<field name="empty" />
-		<field name="extractArea" since="3" />
-		<field name="hint" />
-		<field name="home" since="11" />
-		<field name="icon" />
-		<field name="icon1" />
-		<field name="icon2" />
-		<field name="input" />
-		<field name="inputArea" since="3" />
-		<field name="inputExtractEditText" since="3" />
-		<field name="keyboardView" since="3" />
-		<field name="l_resource_pad1" since="21" />
-		<field name="l_resource_pad10" since="21" />
-		<field name="l_resource_pad11" since="21" />
-		<field name="l_resource_pad12" since="21" />
-		<field name="l_resource_pad13" since="21" />
-		<field name="l_resource_pad14" since="21" />
-		<field name="l_resource_pad15" since="21" />
-		<field name="l_resource_pad16" since="21" />
-		<field name="l_resource_pad17" since="21" />
-		<field name="l_resource_pad18" since="21" />
-		<field name="l_resource_pad19" since="21" />
-		<field name="l_resource_pad2" since="21" />
-		<field name="l_resource_pad3" since="21" />
-		<field name="l_resource_pad4" since="21" />
-		<field name="l_resource_pad5" since="21" />
-		<field name="l_resource_pad6" since="21" />
-		<field name="l_resource_pad7" since="21" />
-		<field name="l_resource_pad8" since="21" />
-		<field name="l_resource_pad9" since="21" />
-		<field name="list" />
-		<field name="mask" since="21" />
-		<field name="message" />
-		<field name="paste" since="3" />
-		<field name="primary" />
-		<field name="progress" />
-		<field name="secondaryProgress" />
-		<field name="selectAll" since="3" />
-		<field name="selectTextMode" since="11" />
-		<field name="selectedIcon" />
-		<field name="startSelectingText" since="3" />
-		<field name="stopSelectingText" since="3" />
-		<field name="summary" />
-		<field name="switchInputMethod" since="3" />
-		<field name="tabcontent" />
-		<field name="tabhost" />
-		<field name="tabs" />
-		<field name="text1" />
-		<field name="text2" />
-		<field name="title" />
-		<field name="toggle" />
-		<field name="widget_frame" />
-	</class>
-	<class name="android/R$integer" since="3">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="config_longAnimTime" />
-		<field name="config_mediumAnimTime" />
-		<field name="config_shortAnimTime" />
-		<field name="status_bar_notification_info_maxnum" since="14" />
-	</class>
-	<class name="android/R$interpolator" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="accelerate_cubic" />
-		<field name="accelerate_decelerate" />
-		<field name="accelerate_quad" />
-		<field name="accelerate_quint" />
-		<field name="anticipate" />
-		<field name="anticipate_overshoot" />
-		<field name="bounce" />
-		<field name="cycle" />
-		<field name="decelerate_cubic" />
-		<field name="decelerate_quad" />
-		<field name="decelerate_quint" />
-		<field name="fast_out_linear_in" since="21" />
-		<field name="fast_out_slow_in" since="21" />
-		<field name="l_resource_pad1" since="21" />
-		<field name="l_resource_pad2" since="21" />
-		<field name="l_resource_pad3" since="21" />
-		<field name="l_resource_pad4" since="21" />
-		<field name="linear" />
-		<field name="linear_out_slow_in" since="21" />
-		<field name="overshoot" />
-	</class>
-	<class name="android/R$layout" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="activity_list_item" />
-		<field name="browser_link_context_header" />
-		<field name="expandable_list_content" />
-		<field name="list_content" since="11" />
-		<field name="preference_category" />
-		<field name="select_dialog_item" />
-		<field name="select_dialog_multichoice" />
-		<field name="select_dialog_singlechoice" />
-		<field name="simple_dropdown_item_1line" />
-		<field name="simple_expandable_list_item_1" />
-		<field name="simple_expandable_list_item_2" />
-		<field name="simple_gallery_item" />
-		<field name="simple_list_item_1" />
-		<field name="simple_list_item_2" />
-		<field name="simple_list_item_activated_1" since="11" />
-		<field name="simple_list_item_activated_2" since="11" />
-		<field name="simple_list_item_checked" />
-		<field name="simple_list_item_multiple_choice" />
-		<field name="simple_list_item_single_choice" />
-		<field name="simple_selectable_list_item" since="11" />
-		<field name="simple_spinner_dropdown_item" />
-		<field name="simple_spinner_item" />
-		<field name="test_list_item" />
-		<field name="two_line_list_item" />
-	</class>
-	<class name="android/R$menu" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/R$mipmap" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="sym_def_app_icon" />
-	</class>
-	<class name="android/R$plurals" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/R$raw" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/R$string" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="VideoView_error_button" />
-		<field name="VideoView_error_text_invalid_progressive_playback" since="3" />
-		<field name="VideoView_error_text_unknown" />
-		<field name="VideoView_error_title" />
-		<field name="cancel" />
-		<field name="copy" />
-		<field name="copyUrl" />
-		<field name="cut" />
-		<field name="defaultMsisdnAlphaTag" />
-		<field name="defaultVoiceMailAlphaTag" />
-		<field name="dialog_alert_title" since="3" />
-		<field name="emptyPhoneNumber" />
-		<field name="httpErrorBadUrl" />
-		<field name="httpErrorUnsupportedScheme" />
-		<field name="no" />
-		<field name="ok" />
-		<field name="paste" />
-		<field name="search_go" />
-		<field name="selectAll" />
-		<field name="selectTextMode" since="11" />
-		<field name="status_bar_notification_info_overflow" since="14" />
-		<field name="unknownName" />
-		<field name="untitled" />
-		<field name="yes" />
-	</class>
-	<class name="android/R$style" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="Animation" />
-		<field name="Animation_Activity" />
-		<field name="Animation_Dialog" />
-		<field name="Animation_InputMethod" since="5" />
-		<field name="Animation_Toast" />
-		<field name="Animation_Translucent" />
-		<field name="DeviceDefault_ButtonBar" since="14" />
-		<field name="DeviceDefault_ButtonBar_AlertDialog" since="14" />
-		<field name="DeviceDefault_Light_ButtonBar" since="14" />
-		<field name="DeviceDefault_Light_ButtonBar_AlertDialog" since="14" />
-		<field name="DeviceDefault_Light_SegmentedButton" since="14" />
-		<field name="DeviceDefault_SegmentedButton" since="14" />
-		<field name="Holo_ButtonBar" since="11" />
-		<field name="Holo_ButtonBar_AlertDialog" since="11" />
-		<field name="Holo_Light_ButtonBar" since="11" />
-		<field name="Holo_Light_ButtonBar_AlertDialog" since="11" />
-		<field name="Holo_Light_SegmentedButton" since="11" />
-		<field name="Holo_SegmentedButton" since="11" />
-		<field name="MediaButton" />
-		<field name="MediaButton_Ffwd" />
-		<field name="MediaButton_Next" />
-		<field name="MediaButton_Pause" />
-		<field name="MediaButton_Play" />
-		<field name="MediaButton_Previous" />
-		<field name="MediaButton_Rew" />
-		<field name="TextAppearance" />
-		<field name="TextAppearance_DeviceDefault" since="14" />
-		<field name="TextAppearance_DeviceDefault_DialogWindowTitle" since="14" />
-		<field name="TextAppearance_DeviceDefault_Inverse" since="14" />
-		<field name="TextAppearance_DeviceDefault_Large" since="14" />
-		<field name="TextAppearance_DeviceDefault_Large_Inverse" since="14" />
-		<field name="TextAppearance_DeviceDefault_Medium" since="14" />
-		<field name="TextAppearance_DeviceDefault_Medium_Inverse" since="14" />
-		<field name="TextAppearance_DeviceDefault_SearchResult_Subtitle" since="14" />
-		<field name="TextAppearance_DeviceDefault_SearchResult_Title" since="14" />
-		<field name="TextAppearance_DeviceDefault_Small" since="14" />
-		<field name="TextAppearance_DeviceDefault_Small_Inverse" since="14" />
-		<field name="TextAppearance_DeviceDefault_Widget" since="14" />
-		<field name="TextAppearance_DeviceDefault_Widget_ActionBar_Menu" since="14" />
-		<field name="TextAppearance_DeviceDefault_Widget_ActionBar_Subtitle" since="14" />
-		<field name="TextAppearance_DeviceDefault_Widget_ActionBar_Subtitle_Inverse" since="14" />
-		<field name="TextAppearance_DeviceDefault_Widget_ActionBar_Title" since="14" />
-		<field name="TextAppearance_DeviceDefault_Widget_ActionBar_Title_Inverse" since="14" />
-		<field name="TextAppearance_DeviceDefault_Widget_ActionMode_Subtitle" since="14" />
-		<field name="TextAppearance_DeviceDefault_Widget_ActionMode_Subtitle_Inverse" since="14" />
-		<field name="TextAppearance_DeviceDefault_Widget_ActionMode_Title" since="14" />
-		<field name="TextAppearance_DeviceDefault_Widget_ActionMode_Title_Inverse" since="14" />
-		<field name="TextAppearance_DeviceDefault_Widget_Button" since="14" />
-		<field name="TextAppearance_DeviceDefault_Widget_DropDownHint" since="14" />
-		<field name="TextAppearance_DeviceDefault_Widget_DropDownItem" since="14" />
-		<field name="TextAppearance_DeviceDefault_Widget_EditText" since="14" />
-		<field name="TextAppearance_DeviceDefault_Widget_IconMenu_Item" since="14" />
-		<field name="TextAppearance_DeviceDefault_Widget_PopupMenu" since="14" />
-		<field name="TextAppearance_DeviceDefault_Widget_PopupMenu_Large" since="14" />
-		<field name="TextAppearance_DeviceDefault_Widget_PopupMenu_Small" since="14" />
-		<field name="TextAppearance_DeviceDefault_Widget_TabWidget" since="14" />
-		<field name="TextAppearance_DeviceDefault_Widget_TextView" since="14" />
-		<field name="TextAppearance_DeviceDefault_Widget_TextView_PopupMenu" since="14" />
-		<field name="TextAppearance_DeviceDefault_Widget_TextView_SpinnerItem" since="14" />
-		<field name="TextAppearance_DeviceDefault_WindowTitle" since="14" />
-		<field name="TextAppearance_DialogWindowTitle" />
-		<field name="TextAppearance_Holo" since="13" />
-		<field name="TextAppearance_Holo_DialogWindowTitle" since="13" />
-		<field name="TextAppearance_Holo_Inverse" since="13" />
-		<field name="TextAppearance_Holo_Large" since="13" />
-		<field name="TextAppearance_Holo_Large_Inverse" since="13" />
-		<field name="TextAppearance_Holo_Medium" since="13" />
-		<field name="TextAppearance_Holo_Medium_Inverse" since="13" />
-		<field name="TextAppearance_Holo_SearchResult_Subtitle" since="13" />
-		<field name="TextAppearance_Holo_SearchResult_Title" since="13" />
-		<field name="TextAppearance_Holo_Small" since="13" />
-		<field name="TextAppearance_Holo_Small_Inverse" since="13" />
-		<field name="TextAppearance_Holo_Widget" since="13" />
-		<field name="TextAppearance_Holo_Widget_ActionBar_Menu" since="14" />
-		<field name="TextAppearance_Holo_Widget_ActionBar_Subtitle" since="13" />
-		<field name="TextAppearance_Holo_Widget_ActionBar_Subtitle_Inverse" since="14" />
-		<field name="TextAppearance_Holo_Widget_ActionBar_Title" since="13" />
-		<field name="TextAppearance_Holo_Widget_ActionBar_Title_Inverse" since="14" />
-		<field name="TextAppearance_Holo_Widget_ActionMode_Subtitle" since="13" />
-		<field name="TextAppearance_Holo_Widget_ActionMode_Subtitle_Inverse" since="14" />
-		<field name="TextAppearance_Holo_Widget_ActionMode_Title" since="13" />
-		<field name="TextAppearance_Holo_Widget_ActionMode_Title_Inverse" since="14" />
-		<field name="TextAppearance_Holo_Widget_Button" since="13" />
-		<field name="TextAppearance_Holo_Widget_DropDownHint" since="13" />
-		<field name="TextAppearance_Holo_Widget_DropDownItem" since="13" />
-		<field name="TextAppearance_Holo_Widget_EditText" since="13" />
-		<field name="TextAppearance_Holo_Widget_IconMenu_Item" since="13" />
-		<field name="TextAppearance_Holo_Widget_PopupMenu" since="13" />
-		<field name="TextAppearance_Holo_Widget_PopupMenu_Large" since="13" />
-		<field name="TextAppearance_Holo_Widget_PopupMenu_Small" since="13" />
-		<field name="TextAppearance_Holo_Widget_TabWidget" since="13" />
-		<field name="TextAppearance_Holo_Widget_TextView" since="13" />
-		<field name="TextAppearance_Holo_Widget_TextView_PopupMenu" since="13" />
-		<field name="TextAppearance_Holo_Widget_TextView_SpinnerItem" since="13" />
-		<field name="TextAppearance_Holo_WindowTitle" since="13" />
-		<field name="TextAppearance_Inverse" />
-		<field name="TextAppearance_Large" />
-		<field name="TextAppearance_Large_Inverse" />
-		<field name="TextAppearance_Material" since="21" />
-		<field name="TextAppearance_Material_Body1" since="21" />
-		<field name="TextAppearance_Material_Body2" since="21" />
-		<field name="TextAppearance_Material_Button" since="21" />
-		<field name="TextAppearance_Material_Caption" since="21" />
-		<field name="TextAppearance_Material_DialogWindowTitle" since="21" />
-		<field name="TextAppearance_Material_Display1" since="21" />
-		<field name="TextAppearance_Material_Display2" since="21" />
-		<field name="TextAppearance_Material_Display3" since="21" />
-		<field name="TextAppearance_Material_Display4" since="21" />
-		<field name="TextAppearance_Material_Headline" since="21" />
-		<field name="TextAppearance_Material_Inverse" since="21" />
-		<field name="TextAppearance_Material_Large" since="21" />
-		<field name="TextAppearance_Material_Large_Inverse" since="21" />
-		<field name="TextAppearance_Material_Medium" since="21" />
-		<field name="TextAppearance_Material_Medium_Inverse" since="21" />
-		<field name="TextAppearance_Material_Menu" since="21" />
-		<field name="TextAppearance_Material_SearchResult_Subtitle" since="21" />
-		<field name="TextAppearance_Material_SearchResult_Title" since="21" />
-		<field name="TextAppearance_Material_Small" since="21" />
-		<field name="TextAppearance_Material_Small_Inverse" since="21" />
-		<field name="TextAppearance_Material_Subhead" since="21" />
-		<field name="TextAppearance_Material_Title" since="21" />
-		<field name="TextAppearance_Material_Widget" since="21" />
-		<field name="TextAppearance_Material_Widget_ActionBar_Menu" since="21" />
-		<field name="TextAppearance_Material_Widget_ActionBar_Subtitle" since="21" />
-		<field name="TextAppearance_Material_Widget_ActionBar_Subtitle_Inverse" since="21" />
-		<field name="TextAppearance_Material_Widget_ActionBar_Title" since="21" />
-		<field name="TextAppearance_Material_Widget_ActionBar_Title_Inverse" since="21" />
-		<field name="TextAppearance_Material_Widget_ActionMode_Subtitle" since="21" />
-		<field name="TextAppearance_Material_Widget_ActionMode_Subtitle_Inverse" since="21" />
-		<field name="TextAppearance_Material_Widget_ActionMode_Title" since="21" />
-		<field name="TextAppearance_Material_Widget_ActionMode_Title_Inverse" since="21" />
-		<field name="TextAppearance_Material_Widget_Button" since="21" />
-		<field name="TextAppearance_Material_Widget_DropDownHint" since="21" />
-		<field name="TextAppearance_Material_Widget_DropDownItem" since="21" />
-		<field name="TextAppearance_Material_Widget_EditText" since="21" />
-		<field name="TextAppearance_Material_Widget_IconMenu_Item" since="21" />
-		<field name="TextAppearance_Material_Widget_PopupMenu" since="21" />
-		<field name="TextAppearance_Material_Widget_PopupMenu_Large" since="21" />
-		<field name="TextAppearance_Material_Widget_PopupMenu_Small" since="21" />
-		<field name="TextAppearance_Material_Widget_TabWidget" since="21" />
-		<field name="TextAppearance_Material_Widget_TextView" since="21" />
-		<field name="TextAppearance_Material_Widget_TextView_PopupMenu" since="21" />
-		<field name="TextAppearance_Material_Widget_TextView_SpinnerItem" since="21" />
-		<field name="TextAppearance_Material_WindowTitle" since="21" />
-		<field name="TextAppearance_Medium" />
-		<field name="TextAppearance_Medium_Inverse" />
-		<field name="TextAppearance_Small" />
-		<field name="TextAppearance_Small_Inverse" />
-		<field name="TextAppearance_StatusBar_EventContent" since="9" />
-		<field name="TextAppearance_StatusBar_EventContent_Title" since="9" />
-		<field name="TextAppearance_StatusBar_Icon" since="9" />
-		<field name="TextAppearance_StatusBar_Title" since="9" />
-		<field name="TextAppearance_SuggestionHighlight" since="14" />
-		<field name="TextAppearance_Theme" />
-		<field name="TextAppearance_Theme_Dialog" />
-		<field name="TextAppearance_Widget" />
-		<field name="TextAppearance_Widget_Button" />
-		<field name="TextAppearance_Widget_DropDownHint" />
-		<field name="TextAppearance_Widget_DropDownItem" />
-		<field name="TextAppearance_Widget_EditText" />
-		<field name="TextAppearance_Widget_IconMenu_Item" />
-		<field name="TextAppearance_Widget_PopupMenu_Large" since="11" />
-		<field name="TextAppearance_Widget_PopupMenu_Small" since="11" />
-		<field name="TextAppearance_Widget_TabWidget" />
-		<field name="TextAppearance_Widget_TextView" />
-		<field name="TextAppearance_Widget_TextView_PopupMenu" />
-		<field name="TextAppearance_Widget_TextView_SpinnerItem" />
-		<field name="TextAppearance_WindowTitle" />
-		<field name="Theme" />
-		<field name="ThemeOverlay" since="21" />
-		<field name="ThemeOverlay_Material" since="21" />
-		<field name="ThemeOverlay_Material_ActionBar" since="21" />
-		<field name="ThemeOverlay_Material_Dark" since="21" />
-		<field name="ThemeOverlay_Material_Dark_ActionBar" since="21" />
-		<field name="ThemeOverlay_Material_Light" since="21" />
-		<field name="Theme_Black" />
-		<field name="Theme_Black_NoTitleBar" />
-		<field name="Theme_Black_NoTitleBar_Fullscreen" />
-		<field name="Theme_DeviceDefault" since="14" />
-		<field name="Theme_DeviceDefault_Dialog" since="14" />
-		<field name="Theme_DeviceDefault_DialogWhenLarge" since="14" />
-		<field name="Theme_DeviceDefault_DialogWhenLarge_NoActionBar" since="14" />
-		<field name="Theme_DeviceDefault_Dialog_MinWidth" since="14" />
-		<field name="Theme_DeviceDefault_Dialog_NoActionBar" since="14" />
-		<field name="Theme_DeviceDefault_Dialog_NoActionBar_MinWidth" since="14" />
-		<field name="Theme_DeviceDefault_InputMethod" since="14" />
-		<field name="Theme_DeviceDefault_Light" since="14" />
-		<field name="Theme_DeviceDefault_Light_DarkActionBar" since="14" />
-		<field name="Theme_DeviceDefault_Light_Dialog" since="14" />
-		<field name="Theme_DeviceDefault_Light_DialogWhenLarge" since="14" />
-		<field name="Theme_DeviceDefault_Light_DialogWhenLarge_NoActionBar" since="14" />
-		<field name="Theme_DeviceDefault_Light_Dialog_MinWidth" since="14" />
-		<field name="Theme_DeviceDefault_Light_Dialog_NoActionBar" since="14" />
-		<field name="Theme_DeviceDefault_Light_Dialog_NoActionBar_MinWidth" since="14" />
-		<field name="Theme_DeviceDefault_Light_NoActionBar" since="14" />
-		<field name="Theme_DeviceDefault_Light_NoActionBar_Fullscreen" since="14" />
-		<field name="Theme_DeviceDefault_Light_NoActionBar_Overscan" since="18" />
-		<field name="Theme_DeviceDefault_Light_NoActionBar_TranslucentDecor" since="19" />
-		<field name="Theme_DeviceDefault_Light_Panel" since="14" />
-		<field name="Theme_DeviceDefault_NoActionBar" since="14" />
-		<field name="Theme_DeviceDefault_NoActionBar_Fullscreen" since="14" />
-		<field name="Theme_DeviceDefault_NoActionBar_Overscan" since="18" />
-		<field name="Theme_DeviceDefault_NoActionBar_TranslucentDecor" since="19" />
-		<field name="Theme_DeviceDefault_Panel" since="14" />
-		<field name="Theme_DeviceDefault_Settings" since="21" />
-		<field name="Theme_DeviceDefault_Wallpaper" since="14" />
-		<field name="Theme_DeviceDefault_Wallpaper_NoTitleBar" since="14" />
-		<field name="Theme_Dialog" />
-		<field name="Theme_Holo" since="11" />
-		<field name="Theme_Holo_Dialog" since="11" />
-		<field name="Theme_Holo_DialogWhenLarge" since="11" />
-		<field name="Theme_Holo_DialogWhenLarge_NoActionBar" since="11" />
-		<field name="Theme_Holo_Dialog_MinWidth" since="11" />
-		<field name="Theme_Holo_Dialog_NoActionBar" since="11" />
-		<field name="Theme_Holo_Dialog_NoActionBar_MinWidth" since="11" />
-		<field name="Theme_Holo_InputMethod" since="11" />
-		<field name="Theme_Holo_Light" since="11" />
-		<field name="Theme_Holo_Light_DarkActionBar" since="14" />
-		<field name="Theme_Holo_Light_Dialog" since="11" />
-		<field name="Theme_Holo_Light_DialogWhenLarge" since="11" />
-		<field name="Theme_Holo_Light_DialogWhenLarge_NoActionBar" since="11" />
-		<field name="Theme_Holo_Light_Dialog_MinWidth" since="11" />
-		<field name="Theme_Holo_Light_Dialog_NoActionBar" since="11" />
-		<field name="Theme_Holo_Light_Dialog_NoActionBar_MinWidth" since="11" />
-		<field name="Theme_Holo_Light_NoActionBar" since="13" />
-		<field name="Theme_Holo_Light_NoActionBar_Fullscreen" since="13" />
-		<field name="Theme_Holo_Light_NoActionBar_Overscan" since="18" />
-		<field name="Theme_Holo_Light_NoActionBar_TranslucentDecor" since="19" />
-		<field name="Theme_Holo_Light_Panel" since="11" />
-		<field name="Theme_Holo_NoActionBar" since="11" />
-		<field name="Theme_Holo_NoActionBar_Fullscreen" since="11" />
-		<field name="Theme_Holo_NoActionBar_Overscan" since="18" />
-		<field name="Theme_Holo_NoActionBar_TranslucentDecor" since="19" />
-		<field name="Theme_Holo_Panel" since="11" />
-		<field name="Theme_Holo_Wallpaper" since="11" />
-		<field name="Theme_Holo_Wallpaper_NoTitleBar" since="11" />
-		<field name="Theme_InputMethod" since="3" />
-		<field name="Theme_Light" />
-		<field name="Theme_Light_NoTitleBar" />
-		<field name="Theme_Light_NoTitleBar_Fullscreen" />
-		<field name="Theme_Light_Panel" since="3" />
-		<field name="Theme_Light_WallpaperSettings" since="5" />
-		<field name="Theme_Material" since="21" />
-		<field name="Theme_Material_Dialog" since="21" />
-		<field name="Theme_Material_DialogWhenLarge" since="21" />
-		<field name="Theme_Material_DialogWhenLarge_NoActionBar" since="21" />
-		<field name="Theme_Material_Dialog_MinWidth" since="21" />
-		<field name="Theme_Material_Dialog_NoActionBar" since="21" />
-		<field name="Theme_Material_Dialog_NoActionBar_MinWidth" since="21" />
-		<field name="Theme_Material_InputMethod" since="21" />
-		<field name="Theme_Material_Light" since="21" />
-		<field name="Theme_Material_Light_DarkActionBar" since="21" />
-		<field name="Theme_Material_Light_Dialog" since="21" />
-		<field name="Theme_Material_Light_DialogWhenLarge" since="21" />
-		<field name="Theme_Material_Light_DialogWhenLarge_NoActionBar" since="21" />
-		<field name="Theme_Material_Light_Dialog_MinWidth" since="21" />
-		<field name="Theme_Material_Light_Dialog_NoActionBar" since="21" />
-		<field name="Theme_Material_Light_Dialog_NoActionBar_MinWidth" since="21" />
-		<field name="Theme_Material_Light_NoActionBar" since="21" />
-		<field name="Theme_Material_Light_NoActionBar_Fullscreen" since="21" />
-		<field name="Theme_Material_Light_NoActionBar_Overscan" since="21" />
-		<field name="Theme_Material_Light_NoActionBar_TranslucentDecor" since="21" />
-		<field name="Theme_Material_Light_Panel" since="21" />
-		<field name="Theme_Material_Light_Voice" since="21" />
-		<field name="Theme_Material_NoActionBar" since="21" />
-		<field name="Theme_Material_NoActionBar_Fullscreen" since="21" />
-		<field name="Theme_Material_NoActionBar_Overscan" since="21" />
-		<field name="Theme_Material_NoActionBar_TranslucentDecor" since="21" />
-		<field name="Theme_Material_Panel" since="21" />
-		<field name="Theme_Material_Settings" since="21" />
-		<field name="Theme_Material_Voice" since="21" />
-		<field name="Theme_Material_Wallpaper" since="21" />
-		<field name="Theme_Material_Wallpaper_NoTitleBar" since="21" />
-		<field name="Theme_NoDisplay" since="3" />
-		<field name="Theme_NoTitleBar" />
-		<field name="Theme_NoTitleBar_Fullscreen" />
-		<field name="Theme_NoTitleBar_OverlayActionModes" since="11" />
-		<field name="Theme_Panel" since="3" />
-		<field name="Theme_Translucent" />
-		<field name="Theme_Translucent_NoTitleBar" />
-		<field name="Theme_Translucent_NoTitleBar_Fullscreen" />
-		<field name="Theme_Wallpaper" since="5" />
-		<field name="Theme_WallpaperSettings" since="5" />
-		<field name="Theme_Wallpaper_NoTitleBar" since="5" />
-		<field name="Theme_Wallpaper_NoTitleBar_Fullscreen" since="5" />
-		<field name="Theme_WithActionBar" since="11" />
-		<field name="Widget" />
-		<field name="Widget_AbsListView" />
-		<field name="Widget_ActionBar" since="11" />
-		<field name="Widget_ActionBar_TabBar" since="13" />
-		<field name="Widget_ActionBar_TabText" since="13" />
-		<field name="Widget_ActionBar_TabView" since="13" />
-		<field name="Widget_ActionButton" since="11" />
-		<field name="Widget_ActionButton_CloseMode" since="11" />
-		<field name="Widget_ActionButton_Overflow" since="11" />
-		<field name="Widget_AutoCompleteTextView" />
-		<field name="Widget_Button" />
-		<field name="Widget_Button_Inset" />
-		<field name="Widget_Button_Small" />
-		<field name="Widget_Button_Toggle" />
-		<field name="Widget_CalendarView" since="11" />
-		<field name="Widget_CompoundButton" />
-		<field name="Widget_CompoundButton_CheckBox" />
-		<field name="Widget_CompoundButton_RadioButton" />
-		<field name="Widget_CompoundButton_Star" />
-		<field name="Widget_DatePicker" since="11" />
-		<field name="Widget_DeviceDefault" since="14" />
-		<field name="Widget_DeviceDefault_ActionBar" since="14" />
-		<field name="Widget_DeviceDefault_ActionBar_Solid" since="14" />
-		<field name="Widget_DeviceDefault_ActionBar_TabBar" since="14" />
-		<field name="Widget_DeviceDefault_ActionBar_TabText" since="14" />
-		<field name="Widget_DeviceDefault_ActionBar_TabView" since="14" />
-		<field name="Widget_DeviceDefault_ActionButton" since="14" />
-		<field name="Widget_DeviceDefault_ActionButton_CloseMode" since="14" />
-		<field name="Widget_DeviceDefault_ActionButton_Overflow" since="14" />
-		<field name="Widget_DeviceDefault_ActionButton_TextButton" since="14" />
-		<field name="Widget_DeviceDefault_ActionMode" since="14" />
-		<field name="Widget_DeviceDefault_AutoCompleteTextView" since="14" />
-		<field name="Widget_DeviceDefault_Button" since="14" />
-		<field name="Widget_DeviceDefault_Button_Borderless" since="14" />
-		<field name="Widget_DeviceDefault_Button_Borderless_Small" since="14" />
-		<field name="Widget_DeviceDefault_Button_Inset" since="14" />
-		<field name="Widget_DeviceDefault_Button_Small" since="14" />
-		<field name="Widget_DeviceDefault_Button_Toggle" since="14" />
-		<field name="Widget_DeviceDefault_CalendarView" since="14" />
-		<field name="Widget_DeviceDefault_CheckedTextView" since="17" />
-		<field name="Widget_DeviceDefault_CompoundButton_CheckBox" since="14" />
-		<field name="Widget_DeviceDefault_CompoundButton_RadioButton" since="14" />
-		<field name="Widget_DeviceDefault_CompoundButton_Star" since="14" />
-		<field name="Widget_DeviceDefault_DatePicker" since="14" />
-		<field name="Widget_DeviceDefault_DropDownItem" since="14" />
-		<field name="Widget_DeviceDefault_DropDownItem_Spinner" since="14" />
-		<field name="Widget_DeviceDefault_EditText" since="14" />
-		<field name="Widget_DeviceDefault_ExpandableListView" since="14" />
-		<field name="Widget_DeviceDefault_FastScroll" since="21" />
-		<field name="Widget_DeviceDefault_GridView" since="14" />
-		<field name="Widget_DeviceDefault_HorizontalScrollView" since="14" />
-		<field name="Widget_DeviceDefault_ImageButton" since="14" />
-		<field name="Widget_DeviceDefault_Light" since="14" />
-		<field name="Widget_DeviceDefault_Light_ActionBar" since="14" />
-		<field name="Widget_DeviceDefault_Light_ActionBar_Solid" since="14" />
-		<field name="Widget_DeviceDefault_Light_ActionBar_Solid_Inverse" since="14" />
-		<field name="Widget_DeviceDefault_Light_ActionBar_TabBar" since="14" />
-		<field name="Widget_DeviceDefault_Light_ActionBar_TabBar_Inverse" since="14" />
-		<field name="Widget_DeviceDefault_Light_ActionBar_TabText" since="14" />
-		<field name="Widget_DeviceDefault_Light_ActionBar_TabText_Inverse" since="14" />
-		<field name="Widget_DeviceDefault_Light_ActionBar_TabView" since="14" />
-		<field name="Widget_DeviceDefault_Light_ActionBar_TabView_Inverse" since="14" />
-		<field name="Widget_DeviceDefault_Light_ActionButton" since="14" />
-		<field name="Widget_DeviceDefault_Light_ActionButton_CloseMode" since="14" />
-		<field name="Widget_DeviceDefault_Light_ActionButton_Overflow" since="14" />
-		<field name="Widget_DeviceDefault_Light_ActionMode" since="14" />
-		<field name="Widget_DeviceDefault_Light_ActionMode_Inverse" since="14" />
-		<field name="Widget_DeviceDefault_Light_AutoCompleteTextView" since="14" />
-		<field name="Widget_DeviceDefault_Light_Button" since="14" />
-		<field name="Widget_DeviceDefault_Light_Button_Borderless_Small" since="14" />
-		<field name="Widget_DeviceDefault_Light_Button_Inset" since="14" />
-		<field name="Widget_DeviceDefault_Light_Button_Small" since="14" />
-		<field name="Widget_DeviceDefault_Light_Button_Toggle" since="14" />
-		<field name="Widget_DeviceDefault_Light_CalendarView" since="14" />
-		<field name="Widget_DeviceDefault_Light_CheckedTextView" since="17" />
-		<field name="Widget_DeviceDefault_Light_CompoundButton_CheckBox" since="14" />
-		<field name="Widget_DeviceDefault_Light_CompoundButton_RadioButton" since="14" />
-		<field name="Widget_DeviceDefault_Light_CompoundButton_Star" since="14" />
-		<field name="Widget_DeviceDefault_Light_DropDownItem" since="14" />
-		<field name="Widget_DeviceDefault_Light_DropDownItem_Spinner" since="14" />
-		<field name="Widget_DeviceDefault_Light_EditText" since="14" />
-		<field name="Widget_DeviceDefault_Light_ExpandableListView" since="14" />
-		<field name="Widget_DeviceDefault_Light_FastScroll" since="21" />
-		<field name="Widget_DeviceDefault_Light_GridView" since="14" />
-		<field name="Widget_DeviceDefault_Light_HorizontalScrollView" since="14" />
-		<field name="Widget_DeviceDefault_Light_ImageButton" since="14" />
-		<field name="Widget_DeviceDefault_Light_ListPopupWindow" since="14" />
-		<field name="Widget_DeviceDefault_Light_ListView" since="14" />
-		<field name="Widget_DeviceDefault_Light_ListView_DropDown" since="14" />
-		<field name="Widget_DeviceDefault_Light_MediaRouteButton" since="16" />
-		<field name="Widget_DeviceDefault_Light_PopupMenu" since="14" />
-		<field name="Widget_DeviceDefault_Light_PopupWindow" since="14" />
-		<field name="Widget_DeviceDefault_Light_ProgressBar" since="14" />
-		<field name="Widget_DeviceDefault_Light_ProgressBar_Horizontal" since="14" />
-		<field name="Widget_DeviceDefault_Light_ProgressBar_Inverse" since="14" />
-		<field name="Widget_DeviceDefault_Light_ProgressBar_Large" since="14" />
-		<field name="Widget_DeviceDefault_Light_ProgressBar_Large_Inverse" since="14" />
-		<field name="Widget_DeviceDefault_Light_ProgressBar_Small" since="14" />
-		<field name="Widget_DeviceDefault_Light_ProgressBar_Small_Inverse" since="14" />
-		<field name="Widget_DeviceDefault_Light_ProgressBar_Small_Title" since="14" />
-		<field name="Widget_DeviceDefault_Light_RatingBar" since="14" />
-		<field name="Widget_DeviceDefault_Light_RatingBar_Indicator" since="14" />
-		<field name="Widget_DeviceDefault_Light_RatingBar_Small" since="14" />
-		<field name="Widget_DeviceDefault_Light_ScrollView" since="14" />
-		<field name="Widget_DeviceDefault_Light_SeekBar" since="14" />
-		<field name="Widget_DeviceDefault_Light_Spinner" since="14" />
-		<field name="Widget_DeviceDefault_Light_StackView" since="21" />
-		<field name="Widget_DeviceDefault_Light_Tab" since="14" />
-		<field name="Widget_DeviceDefault_Light_TabWidget" since="14" />
-		<field name="Widget_DeviceDefault_Light_TextView" since="14" />
-		<field name="Widget_DeviceDefault_Light_TextView_SpinnerItem" since="14" />
-		<field name="Widget_DeviceDefault_Light_WebTextView" since="14" />
-		<field name="Widget_DeviceDefault_Light_WebView" since="14" />
-		<field name="Widget_DeviceDefault_ListPopupWindow" since="14" />
-		<field name="Widget_DeviceDefault_ListView" since="14" />
-		<field name="Widget_DeviceDefault_ListView_DropDown" since="14" />
-		<field name="Widget_DeviceDefault_MediaRouteButton" since="16" />
-		<field name="Widget_DeviceDefault_PopupMenu" since="14" />
-		<field name="Widget_DeviceDefault_PopupWindow" since="14" />
-		<field name="Widget_DeviceDefault_ProgressBar" since="14" />
-		<field name="Widget_DeviceDefault_ProgressBar_Horizontal" since="14" />
-		<field name="Widget_DeviceDefault_ProgressBar_Large" since="14" />
-		<field name="Widget_DeviceDefault_ProgressBar_Small" since="14" />
-		<field name="Widget_DeviceDefault_ProgressBar_Small_Title" since="14" />
-		<field name="Widget_DeviceDefault_RatingBar" since="14" />
-		<field name="Widget_DeviceDefault_RatingBar_Indicator" since="14" />
-		<field name="Widget_DeviceDefault_RatingBar_Small" since="14" />
-		<field name="Widget_DeviceDefault_ScrollView" since="14" />
-		<field name="Widget_DeviceDefault_SeekBar" since="14" />
-		<field name="Widget_DeviceDefault_Spinner" since="14" />
-		<field name="Widget_DeviceDefault_StackView" since="21" />
-		<field name="Widget_DeviceDefault_Tab" since="14" />
-		<field name="Widget_DeviceDefault_TabWidget" since="14" />
-		<field name="Widget_DeviceDefault_TextView" since="14" />
-		<field name="Widget_DeviceDefault_TextView_SpinnerItem" since="14" />
-		<field name="Widget_DeviceDefault_WebTextView" since="14" />
-		<field name="Widget_DeviceDefault_WebView" since="14" />
-		<field name="Widget_DropDownItem" />
-		<field name="Widget_DropDownItem_Spinner" />
-		<field name="Widget_EditText" />
-		<field name="Widget_ExpandableListView" />
-		<field name="Widget_FastScroll" since="21" />
-		<field name="Widget_FragmentBreadCrumbs" since="11" />
-		<field name="Widget_Gallery" />
-		<field name="Widget_GridView" />
-		<field name="Widget_Holo" since="11" />
-		<field name="Widget_Holo_ActionBar" since="11" />
-		<field name="Widget_Holo_ActionBar_Solid" since="14" />
-		<field name="Widget_Holo_ActionBar_TabBar" since="13" />
-		<field name="Widget_Holo_ActionBar_TabText" since="13" />
-		<field name="Widget_Holo_ActionBar_TabView" since="13" />
-		<field name="Widget_Holo_ActionButton" since="11" />
-		<field name="Widget_Holo_ActionButton_CloseMode" since="11" />
-		<field name="Widget_Holo_ActionButton_Overflow" since="11" />
-		<field name="Widget_Holo_ActionButton_TextButton" since="11" />
-		<field name="Widget_Holo_ActionMode" since="11" />
-		<field name="Widget_Holo_AutoCompleteTextView" since="11" />
-		<field name="Widget_Holo_Button" since="11" />
-		<field name="Widget_Holo_Button_Borderless" since="11" />
-		<field name="Widget_Holo_Button_Borderless_Small" since="14" />
-		<field name="Widget_Holo_Button_Inset" since="11" />
-		<field name="Widget_Holo_Button_Small" since="11" />
-		<field name="Widget_Holo_Button_Toggle" since="11" />
-		<field name="Widget_Holo_CalendarView" since="11" />
-		<field name="Widget_Holo_CheckedTextView" since="17" />
-		<field name="Widget_Holo_CompoundButton_CheckBox" since="11" />
-		<field name="Widget_Holo_CompoundButton_RadioButton" since="11" />
-		<field name="Widget_Holo_CompoundButton_Star" since="11" />
-		<field name="Widget_Holo_DatePicker" since="11" />
-		<field name="Widget_Holo_DropDownItem" since="11" />
-		<field name="Widget_Holo_DropDownItem_Spinner" since="11" />
-		<field name="Widget_Holo_EditText" since="11" />
-		<field name="Widget_Holo_ExpandableListView" since="11" />
-		<field name="Widget_Holo_FastScroll" since="21" />
-		<field name="Widget_Holo_GridView" since="11" />
-		<field name="Widget_Holo_HorizontalScrollView" since="11" />
-		<field name="Widget_Holo_ImageButton" since="11" />
-		<field name="Widget_Holo_Light" since="11" />
-		<field name="Widget_Holo_Light_ActionBar" since="11" />
-		<field name="Widget_Holo_Light_ActionBar_Solid" since="14" />
-		<field name="Widget_Holo_Light_ActionBar_Solid_Inverse" since="14" />
-		<field name="Widget_Holo_Light_ActionBar_TabBar" since="13" />
-		<field name="Widget_Holo_Light_ActionBar_TabBar_Inverse" since="14" />
-		<field name="Widget_Holo_Light_ActionBar_TabText" since="13" />
-		<field name="Widget_Holo_Light_ActionBar_TabText_Inverse" since="14" />
-		<field name="Widget_Holo_Light_ActionBar_TabView" since="13" />
-		<field name="Widget_Holo_Light_ActionBar_TabView_Inverse" since="14" />
-		<field name="Widget_Holo_Light_ActionButton" since="11" />
-		<field name="Widget_Holo_Light_ActionButton_CloseMode" since="11" />
-		<field name="Widget_Holo_Light_ActionButton_Overflow" since="11" />
-		<field name="Widget_Holo_Light_ActionMode" since="11" />
-		<field name="Widget_Holo_Light_ActionMode_Inverse" since="14" />
-		<field name="Widget_Holo_Light_AutoCompleteTextView" since="11" />
-		<field name="Widget_Holo_Light_Button" since="11" />
-		<field name="Widget_Holo_Light_Button_Borderless" since="21" />
-		<field name="Widget_Holo_Light_Button_Borderless_Small" since="14" />
-		<field name="Widget_Holo_Light_Button_Inset" since="11" />
-		<field name="Widget_Holo_Light_Button_Small" since="11" />
-		<field name="Widget_Holo_Light_Button_Toggle" since="11" />
-		<field name="Widget_Holo_Light_CalendarView" since="11" />
-		<field name="Widget_Holo_Light_CheckedTextView" since="17" />
-		<field name="Widget_Holo_Light_CompoundButton_CheckBox" since="11" />
-		<field name="Widget_Holo_Light_CompoundButton_RadioButton" since="11" />
-		<field name="Widget_Holo_Light_CompoundButton_Star" since="11" />
-		<field name="Widget_Holo_Light_DropDownItem" since="11" />
-		<field name="Widget_Holo_Light_DropDownItem_Spinner" since="11" />
-		<field name="Widget_Holo_Light_EditText" since="11" />
-		<field name="Widget_Holo_Light_ExpandableListView" since="11" />
-		<field name="Widget_Holo_Light_FastScroll" since="21" />
-		<field name="Widget_Holo_Light_GridView" since="11" />
-		<field name="Widget_Holo_Light_HorizontalScrollView" since="11" />
-		<field name="Widget_Holo_Light_ImageButton" since="11" />
-		<field name="Widget_Holo_Light_ListPopupWindow" since="11" />
-		<field name="Widget_Holo_Light_ListView" since="11" />
-		<field name="Widget_Holo_Light_ListView_DropDown" since="11" />
-		<field name="Widget_Holo_Light_MediaRouteButton" since="16" />
-		<field name="Widget_Holo_Light_PopupMenu" since="11" />
-		<field name="Widget_Holo_Light_PopupWindow" since="11" />
-		<field name="Widget_Holo_Light_ProgressBar" since="11" />
-		<field name="Widget_Holo_Light_ProgressBar_Horizontal" since="11" />
-		<field name="Widget_Holo_Light_ProgressBar_Inverse" since="11" />
-		<field name="Widget_Holo_Light_ProgressBar_Large" since="11" />
-		<field name="Widget_Holo_Light_ProgressBar_Large_Inverse" since="11" />
-		<field name="Widget_Holo_Light_ProgressBar_Small" since="11" />
-		<field name="Widget_Holo_Light_ProgressBar_Small_Inverse" since="11" />
-		<field name="Widget_Holo_Light_ProgressBar_Small_Title" since="11" />
-		<field name="Widget_Holo_Light_RatingBar" since="11" />
-		<field name="Widget_Holo_Light_RatingBar_Indicator" since="11" />
-		<field name="Widget_Holo_Light_RatingBar_Small" since="11" />
-		<field name="Widget_Holo_Light_ScrollView" since="11" />
-		<field name="Widget_Holo_Light_SeekBar" since="11" />
-		<field name="Widget_Holo_Light_Spinner" since="11" />
-		<field name="Widget_Holo_Light_StackView" since="21" />
-		<field name="Widget_Holo_Light_Tab" since="11" />
-		<field name="Widget_Holo_Light_TabWidget" since="11" />
-		<field name="Widget_Holo_Light_TextView" since="11" />
-		<field name="Widget_Holo_Light_TextView_SpinnerItem" since="11" />
-		<field name="Widget_Holo_Light_WebTextView" since="11" />
-		<field name="Widget_Holo_Light_WebView" since="11" />
-		<field name="Widget_Holo_ListPopupWindow" since="11" />
-		<field name="Widget_Holo_ListView" since="11" />
-		<field name="Widget_Holo_ListView_DropDown" since="11" />
-		<field name="Widget_Holo_MediaRouteButton" since="16" />
-		<field name="Widget_Holo_PopupMenu" since="11" />
-		<field name="Widget_Holo_PopupWindow" since="11" />
-		<field name="Widget_Holo_ProgressBar" since="11" />
-		<field name="Widget_Holo_ProgressBar_Horizontal" since="11" />
-		<field name="Widget_Holo_ProgressBar_Large" since="11" />
-		<field name="Widget_Holo_ProgressBar_Small" since="11" />
-		<field name="Widget_Holo_ProgressBar_Small_Title" since="11" />
-		<field name="Widget_Holo_RatingBar" since="11" />
-		<field name="Widget_Holo_RatingBar_Indicator" since="11" />
-		<field name="Widget_Holo_RatingBar_Small" since="11" />
-		<field name="Widget_Holo_ScrollView" since="11" />
-		<field name="Widget_Holo_SeekBar" since="11" />
-		<field name="Widget_Holo_Spinner" since="11" />
-		<field name="Widget_Holo_StackView" since="21" />
-		<field name="Widget_Holo_Tab" since="11" />
-		<field name="Widget_Holo_TabWidget" since="11" />
-		<field name="Widget_Holo_TextView" since="11" />
-		<field name="Widget_Holo_TextView_SpinnerItem" since="11" />
-		<field name="Widget_Holo_WebTextView" since="11" />
-		<field name="Widget_Holo_WebView" since="11" />
-		<field name="Widget_ImageButton" />
-		<field name="Widget_ImageWell" />
-		<field name="Widget_KeyboardView" since="3" />
-		<field name="Widget_ListPopupWindow" since="11" />
-		<field name="Widget_ListView" />
-		<field name="Widget_ListView_DropDown" />
-		<field name="Widget_ListView_Menu" />
-		<field name="Widget_ListView_White" />
-		<field name="Widget_Material" since="21" />
-		<field name="Widget_Material_ActionBar" since="21" />
-		<field name="Widget_Material_ActionBar_Solid" since="21" />
-		<field name="Widget_Material_ActionBar_TabBar" since="21" />
-		<field name="Widget_Material_ActionBar_TabText" since="21" />
-		<field name="Widget_Material_ActionBar_TabView" since="21" />
-		<field name="Widget_Material_ActionButton" since="21" />
-		<field name="Widget_Material_ActionButton_CloseMode" since="21" />
-		<field name="Widget_Material_ActionButton_Overflow" since="21" />
-		<field name="Widget_Material_ActionMode" since="21" />
-		<field name="Widget_Material_AutoCompleteTextView" since="21" />
-		<field name="Widget_Material_Button" since="21" />
-		<field name="Widget_Material_ButtonBar" since="21" />
-		<field name="Widget_Material_ButtonBar_AlertDialog" since="21" />
-		<field name="Widget_Material_Button_Borderless" since="21" />
-		<field name="Widget_Material_Button_Borderless_Small" since="21" />
-		<field name="Widget_Material_Button_Inset" since="21" />
-		<field name="Widget_Material_Button_Small" since="21" />
-		<field name="Widget_Material_Button_Toggle" since="21" />
-		<field name="Widget_Material_CalendarView" since="21" />
-		<field name="Widget_Material_CheckedTextView" since="21" />
-		<field name="Widget_Material_CompoundButton_CheckBox" since="21" />
-		<field name="Widget_Material_CompoundButton_RadioButton" since="21" />
-		<field name="Widget_Material_CompoundButton_Star" since="21" />
-		<field name="Widget_Material_DatePicker" since="21" />
-		<field name="Widget_Material_DropDownItem" since="21" />
-		<field name="Widget_Material_DropDownItem_Spinner" since="21" />
-		<field name="Widget_Material_EditText" since="21" />
-		<field name="Widget_Material_ExpandableListView" since="21" />
-		<field name="Widget_Material_FastScroll" since="21" />
-		<field name="Widget_Material_GridView" since="21" />
-		<field name="Widget_Material_HorizontalScrollView" since="21" />
-		<field name="Widget_Material_ImageButton" since="21" />
-		<field name="Widget_Material_Light" since="21" />
-		<field name="Widget_Material_Light_ActionBar" since="21" />
-		<field name="Widget_Material_Light_ActionBar_Solid" since="21" />
-		<field name="Widget_Material_Light_ActionBar_TabBar" since="21" />
-		<field name="Widget_Material_Light_ActionBar_TabText" since="21" />
-		<field name="Widget_Material_Light_ActionBar_TabView" since="21" />
-		<field name="Widget_Material_Light_ActionButton" since="21" />
-		<field name="Widget_Material_Light_ActionButton_CloseMode" since="21" />
-		<field name="Widget_Material_Light_ActionButton_Overflow" since="21" />
-		<field name="Widget_Material_Light_ActionMode" since="21" />
-		<field name="Widget_Material_Light_AutoCompleteTextView" since="21" />
-		<field name="Widget_Material_Light_Button" since="21" />
-		<field name="Widget_Material_Light_ButtonBar" since="21" />
-		<field name="Widget_Material_Light_ButtonBar_AlertDialog" since="21" />
-		<field name="Widget_Material_Light_Button_Borderless" since="21" />
-		<field name="Widget_Material_Light_Button_Borderless_Small" since="21" />
-		<field name="Widget_Material_Light_Button_Inset" since="21" />
-		<field name="Widget_Material_Light_Button_Small" since="21" />
-		<field name="Widget_Material_Light_Button_Toggle" since="21" />
-		<field name="Widget_Material_Light_CalendarView" since="21" />
-		<field name="Widget_Material_Light_CheckedTextView" since="21" />
-		<field name="Widget_Material_Light_CompoundButton_CheckBox" since="21" />
-		<field name="Widget_Material_Light_CompoundButton_RadioButton" since="21" />
-		<field name="Widget_Material_Light_CompoundButton_Star" since="21" />
-		<field name="Widget_Material_Light_DropDownItem" since="21" />
-		<field name="Widget_Material_Light_DropDownItem_Spinner" since="21" />
-		<field name="Widget_Material_Light_EditText" since="21" />
-		<field name="Widget_Material_Light_ExpandableListView" since="21" />
-		<field name="Widget_Material_Light_FastScroll" since="21" />
-		<field name="Widget_Material_Light_GridView" since="21" />
-		<field name="Widget_Material_Light_HorizontalScrollView" since="21" />
-		<field name="Widget_Material_Light_ImageButton" since="21" />
-		<field name="Widget_Material_Light_ListPopupWindow" since="21" />
-		<field name="Widget_Material_Light_ListView" since="21" />
-		<field name="Widget_Material_Light_ListView_DropDown" since="21" />
-		<field name="Widget_Material_Light_MediaRouteButton" since="21" />
-		<field name="Widget_Material_Light_PopupMenu" since="21" />
-		<field name="Widget_Material_Light_PopupMenu_Overflow" since="21" />
-		<field name="Widget_Material_Light_PopupWindow" since="21" />
-		<field name="Widget_Material_Light_ProgressBar" since="21" />
-		<field name="Widget_Material_Light_ProgressBar_Horizontal" since="21" />
-		<field name="Widget_Material_Light_ProgressBar_Inverse" since="21" />
-		<field name="Widget_Material_Light_ProgressBar_Large" since="21" />
-		<field name="Widget_Material_Light_ProgressBar_Large_Inverse" since="21" />
-		<field name="Widget_Material_Light_ProgressBar_Small" since="21" />
-		<field name="Widget_Material_Light_ProgressBar_Small_Inverse" since="21" />
-		<field name="Widget_Material_Light_ProgressBar_Small_Title" since="21" />
-		<field name="Widget_Material_Light_RatingBar" since="21" />
-		<field name="Widget_Material_Light_RatingBar_Indicator" since="21" />
-		<field name="Widget_Material_Light_RatingBar_Small" since="21" />
-		<field name="Widget_Material_Light_ScrollView" since="21" />
-		<field name="Widget_Material_Light_SeekBar" since="21" />
-		<field name="Widget_Material_Light_SegmentedButton" since="21" />
-		<field name="Widget_Material_Light_Spinner" since="21" />
-		<field name="Widget_Material_Light_StackView" since="21" />
-		<field name="Widget_Material_Light_Tab" since="21" />
-		<field name="Widget_Material_Light_TabWidget" since="21" />
-		<field name="Widget_Material_Light_TextView" since="21" />
-		<field name="Widget_Material_Light_TextView_SpinnerItem" since="21" />
-		<field name="Widget_Material_Light_WebTextView" since="21" />
-		<field name="Widget_Material_Light_WebView" since="21" />
-		<field name="Widget_Material_ListPopupWindow" since="21" />
-		<field name="Widget_Material_ListView" since="21" />
-		<field name="Widget_Material_ListView_DropDown" since="21" />
-		<field name="Widget_Material_MediaRouteButton" since="21" />
-		<field name="Widget_Material_PopupMenu" since="21" />
-		<field name="Widget_Material_PopupMenu_Overflow" since="21" />
-		<field name="Widget_Material_PopupWindow" since="21" />
-		<field name="Widget_Material_ProgressBar" since="21" />
-		<field name="Widget_Material_ProgressBar_Horizontal" since="21" />
-		<field name="Widget_Material_ProgressBar_Large" since="21" />
-		<field name="Widget_Material_ProgressBar_Small" since="21" />
-		<field name="Widget_Material_ProgressBar_Small_Title" since="21" />
-		<field name="Widget_Material_RatingBar" since="21" />
-		<field name="Widget_Material_RatingBar_Indicator" since="21" />
-		<field name="Widget_Material_RatingBar_Small" since="21" />
-		<field name="Widget_Material_ScrollView" since="21" />
-		<field name="Widget_Material_SeekBar" since="21" />
-		<field name="Widget_Material_SegmentedButton" since="21" />
-		<field name="Widget_Material_Spinner" since="21" />
-		<field name="Widget_Material_StackView" since="21" />
-		<field name="Widget_Material_Tab" since="21" />
-		<field name="Widget_Material_TabWidget" since="21" />
-		<field name="Widget_Material_TextView" since="21" />
-		<field name="Widget_Material_TextView_SpinnerItem" since="21" />
-		<field name="Widget_Material_Toolbar" since="21" />
-		<field name="Widget_Material_Toolbar_Button_Navigation" since="21" />
-		<field name="Widget_Material_WebTextView" since="21" />
-		<field name="Widget_Material_WebView" since="21" />
-		<field name="Widget_PopupMenu" since="11" />
-		<field name="Widget_PopupWindow" />
-		<field name="Widget_ProgressBar" />
-		<field name="Widget_ProgressBar_Horizontal" />
-		<field name="Widget_ProgressBar_Inverse" since="4" />
-		<field name="Widget_ProgressBar_Large" />
-		<field name="Widget_ProgressBar_Large_Inverse" since="4" />
-		<field name="Widget_ProgressBar_Small" />
-		<field name="Widget_ProgressBar_Small_Inverse" since="4" />
-		<field name="Widget_RatingBar" />
-		<field name="Widget_ScrollView" />
-		<field name="Widget_SeekBar" />
-		<field name="Widget_Spinner" />
-		<field name="Widget_Spinner_DropDown" since="11" />
-		<field name="Widget_StackView" since="21" />
-		<field name="Widget_TabWidget" />
-		<field name="Widget_TextView" />
-		<field name="Widget_TextView_PopupMenu" />
-		<field name="Widget_TextView_SpinnerItem" />
-		<field name="Widget_Toolbar" since="21" />
-		<field name="Widget_Toolbar_Button_Navigation" since="21" />
-		<field name="Widget_WebView" />
-		<field name="l_resource_pad1" since="21" />
-		<field name="l_resource_pad10" since="21" />
-		<field name="l_resource_pad11" since="21" />
-		<field name="l_resource_pad12" since="21" />
-		<field name="l_resource_pad13" since="21" />
-		<field name="l_resource_pad14" since="21" />
-		<field name="l_resource_pad15" since="21" />
-		<field name="l_resource_pad16" since="21" />
-		<field name="l_resource_pad17" since="21" />
-		<field name="l_resource_pad18" since="21" />
-		<field name="l_resource_pad19" since="21" />
-		<field name="l_resource_pad2" since="21" />
-		<field name="l_resource_pad20" since="21" />
-		<field name="l_resource_pad21" since="21" />
-		<field name="l_resource_pad22" since="21" />
-		<field name="l_resource_pad23" since="21" />
-		<field name="l_resource_pad24" since="21" />
-		<field name="l_resource_pad25" since="21" />
-		<field name="l_resource_pad26" since="21" />
-		<field name="l_resource_pad27" since="21" />
-		<field name="l_resource_pad28" since="21" />
-		<field name="l_resource_pad3" since="21" />
-		<field name="l_resource_pad4" since="21" />
-		<field name="l_resource_pad5" since="21" />
-		<field name="l_resource_pad6" since="21" />
-		<field name="l_resource_pad7" since="21" />
-		<field name="l_resource_pad8" since="21" />
-		<field name="l_resource_pad9" since="21" />
-	</class>
-	<class name="android/R$transition" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="no_transition" />
-	</class>
-	<class name="android/R$xml" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/accessibilityservice/AccessibilityService" since="4">
-		<extends name="android/app/Service" />
-		<method name="&lt;init>()V" />
-		<method name="findFocus(I)Landroid/view/accessibility/AccessibilityNodeInfo;" since="21" />
-		<method name="getRootInActiveWindow()Landroid/view/accessibility/AccessibilityNodeInfo;" since="16" />
-		<method name="getServiceInfo()Landroid/accessibilityservice/AccessibilityServiceInfo;" since="16" />
-		<method name="getWindows()Ljava/util/List;" since="21" />
-		<method name="onAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V" />
-		<method name="onGesture(I)Z" since="16" />
-		<method name="onInterrupt()V" />
-		<method name="onKeyEvent(Landroid/view/KeyEvent;)Z" since="18" />
-		<method name="onServiceConnected()V" />
-		<method name="performGlobalAction(I)Z" since="16" />
-		<method name="setServiceInfo(Landroid/accessibilityservice/AccessibilityServiceInfo;)V" />
-		<field name="GESTURE_SWIPE_DOWN" since="16" />
-		<field name="GESTURE_SWIPE_DOWN_AND_LEFT" since="16" />
-		<field name="GESTURE_SWIPE_DOWN_AND_RIGHT" since="16" />
-		<field name="GESTURE_SWIPE_DOWN_AND_UP" since="16" />
-		<field name="GESTURE_SWIPE_LEFT" since="16" />
-		<field name="GESTURE_SWIPE_LEFT_AND_DOWN" since="16" />
-		<field name="GESTURE_SWIPE_LEFT_AND_RIGHT" since="16" />
-		<field name="GESTURE_SWIPE_LEFT_AND_UP" since="16" />
-		<field name="GESTURE_SWIPE_RIGHT" since="16" />
-		<field name="GESTURE_SWIPE_RIGHT_AND_DOWN" since="16" />
-		<field name="GESTURE_SWIPE_RIGHT_AND_LEFT" since="16" />
-		<field name="GESTURE_SWIPE_RIGHT_AND_UP" since="16" />
-		<field name="GESTURE_SWIPE_UP" since="16" />
-		<field name="GESTURE_SWIPE_UP_AND_DOWN" since="16" />
-		<field name="GESTURE_SWIPE_UP_AND_LEFT" since="16" />
-		<field name="GESTURE_SWIPE_UP_AND_RIGHT" since="16" />
-		<field name="GLOBAL_ACTION_BACK" since="16" />
-		<field name="GLOBAL_ACTION_HOME" since="16" />
-		<field name="GLOBAL_ACTION_NOTIFICATIONS" since="16" />
-		<field name="GLOBAL_ACTION_QUICK_SETTINGS" since="17" />
-		<field name="GLOBAL_ACTION_RECENTS" since="16" />
-		<field name="SERVICE_INTERFACE" />
-		<field name="SERVICE_META_DATA" since="14" />
-	</class>
-	<class name="android/accessibilityservice/AccessibilityServiceInfo" since="4">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="capabilityToString(I)Ljava/lang/String;" since="18" />
-		<method name="feedbackTypeToString(I)Ljava/lang/String;" since="14" />
-		<method name="flagToString(I)Ljava/lang/String;" since="14" />
-		<method name="getCanRetrieveWindowContent()Z" since="14" />
-		<method name="getCapabilities()I" since="18" />
-		<method name="getDescription()Ljava/lang/String;" since="14" />
-		<method name="getId()Ljava/lang/String;" since="14" />
-		<method name="getResolveInfo()Landroid/content/pm/ResolveInfo;" since="14" />
-		<method name="getSettingsActivityName()Ljava/lang/String;" since="14" />
-		<method name="loadDescription(Landroid/content/pm/PackageManager;)Ljava/lang/String;" since="16" />
-		<field name="CAPABILITY_CAN_REQUEST_ENHANCED_WEB_ACCESSIBILITY" since="18" />
-		<field name="CAPABILITY_CAN_REQUEST_FILTER_KEY_EVENTS" since="18" />
-		<field name="CAPABILITY_CAN_REQUEST_TOUCH_EXPLORATION" since="18" />
-		<field name="CAPABILITY_CAN_RETRIEVE_WINDOW_CONTENT" since="18" />
-		<field name="CREATOR" />
-		<field name="DEFAULT" />
-		<field name="FEEDBACK_ALL_MASK" since="14" />
-		<field name="FEEDBACK_AUDIBLE" />
-		<field name="FEEDBACK_BRAILLE" since="17" />
-		<field name="FEEDBACK_GENERIC" />
-		<field name="FEEDBACK_HAPTIC" />
-		<field name="FEEDBACK_SPOKEN" />
-		<field name="FEEDBACK_VISUAL" />
-		<field name="FLAG_INCLUDE_NOT_IMPORTANT_VIEWS" since="16" />
-		<field name="FLAG_REPORT_VIEW_IDS" since="18" />
-		<field name="FLAG_REQUEST_ENHANCED_WEB_ACCESSIBILITY" since="18" />
-		<field name="FLAG_REQUEST_FILTER_KEY_EVENTS" since="18" />
-		<field name="FLAG_REQUEST_TOUCH_EXPLORATION_MODE" since="16" />
-		<field name="FLAG_RETRIEVE_INTERACTIVE_WINDOWS" since="21" />
-		<field name="eventTypes" />
-		<field name="feedbackType" />
-		<field name="flags" />
-		<field name="notificationTimeout" />
-		<field name="packageNames" />
-	</class>
-	<class name="android/accounts/AbstractAccountAuthenticator" since="5">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="addAccount(Landroid/accounts/AccountAuthenticatorResponse;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;" />
-		<method name="addAccountFromCredentials(Landroid/accounts/AccountAuthenticatorResponse;Landroid/accounts/Account;Landroid/os/Bundle;)Landroid/os/Bundle;" since="18" />
-		<method name="confirmCredentials(Landroid/accounts/AccountAuthenticatorResponse;Landroid/accounts/Account;Landroid/os/Bundle;)Landroid/os/Bundle;" />
-		<method name="editProperties(Landroid/accounts/AccountAuthenticatorResponse;Ljava/lang/String;)Landroid/os/Bundle;" />
-		<method name="getAccountCredentialsForCloning(Landroid/accounts/AccountAuthenticatorResponse;Landroid/accounts/Account;)Landroid/os/Bundle;" since="18" />
-		<method name="getAccountRemovalAllowed(Landroid/accounts/AccountAuthenticatorResponse;Landroid/accounts/Account;)Landroid/os/Bundle;" />
-		<method name="getAuthToken(Landroid/accounts/AccountAuthenticatorResponse;Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;" />
-		<method name="getAuthTokenLabel(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getIBinder()Landroid/os/IBinder;" />
-		<method name="hasFeatures(Landroid/accounts/AccountAuthenticatorResponse;Landroid/accounts/Account;[Ljava/lang/String;)Landroid/os/Bundle;" />
-		<method name="updateCredentials(Landroid/accounts/AccountAuthenticatorResponse;Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;" />
-	</class>
-	<class name="android/accounts/Account" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<field name="CREATOR" />
-		<field name="name" />
-		<field name="type" />
-	</class>
-	<class name="android/accounts/AccountAuthenticatorActivity" since="5">
-		<extends name="android/app/Activity" />
-		<method name="&lt;init>()V" />
-		<method name="setAccountAuthenticatorResult(Landroid/os/Bundle;)V" />
-	</class>
-	<class name="android/accounts/AccountAuthenticatorResponse" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" />
-		<method name="onError(ILjava/lang/String;)V" />
-		<method name="onRequestContinued()V" />
-		<method name="onResult(Landroid/os/Bundle;)V" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/accounts/AccountManager" since="5">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addAccount(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Landroid/os/Bundle;Landroid/app/Activity;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;" />
-		<method name="addAccountExplicitly(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)Z" />
-		<method name="addOnAccountsUpdatedListener(Landroid/accounts/OnAccountsUpdateListener;Landroid/os/Handler;Z)V" />
-		<method name="blockingGetAuthToken(Landroid/accounts/Account;Ljava/lang/String;Z)Ljava/lang/String;" />
-		<method name="clearPassword(Landroid/accounts/Account;)V" />
-		<method name="confirmCredentials(Landroid/accounts/Account;Landroid/os/Bundle;Landroid/app/Activity;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;" />
-		<method name="editProperties(Ljava/lang/String;Landroid/app/Activity;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;" />
-		<method name="get(Landroid/content/Context;)Landroid/accounts/AccountManager;" />
-		<method name="getAccounts()[Landroid/accounts/Account;" />
-		<method name="getAccountsByType(Ljava/lang/String;)[Landroid/accounts/Account;" />
-		<method name="getAccountsByTypeAndFeatures(Ljava/lang/String;[Ljava/lang/String;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;" />
-		<method name="getAccountsByTypeForPackage(Ljava/lang/String;Ljava/lang/String;)[Landroid/accounts/Account;" since="18" />
-		<method name="getAuthToken(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;Landroid/app/Activity;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;" />
-		<method name="getAuthToken(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;ZLandroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;" since="14" />
-		<method name="getAuthToken(Landroid/accounts/Account;Ljava/lang/String;ZLandroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;" />
-		<method name="getAuthTokenByFeatures(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Landroid/app/Activity;Landroid/os/Bundle;Landroid/os/Bundle;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;" />
-		<method name="getAuthenticatorTypes()[Landroid/accounts/AuthenticatorDescription;" />
-		<method name="getPassword(Landroid/accounts/Account;)Ljava/lang/String;" />
-		<method name="getUserData(Landroid/accounts/Account;Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="hasFeatures(Landroid/accounts/Account;[Ljava/lang/String;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;" since="8" />
-		<method name="invalidateAuthToken(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="newChooseAccountIntent(Landroid/accounts/Account;Ljava/util/ArrayList;[Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Landroid/os/Bundle;)Landroid/content/Intent;" since="14" />
-		<method name="peekAuthToken(Landroid/accounts/Account;Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="removeAccount(Landroid/accounts/Account;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;" />
-		<method name="removeOnAccountsUpdatedListener(Landroid/accounts/OnAccountsUpdateListener;)V" />
-		<method name="setAuthToken(Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="setPassword(Landroid/accounts/Account;Ljava/lang/String;)V" />
-		<method name="setUserData(Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="updateCredentials(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;Landroid/app/Activity;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;" />
-		<field name="ACTION_AUTHENTICATOR_INTENT" />
-		<field name="AUTHENTICATOR_ATTRIBUTES_NAME" />
-		<field name="AUTHENTICATOR_META_DATA_NAME" />
-		<field name="ERROR_CODE_BAD_ARGUMENTS" />
-		<field name="ERROR_CODE_BAD_AUTHENTICATION" since="18" />
-		<field name="ERROR_CODE_BAD_REQUEST" />
-		<field name="ERROR_CODE_CANCELED" />
-		<field name="ERROR_CODE_INVALID_RESPONSE" />
-		<field name="ERROR_CODE_NETWORK_ERROR" />
-		<field name="ERROR_CODE_REMOTE_EXCEPTION" />
-		<field name="ERROR_CODE_UNSUPPORTED_OPERATION" />
-		<field name="KEY_ACCOUNTS" />
-		<field name="KEY_ACCOUNT_AUTHENTICATOR_RESPONSE" />
-		<field name="KEY_ACCOUNT_MANAGER_RESPONSE" />
-		<field name="KEY_ACCOUNT_NAME" />
-		<field name="KEY_ACCOUNT_TYPE" />
-		<field name="KEY_ANDROID_PACKAGE_NAME" since="14" />
-		<field name="KEY_AUTHENTICATOR_TYPES" />
-		<field name="KEY_AUTHTOKEN" />
-		<field name="KEY_AUTH_FAILED_MESSAGE" />
-		<field name="KEY_AUTH_TOKEN_LABEL" />
-		<field name="KEY_BOOLEAN_RESULT" />
-		<field name="KEY_CALLER_PID" since="11" />
-		<field name="KEY_CALLER_UID" since="11" />
-		<field name="KEY_ERROR_CODE" />
-		<field name="KEY_ERROR_MESSAGE" />
-		<field name="KEY_INTENT" />
-		<field name="KEY_PASSWORD" />
-		<field name="KEY_USERDATA" />
-		<field name="LOGIN_ACCOUNTS_CHANGED_ACTION" />
-	</class>
-	<class name="android/accounts/AccountManagerCallback" since="5">
-		<extends name="java/lang/Object" />
-		<method name="run(Landroid/accounts/AccountManagerFuture;)V" />
-	</class>
-	<class name="android/accounts/AccountManagerFuture" since="5">
-		<extends name="java/lang/Object" />
-		<method name="cancel(Z)Z" />
-		<method name="getResult()Ljava/lang/Object;" />
-		<method name="getResult(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;" />
-		<method name="isCancelled()Z" />
-		<method name="isDone()Z" />
-	</class>
-	<class name="android/accounts/AccountsException" since="5">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="android/accounts/AuthenticatorDescription" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;IIII)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;IIIIZ)V" since="11" />
-		<method name="newKey(Ljava/lang/String;)Landroid/accounts/AuthenticatorDescription;" />
-		<field name="CREATOR" />
-		<field name="accountPreferencesId" />
-		<field name="customTokens" since="11" />
-		<field name="iconId" />
-		<field name="labelId" />
-		<field name="packageName" />
-		<field name="smallIconId" />
-		<field name="type" />
-	</class>
-	<class name="android/accounts/AuthenticatorException" since="5">
-		<extends name="android/accounts/AccountsException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="android/accounts/NetworkErrorException" since="5">
-		<extends name="android/accounts/AccountsException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="android/accounts/OnAccountsUpdateListener" since="5">
-		<extends name="java/lang/Object" />
-		<method name="onAccountsUpdated([Landroid/accounts/Account;)V" />
-	</class>
-	<class name="android/accounts/OperationCanceledException" since="5">
-		<extends name="android/accounts/AccountsException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="android/animation/Animator" since="11">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-		<method name="&lt;init>()V" />
-		<method name="addListener(Landroid/animation/Animator$AnimatorListener;)V" />
-		<method name="addPauseListener(Landroid/animation/Animator$AnimatorPauseListener;)V" since="19" />
-		<method name="cancel()V" />
-		<method name="clone()Landroid/animation/Animator;" />
-		<method name="end()V" />
-		<method name="getDuration()J" />
-		<method name="getInterpolator()Landroid/animation/TimeInterpolator;" since="18" />
-		<method name="getListeners()Ljava/util/ArrayList;" />
-		<method name="getStartDelay()J" />
-		<method name="isPaused()Z" since="19" />
-		<method name="isRunning()Z" />
-		<method name="isStarted()Z" since="14" />
-		<method name="pause()V" since="19" />
-		<method name="removeAllListeners()V" />
-		<method name="removeListener(Landroid/animation/Animator$AnimatorListener;)V" />
-		<method name="removePauseListener(Landroid/animation/Animator$AnimatorPauseListener;)V" since="19" />
-		<method name="resume()V" since="19" />
-		<method name="setDuration(J)Landroid/animation/Animator;" />
-		<method name="setInterpolator(Landroid/animation/TimeInterpolator;)V" />
-		<method name="setStartDelay(J)V" />
-		<method name="setTarget(Ljava/lang/Object;)V" />
-		<method name="setupEndValues()V" />
-		<method name="setupStartValues()V" />
-		<method name="start()V" />
-	</class>
-	<class name="android/animation/Animator$AnimatorListener" since="11">
-		<extends name="java/lang/Object" />
-		<method name="onAnimationCancel(Landroid/animation/Animator;)V" />
-		<method name="onAnimationEnd(Landroid/animation/Animator;)V" />
-		<method name="onAnimationRepeat(Landroid/animation/Animator;)V" />
-		<method name="onAnimationStart(Landroid/animation/Animator;)V" />
-	</class>
-	<class name="android/animation/Animator$AnimatorPauseListener" since="19">
-		<extends name="java/lang/Object" />
-		<method name="onAnimationPause(Landroid/animation/Animator;)V" />
-		<method name="onAnimationResume(Landroid/animation/Animator;)V" />
-	</class>
-	<class name="android/animation/AnimatorInflater" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="loadAnimator(Landroid/content/Context;I)Landroid/animation/Animator;" />
-		<method name="loadStateListAnimator(Landroid/content/Context;I)Landroid/animation/StateListAnimator;" since="21" />
-	</class>
-	<class name="android/animation/AnimatorListenerAdapter" since="11">
-		<extends name="java/lang/Object" />
-		<implements name="android/animation/Animator$AnimatorListener" />
-		<implements name="android/animation/Animator$AnimatorPauseListener" since="19" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/animation/AnimatorSet" since="11">
-		<extends name="android/animation/Animator" />
-		<method name="&lt;init>()V" />
-		<method name="clone()Landroid/animation/AnimatorSet;" />
-		<method name="getChildAnimations()Ljava/util/ArrayList;" />
-		<method name="play(Landroid/animation/Animator;)Landroid/animation/AnimatorSet$Builder;" />
-		<method name="playSequentially(Ljava/util/List;)V" />
-		<method name="playSequentially([Landroid/animation/Animator;)V" />
-		<method name="playTogether(Ljava/util/Collection;)V" />
-		<method name="playTogether([Landroid/animation/Animator;)V" />
-		<method name="setDuration(J)Landroid/animation/AnimatorSet;" />
-	</class>
-	<class name="android/animation/AnimatorSet$Builder" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/animation/AnimatorSet;)V" />
-		<method name="after(J)Landroid/animation/AnimatorSet$Builder;" />
-		<method name="after(Landroid/animation/Animator;)Landroid/animation/AnimatorSet$Builder;" />
-		<method name="before(Landroid/animation/Animator;)Landroid/animation/AnimatorSet$Builder;" />
-		<method name="with(Landroid/animation/Animator;)Landroid/animation/AnimatorSet$Builder;" />
-	</class>
-	<class name="android/animation/ArgbEvaluator" since="11">
-		<extends name="java/lang/Object" />
-		<implements name="android/animation/TypeEvaluator" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/animation/BidirectionalTypeConverter" since="21">
-		<extends name="android/animation/TypeConverter" />
-		<method name="&lt;init>(Ljava/lang/Class;Ljava/lang/Class;)V" />
-		<method name="convertBack(Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="invert()Landroid/animation/BidirectionalTypeConverter;" />
-	</class>
-	<class name="android/animation/FloatArrayEvaluator" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="android/animation/TypeEvaluator" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>([F)V" />
-		<method name="evaluate(F[F[F)[F" />
-	</class>
-	<class name="android/animation/FloatEvaluator" since="11">
-		<extends name="java/lang/Object" />
-		<implements name="android/animation/TypeEvaluator" />
-		<method name="&lt;init>()V" />
-		<method name="evaluate(FLjava/lang/Number;Ljava/lang/Number;)Ljava/lang/Float;" since="14" />
-	</class>
-	<class name="android/animation/IntArrayEvaluator" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="android/animation/TypeEvaluator" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>([I)V" />
-		<method name="evaluate(F[I[I)[I" />
-	</class>
-	<class name="android/animation/IntEvaluator" since="11">
-		<extends name="java/lang/Object" />
-		<implements name="android/animation/TypeEvaluator" />
-		<method name="&lt;init>()V" />
-		<method name="evaluate(FLjava/lang/Integer;Ljava/lang/Integer;)Ljava/lang/Integer;" since="14" />
-	</class>
-	<class name="android/animation/Keyframe" since="11">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-		<method name="&lt;init>()V" />
-		<method name="clone()Landroid/animation/Keyframe;" />
-		<method name="getFraction()F" />
-		<method name="getInterpolator()Landroid/animation/TimeInterpolator;" />
-		<method name="getType()Ljava/lang/Class;" />
-		<method name="getValue()Ljava/lang/Object;" />
-		<method name="hasValue()Z" />
-		<method name="ofFloat(F)Landroid/animation/Keyframe;" />
-		<method name="ofFloat(FF)Landroid/animation/Keyframe;" />
-		<method name="ofInt(F)Landroid/animation/Keyframe;" />
-		<method name="ofInt(FI)Landroid/animation/Keyframe;" />
-		<method name="ofObject(F)Landroid/animation/Keyframe;" />
-		<method name="ofObject(FLjava/lang/Object;)Landroid/animation/Keyframe;" />
-		<method name="setFraction(F)V" />
-		<method name="setInterpolator(Landroid/animation/TimeInterpolator;)V" />
-		<method name="setValue(Ljava/lang/Object;)V" />
-	</class>
-	<class name="android/animation/LayoutTransition" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addChild(Landroid/view/ViewGroup;Landroid/view/View;)V" />
-		<method name="addTransitionListener(Landroid/animation/LayoutTransition$TransitionListener;)V" />
-		<method name="disableTransitionType(I)V" since="16" />
-		<method name="enableTransitionType(I)V" since="16" />
-		<method name="getAnimator(I)Landroid/animation/Animator;" />
-		<method name="getDuration(I)J" />
-		<method name="getInterpolator(I)Landroid/animation/TimeInterpolator;" />
-		<method name="getStagger(I)J" />
-		<method name="getStartDelay(I)J" />
-		<method name="getTransitionListeners()Ljava/util/List;" />
-		<method name="hideChild(Landroid/view/ViewGroup;Landroid/view/View;)V" />
-		<method name="hideChild(Landroid/view/ViewGroup;Landroid/view/View;I)V" since="16" />
-		<method name="isChangingLayout()Z" />
-		<method name="isRunning()Z" />
-		<method name="isTransitionTypeEnabled(I)Z" since="16" />
-		<method name="removeChild(Landroid/view/ViewGroup;Landroid/view/View;)V" />
-		<method name="removeTransitionListener(Landroid/animation/LayoutTransition$TransitionListener;)V" />
-		<method name="setAnimateParentHierarchy(Z)V" since="14" />
-		<method name="setAnimator(ILandroid/animation/Animator;)V" />
-		<method name="setDuration(IJ)V" />
-		<method name="setDuration(J)V" />
-		<method name="setInterpolator(ILandroid/animation/TimeInterpolator;)V" />
-		<method name="setStagger(IJ)V" />
-		<method name="setStartDelay(IJ)V" />
-		<method name="showChild(Landroid/view/ViewGroup;Landroid/view/View;)V" />
-		<method name="showChild(Landroid/view/ViewGroup;Landroid/view/View;I)V" since="16" />
-		<field name="APPEARING" />
-		<field name="CHANGE_APPEARING" />
-		<field name="CHANGE_DISAPPEARING" />
-		<field name="CHANGING" since="16" />
-		<field name="DISAPPEARING" />
-	</class>
-	<class name="android/animation/LayoutTransition$TransitionListener" since="11">
-		<extends name="java/lang/Object" />
-		<method name="endTransition(Landroid/animation/LayoutTransition;Landroid/view/ViewGroup;Landroid/view/View;I)V" />
-		<method name="startTransition(Landroid/animation/LayoutTransition;Landroid/view/ViewGroup;Landroid/view/View;I)V" />
-	</class>
-	<class name="android/animation/ObjectAnimator" since="11">
-		<extends name="android/animation/ValueAnimator" />
-		<method name="&lt;init>()V" />
-		<method name="clone()Landroid/animation/ObjectAnimator;" />
-		<method name="getPropertyName()Ljava/lang/String;" />
-		<method name="getTarget()Ljava/lang/Object;" />
-		<method name="ofArgb(Ljava/lang/Object;Landroid/util/Property;[I)Landroid/animation/ObjectAnimator;" since="21" />
-		<method name="ofArgb(Ljava/lang/Object;Ljava/lang/String;[I)Landroid/animation/ObjectAnimator;" since="21" />
-		<method name="ofFloat(Ljava/lang/Object;Landroid/util/Property;Landroid/util/Property;Landroid/graphics/Path;)Landroid/animation/ObjectAnimator;" since="21" />
-		<method name="ofFloat(Ljava/lang/Object;Landroid/util/Property;[F)Landroid/animation/ObjectAnimator;" since="14" />
-		<method name="ofFloat(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Landroid/graphics/Path;)Landroid/animation/ObjectAnimator;" since="21" />
-		<method name="ofFloat(Ljava/lang/Object;Ljava/lang/String;[F)Landroid/animation/ObjectAnimator;" />
-		<method name="ofInt(Ljava/lang/Object;Landroid/util/Property;Landroid/util/Property;Landroid/graphics/Path;)Landroid/animation/ObjectAnimator;" since="21" />
-		<method name="ofInt(Ljava/lang/Object;Landroid/util/Property;[I)Landroid/animation/ObjectAnimator;" since="14" />
-		<method name="ofInt(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Landroid/graphics/Path;)Landroid/animation/ObjectAnimator;" since="21" />
-		<method name="ofInt(Ljava/lang/Object;Ljava/lang/String;[I)Landroid/animation/ObjectAnimator;" />
-		<method name="ofMultiFloat(Ljava/lang/Object;Ljava/lang/String;Landroid/animation/TypeConverter;Landroid/animation/TypeEvaluator;[Ljava/lang/Object;)Landroid/animation/ObjectAnimator;" since="21" />
-		<method name="ofMultiFloat(Ljava/lang/Object;Ljava/lang/String;Landroid/graphics/Path;)Landroid/animation/ObjectAnimator;" since="21" />
-		<method name="ofMultiFloat(Ljava/lang/Object;Ljava/lang/String;[[F)Landroid/animation/ObjectAnimator;" since="21" />
-		<method name="ofMultiInt(Ljava/lang/Object;Ljava/lang/String;Landroid/animation/TypeConverter;Landroid/animation/TypeEvaluator;[Ljava/lang/Object;)Landroid/animation/ObjectAnimator;" since="21" />
-		<method name="ofMultiInt(Ljava/lang/Object;Ljava/lang/String;Landroid/graphics/Path;)Landroid/animation/ObjectAnimator;" since="21" />
-		<method name="ofMultiInt(Ljava/lang/Object;Ljava/lang/String;[[I)Landroid/animation/ObjectAnimator;" since="21" />
-		<method name="ofObject(Ljava/lang/Object;Landroid/util/Property;Landroid/animation/TypeConverter;Landroid/animation/TypeEvaluator;[Ljava/lang/Object;)Landroid/animation/ObjectAnimator;" since="21" />
-		<method name="ofObject(Ljava/lang/Object;Landroid/util/Property;Landroid/animation/TypeConverter;Landroid/graphics/Path;)Landroid/animation/ObjectAnimator;" since="21" />
-		<method name="ofObject(Ljava/lang/Object;Landroid/util/Property;Landroid/animation/TypeEvaluator;[Ljava/lang/Object;)Landroid/animation/ObjectAnimator;" since="14" />
-		<method name="ofObject(Ljava/lang/Object;Ljava/lang/String;Landroid/animation/TypeConverter;Landroid/graphics/Path;)Landroid/animation/ObjectAnimator;" since="21" />
-		<method name="ofObject(Ljava/lang/Object;Ljava/lang/String;Landroid/animation/TypeEvaluator;[Ljava/lang/Object;)Landroid/animation/ObjectAnimator;" />
-		<method name="ofPropertyValuesHolder(Ljava/lang/Object;[Landroid/animation/PropertyValuesHolder;)Landroid/animation/ObjectAnimator;" />
-		<method name="setAutoCancel(Z)V" since="18" />
-		<method name="setDuration(J)Landroid/animation/ObjectAnimator;" />
-		<method name="setProperty(Landroid/util/Property;)V" since="14" />
-		<method name="setPropertyName(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/animation/PointFEvaluator" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="android/animation/TypeEvaluator" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/graphics/PointF;)V" />
-		<method name="evaluate(FLandroid/graphics/PointF;Landroid/graphics/PointF;)Landroid/graphics/PointF;" />
-	</class>
-	<class name="android/animation/PropertyValuesHolder" since="11">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-		<method name="&lt;init>()V" />
-		<method name="clone()Landroid/animation/PropertyValuesHolder;" />
-		<method name="getPropertyName()Ljava/lang/String;" />
-		<method name="ofFloat(Landroid/util/Property;[F)Landroid/animation/PropertyValuesHolder;" since="14" />
-		<method name="ofFloat(Ljava/lang/String;[F)Landroid/animation/PropertyValuesHolder;" />
-		<method name="ofInt(Landroid/util/Property;[I)Landroid/animation/PropertyValuesHolder;" since="14" />
-		<method name="ofInt(Ljava/lang/String;[I)Landroid/animation/PropertyValuesHolder;" />
-		<method name="ofKeyframe(Landroid/util/Property;[Landroid/animation/Keyframe;)Landroid/animation/PropertyValuesHolder;" since="14" />
-		<method name="ofKeyframe(Ljava/lang/String;[Landroid/animation/Keyframe;)Landroid/animation/PropertyValuesHolder;" />
-		<method name="ofMultiFloat(Ljava/lang/String;Landroid/animation/TypeConverter;Landroid/animation/TypeEvaluator;[Landroid/animation/Keyframe;)Landroid/animation/PropertyValuesHolder;" since="21" />
-		<method name="ofMultiFloat(Ljava/lang/String;Landroid/animation/TypeConverter;Landroid/animation/TypeEvaluator;[Ljava/lang/Object;)Landroid/animation/PropertyValuesHolder;" since="21" />
-		<method name="ofMultiFloat(Ljava/lang/String;Landroid/graphics/Path;)Landroid/animation/PropertyValuesHolder;" since="21" />
-		<method name="ofMultiFloat(Ljava/lang/String;[[F)Landroid/animation/PropertyValuesHolder;" since="21" />
-		<method name="ofMultiInt(Ljava/lang/String;Landroid/animation/TypeConverter;Landroid/animation/TypeEvaluator;[Landroid/animation/Keyframe;)Landroid/animation/PropertyValuesHolder;" since="21" />
-		<method name="ofMultiInt(Ljava/lang/String;Landroid/animation/TypeConverter;Landroid/animation/TypeEvaluator;[Ljava/lang/Object;)Landroid/animation/PropertyValuesHolder;" since="21" />
-		<method name="ofMultiInt(Ljava/lang/String;Landroid/graphics/Path;)Landroid/animation/PropertyValuesHolder;" since="21" />
-		<method name="ofMultiInt(Ljava/lang/String;[[I)Landroid/animation/PropertyValuesHolder;" since="21" />
-		<method name="ofObject(Landroid/util/Property;Landroid/animation/TypeConverter;Landroid/animation/TypeEvaluator;[Ljava/lang/Object;)Landroid/animation/PropertyValuesHolder;" since="21" />
-		<method name="ofObject(Landroid/util/Property;Landroid/animation/TypeConverter;Landroid/graphics/Path;)Landroid/animation/PropertyValuesHolder;" since="21" />
-		<method name="ofObject(Landroid/util/Property;Landroid/animation/TypeEvaluator;[Ljava/lang/Object;)Landroid/animation/PropertyValuesHolder;" since="14" />
-		<method name="ofObject(Ljava/lang/String;Landroid/animation/TypeConverter;Landroid/graphics/Path;)Landroid/animation/PropertyValuesHolder;" since="21" />
-		<method name="ofObject(Ljava/lang/String;Landroid/animation/TypeEvaluator;[Ljava/lang/Object;)Landroid/animation/PropertyValuesHolder;" />
-		<method name="setConverter(Landroid/animation/TypeConverter;)V" since="21" />
-		<method name="setEvaluator(Landroid/animation/TypeEvaluator;)V" />
-		<method name="setFloatValues([F)V" />
-		<method name="setIntValues([I)V" />
-		<method name="setKeyframes([Landroid/animation/Keyframe;)V" />
-		<method name="setObjectValues([Ljava/lang/Object;)V" />
-		<method name="setProperty(Landroid/util/Property;)V" since="14" />
-		<method name="setPropertyName(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/animation/RectEvaluator" since="18">
-		<extends name="java/lang/Object" />
-		<implements name="android/animation/TypeEvaluator" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/graphics/Rect;)V" since="21" />
-		<method name="evaluate(FLandroid/graphics/Rect;Landroid/graphics/Rect;)Landroid/graphics/Rect;" />
-	</class>
-	<class name="android/animation/StateListAnimator" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addState([ILandroid/animation/Animator;)V" />
-		<method name="jumpToCurrentState()V" />
-	</class>
-	<class name="android/animation/TimeAnimator" since="16">
-		<extends name="android/animation/ValueAnimator" />
-		<method name="&lt;init>()V" />
-		<method name="setTimeListener(Landroid/animation/TimeAnimator$TimeListener;)V" />
-	</class>
-	<class name="android/animation/TimeAnimator$TimeListener" since="16">
-		<extends name="java/lang/Object" />
-		<method name="onTimeUpdate(Landroid/animation/TimeAnimator;JJ)V" />
-	</class>
-	<class name="android/animation/TimeInterpolator" since="11">
-		<extends name="java/lang/Object" />
-		<method name="getInterpolation(F)F" />
-	</class>
-	<class name="android/animation/TypeConverter" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/Class;Ljava/lang/Class;)V" />
-		<method name="convert(Ljava/lang/Object;)Ljava/lang/Object;" />
-	</class>
-	<class name="android/animation/TypeEvaluator" since="11">
-		<extends name="java/lang/Object" />
-		<method name="evaluate(FLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;" />
-	</class>
-	<class name="android/animation/ValueAnimator" since="11">
-		<extends name="android/animation/Animator" />
-		<method name="&lt;init>()V" />
-		<method name="addUpdateListener(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V" />
-		<method name="clone()Landroid/animation/ValueAnimator;" />
-		<method name="getAnimatedFraction()F" since="12" />
-		<method name="getAnimatedValue()Ljava/lang/Object;" />
-		<method name="getAnimatedValue(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="getCurrentPlayTime()J" />
-		<method name="getFrameDelay()J" />
-		<method name="getInterpolator()Landroid/animation/TimeInterpolator;" />
-		<method name="getRepeatCount()I" />
-		<method name="getRepeatMode()I" />
-		<method name="getValues()[Landroid/animation/PropertyValuesHolder;" />
-		<method name="ofArgb([I)Landroid/animation/ValueAnimator;" since="21" />
-		<method name="ofFloat([F)Landroid/animation/ValueAnimator;" />
-		<method name="ofInt([I)Landroid/animation/ValueAnimator;" />
-		<method name="ofObject(Landroid/animation/TypeEvaluator;[Ljava/lang/Object;)Landroid/animation/ValueAnimator;" />
-		<method name="ofPropertyValuesHolder([Landroid/animation/PropertyValuesHolder;)Landroid/animation/ValueAnimator;" />
-		<method name="removeAllUpdateListeners()V" />
-		<method name="removeUpdateListener(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V" />
-		<method name="reverse()V" />
-		<method name="setCurrentPlayTime(J)V" />
-		<method name="setDuration(J)Landroid/animation/ValueAnimator;" />
-		<method name="setEvaluator(Landroid/animation/TypeEvaluator;)V" />
-		<method name="setFloatValues([F)V" />
-		<method name="setFrameDelay(J)V" />
-		<method name="setIntValues([I)V" />
-		<method name="setObjectValues([Ljava/lang/Object;)V" />
-		<method name="setRepeatCount(I)V" />
-		<method name="setRepeatMode(I)V" />
-		<method name="setValues([Landroid/animation/PropertyValuesHolder;)V" />
-		<field name="INFINITE" />
-		<field name="RESTART" />
-		<field name="REVERSE" />
-	</class>
-	<class name="android/animation/ValueAnimator$AnimatorUpdateListener" since="11">
-		<extends name="java/lang/Object" />
-		<method name="onAnimationUpdate(Landroid/animation/ValueAnimator;)V" />
-	</class>
-	<class name="android/annotation/SuppressLint" since="16">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/annotation/Annotation" />
-		<method name="value()[Ljava/lang/String;" />
-	</class>
-	<class name="android/annotation/TargetApi" since="16">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/annotation/Annotation" />
-		<method name="value()I" />
-	</class>
-	<class name="android/app/ActionBar" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addOnMenuVisibilityListener(Landroid/app/ActionBar$OnMenuVisibilityListener;)V" />
-		<method name="addTab(Landroid/app/ActionBar$Tab;)V" />
-		<method name="addTab(Landroid/app/ActionBar$Tab;I)V" />
-		<method name="addTab(Landroid/app/ActionBar$Tab;IZ)V" />
-		<method name="addTab(Landroid/app/ActionBar$Tab;Z)V" />
-		<method name="getCustomView()Landroid/view/View;" />
-		<method name="getDisplayOptions()I" />
-		<method name="getHeight()I" />
-		<method name="getHideOffset()I" since="21" />
-		<method name="getNavigationItemCount()I" />
-		<method name="getNavigationMode()I" />
-		<method name="getSelectedNavigationIndex()I" />
-		<method name="getSelectedTab()Landroid/app/ActionBar$Tab;" />
-		<method name="getSubtitle()Ljava/lang/CharSequence;" />
-		<method name="getTabAt(I)Landroid/app/ActionBar$Tab;" />
-		<method name="getTabCount()I" />
-		<method name="getThemedContext()Landroid/content/Context;" since="14" />
-		<method name="getTitle()Ljava/lang/CharSequence;" />
-		<method name="hide()V" />
-		<method name="isHideOnContentScrollEnabled()Z" since="21" />
-		<method name="isShowing()Z" />
-		<method name="newTab()Landroid/app/ActionBar$Tab;" />
-		<method name="removeAllTabs()V" />
-		<method name="removeOnMenuVisibilityListener(Landroid/app/ActionBar$OnMenuVisibilityListener;)V" />
-		<method name="removeTab(Landroid/app/ActionBar$Tab;)V" />
-		<method name="removeTabAt(I)V" />
-		<method name="selectTab(Landroid/app/ActionBar$Tab;)V" />
-		<method name="setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V" />
-		<method name="setCustomView(I)V" />
-		<method name="setCustomView(Landroid/view/View;)V" />
-		<method name="setCustomView(Landroid/view/View;Landroid/app/ActionBar$LayoutParams;)V" />
-		<method name="setDisplayHomeAsUpEnabled(Z)V" />
-		<method name="setDisplayOptions(I)V" />
-		<method name="setDisplayOptions(II)V" />
-		<method name="setDisplayShowCustomEnabled(Z)V" />
-		<method name="setDisplayShowHomeEnabled(Z)V" />
-		<method name="setDisplayShowTitleEnabled(Z)V" />
-		<method name="setDisplayUseLogoEnabled(Z)V" />
-		<method name="setHideOffset(I)V" since="21" />
-		<method name="setHideOnContentScrollEnabled(Z)V" since="21" />
-		<method name="setHomeActionContentDescription(I)V" since="18" />
-		<method name="setHomeActionContentDescription(Ljava/lang/CharSequence;)V" since="18" />
-		<method name="setHomeAsUpIndicator(I)V" since="18" />
-		<method name="setHomeAsUpIndicator(Landroid/graphics/drawable/Drawable;)V" since="18" />
-		<method name="setHomeButtonEnabled(Z)V" since="14" />
-		<method name="setIcon(I)V" since="14" />
-		<method name="setIcon(Landroid/graphics/drawable/Drawable;)V" since="14" />
-		<method name="setListNavigationCallbacks(Landroid/widget/SpinnerAdapter;Landroid/app/ActionBar$OnNavigationListener;)V" />
-		<method name="setLogo(I)V" since="14" />
-		<method name="setLogo(Landroid/graphics/drawable/Drawable;)V" since="14" />
-		<method name="setNavigationMode(I)V" />
-		<method name="setSelectedNavigationItem(I)V" />
-		<method name="setSplitBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V" since="14" />
-		<method name="setStackedBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V" since="14" />
-		<method name="setSubtitle(I)V" />
-		<method name="setSubtitle(Ljava/lang/CharSequence;)V" />
-		<method name="setTitle(I)V" />
-		<method name="setTitle(Ljava/lang/CharSequence;)V" />
-		<method name="show()V" />
-		<field name="DISPLAY_HOME_AS_UP" />
-		<field name="DISPLAY_SHOW_CUSTOM" />
-		<field name="DISPLAY_SHOW_HOME" />
-		<field name="DISPLAY_SHOW_TITLE" />
-		<field name="DISPLAY_USE_LOGO" />
-		<field name="NAVIGATION_MODE_LIST" />
-		<field name="NAVIGATION_MODE_STANDARD" />
-		<field name="NAVIGATION_MODE_TABS" />
-	</class>
-	<class name="android/app/ActionBar$LayoutParams" since="11">
-		<extends name="android/view/ViewGroup$MarginLayoutParams" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(II)V" />
-		<method name="&lt;init>(III)V" />
-		<method name="&lt;init>(Landroid/app/ActionBar$LayoutParams;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/view/ViewGroup$LayoutParams;)V" />
-		<method name="&lt;init>(Landroid/view/ViewGroup$MarginLayoutParams;)V" since="21" />
-		<field name="gravity" />
-	</class>
-	<class name="android/app/ActionBar$OnMenuVisibilityListener" since="11">
-		<extends name="java/lang/Object" />
-		<method name="onMenuVisibilityChanged(Z)V" />
-	</class>
-	<class name="android/app/ActionBar$OnNavigationListener" since="11">
-		<extends name="java/lang/Object" />
-		<method name="onNavigationItemSelected(IJ)Z" />
-	</class>
-	<class name="android/app/ActionBar$Tab" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getContentDescription()Ljava/lang/CharSequence;" since="14" />
-		<method name="getCustomView()Landroid/view/View;" />
-		<method name="getIcon()Landroid/graphics/drawable/Drawable;" />
-		<method name="getPosition()I" />
-		<method name="getTag()Ljava/lang/Object;" />
-		<method name="getText()Ljava/lang/CharSequence;" />
-		<method name="select()V" />
-		<method name="setContentDescription(I)Landroid/app/ActionBar$Tab;" since="14" />
-		<method name="setContentDescription(Ljava/lang/CharSequence;)Landroid/app/ActionBar$Tab;" since="14" />
-		<method name="setCustomView(I)Landroid/app/ActionBar$Tab;" />
-		<method name="setCustomView(Landroid/view/View;)Landroid/app/ActionBar$Tab;" />
-		<method name="setIcon(I)Landroid/app/ActionBar$Tab;" />
-		<method name="setIcon(Landroid/graphics/drawable/Drawable;)Landroid/app/ActionBar$Tab;" />
-		<method name="setTabListener(Landroid/app/ActionBar$TabListener;)Landroid/app/ActionBar$Tab;" />
-		<method name="setTag(Ljava/lang/Object;)Landroid/app/ActionBar$Tab;" />
-		<method name="setText(I)Landroid/app/ActionBar$Tab;" />
-		<method name="setText(Ljava/lang/CharSequence;)Landroid/app/ActionBar$Tab;" />
-		<field name="INVALID_POSITION" />
-	</class>
-	<class name="android/app/ActionBar$TabListener" since="11">
-		<extends name="java/lang/Object" />
-		<method name="onTabReselected(Landroid/app/ActionBar$Tab;Landroid/app/FragmentTransaction;)V" />
-		<method name="onTabSelected(Landroid/app/ActionBar$Tab;Landroid/app/FragmentTransaction;)V" />
-		<method name="onTabUnselected(Landroid/app/ActionBar$Tab;Landroid/app/FragmentTransaction;)V" />
-	</class>
-	<class name="android/app/Activity" since="1">
-		<extends name="android/view/ContextThemeWrapper" />
-		<implements name="android/content/ComponentCallbacks" />
-		<implements name="android/content/ComponentCallbacks2" since="14" />
-		<implements name="android/view/KeyEvent$Callback" />
-		<implements name="android/view/LayoutInflater$Factory" />
-		<implements name="android/view/LayoutInflater$Factory2" since="11" />
-		<implements name="android/view/View$OnCreateContextMenuListener" />
-		<implements name="android/view/Window$Callback" />
-		<method name="&lt;init>()V" />
-		<method name="addContentView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V" />
-		<method name="closeContextMenu()V" since="3" />
-		<method name="closeOptionsMenu()V" />
-		<method name="createPendingResult(ILandroid/content/Intent;I)Landroid/app/PendingIntent;" />
-		<method name="dismissDialog(I)V" />
-		<method name="dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V" since="11" />
-		<method name="findViewById(I)Landroid/view/View;" />
-		<method name="finish()V" />
-		<method name="finishActivity(I)V" />
-		<method name="finishActivityFromChild(Landroid/app/Activity;I)V" />
-		<method name="finishAffinity()V" since="16" />
-		<method name="finishAfterTransition()V" since="21" />
-		<method name="finishAndRemoveTask()V" since="21" />
-		<method name="finishFromChild(Landroid/app/Activity;)V" />
-		<method name="getActionBar()Landroid/app/ActionBar;" since="11" />
-		<method name="getApplication()Landroid/app/Application;" />
-		<method name="getCallingActivity()Landroid/content/ComponentName;" />
-		<method name="getCallingPackage()Ljava/lang/String;" />
-		<method name="getChangingConfigurations()I" />
-		<method name="getComponentName()Landroid/content/ComponentName;" />
-		<method name="getContentScene()Landroid/transition/Scene;" since="21" />
-		<method name="getContentTransitionManager()Landroid/transition/TransitionManager;" since="21" />
-		<method name="getCurrentFocus()Landroid/view/View;" />
-		<method name="getFragmentManager()Landroid/app/FragmentManager;" since="11" />
-		<method name="getInstanceCount()J" />
-		<method name="getIntent()Landroid/content/Intent;" />
-		<method name="getLastNonConfigurationInstance()Ljava/lang/Object;" />
-		<method name="getLayoutInflater()Landroid/view/LayoutInflater;" />
-		<method name="getLoaderManager()Landroid/app/LoaderManager;" since="11" />
-		<method name="getLocalClassName()Ljava/lang/String;" />
-		<method name="getMenuInflater()Landroid/view/MenuInflater;" />
-		<method name="getParent()Landroid/app/Activity;" />
-		<method name="getParentActivityIntent()Landroid/content/Intent;" since="16" />
-		<method name="getPreferences(I)Landroid/content/SharedPreferences;" />
-		<method name="getRequestedOrientation()I" />
-		<method name="getTaskId()I" />
-		<method name="getTitle()Ljava/lang/CharSequence;" />
-		<method name="getTitleColor()I" />
-		<method name="getVoiceInteractor()Landroid/app/VoiceInteractor;" since="21" />
-		<method name="getVolumeControlStream()I" />
-		<method name="getWindow()Landroid/view/Window;" />
-		<method name="getWindowManager()Landroid/view/WindowManager;" />
-		<method name="hasWindowFocus()Z" since="3" />
-		<method name="invalidateOptionsMenu()V" since="11" />
-		<method name="isChangingConfigurations()Z" since="11" />
-		<method name="isChild()Z" />
-		<method name="isDestroyed()Z" since="17" />
-		<method name="isFinishing()Z" />
-		<method name="isImmersive()Z" since="18" />
-		<method name="isTaskRoot()Z" />
-		<method name="isVoiceInteraction()Z" since="21" />
-		<method name="managedQuery(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;" />
-		<method name="moveTaskToBack(Z)Z" />
-		<method name="navigateUpTo(Landroid/content/Intent;)Z" since="16" />
-		<method name="navigateUpToFromChild(Landroid/app/Activity;Landroid/content/Intent;)Z" since="16" />
-		<method name="onActivityReenter(ILandroid/content/Intent;)V" since="21" />
-		<method name="onActivityResult(IILandroid/content/Intent;)V" />
-		<method name="onAttachFragment(Landroid/app/Fragment;)V" since="11" />
-		<method name="onBackPressed()V" since="5" />
-		<method name="onChildTitleChanged(Landroid/app/Activity;Ljava/lang/CharSequence;)V" />
-		<method name="onContextItemSelected(Landroid/view/MenuItem;)Z" />
-		<method name="onContextMenuClosed(Landroid/view/Menu;)V" />
-		<method name="onCreate(Landroid/os/Bundle;)V" />
-		<method name="onCreate(Landroid/os/Bundle;Landroid/os/PersistableBundle;)V" since="21" />
-		<method name="onCreateDescription()Ljava/lang/CharSequence;" />
-		<method name="onCreateDialog(I)Landroid/app/Dialog;" />
-		<method name="onCreateDialog(ILandroid/os/Bundle;)Landroid/app/Dialog;" since="8" />
-		<method name="onCreateNavigateUpTaskStack(Landroid/app/TaskStackBuilder;)V" since="16" />
-		<method name="onCreateOptionsMenu(Landroid/view/Menu;)Z" />
-		<method name="onCreateThumbnail(Landroid/graphics/Bitmap;Landroid/graphics/Canvas;)Z" />
-		<method name="onDestroy()V" />
-		<method name="onGenericMotionEvent(Landroid/view/MotionEvent;)Z" since="12" />
-		<method name="onKeyShortcut(ILandroid/view/KeyEvent;)Z" since="11" />
-		<method name="onNavigateUp()Z" since="16" />
-		<method name="onNavigateUpFromChild(Landroid/app/Activity;)Z" since="16" />
-		<method name="onNewIntent(Landroid/content/Intent;)V" />
-		<method name="onOptionsItemSelected(Landroid/view/MenuItem;)Z" />
-		<method name="onOptionsMenuClosed(Landroid/view/Menu;)V" />
-		<method name="onPause()V" />
-		<method name="onPostCreate(Landroid/os/Bundle;)V" />
-		<method name="onPostCreate(Landroid/os/Bundle;Landroid/os/PersistableBundle;)V" since="21" />
-		<method name="onPostResume()V" />
-		<method name="onPrepareDialog(ILandroid/app/Dialog;)V" />
-		<method name="onPrepareDialog(ILandroid/app/Dialog;Landroid/os/Bundle;)V" since="8" />
-		<method name="onPrepareNavigateUpTaskStack(Landroid/app/TaskStackBuilder;)V" since="16" />
-		<method name="onPrepareOptionsMenu(Landroid/view/Menu;)Z" />
-		<method name="onProvideAssistData(Landroid/os/Bundle;)V" since="18" />
-		<method name="onRestart()V" />
-		<method name="onRestoreInstanceState(Landroid/os/Bundle;)V" />
-		<method name="onRestoreInstanceState(Landroid/os/Bundle;Landroid/os/PersistableBundle;)V" since="21" />
-		<method name="onResume()V" />
-		<method name="onRetainNonConfigurationInstance()Ljava/lang/Object;" />
-		<method name="onSaveInstanceState(Landroid/os/Bundle;)V" />
-		<method name="onSaveInstanceState(Landroid/os/Bundle;Landroid/os/PersistableBundle;)V" since="21" />
-		<method name="onStart()V" />
-		<method name="onStop()V" />
-		<method name="onTitleChanged(Ljava/lang/CharSequence;I)V" />
-		<method name="onTouchEvent(Landroid/view/MotionEvent;)Z" />
-		<method name="onTrackballEvent(Landroid/view/MotionEvent;)Z" />
-		<method name="onUserInteraction()V" since="3" />
-		<method name="onUserLeaveHint()V" since="3" />
-		<method name="openContextMenu(Landroid/view/View;)V" />
-		<method name="openOptionsMenu()V" />
-		<method name="overridePendingTransition(II)V" since="5" />
-		<method name="postponeEnterTransition()V" since="21" />
-		<method name="recreate()V" since="11" />
-		<method name="registerForContextMenu(Landroid/view/View;)V" />
-		<method name="removeDialog(I)V" />
-		<method name="reportFullyDrawn()V" since="19" />
-		<method name="requestWindowFeature(I)Z" />
-		<method name="runOnUiThread(Ljava/lang/Runnable;)V" />
-		<method name="setActionBar(Landroid/widget/Toolbar;)V" since="21" />
-		<method name="setContentTransitionManager(Landroid/transition/TransitionManager;)V" since="21" />
-		<method name="setContentView(I)V" />
-		<method name="setContentView(Landroid/view/View;)V" />
-		<method name="setContentView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V" />
-		<method name="setDefaultKeyMode(I)V" />
-		<method name="setEnterSharedElementListener(Landroid/app/SharedElementListener;)V" since="21" />
-		<method name="setExitSharedElementListener(Landroid/app/SharedElementListener;)V" since="21" />
-		<method name="setFeatureDrawable(ILandroid/graphics/drawable/Drawable;)V" />
-		<method name="setFeatureDrawableAlpha(II)V" />
-		<method name="setFeatureDrawableResource(II)V" />
-		<method name="setFeatureDrawableUri(ILandroid/net/Uri;)V" />
-		<method name="setFinishOnTouchOutside(Z)V" since="11" />
-		<method name="setImmersive(Z)V" since="18" />
-		<method name="setIntent(Landroid/content/Intent;)V" />
-		<method name="setPersistent(Z)V" />
-		<method name="setProgress(I)V" />
-		<method name="setProgressBarIndeterminate(Z)V" />
-		<method name="setProgressBarIndeterminateVisibility(Z)V" />
-		<method name="setProgressBarVisibility(Z)V" />
-		<method name="setRequestedOrientation(I)V" />
-		<method name="setResult(I)V" />
-		<method name="setResult(ILandroid/content/Intent;)V" />
-		<method name="setSecondaryProgress(I)V" />
-		<method name="setTaskDescription(Landroid/app/ActivityManager$TaskDescription;)V" since="21" />
-		<method name="setTitle(I)V" />
-		<method name="setTitle(Ljava/lang/CharSequence;)V" />
-		<method name="setTitleColor(I)V" />
-		<method name="setVisible(Z)V" since="3" />
-		<method name="setVolumeControlStream(I)V" />
-		<method name="shouldUpRecreateTask(Landroid/content/Intent;)Z" since="16" />
-		<method name="showDialog(I)V" />
-		<method name="showDialog(ILandroid/os/Bundle;)Z" since="8" />
-		<method name="startActionMode(Landroid/view/ActionMode$Callback;)Landroid/view/ActionMode;" since="11" />
-		<method name="startActivityForResult(Landroid/content/Intent;I)V" />
-		<method name="startActivityForResult(Landroid/content/Intent;ILandroid/os/Bundle;)V" since="16" />
-		<method name="startActivityFromChild(Landroid/app/Activity;Landroid/content/Intent;I)V" />
-		<method name="startActivityFromChild(Landroid/app/Activity;Landroid/content/Intent;ILandroid/os/Bundle;)V" since="16" />
-		<method name="startActivityFromFragment(Landroid/app/Fragment;Landroid/content/Intent;I)V" since="11" />
-		<method name="startActivityFromFragment(Landroid/app/Fragment;Landroid/content/Intent;ILandroid/os/Bundle;)V" since="16" />
-		<method name="startActivityIfNeeded(Landroid/content/Intent;I)Z" />
-		<method name="startActivityIfNeeded(Landroid/content/Intent;ILandroid/os/Bundle;)Z" since="16" />
-		<method name="startIntentSenderForResult(Landroid/content/IntentSender;ILandroid/content/Intent;III)V" since="5" />
-		<method name="startIntentSenderForResult(Landroid/content/IntentSender;ILandroid/content/Intent;IIILandroid/os/Bundle;)V" since="16" />
-		<method name="startIntentSenderFromChild(Landroid/app/Activity;Landroid/content/IntentSender;ILandroid/content/Intent;III)V" since="5" />
-		<method name="startIntentSenderFromChild(Landroid/app/Activity;Landroid/content/IntentSender;ILandroid/content/Intent;IIILandroid/os/Bundle;)V" since="16" />
-		<method name="startLockTask()V" since="21" />
-		<method name="startManagingCursor(Landroid/database/Cursor;)V" />
-		<method name="startNextMatchingActivity(Landroid/content/Intent;)Z" />
-		<method name="startNextMatchingActivity(Landroid/content/Intent;Landroid/os/Bundle;)Z" since="16" />
-		<method name="startPostponedEnterTransition()V" since="21" />
-		<method name="startSearch(Ljava/lang/String;ZLandroid/os/Bundle;Z)V" />
-		<method name="stopLockTask()V" since="21" />
-		<method name="stopManagingCursor(Landroid/database/Cursor;)V" />
-		<method name="takeKeyEvents(Z)V" />
-		<method name="triggerSearch(Ljava/lang/String;Landroid/os/Bundle;)V" since="5" />
-		<method name="unregisterForContextMenu(Landroid/view/View;)V" />
-		<field name="DEFAULT_KEYS_DIALER" />
-		<field name="DEFAULT_KEYS_DISABLE" />
-		<field name="DEFAULT_KEYS_SEARCH_GLOBAL" />
-		<field name="DEFAULT_KEYS_SEARCH_LOCAL" />
-		<field name="DEFAULT_KEYS_SHORTCUT" />
-		<field name="FOCUSED_STATE_SET" />
-		<field name="RESULT_CANCELED" />
-		<field name="RESULT_FIRST_USER" />
-		<field name="RESULT_OK" />
-	</class>
-	<class name="android/app/ActivityGroup" since="1">
-		<extends name="android/app/Activity" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Z)V" />
-		<method name="getCurrentActivity()Landroid/app/Activity;" />
-		<method name="getLocalActivityManager()Landroid/app/LocalActivityManager;" />
-	</class>
-	<class name="android/app/ActivityManager" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="clearApplicationUserData()Z" since="19" />
-		<method name="dumpPackageState(Ljava/io/FileDescriptor;Ljava/lang/String;)V" since="19" />
-		<method name="getAppTasks()Ljava/util/List;" since="21" />
-		<method name="getDeviceConfigurationInfo()Landroid/content/pm/ConfigurationInfo;" since="3" />
-		<method name="getLargeMemoryClass()I" since="11" />
-		<method name="getLauncherLargeIconDensity()I" since="11" />
-		<method name="getLauncherLargeIconSize()I" since="11" />
-		<method name="getMemoryClass()I" since="5" />
-		<method name="getMemoryInfo(Landroid/app/ActivityManager$MemoryInfo;)V" />
-		<method name="getMyMemoryState(Landroid/app/ActivityManager$RunningAppProcessInfo;)V" since="16" />
-		<method name="getProcessMemoryInfo([I)[Landroid/os/Debug$MemoryInfo;" since="5" />
-		<method name="getProcessesInErrorState()Ljava/util/List;" />
-		<method name="getRecentTasks(II)Ljava/util/List;" />
-		<method name="getRunningAppProcesses()Ljava/util/List;" since="3" />
-		<method name="getRunningServiceControlPanel(Landroid/content/ComponentName;)Landroid/app/PendingIntent;" since="5" />
-		<method name="getRunningServices(I)Ljava/util/List;" />
-		<method name="getRunningTasks(I)Ljava/util/List;" />
-		<method name="isLowRamDevice()Z" since="19" />
-		<method name="isRunningInTestHarness()Z" since="11" />
-		<method name="isUserAMonkey()Z" since="8" />
-		<method name="killBackgroundProcesses(Ljava/lang/String;)V" since="8" />
-		<method name="moveTaskToFront(II)V" since="11" />
-		<method name="moveTaskToFront(IILandroid/os/Bundle;)V" since="16" />
-		<method name="restartPackage(Ljava/lang/String;)V" since="3" />
-		<field name="META_HOME_ALTERNATE" since="19" />
-		<field name="MOVE_TASK_NO_USER_ACTION" since="12" />
-		<field name="MOVE_TASK_WITH_HOME" since="11" />
-		<field name="RECENT_IGNORE_UNAVAILABLE" since="11" />
-		<field name="RECENT_WITH_EXCLUDED" />
-	</class>
-	<class name="android/app/ActivityManager$AppTask" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="finishAndRemoveTask()V" />
-		<method name="getTaskInfo()Landroid/app/ActivityManager$RecentTaskInfo;" />
-	</class>
-	<class name="android/app/ActivityManager$MemoryInfo" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="readFromParcel(Landroid/os/Parcel;)V" />
-		<field name="CREATOR" />
-		<field name="availMem" />
-		<field name="lowMemory" />
-		<field name="threshold" />
-		<field name="totalMem" since="16" />
-	</class>
-	<class name="android/app/ActivityManager$ProcessErrorStateInfo" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="readFromParcel(Landroid/os/Parcel;)V" />
-		<field name="CRASHED" />
-		<field name="CREATOR" />
-		<field name="NOT_RESPONDING" />
-		<field name="NO_ERROR" />
-		<field name="condition" />
-		<field name="crashData" />
-		<field name="longMsg" />
-		<field name="pid" />
-		<field name="processName" />
-		<field name="shortMsg" />
-		<field name="stackTrace" since="8" />
-		<field name="tag" />
-		<field name="uid" />
-	</class>
-	<class name="android/app/ActivityManager$RecentTaskInfo" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="readFromParcel(Landroid/os/Parcel;)V" />
-		<field name="CREATOR" />
-		<field name="baseIntent" />
-		<field name="description" since="11" />
-		<field name="id" />
-		<field name="origActivity" />
-		<field name="persistentId" since="12" />
-	</class>
-	<class name="android/app/ActivityManager$RunningAppProcessInfo" since="3">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;I[Ljava/lang/String;)V" />
-		<method name="readFromParcel(Landroid/os/Parcel;)V" />
-		<field name="CREATOR" />
-		<field name="IMPORTANCE_BACKGROUND" />
-		<field name="IMPORTANCE_EMPTY" />
-		<field name="IMPORTANCE_FOREGROUND" />
-		<field name="IMPORTANCE_PERCEPTIBLE" since="9" />
-		<field name="IMPORTANCE_SERVICE" />
-		<field name="IMPORTANCE_VISIBLE" />
-		<field name="REASON_PROVIDER_IN_USE" since="5" />
-		<field name="REASON_SERVICE_IN_USE" since="5" />
-		<field name="REASON_UNKNOWN" since="5" />
-		<field name="importance" />
-		<field name="importanceReasonCode" since="5" />
-		<field name="importanceReasonComponent" since="5" />
-		<field name="importanceReasonPid" since="5" />
-		<field name="lastTrimLevel" since="16" />
-		<field name="lru" />
-		<field name="pid" />
-		<field name="pkgList" />
-		<field name="processName" />
-		<field name="uid" since="5" />
-	</class>
-	<class name="android/app/ActivityManager$RunningServiceInfo" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="readFromParcel(Landroid/os/Parcel;)V" />
-		<field name="CREATOR" />
-		<field name="FLAG_FOREGROUND" since="5" />
-		<field name="FLAG_PERSISTENT_PROCESS" since="5" />
-		<field name="FLAG_STARTED" since="5" />
-		<field name="FLAG_SYSTEM_PROCESS" since="5" />
-		<field name="activeSince" />
-		<field name="clientCount" />
-		<field name="clientLabel" since="5" />
-		<field name="clientPackage" since="5" />
-		<field name="crashCount" />
-		<field name="flags" since="5" />
-		<field name="foreground" />
-		<field name="lastActivityTime" />
-		<field name="pid" />
-		<field name="process" />
-		<field name="restarting" />
-		<field name="service" />
-		<field name="started" />
-		<field name="uid" since="5" />
-	</class>
-	<class name="android/app/ActivityManager$RunningTaskInfo" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="readFromParcel(Landroid/os/Parcel;)V" />
-		<field name="CREATOR" />
-		<field name="baseActivity" />
-		<field name="description" />
-		<field name="id" />
-		<field name="numActivities" />
-		<field name="numRunning" />
-		<field name="thumbnail" />
-		<field name="topActivity" />
-	</class>
-	<class name="android/app/ActivityManager$TaskDescription" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/app/ActivityManager$TaskDescription;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Landroid/graphics/Bitmap;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Landroid/graphics/Bitmap;I)V" />
-		<method name="getIcon()Landroid/graphics/Bitmap;" />
-		<method name="getLabel()Ljava/lang/String;" />
-		<method name="getPrimaryColor()I" />
-		<method name="readFromParcel(Landroid/os/Parcel;)V" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/app/ActivityOptions" since="16">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="makeCustomAnimation(Landroid/content/Context;II)Landroid/app/ActivityOptions;" />
-		<method name="makeScaleUpAnimation(Landroid/view/View;IIII)Landroid/app/ActivityOptions;" />
-		<method name="makeSceneTransitionAnimation(Landroid/app/Activity;Landroid/view/View;Ljava/lang/String;)Landroid/app/ActivityOptions;" since="21" />
-		<method name="makeSceneTransitionAnimation(Landroid/app/Activity;[Landroid/util/Pair;)Landroid/app/ActivityOptions;" since="21" />
-		<method name="makeThumbnailScaleUpAnimation(Landroid/view/View;Landroid/graphics/Bitmap;II)Landroid/app/ActivityOptions;" />
-		<method name="toBundle()Landroid/os/Bundle;" />
-		<method name="update(Landroid/app/ActivityOptions;)V" />
-	</class>
-	<class name="android/app/AlarmManager" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="cancel(Landroid/app/PendingIntent;)V" />
-		<method name="set(IJLandroid/app/PendingIntent;)V" />
-		<method name="setExact(IJLandroid/app/PendingIntent;)V" since="19" />
-		<method name="setInexactRepeating(IJJLandroid/app/PendingIntent;)V" since="3" />
-		<method name="setRepeating(IJJLandroid/app/PendingIntent;)V" />
-		<method name="setTime(J)V" since="8" />
-		<method name="setTimeZone(Ljava/lang/String;)V" />
-		<method name="setWindow(IJJLandroid/app/PendingIntent;)V" since="19" />
-		<field name="ELAPSED_REALTIME" />
-		<field name="ELAPSED_REALTIME_WAKEUP" />
-		<field name="INTERVAL_DAY" since="3" />
-		<field name="INTERVAL_FIFTEEN_MINUTES" since="3" />
-		<field name="INTERVAL_HALF_DAY" since="3" />
-		<field name="INTERVAL_HALF_HOUR" since="3" />
-		<field name="INTERVAL_HOUR" since="3" />
-		<field name="RTC" />
-		<field name="RTC_WAKEUP" />
-	</class>
-	<class name="android/app/AlertDialog" since="1">
-		<extends name="android/app/Dialog" />
-		<implements name="android/content/DialogInterface" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;ZLandroid/content/DialogInterface$OnCancelListener;)V" />
-		<method name="getButton(I)Landroid/widget/Button;" since="3" />
-		<method name="getListView()Landroid/widget/ListView;" since="3" />
-		<method name="setButton(ILjava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)V" since="3" />
-		<method name="setButton(ILjava/lang/CharSequence;Landroid/os/Message;)V" since="3" />
-		<method name="setButton(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)V" />
-		<method name="setButton(Ljava/lang/CharSequence;Landroid/os/Message;)V" />
-		<method name="setButton2(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)V" />
-		<method name="setButton2(Ljava/lang/CharSequence;Landroid/os/Message;)V" />
-		<method name="setButton3(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)V" />
-		<method name="setButton3(Ljava/lang/CharSequence;Landroid/os/Message;)V" />
-		<method name="setCustomTitle(Landroid/view/View;)V" />
-		<method name="setIcon(I)V" />
-		<method name="setIcon(Landroid/graphics/drawable/Drawable;)V" />
-		<method name="setIconAttribute(I)V" since="11" />
-		<method name="setInverseBackgroundForced(Z)V" />
-		<method name="setMessage(Ljava/lang/CharSequence;)V" />
-		<method name="setView(Landroid/view/View;)V" />
-		<method name="setView(Landroid/view/View;IIII)V" since="3" />
-		<field name="THEME_DEVICE_DEFAULT_DARK" since="14" />
-		<field name="THEME_DEVICE_DEFAULT_LIGHT" since="14" />
-		<field name="THEME_HOLO_DARK" since="11" />
-		<field name="THEME_HOLO_LIGHT" since="11" />
-		<field name="THEME_TRADITIONAL" since="11" />
-	</class>
-	<class name="android/app/AlertDialog$Builder" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;I)V" since="11" />
-		<method name="create()Landroid/app/AlertDialog;" />
-		<method name="getContext()Landroid/content/Context;" since="11" />
-		<method name="setAdapter(Landroid/widget/ListAdapter;Landroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;" />
-		<method name="setCancelable(Z)Landroid/app/AlertDialog$Builder;" />
-		<method name="setCursor(Landroid/database/Cursor;Landroid/content/DialogInterface$OnClickListener;Ljava/lang/String;)Landroid/app/AlertDialog$Builder;" />
-		<method name="setCustomTitle(Landroid/view/View;)Landroid/app/AlertDialog$Builder;" />
-		<method name="setIcon(I)Landroid/app/AlertDialog$Builder;" />
-		<method name="setIcon(Landroid/graphics/drawable/Drawable;)Landroid/app/AlertDialog$Builder;" />
-		<method name="setIconAttribute(I)Landroid/app/AlertDialog$Builder;" since="11" />
-		<method name="setInverseBackgroundForced(Z)Landroid/app/AlertDialog$Builder;" />
-		<method name="setItems(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;" />
-		<method name="setItems([Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;" />
-		<method name="setMessage(I)Landroid/app/AlertDialog$Builder;" />
-		<method name="setMessage(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder;" />
-		<method name="setMultiChoiceItems(I[ZLandroid/content/DialogInterface$OnMultiChoiceClickListener;)Landroid/app/AlertDialog$Builder;" />
-		<method name="setMultiChoiceItems(Landroid/database/Cursor;Ljava/lang/String;Ljava/lang/String;Landroid/content/DialogInterface$OnMultiChoiceClickListener;)Landroid/app/AlertDialog$Builder;" />
-		<method name="setMultiChoiceItems([Ljava/lang/CharSequence;[ZLandroid/content/DialogInterface$OnMultiChoiceClickListener;)Landroid/app/AlertDialog$Builder;" />
-		<method name="setNegativeButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;" />
-		<method name="setNegativeButton(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;" />
-		<method name="setNeutralButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;" />
-		<method name="setNeutralButton(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;" />
-		<method name="setOnCancelListener(Landroid/content/DialogInterface$OnCancelListener;)Landroid/app/AlertDialog$Builder;" />
-		<method name="setOnDismissListener(Landroid/content/DialogInterface$OnDismissListener;)Landroid/app/AlertDialog$Builder;" since="17" />
-		<method name="setOnItemSelectedListener(Landroid/widget/AdapterView$OnItemSelectedListener;)Landroid/app/AlertDialog$Builder;" />
-		<method name="setOnKeyListener(Landroid/content/DialogInterface$OnKeyListener;)Landroid/app/AlertDialog$Builder;" />
-		<method name="setPositiveButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;" />
-		<method name="setPositiveButton(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;" />
-		<method name="setSingleChoiceItems(IILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;" />
-		<method name="setSingleChoiceItems(Landroid/database/Cursor;ILjava/lang/String;Landroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;" />
-		<method name="setSingleChoiceItems(Landroid/widget/ListAdapter;ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;" />
-		<method name="setSingleChoiceItems([Ljava/lang/CharSequence;ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;" />
-		<method name="setTitle(I)Landroid/app/AlertDialog$Builder;" />
-		<method name="setTitle(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder;" />
-		<method name="setView(I)Landroid/app/AlertDialog$Builder;" since="21" />
-		<method name="setView(Landroid/view/View;)Landroid/app/AlertDialog$Builder;" />
-		<method name="show()Landroid/app/AlertDialog;" />
-	</class>
-	<class name="android/app/AliasActivity" since="1">
-		<extends name="android/app/Activity" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/app/AppOpsManager" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="checkOp(Ljava/lang/String;ILjava/lang/String;)I" />
-		<method name="checkOpNoThrow(Ljava/lang/String;ILjava/lang/String;)I" />
-		<method name="checkPackage(ILjava/lang/String;)V" />
-		<method name="finishOp(Ljava/lang/String;ILjava/lang/String;)V" />
-		<method name="noteOp(Ljava/lang/String;ILjava/lang/String;)I" />
-		<method name="noteOpNoThrow(Ljava/lang/String;ILjava/lang/String;)I" />
-		<method name="startOp(Ljava/lang/String;ILjava/lang/String;)I" />
-		<method name="startOpNoThrow(Ljava/lang/String;ILjava/lang/String;)I" />
-		<method name="startWatchingMode(Ljava/lang/String;Ljava/lang/String;Landroid/app/AppOpsManager$OnOpChangedListener;)V" />
-		<method name="stopWatchingMode(Landroid/app/AppOpsManager$OnOpChangedListener;)V" />
-		<field name="MODE_ALLOWED" />
-		<field name="MODE_ERRORED" />
-		<field name="MODE_IGNORED" />
-		<field name="OPSTR_COARSE_LOCATION" />
-		<field name="OPSTR_FINE_LOCATION" />
-		<field name="OPSTR_MONITOR_HIGH_POWER_LOCATION" />
-		<field name="OPSTR_MONITOR_LOCATION" />
-	</class>
-	<class name="android/app/AppOpsManager$OnOpChangedListener" since="19">
-		<extends name="java/lang/Object" />
-		<method name="onOpChanged(Ljava/lang/String;Ljava/lang/String;)V" />
-	</class>
-	<class name="android/app/Application" since="1">
-		<extends name="android/content/ContextWrapper" />
-		<implements name="android/content/ComponentCallbacks" />
-		<implements name="android/content/ComponentCallbacks2" since="14" />
-		<method name="&lt;init>()V" />
-		<method name="onCreate()V" />
-		<method name="onTerminate()V" />
-		<method name="registerActivityLifecycleCallbacks(Landroid/app/Application$ActivityLifecycleCallbacks;)V" since="14" />
-		<method name="registerOnProvideAssistDataListener(Landroid/app/Application$OnProvideAssistDataListener;)V" since="18" />
-		<method name="unregisterActivityLifecycleCallbacks(Landroid/app/Application$ActivityLifecycleCallbacks;)V" since="14" />
-		<method name="unregisterOnProvideAssistDataListener(Landroid/app/Application$OnProvideAssistDataListener;)V" since="18" />
-	</class>
-	<class name="android/app/Application$ActivityLifecycleCallbacks" since="14">
-		<extends name="java/lang/Object" />
-		<method name="onActivityCreated(Landroid/app/Activity;Landroid/os/Bundle;)V" />
-		<method name="onActivityDestroyed(Landroid/app/Activity;)V" />
-		<method name="onActivityPaused(Landroid/app/Activity;)V" />
-		<method name="onActivityResumed(Landroid/app/Activity;)V" />
-		<method name="onActivitySaveInstanceState(Landroid/app/Activity;Landroid/os/Bundle;)V" />
-		<method name="onActivityStarted(Landroid/app/Activity;)V" />
-		<method name="onActivityStopped(Landroid/app/Activity;)V" />
-	</class>
-	<class name="android/app/Application$OnProvideAssistDataListener" since="18">
-		<extends name="java/lang/Object" />
-		<method name="onProvideAssistData(Landroid/app/Activity;Landroid/os/Bundle;)V" />
-	</class>
-	<class name="android/app/ApplicationErrorReport" since="14">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" />
-		<method name="getErrorReportReceiver(Landroid/content/Context;Ljava/lang/String;I)Landroid/content/ComponentName;" />
-		<method name="readFromParcel(Landroid/os/Parcel;)V" />
-		<field name="CREATOR" />
-		<field name="TYPE_ANR" />
-		<field name="TYPE_BATTERY" />
-		<field name="TYPE_CRASH" />
-		<field name="TYPE_NONE" />
-		<field name="TYPE_RUNNING_SERVICE" />
-		<field name="anrInfo" />
-		<field name="batteryInfo" />
-		<field name="crashInfo" />
-		<field name="installerPackageName" />
-		<field name="packageName" />
-		<field name="processName" />
-		<field name="runningServiceInfo" />
-		<field name="systemApp" />
-		<field name="time" />
-		<field name="type" />
-	</class>
-	<class name="android/app/ApplicationErrorReport$AnrInfo" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" />
-		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" />
-		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
-		<field name="activity" />
-		<field name="cause" />
-		<field name="info" />
-	</class>
-	<class name="android/app/ApplicationErrorReport$BatteryInfo" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" />
-		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" />
-		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
-		<field name="checkinDetails" />
-		<field name="durationMicros" />
-		<field name="usageDetails" />
-		<field name="usagePercent" />
-	</class>
-	<class name="android/app/ApplicationErrorReport$CrashInfo" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" />
-		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
-		<field name="exceptionClassName" />
-		<field name="exceptionMessage" />
-		<field name="stackTrace" />
-		<field name="throwClassName" />
-		<field name="throwFileName" />
-		<field name="throwLineNumber" />
-		<field name="throwMethodName" />
-	</class>
-	<class name="android/app/ApplicationErrorReport$RunningServiceInfo" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" />
-		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" />
-		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
-		<field name="durationMillis" />
-		<field name="serviceDetails" />
-	</class>
-	<class name="android/app/DatePickerDialog" since="1">
-		<extends name="android/app/AlertDialog" />
-		<implements name="android/content/DialogInterface$OnClickListener" />
-		<implements name="android/widget/DatePicker$OnDateChangedListener" />
-		<method name="&lt;init>(Landroid/content/Context;ILandroid/app/DatePickerDialog$OnDateSetListener;III)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/app/DatePickerDialog$OnDateSetListener;III)V" />
-		<method name="getDatePicker()Landroid/widget/DatePicker;" since="11" />
-		<method name="updateDate(III)V" />
-	</class>
-	<class name="android/app/DatePickerDialog$OnDateSetListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onDateSet(Landroid/widget/DatePicker;III)V" />
-	</class>
-	<class name="android/app/Dialog" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/content/DialogInterface" />
-		<implements name="android/view/KeyEvent$Callback" />
-		<implements name="android/view/View$OnCreateContextMenuListener" />
-		<implements name="android/view/Window$Callback" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;ZLandroid/content/DialogInterface$OnCancelListener;)V" />
-		<method name="addContentView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V" />
-		<method name="closeOptionsMenu()V" />
-		<method name="create()V" since="21" />
-		<method name="findViewById(I)Landroid/view/View;" />
-		<method name="getActionBar()Landroid/app/ActionBar;" since="11" />
-		<method name="getContext()Landroid/content/Context;" />
-		<method name="getCurrentFocus()Landroid/view/View;" />
-		<method name="getLayoutInflater()Landroid/view/LayoutInflater;" />
-		<method name="getOwnerActivity()Landroid/app/Activity;" />
-		<method name="getVolumeControlStream()I" />
-		<method name="getWindow()Landroid/view/Window;" />
-		<method name="hide()V" />
-		<method name="invalidateOptionsMenu()V" since="11" />
-		<method name="isShowing()Z" />
-		<method name="onBackPressed()V" since="5" />
-		<method name="onContextItemSelected(Landroid/view/MenuItem;)Z" />
-		<method name="onContextMenuClosed(Landroid/view/Menu;)V" />
-		<method name="onCreate(Landroid/os/Bundle;)V" />
-		<method name="onCreateOptionsMenu(Landroid/view/Menu;)Z" />
-		<method name="onGenericMotionEvent(Landroid/view/MotionEvent;)Z" since="12" />
-		<method name="onKeyShortcut(ILandroid/view/KeyEvent;)Z" since="11" />
-		<method name="onOptionsItemSelected(Landroid/view/MenuItem;)Z" />
-		<method name="onOptionsMenuClosed(Landroid/view/Menu;)V" />
-		<method name="onPrepareOptionsMenu(Landroid/view/Menu;)Z" />
-		<method name="onRestoreInstanceState(Landroid/os/Bundle;)V" />
-		<method name="onSaveInstanceState()Landroid/os/Bundle;" />
-		<method name="onStart()V" />
-		<method name="onStop()V" />
-		<method name="onTouchEvent(Landroid/view/MotionEvent;)Z" />
-		<method name="onTrackballEvent(Landroid/view/MotionEvent;)Z" />
-		<method name="openContextMenu(Landroid/view/View;)V" />
-		<method name="openOptionsMenu()V" />
-		<method name="registerForContextMenu(Landroid/view/View;)V" />
-		<method name="requestWindowFeature(I)Z" />
-		<method name="setCancelMessage(Landroid/os/Message;)V" />
-		<method name="setCancelable(Z)V" />
-		<method name="setCanceledOnTouchOutside(Z)V" />
-		<method name="setContentView(I)V" />
-		<method name="setContentView(Landroid/view/View;)V" />
-		<method name="setContentView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V" />
-		<method name="setDismissMessage(Landroid/os/Message;)V" />
-		<method name="setFeatureDrawable(ILandroid/graphics/drawable/Drawable;)V" />
-		<method name="setFeatureDrawableAlpha(II)V" />
-		<method name="setFeatureDrawableResource(II)V" />
-		<method name="setFeatureDrawableUri(ILandroid/net/Uri;)V" />
-		<method name="setOnCancelListener(Landroid/content/DialogInterface$OnCancelListener;)V" />
-		<method name="setOnDismissListener(Landroid/content/DialogInterface$OnDismissListener;)V" />
-		<method name="setOnKeyListener(Landroid/content/DialogInterface$OnKeyListener;)V" />
-		<method name="setOnShowListener(Landroid/content/DialogInterface$OnShowListener;)V" since="8" />
-		<method name="setOwnerActivity(Landroid/app/Activity;)V" />
-		<method name="setTitle(I)V" />
-		<method name="setTitle(Ljava/lang/CharSequence;)V" />
-		<method name="setVolumeControlStream(I)V" />
-		<method name="show()V" />
-		<method name="takeKeyEvents(Z)V" />
-		<method name="unregisterForContextMenu(Landroid/view/View;)V" />
-	</class>
-	<class name="android/app/DialogFragment" since="11">
-		<extends name="android/app/Fragment" />
-		<implements name="android/content/DialogInterface$OnCancelListener" />
-		<implements name="android/content/DialogInterface$OnDismissListener" />
-		<method name="&lt;init>()V" />
-		<method name="dismiss()V" />
-		<method name="dismissAllowingStateLoss()V" since="12" />
-		<method name="getDialog()Landroid/app/Dialog;" />
-		<method name="getShowsDialog()Z" />
-		<method name="getTheme()I" />
-		<method name="isCancelable()Z" />
-		<method name="onCreateDialog(Landroid/os/Bundle;)Landroid/app/Dialog;" />
-		<method name="setCancelable(Z)V" />
-		<method name="setShowsDialog(Z)V" />
-		<method name="setStyle(II)V" />
-		<method name="show(Landroid/app/FragmentManager;Ljava/lang/String;)V" />
-		<method name="show(Landroid/app/FragmentTransaction;Ljava/lang/String;)I" />
-		<field name="STYLE_NORMAL" />
-		<field name="STYLE_NO_FRAME" />
-		<field name="STYLE_NO_INPUT" />
-		<field name="STYLE_NO_TITLE" />
-	</class>
-	<class name="android/app/DownloadManager" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addCompletedDownload(Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;JZ)J" since="12" />
-		<method name="enqueue(Landroid/app/DownloadManager$Request;)J" />
-		<method name="getMaxBytesOverMobile(Landroid/content/Context;)Ljava/lang/Long;" since="11" />
-		<method name="getMimeTypeForDownloadedFile(J)Ljava/lang/String;" since="11" />
-		<method name="getRecommendedMaxBytesOverMobile(Landroid/content/Context;)Ljava/lang/Long;" since="11" />
-		<method name="getUriForDownloadedFile(J)Landroid/net/Uri;" since="11" />
-		<method name="openDownloadedFile(J)Landroid/os/ParcelFileDescriptor;" />
-		<method name="query(Landroid/app/DownloadManager$Query;)Landroid/database/Cursor;" />
-		<method name="remove([J)I" />
-		<field name="ACTION_DOWNLOAD_COMPLETE" />
-		<field name="ACTION_NOTIFICATION_CLICKED" />
-		<field name="ACTION_VIEW_DOWNLOADS" />
-		<field name="COLUMN_BYTES_DOWNLOADED_SO_FAR" />
-		<field name="COLUMN_DESCRIPTION" />
-		<field name="COLUMN_ID" />
-		<field name="COLUMN_LAST_MODIFIED_TIMESTAMP" />
-		<field name="COLUMN_LOCAL_FILENAME" since="11" />
-		<field name="COLUMN_LOCAL_URI" />
-		<field name="COLUMN_MEDIAPROVIDER_URI" />
-		<field name="COLUMN_MEDIA_TYPE" />
-		<field name="COLUMN_REASON" />
-		<field name="COLUMN_STATUS" />
-		<field name="COLUMN_TITLE" />
-		<field name="COLUMN_TOTAL_SIZE_BYTES" />
-		<field name="COLUMN_URI" />
-		<field name="ERROR_CANNOT_RESUME" />
-		<field name="ERROR_DEVICE_NOT_FOUND" />
-		<field name="ERROR_FILE_ALREADY_EXISTS" />
-		<field name="ERROR_FILE_ERROR" />
-		<field name="ERROR_HTTP_DATA_ERROR" />
-		<field name="ERROR_INSUFFICIENT_SPACE" />
-		<field name="ERROR_TOO_MANY_REDIRECTS" />
-		<field name="ERROR_UNHANDLED_HTTP_CODE" />
-		<field name="ERROR_UNKNOWN" />
-		<field name="EXTRA_DOWNLOAD_ID" />
-		<field name="EXTRA_NOTIFICATION_CLICK_DOWNLOAD_IDS" since="11" />
-		<field name="INTENT_EXTRAS_SORT_BY_SIZE" since="12" />
-		<field name="PAUSED_QUEUED_FOR_WIFI" />
-		<field name="PAUSED_UNKNOWN" />
-		<field name="PAUSED_WAITING_FOR_NETWORK" />
-		<field name="PAUSED_WAITING_TO_RETRY" />
-		<field name="STATUS_FAILED" />
-		<field name="STATUS_PAUSED" />
-		<field name="STATUS_PENDING" />
-		<field name="STATUS_RUNNING" />
-		<field name="STATUS_SUCCESSFUL" />
-	</class>
-	<class name="android/app/DownloadManager$Query" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="setFilterById([J)Landroid/app/DownloadManager$Query;" />
-		<method name="setFilterByStatus(I)Landroid/app/DownloadManager$Query;" />
-	</class>
-	<class name="android/app/DownloadManager$Request" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/net/Uri;)V" />
-		<method name="addRequestHeader(Ljava/lang/String;Ljava/lang/String;)Landroid/app/DownloadManager$Request;" />
-		<method name="allowScanningByMediaScanner()V" since="11" />
-		<method name="setAllowedNetworkTypes(I)Landroid/app/DownloadManager$Request;" />
-		<method name="setAllowedOverMetered(Z)Landroid/app/DownloadManager$Request;" since="16" />
-		<method name="setAllowedOverRoaming(Z)Landroid/app/DownloadManager$Request;" />
-		<method name="setDescription(Ljava/lang/CharSequence;)Landroid/app/DownloadManager$Request;" />
-		<method name="setDestinationInExternalFilesDir(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)Landroid/app/DownloadManager$Request;" />
-		<method name="setDestinationInExternalPublicDir(Ljava/lang/String;Ljava/lang/String;)Landroid/app/DownloadManager$Request;" />
-		<method name="setDestinationUri(Landroid/net/Uri;)Landroid/app/DownloadManager$Request;" />
-		<method name="setMimeType(Ljava/lang/String;)Landroid/app/DownloadManager$Request;" />
-		<method name="setNotificationVisibility(I)Landroid/app/DownloadManager$Request;" since="11" />
-		<method name="setShowRunningNotification(Z)Landroid/app/DownloadManager$Request;" />
-		<method name="setTitle(Ljava/lang/CharSequence;)Landroid/app/DownloadManager$Request;" />
-		<method name="setVisibleInDownloadsUi(Z)Landroid/app/DownloadManager$Request;" />
-		<field name="NETWORK_MOBILE" />
-		<field name="NETWORK_WIFI" />
-		<field name="VISIBILITY_HIDDEN" since="11" />
-		<field name="VISIBILITY_VISIBLE" since="11" />
-		<field name="VISIBILITY_VISIBLE_NOTIFY_COMPLETED" since="11" />
-		<field name="VISIBILITY_VISIBLE_NOTIFY_ONLY_COMPLETION" since="12" />
-	</class>
-	<class name="android/app/ExpandableListActivity" since="1">
-		<extends name="android/app/Activity" />
-		<implements name="android/view/View$OnCreateContextMenuListener" />
-		<implements name="android/widget/ExpandableListView$OnChildClickListener" />
-		<implements name="android/widget/ExpandableListView$OnGroupCollapseListener" />
-		<implements name="android/widget/ExpandableListView$OnGroupExpandListener" />
-		<method name="&lt;init>()V" />
-		<method name="getExpandableListAdapter()Landroid/widget/ExpandableListAdapter;" />
-		<method name="getExpandableListView()Landroid/widget/ExpandableListView;" />
-		<method name="getSelectedId()J" />
-		<method name="getSelectedPosition()J" />
-		<method name="setListAdapter(Landroid/widget/ExpandableListAdapter;)V" />
-		<method name="setSelectedChild(IIZ)Z" />
-		<method name="setSelectedGroup(I)V" />
-	</class>
-	<class name="android/app/Fragment" since="11">
-		<extends name="java/lang/Object" />
-		<implements name="android/content/ComponentCallbacks" />
-		<implements name="android/content/ComponentCallbacks2" since="14" />
-		<implements name="android/view/View$OnCreateContextMenuListener" />
-		<method name="&lt;init>()V" />
-		<method name="dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V" />
-		<method name="getActivity()Landroid/app/Activity;" />
-		<method name="getArguments()Landroid/os/Bundle;" />
-		<method name="getChildFragmentManager()Landroid/app/FragmentManager;" since="17" />
-		<method name="getFragmentManager()Landroid/app/FragmentManager;" />
-		<method name="getId()I" />
-		<method name="getLoaderManager()Landroid/app/LoaderManager;" />
-		<method name="getParentFragment()Landroid/app/Fragment;" since="17" />
-		<method name="getResources()Landroid/content/res/Resources;" />
-		<method name="getRetainInstance()Z" />
-		<method name="getString(I)Ljava/lang/String;" />
-		<method name="getString(I[Ljava/lang/Object;)Ljava/lang/String;" />
-		<method name="getTag()Ljava/lang/String;" />
-		<method name="getTargetFragment()Landroid/app/Fragment;" />
-		<method name="getTargetRequestCode()I" />
-		<method name="getText(I)Ljava/lang/CharSequence;" />
-		<method name="getUserVisibleHint()Z" since="15" />
-		<method name="getView()Landroid/view/View;" />
-		<method name="instantiate(Landroid/content/Context;Ljava/lang/String;)Landroid/app/Fragment;" />
-		<method name="instantiate(Landroid/content/Context;Ljava/lang/String;Landroid/os/Bundle;)Landroid/app/Fragment;" />
-		<method name="isAdded()Z" />
-		<method name="isDetached()Z" since="13" />
-		<method name="isHidden()Z" />
-		<method name="isInLayout()Z" />
-		<method name="isRemoving()Z" />
-		<method name="isResumed()Z" />
-		<method name="isVisible()Z" />
-		<method name="onActivityCreated(Landroid/os/Bundle;)V" />
-		<method name="onActivityResult(IILandroid/content/Intent;)V" />
-		<method name="onAttach(Landroid/app/Activity;)V" />
-		<method name="onContextItemSelected(Landroid/view/MenuItem;)Z" />
-		<method name="onCreate(Landroid/os/Bundle;)V" />
-		<method name="onCreateAnimator(IZI)Landroid/animation/Animator;" />
-		<method name="onCreateOptionsMenu(Landroid/view/Menu;Landroid/view/MenuInflater;)V" />
-		<method name="onCreateView(Landroid/view/LayoutInflater;Landroid/view/ViewGroup;Landroid/os/Bundle;)Landroid/view/View;" />
-		<method name="onDestroy()V" />
-		<method name="onDestroyOptionsMenu()V" />
-		<method name="onDestroyView()V" />
-		<method name="onDetach()V" />
-		<method name="onHiddenChanged(Z)V" />
-		<method name="onInflate(Landroid/app/Activity;Landroid/util/AttributeSet;Landroid/os/Bundle;)V" since="12" />
-		<method name="onInflate(Landroid/util/AttributeSet;Landroid/os/Bundle;)V" />
-		<method name="onOptionsItemSelected(Landroid/view/MenuItem;)Z" />
-		<method name="onOptionsMenuClosed(Landroid/view/Menu;)V" />
-		<method name="onPause()V" />
-		<method name="onPrepareOptionsMenu(Landroid/view/Menu;)V" />
-		<method name="onResume()V" />
-		<method name="onSaveInstanceState(Landroid/os/Bundle;)V" />
-		<method name="onStart()V" />
-		<method name="onStop()V" />
-		<method name="onViewCreated(Landroid/view/View;Landroid/os/Bundle;)V" since="13" />
-		<method name="onViewStateRestored(Landroid/os/Bundle;)V" since="17" />
-		<method name="registerForContextMenu(Landroid/view/View;)V" />
-		<method name="setArguments(Landroid/os/Bundle;)V" />
-		<method name="setHasOptionsMenu(Z)V" />
-		<method name="setInitialSavedState(Landroid/app/Fragment$SavedState;)V" since="13" />
-		<method name="setMenuVisibility(Z)V" since="14" />
-		<method name="setRetainInstance(Z)V" />
-		<method name="setTargetFragment(Landroid/app/Fragment;I)V" />
-		<method name="setUserVisibleHint(Z)V" since="15" />
-		<method name="startActivity(Landroid/content/Intent;)V" />
-		<method name="startActivity(Landroid/content/Intent;Landroid/os/Bundle;)V" since="16" />
-		<method name="startActivityForResult(Landroid/content/Intent;I)V" />
-		<method name="startActivityForResult(Landroid/content/Intent;ILandroid/os/Bundle;)V" since="16" />
-		<method name="unregisterForContextMenu(Landroid/view/View;)V" />
-	</class>
-	<class name="android/app/Fragment$InstantiationException" since="11">
-		<extends name="android/util/AndroidRuntimeException" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Exception;)V" />
-	</class>
-	<class name="android/app/Fragment$SavedState" since="13">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/app/FragmentBreadCrumbs" since="11">
-		<extends name="android/view/ViewGroup" />
-		<implements name="android/app/FragmentManager$OnBackStackChangedListener" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="setActivity(Landroid/app/Activity;)V" />
-		<method name="setMaxVisible(I)V" />
-		<method name="setOnBreadCrumbClickListener(Landroid/app/FragmentBreadCrumbs$OnBreadCrumbClickListener;)V" since="12" />
-		<method name="setParentTitle(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/view/View$OnClickListener;)V" />
-		<method name="setTitle(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)V" />
-	</class>
-	<class name="android/app/FragmentBreadCrumbs$OnBreadCrumbClickListener" since="12">
-		<extends name="java/lang/Object" />
-		<method name="onBreadCrumbClick(Landroid/app/FragmentManager$BackStackEntry;I)Z" />
-	</class>
-	<class name="android/app/FragmentManager" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addOnBackStackChangedListener(Landroid/app/FragmentManager$OnBackStackChangedListener;)V" />
-		<method name="beginTransaction()Landroid/app/FragmentTransaction;" />
-		<method name="dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V" />
-		<method name="enableDebugLogging(Z)V" />
-		<method name="executePendingTransactions()Z" />
-		<method name="findFragmentById(I)Landroid/app/Fragment;" />
-		<method name="findFragmentByTag(Ljava/lang/String;)Landroid/app/Fragment;" />
-		<method name="getBackStackEntryAt(I)Landroid/app/FragmentManager$BackStackEntry;" />
-		<method name="getBackStackEntryCount()I" />
-		<method name="getFragment(Landroid/os/Bundle;Ljava/lang/String;)Landroid/app/Fragment;" />
-		<method name="invalidateOptionsMenu()V" since="14" />
-		<method name="isDestroyed()Z" since="17" />
-		<method name="popBackStack()V" />
-		<method name="popBackStack(II)V" />
-		<method name="popBackStack(Ljava/lang/String;I)V" />
-		<method name="popBackStackImmediate()Z" />
-		<method name="popBackStackImmediate(II)Z" />
-		<method name="popBackStackImmediate(Ljava/lang/String;I)Z" />
-		<method name="putFragment(Landroid/os/Bundle;Ljava/lang/String;Landroid/app/Fragment;)V" />
-		<method name="removeOnBackStackChangedListener(Landroid/app/FragmentManager$OnBackStackChangedListener;)V" />
-		<method name="saveFragmentInstanceState(Landroid/app/Fragment;)Landroid/app/Fragment$SavedState;" since="13" />
-		<field name="POP_BACK_STACK_INCLUSIVE" />
-	</class>
-	<class name="android/app/FragmentManager$BackStackEntry" since="11">
-		<extends name="java/lang/Object" />
-		<method name="getBreadCrumbShortTitle()Ljava/lang/CharSequence;" />
-		<method name="getBreadCrumbShortTitleRes()I" />
-		<method name="getBreadCrumbTitle()Ljava/lang/CharSequence;" />
-		<method name="getBreadCrumbTitleRes()I" />
-		<method name="getId()I" />
-		<method name="getName()Ljava/lang/String;" since="14" />
-	</class>
-	<class name="android/app/FragmentManager$OnBackStackChangedListener" since="11">
-		<extends name="java/lang/Object" />
-		<method name="onBackStackChanged()V" />
-	</class>
-	<class name="android/app/FragmentTransaction" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="add(ILandroid/app/Fragment;)Landroid/app/FragmentTransaction;" />
-		<method name="add(ILandroid/app/Fragment;Ljava/lang/String;)Landroid/app/FragmentTransaction;" />
-		<method name="add(Landroid/app/Fragment;Ljava/lang/String;)Landroid/app/FragmentTransaction;" />
-		<method name="addToBackStack(Ljava/lang/String;)Landroid/app/FragmentTransaction;" />
-		<method name="attach(Landroid/app/Fragment;)Landroid/app/FragmentTransaction;" since="13" />
-		<method name="commit()I" />
-		<method name="commitAllowingStateLoss()I" />
-		<method name="detach(Landroid/app/Fragment;)Landroid/app/FragmentTransaction;" since="13" />
-		<method name="disallowAddToBackStack()Landroid/app/FragmentTransaction;" />
-		<method name="hide(Landroid/app/Fragment;)Landroid/app/FragmentTransaction;" />
-		<method name="isAddToBackStackAllowed()Z" />
-		<method name="isEmpty()Z" />
-		<method name="remove(Landroid/app/Fragment;)Landroid/app/FragmentTransaction;" />
-		<method name="replace(ILandroid/app/Fragment;)Landroid/app/FragmentTransaction;" />
-		<method name="replace(ILandroid/app/Fragment;Ljava/lang/String;)Landroid/app/FragmentTransaction;" />
-		<method name="setBreadCrumbShortTitle(I)Landroid/app/FragmentTransaction;" />
-		<method name="setBreadCrumbShortTitle(Ljava/lang/CharSequence;)Landroid/app/FragmentTransaction;" />
-		<method name="setBreadCrumbTitle(I)Landroid/app/FragmentTransaction;" />
-		<method name="setBreadCrumbTitle(Ljava/lang/CharSequence;)Landroid/app/FragmentTransaction;" />
-		<method name="setCustomAnimations(II)Landroid/app/FragmentTransaction;" />
-		<method name="setCustomAnimations(IIII)Landroid/app/FragmentTransaction;" since="13" />
-		<method name="setTransition(I)Landroid/app/FragmentTransaction;" />
-		<method name="setTransitionStyle(I)Landroid/app/FragmentTransaction;" />
-		<method name="show(Landroid/app/Fragment;)Landroid/app/FragmentTransaction;" />
-		<field name="TRANSIT_ENTER_MASK" />
-		<field name="TRANSIT_EXIT_MASK" />
-		<field name="TRANSIT_FRAGMENT_CLOSE" />
-		<field name="TRANSIT_FRAGMENT_FADE" />
-		<field name="TRANSIT_FRAGMENT_OPEN" />
-		<field name="TRANSIT_NONE" />
-		<field name="TRANSIT_UNSET" />
-	</class>
-	<class name="android/app/Instrumentation" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addMonitor(Landroid/app/Instrumentation$ActivityMonitor;)V" />
-		<method name="addMonitor(Landroid/content/IntentFilter;Landroid/app/Instrumentation$ActivityResult;Z)Landroid/app/Instrumentation$ActivityMonitor;" />
-		<method name="addMonitor(Ljava/lang/String;Landroid/app/Instrumentation$ActivityResult;Z)Landroid/app/Instrumentation$ActivityMonitor;" />
-		<method name="callActivityOnCreate(Landroid/app/Activity;Landroid/os/Bundle;)V" />
-		<method name="callActivityOnCreate(Landroid/app/Activity;Landroid/os/Bundle;Landroid/os/PersistableBundle;)V" since="21" />
-		<method name="callActivityOnDestroy(Landroid/app/Activity;)V" />
-		<method name="callActivityOnNewIntent(Landroid/app/Activity;Landroid/content/Intent;)V" />
-		<method name="callActivityOnPause(Landroid/app/Activity;)V" />
-		<method name="callActivityOnPostCreate(Landroid/app/Activity;Landroid/os/Bundle;)V" />
-		<method name="callActivityOnPostCreate(Landroid/app/Activity;Landroid/os/Bundle;Landroid/os/PersistableBundle;)V" since="21" />
-		<method name="callActivityOnRestart(Landroid/app/Activity;)V" />
-		<method name="callActivityOnRestoreInstanceState(Landroid/app/Activity;Landroid/os/Bundle;)V" />
-		<method name="callActivityOnRestoreInstanceState(Landroid/app/Activity;Landroid/os/Bundle;Landroid/os/PersistableBundle;)V" since="21" />
-		<method name="callActivityOnResume(Landroid/app/Activity;)V" />
-		<method name="callActivityOnSaveInstanceState(Landroid/app/Activity;Landroid/os/Bundle;)V" />
-		<method name="callActivityOnSaveInstanceState(Landroid/app/Activity;Landroid/os/Bundle;Landroid/os/PersistableBundle;)V" since="21" />
-		<method name="callActivityOnStart(Landroid/app/Activity;)V" />
-		<method name="callActivityOnStop(Landroid/app/Activity;)V" />
-		<method name="callActivityOnUserLeaving(Landroid/app/Activity;)V" since="3" />
-		<method name="callApplicationOnCreate(Landroid/app/Application;)V" />
-		<method name="checkMonitorHit(Landroid/app/Instrumentation$ActivityMonitor;I)Z" />
-		<method name="endPerformanceSnapshot()V" />
-		<method name="finish(ILandroid/os/Bundle;)V" />
-		<method name="getAllocCounts()Landroid/os/Bundle;" />
-		<method name="getBinderCounts()Landroid/os/Bundle;" />
-		<method name="getComponentName()Landroid/content/ComponentName;" />
-		<method name="getContext()Landroid/content/Context;" />
-		<method name="getTargetContext()Landroid/content/Context;" />
-		<method name="getUiAutomation()Landroid/app/UiAutomation;" since="18" />
-		<method name="invokeContextMenuAction(Landroid/app/Activity;II)Z" />
-		<method name="invokeMenuActionSync(Landroid/app/Activity;II)Z" />
-		<method name="isProfiling()Z" />
-		<method name="newActivity(Ljava/lang/Class;Landroid/content/Context;Landroid/os/IBinder;Landroid/app/Application;Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Ljava/lang/CharSequence;Landroid/app/Activity;Ljava/lang/String;Ljava/lang/Object;)Landroid/app/Activity;" />
-		<method name="newActivity(Ljava/lang/ClassLoader;Ljava/lang/String;Landroid/content/Intent;)Landroid/app/Activity;" />
-		<method name="newApplication(Ljava/lang/Class;Landroid/content/Context;)Landroid/app/Application;" />
-		<method name="newApplication(Ljava/lang/ClassLoader;Ljava/lang/String;Landroid/content/Context;)Landroid/app/Application;" />
-		<method name="onCreate(Landroid/os/Bundle;)V" />
-		<method name="onDestroy()V" />
-		<method name="onException(Ljava/lang/Object;Ljava/lang/Throwable;)Z" />
-		<method name="onStart()V" />
-		<method name="removeMonitor(Landroid/app/Instrumentation$ActivityMonitor;)V" />
-		<method name="runOnMainSync(Ljava/lang/Runnable;)V" />
-		<method name="sendCharacterSync(I)V" />
-		<method name="sendKeyDownUpSync(I)V" />
-		<method name="sendKeySync(Landroid/view/KeyEvent;)V" />
-		<method name="sendPointerSync(Landroid/view/MotionEvent;)V" />
-		<method name="sendStatus(ILandroid/os/Bundle;)V" />
-		<method name="sendStringSync(Ljava/lang/String;)V" />
-		<method name="sendTrackballEventSync(Landroid/view/MotionEvent;)V" />
-		<method name="setAutomaticPerformanceSnapshots()V" />
-		<method name="setInTouchMode(Z)V" />
-		<method name="start()V" />
-		<method name="startActivitySync(Landroid/content/Intent;)Landroid/app/Activity;" />
-		<method name="startAllocCounting()V" />
-		<method name="startPerformanceSnapshot()V" />
-		<method name="startProfiling()V" />
-		<method name="stopAllocCounting()V" />
-		<method name="stopProfiling()V" />
-		<method name="waitForIdle(Ljava/lang/Runnable;)V" />
-		<method name="waitForIdleSync()V" />
-		<method name="waitForMonitor(Landroid/app/Instrumentation$ActivityMonitor;)Landroid/app/Activity;" />
-		<method name="waitForMonitorWithTimeout(Landroid/app/Instrumentation$ActivityMonitor;J)Landroid/app/Activity;" />
-		<field name="REPORT_KEY_IDENTIFIER" />
-		<field name="REPORT_KEY_STREAMRESULT" />
-	</class>
-	<class name="android/app/Instrumentation$ActivityMonitor" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/IntentFilter;Landroid/app/Instrumentation$ActivityResult;Z)V" />
-		<method name="&lt;init>(Ljava/lang/String;Landroid/app/Instrumentation$ActivityResult;Z)V" />
-		<method name="getFilter()Landroid/content/IntentFilter;" />
-		<method name="getHits()I" />
-		<method name="getLastActivity()Landroid/app/Activity;" />
-		<method name="getResult()Landroid/app/Instrumentation$ActivityResult;" />
-		<method name="isBlocking()Z" />
-		<method name="waitForActivity()Landroid/app/Activity;" />
-		<method name="waitForActivityWithTimeout(J)Landroid/app/Activity;" />
-	</class>
-	<class name="android/app/Instrumentation$ActivityResult" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(ILandroid/content/Intent;)V" />
-		<method name="getResultCode()I" />
-		<method name="getResultData()Landroid/content/Intent;" />
-	</class>
-	<class name="android/app/IntentService" since="3">
-		<extends name="android/app/Service" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="onHandleIntent(Landroid/content/Intent;)V" />
-		<method name="setIntentRedelivery(Z)V" since="5" />
-	</class>
-	<class name="android/app/KeyguardManager" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="exitKeyguardSecurely(Landroid/app/KeyguardManager$OnKeyguardExitResult;)V" />
-		<method name="inKeyguardRestrictedInputMode()Z" />
-		<method name="isKeyguardLocked()Z" since="16" />
-		<method name="isKeyguardSecure()Z" since="16" />
-		<method name="newKeyguardLock(Ljava/lang/String;)Landroid/app/KeyguardManager$KeyguardLock;" />
-	</class>
-	<class name="android/app/KeyguardManager$KeyguardLock" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/app/KeyguardManager;)V" />
-		<method name="disableKeyguard()V" />
-		<method name="reenableKeyguard()V" />
-	</class>
-	<class name="android/app/KeyguardManager$OnKeyguardExitResult" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onKeyguardExitResult(Z)V" />
-	</class>
-	<class name="android/app/LauncherActivity" since="1">
-		<extends name="android/app/ListActivity" />
-		<method name="&lt;init>()V" />
-		<method name="getTargetIntent()Landroid/content/Intent;" />
-		<method name="intentForPosition(I)Landroid/content/Intent;" since="3" />
-		<method name="itemForPosition(I)Landroid/app/LauncherActivity$ListItem;" since="4" />
-		<method name="makeListItems()Ljava/util/List;" since="3" />
-		<method name="onQueryPackageManager(Landroid/content/Intent;)Ljava/util/List;" since="5" />
-		<method name="onSetContentView()V" since="5" />
-	</class>
-	<class name="android/app/LauncherActivity$IconResizer" since="3">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/app/LauncherActivity;)V" />
-		<method name="createIconThumbnail(Landroid/graphics/drawable/Drawable;)Landroid/graphics/drawable/Drawable;" />
-	</class>
-	<class name="android/app/LauncherActivity$ListItem" since="3">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="className" />
-		<field name="extras" />
-		<field name="icon" />
-		<field name="label" />
-		<field name="packageName" />
-		<field name="resolveInfo" since="4" />
-	</class>
-	<class name="android/app/ListActivity" since="1">
-		<extends name="android/app/Activity" />
-		<method name="&lt;init>()V" />
-		<method name="getListAdapter()Landroid/widget/ListAdapter;" />
-		<method name="getListView()Landroid/widget/ListView;" />
-		<method name="getSelectedItemId()J" />
-		<method name="getSelectedItemPosition()I" />
-		<method name="onListItemClick(Landroid/widget/ListView;Landroid/view/View;IJ)V" />
-		<method name="setListAdapter(Landroid/widget/ListAdapter;)V" />
-		<method name="setSelection(I)V" />
-	</class>
-	<class name="android/app/ListFragment" since="11">
-		<extends name="android/app/Fragment" />
-		<method name="&lt;init>()V" />
-		<method name="getListAdapter()Landroid/widget/ListAdapter;" />
-		<method name="getListView()Landroid/widget/ListView;" />
-		<method name="getSelectedItemId()J" />
-		<method name="getSelectedItemPosition()I" />
-		<method name="onListItemClick(Landroid/widget/ListView;Landroid/view/View;IJ)V" />
-		<method name="setEmptyText(Ljava/lang/CharSequence;)V" />
-		<method name="setListAdapter(Landroid/widget/ListAdapter;)V" />
-		<method name="setListShown(Z)V" />
-		<method name="setListShownNoAnimation(Z)V" />
-		<method name="setSelection(I)V" />
-	</class>
-	<class name="android/app/LoaderManager" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="destroyLoader(I)V" />
-		<method name="dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V" />
-		<method name="enableDebugLogging(Z)V" />
-		<method name="getLoader(I)Landroid/content/Loader;" />
-		<method name="initLoader(ILandroid/os/Bundle;Landroid/app/LoaderManager$LoaderCallbacks;)Landroid/content/Loader;" />
-		<method name="restartLoader(ILandroid/os/Bundle;Landroid/app/LoaderManager$LoaderCallbacks;)Landroid/content/Loader;" />
-	</class>
-	<class name="android/app/LoaderManager$LoaderCallbacks" since="11">
-		<extends name="java/lang/Object" />
-		<method name="onCreateLoader(ILandroid/os/Bundle;)Landroid/content/Loader;" />
-		<method name="onLoadFinished(Landroid/content/Loader;Ljava/lang/Object;)V" />
-		<method name="onLoaderReset(Landroid/content/Loader;)V" />
-	</class>
-	<class name="android/app/LocalActivityManager" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/app/Activity;Z)V" />
-		<method name="destroyActivity(Ljava/lang/String;Z)Landroid/view/Window;" />
-		<method name="dispatchCreate(Landroid/os/Bundle;)V" />
-		<method name="dispatchDestroy(Z)V" />
-		<method name="dispatchPause(Z)V" />
-		<method name="dispatchResume()V" />
-		<method name="dispatchStop()V" />
-		<method name="getActivity(Ljava/lang/String;)Landroid/app/Activity;" />
-		<method name="getCurrentActivity()Landroid/app/Activity;" />
-		<method name="getCurrentId()Ljava/lang/String;" />
-		<method name="removeAllActivities()V" />
-		<method name="saveInstanceState()Landroid/os/Bundle;" />
-		<method name="startActivity(Ljava/lang/String;Landroid/content/Intent;)Landroid/view/Window;" />
-	</class>
-	<class name="android/app/MediaRouteActionProvider" since="16">
-		<extends name="android/view/ActionProvider" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="setExtendedSettingsClickListener(Landroid/view/View$OnClickListener;)V" />
-		<method name="setRouteTypes(I)V" />
-	</class>
-	<class name="android/app/MediaRouteButton" since="16">
-		<extends name="android/view/View" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="getRouteTypes()I" />
-		<method name="setExtendedSettingsClickListener(Landroid/view/View$OnClickListener;)V" />
-		<method name="setRouteTypes(I)V" />
-		<method name="showDialog()V" />
-	</class>
-	<class name="android/app/NativeActivity" since="9">
-		<extends name="android/app/Activity" />
-		<implements name="android/view/InputQueue$Callback" />
-		<implements name="android/view/SurfaceHolder$Callback2" />
-		<implements name="android/view/ViewTreeObserver$OnGlobalLayoutListener" />
-		<method name="&lt;init>()V" />
-		<field name="META_DATA_FUNC_NAME" />
-		<field name="META_DATA_LIB_NAME" />
-	</class>
-	<class name="android/app/Notification" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(ILjava/lang/CharSequence;J)V" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" />
-		<method name="clone()Landroid/app/Notification;" since="9" />
-		<method name="getGroup()Ljava/lang/String;" since="20" />
-		<method name="getSortKey()Ljava/lang/String;" since="20" />
-		<method name="setLatestEventInfo(Landroid/content/Context;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/app/PendingIntent;)V" />
-		<field name="CATEGORY_ALARM" since="21" />
-		<field name="CATEGORY_CALL" since="21" />
-		<field name="CATEGORY_EMAIL" since="21" />
-		<field name="CATEGORY_ERROR" since="21" />
-		<field name="CATEGORY_EVENT" since="21" />
-		<field name="CATEGORY_MESSAGE" since="21" />
-		<field name="CATEGORY_PROGRESS" since="21" />
-		<field name="CATEGORY_PROMO" since="21" />
-		<field name="CATEGORY_RECOMMENDATION" since="21" />
-		<field name="CATEGORY_SERVICE" since="21" />
-		<field name="CATEGORY_SOCIAL" since="21" />
-		<field name="CATEGORY_STATUS" since="21" />
-		<field name="CATEGORY_SYSTEM" since="21" />
-		<field name="CATEGORY_TRANSPORT" since="21" />
-		<field name="COLOR_DEFAULT" since="21" />
-		<field name="CREATOR" />
-		<field name="DEFAULT_ALL" />
-		<field name="DEFAULT_LIGHTS" />
-		<field name="DEFAULT_SOUND" />
-		<field name="DEFAULT_VIBRATE" />
-		<field name="EXTRA_BACKGROUND_IMAGE_URI" since="21" />
-		<field name="EXTRA_INFO_TEXT" since="19" />
-		<field name="EXTRA_LARGE_ICON" since="19" />
-		<field name="EXTRA_LARGE_ICON_BIG" since="19" />
-		<field name="EXTRA_MEDIA_SESSION" since="21" />
-		<field name="EXTRA_PEOPLE" since="19" />
-		<field name="EXTRA_PICTURE" since="19" />
-		<field name="EXTRA_PROGRESS" since="19" />
-		<field name="EXTRA_PROGRESS_INDETERMINATE" since="19" />
-		<field name="EXTRA_PROGRESS_MAX" since="19" />
-		<field name="EXTRA_SHOW_CHRONOMETER" since="19" />
-		<field name="EXTRA_SHOW_WHEN" since="19" />
-		<field name="EXTRA_SMALL_ICON" since="19" />
-		<field name="EXTRA_SUB_TEXT" since="19" />
-		<field name="EXTRA_SUMMARY_TEXT" since="19" />
-		<field name="EXTRA_TEMPLATE" since="21" />
-		<field name="EXTRA_TEXT" since="19" />
-		<field name="EXTRA_TEXT_LINES" since="19" />
-		<field name="EXTRA_TITLE" since="19" />
-		<field name="EXTRA_TITLE_BIG" since="19" />
-		<field name="FLAG_AUTO_CANCEL" />
-		<field name="FLAG_FOREGROUND_SERVICE" since="5" />
-		<field name="FLAG_GROUP_SUMMARY" since="20" />
-		<field name="FLAG_HIGH_PRIORITY" since="11" />
-		<field name="FLAG_INSISTENT" />
-		<field name="FLAG_LOCAL_ONLY" since="20" />
-		<field name="FLAG_NO_CLEAR" />
-		<field name="FLAG_ONGOING_EVENT" />
-		<field name="FLAG_ONLY_ALERT_ONCE" />
-		<field name="FLAG_SHOW_LIGHTS" />
-		<field name="INTENT_CATEGORY_NOTIFICATION_PREFERENCES" since="21" />
-		<field name="PRIORITY_DEFAULT" since="16" />
-		<field name="PRIORITY_HIGH" since="16" />
-		<field name="PRIORITY_LOW" since="16" />
-		<field name="PRIORITY_MAX" since="16" />
-		<field name="PRIORITY_MIN" since="16" />
-		<field name="STREAM_DEFAULT" />
-		<field name="VISIBILITY_PRIVATE" since="21" />
-		<field name="VISIBILITY_PUBLIC" since="21" />
-		<field name="VISIBILITY_SECRET" since="21" />
-		<field name="actions" since="19" />
-		<field name="audioStreamType" />
-		<field name="bigContentView" since="16" />
-		<field name="category" since="21" />
-		<field name="color" since="21" />
-		<field name="contentIntent" />
-		<field name="contentView" />
-		<field name="defaults" />
-		<field name="deleteIntent" />
-		<field name="extras" since="19" />
-		<field name="flags" />
-		<field name="fullScreenIntent" since="9" />
-		<field name="icon" />
-		<field name="iconLevel" />
-		<field name="largeIcon" since="11" />
-		<field name="ledARGB" />
-		<field name="ledOffMS" />
-		<field name="ledOnMS" />
-		<field name="number" />
-		<field name="priority" since="16" />
-		<field name="publicVersion" since="21" />
-		<field name="sound" />
-		<field name="tickerText" />
-		<field name="tickerView" since="11" />
-		<field name="vibrate" />
-		<field name="visibility" since="21" />
-		<field name="when" />
-	</class>
-	<class name="android/app/Notification$Action" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(ILjava/lang/CharSequence;Landroid/app/PendingIntent;)V" />
-		<method name="clone()Landroid/app/Notification$Action;" />
-		<method name="getExtras()Landroid/os/Bundle;" since="20" />
-		<method name="getRemoteInputs()[Landroid/app/RemoteInput;" since="20" />
-		<field name="CREATOR" />
-		<field name="actionIntent" />
-		<field name="icon" />
-		<field name="title" />
-	</class>
-	<class name="android/app/Notification$Action$Builder" since="20">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(ILjava/lang/CharSequence;Landroid/app/PendingIntent;)V" />
-		<method name="&lt;init>(Landroid/app/Notification$Action;)V" />
-		<method name="addExtras(Landroid/os/Bundle;)Landroid/app/Notification$Action$Builder;" />
-		<method name="addRemoteInput(Landroid/app/RemoteInput;)Landroid/app/Notification$Action$Builder;" />
-		<method name="build()Landroid/app/Notification$Action;" />
-		<method name="extend(Landroid/app/Notification$Action$Extender;)Landroid/app/Notification$Action$Builder;" />
-		<method name="getExtras()Landroid/os/Bundle;" />
-	</class>
-	<class name="android/app/Notification$Action$Extender" since="20">
-		<extends name="java/lang/Object" />
-		<method name="extend(Landroid/app/Notification$Action$Builder;)Landroid/app/Notification$Action$Builder;" />
-	</class>
-	<class name="android/app/Notification$Action$WearableExtender" since="20">
-		<extends name="java/lang/Object" />
-		<implements name="android/app/Notification$Action$Extender" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/app/Notification$Action;)V" />
-		<method name="clone()Landroid/app/Notification$Action$WearableExtender;" />
-		<method name="isAvailableOffline()Z" />
-		<method name="setAvailableOffline(Z)Landroid/app/Notification$Action$WearableExtender;" />
-	</class>
-	<class name="android/app/Notification$BigPictureStyle" since="16">
-		<extends name="android/app/Notification$Style" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/app/Notification$Builder;)V" />
-		<method name="bigLargeIcon(Landroid/graphics/Bitmap;)Landroid/app/Notification$BigPictureStyle;" />
-		<method name="bigPicture(Landroid/graphics/Bitmap;)Landroid/app/Notification$BigPictureStyle;" />
-		<method name="setBigContentTitle(Ljava/lang/CharSequence;)Landroid/app/Notification$BigPictureStyle;" />
-		<method name="setSummaryText(Ljava/lang/CharSequence;)Landroid/app/Notification$BigPictureStyle;" />
-	</class>
-	<class name="android/app/Notification$BigTextStyle" since="16">
-		<extends name="android/app/Notification$Style" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/app/Notification$Builder;)V" />
-		<method name="bigText(Ljava/lang/CharSequence;)Landroid/app/Notification$BigTextStyle;" />
-		<method name="setBigContentTitle(Ljava/lang/CharSequence;)Landroid/app/Notification$BigTextStyle;" />
-		<method name="setSummaryText(Ljava/lang/CharSequence;)Landroid/app/Notification$BigTextStyle;" />
-	</class>
-	<class name="android/app/Notification$Builder" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="addAction(ILjava/lang/CharSequence;Landroid/app/PendingIntent;)Landroid/app/Notification$Builder;" since="16" />
-		<method name="addAction(Landroid/app/Notification$Action;)Landroid/app/Notification$Builder;" since="20" />
-		<method name="addExtras(Landroid/os/Bundle;)Landroid/app/Notification$Builder;" since="20" />
-		<method name="addPerson(Ljava/lang/String;)Landroid/app/Notification$Builder;" since="21" />
-		<method name="build()Landroid/app/Notification;" since="16" />
-		<method name="extend(Landroid/app/Notification$Extender;)Landroid/app/Notification$Builder;" since="20" />
-		<method name="getExtras()Landroid/os/Bundle;" since="20" />
-		<method name="getNotification()Landroid/app/Notification;" />
-		<method name="setAutoCancel(Z)Landroid/app/Notification$Builder;" />
-		<method name="setCategory(Ljava/lang/String;)Landroid/app/Notification$Builder;" since="21" />
-		<method name="setColor(I)Landroid/app/Notification$Builder;" since="21" />
-		<method name="setContent(Landroid/widget/RemoteViews;)Landroid/app/Notification$Builder;" />
-		<method name="setContentInfo(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder;" />
-		<method name="setContentIntent(Landroid/app/PendingIntent;)Landroid/app/Notification$Builder;" />
-		<method name="setContentText(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder;" />
-		<method name="setContentTitle(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder;" />
-		<method name="setDefaults(I)Landroid/app/Notification$Builder;" />
-		<method name="setDeleteIntent(Landroid/app/PendingIntent;)Landroid/app/Notification$Builder;" />
-		<method name="setExtras(Landroid/os/Bundle;)Landroid/app/Notification$Builder;" since="19" />
-		<method name="setFullScreenIntent(Landroid/app/PendingIntent;Z)Landroid/app/Notification$Builder;" />
-		<method name="setGroup(Ljava/lang/String;)Landroid/app/Notification$Builder;" since="20" />
-		<method name="setGroupSummary(Z)Landroid/app/Notification$Builder;" since="20" />
-		<method name="setLargeIcon(Landroid/graphics/Bitmap;)Landroid/app/Notification$Builder;" />
-		<method name="setLights(III)Landroid/app/Notification$Builder;" />
-		<method name="setLocalOnly(Z)Landroid/app/Notification$Builder;" since="20" />
-		<method name="setNumber(I)Landroid/app/Notification$Builder;" />
-		<method name="setOngoing(Z)Landroid/app/Notification$Builder;" />
-		<method name="setOnlyAlertOnce(Z)Landroid/app/Notification$Builder;" />
-		<method name="setPriority(I)Landroid/app/Notification$Builder;" since="16" />
-		<method name="setProgress(IIZ)Landroid/app/Notification$Builder;" since="14" />
-		<method name="setPublicVersion(Landroid/app/Notification;)Landroid/app/Notification$Builder;" since="21" />
-		<method name="setShowWhen(Z)Landroid/app/Notification$Builder;" since="17" />
-		<method name="setSmallIcon(I)Landroid/app/Notification$Builder;" />
-		<method name="setSmallIcon(II)Landroid/app/Notification$Builder;" />
-		<method name="setSortKey(Ljava/lang/String;)Landroid/app/Notification$Builder;" since="20" />
-		<method name="setSound(Landroid/net/Uri;)Landroid/app/Notification$Builder;" />
-		<method name="setSound(Landroid/net/Uri;I)Landroid/app/Notification$Builder;" />
-		<method name="setStyle(Landroid/app/Notification$Style;)Landroid/app/Notification$Builder;" since="16" />
-		<method name="setSubText(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder;" since="16" />
-		<method name="setTicker(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder;" />
-		<method name="setTicker(Ljava/lang/CharSequence;Landroid/widget/RemoteViews;)Landroid/app/Notification$Builder;" />
-		<method name="setUsesChronometer(Z)Landroid/app/Notification$Builder;" since="16" />
-		<method name="setVibrate([J)Landroid/app/Notification$Builder;" />
-		<method name="setVisibility(I)Landroid/app/Notification$Builder;" since="21" />
-		<method name="setWhen(J)Landroid/app/Notification$Builder;" />
-	</class>
-	<class name="android/app/Notification$Extender" since="20">
-		<extends name="java/lang/Object" />
-		<method name="extend(Landroid/app/Notification$Builder;)Landroid/app/Notification$Builder;" />
-	</class>
-	<class name="android/app/Notification$InboxStyle" since="16">
-		<extends name="android/app/Notification$Style" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/app/Notification$Builder;)V" />
-		<method name="addLine(Ljava/lang/CharSequence;)Landroid/app/Notification$InboxStyle;" />
-		<method name="setBigContentTitle(Ljava/lang/CharSequence;)Landroid/app/Notification$InboxStyle;" />
-		<method name="setSummaryText(Ljava/lang/CharSequence;)Landroid/app/Notification$InboxStyle;" />
-	</class>
-	<class name="android/app/Notification$MediaStyle" since="21">
-		<extends name="android/app/Notification$Style" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/app/Notification$Builder;)V" />
-		<method name="buildStyled(Landroid/app/Notification;)Landroid/app/Notification;" />
-		<method name="setMediaSession(Landroid/media/session/MediaSessionToken;)Landroid/app/Notification$MediaStyle;" />
-		<method name="setShowActionsInCompactView([I)Landroid/app/Notification$MediaStyle;" />
-	</class>
-	<class name="android/app/Notification$Style" since="16">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="build()Landroid/app/Notification;" />
-		<method name="checkBuilder()V" />
-		<method name="getStandardView(I)Landroid/widget/RemoteViews;" />
-		<method name="internalSetBigContentTitle(Ljava/lang/CharSequence;)V" />
-		<method name="internalSetSummaryText(Ljava/lang/CharSequence;)V" />
-		<method name="setBuilder(Landroid/app/Notification$Builder;)V" />
-		<field name="mBuilder" />
-	</class>
-	<class name="android/app/Notification$WearableExtender" since="20">
-		<extends name="java/lang/Object" />
-		<implements name="android/app/Notification$Extender" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/app/Notification;)V" />
-		<method name="addAction(Landroid/app/Notification$Action;)Landroid/app/Notification$WearableExtender;" />
-		<method name="addActions(Ljava/util/List;)Landroid/app/Notification$WearableExtender;" />
-		<method name="addPage(Landroid/app/Notification;)Landroid/app/Notification$WearableExtender;" />
-		<method name="addPages(Ljava/util/List;)Landroid/app/Notification$WearableExtender;" />
-		<method name="clearActions()Landroid/app/Notification$WearableExtender;" />
-		<method name="clearPages()Landroid/app/Notification$WearableExtender;" />
-		<method name="clone()Landroid/app/Notification$WearableExtender;" />
-		<method name="getActions()Ljava/util/List;" />
-		<method name="getBackground()Landroid/graphics/Bitmap;" />
-		<method name="getContentAction()I" />
-		<method name="getContentIcon()I" />
-		<method name="getContentIconGravity()I" />
-		<method name="getContentIntentAvailableOffline()Z" />
-		<method name="getCustomContentHeight()I" />
-		<method name="getCustomSizePreset()I" />
-		<method name="getDisplayIntent()Landroid/app/PendingIntent;" />
-		<method name="getGravity()I" />
-		<method name="getHintHideIcon()Z" />
-		<method name="getHintShowBackgroundOnly()Z" />
-		<method name="getPages()Ljava/util/List;" />
-		<method name="getStartScrollBottom()Z" />
-		<method name="setBackground(Landroid/graphics/Bitmap;)Landroid/app/Notification$WearableExtender;" />
-		<method name="setContentAction(I)Landroid/app/Notification$WearableExtender;" />
-		<method name="setContentIcon(I)Landroid/app/Notification$WearableExtender;" />
-		<method name="setContentIconGravity(I)Landroid/app/Notification$WearableExtender;" />
-		<method name="setContentIntentAvailableOffline(Z)Landroid/app/Notification$WearableExtender;" />
-		<method name="setCustomContentHeight(I)Landroid/app/Notification$WearableExtender;" />
-		<method name="setCustomSizePreset(I)Landroid/app/Notification$WearableExtender;" />
-		<method name="setDisplayIntent(Landroid/app/PendingIntent;)Landroid/app/Notification$WearableExtender;" />
-		<method name="setGravity(I)Landroid/app/Notification$WearableExtender;" />
-		<method name="setHintHideIcon(Z)Landroid/app/Notification$WearableExtender;" />
-		<method name="setHintShowBackgroundOnly(Z)Landroid/app/Notification$WearableExtender;" />
-		<method name="setStartScrollBottom(Z)Landroid/app/Notification$WearableExtender;" />
-		<field name="SIZE_DEFAULT" />
-		<field name="SIZE_FULL_SCREEN" />
-		<field name="SIZE_LARGE" />
-		<field name="SIZE_MEDIUM" />
-		<field name="SIZE_SMALL" />
-		<field name="SIZE_XSMALL" />
-		<field name="UNSET_ACTION_INDEX" />
-	</class>
-	<class name="android/app/NotificationManager" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="cancel(I)V" />
-		<method name="cancel(Ljava/lang/String;I)V" since="5" />
-		<method name="cancelAll()V" />
-		<method name="notify(ILandroid/app/Notification;)V" />
-		<method name="notify(Ljava/lang/String;ILandroid/app/Notification;)V" since="5" />
-	</class>
-	<class name="android/app/PendingIntent" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="cancel()V" />
-		<method name="getActivities(Landroid/content/Context;I[Landroid/content/Intent;I)Landroid/app/PendingIntent;" since="11" />
-		<method name="getActivities(Landroid/content/Context;I[Landroid/content/Intent;ILandroid/os/Bundle;)Landroid/app/PendingIntent;" since="16" />
-		<method name="getActivity(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent;" />
-		<method name="getActivity(Landroid/content/Context;ILandroid/content/Intent;ILandroid/os/Bundle;)Landroid/app/PendingIntent;" since="16" />
-		<method name="getBroadcast(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent;" />
-		<method name="getCreatorPackage()Ljava/lang/String;" since="17" />
-		<method name="getCreatorUid()I" since="17" />
-		<method name="getCreatorUserHandle()Landroid/os/UserHandle;" since="17" />
-		<method name="getIntentSender()Landroid/content/IntentSender;" since="4" />
-		<method name="getService(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent;" />
-		<method name="getTargetPackage()Ljava/lang/String;" />
-		<method name="readPendingIntentOrNullFromParcel(Landroid/os/Parcel;)Landroid/app/PendingIntent;" />
-		<method name="send()V" />
-		<method name="send(I)V" />
-		<method name="send(ILandroid/app/PendingIntent$OnFinished;Landroid/os/Handler;)V" />
-		<method name="send(Landroid/content/Context;ILandroid/content/Intent;)V" />
-		<method name="send(Landroid/content/Context;ILandroid/content/Intent;Landroid/app/PendingIntent$OnFinished;Landroid/os/Handler;)V" />
-		<method name="send(Landroid/content/Context;ILandroid/content/Intent;Landroid/app/PendingIntent$OnFinished;Landroid/os/Handler;Ljava/lang/String;)V" since="14" />
-		<method name="writePendingIntentOrNullToParcel(Landroid/app/PendingIntent;Landroid/os/Parcel;)V" />
-		<field name="CREATOR" />
-		<field name="FLAG_CANCEL_CURRENT" />
-		<field name="FLAG_NO_CREATE" />
-		<field name="FLAG_ONE_SHOT" />
-		<field name="FLAG_UPDATE_CURRENT" since="3" />
-	</class>
-	<class name="android/app/PendingIntent$CanceledException" since="1">
-		<extends name="android/util/AndroidException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/Exception;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/app/PendingIntent$OnFinished" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onSendFinished(Landroid/app/PendingIntent;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;)V" />
-	</class>
-	<class name="android/app/Presentation" since="17">
-		<extends name="android/app/Dialog" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/view/Display;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/view/Display;I)V" />
-		<method name="getDisplay()Landroid/view/Display;" />
-		<method name="getResources()Landroid/content/res/Resources;" />
-		<method name="onDisplayChanged()V" />
-		<method name="onDisplayRemoved()V" />
-	</class>
-	<class name="android/app/ProgressDialog" since="1">
-		<extends name="android/app/AlertDialog" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;I)V" />
-		<method name="getMax()I" />
-		<method name="getProgress()I" />
-		<method name="getSecondaryProgress()I" />
-		<method name="incrementProgressBy(I)V" />
-		<method name="incrementSecondaryProgressBy(I)V" />
-		<method name="isIndeterminate()Z" />
-		<method name="setIndeterminate(Z)V" />
-		<method name="setIndeterminateDrawable(Landroid/graphics/drawable/Drawable;)V" />
-		<method name="setMax(I)V" />
-		<method name="setProgress(I)V" />
-		<method name="setProgressDrawable(Landroid/graphics/drawable/Drawable;)V" />
-		<method name="setProgressNumberFormat(Ljava/lang/String;)V" since="11" />
-		<method name="setProgressPercentFormat(Ljava/text/NumberFormat;)V" since="11" />
-		<method name="setProgressStyle(I)V" />
-		<method name="setSecondaryProgress(I)V" />
-		<method name="show(Landroid/content/Context;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Landroid/app/ProgressDialog;" />
-		<method name="show(Landroid/content/Context;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Z)Landroid/app/ProgressDialog;" />
-		<method name="show(Landroid/content/Context;Ljava/lang/CharSequence;Ljava/lang/CharSequence;ZZ)Landroid/app/ProgressDialog;" />
-		<method name="show(Landroid/content/Context;Ljava/lang/CharSequence;Ljava/lang/CharSequence;ZZLandroid/content/DialogInterface$OnCancelListener;)Landroid/app/ProgressDialog;" />
-		<field name="STYLE_HORIZONTAL" />
-		<field name="STYLE_SPINNER" />
-	</class>
-	<class name="android/app/RemoteInput" since="20">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="addResultsToIntent([Landroid/app/RemoteInput;Landroid/content/Intent;Landroid/os/Bundle;)V" />
-		<method name="getAllowFreeFormInput()Z" />
-		<method name="getChoices()[Ljava/lang/CharSequence;" />
-		<method name="getExtras()Landroid/os/Bundle;" />
-		<method name="getLabel()Ljava/lang/CharSequence;" />
-		<method name="getResultKey()Ljava/lang/String;" />
-		<method name="getResultsFromIntent(Landroid/content/Intent;)Landroid/os/Bundle;" />
-		<field name="CREATOR" />
-		<field name="EXTRA_RESULTS_DATA" />
-		<field name="RESULTS_CLIP_LABEL" />
-	</class>
-	<class name="android/app/RemoteInput$Builder" since="20">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="addExtras(Landroid/os/Bundle;)Landroid/app/RemoteInput$Builder;" />
-		<method name="build()Landroid/app/RemoteInput;" />
-		<method name="getExtras()Landroid/os/Bundle;" />
-		<method name="setAllowFreeFormInput(Z)Landroid/app/RemoteInput$Builder;" />
-		<method name="setChoices([Ljava/lang/CharSequence;)Landroid/app/RemoteInput$Builder;" />
-		<method name="setLabel(Ljava/lang/CharSequence;)Landroid/app/RemoteInput$Builder;" />
-	</class>
-	<class name="android/app/SearchManager" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/content/DialogInterface$OnCancelListener" />
-		<implements name="android/content/DialogInterface$OnDismissListener" />
-		<method name="&lt;init>()V" />
-		<method name="getGlobalSearchActivity()Landroid/content/ComponentName;" since="16" />
-		<method name="getSearchableInfo(Landroid/content/ComponentName;)Landroid/app/SearchableInfo;" since="8" />
-		<method name="getSearchablesInGlobalSearch()Ljava/util/List;" since="8" />
-		<method name="setOnCancelListener(Landroid/app/SearchManager$OnCancelListener;)V" />
-		<method name="setOnDismissListener(Landroid/app/SearchManager$OnDismissListener;)V" />
-		<method name="startSearch(Ljava/lang/String;ZLandroid/content/ComponentName;Landroid/os/Bundle;Z)V" />
-		<method name="stopSearch()V" />
-		<method name="triggerSearch(Ljava/lang/String;Landroid/content/ComponentName;Landroid/os/Bundle;)V" since="5" />
-		<field name="ACTION_KEY" />
-		<field name="ACTION_MSG" />
-		<field name="APP_DATA" />
-		<field name="CURSOR_EXTRA_KEY_IN_PROGRESS" since="8" />
-		<field name="EXTRA_DATA_KEY" since="4" />
-		<field name="EXTRA_NEW_SEARCH" since="12" />
-		<field name="EXTRA_SELECT_QUERY" since="8" />
-		<field name="EXTRA_WEB_SEARCH_PENDINGINTENT" since="14" />
-		<field name="FLAG_QUERY_REFINEMENT" since="11" />
-		<field name="INTENT_ACTION_GLOBAL_SEARCH" since="8" />
-		<field name="INTENT_ACTION_SEARCHABLES_CHANGED" since="4" />
-		<field name="INTENT_ACTION_SEARCH_SETTINGS" since="8" />
-		<field name="INTENT_ACTION_SEARCH_SETTINGS_CHANGED" since="4" />
-		<field name="INTENT_ACTION_WEB_SEARCH_SETTINGS" since="4" />
-		<field name="INTENT_GLOBAL_SEARCH_ACTIVITY_CHANGED" since="16" />
-		<field name="MENU_KEY" />
-		<field name="MENU_KEYCODE" />
-		<field name="QUERY" />
-		<field name="SHORTCUT_MIME_TYPE" since="4" />
-		<field name="SUGGEST_COLUMN_AUDIO_CHANNEL_CONFIG" since="21" />
-		<field name="SUGGEST_COLUMN_CONTENT_TYPE" since="21" />
-		<field name="SUGGEST_COLUMN_DURATION" since="21" />
-		<field name="SUGGEST_COLUMN_FLAGS" since="11" />
-		<field name="SUGGEST_COLUMN_FORMAT" />
-		<field name="SUGGEST_COLUMN_ICON_1" />
-		<field name="SUGGEST_COLUMN_ICON_2" />
-		<field name="SUGGEST_COLUMN_INTENT_ACTION" />
-		<field name="SUGGEST_COLUMN_INTENT_DATA" />
-		<field name="SUGGEST_COLUMN_INTENT_DATA_ID" />
-		<field name="SUGGEST_COLUMN_INTENT_EXTRA_DATA" since="4" />
-		<field name="SUGGEST_COLUMN_IS_LIVE" since="21" />
-		<field name="SUGGEST_COLUMN_LAST_ACCESS_HINT" since="14" />
-		<field name="SUGGEST_COLUMN_PRODUCTION_YEAR" since="21" />
-		<field name="SUGGEST_COLUMN_PURCHASE_PRICE" since="21" />
-		<field name="SUGGEST_COLUMN_QUERY" />
-		<field name="SUGGEST_COLUMN_RATING_SCORE" since="21" />
-		<field name="SUGGEST_COLUMN_RATING_STYLE" since="21" />
-		<field name="SUGGEST_COLUMN_RENTAL_PRICE" since="21" />
-		<field name="SUGGEST_COLUMN_RESULT_CARD_IMAGE" since="21" />
-		<field name="SUGGEST_COLUMN_SHORTCUT_ID" since="4" />
-		<field name="SUGGEST_COLUMN_SPINNER_WHILE_REFRESHING" since="4" />
-		<field name="SUGGEST_COLUMN_TEXT_1" />
-		<field name="SUGGEST_COLUMN_TEXT_2" />
-		<field name="SUGGEST_COLUMN_TEXT_2_URL" since="8" />
-		<field name="SUGGEST_COLUMN_VIDEO_HEIGHT" since="21" />
-		<field name="SUGGEST_COLUMN_VIDEO_WIDTH" since="21" />
-		<field name="SUGGEST_MIME_TYPE" />
-		<field name="SUGGEST_NEVER_MAKE_SHORTCUT" since="4" />
-		<field name="SUGGEST_PARAMETER_LIMIT" since="5" />
-		<field name="SUGGEST_URI_PATH_QUERY" />
-		<field name="SUGGEST_URI_PATH_SHORTCUT" since="4" />
-		<field name="USER_QUERY" since="4" />
-	</class>
-	<class name="android/app/SearchManager$OnCancelListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onCancel()V" />
-	</class>
-	<class name="android/app/SearchManager$OnDismissListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onDismiss()V" />
-	</class>
-	<class name="android/app/SearchableInfo" since="8">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="autoUrlDetect()Z" />
-		<method name="getHintId()I" />
-		<method name="getImeOptions()I" />
-		<method name="getInputType()I" />
-		<method name="getSearchActivity()Landroid/content/ComponentName;" />
-		<method name="getSettingsDescriptionId()I" />
-		<method name="getSuggestAuthority()Ljava/lang/String;" />
-		<method name="getSuggestIntentAction()Ljava/lang/String;" />
-		<method name="getSuggestIntentData()Ljava/lang/String;" />
-		<method name="getSuggestPackage()Ljava/lang/String;" />
-		<method name="getSuggestPath()Ljava/lang/String;" />
-		<method name="getSuggestSelection()Ljava/lang/String;" />
-		<method name="getSuggestThreshold()I" />
-		<method name="getVoiceLanguageId()I" />
-		<method name="getVoiceLanguageModeId()I" />
-		<method name="getVoiceMaxResults()I" />
-		<method name="getVoicePromptTextId()I" />
-		<method name="getVoiceSearchEnabled()Z" />
-		<method name="getVoiceSearchLaunchRecognizer()Z" />
-		<method name="getVoiceSearchLaunchWebSearch()Z" />
-		<method name="queryAfterZeroResults()Z" />
-		<method name="shouldIncludeInGlobalSearch()Z" />
-		<method name="shouldRewriteQueryFromData()Z" />
-		<method name="shouldRewriteQueryFromText()Z" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/app/Service" since="1">
-		<extends name="android/content/ContextWrapper" />
-		<implements name="android/content/ComponentCallbacks" />
-		<implements name="android/content/ComponentCallbacks2" since="14" />
-		<method name="&lt;init>()V" />
-		<method name="dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V" />
-		<method name="getApplication()Landroid/app/Application;" />
-		<method name="onBind(Landroid/content/Intent;)Landroid/os/IBinder;" />
-		<method name="onCreate()V" />
-		<method name="onDestroy()V" />
-		<method name="onRebind(Landroid/content/Intent;)V" />
-		<method name="onStart(Landroid/content/Intent;I)V" />
-		<method name="onStartCommand(Landroid/content/Intent;II)I" since="5" />
-		<method name="onTaskRemoved(Landroid/content/Intent;)V" since="14" />
-		<method name="onUnbind(Landroid/content/Intent;)Z" />
-		<method name="setForeground(Z)V" />
-		<method name="startForeground(ILandroid/app/Notification;)V" since="5" />
-		<method name="stopForeground(Z)V" since="5" />
-		<method name="stopSelf()V" />
-		<method name="stopSelf(I)V" />
-		<method name="stopSelfResult(I)Z" />
-		<field name="START_CONTINUATION_MASK" since="5" />
-		<field name="START_FLAG_REDELIVERY" since="5" />
-		<field name="START_FLAG_RETRY" since="5" />
-		<field name="START_NOT_STICKY" since="5" />
-		<field name="START_REDELIVER_INTENT" since="5" />
-		<field name="START_STICKY" since="5" />
-		<field name="START_STICKY_COMPATIBILITY" since="5" />
-	</class>
-	<class name="android/app/SharedElementListener" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="handleRejectedSharedElements(Ljava/util/List;)V" />
-		<method name="remapSharedElements(Ljava/util/List;Ljava/util/Map;)V" />
-		<method name="setSharedElementEnd(Ljava/util/List;Ljava/util/List;Ljava/util/List;)V" />
-		<method name="setSharedElementStart(Ljava/util/List;Ljava/util/List;Ljava/util/List;)V" />
-	</class>
-	<class name="android/app/TabActivity" since="1">
-		<extends name="android/app/ActivityGroup" />
-		<method name="&lt;init>()V" />
-		<method name="getTabHost()Landroid/widget/TabHost;" />
-		<method name="getTabWidget()Landroid/widget/TabWidget;" />
-		<method name="setDefaultTab(I)V" />
-		<method name="setDefaultTab(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/app/TaskStackBuilder" since="16">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addNextIntent(Landroid/content/Intent;)Landroid/app/TaskStackBuilder;" />
-		<method name="addNextIntentWithParentStack(Landroid/content/Intent;)Landroid/app/TaskStackBuilder;" />
-		<method name="addParentStack(Landroid/app/Activity;)Landroid/app/TaskStackBuilder;" />
-		<method name="addParentStack(Landroid/content/ComponentName;)Landroid/app/TaskStackBuilder;" />
-		<method name="addParentStack(Ljava/lang/Class;)Landroid/app/TaskStackBuilder;" />
-		<method name="create(Landroid/content/Context;)Landroid/app/TaskStackBuilder;" />
-		<method name="editIntentAt(I)Landroid/content/Intent;" />
-		<method name="getIntentCount()I" />
-		<method name="getIntents()[Landroid/content/Intent;" />
-		<method name="getPendingIntent(II)Landroid/app/PendingIntent;" />
-		<method name="getPendingIntent(IILandroid/os/Bundle;)Landroid/app/PendingIntent;" />
-		<method name="startActivities()V" />
-		<method name="startActivities(Landroid/os/Bundle;)V" />
-	</class>
-	<class name="android/app/TimePickerDialog" since="1">
-		<extends name="android/app/AlertDialog" />
-		<implements name="android/content/DialogInterface$OnClickListener" />
-		<implements name="android/widget/TimePicker$OnTimeChangedListener" />
-		<method name="&lt;init>(Landroid/content/Context;ILandroid/app/TimePickerDialog$OnTimeSetListener;IIZ)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/app/TimePickerDialog$OnTimeSetListener;IIZ)V" />
-		<method name="updateTime(II)V" />
-	</class>
-	<class name="android/app/TimePickerDialog$OnTimeSetListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onTimeSet(Landroid/widget/TimePicker;II)V" />
-	</class>
-	<class name="android/app/UiAutomation" since="18">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="clearWindowAnimationFrameStats()V" since="21" />
-		<method name="clearWindowContentFrameStats(I)Z" since="21" />
-		<method name="executeAndWaitForEvent(Ljava/lang/Runnable;Landroid/app/UiAutomation$AccessibilityEventFilter;J)Landroid/view/accessibility/AccessibilityEvent;" />
-		<method name="executeShellCommand(Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;" since="21" />
-		<method name="findFocus(I)Landroid/view/accessibility/AccessibilityNodeInfo;" since="21" />
-		<method name="getRootInActiveWindow()Landroid/view/accessibility/AccessibilityNodeInfo;" />
-		<method name="getServiceInfo()Landroid/accessibilityservice/AccessibilityServiceInfo;" />
-		<method name="getWindowAnimationFrameStats()Landroid/view/WindowAnimationFrameStats;" since="21" />
-		<method name="getWindowContentFrameStats(I)Landroid/view/WindowContentFrameStats;" since="21" />
-		<method name="getWindows()Ljava/util/List;" since="21" />
-		<method name="injectInputEvent(Landroid/view/InputEvent;Z)Z" />
-		<method name="performGlobalAction(I)Z" />
-		<method name="setOnAccessibilityEventListener(Landroid/app/UiAutomation$OnAccessibilityEventListener;)V" />
-		<method name="setRotation(I)Z" />
-		<method name="setRunAsMonkey(Z)V" />
-		<method name="setServiceInfo(Landroid/accessibilityservice/AccessibilityServiceInfo;)V" />
-		<method name="takeScreenshot()Landroid/graphics/Bitmap;" />
-		<method name="waitForIdle(JJ)V" />
-		<field name="ROTATION_FREEZE_0" />
-		<field name="ROTATION_FREEZE_180" />
-		<field name="ROTATION_FREEZE_270" />
-		<field name="ROTATION_FREEZE_90" />
-		<field name="ROTATION_FREEZE_CURRENT" />
-		<field name="ROTATION_UNFREEZE" />
-	</class>
-	<class name="android/app/UiAutomation$AccessibilityEventFilter" since="18">
-		<extends name="java/lang/Object" />
-		<method name="accept(Landroid/view/accessibility/AccessibilityEvent;)Z" />
-	</class>
-	<class name="android/app/UiAutomation$OnAccessibilityEventListener" since="18">
-		<extends name="java/lang/Object" />
-		<method name="onAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V" />
-	</class>
-	<class name="android/app/UiModeManager" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="disableCarMode(I)V" />
-		<method name="enableCarMode(I)V" />
-		<method name="getCurrentModeType()I" />
-		<method name="getNightMode()I" />
-		<method name="setNightMode(I)V" />
-		<field name="ACTION_ENTER_CAR_MODE" />
-		<field name="ACTION_ENTER_DESK_MODE" />
-		<field name="ACTION_EXIT_CAR_MODE" />
-		<field name="ACTION_EXIT_DESK_MODE" />
-		<field name="DISABLE_CAR_MODE_GO_HOME" />
-		<field name="ENABLE_CAR_MODE_GO_CAR_HOME" />
-		<field name="MODE_NIGHT_AUTO" />
-		<field name="MODE_NIGHT_NO" />
-		<field name="MODE_NIGHT_YES" />
-	</class>
-	<class name="android/app/VoiceInteractor" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="submitRequest(Landroid/app/VoiceInteractor$Request;)Z" />
-		<method name="supportsCommands([Ljava/lang/String;)[Z" />
-	</class>
-	<class name="android/app/VoiceInteractor$AbortVoiceRequest" since="21">
-		<extends name="android/app/VoiceInteractor$Request" />
-		<method name="&lt;init>(Ljava/lang/CharSequence;Landroid/os/Bundle;)V" />
-		<method name="onAbortResult(Landroid/os/Bundle;)V" />
-	</class>
-	<class name="android/app/VoiceInteractor$CommandRequest" since="21">
-		<extends name="android/app/VoiceInteractor$Request" />
-		<method name="&lt;init>(Ljava/lang/String;Landroid/os/Bundle;)V" />
-		<method name="onCommandResult(Landroid/os/Bundle;)V" />
-	</class>
-	<class name="android/app/VoiceInteractor$ConfirmationRequest" since="21">
-		<extends name="android/app/VoiceInteractor$Request" />
-		<method name="&lt;init>(Ljava/lang/CharSequence;Landroid/os/Bundle;)V" />
-		<method name="onConfirmationResult(ZLandroid/os/Bundle;)V" />
-	</class>
-	<class name="android/app/VoiceInteractor$Request" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="cancel()V" />
-		<method name="getActivity()Landroid/app/Activity;" />
-		<method name="getContext()Landroid/content/Context;" />
-		<method name="onAttached(Landroid/app/Activity;)V" />
-		<method name="onCancel()V" />
-		<method name="onDetached()V" />
-	</class>
-	<class name="android/app/WallpaperInfo" since="7">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/content/pm/ResolveInfo;)V" />
-		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" />
-		<method name="getComponent()Landroid/content/ComponentName;" />
-		<method name="getPackageName()Ljava/lang/String;" />
-		<method name="getServiceInfo()Landroid/content/pm/ServiceInfo;" />
-		<method name="getServiceName()Ljava/lang/String;" />
-		<method name="getSettingsActivity()Ljava/lang/String;" />
-		<method name="loadAuthor(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;" />
-		<method name="loadDescription(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;" />
-		<method name="loadIcon(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;" />
-		<method name="loadLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;" />
-		<method name="loadThumbnail(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/app/WallpaperManager" since="5">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="clear()V" />
-		<method name="clearWallpaperOffsets(Landroid/os/IBinder;)V" />
-		<method name="forgetLoadedWallpaper()V" since="14" />
-		<method name="getBuiltInDrawable()Landroid/graphics/drawable/Drawable;" since="19" />
-		<method name="getBuiltInDrawable(IIZFF)Landroid/graphics/drawable/Drawable;" since="19" />
-		<method name="getCropAndSetWallpaperIntent(Landroid/net/Uri;)Landroid/content/Intent;" since="19" />
-		<method name="getDesiredMinimumHeight()I" />
-		<method name="getDesiredMinimumWidth()I" />
-		<method name="getDrawable()Landroid/graphics/drawable/Drawable;" />
-		<method name="getFastDrawable()Landroid/graphics/drawable/Drawable;" />
-		<method name="getInstance(Landroid/content/Context;)Landroid/app/WallpaperManager;" />
-		<method name="getWallpaperInfo()Landroid/app/WallpaperInfo;" since="7" />
-		<method name="hasResourceWallpaper(I)Z" since="17" />
-		<method name="peekDrawable()Landroid/graphics/drawable/Drawable;" />
-		<method name="peekFastDrawable()Landroid/graphics/drawable/Drawable;" />
-		<method name="sendWallpaperCommand(Landroid/os/IBinder;Ljava/lang/String;IIILandroid/os/Bundle;)V" since="7" />
-		<method name="setBitmap(Landroid/graphics/Bitmap;)V" />
-		<method name="setResource(I)V" />
-		<method name="setStream(Ljava/io/InputStream;)V" />
-		<method name="setWallpaperOffsetSteps(FF)V" since="7" />
-		<method name="setWallpaperOffsets(Landroid/os/IBinder;FF)V" />
-		<method name="suggestDesiredDimensions(II)V" />
-		<field name="ACTION_CHANGE_LIVE_WALLPAPER" since="16" />
-		<field name="ACTION_CROP_AND_SET_WALLPAPER" since="19" />
-		<field name="ACTION_LIVE_WALLPAPER_CHOOSER" since="7" />
-		<field name="COMMAND_DROP" since="7" />
-		<field name="COMMAND_SECONDARY_TAP" since="11" />
-		<field name="COMMAND_TAP" since="7" />
-		<field name="EXTRA_LIVE_WALLPAPER_COMPONENT" since="16" />
-		<field name="WALLPAPER_PREVIEW_META_DATA" since="11" />
-	</class>
-	<class name="android/app/admin/DeviceAdminInfo" since="8">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/content/pm/ResolveInfo;)V" />
-		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" />
-		<method name="getActivityInfo()Landroid/content/pm/ActivityInfo;" />
-		<method name="getComponent()Landroid/content/ComponentName;" />
-		<method name="getPackageName()Ljava/lang/String;" />
-		<method name="getReceiverName()Ljava/lang/String;" />
-		<method name="getTagForPolicy(I)Ljava/lang/String;" />
-		<method name="isVisible()Z" />
-		<method name="loadDescription(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;" />
-		<method name="loadIcon(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;" />
-		<method name="loadLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;" />
-		<method name="usesPolicy(I)Z" />
-		<field name="CREATOR" />
-		<field name="USES_ENCRYPTED_STORAGE" since="11" />
-		<field name="USES_POLICY_DISABLE_CAMERA" since="14" />
-		<field name="USES_POLICY_DISABLE_KEYGUARD_FEATURES" since="17" />
-		<field name="USES_POLICY_EXPIRE_PASSWORD" since="11" />
-		<field name="USES_POLICY_FORCE_LOCK" />
-		<field name="USES_POLICY_LIMIT_PASSWORD" />
-		<field name="USES_POLICY_RESET_PASSWORD" />
-		<field name="USES_POLICY_WATCH_LOGIN" />
-		<field name="USES_POLICY_WIPE_DATA" />
-	</class>
-	<class name="android/app/admin/DeviceAdminReceiver" since="8">
-		<extends name="android/content/BroadcastReceiver" />
-		<method name="&lt;init>()V" />
-		<method name="getManager(Landroid/content/Context;)Landroid/app/admin/DevicePolicyManager;" />
-		<method name="getWho(Landroid/content/Context;)Landroid/content/ComponentName;" />
-		<method name="onDisableRequested(Landroid/content/Context;Landroid/content/Intent;)Ljava/lang/CharSequence;" />
-		<method name="onDisabled(Landroid/content/Context;Landroid/content/Intent;)V" />
-		<method name="onEnabled(Landroid/content/Context;Landroid/content/Intent;)V" />
-		<method name="onPasswordChanged(Landroid/content/Context;Landroid/content/Intent;)V" />
-		<method name="onPasswordExpiring(Landroid/content/Context;Landroid/content/Intent;)V" since="11" />
-		<method name="onPasswordFailed(Landroid/content/Context;Landroid/content/Intent;)V" />
-		<method name="onPasswordSucceeded(Landroid/content/Context;Landroid/content/Intent;)V" />
-		<method name="onProfileProvisioningComplete(Landroid/content/Context;Landroid/content/Intent;)V" since="21" />
-		<field name="ACTION_DEVICE_ADMIN_DISABLED" />
-		<field name="ACTION_DEVICE_ADMIN_DISABLE_REQUESTED" />
-		<field name="ACTION_DEVICE_ADMIN_ENABLED" />
-		<field name="ACTION_PASSWORD_CHANGED" />
-		<field name="ACTION_PASSWORD_EXPIRING" since="11" />
-		<field name="ACTION_PASSWORD_FAILED" />
-		<field name="ACTION_PASSWORD_SUCCEEDED" />
-		<field name="ACTION_PROFILE_PROVISIONING_COMPLETE" since="21" />
-		<field name="DEVICE_ADMIN_META_DATA" />
-		<field name="EXTRA_DISABLE_WARNING" />
-	</class>
-	<class name="android/app/admin/DevicePolicyManager" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addForwardingIntentFilter(Landroid/content/ComponentName;Landroid/content/IntentFilter;I)V" since="21" />
-		<method name="addPersistentPreferredActivity(Landroid/content/ComponentName;Landroid/content/IntentFilter;Landroid/content/ComponentName;)V" since="21" />
-		<method name="addUserRestriction(Landroid/content/ComponentName;Ljava/lang/String;)V" since="21" />
-		<method name="clearForwardingIntentFilters(Landroid/content/ComponentName;)V" since="21" />
-		<method name="clearPackagePersistentPreferredActivities(Landroid/content/ComponentName;Ljava/lang/String;)V" since="21" />
-		<method name="clearUserRestriction(Landroid/content/ComponentName;Ljava/lang/String;)V" since="21" />
-		<method name="createUser(Landroid/content/ComponentName;Ljava/lang/String;)Landroid/os/UserHandle;" since="21" />
-		<method name="enableSystemApp(Landroid/content/ComponentName;Landroid/content/Intent;)I" since="21" />
-		<method name="enableSystemApp(Landroid/content/ComponentName;Ljava/lang/String;)V" since="21" />
-		<method name="getAccountTypesWithManagementDisabled()[Ljava/lang/String;" since="21" />
-		<method name="getActiveAdmins()Ljava/util/List;" />
-		<method name="getApplicationRestrictions(Landroid/content/ComponentName;Ljava/lang/String;)Landroid/os/Bundle;" since="21" />
-		<method name="getCameraDisabled(Landroid/content/ComponentName;)Z" since="14" />
-		<method name="getCurrentFailedPasswordAttempts()I" />
-		<method name="getKeyguardDisabledFeatures(Landroid/content/ComponentName;)I" since="17" />
-		<method name="getMaximumFailedPasswordsForWipe(Landroid/content/ComponentName;)I" />
-		<method name="getMaximumTimeToLock(Landroid/content/ComponentName;)J" />
-		<method name="getPasswordExpiration(Landroid/content/ComponentName;)J" since="11" />
-		<method name="getPasswordExpirationTimeout(Landroid/content/ComponentName;)J" since="11" />
-		<method name="getPasswordHistoryLength(Landroid/content/ComponentName;)I" since="11" />
-		<method name="getPasswordMaximumLength(I)I" />
-		<method name="getPasswordMinimumLength(Landroid/content/ComponentName;)I" />
-		<method name="getPasswordMinimumLetters(Landroid/content/ComponentName;)I" since="11" />
-		<method name="getPasswordMinimumLowerCase(Landroid/content/ComponentName;)I" since="11" />
-		<method name="getPasswordMinimumNonLetter(Landroid/content/ComponentName;)I" since="11" />
-		<method name="getPasswordMinimumNumeric(Landroid/content/ComponentName;)I" since="11" />
-		<method name="getPasswordMinimumSymbols(Landroid/content/ComponentName;)I" since="11" />
-		<method name="getPasswordMinimumUpperCase(Landroid/content/ComponentName;)I" since="11" />
-		<method name="getPasswordQuality(Landroid/content/ComponentName;)I" />
-		<method name="getStorageEncryption(Landroid/content/ComponentName;)Z" since="11" />
-		<method name="getStorageEncryptionStatus()I" since="11" />
-		<method name="hasGrantedPolicy(Landroid/content/ComponentName;I)Z" since="11" />
-		<method name="isActivePasswordSufficient()Z" />
-		<method name="isAdminActive(Landroid/content/ComponentName;)Z" />
-		<method name="isApplicationBlocked(Landroid/content/ComponentName;Ljava/lang/String;)Z" since="21" />
-		<method name="isDeviceOwnerApp(Ljava/lang/String;)Z" since="18" />
-		<method name="isLockTaskPermitted(Landroid/content/ComponentName;)Z" since="21" />
-		<method name="isProfileOwnerApp(Ljava/lang/String;)Z" since="21" />
-		<method name="lockNow()V" />
-		<method name="removeActiveAdmin(Landroid/content/ComponentName;)V" />
-		<method name="removeUser(Landroid/content/ComponentName;Landroid/os/UserHandle;)Z" since="21" />
-		<method name="resetPassword(Ljava/lang/String;I)Z" />
-		<method name="setAccountManagementDisabled(Landroid/content/ComponentName;Ljava/lang/String;Z)V" since="21" />
-		<method name="setApplicationBlocked(Landroid/content/ComponentName;Ljava/lang/String;Z)Z" since="21" />
-		<method name="setApplicationRestrictions(Landroid/content/ComponentName;Ljava/lang/String;Landroid/os/Bundle;)V" since="21" />
-		<method name="setApplicationsBlocked(Landroid/content/ComponentName;Landroid/content/Intent;Z)I" since="21" />
-		<method name="setCameraDisabled(Landroid/content/ComponentName;Z)V" since="14" />
-		<method name="setGlobalSetting(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)V" since="21" />
-		<method name="setKeyguardDisabledFeatures(Landroid/content/ComponentName;I)V" since="17" />
-		<method name="setLockTaskComponents([Landroid/content/ComponentName;)V" since="21" />
-		<method name="setMaximumFailedPasswordsForWipe(Landroid/content/ComponentName;I)V" />
-		<method name="setMaximumTimeToLock(Landroid/content/ComponentName;J)V" />
-		<method name="setPasswordExpirationTimeout(Landroid/content/ComponentName;J)V" since="11" />
-		<method name="setPasswordHistoryLength(Landroid/content/ComponentName;I)V" since="11" />
-		<method name="setPasswordMinimumLength(Landroid/content/ComponentName;I)V" />
-		<method name="setPasswordMinimumLetters(Landroid/content/ComponentName;I)V" since="11" />
-		<method name="setPasswordMinimumLowerCase(Landroid/content/ComponentName;I)V" since="11" />
-		<method name="setPasswordMinimumNonLetter(Landroid/content/ComponentName;I)V" since="11" />
-		<method name="setPasswordMinimumNumeric(Landroid/content/ComponentName;I)V" since="11" />
-		<method name="setPasswordMinimumSymbols(Landroid/content/ComponentName;I)V" since="11" />
-		<method name="setPasswordMinimumUpperCase(Landroid/content/ComponentName;I)V" since="11" />
-		<method name="setPasswordQuality(Landroid/content/ComponentName;I)V" />
-		<method name="setProfileEnabled(Landroid/content/ComponentName;)V" since="21" />
-		<method name="setSecureSetting(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)V" since="21" />
-		<method name="setStorageEncryption(Landroid/content/ComponentName;Z)I" since="11" />
-		<method name="wipeData(I)V" />
-		<field name="ACTION_ADD_DEVICE_ADMIN" />
-		<field name="ACTION_PROVISION_MANAGED_PROFILE" since="21" />
-		<field name="ACTION_SET_NEW_PASSWORD" />
-		<field name="ACTION_START_ENCRYPTION" since="11" />
-		<field name="ENCRYPTION_STATUS_ACTIVATING" since="11" />
-		<field name="ENCRYPTION_STATUS_ACTIVE" since="11" />
-		<field name="ENCRYPTION_STATUS_INACTIVE" since="11" />
-		<field name="ENCRYPTION_STATUS_UNSUPPORTED" since="11" />
-		<field name="EXTRA_ADD_EXPLANATION" />
-		<field name="EXTRA_DEVICE_ADMIN" />
-		<field name="EXTRA_PROVISIONING_DEFAULT_MANAGED_PROFILE_NAME" since="21" />
-		<field name="EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME" since="21" />
-		<field name="FLAG_TO_MANAGED_PROFILE" since="21" />
-		<field name="FLAG_TO_PRIMARY_USER" since="21" />
-		<field name="KEYGUARD_DISABLE_FEATURES_ALL" since="17" />
-		<field name="KEYGUARD_DISABLE_FEATURES_NONE" since="17" />
-		<field name="KEYGUARD_DISABLE_SECURE_CAMERA" since="17" />
-		<field name="KEYGUARD_DISABLE_SECURE_NOTIFICATIONS" since="21" />
-		<field name="KEYGUARD_DISABLE_TRUST_AGENTS" since="21" />
-		<field name="KEYGUARD_DISABLE_UNREDACTED_NOTIFICATIONS" since="21" />
-		<field name="KEYGUARD_DISABLE_WIDGETS_ALL" since="17" />
-		<field name="PASSWORD_QUALITY_ALPHABETIC" />
-		<field name="PASSWORD_QUALITY_ALPHANUMERIC" />
-		<field name="PASSWORD_QUALITY_BIOMETRIC_WEAK" since="14" />
-		<field name="PASSWORD_QUALITY_COMPLEX" since="11" />
-		<field name="PASSWORD_QUALITY_NUMERIC" />
-		<field name="PASSWORD_QUALITY_SOMETHING" />
-		<field name="PASSWORD_QUALITY_UNSPECIFIED" />
-		<field name="RESET_PASSWORD_REQUIRE_ENTRY" />
-		<field name="WIPE_EXTERNAL_STORAGE" since="9" />
-	</class>
-	<class name="android/app/backup/BackupAgent" since="8">
-		<extends name="android/content/ContextWrapper" />
-		<method name="&lt;init>()V" />
-		<method name="fullBackupFile(Ljava/io/File;Landroid/app/backup/FullBackupDataOutput;)V" since="14" />
-		<method name="onBackup(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;)V" />
-		<method name="onCreate()V" />
-		<method name="onDestroy()V" />
-		<method name="onFullBackup(Landroid/app/backup/FullBackupDataOutput;)V" since="14" />
-		<method name="onRestore(Landroid/app/backup/BackupDataInput;ILandroid/os/ParcelFileDescriptor;)V" />
-		<method name="onRestoreFile(Landroid/os/ParcelFileDescriptor;JLjava/io/File;IJJ)V" since="14" />
-		<field name="TYPE_DIRECTORY" since="14" />
-		<field name="TYPE_FILE" since="14" />
-	</class>
-	<class name="android/app/backup/BackupAgentHelper" since="8">
-		<extends name="android/app/backup/BackupAgent" />
-		<method name="&lt;init>()V" />
-		<method name="addHelper(Ljava/lang/String;Landroid/app/backup/BackupHelper;)V" />
-	</class>
-	<class name="android/app/backup/BackupDataInput" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getDataSize()I" />
-		<method name="getKey()Ljava/lang/String;" />
-		<method name="readEntityData([BII)I" />
-		<method name="readNextHeader()Z" />
-		<method name="skipEntityData()V" />
-	</class>
-	<class name="android/app/backup/BackupDataInputStream" since="8">
-		<extends name="java/io/InputStream" />
-		<method name="&lt;init>()V" />
-		<method name="getKey()Ljava/lang/String;" />
-		<method name="size()I" />
-	</class>
-	<class name="android/app/backup/BackupDataOutput" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="writeEntityData([BI)I" />
-		<method name="writeEntityHeader(Ljava/lang/String;I)I" />
-	</class>
-	<class name="android/app/backup/BackupHelper" since="8">
-		<extends name="java/lang/Object" />
-		<method name="performBackup(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;)V" />
-		<method name="restoreEntity(Landroid/app/backup/BackupDataInputStream;)V" />
-		<method name="writeNewStateDescription(Landroid/os/ParcelFileDescriptor;)V" />
-	</class>
-	<class name="android/app/backup/BackupManager" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="dataChanged()V" />
-		<method name="dataChanged(Ljava/lang/String;)V" />
-		<method name="requestRestore(Landroid/app/backup/RestoreObserver;)I" />
-	</class>
-	<class name="android/app/backup/FileBackupHelper" since="8">
-		<extends name="android/app/backup/FileBackupHelperBase" />
-		<implements name="android/app/backup/BackupHelper" />
-		<method name="&lt;init>(Landroid/content/Context;[Ljava/lang/String;)V" />
-	</class>
-	<class name="android/app/backup/FileBackupHelperBase" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="writeNewStateDescription(Landroid/os/ParcelFileDescriptor;)V" />
-	</class>
-	<class name="android/app/backup/FullBackupDataOutput" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/app/backup/RestoreObserver" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="onUpdate(ILjava/lang/String;)V" />
-		<method name="restoreFinished(I)V" />
-		<method name="restoreStarting(I)V" />
-	</class>
-	<class name="android/app/backup/SharedPreferencesBackupHelper" since="8">
-		<extends name="android/app/backup/FileBackupHelperBase" />
-		<implements name="android/app/backup/BackupHelper" />
-		<method name="&lt;init>(Landroid/content/Context;[Ljava/lang/String;)V" />
-	</class>
-	<class name="android/app/job/JobInfo" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getBackoffPolicy()I" />
-		<method name="getExtras()Landroid/os/PersistableBundle;" />
-		<method name="getId()I" />
-		<method name="getInitialBackoffMillis()J" />
-		<method name="getIntervalMillis()J" />
-		<method name="getMaxExecutionDelayMillis()J" />
-		<method name="getMinLatencyMillis()J" />
-		<method name="getNetworkCapabilities()I" />
-		<method name="getService()Landroid/content/ComponentName;" />
-		<method name="isPeriodic()Z" />
-		<method name="isRequireCharging()Z" />
-		<method name="isRequireDeviceIdle()Z" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/app/job/JobInfo$BackoffPolicy" since="21">
-		<extends name="java/lang/Object" />
-		<field name="EXPONENTIAL" />
-		<field name="LINEAR" />
-	</class>
-	<class name="android/app/job/JobInfo$Builder" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(ILandroid/content/ComponentName;)V" />
-		<method name="build()Landroid/app/job/JobInfo;" />
-		<method name="setBackoffCriteria(JI)Landroid/app/job/JobInfo$Builder;" />
-		<method name="setExtras(Landroid/os/PersistableBundle;)Landroid/app/job/JobInfo$Builder;" />
-		<method name="setMinimumLatency(J)Landroid/app/job/JobInfo$Builder;" />
-		<method name="setOverrideDeadline(J)Landroid/app/job/JobInfo$Builder;" />
-		<method name="setPeriodic(J)Landroid/app/job/JobInfo$Builder;" />
-		<method name="setRequiredNetworkCapabilities(I)Landroid/app/job/JobInfo$Builder;" />
-		<method name="setRequiresCharging(Z)Landroid/app/job/JobInfo$Builder;" />
-		<method name="setRequiresDeviceIdle(Z)Landroid/app/job/JobInfo$Builder;" />
-	</class>
-	<class name="android/app/job/JobInfo$NetworkType" since="21">
-		<extends name="java/lang/Object" />
-		<field name="ANY" />
-		<field name="NONE" />
-		<field name="UNMETERED" />
-	</class>
-	<class name="android/app/job/JobParameters" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getExtras()Landroid/os/PersistableBundle;" />
-		<method name="getJobId()I" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/app/job/JobScheduler" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="cancel(I)V" />
-		<method name="cancelAll()V" />
-		<method name="getAllPendingJobs()Ljava/util/List;" />
-		<method name="schedule(Landroid/app/job/JobInfo;)I" />
-		<field name="RESULT_FAILURE" />
-		<field name="RESULT_SUCCESS" />
-	</class>
-	<class name="android/app/job/JobService" since="21">
-		<extends name="android/app/Service" />
-		<method name="&lt;init>()V" />
-		<method name="jobFinished(Landroid/app/job/JobParameters;Z)V" />
-		<method name="onStartJob(Landroid/app/job/JobParameters;)Z" />
-		<method name="onStopJob(Landroid/app/job/JobParameters;)Z" />
-		<field name="PERMISSION_BIND" />
-	</class>
-	<class name="android/appwidget/AppWidgetHost" since="3">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Context;I)V" />
-		<method name="allocateAppWidgetId()I" />
-		<method name="clearViews()V" since="11" />
-		<method name="createView(Landroid/content/Context;ILandroid/appwidget/AppWidgetProviderInfo;)Landroid/appwidget/AppWidgetHostView;" />
-		<method name="deleteAllHosts()V" />
-		<method name="deleteAppWidgetId(I)V" />
-		<method name="deleteHost()V" />
-		<method name="onCreateView(Landroid/content/Context;ILandroid/appwidget/AppWidgetProviderInfo;)Landroid/appwidget/AppWidgetHostView;" />
-		<method name="onProviderChanged(ILandroid/appwidget/AppWidgetProviderInfo;)V" />
-		<method name="onProvidersChanged()V" since="17" />
-		<method name="startListening()V" />
-		<method name="stopListening()V" />
-	</class>
-	<class name="android/appwidget/AppWidgetHostView" since="3">
-		<extends name="android/widget/FrameLayout" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;II)V" />
-		<method name="getAppWidgetId()I" />
-		<method name="getAppWidgetInfo()Landroid/appwidget/AppWidgetProviderInfo;" />
-		<method name="getDefaultPaddingForWidget(Landroid/content/Context;Landroid/content/ComponentName;Landroid/graphics/Rect;)Landroid/graphics/Rect;" since="15" />
-		<method name="getDefaultView()Landroid/view/View;" />
-		<method name="getErrorView()Landroid/view/View;" />
-		<method name="prepareView(Landroid/view/View;)V" />
-		<method name="setAppWidget(ILandroid/appwidget/AppWidgetProviderInfo;)V" />
-		<method name="updateAppWidget(Landroid/widget/RemoteViews;)V" />
-		<method name="updateAppWidgetOptions(Landroid/os/Bundle;)V" since="16" />
-		<method name="updateAppWidgetSize(Landroid/os/Bundle;IIII)V" since="16" />
-	</class>
-	<class name="android/appwidget/AppWidgetManager" since="3">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="bindAppWidgetId(ILandroid/content/ComponentName;)V" />
-		<method name="bindAppWidgetIdIfAllowed(ILandroid/content/ComponentName;)Z" since="16" />
-		<method name="bindAppWidgetIdIfAllowed(ILandroid/content/ComponentName;Landroid/os/Bundle;)Z" since="17" />
-		<method name="getAppWidgetIds(Landroid/content/ComponentName;)[I" />
-		<method name="getAppWidgetInfo(I)Landroid/appwidget/AppWidgetProviderInfo;" />
-		<method name="getAppWidgetOptions(I)Landroid/os/Bundle;" since="16" />
-		<method name="getInstalledProviders()Ljava/util/List;" />
-		<method name="getInstance(Landroid/content/Context;)Landroid/appwidget/AppWidgetManager;" />
-		<method name="notifyAppWidgetViewDataChanged(II)V" since="11" />
-		<method name="notifyAppWidgetViewDataChanged([II)V" since="11" />
-		<method name="partiallyUpdateAppWidget(ILandroid/widget/RemoteViews;)V" since="11" />
-		<method name="partiallyUpdateAppWidget([ILandroid/widget/RemoteViews;)V" since="11" />
-		<method name="updateAppWidget(ILandroid/widget/RemoteViews;)V" />
-		<method name="updateAppWidget(Landroid/content/ComponentName;Landroid/widget/RemoteViews;)V" />
-		<method name="updateAppWidget([ILandroid/widget/RemoteViews;)V" />
-		<method name="updateAppWidgetOptions(ILandroid/os/Bundle;)V" since="16" />
-		<field name="ACTION_APPWIDGET_BIND" since="16" />
-		<field name="ACTION_APPWIDGET_CONFIGURE" />
-		<field name="ACTION_APPWIDGET_DELETED" />
-		<field name="ACTION_APPWIDGET_DISABLED" />
-		<field name="ACTION_APPWIDGET_ENABLED" />
-		<field name="ACTION_APPWIDGET_HOST_RESTORED" since="21" />
-		<field name="ACTION_APPWIDGET_OPTIONS_CHANGED" since="16" />
-		<field name="ACTION_APPWIDGET_PICK" />
-		<field name="ACTION_APPWIDGET_RESTORED" since="21" />
-		<field name="ACTION_APPWIDGET_UPDATE" />
-		<field name="EXTRA_APPWIDGET_ID" />
-		<field name="EXTRA_APPWIDGET_IDS" />
-		<field name="EXTRA_APPWIDGET_OLD_IDS" since="21" />
-		<field name="EXTRA_APPWIDGET_OPTIONS" since="16" />
-		<field name="EXTRA_APPWIDGET_PROVIDER" since="16" />
-		<field name="EXTRA_CUSTOM_EXTRAS" />
-		<field name="EXTRA_CUSTOM_INFO" />
-		<field name="EXTRA_HOST_ID" since="21" />
-		<field name="INVALID_APPWIDGET_ID" />
-		<field name="META_DATA_APPWIDGET_PROVIDER" />
-		<field name="OPTION_APPWIDGET_HOST_CATEGORY" since="17" />
-		<field name="OPTION_APPWIDGET_MAX_HEIGHT" since="16" />
-		<field name="OPTION_APPWIDGET_MAX_WIDTH" since="16" />
-		<field name="OPTION_APPWIDGET_MIN_HEIGHT" since="16" />
-		<field name="OPTION_APPWIDGET_MIN_WIDTH" since="16" />
-	</class>
-	<class name="android/appwidget/AppWidgetProvider" since="3">
-		<extends name="android/content/BroadcastReceiver" />
-		<method name="&lt;init>()V" />
-		<method name="onAppWidgetOptionsChanged(Landroid/content/Context;Landroid/appwidget/AppWidgetManager;ILandroid/os/Bundle;)V" since="16" />
-		<method name="onDeleted(Landroid/content/Context;[I)V" />
-		<method name="onDisabled(Landroid/content/Context;)V" />
-		<method name="onEnabled(Landroid/content/Context;)V" />
-		<method name="onRestored(Landroid/content/Context;[I[I)V" since="21" />
-		<method name="onUpdate(Landroid/content/Context;Landroid/appwidget/AppWidgetManager;[I)V" />
-	</class>
-	<class name="android/appwidget/AppWidgetProviderInfo" since="3">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" />
-		<method name="clone()Landroid/appwidget/AppWidgetProviderInfo;" since="17" />
-		<field name="CREATOR" />
-		<field name="RESIZE_BOTH" since="12" />
-		<field name="RESIZE_HORIZONTAL" since="12" />
-		<field name="RESIZE_NONE" since="12" />
-		<field name="RESIZE_VERTICAL" since="12" />
-		<field name="WIDGET_CATEGORY_HOME_SCREEN" since="17" />
-		<field name="WIDGET_CATEGORY_KEYGUARD" since="17" />
-		<field name="WIDGET_CATEGORY_RECENTS" since="21" />
-		<field name="autoAdvanceViewId" since="11" />
-		<field name="configure" />
-		<field name="icon" />
-		<field name="initialKeyguardLayout" since="17" />
-		<field name="initialLayout" />
-		<field name="label" />
-		<field name="minHeight" />
-		<field name="minResizeHeight" since="14" />
-		<field name="minResizeWidth" since="14" />
-		<field name="minWidth" />
-		<field name="previewImage" since="11" />
-		<field name="provider" />
-		<field name="resizeMode" since="12" />
-		<field name="updatePeriodMillis" />
-		<field name="widgetCategory" since="17" />
-	</class>
-	<class name="android/bluetooth/BluetoothA2dp" since="11">
-		<extends name="java/lang/Object" />
-		<implements name="android/bluetooth/BluetoothProfile" />
-		<method name="&lt;init>()V" />
-		<method name="isA2dpPlaying(Landroid/bluetooth/BluetoothDevice;)Z" />
-		<field name="ACTION_CONNECTION_STATE_CHANGED" />
-		<field name="ACTION_PLAYING_STATE_CHANGED" />
-		<field name="STATE_NOT_PLAYING" />
-		<field name="STATE_PLAYING" />
-	</class>
-	<class name="android/bluetooth/BluetoothAdapter" since="5">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="cancelDiscovery()Z" />
-		<method name="checkBluetoothAddress(Ljava/lang/String;)Z" />
-		<method name="closeProfileProxy(ILandroid/bluetooth/BluetoothProfile;)V" since="11" />
-		<method name="disable()Z" />
-		<method name="enable()Z" />
-		<method name="getAddress()Ljava/lang/String;" />
-		<method name="getBluetoothLeAdvertiser()Landroid/bluetooth/le/BluetoothLeAdvertiser;" since="21" />
-		<method name="getBluetoothLeScanner()Landroid/bluetooth/le/BluetoothLeScanner;" since="21" />
-		<method name="getBondedDevices()Ljava/util/Set;" />
-		<method name="getDefaultAdapter()Landroid/bluetooth/BluetoothAdapter;" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getProfileConnectionState(I)I" since="14" />
-		<method name="getProfileProxy(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;I)Z" since="11" />
-		<method name="getRemoteDevice(Ljava/lang/String;)Landroid/bluetooth/BluetoothDevice;" />
-		<method name="getRemoteDevice([B)Landroid/bluetooth/BluetoothDevice;" since="16" />
-		<method name="getScanMode()I" />
-		<method name="getState()I" />
-		<method name="isDiscovering()Z" />
-		<method name="isEnabled()Z" />
-		<method name="listenUsingInsecureRfcommWithServiceRecord(Ljava/lang/String;Ljava/util/UUID;)Landroid/bluetooth/BluetoothServerSocket;" since="10" />
-		<method name="listenUsingRfcommWithServiceRecord(Ljava/lang/String;Ljava/util/UUID;)Landroid/bluetooth/BluetoothServerSocket;" />
-		<method name="setName(Ljava/lang/String;)Z" />
-		<method name="startDiscovery()Z" />
-		<method name="startLeScan(Landroid/bluetooth/BluetoothAdapter$LeScanCallback;)Z" since="18" />
-		<method name="startLeScan([Ljava/util/UUID;Landroid/bluetooth/BluetoothAdapter$LeScanCallback;)Z" since="18" />
-		<method name="stopLeScan(Landroid/bluetooth/BluetoothAdapter$LeScanCallback;)V" since="18" />
-		<field name="ACTION_CONNECTION_STATE_CHANGED" since="11" />
-		<field name="ACTION_DISCOVERY_FINISHED" />
-		<field name="ACTION_DISCOVERY_STARTED" />
-		<field name="ACTION_LOCAL_NAME_CHANGED" />
-		<field name="ACTION_REQUEST_DISCOVERABLE" />
-		<field name="ACTION_REQUEST_ENABLE" />
-		<field name="ACTION_SCAN_MODE_CHANGED" />
-		<field name="ACTION_STATE_CHANGED" />
-		<field name="ERROR" />
-		<field name="EXTRA_CONNECTION_STATE" since="11" />
-		<field name="EXTRA_DISCOVERABLE_DURATION" />
-		<field name="EXTRA_LOCAL_NAME" />
-		<field name="EXTRA_PREVIOUS_CONNECTION_STATE" since="11" />
-		<field name="EXTRA_PREVIOUS_SCAN_MODE" />
-		<field name="EXTRA_PREVIOUS_STATE" />
-		<field name="EXTRA_SCAN_MODE" />
-		<field name="EXTRA_STATE" />
-		<field name="SCAN_MODE_CONNECTABLE" />
-		<field name="SCAN_MODE_CONNECTABLE_DISCOVERABLE" />
-		<field name="SCAN_MODE_NONE" />
-		<field name="STATE_CONNECTED" since="11" />
-		<field name="STATE_CONNECTING" since="11" />
-		<field name="STATE_DISCONNECTED" since="11" />
-		<field name="STATE_DISCONNECTING" since="11" />
-		<field name="STATE_OFF" />
-		<field name="STATE_ON" />
-		<field name="STATE_TURNING_OFF" />
-		<field name="STATE_TURNING_ON" />
-	</class>
-	<class name="android/bluetooth/BluetoothAdapter$LeScanCallback" since="18">
-		<extends name="java/lang/Object" />
-		<method name="onLeScan(Landroid/bluetooth/BluetoothDevice;I[B)V" />
-	</class>
-	<class name="android/bluetooth/BluetoothAssignedNumbers" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="AAMP_OF_AMERICA" since="19" />
-		<field name="ACCEL_SEMICONDUCTOR" />
-		<field name="ACE_SENSOR" since="19" />
-		<field name="ADIDAS" since="19" />
-		<field name="ADVANCED_PANMOBIL_SYSTEMS" since="19" />
-		<field name="AIROHA_TECHNOLOGY" since="19" />
-		<field name="ALCATEL" />
-		<field name="ALPWISE" since="19" />
-		<field name="AMICCOM_ELECTRONICS" since="19" />
-		<field name="APLIX" since="19" />
-		<field name="APPLE" />
-		<field name="APT_LICENSING" />
-		<field name="ARCHOS" since="19" />
-		<field name="ARP_DEVICES" since="19" />
-		<field name="ATHEROS_COMMUNICATIONS" />
-		<field name="ATMEL" />
-		<field name="AUSTCO_COMMUNICATION_SYSTEMS" since="19" />
-		<field name="AUTONET_MOBILE" since="19" />
-		<field name="AVAGO" />
-		<field name="AVM_BERLIN" />
-		<field name="A_AND_D_ENGINEERING" since="19" />
-		<field name="A_AND_R_CAMBRIDGE" since="19" />
-		<field name="BANDSPEED" />
-		<field name="BAND_XI_INTERNATIONAL" since="19" />
-		<field name="BDE_TECHNOLOGY" since="19" />
-		<field name="BEATS_ELECTRONICS" since="19" />
-		<field name="BEAUTIFUL_ENTERPRISE" since="19" />
-		<field name="BEKEY" since="19" />
-		<field name="BELKIN_INTERNATIONAL" />
-		<field name="BINAURIC" since="19" />
-		<field name="BIOSENTRONICS" since="19" />
-		<field name="BLUEGIGA" />
-		<field name="BLUERADIOS" since="19" />
-		<field name="BLUETOOTH_SIG" />
-		<field name="BLUETREK_TECHNOLOGIES" since="19" />
-		<field name="BOSE" since="19" />
-		<field name="BRIARTEK" since="19" />
-		<field name="BROADCOM" />
-		<field name="CAEN_RFID" since="19" />
-		<field name="CAMBRIDGE_SILICON_RADIO" />
-		<field name="CATC" />
-		<field name="CINETIX" since="19" />
-		<field name="CLARINOX_TECHNOLOGIES" since="19" />
-		<field name="COLORFY" since="19" />
-		<field name="COMMIL" />
-		<field name="CONEXANT_SYSTEMS" />
-		<field name="CONNECTBLUE" since="19" />
-		<field name="CONTINENTAL_AUTOMOTIVE" />
-		<field name="CONWISE_TECHNOLOGY" />
-		<field name="CREATIVE_TECHNOLOGY" since="19" />
-		<field name="C_TECHNOLOGIES" />
-		<field name="DANLERS" since="19" />
-		<field name="DELORME_PUBLISHING_COMPANY" since="19" />
-		<field name="DEXCOM" since="19" />
-		<field name="DIALOG_SEMICONDUCTOR" since="19" />
-		<field name="DIGIANSWER" />
-		<field name="ECLIPSE" />
-		<field name="ECOTEST" since="19" />
-		<field name="ELGATO_SYSTEMS" since="19" />
-		<field name="EM_MICROELECTRONIC_MARIN" />
-		<field name="EQUINOX_AG" since="19" />
-		<field name="ERICSSON_TECHNOLOGY" />
-		<field name="EVLUMA" since="19" />
-		<field name="FREE2MOVE" />
-		<field name="FUNAI_ELECTRIC" since="19" />
-		<field name="GARMIN_INTERNATIONAL" since="19" />
-		<field name="GCT_SEMICONDUCTOR" />
-		<field name="GELO" since="19" />
-		<field name="GENEQ" since="19" />
-		<field name="GENERAL_MOTORS" since="19" />
-		<field name="GENNUM" />
-		<field name="GEOFORCE" since="19" />
-		<field name="GIBSON_GUITARS" since="19" />
-		<field name="GN_NETCOM" since="19" />
-		<field name="GN_RESOUND" since="19" />
-		<field name="GOOGLE" since="19" />
-		<field name="GREEN_THROTTLE_GAMES" since="19" />
-		<field name="GROUP_SENSE" since="19" />
-		<field name="HANLYNN_TECHNOLOGIES" since="19" />
-		<field name="HARMAN_INTERNATIONAL" />
-		<field name="HEWLETT_PACKARD" since="19" />
-		<field name="HITACHI" />
-		<field name="HOSIDEN" since="19" />
-		<field name="IBM" />
-		<field name="INFINEON_TECHNOLOGIES" />
-		<field name="INGENIEUR_SYSTEMGRUPPE_ZAHN" since="19" />
-		<field name="INTEGRATED_SILICON_SOLUTION" />
-		<field name="INTEGRATED_SYSTEM_SOLUTION" />
-		<field name="INTEL" />
-		<field name="INVENTEL" />
-		<field name="IPEXTREME" />
-		<field name="I_TECH_DYNAMIC_GLOBAL_DISTRIBUTION" since="19" />
-		<field name="JAWBONE" since="19" />
-		<field name="JIANGSU_TOPPOWER_AUTOMOTIVE_ELECTRONICS" since="19" />
-		<field name="JOHNSON_CONTROLS" since="19" />
-		<field name="J_AND_M" />
-		<field name="KAWANTECH" since="19" />
-		<field name="KC_TECHNOLOGY" />
-		<field name="KENSINGTON_COMPUTER_PRODUCTS_GROUP" since="19" />
-		<field name="LAIRD_TECHNOLOGIES" since="19" />
-		<field name="LESSWIRE" since="19" />
-		<field name="LG_ELECTRONICS" since="19" />
-		<field name="LINAK" since="19" />
-		<field name="LUCENT" />
-		<field name="LUDUS_HELSINKI" since="19" />
-		<field name="MACRONIX" />
-		<field name="MAGNETI_MARELLI" since="19" />
-		<field name="MANSELLA" />
-		<field name="MARVELL" />
-		<field name="MATSUSHITA_ELECTRIC" />
-		<field name="MC10" since="19" />
-		<field name="MEDIATEK" />
-		<field name="MESO_INTERNATIONAL" since="19" />
-		<field name="META_WATCH" since="19" />
-		<field name="MEWTEL_TECHNOLOGY" />
-		<field name="MICOMMAND" since="19" />
-		<field name="MICROCHIP_TECHNOLOGY" since="19" />
-		<field name="MICROSOFT" />
-		<field name="MINDTREE" since="19" />
-		<field name="MISFIT_WEARABLES" since="19" />
-		<field name="MITEL_SEMICONDUCTOR" />
-		<field name="MITSUBISHI_ELECTRIC" />
-		<field name="MOBILIAN_CORPORATION" />
-		<field name="MONSTER" since="19" />
-		<field name="MOTOROLA" />
-		<field name="MSTAR_SEMICONDUCTOR" since="19" />
-		<field name="MUZIK" since="19" />
-		<field name="NEC" />
-		<field name="NEC_LIGHTING" since="19" />
-		<field name="NEWLOGIC" />
-		<field name="NIKE" since="19" />
-		<field name="NINE_SOLUTIONS" since="19" />
-		<field name="NOKIA_MOBILE_PHONES" />
-		<field name="NORDIC_SEMICONDUCTOR" />
-		<field name="NORWOOD_SYSTEMS" />
-		<field name="ODM_TECHNOLOGY" since="19" />
-		<field name="OMEGAWAVE" since="19" />
-		<field name="ONSET_COMPUTER" since="19" />
-		<field name="OPEN_INTERFACE" />
-		<field name="OTL_DYNAMICS" since="19" />
-		<field name="PANDA_OCEAN" since="19" />
-		<field name="PARROT" />
-		<field name="PARTHUS_TECHNOLOGIES" />
-		<field name="PASSIF_SEMICONDUCTOR" since="19" />
-		<field name="PETER_SYSTEMTECHNIK" since="19" />
-		<field name="PHILIPS_SEMICONDUCTORS" />
-		<field name="PLANTRONICS" />
-		<field name="POLAR_ELECTRO" since="19" />
-		<field name="POLAR_ELECTRO_EUROPE" since="19" />
-		<field name="PROCTER_AND_GAMBLE" since="19" />
-		<field name="QUALCOMM" />
-		<field name="QUALCOMM_CONNECTED_EXPERIENCES" since="19" />
-		<field name="QUALCOMM_INNOVATION_CENTER" since="19" />
-		<field name="QUALCOMM_LABS" since="19" />
-		<field name="QUALCOMM_TECHNOLOGIES" since="19" />
-		<field name="QUINTIC" since="19" />
-		<field name="QUUPPA" since="19" />
-		<field name="RALINK_TECHNOLOGY" />
-		<field name="RDA_MICROELECTRONICS" since="19" />
-		<field name="REALTEK_SEMICONDUCTOR" />
-		<field name="RED_M" />
-		<field name="RENESAS_TECHNOLOGY" />
-		<field name="RESEARCH_IN_MOTION" />
-		<field name="RF_MICRO_DEVICES" />
-		<field name="RIVIERAWAVES" />
-		<field name="ROHDE_AND_SCHWARZ" />
-		<field name="RTX_TELECOM" />
-		<field name="SAMSUNG_ELECTRONICS" since="19" />
-		<field name="SARIS_CYCLING_GROUP" since="19" />
-		<field name="SEERS_TECHNOLOGY" since="19" />
-		<field name="SEIKO_EPSON" />
-		<field name="SELFLY" since="19" />
-		<field name="SEMILINK" since="19" />
-		<field name="SENNHEISER_COMMUNICATIONS" since="19" />
-		<field name="SHANGHAI_SUPER_SMART_ELECTRONICS" since="19" />
-		<field name="SHENZHEN_EXCELSECU_DATA_TECHNOLOGY" since="19" />
-		<field name="SIGNIA_TECHNOLOGIES" />
-		<field name="SILICON_WAVE" />
-		<field name="SIRF_TECHNOLOGY" />
-		<field name="SOCKET_MOBILE" />
-		<field name="SONY_ERICSSON" />
-		<field name="SOUND_ID" since="19" />
-		<field name="SPORTS_TRACKING_TECHNOLOGIES" since="19" />
-		<field name="SR_MEDIZINELEKTRONIK" since="19" />
-		<field name="STACCATO_COMMUNICATIONS" />
-		<field name="STALMART_TECHNOLOGY" since="19" />
-		<field name="STARKEY_LABORATORIES" since="19" />
-		<field name="STOLLMAN_E_PLUS_V" since="19" />
-		<field name="STONESTREET_ONE" />
-		<field name="ST_MICROELECTRONICS" />
-		<field name="SUMMIT_DATA_COMMUNICATIONS" since="19" />
-		<field name="SUUNTO" since="19" />
-		<field name="SWIRL_NETWORKS" since="19" />
-		<field name="SYMBOL_TECHNOLOGIES" />
-		<field name="SYNOPSYS" />
-		<field name="SYSTEMS_AND_CHIPS" />
-		<field name="S_POWER_ELECTRONICS" since="19" />
-		<field name="TAIXINGBANG_TECHNOLOGY" since="19" />
-		<field name="TENOVIS" />
-		<field name="TERAX" />
-		<field name="TEXAS_INSTRUMENTS" />
-		<field name="THINKOPTICS" since="19" />
-		<field name="THREECOM" />
-		<field name="THREE_DIJOY" />
-		<field name="THREE_DSP" />
-		<field name="TIMEKEEPING_SYSTEMS" since="19" />
-		<field name="TIMEX_GROUP_USA" since="19" />
-		<field name="TOPCORN_POSITIONING_SYSTEMS" since="19" />
-		<field name="TOSHIBA" />
-		<field name="TRANSILICA" />
-		<field name="TRELAB" since="19" />
-		<field name="TTPCOM" />
-		<field name="TXTR" since="19" />
-		<field name="TZERO_TECHNOLOGIES" />
-		<field name="UNIVERSAL_ELECTRONICS" since="19" />
-		<field name="VERTU" since="19" />
-		<field name="VISTEON" since="19" />
-		<field name="VIZIO" />
-		<field name="VOYETRA_TURTLE_BEACH" since="19" />
-		<field name="WAVEPLUS_TECHNOLOGY" />
-		<field name="WICENTRIC" />
-		<field name="WIDCOMM" />
-		<field name="WUXI_VIMICRO" since="19" />
-		<field name="ZEEVO" />
-		<field name="ZER01_TV" since="19" />
-		<field name="ZOMM" since="19" />
-		<field name="ZSCAN_SOFTWARE" since="19" />
-	</class>
-	<class name="android/bluetooth/BluetoothClass" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getDeviceClass()I" />
-		<method name="getMajorDeviceClass()I" />
-		<method name="hasService(I)Z" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/bluetooth/BluetoothClass$Device" since="5">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="AUDIO_VIDEO_CAMCORDER" />
-		<field name="AUDIO_VIDEO_CAR_AUDIO" />
-		<field name="AUDIO_VIDEO_HANDSFREE" />
-		<field name="AUDIO_VIDEO_HEADPHONES" />
-		<field name="AUDIO_VIDEO_HIFI_AUDIO" />
-		<field name="AUDIO_VIDEO_LOUDSPEAKER" />
-		<field name="AUDIO_VIDEO_MICROPHONE" />
-		<field name="AUDIO_VIDEO_PORTABLE_AUDIO" />
-		<field name="AUDIO_VIDEO_SET_TOP_BOX" />
-		<field name="AUDIO_VIDEO_UNCATEGORIZED" />
-		<field name="AUDIO_VIDEO_VCR" />
-		<field name="AUDIO_VIDEO_VIDEO_CAMERA" />
-		<field name="AUDIO_VIDEO_VIDEO_CONFERENCING" />
-		<field name="AUDIO_VIDEO_VIDEO_DISPLAY_AND_LOUDSPEAKER" />
-		<field name="AUDIO_VIDEO_VIDEO_GAMING_TOY" />
-		<field name="AUDIO_VIDEO_VIDEO_MONITOR" />
-		<field name="AUDIO_VIDEO_WEARABLE_HEADSET" />
-		<field name="COMPUTER_DESKTOP" />
-		<field name="COMPUTER_HANDHELD_PC_PDA" />
-		<field name="COMPUTER_LAPTOP" />
-		<field name="COMPUTER_PALM_SIZE_PC_PDA" />
-		<field name="COMPUTER_SERVER" />
-		<field name="COMPUTER_UNCATEGORIZED" />
-		<field name="COMPUTER_WEARABLE" />
-		<field name="HEALTH_BLOOD_PRESSURE" />
-		<field name="HEALTH_DATA_DISPLAY" />
-		<field name="HEALTH_GLUCOSE" />
-		<field name="HEALTH_PULSE_OXIMETER" />
-		<field name="HEALTH_PULSE_RATE" />
-		<field name="HEALTH_THERMOMETER" />
-		<field name="HEALTH_UNCATEGORIZED" />
-		<field name="HEALTH_WEIGHING" />
-		<field name="PHONE_CELLULAR" />
-		<field name="PHONE_CORDLESS" />
-		<field name="PHONE_ISDN" />
-		<field name="PHONE_MODEM_OR_GATEWAY" />
-		<field name="PHONE_SMART" />
-		<field name="PHONE_UNCATEGORIZED" />
-		<field name="TOY_CONTROLLER" />
-		<field name="TOY_DOLL_ACTION_FIGURE" />
-		<field name="TOY_GAME" />
-		<field name="TOY_ROBOT" />
-		<field name="TOY_UNCATEGORIZED" />
-		<field name="TOY_VEHICLE" />
-		<field name="WEARABLE_GLASSES" />
-		<field name="WEARABLE_HELMET" />
-		<field name="WEARABLE_JACKET" />
-		<field name="WEARABLE_PAGER" />
-		<field name="WEARABLE_UNCATEGORIZED" />
-		<field name="WEARABLE_WRIST_WATCH" />
-	</class>
-	<class name="android/bluetooth/BluetoothClass$Device$Major" since="5">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="AUDIO_VIDEO" />
-		<field name="COMPUTER" />
-		<field name="HEALTH" />
-		<field name="IMAGING" />
-		<field name="MISC" />
-		<field name="NETWORKING" />
-		<field name="PERIPHERAL" />
-		<field name="PHONE" />
-		<field name="TOY" />
-		<field name="UNCATEGORIZED" />
-		<field name="WEARABLE" />
-	</class>
-	<class name="android/bluetooth/BluetoothClass$Service" since="5">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="AUDIO" />
-		<field name="CAPTURE" />
-		<field name="INFORMATION" />
-		<field name="LIMITED_DISCOVERABILITY" />
-		<field name="NETWORKING" />
-		<field name="OBJECT_TRANSFER" />
-		<field name="POSITIONING" />
-		<field name="RENDER" />
-		<field name="TELEPHONY" />
-	</class>
-	<class name="android/bluetooth/BluetoothDevice" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="connectGatt(Landroid/content/Context;ZLandroid/bluetooth/BluetoothGattCallback;)Landroid/bluetooth/BluetoothGatt;" since="18" />
-		<method name="createBond()Z" since="19" />
-		<method name="createInsecureRfcommSocketToServiceRecord(Ljava/util/UUID;)Landroid/bluetooth/BluetoothSocket;" since="10" />
-		<method name="createRfcommSocketToServiceRecord(Ljava/util/UUID;)Landroid/bluetooth/BluetoothSocket;" />
-		<method name="fetchUuidsWithSdp()Z" since="15" />
-		<method name="getAddress()Ljava/lang/String;" />
-		<method name="getBluetoothClass()Landroid/bluetooth/BluetoothClass;" />
-		<method name="getBondState()I" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getType()I" since="18" />
-		<method name="getUuids()[Landroid/os/ParcelUuid;" since="15" />
-		<method name="setPairingConfirmation(Z)Z" since="19" />
-		<method name="setPin([B)Z" since="19" />
-		<field name="ACTION_ACL_CONNECTED" />
-		<field name="ACTION_ACL_DISCONNECTED" />
-		<field name="ACTION_ACL_DISCONNECT_REQUESTED" />
-		<field name="ACTION_BOND_STATE_CHANGED" />
-		<field name="ACTION_CLASS_CHANGED" />
-		<field name="ACTION_FOUND" />
-		<field name="ACTION_NAME_CHANGED" />
-		<field name="ACTION_PAIRING_REQUEST" since="19" />
-		<field name="ACTION_UUID" since="15" />
-		<field name="BOND_BONDED" />
-		<field name="BOND_BONDING" />
-		<field name="BOND_NONE" />
-		<field name="CREATOR" />
-		<field name="DEVICE_TYPE_CLASSIC" since="18" />
-		<field name="DEVICE_TYPE_DUAL" since="18" />
-		<field name="DEVICE_TYPE_LE" since="18" />
-		<field name="DEVICE_TYPE_UNKNOWN" since="18" />
-		<field name="ERROR" />
-		<field name="EXTRA_BOND_STATE" />
-		<field name="EXTRA_CLASS" />
-		<field name="EXTRA_DEVICE" />
-		<field name="EXTRA_NAME" />
-		<field name="EXTRA_PAIRING_KEY" since="19" />
-		<field name="EXTRA_PAIRING_VARIANT" since="19" />
-		<field name="EXTRA_PREVIOUS_BOND_STATE" />
-		<field name="EXTRA_RSSI" />
-		<field name="EXTRA_UUID" since="15" />
-		<field name="PAIRING_VARIANT_PASSKEY_CONFIRMATION" since="19" />
-		<field name="PAIRING_VARIANT_PIN" since="19" />
-	</class>
-	<class name="android/bluetooth/BluetoothGatt" since="18">
-		<extends name="java/lang/Object" />
-		<implements name="android/bluetooth/BluetoothProfile" />
-		<method name="&lt;init>()V" />
-		<method name="abortReliableWrite()V" since="19" />
-		<method name="abortReliableWrite(Landroid/bluetooth/BluetoothDevice;)V" />
-		<method name="beginReliableWrite()Z" />
-		<method name="close()V" />
-		<method name="connect()Z" />
-		<method name="disconnect()V" />
-		<method name="discoverServices()Z" />
-		<method name="executeReliableWrite()Z" />
-		<method name="getDevice()Landroid/bluetooth/BluetoothDevice;" />
-		<method name="getService(Ljava/util/UUID;)Landroid/bluetooth/BluetoothGattService;" />
-		<method name="getServices()Ljava/util/List;" />
-		<method name="readCharacteristic(Landroid/bluetooth/BluetoothGattCharacteristic;)Z" />
-		<method name="readDescriptor(Landroid/bluetooth/BluetoothGattDescriptor;)Z" />
-		<method name="readRemoteRssi()Z" />
-		<method name="setCharacteristicNotification(Landroid/bluetooth/BluetoothGattCharacteristic;Z)Z" />
-		<method name="writeCharacteristic(Landroid/bluetooth/BluetoothGattCharacteristic;)Z" />
-		<method name="writeDescriptor(Landroid/bluetooth/BluetoothGattDescriptor;)Z" />
-		<field name="GATT_FAILURE" />
-		<field name="GATT_INSUFFICIENT_AUTHENTICATION" />
-		<field name="GATT_INSUFFICIENT_ENCRYPTION" />
-		<field name="GATT_INVALID_ATTRIBUTE_LENGTH" />
-		<field name="GATT_INVALID_OFFSET" />
-		<field name="GATT_READ_NOT_PERMITTED" />
-		<field name="GATT_REQUEST_NOT_SUPPORTED" />
-		<field name="GATT_SUCCESS" />
-		<field name="GATT_WRITE_NOT_PERMITTED" />
-	</class>
-	<class name="android/bluetooth/BluetoothGattCallback" since="18">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="onCharacteristicChanged(Landroid/bluetooth/BluetoothGatt;Landroid/bluetooth/BluetoothGattCharacteristic;)V" />
-		<method name="onCharacteristicRead(Landroid/bluetooth/BluetoothGatt;Landroid/bluetooth/BluetoothGattCharacteristic;I)V" />
-		<method name="onCharacteristicWrite(Landroid/bluetooth/BluetoothGatt;Landroid/bluetooth/BluetoothGattCharacteristic;I)V" />
-		<method name="onConnectionStateChange(Landroid/bluetooth/BluetoothGatt;II)V" />
-		<method name="onDescriptorRead(Landroid/bluetooth/BluetoothGatt;Landroid/bluetooth/BluetoothGattDescriptor;I)V" />
-		<method name="onDescriptorWrite(Landroid/bluetooth/BluetoothGatt;Landroid/bluetooth/BluetoothGattDescriptor;I)V" />
-		<method name="onReadRemoteRssi(Landroid/bluetooth/BluetoothGatt;II)V" />
-		<method name="onReliableWriteCompleted(Landroid/bluetooth/BluetoothGatt;I)V" />
-		<method name="onServicesDiscovered(Landroid/bluetooth/BluetoothGatt;I)V" />
-	</class>
-	<class name="android/bluetooth/BluetoothGattCharacteristic" since="18">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/util/UUID;II)V" />
-		<method name="addDescriptor(Landroid/bluetooth/BluetoothGattDescriptor;)Z" />
-		<method name="getDescriptor(Ljava/util/UUID;)Landroid/bluetooth/BluetoothGattDescriptor;" />
-		<method name="getDescriptors()Ljava/util/List;" />
-		<method name="getFloatValue(II)Ljava/lang/Float;" />
-		<method name="getInstanceId()I" />
-		<method name="getIntValue(II)Ljava/lang/Integer;" />
-		<method name="getPermissions()I" />
-		<method name="getProperties()I" />
-		<method name="getService()Landroid/bluetooth/BluetoothGattService;" />
-		<method name="getStringValue(I)Ljava/lang/String;" />
-		<method name="getUuid()Ljava/util/UUID;" />
-		<method name="getValue()[B" />
-		<method name="getWriteType()I" />
-		<method name="setValue(III)Z" />
-		<method name="setValue(IIII)Z" />
-		<method name="setValue(Ljava/lang/String;)Z" />
-		<method name="setValue([B)Z" />
-		<method name="setWriteType(I)V" />
-		<field name="FORMAT_FLOAT" />
-		<field name="FORMAT_SFLOAT" />
-		<field name="FORMAT_SINT16" />
-		<field name="FORMAT_SINT32" />
-		<field name="FORMAT_SINT8" />
-		<field name="FORMAT_UINT16" />
-		<field name="FORMAT_UINT32" />
-		<field name="FORMAT_UINT8" />
-		<field name="PERMISSION_READ" />
-		<field name="PERMISSION_READ_ENCRYPTED" />
-		<field name="PERMISSION_READ_ENCRYPTED_MITM" />
-		<field name="PERMISSION_WRITE" />
-		<field name="PERMISSION_WRITE_ENCRYPTED" />
-		<field name="PERMISSION_WRITE_ENCRYPTED_MITM" />
-		<field name="PERMISSION_WRITE_SIGNED" />
-		<field name="PERMISSION_WRITE_SIGNED_MITM" />
-		<field name="PROPERTY_BROADCAST" />
-		<field name="PROPERTY_EXTENDED_PROPS" />
-		<field name="PROPERTY_INDICATE" />
-		<field name="PROPERTY_NOTIFY" />
-		<field name="PROPERTY_READ" />
-		<field name="PROPERTY_SIGNED_WRITE" />
-		<field name="PROPERTY_WRITE" />
-		<field name="PROPERTY_WRITE_NO_RESPONSE" />
-		<field name="WRITE_TYPE_DEFAULT" />
-		<field name="WRITE_TYPE_NO_RESPONSE" />
-		<field name="WRITE_TYPE_SIGNED" />
-		<field name="mDescriptors" />
-	</class>
-	<class name="android/bluetooth/BluetoothGattDescriptor" since="18">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/util/UUID;I)V" />
-		<method name="getCharacteristic()Landroid/bluetooth/BluetoothGattCharacteristic;" />
-		<method name="getPermissions()I" />
-		<method name="getUuid()Ljava/util/UUID;" />
-		<method name="getValue()[B" />
-		<method name="setValue([B)Z" />
-		<field name="DISABLE_NOTIFICATION_VALUE" />
-		<field name="ENABLE_INDICATION_VALUE" />
-		<field name="ENABLE_NOTIFICATION_VALUE" />
-		<field name="PERMISSION_READ" />
-		<field name="PERMISSION_READ_ENCRYPTED" />
-		<field name="PERMISSION_READ_ENCRYPTED_MITM" />
-		<field name="PERMISSION_WRITE" />
-		<field name="PERMISSION_WRITE_ENCRYPTED" />
-		<field name="PERMISSION_WRITE_ENCRYPTED_MITM" />
-		<field name="PERMISSION_WRITE_SIGNED" />
-		<field name="PERMISSION_WRITE_SIGNED_MITM" />
-	</class>
-	<class name="android/bluetooth/BluetoothGattServer" since="18">
-		<extends name="java/lang/Object" />
-		<implements name="android/bluetooth/BluetoothProfile" />
-		<method name="&lt;init>()V" />
-		<method name="addService(Landroid/bluetooth/BluetoothGattService;)Z" />
-		<method name="cancelConnection(Landroid/bluetooth/BluetoothDevice;)V" />
-		<method name="clearServices()V" />
-		<method name="close()V" />
-		<method name="connect(Landroid/bluetooth/BluetoothDevice;Z)Z" />
-		<method name="getService(Ljava/util/UUID;)Landroid/bluetooth/BluetoothGattService;" />
-		<method name="getServices()Ljava/util/List;" />
-		<method name="notifyCharacteristicChanged(Landroid/bluetooth/BluetoothDevice;Landroid/bluetooth/BluetoothGattCharacteristic;Z)Z" />
-		<method name="removeService(Landroid/bluetooth/BluetoothGattService;)Z" />
-		<method name="sendResponse(Landroid/bluetooth/BluetoothDevice;III[B)Z" />
-	</class>
-	<class name="android/bluetooth/BluetoothGattServerCallback" since="18">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="onCharacteristicReadRequest(Landroid/bluetooth/BluetoothDevice;IILandroid/bluetooth/BluetoothGattCharacteristic;)V" />
-		<method name="onCharacteristicWriteRequest(Landroid/bluetooth/BluetoothDevice;ILandroid/bluetooth/BluetoothGattCharacteristic;ZZI[B)V" />
-		<method name="onConnectionStateChange(Landroid/bluetooth/BluetoothDevice;II)V" />
-		<method name="onDescriptorReadRequest(Landroid/bluetooth/BluetoothDevice;IILandroid/bluetooth/BluetoothGattDescriptor;)V" />
-		<method name="onDescriptorWriteRequest(Landroid/bluetooth/BluetoothDevice;ILandroid/bluetooth/BluetoothGattDescriptor;ZZI[B)V" />
-		<method name="onExecuteWrite(Landroid/bluetooth/BluetoothDevice;IZ)V" />
-		<method name="onServiceAdded(ILandroid/bluetooth/BluetoothGattService;)V" />
-	</class>
-	<class name="android/bluetooth/BluetoothGattService" since="18">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/util/UUID;I)V" />
-		<method name="addCharacteristic(Landroid/bluetooth/BluetoothGattCharacteristic;)Z" />
-		<method name="addService(Landroid/bluetooth/BluetoothGattService;)Z" />
-		<method name="getCharacteristic(Ljava/util/UUID;)Landroid/bluetooth/BluetoothGattCharacteristic;" />
-		<method name="getCharacteristics()Ljava/util/List;" />
-		<method name="getIncludedServices()Ljava/util/List;" />
-		<method name="getInstanceId()I" />
-		<method name="getType()I" />
-		<method name="getUuid()Ljava/util/UUID;" />
-		<field name="SERVICE_TYPE_PRIMARY" />
-		<field name="SERVICE_TYPE_SECONDARY" />
-		<field name="mCharacteristics" />
-		<field name="mIncludedServices" />
-	</class>
-	<class name="android/bluetooth/BluetoothHeadset" since="11">
-		<extends name="java/lang/Object" />
-		<implements name="android/bluetooth/BluetoothProfile" />
-		<method name="&lt;init>()V" />
-		<method name="isAudioConnected(Landroid/bluetooth/BluetoothDevice;)Z" />
-		<method name="sendVendorSpecificResultCode(Landroid/bluetooth/BluetoothDevice;Ljava/lang/String;Ljava/lang/String;)Z" since="19" />
-		<method name="startVoiceRecognition(Landroid/bluetooth/BluetoothDevice;)Z" />
-		<method name="stopVoiceRecognition(Landroid/bluetooth/BluetoothDevice;)Z" />
-		<field name="ACTION_AUDIO_STATE_CHANGED" />
-		<field name="ACTION_CONNECTION_STATE_CHANGED" />
-		<field name="ACTION_VENDOR_SPECIFIC_HEADSET_EVENT" />
-		<field name="AT_CMD_TYPE_ACTION" />
-		<field name="AT_CMD_TYPE_BASIC" />
-		<field name="AT_CMD_TYPE_READ" />
-		<field name="AT_CMD_TYPE_SET" />
-		<field name="AT_CMD_TYPE_TEST" />
-		<field name="EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_ARGS" />
-		<field name="EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD" />
-		<field name="EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE" />
-		<field name="STATE_AUDIO_CONNECTED" />
-		<field name="STATE_AUDIO_CONNECTING" />
-		<field name="STATE_AUDIO_DISCONNECTED" />
-		<field name="VENDOR_RESULT_CODE_COMMAND_ANDROID" since="19" />
-		<field name="VENDOR_SPECIFIC_HEADSET_EVENT_COMPANY_ID_CATEGORY" />
-	</class>
-	<class name="android/bluetooth/BluetoothHealth" since="14">
-		<extends name="java/lang/Object" />
-		<implements name="android/bluetooth/BluetoothProfile" />
-		<method name="&lt;init>()V" />
-		<method name="connectChannelToSource(Landroid/bluetooth/BluetoothDevice;Landroid/bluetooth/BluetoothHealthAppConfiguration;)Z" />
-		<method name="disconnectChannel(Landroid/bluetooth/BluetoothDevice;Landroid/bluetooth/BluetoothHealthAppConfiguration;I)Z" />
-		<method name="getMainChannelFd(Landroid/bluetooth/BluetoothDevice;Landroid/bluetooth/BluetoothHealthAppConfiguration;)Landroid/os/ParcelFileDescriptor;" />
-		<method name="registerSinkAppConfiguration(Ljava/lang/String;ILandroid/bluetooth/BluetoothHealthCallback;)Z" />
-		<method name="unregisterAppConfiguration(Landroid/bluetooth/BluetoothHealthAppConfiguration;)Z" />
-		<field name="APP_CONFIG_REGISTRATION_FAILURE" />
-		<field name="APP_CONFIG_REGISTRATION_SUCCESS" />
-		<field name="APP_CONFIG_UNREGISTRATION_FAILURE" />
-		<field name="APP_CONFIG_UNREGISTRATION_SUCCESS" />
-		<field name="CHANNEL_TYPE_RELIABLE" />
-		<field name="CHANNEL_TYPE_STREAMING" />
-		<field name="SINK_ROLE" />
-		<field name="SOURCE_ROLE" />
-		<field name="STATE_CHANNEL_CONNECTED" />
-		<field name="STATE_CHANNEL_CONNECTING" />
-		<field name="STATE_CHANNEL_DISCONNECTED" />
-		<field name="STATE_CHANNEL_DISCONNECTING" />
-	</class>
-	<class name="android/bluetooth/BluetoothHealthAppConfiguration" since="14">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getDataType()I" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getRole()I" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/bluetooth/BluetoothHealthCallback" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="onHealthAppConfigurationStatusChange(Landroid/bluetooth/BluetoothHealthAppConfiguration;I)V" />
-		<method name="onHealthChannelStateChange(Landroid/bluetooth/BluetoothHealthAppConfiguration;Landroid/bluetooth/BluetoothDevice;IILandroid/os/ParcelFileDescriptor;I)V" />
-	</class>
-	<class name="android/bluetooth/BluetoothManager" since="18">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getAdapter()Landroid/bluetooth/BluetoothAdapter;" />
-		<method name="getConnectedDevices(I)Ljava/util/List;" />
-		<method name="getConnectionState(Landroid/bluetooth/BluetoothDevice;I)I" />
-		<method name="getDevicesMatchingConnectionStates(I[I)Ljava/util/List;" />
-		<method name="openGattServer(Landroid/content/Context;Landroid/bluetooth/BluetoothGattServerCallback;)Landroid/bluetooth/BluetoothGattServer;" />
-	</class>
-	<class name="android/bluetooth/BluetoothProfile" since="11">
-		<extends name="java/lang/Object" />
-		<method name="getConnectedDevices()Ljava/util/List;" />
-		<method name="getConnectionState(Landroid/bluetooth/BluetoothDevice;)I" />
-		<method name="getDevicesMatchingConnectionStates([I)Ljava/util/List;" />
-		<field name="A2DP" />
-		<field name="EXTRA_PREVIOUS_STATE" />
-		<field name="EXTRA_STATE" />
-		<field name="GATT" since="18" />
-		<field name="GATT_SERVER" since="18" />
-		<field name="HEADSET" />
-		<field name="HEALTH" since="14" />
-		<field name="STATE_CONNECTED" />
-		<field name="STATE_CONNECTING" />
-		<field name="STATE_DISCONNECTED" />
-		<field name="STATE_DISCONNECTING" />
-	</class>
-	<class name="android/bluetooth/BluetoothProfile$ServiceListener" since="11">
-		<extends name="java/lang/Object" />
-		<method name="onServiceConnected(ILandroid/bluetooth/BluetoothProfile;)V" />
-		<method name="onServiceDisconnected(I)V" />
-	</class>
-	<class name="android/bluetooth/BluetoothServerSocket" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Closeable" />
-		<method name="&lt;init>()V" />
-		<method name="accept()Landroid/bluetooth/BluetoothSocket;" />
-		<method name="accept(I)Landroid/bluetooth/BluetoothSocket;" />
-	</class>
-	<class name="android/bluetooth/BluetoothSocket" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Closeable" />
-		<method name="&lt;init>()V" />
-		<method name="connect()V" />
-		<method name="getInputStream()Ljava/io/InputStream;" />
-		<method name="getOutputStream()Ljava/io/OutputStream;" />
-		<method name="getRemoteDevice()Landroid/bluetooth/BluetoothDevice;" />
-		<method name="isConnected()Z" since="14" />
-	</class>
-	<class name="android/bluetooth/le/AdvertiseCallback" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="onFailure(I)V" />
-		<method name="onSuccess(Landroid/bluetooth/le/AdvertiseSettings;)V" />
-		<field name="ADVERTISE_FAILED_ALREADY_STARTED" />
-		<field name="ADVERTISE_FAILED_CONTROLLER_FAILURE" />
-		<field name="ADVERTISE_FAILED_NOT_STARTED" />
-		<field name="ADVERTISE_FAILED_SERVICE_UNKNOWN" />
-		<field name="ADVERTISE_FAILED_TOO_MANY_ADVERTISERS" />
-	</class>
-	<class name="android/bluetooth/le/AdvertiseSettings" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getMode()I" />
-		<method name="getTxPowerLevel()I" />
-		<method name="getType()I" />
-		<field name="ADVERTISE_MODE_BALANCED" />
-		<field name="ADVERTISE_MODE_LOW_LATENCY" />
-		<field name="ADVERTISE_MODE_LOW_POWER" />
-		<field name="ADVERTISE_TX_POWER_HIGH" />
-		<field name="ADVERTISE_TX_POWER_LOW" />
-		<field name="ADVERTISE_TX_POWER_MEDIUM" />
-		<field name="ADVERTISE_TX_POWER_ULTRA_LOW" />
-		<field name="ADVERTISE_TYPE_CONNECTABLE" />
-		<field name="ADVERTISE_TYPE_NON_CONNECTABLE" />
-		<field name="ADVERTISE_TYPE_SCANNABLE" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/bluetooth/le/AdvertiseSettings$Builder" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="build()Landroid/bluetooth/le/AdvertiseSettings;" />
-		<method name="setAdvertiseMode(I)Landroid/bluetooth/le/AdvertiseSettings$Builder;" />
-		<method name="setTxPowerLevel(I)Landroid/bluetooth/le/AdvertiseSettings$Builder;" />
-		<method name="setType(I)Landroid/bluetooth/le/AdvertiseSettings$Builder;" />
-	</class>
-	<class name="android/bluetooth/le/AdvertisementData" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getIncludeTxPowerLevel()Z" />
-		<method name="getManufacturerId()I" />
-		<method name="getManufacturerSpecificData()[B" />
-		<method name="getServiceData()[B" />
-		<method name="getServiceDataUuid()Landroid/os/ParcelUuid;" />
-		<method name="getServiceUuids()Ljava/util/List;" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/bluetooth/le/AdvertisementData$Builder" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="build()Landroid/bluetooth/le/AdvertisementData;" />
-		<method name="setIncludeTxPowerLevel(Z)Landroid/bluetooth/le/AdvertisementData$Builder;" />
-		<method name="setManufacturerData(I[B)Landroid/bluetooth/le/AdvertisementData$Builder;" />
-		<method name="setServiceData(Landroid/os/ParcelUuid;[B)Landroid/bluetooth/le/AdvertisementData$Builder;" />
-		<method name="setServiceUuids(Ljava/util/List;)Landroid/bluetooth/le/AdvertisementData$Builder;" />
-	</class>
-	<class name="android/bluetooth/le/BluetoothLeAdvertiser" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="startAdvertising(Landroid/bluetooth/le/AdvertiseSettings;Landroid/bluetooth/le/AdvertisementData;Landroid/bluetooth/le/AdvertiseCallback;)V" />
-		<method name="startAdvertising(Landroid/bluetooth/le/AdvertiseSettings;Landroid/bluetooth/le/AdvertisementData;Landroid/bluetooth/le/AdvertisementData;Landroid/bluetooth/le/AdvertiseCallback;)V" />
-		<method name="stopAdvertising(Landroid/bluetooth/le/AdvertiseCallback;)V" />
-	</class>
-	<class name="android/bluetooth/le/BluetoothLeScanner" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="startScan(Ljava/util/List;Landroid/bluetooth/le/ScanSettings;Landroid/bluetooth/le/ScanCallback;)V" />
-		<method name="stopScan(Landroid/bluetooth/le/ScanCallback;)V" />
-	</class>
-	<class name="android/bluetooth/le/ScanCallback" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="onAdvertisementUpdate(Landroid/bluetooth/le/ScanResult;)V" />
-		<method name="onScanFailed(I)V" />
-		<field name="SCAN_FAILED_ALREADY_STARTED" />
-		<field name="SCAN_FAILED_APPLICATION_REGISTRATION_FAILED" />
-		<field name="SCAN_FAILED_CONTROLLER_FAILURE" />
-		<field name="SCAN_FAILED_GATT_SERVICE_FAILURE" />
-	</class>
-	<class name="android/bluetooth/le/ScanFilter" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getDeviceAddress()Ljava/lang/String;" />
-		<method name="getLocalName()Ljava/lang/String;" />
-		<method name="getManufacturerData()[B" />
-		<method name="getManufacturerDataMask()[B" />
-		<method name="getManufacturerId()I" />
-		<method name="getMaxRssi()I" />
-		<method name="getMinRssi()I" />
-		<method name="getServiceData()[B" />
-		<method name="getServiceDataMask()[B" />
-		<method name="getServiceUuid()Landroid/os/ParcelUuid;" />
-		<method name="getServiceUuidMask()Landroid/os/ParcelUuid;" />
-		<method name="matches(Landroid/bluetooth/le/ScanResult;)Z" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/bluetooth/le/ScanFilter$Builder" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="build()Landroid/bluetooth/le/ScanFilter;" />
-		<method name="setMacAddress(Ljava/lang/String;)Landroid/bluetooth/le/ScanFilter$Builder;" />
-		<method name="setManufacturerData(I[B)Landroid/bluetooth/le/ScanFilter$Builder;" />
-		<method name="setManufacturerData(I[B[B)Landroid/bluetooth/le/ScanFilter$Builder;" />
-		<method name="setName(Ljava/lang/String;)Landroid/bluetooth/le/ScanFilter$Builder;" />
-		<method name="setRssiRange(II)Landroid/bluetooth/le/ScanFilter$Builder;" />
-		<method name="setServiceData([B)Landroid/bluetooth/le/ScanFilter$Builder;" />
-		<method name="setServiceData([B[B)Landroid/bluetooth/le/ScanFilter$Builder;" />
-		<method name="setServiceUuid(Landroid/os/ParcelUuid;)Landroid/bluetooth/le/ScanFilter$Builder;" />
-		<method name="setServiceUuid(Landroid/os/ParcelUuid;Landroid/os/ParcelUuid;)Landroid/bluetooth/le/ScanFilter$Builder;" />
-	</class>
-	<class name="android/bluetooth/le/ScanRecord" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getAdvertiseFlags()I" />
-		<method name="getLocalName()Ljava/lang/String;" />
-		<method name="getManufacturerId()I" />
-		<method name="getManufacturerSpecificData()[B" />
-		<method name="getServiceData()[B" />
-		<method name="getServiceDataUuid()Landroid/os/ParcelUuid;" />
-		<method name="getServiceUuids()Ljava/util/List;" />
-		<method name="getTxPowerLevel()I" />
-		<method name="parseFromBytes([B)Landroid/bluetooth/le/ScanRecord;" />
-	</class>
-	<class name="android/bluetooth/le/ScanResult" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getDevice()Landroid/bluetooth/BluetoothDevice;" />
-		<method name="getRssi()I" />
-		<method name="getScanRecord()[B" />
-		<method name="getTimestampNanos()J" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/bluetooth/le/ScanSettings" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getCallbackType()I" />
-		<method name="getReportDelayNanos()J" />
-		<method name="getScanMode()I" />
-		<method name="getScanResultType()I" />
-		<field name="CALLBACK_TYPE_ON_UPDATE" />
-		<field name="CREATOR" />
-		<field name="SCAN_MODE_BALANCED" />
-		<field name="SCAN_MODE_LOW_LATENCY" />
-		<field name="SCAN_MODE_LOW_POWER" />
-		<field name="SCAN_RESULT_TYPE_FULL" />
-	</class>
-	<class name="android/bluetooth/le/ScanSettings$Builder" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="build()Landroid/bluetooth/le/ScanSettings;" />
-		<method name="setCallbackType(I)Landroid/bluetooth/le/ScanSettings$Builder;" />
-		<method name="setReportDelayNanos(J)Landroid/bluetooth/le/ScanSettings$Builder;" />
-		<method name="setScanMode(I)Landroid/bluetooth/le/ScanSettings$Builder;" />
-	</class>
-	<class name="android/content/AbstractThreadedSyncAdapter" since="5">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Context;Z)V" />
-		<method name="&lt;init>(Landroid/content/Context;ZZ)V" since="11" />
-		<method name="getContext()Landroid/content/Context;" />
-		<method name="getSyncAdapterBinder()Landroid/os/IBinder;" />
-		<method name="onPerformSync(Landroid/accounts/Account;Landroid/os/Bundle;Ljava/lang/String;Landroid/content/ContentProviderClient;Landroid/content/SyncResult;)V" />
-		<method name="onSyncCanceled()V" since="8" />
-		<method name="onSyncCanceled(Ljava/lang/Thread;)V" since="11" />
-		<field name="LOG_SYNC_DETAILS" />
-	</class>
-	<class name="android/content/ActivityNotFoundException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/content/AsyncQueryHandler" since="1">
-		<extends name="android/os/Handler" />
-		<method name="&lt;init>(Landroid/content/ContentResolver;)V" />
-		<method name="cancelOperation(I)V" />
-		<method name="createHandler(Landroid/os/Looper;)Landroid/os/Handler;" />
-		<method name="onDeleteComplete(ILjava/lang/Object;I)V" />
-		<method name="onInsertComplete(ILjava/lang/Object;Landroid/net/Uri;)V" />
-		<method name="onQueryComplete(ILjava/lang/Object;Landroid/database/Cursor;)V" />
-		<method name="onUpdateComplete(ILjava/lang/Object;I)V" />
-		<method name="startDelete(ILjava/lang/Object;Landroid/net/Uri;Ljava/lang/String;[Ljava/lang/String;)V" />
-		<method name="startInsert(ILjava/lang/Object;Landroid/net/Uri;Landroid/content/ContentValues;)V" />
-		<method name="startQuery(ILjava/lang/Object;Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="startUpdate(ILjava/lang/Object;Landroid/net/Uri;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)V" />
-	</class>
-	<class name="android/content/AsyncQueryHandler$WorkerArgs" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="cookie" />
-		<field name="handler" />
-		<field name="orderBy" />
-		<field name="projection" />
-		<field name="result" />
-		<field name="selection" />
-		<field name="selectionArgs" />
-		<field name="uri" />
-		<field name="values" />
-	</class>
-	<class name="android/content/AsyncQueryHandler$WorkerHandler" since="1">
-		<extends name="android/os/Handler" />
-		<method name="&lt;init>(Landroid/content/AsyncQueryHandler;Landroid/os/Looper;)V" />
-	</class>
-	<class name="android/content/AsyncTaskLoader" since="11">
-		<extends name="android/content/Loader" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="cancelLoad()Z" />
-		<method name="cancelLoadInBackground()V" since="16" />
-		<method name="isLoadInBackgroundCanceled()Z" since="16" />
-		<method name="loadInBackground()Ljava/lang/Object;" />
-		<method name="onCanceled(Ljava/lang/Object;)V" />
-		<method name="onLoadInBackground()Ljava/lang/Object;" />
-		<method name="setUpdateThrottle(J)V" />
-	</class>
-	<class name="android/content/BroadcastReceiver" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="abortBroadcast()V" />
-		<method name="clearAbortBroadcast()V" />
-		<method name="getAbortBroadcast()Z" />
-		<method name="getDebugUnregister()Z" />
-		<method name="getResultCode()I" />
-		<method name="getResultData()Ljava/lang/String;" />
-		<method name="getResultExtras(Z)Landroid/os/Bundle;" />
-		<method name="goAsync()Landroid/content/BroadcastReceiver$PendingResult;" since="11" />
-		<method name="isInitialStickyBroadcast()Z" since="5" />
-		<method name="isOrderedBroadcast()Z" since="5" />
-		<method name="onReceive(Landroid/content/Context;Landroid/content/Intent;)V" />
-		<method name="peekService(Landroid/content/Context;Landroid/content/Intent;)Landroid/os/IBinder;" since="3" />
-		<method name="setDebugUnregister(Z)V" />
-		<method name="setOrderedHint(Z)V" />
-		<method name="setResult(ILjava/lang/String;Landroid/os/Bundle;)V" />
-		<method name="setResultCode(I)V" />
-		<method name="setResultData(Ljava/lang/String;)V" />
-		<method name="setResultExtras(Landroid/os/Bundle;)V" />
-	</class>
-	<class name="android/content/BroadcastReceiver$PendingResult" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="abortBroadcast()V" />
-		<method name="clearAbortBroadcast()V" />
-		<method name="finish()V" />
-		<method name="getAbortBroadcast()Z" />
-		<method name="getResultCode()I" />
-		<method name="getResultData()Ljava/lang/String;" />
-		<method name="getResultExtras(Z)Landroid/os/Bundle;" />
-		<method name="setResult(ILjava/lang/String;Landroid/os/Bundle;)V" />
-		<method name="setResultCode(I)V" />
-		<method name="setResultData(Ljava/lang/String;)V" />
-		<method name="setResultExtras(Landroid/os/Bundle;)V" />
-	</class>
-	<class name="android/content/ClipData" since="11">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(Landroid/content/ClipData;)V" since="16" />
-		<method name="&lt;init>(Landroid/content/ClipDescription;Landroid/content/ClipData$Item;)V" />
-		<method name="&lt;init>(Ljava/lang/CharSequence;[Ljava/lang/String;Landroid/content/ClipData$Item;)V" />
-		<method name="addItem(Landroid/content/ClipData$Item;)V" />
-		<method name="getDescription()Landroid/content/ClipDescription;" />
-		<method name="getItemAt(I)Landroid/content/ClipData$Item;" />
-		<method name="getItemCount()I" />
-		<method name="newHtmlText(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/String;)Landroid/content/ClipData;" since="16" />
-		<method name="newIntent(Ljava/lang/CharSequence;Landroid/content/Intent;)Landroid/content/ClipData;" />
-		<method name="newPlainText(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Landroid/content/ClipData;" />
-		<method name="newRawUri(Ljava/lang/CharSequence;Landroid/net/Uri;)Landroid/content/ClipData;" />
-		<method name="newUri(Landroid/content/ContentResolver;Ljava/lang/CharSequence;Landroid/net/Uri;)Landroid/content/ClipData;" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/content/ClipData$Item" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Intent;)V" />
-		<method name="&lt;init>(Landroid/net/Uri;)V" />
-		<method name="&lt;init>(Ljava/lang/CharSequence;)V" />
-		<method name="&lt;init>(Ljava/lang/CharSequence;Landroid/content/Intent;Landroid/net/Uri;)V" />
-		<method name="&lt;init>(Ljava/lang/CharSequence;Ljava/lang/String;)V" since="16" />
-		<method name="&lt;init>(Ljava/lang/CharSequence;Ljava/lang/String;Landroid/content/Intent;Landroid/net/Uri;)V" since="16" />
-		<method name="coerceToHtmlText(Landroid/content/Context;)Ljava/lang/String;" since="16" />
-		<method name="coerceToStyledText(Landroid/content/Context;)Ljava/lang/CharSequence;" since="16" />
-		<method name="coerceToText(Landroid/content/Context;)Ljava/lang/CharSequence;" />
-		<method name="getHtmlText()Ljava/lang/String;" since="16" />
-		<method name="getIntent()Landroid/content/Intent;" />
-		<method name="getText()Ljava/lang/CharSequence;" />
-		<method name="getUri()Landroid/net/Uri;" />
-	</class>
-	<class name="android/content/ClipDescription" since="11">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(Landroid/content/ClipDescription;)V" />
-		<method name="&lt;init>(Ljava/lang/CharSequence;[Ljava/lang/String;)V" />
-		<method name="compareMimeTypes(Ljava/lang/String;Ljava/lang/String;)Z" />
-		<method name="filterMimeTypes(Ljava/lang/String;)[Ljava/lang/String;" />
-		<method name="getLabel()Ljava/lang/CharSequence;" />
-		<method name="getMimeType(I)Ljava/lang/String;" />
-		<method name="getMimeTypeCount()I" />
-		<method name="hasMimeType(Ljava/lang/String;)Z" />
-		<field name="CREATOR" />
-		<field name="MIMETYPE_TEXT_HTML" since="16" />
-		<field name="MIMETYPE_TEXT_INTENT" />
-		<field name="MIMETYPE_TEXT_PLAIN" />
-		<field name="MIMETYPE_TEXT_URILIST" />
-	</class>
-	<class name="android/content/ClipboardManager" since="11">
-		<extends name="android/text/ClipboardManager" />
-		<method name="&lt;init>()V" />
-		<method name="addPrimaryClipChangedListener(Landroid/content/ClipboardManager$OnPrimaryClipChangedListener;)V" />
-		<method name="getPrimaryClip()Landroid/content/ClipData;" />
-		<method name="getPrimaryClipDescription()Landroid/content/ClipDescription;" />
-		<method name="hasPrimaryClip()Z" />
-		<method name="removePrimaryClipChangedListener(Landroid/content/ClipboardManager$OnPrimaryClipChangedListener;)V" />
-		<method name="setPrimaryClip(Landroid/content/ClipData;)V" />
-	</class>
-	<class name="android/content/ClipboardManager$OnPrimaryClipChangedListener" since="11">
-		<extends name="java/lang/Object" />
-		<method name="onPrimaryClipChanged()V" />
-	</class>
-	<class name="android/content/ComponentCallbacks" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onConfigurationChanged(Landroid/content/res/Configuration;)V" />
-		<method name="onLowMemory()V" />
-	</class>
-	<class name="android/content/ComponentCallbacks2" since="14">
-		<extends name="java/lang/Object" />
-		<implements name="android/content/ComponentCallbacks" />
-		<method name="onTrimMemory(I)V" />
-		<field name="TRIM_MEMORY_BACKGROUND" />
-		<field name="TRIM_MEMORY_COMPLETE" />
-		<field name="TRIM_MEMORY_MODERATE" />
-		<field name="TRIM_MEMORY_RUNNING_CRITICAL" since="16" />
-		<field name="TRIM_MEMORY_RUNNING_LOW" since="16" />
-		<field name="TRIM_MEMORY_RUNNING_MODERATE" since="16" />
-		<field name="TRIM_MEMORY_UI_HIDDEN" />
-	</class>
-	<class name="android/content/ComponentName" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<implements name="java/lang/Cloneable" since="8" />
-		<implements name="java/lang/Comparable" since="4" />
-		<method name="&lt;init>(Landroid/content/Context;Ljava/lang/Class;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="clone()Landroid/content/ComponentName;" since="8" />
-		<method name="compareTo(Landroid/content/ComponentName;)I" since="4" />
-		<method name="flattenToShortString()Ljava/lang/String;" />
-		<method name="flattenToString()Ljava/lang/String;" />
-		<method name="getClassName()Ljava/lang/String;" />
-		<method name="getPackageName()Ljava/lang/String;" />
-		<method name="getShortClassName()Ljava/lang/String;" />
-		<method name="readFromParcel(Landroid/os/Parcel;)Landroid/content/ComponentName;" />
-		<method name="toShortString()Ljava/lang/String;" />
-		<method name="unflattenFromString(Ljava/lang/String;)Landroid/content/ComponentName;" />
-		<method name="writeToParcel(Landroid/content/ComponentName;Landroid/os/Parcel;)V" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/content/ContentProvider" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/content/ComponentCallbacks" />
-		<implements name="android/content/ComponentCallbacks2" since="14" />
-		<method name="&lt;init>()V" />
-		<method name="applyBatch(Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult;" since="5" />
-		<method name="attachInfo(Landroid/content/Context;Landroid/content/pm/ProviderInfo;)V" />
-		<method name="bulkInsert(Landroid/net/Uri;[Landroid/content/ContentValues;)I" />
-		<method name="call(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;" since="11" />
-		<method name="canonicalize(Landroid/net/Uri;)Landroid/net/Uri;" since="19" />
-		<method name="delete(Landroid/net/Uri;Ljava/lang/String;[Ljava/lang/String;)I" />
-		<method name="dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V" since="18" />
-		<method name="getCallingPackage()Ljava/lang/String;" since="19" />
-		<method name="getContext()Landroid/content/Context;" />
-		<method name="getPathPermissions()[Landroid/content/pm/PathPermission;" since="4" />
-		<method name="getReadPermission()Ljava/lang/String;" />
-		<method name="getStreamTypes(Landroid/net/Uri;Ljava/lang/String;)[Ljava/lang/String;" since="11" />
-		<method name="getType(Landroid/net/Uri;)Ljava/lang/String;" />
-		<method name="getWritePermission()Ljava/lang/String;" />
-		<method name="insert(Landroid/net/Uri;Landroid/content/ContentValues;)Landroid/net/Uri;" />
-		<method name="isTemporary()Z" />
-		<method name="onCreate()Z" />
-		<method name="openAssetFile(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;" since="3" />
-		<method name="openAssetFile(Landroid/net/Uri;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/content/res/AssetFileDescriptor;" since="19" />
-		<method name="openFile(Landroid/net/Uri;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;" />
-		<method name="openFile(Landroid/net/Uri;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/os/ParcelFileDescriptor;" since="19" />
-		<method name="openFileHelper(Landroid/net/Uri;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;" />
-		<method name="openPipeHelper(Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Ljava/lang/Object;Landroid/content/ContentProvider$PipeDataWriter;)Landroid/os/ParcelFileDescriptor;" since="11" />
-		<method name="openTypedAssetFile(Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;)Landroid/content/res/AssetFileDescriptor;" since="11" />
-		<method name="openTypedAssetFile(Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/CancellationSignal;)Landroid/content/res/AssetFileDescriptor;" since="19" />
-		<method name="query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;" />
-		<method name="query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor;" since="16" />
-		<method name="setPathPermissions([Landroid/content/pm/PathPermission;)V" since="4" />
-		<method name="setReadPermission(Ljava/lang/String;)V" />
-		<method name="setWritePermission(Ljava/lang/String;)V" />
-		<method name="shutdown()V" since="11" />
-		<method name="uncanonicalize(Landroid/net/Uri;)Landroid/net/Uri;" since="19" />
-		<method name="update(Landroid/net/Uri;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I" />
-	</class>
-	<class name="android/content/ContentProvider$PipeDataWriter" since="11">
-		<extends name="java/lang/Object" />
-		<method name="writeDataToPipe(Landroid/os/ParcelFileDescriptor;Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Ljava/lang/Object;)V" />
-	</class>
-	<class name="android/content/ContentProviderClient" since="5">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="applyBatch(Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult;" />
-		<method name="bulkInsert(Landroid/net/Uri;[Landroid/content/ContentValues;)I" />
-		<method name="call(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;" since="17" />
-		<method name="canonicalize(Landroid/net/Uri;)Landroid/net/Uri;" since="19" />
-		<method name="delete(Landroid/net/Uri;Ljava/lang/String;[Ljava/lang/String;)I" />
-		<method name="getLocalContentProvider()Landroid/content/ContentProvider;" />
-		<method name="getStreamTypes(Landroid/net/Uri;Ljava/lang/String;)[Ljava/lang/String;" since="11" />
-		<method name="getType(Landroid/net/Uri;)Ljava/lang/String;" />
-		<method name="insert(Landroid/net/Uri;Landroid/content/ContentValues;)Landroid/net/Uri;" />
-		<method name="openAssetFile(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;" />
-		<method name="openAssetFile(Landroid/net/Uri;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/content/res/AssetFileDescriptor;" since="19" />
-		<method name="openFile(Landroid/net/Uri;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;" />
-		<method name="openFile(Landroid/net/Uri;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/os/ParcelFileDescriptor;" since="19" />
-		<method name="openTypedAssetFileDescriptor(Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;)Landroid/content/res/AssetFileDescriptor;" since="11" />
-		<method name="openTypedAssetFileDescriptor(Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/CancellationSignal;)Landroid/content/res/AssetFileDescriptor;" since="19" />
-		<method name="query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;" />
-		<method name="query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor;" since="16" />
-		<method name="release()Z" />
-		<method name="uncanonicalize(Landroid/net/Uri;)Landroid/net/Uri;" since="19" />
-		<method name="update(Landroid/net/Uri;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I" />
-	</class>
-	<class name="android/content/ContentProviderOperation" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="apply(Landroid/content/ContentProvider;[Landroid/content/ContentProviderResult;I)Landroid/content/ContentProviderResult;" />
-		<method name="getUri()Landroid/net/Uri;" />
-		<method name="isReadOperation()Z" />
-		<method name="isWriteOperation()Z" />
-		<method name="isYieldAllowed()Z" />
-		<method name="newAssertQuery(Landroid/net/Uri;)Landroid/content/ContentProviderOperation$Builder;" />
-		<method name="newDelete(Landroid/net/Uri;)Landroid/content/ContentProviderOperation$Builder;" />
-		<method name="newInsert(Landroid/net/Uri;)Landroid/content/ContentProviderOperation$Builder;" />
-		<method name="newUpdate(Landroid/net/Uri;)Landroid/content/ContentProviderOperation$Builder;" />
-		<method name="resolveSelectionArgsBackReferences([Landroid/content/ContentProviderResult;I)[Ljava/lang/String;" />
-		<method name="resolveValueBackReferences([Landroid/content/ContentProviderResult;I)Landroid/content/ContentValues;" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/content/ContentProviderOperation$Builder" since="5">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="build()Landroid/content/ContentProviderOperation;" />
-		<method name="withExpectedCount(I)Landroid/content/ContentProviderOperation$Builder;" />
-		<method name="withSelection(Ljava/lang/String;[Ljava/lang/String;)Landroid/content/ContentProviderOperation$Builder;" />
-		<method name="withSelectionBackReference(II)Landroid/content/ContentProviderOperation$Builder;" />
-		<method name="withValue(Ljava/lang/String;Ljava/lang/Object;)Landroid/content/ContentProviderOperation$Builder;" />
-		<method name="withValueBackReference(Ljava/lang/String;I)Landroid/content/ContentProviderOperation$Builder;" />
-		<method name="withValueBackReferences(Landroid/content/ContentValues;)Landroid/content/ContentProviderOperation$Builder;" />
-		<method name="withValues(Landroid/content/ContentValues;)Landroid/content/ContentProviderOperation$Builder;" />
-		<method name="withYieldAllowed(Z)Landroid/content/ContentProviderOperation$Builder;" />
-	</class>
-	<class name="android/content/ContentProviderResult" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(Landroid/net/Uri;)V" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" />
-		<field name="CREATOR" />
-		<field name="count" />
-		<field name="uri" />
-	</class>
-	<class name="android/content/ContentQueryMap" since="1">
-		<extends name="java/util/Observable" />
-		<method name="&lt;init>(Landroid/database/Cursor;Ljava/lang/String;ZLandroid/os/Handler;)V" />
-		<method name="close()V" />
-		<method name="getRows()Ljava/util/Map;" />
-		<method name="getValues(Ljava/lang/String;)Landroid/content/ContentValues;" />
-		<method name="requery()V" />
-		<method name="setKeepUpdated(Z)V" />
-	</class>
-	<class name="android/content/ContentResolver" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="acquireContentProviderClient(Landroid/net/Uri;)Landroid/content/ContentProviderClient;" since="5" />
-		<method name="acquireContentProviderClient(Ljava/lang/String;)Landroid/content/ContentProviderClient;" since="5" />
-		<method name="acquireUnstableContentProviderClient(Landroid/net/Uri;)Landroid/content/ContentProviderClient;" since="16" />
-		<method name="acquireUnstableContentProviderClient(Ljava/lang/String;)Landroid/content/ContentProviderClient;" since="16" />
-		<method name="addPeriodicSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;J)V" since="8" />
-		<method name="addStatusChangeListener(ILandroid/content/SyncStatusObserver;)Ljava/lang/Object;" since="5" />
-		<method name="applyBatch(Ljava/lang/String;Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult;" since="5" />
-		<method name="bulkInsert(Landroid/net/Uri;[Landroid/content/ContentValues;)I" />
-		<method name="call(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;" since="11" />
-		<method name="cancelSync(Landroid/accounts/Account;Ljava/lang/String;)V" since="5" />
-		<method name="cancelSync(Landroid/content/SyncRequest;)V" since="21" />
-		<method name="cancelSync(Landroid/net/Uri;)V" />
-		<method name="canonicalize(Landroid/net/Uri;)Landroid/net/Uri;" since="19" />
-		<method name="delete(Landroid/net/Uri;Ljava/lang/String;[Ljava/lang/String;)I" />
-		<method name="getCurrentSync()Landroid/content/SyncInfo;" since="8" />
-		<method name="getCurrentSyncs()Ljava/util/List;" since="11" />
-		<method name="getIsSyncable(Landroid/accounts/Account;Ljava/lang/String;)I" since="5" />
-		<method name="getMasterSyncAutomatically()Z" since="5" />
-		<method name="getOutgoingPersistedUriPermissions()Ljava/util/List;" since="19" />
-		<method name="getPeriodicSyncs(Landroid/accounts/Account;Ljava/lang/String;)Ljava/util/List;" since="8" />
-		<method name="getPersistedUriPermissions()Ljava/util/List;" since="19" />
-		<method name="getStreamTypes(Landroid/net/Uri;Ljava/lang/String;)[Ljava/lang/String;" since="11" />
-		<method name="getSyncAdapterTypes()[Landroid/content/SyncAdapterType;" since="5" />
-		<method name="getSyncAutomatically(Landroid/accounts/Account;Ljava/lang/String;)Z" since="5" />
-		<method name="getType(Landroid/net/Uri;)Ljava/lang/String;" />
-		<method name="insert(Landroid/net/Uri;Landroid/content/ContentValues;)Landroid/net/Uri;" />
-		<method name="isSyncActive(Landroid/accounts/Account;Ljava/lang/String;)Z" since="5" />
-		<method name="isSyncPending(Landroid/accounts/Account;Ljava/lang/String;)Z" since="5" />
-		<method name="notifyChange(Landroid/net/Uri;Landroid/database/ContentObserver;)V" />
-		<method name="notifyChange(Landroid/net/Uri;Landroid/database/ContentObserver;Z)V" />
-		<method name="openAssetFileDescriptor(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;" since="3" />
-		<method name="openAssetFileDescriptor(Landroid/net/Uri;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/content/res/AssetFileDescriptor;" since="19" />
-		<method name="openFileDescriptor(Landroid/net/Uri;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;" />
-		<method name="openFileDescriptor(Landroid/net/Uri;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/os/ParcelFileDescriptor;" since="19" />
-		<method name="openInputStream(Landroid/net/Uri;)Ljava/io/InputStream;" />
-		<method name="openOutputStream(Landroid/net/Uri;)Ljava/io/OutputStream;" />
-		<method name="openOutputStream(Landroid/net/Uri;Ljava/lang/String;)Ljava/io/OutputStream;" since="3" />
-		<method name="openTypedAssetFileDescriptor(Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;)Landroid/content/res/AssetFileDescriptor;" since="11" />
-		<method name="openTypedAssetFileDescriptor(Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/CancellationSignal;)Landroid/content/res/AssetFileDescriptor;" since="19" />
-		<method name="query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;" />
-		<method name="query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor;" since="16" />
-		<method name="registerContentObserver(Landroid/net/Uri;ZLandroid/database/ContentObserver;)V" />
-		<method name="releasePersistableUriPermission(Landroid/net/Uri;I)V" since="19" />
-		<method name="removePeriodicSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)V" since="8" />
-		<method name="removeStatusChangeListener(Ljava/lang/Object;)V" since="5" />
-		<method name="requestSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)V" since="5" />
-		<method name="requestSync(Landroid/content/SyncRequest;)V" since="19" />
-		<method name="setIsSyncable(Landroid/accounts/Account;Ljava/lang/String;I)V" since="5" />
-		<method name="setMasterSyncAutomatically(Z)V" since="5" />
-		<method name="setSyncAutomatically(Landroid/accounts/Account;Ljava/lang/String;Z)V" since="5" />
-		<method name="startSync(Landroid/net/Uri;Landroid/os/Bundle;)V" />
-		<method name="takePersistableUriPermission(Landroid/net/Uri;I)V" since="19" />
-		<method name="uncanonicalize(Landroid/net/Uri;)Landroid/net/Uri;" since="19" />
-		<method name="unregisterContentObserver(Landroid/database/ContentObserver;)V" />
-		<method name="update(Landroid/net/Uri;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I" />
-		<method name="validateSyncExtrasBundle(Landroid/os/Bundle;)V" />
-		<field name="ANY_CURSOR_ITEM_TYPE" since="21" />
-		<field name="CURSOR_DIR_BASE_TYPE" />
-		<field name="CURSOR_ITEM_BASE_TYPE" />
-		<field name="SCHEME_ANDROID_RESOURCE" />
-		<field name="SCHEME_CONTENT" />
-		<field name="SCHEME_FILE" />
-		<field name="SYNC_EXTRAS_ACCOUNT" />
-		<field name="SYNC_EXTRAS_DISCARD_LOCAL_DELETIONS" />
-		<field name="SYNC_EXTRAS_DO_NOT_RETRY" since="8" />
-		<field name="SYNC_EXTRAS_EXPEDITED" />
-		<field name="SYNC_EXTRAS_FORCE" />
-		<field name="SYNC_EXTRAS_IGNORE_BACKOFF" since="8" />
-		<field name="SYNC_EXTRAS_IGNORE_SETTINGS" since="8" />
-		<field name="SYNC_EXTRAS_INITIALIZE" since="5" />
-		<field name="SYNC_EXTRAS_MANUAL" since="5" />
-		<field name="SYNC_EXTRAS_OVERRIDE_TOO_MANY_DELETIONS" />
-		<field name="SYNC_EXTRAS_UPLOAD" />
-		<field name="SYNC_OBSERVER_TYPE_ACTIVE" since="8" />
-		<field name="SYNC_OBSERVER_TYPE_PENDING" since="8" />
-		<field name="SYNC_OBSERVER_TYPE_SETTINGS" since="8" />
-	</class>
-	<class name="android/content/ContentUris" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="appendId(Landroid/net/Uri$Builder;J)Landroid/net/Uri$Builder;" />
-		<method name="parseId(Landroid/net/Uri;)J" />
-		<method name="withAppendedId(Landroid/net/Uri;J)Landroid/net/Uri;" />
-	</class>
-	<class name="android/content/ContentValues" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(Landroid/content/ContentValues;)V" />
-		<method name="clear()V" />
-		<method name="containsKey(Ljava/lang/String;)Z" />
-		<method name="get(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="getAsBoolean(Ljava/lang/String;)Ljava/lang/Boolean;" />
-		<method name="getAsByte(Ljava/lang/String;)Ljava/lang/Byte;" />
-		<method name="getAsByteArray(Ljava/lang/String;)[B" />
-		<method name="getAsDouble(Ljava/lang/String;)Ljava/lang/Double;" />
-		<method name="getAsFloat(Ljava/lang/String;)Ljava/lang/Float;" />
-		<method name="getAsInteger(Ljava/lang/String;)Ljava/lang/Integer;" />
-		<method name="getAsLong(Ljava/lang/String;)Ljava/lang/Long;" />
-		<method name="getAsShort(Ljava/lang/String;)Ljava/lang/Short;" />
-		<method name="getAsString(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="keySet()Ljava/util/Set;" since="11" />
-		<method name="put(Ljava/lang/String;Ljava/lang/Boolean;)V" />
-		<method name="put(Ljava/lang/String;Ljava/lang/Byte;)V" />
-		<method name="put(Ljava/lang/String;Ljava/lang/Double;)V" />
-		<method name="put(Ljava/lang/String;Ljava/lang/Float;)V" />
-		<method name="put(Ljava/lang/String;Ljava/lang/Integer;)V" />
-		<method name="put(Ljava/lang/String;Ljava/lang/Long;)V" />
-		<method name="put(Ljava/lang/String;Ljava/lang/Short;)V" />
-		<method name="put(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="put(Ljava/lang/String;[B)V" />
-		<method name="putAll(Landroid/content/ContentValues;)V" />
-		<method name="putNull(Ljava/lang/String;)V" />
-		<method name="remove(Ljava/lang/String;)V" />
-		<method name="size()I" />
-		<method name="valueSet()Ljava/util/Set;" />
-		<field name="CREATOR" />
-		<field name="TAG" />
-	</class>
-	<class name="android/content/Context" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="bindService(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z" />
-		<method name="checkCallingOrSelfPermission(Ljava/lang/String;)I" />
-		<method name="checkCallingOrSelfUriPermission(Landroid/net/Uri;I)I" />
-		<method name="checkCallingPermission(Ljava/lang/String;)I" />
-		<method name="checkCallingUriPermission(Landroid/net/Uri;I)I" />
-		<method name="checkPermission(Ljava/lang/String;II)I" />
-		<method name="checkUriPermission(Landroid/net/Uri;III)I" />
-		<method name="checkUriPermission(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;III)I" />
-		<method name="clearWallpaper()V" />
-		<method name="createConfigurationContext(Landroid/content/res/Configuration;)Landroid/content/Context;" since="17" />
-		<method name="createDisplayContext(Landroid/view/Display;)Landroid/content/Context;" since="17" />
-		<method name="createPackageContext(Ljava/lang/String;I)Landroid/content/Context;" />
-		<method name="databaseList()[Ljava/lang/String;" />
-		<method name="deleteDatabase(Ljava/lang/String;)Z" />
-		<method name="deleteFile(Ljava/lang/String;)Z" />
-		<method name="enforceCallingOrSelfPermission(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="enforceCallingOrSelfUriPermission(Landroid/net/Uri;ILjava/lang/String;)V" />
-		<method name="enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="enforceCallingUriPermission(Landroid/net/Uri;ILjava/lang/String;)V" />
-		<method name="enforcePermission(Ljava/lang/String;IILjava/lang/String;)V" />
-		<method name="enforceUriPermission(Landroid/net/Uri;IIILjava/lang/String;)V" />
-		<method name="enforceUriPermission(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;)V" />
-		<method name="fileList()[Ljava/lang/String;" />
-		<method name="getApplicationContext()Landroid/content/Context;" />
-		<method name="getApplicationInfo()Landroid/content/pm/ApplicationInfo;" since="4" />
-		<method name="getAssets()Landroid/content/res/AssetManager;" />
-		<method name="getCacheDir()Ljava/io/File;" />
-		<method name="getClassLoader()Ljava/lang/ClassLoader;" />
-		<method name="getContentResolver()Landroid/content/ContentResolver;" />
-		<method name="getDatabasePath(Ljava/lang/String;)Ljava/io/File;" />
-		<method name="getDir(Ljava/lang/String;I)Ljava/io/File;" />
-		<method name="getDrawable(I)Landroid/graphics/drawable/Drawable;" since="21" />
-		<method name="getExternalCacheDir()Ljava/io/File;" since="8" />
-		<method name="getExternalCacheDirs()[Ljava/io/File;" since="19" />
-		<method name="getExternalFilesDir(Ljava/lang/String;)Ljava/io/File;" since="8" />
-		<method name="getExternalFilesDirs(Ljava/lang/String;)[Ljava/io/File;" since="19" />
-		<method name="getExternalMediaDirs()[Ljava/io/File;" since="21" />
-		<method name="getFileStreamPath(Ljava/lang/String;)Ljava/io/File;" />
-		<method name="getFilesDir()Ljava/io/File;" />
-		<method name="getMainLooper()Landroid/os/Looper;" />
-		<method name="getObbDir()Ljava/io/File;" since="11" />
-		<method name="getObbDirs()[Ljava/io/File;" since="19" />
-		<method name="getPackageCodePath()Ljava/lang/String;" since="8" />
-		<method name="getPackageManager()Landroid/content/pm/PackageManager;" />
-		<method name="getPackageName()Ljava/lang/String;" />
-		<method name="getPackageResourcePath()Ljava/lang/String;" since="8" />
-		<method name="getResources()Landroid/content/res/Resources;" />
-		<method name="getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences;" />
-		<method name="getString(I)Ljava/lang/String;" />
-		<method name="getString(I[Ljava/lang/Object;)Ljava/lang/String;" />
-		<method name="getSystemService(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="getText(I)Ljava/lang/CharSequence;" />
-		<method name="getTheme()Landroid/content/res/Resources$Theme;" />
-		<method name="getWallpaper()Landroid/graphics/drawable/Drawable;" />
-		<method name="getWallpaperDesiredMinimumHeight()I" />
-		<method name="getWallpaperDesiredMinimumWidth()I" />
-		<method name="grantUriPermission(Ljava/lang/String;Landroid/net/Uri;I)V" />
-		<method name="isRestricted()Z" since="4" />
-		<method name="obtainStyledAttributes(I[I)Landroid/content/res/TypedArray;" />
-		<method name="obtainStyledAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;" />
-		<method name="obtainStyledAttributes(Landroid/util/AttributeSet;[III)Landroid/content/res/TypedArray;" />
-		<method name="obtainStyledAttributes([I)Landroid/content/res/TypedArray;" />
-		<method name="openFileInput(Ljava/lang/String;)Ljava/io/FileInputStream;" />
-		<method name="openFileOutput(Ljava/lang/String;I)Ljava/io/FileOutputStream;" />
-		<method name="openOrCreateDatabase(Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;)Landroid/database/sqlite/SQLiteDatabase;" />
-		<method name="openOrCreateDatabase(Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;Landroid/database/DatabaseErrorHandler;)Landroid/database/sqlite/SQLiteDatabase;" since="11" />
-		<method name="peekWallpaper()Landroid/graphics/drawable/Drawable;" />
-		<method name="registerComponentCallbacks(Landroid/content/ComponentCallbacks;)V" since="14" />
-		<method name="registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;" />
-		<method name="registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent;" />
-		<method name="removeStickyBroadcast(Landroid/content/Intent;)V" />
-		<method name="removeStickyBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)V" since="17" />
-		<method name="revokeUriPermission(Landroid/net/Uri;I)V" />
-		<method name="sendBroadcast(Landroid/content/Intent;)V" />
-		<method name="sendBroadcast(Landroid/content/Intent;Ljava/lang/String;)V" />
-		<method name="sendBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)V" since="17" />
-		<method name="sendBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;)V" since="17" />
-		<method name="sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;)V" />
-		<method name="sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;Landroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V" />
-		<method name="sendOrderedBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;Landroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V" since="17" />
-		<method name="sendStickyBroadcast(Landroid/content/Intent;)V" />
-		<method name="sendStickyBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)V" since="17" />
-		<method name="sendStickyOrderedBroadcast(Landroid/content/Intent;Landroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V" since="5" />
-		<method name="sendStickyOrderedBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Landroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V" since="17" />
-		<method name="setTheme(I)V" />
-		<method name="setWallpaper(Landroid/graphics/Bitmap;)V" />
-		<method name="setWallpaper(Ljava/io/InputStream;)V" />
-		<method name="startActivities([Landroid/content/Intent;)V" since="11" />
-		<method name="startActivities([Landroid/content/Intent;Landroid/os/Bundle;)V" since="16" />
-		<method name="startActivity(Landroid/content/Intent;)V" />
-		<method name="startActivity(Landroid/content/Intent;Landroid/os/Bundle;)V" since="16" />
-		<method name="startInstrumentation(Landroid/content/ComponentName;Ljava/lang/String;Landroid/os/Bundle;)Z" />
-		<method name="startIntentSender(Landroid/content/IntentSender;Landroid/content/Intent;III)V" since="5" />
-		<method name="startIntentSender(Landroid/content/IntentSender;Landroid/content/Intent;IIILandroid/os/Bundle;)V" since="16" />
-		<method name="startService(Landroid/content/Intent;)Landroid/content/ComponentName;" />
-		<method name="stopService(Landroid/content/Intent;)Z" />
-		<method name="unbindService(Landroid/content/ServiceConnection;)V" />
-		<method name="unregisterComponentCallbacks(Landroid/content/ComponentCallbacks;)V" since="14" />
-		<method name="unregisterReceiver(Landroid/content/BroadcastReceiver;)V" />
-		<field name="ACCESSIBILITY_SERVICE" since="4" />
-		<field name="ACCOUNT_SERVICE" since="5" />
-		<field name="ACTIVITY_SERVICE" />
-		<field name="ALARM_SERVICE" />
-		<field name="APP_OPS_SERVICE" since="19" />
-		<field name="AUDIO_SERVICE" />
-		<field name="BATTERY_SERVICE" since="21" />
-		<field name="BIND_ABOVE_CLIENT" since="14" />
-		<field name="BIND_ADJUST_WITH_ACTIVITY" since="14" />
-		<field name="BIND_ALLOW_OOM_MANAGEMENT" since="14" />
-		<field name="BIND_AUTO_CREATE" />
-		<field name="BIND_DEBUG_UNBIND" />
-		<field name="BIND_IMPORTANT" since="14" />
-		<field name="BIND_NOT_FOREGROUND" since="8" />
-		<field name="BIND_WAIVE_PRIORITY" since="14" />
-		<field name="BLUETOOTH_SERVICE" since="18" />
-		<field name="CAMERA_SERVICE" since="21" />
-		<field name="CAPTIONING_SERVICE" since="19" />
-		<field name="CLIPBOARD_SERVICE" />
-		<field name="CONNECTIVITY_SERVICE" />
-		<field name="CONSUMER_IR_SERVICE" since="19" />
-		<field name="CONTEXT_IGNORE_SECURITY" />
-		<field name="CONTEXT_INCLUDE_CODE" />
-		<field name="CONTEXT_RESTRICTED" since="4" />
-		<field name="DEVICE_POLICY_SERVICE" since="8" />
-		<field name="DISPLAY_SERVICE" since="17" />
-		<field name="DOWNLOAD_SERVICE" since="9" />
-		<field name="DROPBOX_SERVICE" since="8" />
-		<field name="INPUT_METHOD_SERVICE" since="3" />
-		<field name="INPUT_SERVICE" since="16" />
-		<field name="JOB_SCHEDULER_SERVICE" since="21" />
-		<field name="KEYGUARD_SERVICE" />
-		<field name="LAUNCHER_APPS_SERVICE" since="21" />
-		<field name="LAYOUT_INFLATER_SERVICE" />
-		<field name="LOCATION_SERVICE" />
-		<field name="MEDIA_ROUTER_SERVICE" since="16" />
-		<field name="MEDIA_SESSION_SERVICE" since="21" />
-		<field name="MODE_APPEND" />
-		<field name="MODE_ENABLE_WRITE_AHEAD_LOGGING" since="16" />
-		<field name="MODE_MULTI_PROCESS" since="11" />
-		<field name="MODE_PRIVATE" />
-		<field name="MODE_WORLD_READABLE" />
-		<field name="MODE_WORLD_WRITEABLE" />
-		<field name="NFC_SERVICE" since="10" />
-		<field name="NOTIFICATION_SERVICE" />
-		<field name="NSD_SERVICE" since="16" />
-		<field name="POWER_SERVICE" />
-		<field name="PRINT_SERVICE" since="19" />
-		<field name="SEARCH_SERVICE" />
-		<field name="SENSOR_SERVICE" />
-		<field name="STORAGE_SERVICE" since="9" />
-		<field name="TELEPHONY_SERVICE" />
-		<field name="TEXT_SERVICES_MANAGER_SERVICE" since="14" />
-		<field name="TV_INPUT_SERVICE" since="21" />
-		<field name="UI_MODE_SERVICE" since="8" />
-		<field name="USB_SERVICE" since="12" />
-		<field name="USER_SERVICE" since="17" />
-		<field name="VIBRATOR_SERVICE" />
-		<field name="WALLPAPER_SERVICE" />
-		<field name="WIFI_P2P_SERVICE" since="14" />
-		<field name="WIFI_SERVICE" />
-		<field name="WINDOW_SERVICE" />
-	</class>
-	<class name="android/content/ContextWrapper" since="1">
-		<extends name="android/content/Context" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="attachBaseContext(Landroid/content/Context;)V" />
-		<method name="getBaseContext()Landroid/content/Context;" />
-		<method name="getPackageCodePath()Ljava/lang/String;" />
-		<method name="getPackageResourcePath()Ljava/lang/String;" />
-	</class>
-	<class name="android/content/CursorLoader" since="11">
-		<extends name="android/content/AsyncTaskLoader" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="deliverResult(Landroid/database/Cursor;)V" />
-		<method name="getProjection()[Ljava/lang/String;" />
-		<method name="getSelection()Ljava/lang/String;" />
-		<method name="getSelectionArgs()[Ljava/lang/String;" />
-		<method name="getSortOrder()Ljava/lang/String;" />
-		<method name="getUri()Landroid/net/Uri;" />
-		<method name="loadInBackground()Landroid/database/Cursor;" />
-		<method name="onCanceled(Landroid/database/Cursor;)V" />
-		<method name="setProjection([Ljava/lang/String;)V" />
-		<method name="setSelection(Ljava/lang/String;)V" />
-		<method name="setSelectionArgs([Ljava/lang/String;)V" />
-		<method name="setSortOrder(Ljava/lang/String;)V" />
-		<method name="setUri(Landroid/net/Uri;)V" />
-	</class>
-	<class name="android/content/DialogInterface" since="1">
-		<extends name="java/lang/Object" />
-		<method name="cancel()V" />
-		<method name="dismiss()V" />
-		<field name="BUTTON1" />
-		<field name="BUTTON2" />
-		<field name="BUTTON3" />
-		<field name="BUTTON_NEGATIVE" since="3" />
-		<field name="BUTTON_NEUTRAL" since="3" />
-		<field name="BUTTON_POSITIVE" since="3" />
-	</class>
-	<class name="android/content/DialogInterface$OnCancelListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onCancel(Landroid/content/DialogInterface;)V" />
-	</class>
-	<class name="android/content/DialogInterface$OnClickListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onClick(Landroid/content/DialogInterface;I)V" />
-	</class>
-	<class name="android/content/DialogInterface$OnDismissListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onDismiss(Landroid/content/DialogInterface;)V" />
-	</class>
-	<class name="android/content/DialogInterface$OnKeyListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onKey(Landroid/content/DialogInterface;ILandroid/view/KeyEvent;)Z" />
-	</class>
-	<class name="android/content/DialogInterface$OnMultiChoiceClickListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onClick(Landroid/content/DialogInterface;IZ)V" />
-	</class>
-	<class name="android/content/DialogInterface$OnShowListener" since="8">
-		<extends name="java/lang/Object" />
-		<method name="onShow(Landroid/content/DialogInterface;)V" />
-	</class>
-	<class name="android/content/Entity" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/ContentValues;)V" />
-		<method name="addSubValue(Landroid/net/Uri;Landroid/content/ContentValues;)V" />
-		<method name="getEntityValues()Landroid/content/ContentValues;" />
-		<method name="getSubValues()Ljava/util/ArrayList;" />
-	</class>
-	<class name="android/content/Entity$NamedContentValues" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/net/Uri;Landroid/content/ContentValues;)V" />
-		<field name="uri" />
-		<field name="values" />
-	</class>
-	<class name="android/content/EntityIterator" since="8">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/Iterator" />
-		<method name="close()V" />
-		<method name="reset()V" />
-	</class>
-	<class name="android/content/Intent" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<implements name="java/lang/Cloneable" since="8" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/content/Context;Ljava/lang/Class;)V" />
-		<method name="&lt;init>(Landroid/content/Intent;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Landroid/net/Uri;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Landroid/net/Uri;Landroid/content/Context;Ljava/lang/Class;)V" />
-		<method name="addCategory(Ljava/lang/String;)Landroid/content/Intent;" />
-		<method name="addFlags(I)Landroid/content/Intent;" />
-		<method name="cloneFilter()Landroid/content/Intent;" />
-		<method name="createChooser(Landroid/content/Intent;Ljava/lang/CharSequence;)Landroid/content/Intent;" />
-		<method name="fillIn(Landroid/content/Intent;I)I" />
-		<method name="filterEquals(Landroid/content/Intent;)Z" />
-		<method name="filterHashCode()I" />
-		<method name="getAction()Ljava/lang/String;" />
-		<method name="getBooleanArrayExtra(Ljava/lang/String;)[Z" />
-		<method name="getBooleanExtra(Ljava/lang/String;Z)Z" />
-		<method name="getBundleExtra(Ljava/lang/String;)Landroid/os/Bundle;" />
-		<method name="getByteArrayExtra(Ljava/lang/String;)[B" />
-		<method name="getByteExtra(Ljava/lang/String;B)B" />
-		<method name="getCategories()Ljava/util/Set;" />
-		<method name="getCharArrayExtra(Ljava/lang/String;)[C" />
-		<method name="getCharExtra(Ljava/lang/String;C)C" />
-		<method name="getCharSequenceArrayExtra(Ljava/lang/String;)[Ljava/lang/CharSequence;" since="8" />
-		<method name="getCharSequenceArrayListExtra(Ljava/lang/String;)Ljava/util/ArrayList;" since="8" />
-		<method name="getCharSequenceExtra(Ljava/lang/String;)Ljava/lang/CharSequence;" />
-		<method name="getClipData()Landroid/content/ClipData;" since="16" />
-		<method name="getComponent()Landroid/content/ComponentName;" />
-		<method name="getData()Landroid/net/Uri;" />
-		<method name="getDataString()Ljava/lang/String;" />
-		<method name="getDoubleArrayExtra(Ljava/lang/String;)[D" />
-		<method name="getDoubleExtra(Ljava/lang/String;D)D" />
-		<method name="getExtras()Landroid/os/Bundle;" />
-		<method name="getFlags()I" />
-		<method name="getFloatArrayExtra(Ljava/lang/String;)[F" />
-		<method name="getFloatExtra(Ljava/lang/String;F)F" />
-		<method name="getIntArrayExtra(Ljava/lang/String;)[I" />
-		<method name="getIntExtra(Ljava/lang/String;I)I" />
-		<method name="getIntegerArrayListExtra(Ljava/lang/String;)Ljava/util/ArrayList;" />
-		<method name="getIntent(Ljava/lang/String;)Landroid/content/Intent;" />
-		<method name="getIntentOld(Ljava/lang/String;)Landroid/content/Intent;" />
-		<method name="getLongArrayExtra(Ljava/lang/String;)[J" />
-		<method name="getLongExtra(Ljava/lang/String;J)J" />
-		<method name="getPackage()Ljava/lang/String;" since="4" />
-		<method name="getParcelableArrayExtra(Ljava/lang/String;)[Landroid/os/Parcelable;" />
-		<method name="getParcelableArrayListExtra(Ljava/lang/String;)Ljava/util/ArrayList;" />
-		<method name="getParcelableExtra(Ljava/lang/String;)Landroid/os/Parcelable;" />
-		<method name="getScheme()Ljava/lang/String;" />
-		<method name="getSelector()Landroid/content/Intent;" since="15" />
-		<method name="getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;" />
-		<method name="getShortArrayExtra(Ljava/lang/String;)[S" />
-		<method name="getShortExtra(Ljava/lang/String;S)S" />
-		<method name="getSourceBounds()Landroid/graphics/Rect;" since="7" />
-		<method name="getStringArrayExtra(Ljava/lang/String;)[Ljava/lang/String;" />
-		<method name="getStringArrayListExtra(Ljava/lang/String;)Ljava/util/ArrayList;" />
-		<method name="getStringExtra(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getType()Ljava/lang/String;" />
-		<method name="hasCategory(Ljava/lang/String;)Z" />
-		<method name="hasExtra(Ljava/lang/String;)Z" />
-		<method name="hasFileDescriptors()Z" />
-		<method name="makeMainActivity(Landroid/content/ComponentName;)Landroid/content/Intent;" since="11" />
-		<method name="makeMainSelectorActivity(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;" since="15" />
-		<method name="makeRestartActivityTask(Landroid/content/ComponentName;)Landroid/content/Intent;" since="11" />
-		<method name="normalizeMimeType(Ljava/lang/String;)Ljava/lang/String;" since="16" />
-		<method name="parseIntent(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;)Landroid/content/Intent;" />
-		<method name="parseUri(Ljava/lang/String;I)Landroid/content/Intent;" since="4" />
-		<method name="putCharSequenceArrayListExtra(Ljava/lang/String;Ljava/util/ArrayList;)Landroid/content/Intent;" since="8" />
-		<method name="putExtra(Ljava/lang/String;B)Landroid/content/Intent;" />
-		<method name="putExtra(Ljava/lang/String;C)Landroid/content/Intent;" />
-		<method name="putExtra(Ljava/lang/String;D)Landroid/content/Intent;" />
-		<method name="putExtra(Ljava/lang/String;F)Landroid/content/Intent;" />
-		<method name="putExtra(Ljava/lang/String;I)Landroid/content/Intent;" />
-		<method name="putExtra(Ljava/lang/String;J)Landroid/content/Intent;" />
-		<method name="putExtra(Ljava/lang/String;Landroid/os/Bundle;)Landroid/content/Intent;" />
-		<method name="putExtra(Ljava/lang/String;Landroid/os/Parcelable;)Landroid/content/Intent;" />
-		<method name="putExtra(Ljava/lang/String;Ljava/io/Serializable;)Landroid/content/Intent;" />
-		<method name="putExtra(Ljava/lang/String;Ljava/lang/CharSequence;)Landroid/content/Intent;" />
-		<method name="putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;" />
-		<method name="putExtra(Ljava/lang/String;S)Landroid/content/Intent;" />
-		<method name="putExtra(Ljava/lang/String;Z)Landroid/content/Intent;" />
-		<method name="putExtra(Ljava/lang/String;[B)Landroid/content/Intent;" />
-		<method name="putExtra(Ljava/lang/String;[C)Landroid/content/Intent;" />
-		<method name="putExtra(Ljava/lang/String;[D)Landroid/content/Intent;" />
-		<method name="putExtra(Ljava/lang/String;[F)Landroid/content/Intent;" />
-		<method name="putExtra(Ljava/lang/String;[I)Landroid/content/Intent;" />
-		<method name="putExtra(Ljava/lang/String;[J)Landroid/content/Intent;" />
-		<method name="putExtra(Ljava/lang/String;[Landroid/os/Parcelable;)Landroid/content/Intent;" />
-		<method name="putExtra(Ljava/lang/String;[Ljava/lang/CharSequence;)Landroid/content/Intent;" since="8" />
-		<method name="putExtra(Ljava/lang/String;[Ljava/lang/String;)Landroid/content/Intent;" />
-		<method name="putExtra(Ljava/lang/String;[S)Landroid/content/Intent;" />
-		<method name="putExtra(Ljava/lang/String;[Z)Landroid/content/Intent;" />
-		<method name="putExtras(Landroid/content/Intent;)Landroid/content/Intent;" />
-		<method name="putExtras(Landroid/os/Bundle;)Landroid/content/Intent;" />
-		<method name="putIntegerArrayListExtra(Ljava/lang/String;Ljava/util/ArrayList;)Landroid/content/Intent;" />
-		<method name="putParcelableArrayListExtra(Ljava/lang/String;Ljava/util/ArrayList;)Landroid/content/Intent;" />
-		<method name="putStringArrayListExtra(Ljava/lang/String;Ljava/util/ArrayList;)Landroid/content/Intent;" />
-		<method name="readFromParcel(Landroid/os/Parcel;)V" />
-		<method name="removeCategory(Ljava/lang/String;)V" />
-		<method name="removeExtra(Ljava/lang/String;)V" />
-		<method name="replaceExtras(Landroid/content/Intent;)Landroid/content/Intent;" since="3" />
-		<method name="replaceExtras(Landroid/os/Bundle;)Landroid/content/Intent;" since="3" />
-		<method name="resolveActivity(Landroid/content/pm/PackageManager;)Landroid/content/ComponentName;" />
-		<method name="resolveActivityInfo(Landroid/content/pm/PackageManager;I)Landroid/content/pm/ActivityInfo;" />
-		<method name="resolveType(Landroid/content/ContentResolver;)Ljava/lang/String;" />
-		<method name="resolveType(Landroid/content/Context;)Ljava/lang/String;" />
-		<method name="resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;" />
-		<method name="setAction(Ljava/lang/String;)Landroid/content/Intent;" />
-		<method name="setClass(Landroid/content/Context;Ljava/lang/Class;)Landroid/content/Intent;" />
-		<method name="setClassName(Landroid/content/Context;Ljava/lang/String;)Landroid/content/Intent;" />
-		<method name="setClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;" />
-		<method name="setClipData(Landroid/content/ClipData;)V" since="16" />
-		<method name="setComponent(Landroid/content/ComponentName;)Landroid/content/Intent;" />
-		<method name="setData(Landroid/net/Uri;)Landroid/content/Intent;" />
-		<method name="setDataAndNormalize(Landroid/net/Uri;)Landroid/content/Intent;" since="16" />
-		<method name="setDataAndType(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/Intent;" />
-		<method name="setDataAndTypeAndNormalize(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/Intent;" since="16" />
-		<method name="setExtrasClassLoader(Ljava/lang/ClassLoader;)V" />
-		<method name="setFlags(I)Landroid/content/Intent;" />
-		<method name="setPackage(Ljava/lang/String;)Landroid/content/Intent;" since="4" />
-		<method name="setSelector(Landroid/content/Intent;)V" since="15" />
-		<method name="setSourceBounds(Landroid/graphics/Rect;)V" since="7" />
-		<method name="setType(Ljava/lang/String;)Landroid/content/Intent;" />
-		<method name="setTypeAndNormalize(Ljava/lang/String;)Landroid/content/Intent;" since="16" />
-		<method name="toURI()Ljava/lang/String;" />
-		<method name="toUri(I)Ljava/lang/String;" since="4" />
-		<field name="ACTION_AIRPLANE_MODE_CHANGED" />
-		<field name="ACTION_ALL_APPS" />
-		<field name="ACTION_ANSWER" />
-		<field name="ACTION_APPLICATION_RESTRICTIONS_CHANGED" since="21" />
-		<field name="ACTION_APP_ERROR" since="14" />
-		<field name="ACTION_ASSIST" since="16" />
-		<field name="ACTION_ATTACH_DATA" />
-		<field name="ACTION_BATTERY_CHANGED" />
-		<field name="ACTION_BATTERY_LOW" />
-		<field name="ACTION_BATTERY_OKAY" since="4" />
-		<field name="ACTION_BOOT_COMPLETED" />
-		<field name="ACTION_BUG_REPORT" />
-		<field name="ACTION_CALL" />
-		<field name="ACTION_CALL_BUTTON" />
-		<field name="ACTION_CAMERA_BUTTON" />
-		<field name="ACTION_CHOOSER" />
-		<field name="ACTION_CLOSE_SYSTEM_DIALOGS" />
-		<field name="ACTION_CONFIGURATION_CHANGED" />
-		<field name="ACTION_CREATE_DOCUMENT" since="19" />
-		<field name="ACTION_CREATE_SHORTCUT" />
-		<field name="ACTION_DATE_CHANGED" />
-		<field name="ACTION_DEFAULT" />
-		<field name="ACTION_DELETE" />
-		<field name="ACTION_DEVICE_STORAGE_LOW" />
-		<field name="ACTION_DEVICE_STORAGE_OK" />
-		<field name="ACTION_DIAL" />
-		<field name="ACTION_DOCK_EVENT" since="5" />
-		<field name="ACTION_DREAMING_STARTED" since="17" />
-		<field name="ACTION_DREAMING_STOPPED" since="17" />
-		<field name="ACTION_EDIT" />
-		<field name="ACTION_EXTERNAL_APPLICATIONS_AVAILABLE" since="8" />
-		<field name="ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE" since="8" />
-		<field name="ACTION_FACTORY_TEST" />
-		<field name="ACTION_GET_CONTENT" />
-		<field name="ACTION_GET_RESTRICTION_ENTRIES" since="18" />
-		<field name="ACTION_GTALK_SERVICE_CONNECTED" />
-		<field name="ACTION_GTALK_SERVICE_DISCONNECTED" />
-		<field name="ACTION_HEADSET_PLUG" />
-		<field name="ACTION_INPUT_METHOD_CHANGED" since="3" />
-		<field name="ACTION_INSERT" />
-		<field name="ACTION_INSERT_OR_EDIT" />
-		<field name="ACTION_INSTALL_PACKAGE" since="14" />
-		<field name="ACTION_LOCALE_CHANGED" since="7" />
-		<field name="ACTION_MAIN" />
-		<field name="ACTION_MANAGED_PROFILE_ADDED" since="21" />
-		<field name="ACTION_MANAGED_PROFILE_REMOVED" since="21" />
-		<field name="ACTION_MANAGE_NETWORK_USAGE" since="14" />
-		<field name="ACTION_MANAGE_PACKAGE_STORAGE" />
-		<field name="ACTION_MEDIA_BAD_REMOVAL" />
-		<field name="ACTION_MEDIA_BUTTON" />
-		<field name="ACTION_MEDIA_CHECKING" since="3" />
-		<field name="ACTION_MEDIA_EJECT" />
-		<field name="ACTION_MEDIA_MOUNTED" />
-		<field name="ACTION_MEDIA_NOFS" since="3" />
-		<field name="ACTION_MEDIA_REMOVED" />
-		<field name="ACTION_MEDIA_SCANNER_FINISHED" />
-		<field name="ACTION_MEDIA_SCANNER_SCAN_FILE" />
-		<field name="ACTION_MEDIA_SCANNER_STARTED" />
-		<field name="ACTION_MEDIA_SHARED" />
-		<field name="ACTION_MEDIA_UNMOUNTABLE" />
-		<field name="ACTION_MEDIA_UNMOUNTED" />
-		<field name="ACTION_MY_PACKAGE_REPLACED" since="12" />
-		<field name="ACTION_NEW_OUTGOING_CALL" />
-		<field name="ACTION_OPEN_DOCUMENT" since="19" />
-		<field name="ACTION_OPEN_DOCUMENT_TREE" since="21" />
-		<field name="ACTION_PACKAGE_ADDED" />
-		<field name="ACTION_PACKAGE_CHANGED" />
-		<field name="ACTION_PACKAGE_DATA_CLEARED" since="3" />
-		<field name="ACTION_PACKAGE_FIRST_LAUNCH" since="12" />
-		<field name="ACTION_PACKAGE_FULLY_REMOVED" since="14" />
-		<field name="ACTION_PACKAGE_INSTALL" />
-		<field name="ACTION_PACKAGE_NEEDS_VERIFICATION" since="14" />
-		<field name="ACTION_PACKAGE_REMOVED" />
-		<field name="ACTION_PACKAGE_REPLACED" since="3" />
-		<field name="ACTION_PACKAGE_RESTARTED" />
-		<field name="ACTION_PACKAGE_VERIFIED" since="17" />
-		<field name="ACTION_PASTE" since="11" />
-		<field name="ACTION_PICK" />
-		<field name="ACTION_PICK_ACTIVITY" />
-		<field name="ACTION_POWER_CONNECTED" since="4" />
-		<field name="ACTION_POWER_DISCONNECTED" since="4" />
-		<field name="ACTION_POWER_USAGE_SUMMARY" since="4" />
-		<field name="ACTION_PROVIDER_CHANGED" />
-		<field name="ACTION_QUICK_CLOCK" since="17" />
-		<field name="ACTION_REBOOT" />
-		<field name="ACTION_RUN" />
-		<field name="ACTION_SCREEN_OFF" />
-		<field name="ACTION_SCREEN_ON" />
-		<field name="ACTION_SEARCH" />
-		<field name="ACTION_SEARCH_LONG_PRESS" since="3" />
-		<field name="ACTION_SEND" />
-		<field name="ACTION_SENDTO" />
-		<field name="ACTION_SEND_MULTIPLE" since="4" />
-		<field name="ACTION_SET_WALLPAPER" />
-		<field name="ACTION_SHUTDOWN" since="4" />
-		<field name="ACTION_SYNC" />
-		<field name="ACTION_SYSTEM_TUTORIAL" since="3" />
-		<field name="ACTION_TIMEZONE_CHANGED" />
-		<field name="ACTION_TIME_CHANGED" />
-		<field name="ACTION_TIME_TICK" />
-		<field name="ACTION_UID_REMOVED" />
-		<field name="ACTION_UMS_CONNECTED" />
-		<field name="ACTION_UMS_DISCONNECTED" />
-		<field name="ACTION_UNINSTALL_PACKAGE" since="14" />
-		<field name="ACTION_USER_BACKGROUND" since="17" />
-		<field name="ACTION_USER_FOREGROUND" since="17" />
-		<field name="ACTION_USER_INITIALIZE" since="17" />
-		<field name="ACTION_USER_PRESENT" since="3" />
-		<field name="ACTION_VIEW" />
-		<field name="ACTION_VOICE_COMMAND" />
-		<field name="ACTION_WALLPAPER_CHANGED" />
-		<field name="ACTION_WEB_SEARCH" />
-		<field name="CATEGORY_ALTERNATIVE" />
-		<field name="CATEGORY_APP_BROWSER" since="15" />
-		<field name="CATEGORY_APP_CALCULATOR" since="15" />
-		<field name="CATEGORY_APP_CALENDAR" since="15" />
-		<field name="CATEGORY_APP_CONTACTS" since="15" />
-		<field name="CATEGORY_APP_EMAIL" since="15" />
-		<field name="CATEGORY_APP_GALLERY" since="15" />
-		<field name="CATEGORY_APP_MAPS" since="15" />
-		<field name="CATEGORY_APP_MARKET" since="11" />
-		<field name="CATEGORY_APP_MESSAGING" since="15" />
-		<field name="CATEGORY_APP_MUSIC" since="15" />
-		<field name="CATEGORY_BROWSABLE" />
-		<field name="CATEGORY_CAR_DOCK" since="5" />
-		<field name="CATEGORY_CAR_MODE" since="8" />
-		<field name="CATEGORY_DEFAULT" />
-		<field name="CATEGORY_DESK_DOCK" since="5" />
-		<field name="CATEGORY_DEVELOPMENT_PREFERENCE" />
-		<field name="CATEGORY_EMBED" />
-		<field name="CATEGORY_FRAMEWORK_INSTRUMENTATION_TEST" />
-		<field name="CATEGORY_GADGET" />
-		<field name="CATEGORY_HE_DESK_DOCK" since="11" />
-		<field name="CATEGORY_HOME" />
-		<field name="CATEGORY_INFO" since="3" />
-		<field name="CATEGORY_LAUNCHER" />
-		<field name="CATEGORY_LEANBACK_LAUNCHER" since="21" />
-		<field name="CATEGORY_LE_DESK_DOCK" since="11" />
-		<field name="CATEGORY_MONKEY" />
-		<field name="CATEGORY_OPENABLE" />
-		<field name="CATEGORY_PREFERENCE" />
-		<field name="CATEGORY_SAMPLE_CODE" />
-		<field name="CATEGORY_SELECTED_ALTERNATIVE" />
-		<field name="CATEGORY_TAB" />
-		<field name="CATEGORY_TEST" />
-		<field name="CATEGORY_UNIT_TEST" />
-		<field name="CATEGORY_VOICE" since="21" />
-		<field name="CREATOR" />
-		<field name="EXTRA_ALARM_COUNT" />
-		<field name="EXTRA_ALLOW_MULTIPLE" since="18" />
-		<field name="EXTRA_ALLOW_REPLACE" since="14" />
-		<field name="EXTRA_ASSIST_CONTEXT" since="18" />
-		<field name="EXTRA_ASSIST_PACKAGE" since="18" />
-		<field name="EXTRA_BCC" />
-		<field name="EXTRA_BUG_REPORT" since="14" />
-		<field name="EXTRA_CC" />
-		<field name="EXTRA_CHANGED_COMPONENT_NAME" since="5" />
-		<field name="EXTRA_CHANGED_COMPONENT_NAME_LIST" since="7" />
-		<field name="EXTRA_CHANGED_PACKAGE_LIST" since="8" />
-		<field name="EXTRA_CHANGED_UID_LIST" since="8" />
-		<field name="EXTRA_DATA_REMOVED" since="3" />
-		<field name="EXTRA_DOCK_STATE" since="5" />
-		<field name="EXTRA_DOCK_STATE_CAR" since="5" />
-		<field name="EXTRA_DOCK_STATE_DESK" since="5" />
-		<field name="EXTRA_DOCK_STATE_HE_DESK" since="11" />
-		<field name="EXTRA_DOCK_STATE_LE_DESK" since="11" />
-		<field name="EXTRA_DOCK_STATE_UNDOCKED" since="5" />
-		<field name="EXTRA_DONT_KILL_APP" />
-		<field name="EXTRA_EMAIL" />
-		<field name="EXTRA_HTML_TEXT" since="16" />
-		<field name="EXTRA_INITIAL_INTENTS" since="5" />
-		<field name="EXTRA_INSTALLER_PACKAGE_NAME" since="14" />
-		<field name="EXTRA_INTENT" />
-		<field name="EXTRA_KEY_EVENT" />
-		<field name="EXTRA_LOCAL_ONLY" since="11" />
-		<field name="EXTRA_MIME_TYPES" since="19" />
-		<field name="EXTRA_NOT_UNKNOWN_SOURCE" since="14" />
-		<field name="EXTRA_ORIGINATING_URI" since="17" />
-		<field name="EXTRA_PHONE_NUMBER" />
-		<field name="EXTRA_REFERRER" since="17" />
-		<field name="EXTRA_REMOTE_INTENT_TOKEN" since="5" />
-		<field name="EXTRA_REPLACING" since="3" />
-		<field name="EXTRA_RESTRICTIONS_BUNDLE" since="18" />
-		<field name="EXTRA_RESTRICTIONS_INTENT" since="18" />
-		<field name="EXTRA_RESTRICTIONS_LIST" since="18" />
-		<field name="EXTRA_RETURN_RESULT" since="14" />
-		<field name="EXTRA_SHORTCUT_ICON" />
-		<field name="EXTRA_SHORTCUT_ICON_RESOURCE" />
-		<field name="EXTRA_SHORTCUT_INTENT" />
-		<field name="EXTRA_SHORTCUT_NAME" />
-		<field name="EXTRA_SHUTDOWN_USERSPACE_ONLY" since="19" />
-		<field name="EXTRA_STREAM" />
-		<field name="EXTRA_SUBJECT" />
-		<field name="EXTRA_TEMPLATE" />
-		<field name="EXTRA_TEXT" />
-		<field name="EXTRA_TITLE" />
-		<field name="EXTRA_UID" />
-		<field name="EXTRA_USER" since="21" />
-		<field name="FILL_IN_ACTION" />
-		<field name="FILL_IN_CATEGORIES" />
-		<field name="FILL_IN_CLIP_DATA" since="16" />
-		<field name="FILL_IN_COMPONENT" />
-		<field name="FILL_IN_DATA" />
-		<field name="FILL_IN_PACKAGE" since="4" />
-		<field name="FILL_IN_SELECTOR" since="15" />
-		<field name="FILL_IN_SOURCE_BOUNDS" since="7" />
-		<field name="FLAG_ACTIVITY_AUTO_REMOVE_FROM_RECENTS" since="21" />
-		<field name="FLAG_ACTIVITY_BROUGHT_TO_FRONT" />
-		<field name="FLAG_ACTIVITY_CLEAR_TASK" since="11" />
-		<field name="FLAG_ACTIVITY_CLEAR_TOP" />
-		<field name="FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET" since="3" />
-		<field name="FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS" />
-		<field name="FLAG_ACTIVITY_FORWARD_RESULT" />
-		<field name="FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY" />
-		<field name="FLAG_ACTIVITY_MULTIPLE_TASK" />
-		<field name="FLAG_ACTIVITY_NEW_DOCUMENT" since="21" />
-		<field name="FLAG_ACTIVITY_NEW_TASK" />
-		<field name="FLAG_ACTIVITY_NO_ANIMATION" since="5" />
-		<field name="FLAG_ACTIVITY_NO_HISTORY" />
-		<field name="FLAG_ACTIVITY_NO_USER_ACTION" since="3" />
-		<field name="FLAG_ACTIVITY_PREVIOUS_IS_TOP" />
-		<field name="FLAG_ACTIVITY_REORDER_TO_FRONT" since="3" />
-		<field name="FLAG_ACTIVITY_RESET_TASK_IF_NEEDED" />
-		<field name="FLAG_ACTIVITY_SINGLE_TOP" />
-		<field name="FLAG_ACTIVITY_TASK_ON_HOME" since="11" />
-		<field name="FLAG_DEBUG_LOG_RESOLUTION" />
-		<field name="FLAG_EXCLUDE_STOPPED_PACKAGES" since="12" />
-		<field name="FLAG_FROM_BACKGROUND" />
-		<field name="FLAG_GRANT_PERSISTABLE_URI_PERMISSION" since="19" />
-		<field name="FLAG_GRANT_PREFIX_URI_PERMISSION" since="21" />
-		<field name="FLAG_GRANT_READ_URI_PERMISSION" />
-		<field name="FLAG_GRANT_WRITE_URI_PERMISSION" />
-		<field name="FLAG_INCLUDE_STOPPED_PACKAGES" since="12" />
-		<field name="FLAG_RECEIVER_FOREGROUND" since="16" />
-		<field name="FLAG_RECEIVER_NO_ABORT" since="19" />
-		<field name="FLAG_RECEIVER_REGISTERED_ONLY" />
-		<field name="FLAG_RECEIVER_REPLACE_PENDING" since="8" />
-		<field name="METADATA_DOCK_HOME" since="5" />
-		<field name="URI_INTENT_SCHEME" since="4" />
-	</class>
-	<class name="android/content/Intent$FilterComparison" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Intent;)V" />
-		<method name="getIntent()Landroid/content/Intent;" />
-	</class>
-	<class name="android/content/Intent$ShortcutIconResource" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="fromContext(Landroid/content/Context;I)Landroid/content/Intent$ShortcutIconResource;" />
-		<field name="CREATOR" />
-		<field name="packageName" />
-		<field name="resourceName" />
-	</class>
-	<class name="android/content/IntentFilter" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/content/IntentFilter;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="actionsIterator()Ljava/util/Iterator;" />
-		<method name="addAction(Ljava/lang/String;)V" />
-		<method name="addCategory(Ljava/lang/String;)V" />
-		<method name="addDataAuthority(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="addDataPath(Ljava/lang/String;I)V" />
-		<method name="addDataScheme(Ljava/lang/String;)V" />
-		<method name="addDataSchemeSpecificPart(Ljava/lang/String;I)V" since="19" />
-		<method name="addDataType(Ljava/lang/String;)V" />
-		<method name="authoritiesIterator()Ljava/util/Iterator;" />
-		<method name="categoriesIterator()Ljava/util/Iterator;" />
-		<method name="countActions()I" />
-		<method name="countCategories()I" />
-		<method name="countDataAuthorities()I" />
-		<method name="countDataPaths()I" />
-		<method name="countDataSchemeSpecificParts()I" since="19" />
-		<method name="countDataSchemes()I" />
-		<method name="countDataTypes()I" />
-		<method name="create(Ljava/lang/String;Ljava/lang/String;)Landroid/content/IntentFilter;" />
-		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" />
-		<method name="getAction(I)Ljava/lang/String;" />
-		<method name="getCategory(I)Ljava/lang/String;" />
-		<method name="getDataAuthority(I)Landroid/content/IntentFilter$AuthorityEntry;" />
-		<method name="getDataPath(I)Landroid/os/PatternMatcher;" />
-		<method name="getDataScheme(I)Ljava/lang/String;" />
-		<method name="getDataSchemeSpecificPart(I)Landroid/os/PatternMatcher;" since="19" />
-		<method name="getDataType(I)Ljava/lang/String;" />
-		<method name="getPriority()I" />
-		<method name="hasAction(Ljava/lang/String;)Z" />
-		<method name="hasCategory(Ljava/lang/String;)Z" />
-		<method name="hasDataAuthority(Landroid/net/Uri;)Z" />
-		<method name="hasDataPath(Ljava/lang/String;)Z" />
-		<method name="hasDataScheme(Ljava/lang/String;)Z" />
-		<method name="hasDataSchemeSpecificPart(Ljava/lang/String;)Z" since="19" />
-		<method name="hasDataType(Ljava/lang/String;)Z" />
-		<method name="match(Landroid/content/ContentResolver;Landroid/content/Intent;ZLjava/lang/String;)I" />
-		<method name="match(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Ljava/util/Set;Ljava/lang/String;)I" />
-		<method name="matchAction(Ljava/lang/String;)Z" />
-		<method name="matchCategories(Ljava/util/Set;)Ljava/lang/String;" />
-		<method name="matchData(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;)I" />
-		<method name="matchDataAuthority(Landroid/net/Uri;)I" />
-		<method name="pathsIterator()Ljava/util/Iterator;" />
-		<method name="readFromXml(Lorg/xmlpull/v1/XmlPullParser;)V" />
-		<method name="schemeSpecificPartsIterator()Ljava/util/Iterator;" since="19" />
-		<method name="schemesIterator()Ljava/util/Iterator;" />
-		<method name="setPriority(I)V" />
-		<method name="typesIterator()Ljava/util/Iterator;" />
-		<method name="writeToXml(Lorg/xmlpull/v1/XmlSerializer;)V" />
-		<field name="CREATOR" />
-		<field name="MATCH_ADJUSTMENT_MASK" />
-		<field name="MATCH_ADJUSTMENT_NORMAL" />
-		<field name="MATCH_CATEGORY_EMPTY" />
-		<field name="MATCH_CATEGORY_HOST" />
-		<field name="MATCH_CATEGORY_MASK" />
-		<field name="MATCH_CATEGORY_PATH" />
-		<field name="MATCH_CATEGORY_PORT" />
-		<field name="MATCH_CATEGORY_SCHEME" />
-		<field name="MATCH_CATEGORY_SCHEME_SPECIFIC_PART" since="19" />
-		<field name="MATCH_CATEGORY_TYPE" />
-		<field name="NO_MATCH_ACTION" />
-		<field name="NO_MATCH_CATEGORY" />
-		<field name="NO_MATCH_DATA" />
-		<field name="NO_MATCH_TYPE" />
-		<field name="SYSTEM_HIGH_PRIORITY" />
-		<field name="SYSTEM_LOW_PRIORITY" />
-	</class>
-	<class name="android/content/IntentFilter$AuthorityEntry" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="getHost()Ljava/lang/String;" />
-		<method name="getPort()I" />
-		<method name="match(Landroid/net/Uri;)I" />
-	</class>
-	<class name="android/content/IntentFilter$MalformedMimeTypeException" since="1">
-		<extends name="android/util/AndroidException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/content/IntentSender" since="4">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getCreatorPackage()Ljava/lang/String;" since="17" />
-		<method name="getCreatorUid()I" since="17" />
-		<method name="getCreatorUserHandle()Landroid/os/UserHandle;" since="17" />
-		<method name="getTargetPackage()Ljava/lang/String;" since="9" />
-		<method name="readIntentSenderOrNullFromParcel(Landroid/os/Parcel;)Landroid/content/IntentSender;" />
-		<method name="sendIntent(Landroid/content/Context;ILandroid/content/Intent;Landroid/content/IntentSender$OnFinished;Landroid/os/Handler;)V" />
-		<method name="sendIntent(Landroid/content/Context;ILandroid/content/Intent;Landroid/content/IntentSender$OnFinished;Landroid/os/Handler;Ljava/lang/String;)V" since="14" />
-		<method name="writeIntentSenderOrNullToParcel(Landroid/content/IntentSender;Landroid/os/Parcel;)V" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/content/IntentSender$OnFinished" since="4">
-		<extends name="java/lang/Object" />
-		<method name="onSendFinished(Landroid/content/IntentSender;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;)V" />
-	</class>
-	<class name="android/content/IntentSender$SendIntentException" since="4">
-		<extends name="android/util/AndroidException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/Exception;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/content/Loader" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="abandon()V" />
-		<method name="cancelLoad()Z" since="16" />
-		<method name="commitContentChanged()V" since="18" />
-		<method name="dataToString(Ljava/lang/Object;)Ljava/lang/String;" />
-		<method name="deliverCancellation()V" since="16" />
-		<method name="deliverResult(Ljava/lang/Object;)V" />
-		<method name="dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V" />
-		<method name="forceLoad()V" />
-		<method name="getContext()Landroid/content/Context;" />
-		<method name="getId()I" />
-		<method name="isAbandoned()Z" />
-		<method name="isReset()Z" />
-		<method name="isStarted()Z" />
-		<method name="onAbandon()V" />
-		<method name="onCancelLoad()Z" since="16" />
-		<method name="onContentChanged()V" />
-		<method name="onForceLoad()V" />
-		<method name="onReset()V" />
-		<method name="onStartLoading()V" />
-		<method name="onStopLoading()V" />
-		<method name="registerListener(ILandroid/content/Loader$OnLoadCompleteListener;)V" />
-		<method name="registerOnLoadCanceledListener(Landroid/content/Loader$OnLoadCanceledListener;)V" since="16" />
-		<method name="reset()V" />
-		<method name="rollbackContentChanged()V" since="18" />
-		<method name="startLoading()V" />
-		<method name="stopLoading()V" />
-		<method name="takeContentChanged()Z" />
-		<method name="unregisterListener(Landroid/content/Loader$OnLoadCompleteListener;)V" />
-		<method name="unregisterOnLoadCanceledListener(Landroid/content/Loader$OnLoadCanceledListener;)V" since="16" />
-	</class>
-	<class name="android/content/Loader$ForceLoadContentObserver" since="11">
-		<extends name="android/database/ContentObserver" />
-		<method name="&lt;init>(Landroid/content/Loader;)V" />
-	</class>
-	<class name="android/content/Loader$OnLoadCanceledListener" since="16">
-		<extends name="java/lang/Object" />
-		<method name="onLoadCanceled(Landroid/content/Loader;)V" />
-	</class>
-	<class name="android/content/Loader$OnLoadCompleteListener" since="11">
-		<extends name="java/lang/Object" />
-		<method name="onLoadComplete(Landroid/content/Loader;Ljava/lang/Object;)V" />
-	</class>
-	<class name="android/content/MutableContextWrapper" since="1">
-		<extends name="android/content/ContextWrapper" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="setBaseContext(Landroid/content/Context;)V" />
-	</class>
-	<class name="android/content/OperationApplicationException" since="5">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;I)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-		<method name="getNumSuccessfulYieldPoints()I" />
-	</class>
-	<class name="android/content/PeriodicSync" since="8">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;J)V" />
-		<field name="CREATOR" />
-		<field name="account" />
-		<field name="authority" />
-		<field name="extras" />
-		<field name="period" />
-	</class>
-	<class name="android/content/ReceiverCallNotAllowedException" since="1">
-		<extends name="android/util/AndroidRuntimeException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/content/RestrictionEntry" since="18">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Z)V" />
-		<method name="&lt;init>(Ljava/lang/String;[Ljava/lang/String;)V" />
-		<method name="getAllSelectedStrings()[Ljava/lang/String;" />
-		<method name="getChoiceEntries()[Ljava/lang/String;" />
-		<method name="getChoiceValues()[Ljava/lang/String;" />
-		<method name="getDescription()Ljava/lang/String;" />
-		<method name="getKey()Ljava/lang/String;" />
-		<method name="getSelectedState()Z" />
-		<method name="getSelectedString()Ljava/lang/String;" />
-		<method name="getTitle()Ljava/lang/String;" />
-		<method name="getType()I" />
-		<method name="setAllSelectedStrings([Ljava/lang/String;)V" />
-		<method name="setChoiceEntries(Landroid/content/Context;I)V" />
-		<method name="setChoiceEntries([Ljava/lang/String;)V" />
-		<method name="setChoiceValues(Landroid/content/Context;I)V" />
-		<method name="setChoiceValues([Ljava/lang/String;)V" />
-		<method name="setDescription(Ljava/lang/String;)V" />
-		<method name="setSelectedState(Z)V" />
-		<method name="setSelectedString(Ljava/lang/String;)V" />
-		<method name="setTitle(Ljava/lang/String;)V" />
-		<method name="setType(I)V" />
-		<field name="CREATOR" />
-		<field name="TYPE_BOOLEAN" />
-		<field name="TYPE_CHOICE" />
-		<field name="TYPE_MULTI_SELECT" />
-		<field name="TYPE_NULL" />
-	</class>
-	<class name="android/content/SearchRecentSuggestionsProvider" since="1">
-		<extends name="android/content/ContentProvider" />
-		<method name="&lt;init>()V" />
-		<method name="setupSuggestions(Ljava/lang/String;I)V" />
-		<field name="DATABASE_MODE_2LINES" />
-		<field name="DATABASE_MODE_QUERIES" />
-	</class>
-	<class name="android/content/ServiceConnection" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V" />
-		<method name="onServiceDisconnected(Landroid/content/ComponentName;)V" />
-	</class>
-	<class name="android/content/SharedPreferences" since="1">
-		<extends name="java/lang/Object" />
-		<method name="contains(Ljava/lang/String;)Z" />
-		<method name="edit()Landroid/content/SharedPreferences$Editor;" />
-		<method name="getAll()Ljava/util/Map;" />
-		<method name="getBoolean(Ljava/lang/String;Z)Z" />
-		<method name="getFloat(Ljava/lang/String;F)F" />
-		<method name="getInt(Ljava/lang/String;I)I" />
-		<method name="getLong(Ljava/lang/String;J)J" />
-		<method name="getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getStringSet(Ljava/lang/String;Ljava/util/Set;)Ljava/util/Set;" since="11" />
-		<method name="registerOnSharedPreferenceChangeListener(Landroid/content/SharedPreferences$OnSharedPreferenceChangeListener;)V" />
-		<method name="unregisterOnSharedPreferenceChangeListener(Landroid/content/SharedPreferences$OnSharedPreferenceChangeListener;)V" />
-	</class>
-	<class name="android/content/SharedPreferences$Editor" since="1">
-		<extends name="java/lang/Object" />
-		<method name="apply()V" since="9" />
-		<method name="clear()Landroid/content/SharedPreferences$Editor;" />
-		<method name="commit()Z" />
-		<method name="putBoolean(Ljava/lang/String;Z)Landroid/content/SharedPreferences$Editor;" />
-		<method name="putFloat(Ljava/lang/String;F)Landroid/content/SharedPreferences$Editor;" />
-		<method name="putInt(Ljava/lang/String;I)Landroid/content/SharedPreferences$Editor;" />
-		<method name="putLong(Ljava/lang/String;J)Landroid/content/SharedPreferences$Editor;" />
-		<method name="putString(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor;" />
-		<method name="putStringSet(Ljava/lang/String;Ljava/util/Set;)Landroid/content/SharedPreferences$Editor;" since="11" />
-		<method name="remove(Ljava/lang/String;)Landroid/content/SharedPreferences$Editor;" />
-	</class>
-	<class name="android/content/SharedPreferences$OnSharedPreferenceChangeListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onSharedPreferenceChanged(Landroid/content/SharedPreferences;Ljava/lang/String;)V" />
-	</class>
-	<class name="android/content/SyncAdapterType" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ZZ)V" />
-		<method name="allowParallelSyncs()Z" since="11" />
-		<method name="getSettingsActivity()Ljava/lang/String;" since="14" />
-		<method name="isAlwaysSyncable()Z" since="11" />
-		<method name="isUserVisible()Z" />
-		<method name="newKey(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SyncAdapterType;" />
-		<method name="supportsUploading()Z" />
-		<field name="CREATOR" />
-		<field name="accountType" />
-		<field name="authority" />
-		<field name="isKey" />
-	</class>
-	<class name="android/content/SyncContext" since="5">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getSyncContextBinder()Landroid/os/IBinder;" />
-		<method name="onFinished(Landroid/content/SyncResult;)V" />
-	</class>
-	<class name="android/content/SyncInfo" since="8">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" since="11" />
-		<method name="&lt;init>()V" />
-		<field name="account" />
-		<field name="authority" />
-		<field name="startTime" />
-	</class>
-	<class name="android/content/SyncRequest" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/content/SyncRequest$Builder" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="build()Landroid/content/SyncRequest;" />
-		<method name="setDisallowMetered(Z)Landroid/content/SyncRequest$Builder;" />
-		<method name="setExpedited(Z)Landroid/content/SyncRequest$Builder;" />
-		<method name="setExtras(Landroid/os/Bundle;)Landroid/content/SyncRequest$Builder;" />
-		<method name="setIgnoreBackoff(Z)Landroid/content/SyncRequest$Builder;" />
-		<method name="setIgnoreSettings(Z)Landroid/content/SyncRequest$Builder;" />
-		<method name="setManual(Z)Landroid/content/SyncRequest$Builder;" />
-		<method name="setNoRetry(Z)Landroid/content/SyncRequest$Builder;" />
-		<method name="setSyncAdapter(Landroid/accounts/Account;Ljava/lang/String;)Landroid/content/SyncRequest$Builder;" />
-		<method name="syncOnce()Landroid/content/SyncRequest$Builder;" />
-		<method name="syncPeriodic(JJ)Landroid/content/SyncRequest$Builder;" />
-	</class>
-	<class name="android/content/SyncResult" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="clear()V" />
-		<method name="hasError()Z" />
-		<method name="hasHardError()Z" />
-		<method name="hasSoftError()Z" />
-		<method name="madeSomeProgress()Z" />
-		<method name="toDebugString()Ljava/lang/String;" />
-		<field name="ALREADY_IN_PROGRESS" />
-		<field name="CREATOR" />
-		<field name="databaseError" />
-		<field name="delayUntil" since="8" />
-		<field name="fullSyncRequested" />
-		<field name="moreRecordsToGet" />
-		<field name="partialSyncUnavailable" />
-		<field name="stats" />
-		<field name="syncAlreadyInProgress" />
-		<field name="tooManyDeletions" />
-		<field name="tooManyRetries" />
-	</class>
-	<class name="android/content/SyncStats" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" />
-		<method name="clear()V" />
-		<field name="CREATOR" />
-		<field name="numAuthExceptions" />
-		<field name="numConflictDetectedExceptions" />
-		<field name="numDeletes" />
-		<field name="numEntries" />
-		<field name="numInserts" />
-		<field name="numIoExceptions" />
-		<field name="numParseExceptions" />
-		<field name="numSkippedEntries" />
-		<field name="numUpdates" />
-	</class>
-	<class name="android/content/SyncStatusObserver" since="5">
-		<extends name="java/lang/Object" />
-		<method name="onStatusChanged(I)V" />
-	</class>
-	<class name="android/content/UriMatcher" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(I)V" />
-		<method name="addURI(Ljava/lang/String;Ljava/lang/String;I)V" />
-		<method name="match(Landroid/net/Uri;)I" />
-		<field name="NO_MATCH" />
-	</class>
-	<class name="android/content/UriPermission" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getPersistedTime()J" />
-		<method name="getUri()Landroid/net/Uri;" />
-		<method name="isReadPermission()Z" />
-		<method name="isWritePermission()Z" />
-		<field name="CREATOR" />
-		<field name="INVALID_TIME" />
-	</class>
-	<class name="android/content/pm/ActivityInfo" since="1">
-		<extends name="android/content/pm/ComponentInfo" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/content/pm/ActivityInfo;)V" />
-		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" />
-		<method name="getThemeResource()I" />
-		<field name="CONFIG_DENSITY" since="17" />
-		<field name="CONFIG_FONT_SCALE" />
-		<field name="CONFIG_KEYBOARD" />
-		<field name="CONFIG_KEYBOARD_HIDDEN" />
-		<field name="CONFIG_LAYOUT_DIRECTION" since="17" />
-		<field name="CONFIG_LOCALE" />
-		<field name="CONFIG_MCC" />
-		<field name="CONFIG_MNC" />
-		<field name="CONFIG_NAVIGATION" />
-		<field name="CONFIG_ORIENTATION" />
-		<field name="CONFIG_SCREEN_LAYOUT" since="4" />
-		<field name="CONFIG_SCREEN_SIZE" since="13" />
-		<field name="CONFIG_SMALLEST_SCREEN_SIZE" since="13" />
-		<field name="CONFIG_TOUCHSCREEN" />
-		<field name="CONFIG_UI_MODE" since="8" />
-		<field name="CREATOR" />
-		<field name="DOCUMENT_LAUNCH_ALWAYS" since="21" />
-		<field name="DOCUMENT_LAUNCH_INTO_EXISTING" since="21" />
-		<field name="DOCUMENT_LAUNCH_NEVER" since="21" />
-		<field name="DOCUMENT_LAUNCH_NONE" since="21" />
-		<field name="FLAG_ALLOW_TASK_REPARENTING" />
-		<field name="FLAG_ALWAYS_RETAIN_TASK_STATE" />
-		<field name="FLAG_AUTO_REMOVE_FROM_RECENTS" since="21" />
-		<field name="FLAG_CLEAR_TASK_ON_LAUNCH" />
-		<field name="FLAG_EXCLUDE_FROM_RECENTS" />
-		<field name="FLAG_FINISH_ON_CLOSE_SYSTEM_DIALOGS" since="5" />
-		<field name="FLAG_FINISH_ON_TASK_LAUNCH" />
-		<field name="FLAG_HARDWARE_ACCELERATED" since="11" />
-		<field name="FLAG_IMMERSIVE" since="18" />
-		<field name="FLAG_MULTIPROCESS" />
-		<field name="FLAG_NO_HISTORY" since="3" />
-		<field name="FLAG_PERSISTABLE" since="21" />
-		<field name="FLAG_SINGLE_USER" since="17" />
-		<field name="FLAG_STATE_NOT_NEEDED" />
-		<field name="LAUNCH_MULTIPLE" />
-		<field name="LAUNCH_SINGLE_INSTANCE" />
-		<field name="LAUNCH_SINGLE_TASK" />
-		<field name="LAUNCH_SINGLE_TOP" />
-		<field name="SCREEN_ORIENTATION_BEHIND" />
-		<field name="SCREEN_ORIENTATION_FULL_SENSOR" since="9" />
-		<field name="SCREEN_ORIENTATION_FULL_USER" since="18" />
-		<field name="SCREEN_ORIENTATION_LANDSCAPE" />
-		<field name="SCREEN_ORIENTATION_LOCKED" since="18" />
-		<field name="SCREEN_ORIENTATION_NOSENSOR" />
-		<field name="SCREEN_ORIENTATION_PORTRAIT" />
-		<field name="SCREEN_ORIENTATION_REVERSE_LANDSCAPE" since="9" />
-		<field name="SCREEN_ORIENTATION_REVERSE_PORTRAIT" since="9" />
-		<field name="SCREEN_ORIENTATION_SENSOR" />
-		<field name="SCREEN_ORIENTATION_SENSOR_LANDSCAPE" since="9" />
-		<field name="SCREEN_ORIENTATION_SENSOR_PORTRAIT" since="9" />
-		<field name="SCREEN_ORIENTATION_UNSPECIFIED" />
-		<field name="SCREEN_ORIENTATION_USER" />
-		<field name="SCREEN_ORIENTATION_USER_LANDSCAPE" since="18" />
-		<field name="SCREEN_ORIENTATION_USER_PORTRAIT" since="18" />
-		<field name="UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW" since="14" />
-		<field name="configChanges" />
-		<field name="documentLaunchMode" since="21" />
-		<field name="flags" />
-		<field name="launchMode" />
-		<field name="maxRecents" since="21" />
-		<field name="parentActivityName" since="16" />
-		<field name="permission" />
-		<field name="screenOrientation" />
-		<field name="softInputMode" since="3" />
-		<field name="targetActivity" />
-		<field name="taskAffinity" />
-		<field name="theme" />
-		<field name="uiOptions" since="14" />
-	</class>
-	<class name="android/content/pm/ApplicationInfo" since="1">
-		<extends name="android/content/pm/PackageItemInfo" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/content/pm/ApplicationInfo;)V" />
-		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" />
-		<method name="loadDescription(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;" />
-		<field name="CREATOR" />
-		<field name="FLAG_ALLOW_BACKUP" since="8" />
-		<field name="FLAG_ALLOW_CLEAR_USER_DATA" />
-		<field name="FLAG_ALLOW_TASK_REPARENTING" />
-		<field name="FLAG_DEBUGGABLE" />
-		<field name="FLAG_EXTERNAL_STORAGE" since="8" />
-		<field name="FLAG_FACTORY_TEST" />
-		<field name="FLAG_HAS_CODE" />
-		<field name="FLAG_INSTALLED" since="17" />
-		<field name="FLAG_IS_DATA_ONLY" since="17" />
-		<field name="FLAG_IS_GAME" since="21" />
-		<field name="FLAG_KILL_AFTER_RESTORE" since="8" />
-		<field name="FLAG_LARGE_HEAP" since="11" />
-		<field name="FLAG_PERSISTENT" />
-		<field name="FLAG_RESIZEABLE_FOR_SCREENS" since="4" />
-		<field name="FLAG_RESTORE_ANY_VERSION" since="8" />
-		<field name="FLAG_STOPPED" since="12" />
-		<field name="FLAG_SUPPORTS_LARGE_SCREENS" since="4" />
-		<field name="FLAG_SUPPORTS_NORMAL_SCREENS" since="4" />
-		<field name="FLAG_SUPPORTS_RTL" since="17" />
-		<field name="FLAG_SUPPORTS_SCREEN_DENSITIES" since="4" />
-		<field name="FLAG_SUPPORTS_SMALL_SCREENS" since="4" />
-		<field name="FLAG_SUPPORTS_XLARGE_SCREENS" since="11" />
-		<field name="FLAG_SYSTEM" />
-		<field name="FLAG_TEST_ONLY" since="4" />
-		<field name="FLAG_UPDATED_SYSTEM_APP" since="4" />
-		<field name="FLAG_VM_SAFE_MODE" since="8" />
-		<field name="backupAgentName" since="8" />
-		<field name="className" />
-		<field name="compatibleWidthLimitDp" since="13" />
-		<field name="dataDir" />
-		<field name="descriptionRes" />
-		<field name="enabled" />
-		<field name="flags" />
-		<field name="largestWidthLimitDp" since="13" />
-		<field name="manageSpaceActivityName" />
-		<field name="nativeLibraryDir" since="9" />
-		<field name="permission" />
-		<field name="processName" />
-		<field name="publicSourceDir" />
-		<field name="requiresSmallestWidthDp" since="13" />
-		<field name="sharedLibraryFiles" />
-		<field name="sourceDir" />
-		<field name="targetSdkVersion" since="4" />
-		<field name="taskAffinity" />
-		<field name="theme" />
-		<field name="uiOptions" since="14" />
-		<field name="uid" />
-	</class>
-	<class name="android/content/pm/ApplicationInfo$DisplayNameComparator" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/Comparator" />
-		<method name="&lt;init>(Landroid/content/pm/PackageManager;)V" />
-		<method name="compare(Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;)I" />
-	</class>
-	<class name="android/content/pm/ComponentInfo" since="1">
-		<extends name="android/content/pm/PackageItemInfo" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/content/pm/ComponentInfo;)V" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" />
-		<method name="getBannerResource()I" since="20" />
-		<method name="getIconResource()I" />
-		<method name="getLogoResource()I" since="19" />
-		<method name="isEnabled()Z" since="11" />
-		<field name="applicationInfo" />
-		<field name="descriptionRes" since="8" />
-		<field name="enabled" />
-		<field name="exported" />
-		<field name="processName" />
-	</class>
-	<class name="android/content/pm/ConfigurationInfo" since="3">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/content/pm/ConfigurationInfo;)V" />
-		<method name="getGlEsVersion()Ljava/lang/String;" since="4" />
-		<field name="CREATOR" />
-		<field name="GL_ES_VERSION_UNDEFINED" since="4" />
-		<field name="INPUT_FEATURE_FIVE_WAY_NAV" />
-		<field name="INPUT_FEATURE_HARD_KEYBOARD" />
-		<field name="reqGlEsVersion" since="4" />
-		<field name="reqInputFeatures" />
-		<field name="reqKeyboardType" />
-		<field name="reqNavigation" />
-		<field name="reqTouchScreen" />
-	</class>
-	<class name="android/content/pm/FeatureInfo" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/content/pm/FeatureInfo;)V" />
-		<method name="getGlEsVersion()Ljava/lang/String;" />
-		<field name="CREATOR" />
-		<field name="FLAG_REQUIRED" />
-		<field name="GL_ES_VERSION_UNDEFINED" />
-		<field name="flags" />
-		<field name="name" />
-		<field name="reqGlEsVersion" />
-	</class>
-	<class name="android/content/pm/IPackageInstallObserver" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/IInterface" />
-		<method name="packageInstalled(Ljava/lang/String;I)V" />
-	</class>
-	<class name="android/content/pm/IPackageInstallObserver$Stub" since="1">
-		<extends name="android/os/Binder" />
-		<implements name="android/content/pm/IPackageInstallObserver" />
-		<method name="&lt;init>()V" />
-		<method name="asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageInstallObserver;" />
-	</class>
-	<class name="android/content/pm/InstrumentationInfo" since="1">
-		<extends name="android/content/pm/PackageItemInfo" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/content/pm/InstrumentationInfo;)V" />
-		<field name="CREATOR" />
-		<field name="dataDir" />
-		<field name="functionalTest" />
-		<field name="handleProfiling" />
-		<field name="publicSourceDir" />
-		<field name="sourceDir" />
-		<field name="targetPackage" />
-	</class>
-	<class name="android/content/pm/LabeledIntent" since="5">
-		<extends name="android/content/Intent" />
-		<method name="&lt;init>(Landroid/content/Intent;Ljava/lang/String;II)V" />
-		<method name="&lt;init>(Landroid/content/Intent;Ljava/lang/String;Ljava/lang/CharSequence;I)V" />
-		<method name="&lt;init>(Ljava/lang/String;II)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/CharSequence;I)V" />
-		<method name="getIconResource()I" />
-		<method name="getLabelResource()I" />
-		<method name="getNonLocalizedLabel()Ljava/lang/CharSequence;" />
-		<method name="getSourcePackage()Ljava/lang/String;" />
-		<method name="loadIcon(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;" />
-		<method name="loadLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/content/pm/LauncherActivityInfo" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getApplicationInfo()Landroid/content/pm/ApplicationInfo;" />
-		<method name="getBadgedIcon(I)Landroid/graphics/drawable/Drawable;" />
-		<method name="getComponentName()Landroid/content/ComponentName;" />
-		<method name="getFirstInstallTime()J" />
-		<method name="getIcon(I)Landroid/graphics/drawable/Drawable;" />
-		<method name="getLabel()Ljava/lang/CharSequence;" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getUser()Landroid/os/UserHandle;" />
-	</class>
-	<class name="android/content/pm/LauncherApps" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addOnAppsChangedListener(Landroid/content/pm/LauncherApps$OnAppsChangedListener;)V" />
-		<method name="getActivityList(Ljava/lang/String;Landroid/os/UserHandle;)Ljava/util/List;" />
-		<method name="isActivityEnabledForProfile(Landroid/content/ComponentName;Landroid/os/UserHandle;)Z" />
-		<method name="isPackageEnabledForProfile(Ljava/lang/String;Landroid/os/UserHandle;)Z" />
-		<method name="removeOnAppsChangedListener(Landroid/content/pm/LauncherApps$OnAppsChangedListener;)V" />
-		<method name="resolveActivity(Landroid/content/Intent;Landroid/os/UserHandle;)Landroid/content/pm/LauncherActivityInfo;" />
-		<method name="startActivityForProfile(Landroid/content/ComponentName;Landroid/os/UserHandle;Landroid/graphics/Rect;Landroid/os/Bundle;)V" />
-	</class>
-	<class name="android/content/pm/LauncherApps$OnAppsChangedListener" since="21">
-		<extends name="java/lang/Object" />
-		<method name="onPackageAdded(Landroid/os/UserHandle;Ljava/lang/String;)V" />
-		<method name="onPackageChanged(Landroid/os/UserHandle;Ljava/lang/String;)V" />
-		<method name="onPackageRemoved(Landroid/os/UserHandle;Ljava/lang/String;)V" />
-		<method name="onPackagesAvailable(Landroid/os/UserHandle;[Ljava/lang/String;Z)V" />
-		<method name="onPackagesUnavailable(Landroid/os/UserHandle;[Ljava/lang/String;Z)V" />
-	</class>
-	<class name="android/content/pm/PackageInfo" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<field name="CREATOR" />
-		<field name="REQUESTED_PERMISSION_GRANTED" since="16" />
-		<field name="REQUESTED_PERMISSION_REQUIRED" since="16" />
-		<field name="activities" />
-		<field name="applicationInfo" />
-		<field name="configPreferences" since="3" />
-		<field name="firstInstallTime" since="9" />
-		<field name="gids" />
-		<field name="instrumentation" />
-		<field name="lastUpdateTime" since="9" />
-		<field name="packageName" />
-		<field name="permissions" />
-		<field name="providers" />
-		<field name="receivers" />
-		<field name="reqFeatures" since="5" />
-		<field name="requestedPermissions" />
-		<field name="requestedPermissionsFlags" since="16" />
-		<field name="services" />
-		<field name="sharedUserId" since="3" />
-		<field name="sharedUserLabel" since="3" />
-		<field name="signatures" />
-		<field name="versionCode" />
-		<field name="versionName" />
-	</class>
-	<class name="android/content/pm/PackageItemInfo" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/content/pm/PackageItemInfo;)V" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" />
-		<method name="dumpBack(Landroid/util/Printer;Ljava/lang/String;)V" />
-		<method name="dumpFront(Landroid/util/Printer;Ljava/lang/String;)V" />
-		<method name="loadBanner(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;" since="20" />
-		<method name="loadIcon(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;" />
-		<method name="loadLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;" />
-		<method name="loadLogo(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;" since="9" />
-		<method name="loadXmlMetaData(Landroid/content/pm/PackageManager;Ljava/lang/String;)Landroid/content/res/XmlResourceParser;" />
-		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
-		<field name="banner" since="20" />
-		<field name="icon" />
-		<field name="labelRes" />
-		<field name="logo" since="9" />
-		<field name="metaData" />
-		<field name="name" />
-		<field name="nonLocalizedLabel" />
-		<field name="packageName" />
-	</class>
-	<class name="android/content/pm/PackageItemInfo$DisplayNameComparator" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/Comparator" />
-		<method name="&lt;init>(Landroid/content/pm/PackageManager;)V" />
-		<method name="compare(Landroid/content/pm/PackageItemInfo;Landroid/content/pm/PackageItemInfo;)I" />
-	</class>
-	<class name="android/content/pm/PackageManager" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addPackageToPreferred(Ljava/lang/String;)V" />
-		<method name="addPermission(Landroid/content/pm/PermissionInfo;)Z" />
-		<method name="addPermissionAsync(Landroid/content/pm/PermissionInfo;)Z" since="8" />
-		<method name="addPreferredActivity(Landroid/content/IntentFilter;I[Landroid/content/ComponentName;Landroid/content/ComponentName;)V" />
-		<method name="canonicalToCurrentPackageNames([Ljava/lang/String;)[Ljava/lang/String;" since="8" />
-		<method name="checkPermission(Ljava/lang/String;Ljava/lang/String;)I" />
-		<method name="checkSignatures(II)I" since="5" />
-		<method name="checkSignatures(Ljava/lang/String;Ljava/lang/String;)I" />
-		<method name="clearPackagePreferredActivities(Ljava/lang/String;)V" />
-		<method name="currentToCanonicalPackageNames([Ljava/lang/String;)[Ljava/lang/String;" since="8" />
-		<method name="extendVerificationTimeout(IIJ)V" since="17" />
-		<method name="getActivityBanner(Landroid/content/ComponentName;)Landroid/graphics/drawable/Drawable;" since="20" />
-		<method name="getActivityBanner(Landroid/content/Intent;)Landroid/graphics/drawable/Drawable;" since="20" />
-		<method name="getActivityIcon(Landroid/content/ComponentName;)Landroid/graphics/drawable/Drawable;" />
-		<method name="getActivityIcon(Landroid/content/Intent;)Landroid/graphics/drawable/Drawable;" />
-		<method name="getActivityInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ActivityInfo;" />
-		<method name="getActivityLogo(Landroid/content/ComponentName;)Landroid/graphics/drawable/Drawable;" since="9" />
-		<method name="getActivityLogo(Landroid/content/Intent;)Landroid/graphics/drawable/Drawable;" since="9" />
-		<method name="getAllPermissionGroups(I)Ljava/util/List;" />
-		<method name="getApplicationBanner(Landroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable;" since="20" />
-		<method name="getApplicationBanner(Ljava/lang/String;)Landroid/graphics/drawable/Drawable;" since="20" />
-		<method name="getApplicationEnabledSetting(Ljava/lang/String;)I" />
-		<method name="getApplicationIcon(Landroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable;" />
-		<method name="getApplicationIcon(Ljava/lang/String;)Landroid/graphics/drawable/Drawable;" />
-		<method name="getApplicationInfo(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo;" />
-		<method name="getApplicationLabel(Landroid/content/pm/ApplicationInfo;)Ljava/lang/CharSequence;" />
-		<method name="getApplicationLogo(Landroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable;" since="9" />
-		<method name="getApplicationLogo(Ljava/lang/String;)Landroid/graphics/drawable/Drawable;" since="9" />
-		<method name="getComponentEnabledSetting(Landroid/content/ComponentName;)I" />
-		<method name="getDefaultActivityIcon()Landroid/graphics/drawable/Drawable;" />
-		<method name="getDrawable(Ljava/lang/String;ILandroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable;" />
-		<method name="getInstalledApplications(I)Ljava/util/List;" />
-		<method name="getInstalledPackages(I)Ljava/util/List;" />
-		<method name="getInstallerPackageName(Ljava/lang/String;)Ljava/lang/String;" since="5" />
-		<method name="getInstrumentationInfo(Landroid/content/ComponentName;I)Landroid/content/pm/InstrumentationInfo;" />
-		<method name="getLaunchIntentForPackage(Ljava/lang/String;)Landroid/content/Intent;" since="3" />
-		<method name="getLeanbackLaunchIntentForPackage(Ljava/lang/String;)Landroid/content/Intent;" since="21" />
-		<method name="getNameForUid(I)Ljava/lang/String;" />
-		<method name="getPackageArchiveInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;" />
-		<method name="getPackageGids(Ljava/lang/String;)[I" />
-		<method name="getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;" />
-		<method name="getPackagesForUid(I)[Ljava/lang/String;" />
-		<method name="getPackagesHoldingPermissions([Ljava/lang/String;I)Ljava/util/List;" since="18" />
-		<method name="getPermissionGroupInfo(Ljava/lang/String;I)Landroid/content/pm/PermissionGroupInfo;" />
-		<method name="getPermissionInfo(Ljava/lang/String;I)Landroid/content/pm/PermissionInfo;" />
-		<method name="getPreferredActivities(Ljava/util/List;Ljava/util/List;Ljava/lang/String;)I" />
-		<method name="getPreferredPackages(I)Ljava/util/List;" />
-		<method name="getProviderInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ProviderInfo;" since="9" />
-		<method name="getReceiverInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ActivityInfo;" />
-		<method name="getResourcesForActivity(Landroid/content/ComponentName;)Landroid/content/res/Resources;" />
-		<method name="getResourcesForApplication(Landroid/content/pm/ApplicationInfo;)Landroid/content/res/Resources;" />
-		<method name="getResourcesForApplication(Ljava/lang/String;)Landroid/content/res/Resources;" />
-		<method name="getServiceInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ServiceInfo;" />
-		<method name="getSystemAvailableFeatures()[Landroid/content/pm/FeatureInfo;" since="5" />
-		<method name="getSystemSharedLibraryNames()[Ljava/lang/String;" since="3" />
-		<method name="getText(Ljava/lang/String;ILandroid/content/pm/ApplicationInfo;)Ljava/lang/CharSequence;" />
-		<method name="getXml(Ljava/lang/String;ILandroid/content/pm/ApplicationInfo;)Landroid/content/res/XmlResourceParser;" />
-		<method name="hasSystemFeature(Ljava/lang/String;)Z" since="5" />
-		<method name="installPackage(Landroid/net/Uri;)V" />
-		<method name="installPackage(Landroid/net/Uri;Landroid/content/pm/IPackageInstallObserver;I)V" />
-		<method name="isSafeMode()Z" since="3" />
-		<method name="queryBroadcastReceivers(Landroid/content/Intent;I)Ljava/util/List;" />
-		<method name="queryContentProviders(Ljava/lang/String;II)Ljava/util/List;" />
-		<method name="queryInstrumentation(Ljava/lang/String;I)Ljava/util/List;" />
-		<method name="queryIntentActivities(Landroid/content/Intent;I)Ljava/util/List;" />
-		<method name="queryIntentActivityOptions(Landroid/content/ComponentName;[Landroid/content/Intent;Landroid/content/Intent;I)Ljava/util/List;" />
-		<method name="queryIntentContentProviders(Landroid/content/Intent;I)Ljava/util/List;" since="19" />
-		<method name="queryIntentServices(Landroid/content/Intent;I)Ljava/util/List;" />
-		<method name="queryPermissionsByGroup(Ljava/lang/String;I)Ljava/util/List;" />
-		<method name="removePackageFromPreferred(Ljava/lang/String;)V" />
-		<method name="removePermission(Ljava/lang/String;)V" />
-		<method name="resolveActivity(Landroid/content/Intent;I)Landroid/content/pm/ResolveInfo;" />
-		<method name="resolveContentProvider(Ljava/lang/String;I)Landroid/content/pm/ProviderInfo;" />
-		<method name="resolveService(Landroid/content/Intent;I)Landroid/content/pm/ResolveInfo;" />
-		<method name="setApplicationEnabledSetting(Ljava/lang/String;II)V" />
-		<method name="setComponentEnabledSetting(Landroid/content/ComponentName;II)V" />
-		<method name="setInstallerPackageName(Ljava/lang/String;Ljava/lang/String;)V" since="11" />
-		<method name="verifyPendingInstall(II)V" since="14" />
-		<field name="COMPONENT_ENABLED_STATE_DEFAULT" />
-		<field name="COMPONENT_ENABLED_STATE_DISABLED" />
-		<field name="COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED" since="18" />
-		<field name="COMPONENT_ENABLED_STATE_DISABLED_USER" since="14" />
-		<field name="COMPONENT_ENABLED_STATE_ENABLED" />
-		<field name="DONT_KILL_APP" />
-		<field name="EXTRA_VERIFICATION_ID" since="14" />
-		<field name="EXTRA_VERIFICATION_RESULT" since="17" />
-		<field name="FEATURE_APP_WIDGETS" since="18" />
-		<field name="FEATURE_AUDIO_LOW_LATENCY" since="9" />
-		<field name="FEATURE_BACKUP" since="20" />
-		<field name="FEATURE_BLUETOOTH" since="8" />
-		<field name="FEATURE_BLUETOOTH_LE" since="18" />
-		<field name="FEATURE_CAMERA" since="7" />
-		<field name="FEATURE_CAMERA_ANY" since="17" />
-		<field name="FEATURE_CAMERA_AUTOFOCUS" since="7" />
-		<field name="FEATURE_CAMERA_EXTERNAL" since="20" />
-		<field name="FEATURE_CAMERA_FLASH" since="7" />
-		<field name="FEATURE_CAMERA_FRONT" since="9" />
-		<field name="FEATURE_CONSUMER_IR" since="19" />
-		<field name="FEATURE_DEVICE_ADMIN" since="19" />
-		<field name="FEATURE_FAKETOUCH" since="11" />
-		<field name="FEATURE_FAKETOUCH_MULTITOUCH_DISTINCT" since="13" />
-		<field name="FEATURE_FAKETOUCH_MULTITOUCH_JAZZHAND" since="13" />
-		<field name="FEATURE_HOME_SCREEN" since="18" />
-		<field name="FEATURE_INPUT_METHODS" since="18" />
-		<field name="FEATURE_LEANBACK" since="21" />
-		<field name="FEATURE_LIVE_WALLPAPER" since="7" />
-		<field name="FEATURE_LOCATION" since="8" />
-		<field name="FEATURE_LOCATION_GPS" since="8" />
-		<field name="FEATURE_LOCATION_NETWORK" since="8" />
-		<field name="FEATURE_MANAGED_PROFILES" since="21" />
-		<field name="FEATURE_MICROPHONE" since="8" />
-		<field name="FEATURE_NFC" since="9" />
-		<field name="FEATURE_NFC_HOST_CARD_EMULATION" since="19" />
-		<field name="FEATURE_PRINTING" since="20" />
-		<field name="FEATURE_SCREEN_LANDSCAPE" since="13" />
-		<field name="FEATURE_SCREEN_PORTRAIT" since="13" />
-		<field name="FEATURE_SENSOR_ACCELEROMETER" since="8" />
-		<field name="FEATURE_SENSOR_BAROMETER" since="9" />
-		<field name="FEATURE_SENSOR_COMPASS" since="8" />
-		<field name="FEATURE_SENSOR_GYROSCOPE" since="9" />
-		<field name="FEATURE_SENSOR_HEART_RATE" since="20" />
-		<field name="FEATURE_SENSOR_LIGHT" since="7" />
-		<field name="FEATURE_SENSOR_PROXIMITY" since="7" />
-		<field name="FEATURE_SENSOR_STEP_COUNTER" since="19" />
-		<field name="FEATURE_SENSOR_STEP_DETECTOR" since="19" />
-		<field name="FEATURE_SIP" since="9" />
-		<field name="FEATURE_SIP_VOIP" since="9" />
-		<field name="FEATURE_TELEPHONY" since="7" />
-		<field name="FEATURE_TELEPHONY_CDMA" since="7" />
-		<field name="FEATURE_TELEPHONY_GSM" since="7" />
-		<field name="FEATURE_TELEVISION" since="16" />
-		<field name="FEATURE_TOUCHSCREEN" since="8" />
-		<field name="FEATURE_TOUCHSCREEN_MULTITOUCH" since="7" />
-		<field name="FEATURE_TOUCHSCREEN_MULTITOUCH_DISTINCT" since="8" />
-		<field name="FEATURE_TOUCHSCREEN_MULTITOUCH_JAZZHAND" since="9" />
-		<field name="FEATURE_USB_ACCESSORY" since="12" />
-		<field name="FEATURE_USB_HOST" since="12" />
-		<field name="FEATURE_WATCH" since="20" />
-		<field name="FEATURE_WEBVIEW" since="20" />
-		<field name="FEATURE_WIFI" since="8" />
-		<field name="FEATURE_WIFI_DIRECT" since="14" />
-		<field name="FORWARD_LOCK_PACKAGE" />
-		<field name="GET_ACTIVITIES" />
-		<field name="GET_CONFIGURATIONS" since="3" />
-		<field name="GET_DISABLED_COMPONENTS" />
-		<field name="GET_DISABLED_UNTIL_USED_COMPONENTS" since="18" />
-		<field name="GET_GIDS" />
-		<field name="GET_INSTRUMENTATION" />
-		<field name="GET_INTENT_FILTERS" />
-		<field name="GET_META_DATA" />
-		<field name="GET_PERMISSIONS" />
-		<field name="GET_PROVIDERS" />
-		<field name="GET_RECEIVERS" />
-		<field name="GET_RESOLVED_FILTER" />
-		<field name="GET_SERVICES" />
-		<field name="GET_SHARED_LIBRARY_FILES" />
-		<field name="GET_SIGNATURES" />
-		<field name="GET_UNINSTALLED_PACKAGES" since="3" />
-		<field name="GET_URI_PERMISSION_PATTERNS" />
-		<field name="INSTALL_FAILED_ALREADY_EXISTS" />
-		<field name="INSTALL_FAILED_CONFLICTING_PROVIDER" since="3" />
-		<field name="INSTALL_FAILED_DEXOPT" />
-		<field name="INSTALL_FAILED_DUPLICATE_PACKAGE" />
-		<field name="INSTALL_FAILED_INSUFFICIENT_STORAGE" />
-		<field name="INSTALL_FAILED_INVALID_APK" />
-		<field name="INSTALL_FAILED_INVALID_URI" />
-		<field name="INSTALL_FAILED_MISSING_SHARED_LIBRARY" />
-		<field name="INSTALL_FAILED_NO_SHARED_USER" />
-		<field name="INSTALL_FAILED_OLDER_SDK" />
-		<field name="INSTALL_FAILED_REPLACE_COULDNT_DELETE" />
-		<field name="INSTALL_FAILED_SHARED_USER_INCOMPATIBLE" />
-		<field name="INSTALL_FAILED_UPDATE_INCOMPATIBLE" />
-		<field name="INSTALL_PARSE_FAILED_BAD_MANIFEST" />
-		<field name="INSTALL_PARSE_FAILED_BAD_PACKAGE_NAME" />
-		<field name="INSTALL_PARSE_FAILED_BAD_SHARED_USER_ID" />
-		<field name="INSTALL_PARSE_FAILED_CERTIFICATE_ENCODING" />
-		<field name="INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES" />
-		<field name="INSTALL_PARSE_FAILED_MANIFEST_EMPTY" />
-		<field name="INSTALL_PARSE_FAILED_MANIFEST_MALFORMED" />
-		<field name="INSTALL_PARSE_FAILED_NOT_APK" />
-		<field name="INSTALL_PARSE_FAILED_NO_CERTIFICATES" />
-		<field name="INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION" />
-		<field name="INSTALL_SUCCEEDED" />
-		<field name="MATCH_DEFAULT_ONLY" />
-		<field name="MAXIMUM_VERIFICATION_TIMEOUT" since="17" />
-		<field name="PERMISSION_DENIED" />
-		<field name="PERMISSION_GRANTED" />
-		<field name="PKG_INSTALL_COMPLETE" />
-		<field name="PKG_INSTALL_INCOMPLETE" />
-		<field name="REPLACE_EXISTING_PACKAGE" />
-		<field name="SIGNATURE_FIRST_NOT_SIGNED" />
-		<field name="SIGNATURE_MATCH" />
-		<field name="SIGNATURE_NEITHER_SIGNED" />
-		<field name="SIGNATURE_NO_MATCH" />
-		<field name="SIGNATURE_SECOND_NOT_SIGNED" />
-		<field name="SIGNATURE_UNKNOWN_PACKAGE" />
-		<field name="VERIFICATION_ALLOW" since="14" />
-		<field name="VERIFICATION_REJECT" since="14" />
-	</class>
-	<class name="android/content/pm/PackageManager$NameNotFoundException" since="1">
-		<extends name="android/util/AndroidException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/content/pm/PackageStats" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(Landroid/content/pm/PackageStats;)V" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<field name="CREATOR" />
-		<field name="cacheSize" />
-		<field name="codeSize" />
-		<field name="dataSize" />
-		<field name="externalCacheSize" since="11" />
-		<field name="externalCodeSize" since="14" />
-		<field name="externalDataSize" since="11" />
-		<field name="externalMediaSize" since="11" />
-		<field name="externalObbSize" since="11" />
-		<field name="packageName" />
-	</class>
-	<class name="android/content/pm/PathPermission" since="4">
-		<extends name="android/os/PatternMatcher" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" />
-		<method name="&lt;init>(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" />
-		<method name="getReadPermission()Ljava/lang/String;" />
-		<method name="getWritePermission()Ljava/lang/String;" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/content/pm/PermissionGroupInfo" since="1">
-		<extends name="android/content/pm/PackageItemInfo" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/content/pm/PermissionGroupInfo;)V" />
-		<method name="loadDescription(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;" />
-		<field name="CREATOR" />
-		<field name="FLAG_PERSONAL_INFO" since="17" />
-		<field name="descriptionRes" />
-		<field name="flags" since="17" />
-		<field name="nonLocalizedDescription" />
-		<field name="priority" since="17" />
-	</class>
-	<class name="android/content/pm/PermissionInfo" since="1">
-		<extends name="android/content/pm/PackageItemInfo" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/content/pm/PermissionInfo;)V" />
-		<method name="loadDescription(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;" />
-		<field name="CREATOR" />
-		<field name="FLAG_COSTS_MONEY" since="17" />
-		<field name="PROTECTION_DANGEROUS" />
-		<field name="PROTECTION_FLAG_DEVELOPMENT" since="16" />
-		<field name="PROTECTION_FLAG_SYSTEM" since="16" />
-		<field name="PROTECTION_MASK_BASE" since="16" />
-		<field name="PROTECTION_MASK_FLAGS" since="16" />
-		<field name="PROTECTION_NORMAL" />
-		<field name="PROTECTION_SIGNATURE" />
-		<field name="PROTECTION_SIGNATURE_OR_SYSTEM" />
-		<field name="descriptionRes" />
-		<field name="flags" since="17" />
-		<field name="group" />
-		<field name="nonLocalizedDescription" />
-		<field name="protectionLevel" />
-	</class>
-	<class name="android/content/pm/ProviderInfo" since="1">
-		<extends name="android/content/pm/ComponentInfo" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/content/pm/ProviderInfo;)V" />
-		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" since="19" />
-		<field name="CREATOR" />
-		<field name="FLAG_SINGLE_USER" since="17" />
-		<field name="authority" />
-		<field name="flags" since="17" />
-		<field name="grantUriPermissions" />
-		<field name="initOrder" />
-		<field name="isSyncable" />
-		<field name="multiprocess" />
-		<field name="pathPermissions" since="4" />
-		<field name="readPermission" />
-		<field name="uriPermissionPatterns" />
-		<field name="writePermission" />
-	</class>
-	<class name="android/content/pm/ResolveInfo" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/content/pm/ResolveInfo;)V" since="17" />
-		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" />
-		<method name="getIconResource()I" />
-		<method name="loadIcon(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;" />
-		<method name="loadLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;" />
-		<field name="CREATOR" />
-		<field name="activityInfo" />
-		<field name="filter" />
-		<field name="icon" />
-		<field name="isDefault" />
-		<field name="labelRes" />
-		<field name="match" />
-		<field name="nonLocalizedLabel" />
-		<field name="preferredOrder" />
-		<field name="priority" />
-		<field name="providerInfo" since="19" />
-		<field name="resolvePackageName" since="5" />
-		<field name="serviceInfo" />
-		<field name="specificIndex" />
-	</class>
-	<class name="android/content/pm/ResolveInfo$DisplayNameComparator" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/Comparator" />
-		<method name="&lt;init>(Landroid/content/pm/PackageManager;)V" />
-		<method name="compare(Landroid/content/pm/ResolveInfo;Landroid/content/pm/ResolveInfo;)I" />
-	</class>
-	<class name="android/content/pm/ServiceInfo" since="1">
-		<extends name="android/content/pm/ComponentInfo" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/content/pm/ServiceInfo;)V" />
-		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" since="5" />
-		<field name="CREATOR" />
-		<field name="FLAG_ISOLATED_PROCESS" since="16" />
-		<field name="FLAG_SINGLE_USER" since="17" />
-		<field name="FLAG_STOP_WITH_TASK" since="14" />
-		<field name="flags" since="14" />
-		<field name="permission" />
-	</class>
-	<class name="android/content/pm/Signature" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>([B)V" />
-		<method name="toByteArray()[B" />
-		<method name="toChars()[C" />
-		<method name="toChars([C[I)[C" />
-		<method name="toCharsString()Ljava/lang/String;" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/content/res/AssetFileDescriptor" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" since="3" />
-		<implements name="java/io/Closeable" since="19" />
-		<method name="&lt;init>(Landroid/os/ParcelFileDescriptor;JJ)V" />
-		<method name="&lt;init>(Landroid/os/ParcelFileDescriptor;JJLandroid/os/Bundle;)V" since="19" />
-		<method name="close()V" />
-		<method name="createInputStream()Ljava/io/FileInputStream;" since="3" />
-		<method name="createOutputStream()Ljava/io/FileOutputStream;" since="3" />
-		<method name="getDeclaredLength()J" since="3" />
-		<method name="getExtras()Landroid/os/Bundle;" since="19" />
-		<method name="getFileDescriptor()Ljava/io/FileDescriptor;" />
-		<method name="getLength()J" />
-		<method name="getParcelFileDescriptor()Landroid/os/ParcelFileDescriptor;" />
-		<method name="getStartOffset()J" />
-		<field name="CREATOR" since="3" />
-		<field name="UNKNOWN_LENGTH" since="3" />
-	</class>
-	<class name="android/content/res/AssetFileDescriptor$AutoCloseInputStream" since="3">
-		<extends name="android/os/ParcelFileDescriptor$AutoCloseInputStream" />
-		<method name="&lt;init>(Landroid/content/res/AssetFileDescriptor;)V" />
-	</class>
-	<class name="android/content/res/AssetFileDescriptor$AutoCloseOutputStream" since="3">
-		<extends name="android/os/ParcelFileDescriptor$AutoCloseOutputStream" />
-		<method name="&lt;init>(Landroid/content/res/AssetFileDescriptor;)V" />
-	</class>
-	<class name="android/content/res/AssetManager" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="close()V" />
-		<method name="getLocales()[Ljava/lang/String;" />
-		<method name="list(Ljava/lang/String;)[Ljava/lang/String;" />
-		<method name="open(Ljava/lang/String;)Ljava/io/InputStream;" />
-		<method name="open(Ljava/lang/String;I)Ljava/io/InputStream;" />
-		<method name="openFd(Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;" />
-		<method name="openNonAssetFd(ILjava/lang/String;)Landroid/content/res/AssetFileDescriptor;" />
-		<method name="openNonAssetFd(Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;" />
-		<method name="openXmlResourceParser(ILjava/lang/String;)Landroid/content/res/XmlResourceParser;" />
-		<method name="openXmlResourceParser(Ljava/lang/String;)Landroid/content/res/XmlResourceParser;" />
-		<field name="ACCESS_BUFFER" />
-		<field name="ACCESS_RANDOM" />
-		<field name="ACCESS_STREAMING" />
-		<field name="ACCESS_UNKNOWN" />
-	</class>
-	<class name="android/content/res/AssetManager$AssetInputStream" since="1">
-		<extends name="java/io/InputStream" />
-		<method name="&lt;init>(Landroid/content/res/AssetManager;)V" />
-		<method name="getAssetInt()I" />
-	</class>
-	<class name="android/content/res/ColorStateList" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>([[I[I)V" />
-		<method name="createFromXml(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;)Landroid/content/res/ColorStateList;" />
-		<method name="getColorForState([II)I" />
-		<method name="getDefaultColor()I" />
-		<method name="isOpaque()Z" since="21" />
-		<method name="isStateful()Z" />
-		<method name="valueOf(I)Landroid/content/res/ColorStateList;" />
-		<method name="withAlpha(I)Landroid/content/res/ColorStateList;" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/content/res/Configuration" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<implements name="java/lang/Comparable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/content/res/Configuration;)V" />
-		<method name="compareTo(Landroid/content/res/Configuration;)I" />
-		<method name="diff(Landroid/content/res/Configuration;)I" />
-		<method name="equals(Landroid/content/res/Configuration;)Z" />
-		<method name="getLayoutDirection()I" since="17" />
-		<method name="isLayoutSizeAtLeast(I)Z" since="11" />
-		<method name="needNewResources(II)Z" />
-		<method name="readFromParcel(Landroid/os/Parcel;)V" since="8" />
-		<method name="setLayoutDirection(Ljava/util/Locale;)V" since="17" />
-		<method name="setLocale(Ljava/util/Locale;)V" since="17" />
-		<method name="setTo(Landroid/content/res/Configuration;)V" since="8" />
-		<method name="setToDefaults()V" />
-		<method name="updateFrom(Landroid/content/res/Configuration;)I" />
-		<field name="CREATOR" />
-		<field name="DENSITY_DPI_UNDEFINED" since="17" />
-		<field name="HARDKEYBOARDHIDDEN_NO" since="3" />
-		<field name="HARDKEYBOARDHIDDEN_UNDEFINED" since="3" />
-		<field name="HARDKEYBOARDHIDDEN_YES" since="3" />
-		<field name="KEYBOARDHIDDEN_NO" />
-		<field name="KEYBOARDHIDDEN_UNDEFINED" />
-		<field name="KEYBOARDHIDDEN_YES" />
-		<field name="KEYBOARD_12KEY" />
-		<field name="KEYBOARD_NOKEYS" />
-		<field name="KEYBOARD_QWERTY" />
-		<field name="KEYBOARD_UNDEFINED" />
-		<field name="MNC_ZERO" since="19" />
-		<field name="NAVIGATIONHIDDEN_NO" since="5" />
-		<field name="NAVIGATIONHIDDEN_UNDEFINED" since="5" />
-		<field name="NAVIGATIONHIDDEN_YES" since="5" />
-		<field name="NAVIGATION_DPAD" />
-		<field name="NAVIGATION_NONAV" />
-		<field name="NAVIGATION_TRACKBALL" />
-		<field name="NAVIGATION_UNDEFINED" />
-		<field name="NAVIGATION_WHEEL" />
-		<field name="ORIENTATION_LANDSCAPE" />
-		<field name="ORIENTATION_PORTRAIT" />
-		<field name="ORIENTATION_SQUARE" />
-		<field name="ORIENTATION_UNDEFINED" />
-		<field name="SCREENLAYOUT_LAYOUTDIR_LTR" since="17" />
-		<field name="SCREENLAYOUT_LAYOUTDIR_MASK" since="17" />
-		<field name="SCREENLAYOUT_LAYOUTDIR_RTL" since="17" />
-		<field name="SCREENLAYOUT_LAYOUTDIR_SHIFT" since="17" />
-		<field name="SCREENLAYOUT_LAYOUTDIR_UNDEFINED" since="17" />
-		<field name="SCREENLAYOUT_LONG_MASK" since="4" />
-		<field name="SCREENLAYOUT_LONG_NO" since="4" />
-		<field name="SCREENLAYOUT_LONG_UNDEFINED" since="4" />
-		<field name="SCREENLAYOUT_LONG_YES" since="4" />
-		<field name="SCREENLAYOUT_SIZE_LARGE" since="4" />
-		<field name="SCREENLAYOUT_SIZE_MASK" since="4" />
-		<field name="SCREENLAYOUT_SIZE_NORMAL" since="4" />
-		<field name="SCREENLAYOUT_SIZE_SMALL" since="4" />
-		<field name="SCREENLAYOUT_SIZE_UNDEFINED" since="4" />
-		<field name="SCREENLAYOUT_SIZE_XLARGE" since="9" />
-		<field name="SCREENLAYOUT_UNDEFINED" since="17" />
-		<field name="SCREEN_HEIGHT_DP_UNDEFINED" since="13" />
-		<field name="SCREEN_WIDTH_DP_UNDEFINED" since="13" />
-		<field name="SMALLEST_SCREEN_WIDTH_DP_UNDEFINED" since="13" />
-		<field name="TOUCHSCREEN_FINGER" />
-		<field name="TOUCHSCREEN_NOTOUCH" />
-		<field name="TOUCHSCREEN_STYLUS" />
-		<field name="TOUCHSCREEN_UNDEFINED" />
-		<field name="UI_MODE_NIGHT_MASK" since="8" />
-		<field name="UI_MODE_NIGHT_NO" since="8" />
-		<field name="UI_MODE_NIGHT_UNDEFINED" since="8" />
-		<field name="UI_MODE_NIGHT_YES" since="8" />
-		<field name="UI_MODE_TYPE_APPLIANCE" since="16" />
-		<field name="UI_MODE_TYPE_CAR" since="8" />
-		<field name="UI_MODE_TYPE_DESK" since="8" />
-		<field name="UI_MODE_TYPE_MASK" since="8" />
-		<field name="UI_MODE_TYPE_NORMAL" since="8" />
-		<field name="UI_MODE_TYPE_TELEVISION" since="13" />
-		<field name="UI_MODE_TYPE_UNDEFINED" since="8" />
-		<field name="UI_MODE_TYPE_WATCH" since="20" />
-		<field name="densityDpi" since="17" />
-		<field name="fontScale" />
-		<field name="hardKeyboardHidden" since="3" />
-		<field name="keyboard" />
-		<field name="keyboardHidden" />
-		<field name="locale" />
-		<field name="mcc" />
-		<field name="mnc" />
-		<field name="navigation" />
-		<field name="navigationHidden" since="5" />
-		<field name="orientation" />
-		<field name="screenHeightDp" since="13" />
-		<field name="screenLayout" since="4" />
-		<field name="screenWidthDp" since="13" />
-		<field name="smallestScreenWidthDp" since="13" />
-		<field name="touchscreen" />
-		<field name="uiMode" since="8" />
-	</class>
-	<class name="android/content/res/ObbInfo" since="9">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<field name="CREATOR" />
-		<field name="OBB_OVERLAY" />
-		<field name="filename" />
-		<field name="flags" />
-		<field name="packageName" />
-		<field name="version" />
-	</class>
-	<class name="android/content/res/ObbScanner" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getObbInfo(Ljava/lang/String;)Landroid/content/res/ObbInfo;" />
-	</class>
-	<class name="android/content/res/Resources" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/res/AssetManager;Landroid/util/DisplayMetrics;Landroid/content/res/Configuration;)V" />
-		<method name="finishPreloading()V" />
-		<method name="flushLayoutCache()V" />
-		<method name="getAnimation(I)Landroid/content/res/XmlResourceParser;" />
-		<method name="getAssets()Landroid/content/res/AssetManager;" />
-		<method name="getBoolean(I)Z" since="3" />
-		<method name="getColor(I)I" />
-		<method name="getColorStateList(I)Landroid/content/res/ColorStateList;" />
-		<method name="getConfiguration()Landroid/content/res/Configuration;" />
-		<method name="getDimension(I)F" />
-		<method name="getDimensionPixelOffset(I)I" />
-		<method name="getDimensionPixelSize(I)I" />
-		<method name="getDisplayMetrics()Landroid/util/DisplayMetrics;" />
-		<method name="getDrawable(I)Landroid/graphics/drawable/Drawable;" />
-		<method name="getDrawable(ILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;" since="21" />
-		<method name="getDrawableForDensity(II)Landroid/graphics/drawable/Drawable;" since="15" />
-		<method name="getDrawableForDensity(IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;" since="21" />
-		<method name="getFraction(III)F" since="3" />
-		<method name="getIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I" />
-		<method name="getIntArray(I)[I" />
-		<method name="getInteger(I)I" />
-		<method name="getLayout(I)Landroid/content/res/XmlResourceParser;" />
-		<method name="getMovie(I)Landroid/graphics/Movie;" />
-		<method name="getQuantityString(II)Ljava/lang/String;" />
-		<method name="getQuantityString(II[Ljava/lang/Object;)Ljava/lang/String;" />
-		<method name="getQuantityText(II)Ljava/lang/CharSequence;" />
-		<method name="getResourceEntryName(I)Ljava/lang/String;" />
-		<method name="getResourceName(I)Ljava/lang/String;" />
-		<method name="getResourcePackageName(I)Ljava/lang/String;" />
-		<method name="getResourceTypeName(I)Ljava/lang/String;" />
-		<method name="getString(I)Ljava/lang/String;" />
-		<method name="getString(I[Ljava/lang/Object;)Ljava/lang/String;" />
-		<method name="getStringArray(I)[Ljava/lang/String;" />
-		<method name="getSystem()Landroid/content/res/Resources;" />
-		<method name="getText(I)Ljava/lang/CharSequence;" />
-		<method name="getText(ILjava/lang/CharSequence;)Ljava/lang/CharSequence;" />
-		<method name="getTextArray(I)[Ljava/lang/CharSequence;" />
-		<method name="getValue(ILandroid/util/TypedValue;Z)V" />
-		<method name="getValue(Ljava/lang/String;Landroid/util/TypedValue;Z)V" />
-		<method name="getValueForDensity(IILandroid/util/TypedValue;Z)V" since="15" />
-		<method name="getXml(I)Landroid/content/res/XmlResourceParser;" />
-		<method name="newTheme()Landroid/content/res/Resources$Theme;" />
-		<method name="obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;" />
-		<method name="obtainTypedArray(I)Landroid/content/res/TypedArray;" />
-		<method name="openRawResource(I)Ljava/io/InputStream;" />
-		<method name="openRawResource(ILandroid/util/TypedValue;)Ljava/io/InputStream;" since="3" />
-		<method name="openRawResourceFd(I)Landroid/content/res/AssetFileDescriptor;" />
-		<method name="parseBundleExtra(Ljava/lang/String;Landroid/util/AttributeSet;Landroid/os/Bundle;)V" since="3" />
-		<method name="parseBundleExtras(Landroid/content/res/XmlResourceParser;Landroid/os/Bundle;)V" since="3" />
-		<method name="updateConfiguration(Landroid/content/res/Configuration;Landroid/util/DisplayMetrics;)V" />
-	</class>
-	<class name="android/content/res/Resources$NotFoundException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/content/res/Resources$Theme" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/res/Resources;)V" />
-		<method name="applyStyle(IZ)V" />
-		<method name="dump(ILjava/lang/String;Ljava/lang/String;)V" />
-		<method name="getDrawable(I)Landroid/graphics/drawable/Drawable;" since="21" />
-		<method name="getResources()Landroid/content/res/Resources;" since="21" />
-		<method name="obtainStyledAttributes(I[I)Landroid/content/res/TypedArray;" />
-		<method name="obtainStyledAttributes(Landroid/util/AttributeSet;[III)Landroid/content/res/TypedArray;" />
-		<method name="obtainStyledAttributes([I)Landroid/content/res/TypedArray;" />
-		<method name="resolveAttribute(ILandroid/util/TypedValue;Z)Z" />
-		<method name="setTo(Landroid/content/res/Resources$Theme;)V" />
-	</class>
-	<class name="android/content/res/TypedArray" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getBoolean(IZ)Z" />
-		<method name="getColor(II)I" />
-		<method name="getColorStateList(I)Landroid/content/res/ColorStateList;" />
-		<method name="getDimension(IF)F" />
-		<method name="getDimensionPixelOffset(II)I" />
-		<method name="getDimensionPixelSize(II)I" />
-		<method name="getDrawable(I)Landroid/graphics/drawable/Drawable;" />
-		<method name="getFloat(IF)F" />
-		<method name="getFraction(IIIF)F" />
-		<method name="getIndex(I)I" />
-		<method name="getIndexCount()I" />
-		<method name="getInt(II)I" />
-		<method name="getInteger(II)I" />
-		<method name="getLayoutDimension(II)I" since="3" />
-		<method name="getLayoutDimension(ILjava/lang/String;)I" />
-		<method name="getNonResourceString(I)Ljava/lang/String;" />
-		<method name="getPositionDescription()Ljava/lang/String;" />
-		<method name="getResourceId(II)I" />
-		<method name="getResources()Landroid/content/res/Resources;" />
-		<method name="getString(I)Ljava/lang/String;" />
-		<method name="getText(I)Ljava/lang/CharSequence;" />
-		<method name="getTextArray(I)[Ljava/lang/CharSequence;" />
-		<method name="getType(I)I" since="21" />
-		<method name="getValue(ILandroid/util/TypedValue;)Z" />
-		<method name="hasValue(I)Z" />
-		<method name="length()I" />
-		<method name="peekValue(I)Landroid/util/TypedValue;" />
-		<method name="recycle()V" />
-	</class>
-	<class name="android/content/res/XmlResourceParser" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/util/AttributeSet" />
-		<implements name="java/lang/AutoCloseable" since="19" />
-		<implements name="org/xmlpull/v1/XmlPullParser" />
-		<method name="close()V" />
-	</class>
-	<class name="android/database/AbstractCursor" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/database/CrossProcessCursor" />
-		<method name="&lt;init>()V" />
-		<method name="checkPosition()V" />
-		<method name="getNotificationUri()Landroid/net/Uri;" since="11" />
-		<method name="getUpdatedField(I)Ljava/lang/Object;" />
-		<method name="isFieldUpdated(I)Z" />
-		<method name="onChange(Z)V" />
-		<field name="mClosed" />
-		<field name="mContentResolver" />
-		<field name="mCurrentRowID" />
-		<field name="mPos" />
-		<field name="mRowIdColumnIndex" />
-		<field name="mUpdatedRows" />
-	</class>
-	<class name="android/database/AbstractCursor$SelfContentObserver" since="1">
-		<extends name="android/database/ContentObserver" />
-		<method name="&lt;init>(Landroid/database/AbstractCursor;)V" />
-	</class>
-	<class name="android/database/AbstractWindowedCursor" since="1">
-		<extends name="android/database/AbstractCursor" />
-		<method name="&lt;init>()V" />
-		<method name="hasWindow()Z" />
-		<method name="isBlob(I)Z" />
-		<method name="isFloat(I)Z" since="5" />
-		<method name="isLong(I)Z" since="5" />
-		<method name="isString(I)Z" since="5" />
-		<method name="setWindow(Landroid/database/CursorWindow;)V" />
-		<field name="mWindow" />
-	</class>
-	<class name="android/database/CharArrayBuffer" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>([C)V" />
-		<field name="data" />
-		<field name="sizeCopied" />
-	</class>
-	<class name="android/database/ContentObservable" since="1">
-		<extends name="android/database/Observable" />
-		<method name="&lt;init>()V" />
-		<method name="dispatchChange(Z)V" />
-		<method name="dispatchChange(ZLandroid/net/Uri;)V" since="16" />
-		<method name="notifyChange(Z)V" />
-		<method name="registerObserver(Landroid/database/ContentObserver;)V" />
-	</class>
-	<class name="android/database/ContentObserver" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/os/Handler;)V" />
-		<method name="deliverSelfNotifications()Z" />
-		<method name="dispatchChange(Z)V" />
-		<method name="dispatchChange(ZLandroid/net/Uri;)V" since="16" />
-		<method name="onChange(Z)V" />
-		<method name="onChange(ZLandroid/net/Uri;)V" since="16" />
-	</class>
-	<class name="android/database/CrossProcessCursor" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/database/Cursor" />
-		<method name="fillWindow(ILandroid/database/CursorWindow;)V" />
-		<method name="getWindow()Landroid/database/CursorWindow;" />
-		<method name="onMove(II)Z" />
-	</class>
-	<class name="android/database/CrossProcessCursorWrapper" since="15">
-		<extends name="android/database/CursorWrapper" />
-		<implements name="android/database/CrossProcessCursor" />
-		<method name="&lt;init>(Landroid/database/Cursor;)V" />
-	</class>
-	<class name="android/database/Cursor" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Closeable" since="16" />
-		<method name="close()V" />
-		<method name="copyStringToBuffer(ILandroid/database/CharArrayBuffer;)V" />
-		<method name="deactivate()V" />
-		<method name="getBlob(I)[B" />
-		<method name="getColumnCount()I" />
-		<method name="getColumnIndex(Ljava/lang/String;)I" />
-		<method name="getColumnIndexOrThrow(Ljava/lang/String;)I" />
-		<method name="getColumnName(I)Ljava/lang/String;" />
-		<method name="getColumnNames()[Ljava/lang/String;" />
-		<method name="getCount()I" />
-		<method name="getDouble(I)D" />
-		<method name="getExtras()Landroid/os/Bundle;" />
-		<method name="getFloat(I)F" />
-		<method name="getInt(I)I" />
-		<method name="getLong(I)J" />
-		<method name="getNotificationUri()Landroid/net/Uri;" since="19" />
-		<method name="getPosition()I" />
-		<method name="getShort(I)S" />
-		<method name="getString(I)Ljava/lang/String;" />
-		<method name="getType(I)I" since="11" />
-		<method name="getWantsAllOnMoveCalls()Z" />
-		<method name="isAfterLast()Z" />
-		<method name="isBeforeFirst()Z" />
-		<method name="isClosed()Z" />
-		<method name="isFirst()Z" />
-		<method name="isLast()Z" />
-		<method name="isNull(I)Z" />
-		<method name="move(I)Z" />
-		<method name="moveToFirst()Z" />
-		<method name="moveToLast()Z" />
-		<method name="moveToNext()Z" />
-		<method name="moveToPosition(I)Z" />
-		<method name="moveToPrevious()Z" />
-		<method name="registerContentObserver(Landroid/database/ContentObserver;)V" />
-		<method name="registerDataSetObserver(Landroid/database/DataSetObserver;)V" />
-		<method name="requery()Z" />
-		<method name="respond(Landroid/os/Bundle;)Landroid/os/Bundle;" />
-		<method name="setNotificationUri(Landroid/content/ContentResolver;Landroid/net/Uri;)V" />
-		<method name="unregisterContentObserver(Landroid/database/ContentObserver;)V" />
-		<method name="unregisterDataSetObserver(Landroid/database/DataSetObserver;)V" />
-		<field name="FIELD_TYPE_BLOB" since="11" />
-		<field name="FIELD_TYPE_FLOAT" since="11" />
-		<field name="FIELD_TYPE_INTEGER" since="11" />
-		<field name="FIELD_TYPE_NULL" since="11" />
-		<field name="FIELD_TYPE_STRING" since="11" />
-	</class>
-	<class name="android/database/CursorIndexOutOfBoundsException" since="1">
-		<extends name="java/lang/IndexOutOfBoundsException" />
-		<method name="&lt;init>(II)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/database/CursorJoiner" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Iterable" />
-		<implements name="java/util/Iterator" />
-		<method name="&lt;init>(Landroid/database/Cursor;[Ljava/lang/String;Landroid/database/Cursor;[Ljava/lang/String;)V" />
-		<method name="next()Landroid/database/CursorJoiner$Result;" />
-	</class>
-	<class name="android/database/CursorJoiner$Result" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/database/CursorJoiner$Result;" />
-		<method name="values()[Landroid/database/CursorJoiner$Result;" />
-		<field name="BOTH" />
-		<field name="LEFT" />
-		<field name="RIGHT" />
-	</class>
-	<class name="android/database/CursorWindow" since="1">
-		<extends name="android/database/sqlite/SQLiteClosable" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(Ljava/lang/String;)V" since="15" />
-		<method name="&lt;init>(Z)V" />
-		<method name="allocRow()Z" />
-		<method name="clear()V" />
-		<method name="close()V" />
-		<method name="copyStringToBuffer(IILandroid/database/CharArrayBuffer;)V" />
-		<method name="freeLastRow()V" />
-		<method name="getBlob(II)[B" />
-		<method name="getDouble(II)D" />
-		<method name="getFloat(II)F" />
-		<method name="getInt(II)I" />
-		<method name="getLong(II)J" />
-		<method name="getNumRows()I" />
-		<method name="getShort(II)S" />
-		<method name="getStartPosition()I" />
-		<method name="getString(II)Ljava/lang/String;" />
-		<method name="getType(II)I" since="11" />
-		<method name="isBlob(II)Z" />
-		<method name="isFloat(II)Z" since="5" />
-		<method name="isLong(II)Z" since="5" />
-		<method name="isNull(II)Z" />
-		<method name="isString(II)Z" since="5" />
-		<method name="newFromParcel(Landroid/os/Parcel;)Landroid/database/CursorWindow;" />
-		<method name="putBlob([BII)Z" />
-		<method name="putDouble(DII)Z" />
-		<method name="putLong(JII)Z" />
-		<method name="putNull(II)Z" />
-		<method name="putString(Ljava/lang/String;II)Z" />
-		<method name="setNumColumns(I)Z" />
-		<method name="setStartPosition(I)V" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/database/CursorWrapper" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/database/Cursor" />
-		<method name="&lt;init>(Landroid/database/Cursor;)V" />
-		<method name="getWrappedCursor()Landroid/database/Cursor;" since="11" />
-	</class>
-	<class name="android/database/DataSetObservable" since="1">
-		<extends name="android/database/Observable" />
-		<method name="&lt;init>()V" />
-		<method name="notifyChanged()V" />
-		<method name="notifyInvalidated()V" />
-	</class>
-	<class name="android/database/DataSetObserver" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="onChanged()V" />
-		<method name="onInvalidated()V" />
-	</class>
-	<class name="android/database/DatabaseErrorHandler" since="11">
-		<extends name="java/lang/Object" />
-		<method name="onCorruption(Landroid/database/sqlite/SQLiteDatabase;)V" />
-	</class>
-	<class name="android/database/DatabaseUtils" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="appendEscapedSQLString(Ljava/lang/StringBuilder;Ljava/lang/String;)V" />
-		<method name="appendSelectionArgs([Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;" since="11" />
-		<method name="appendValueToSql(Ljava/lang/StringBuilder;Ljava/lang/Object;)V" />
-		<method name="bindObjectToProgram(Landroid/database/sqlite/SQLiteProgram;ILjava/lang/Object;)V" />
-		<method name="blobFileDescriptorForQuery(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;" since="11" />
-		<method name="blobFileDescriptorForQuery(Landroid/database/sqlite/SQLiteStatement;[Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;" since="11" />
-		<method name="concatenateWhere(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" since="11" />
-		<method name="createDbFromSqlStatements(Landroid/content/Context;Ljava/lang/String;ILjava/lang/String;)V" />
-		<method name="cursorDoubleToContentValues(Landroid/database/Cursor;Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;)V" />
-		<method name="cursorDoubleToContentValuesIfPresent(Landroid/database/Cursor;Landroid/content/ContentValues;Ljava/lang/String;)V" since="8" />
-		<method name="cursorDoubleToCursorValues(Landroid/database/Cursor;Ljava/lang/String;Landroid/content/ContentValues;)V" />
-		<method name="cursorFloatToContentValuesIfPresent(Landroid/database/Cursor;Landroid/content/ContentValues;Ljava/lang/String;)V" since="8" />
-		<method name="cursorIntToContentValues(Landroid/database/Cursor;Ljava/lang/String;Landroid/content/ContentValues;)V" />
-		<method name="cursorIntToContentValues(Landroid/database/Cursor;Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;)V" />
-		<method name="cursorIntToContentValuesIfPresent(Landroid/database/Cursor;Landroid/content/ContentValues;Ljava/lang/String;)V" since="8" />
-		<method name="cursorLongToContentValues(Landroid/database/Cursor;Ljava/lang/String;Landroid/content/ContentValues;)V" />
-		<method name="cursorLongToContentValues(Landroid/database/Cursor;Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;)V" />
-		<method name="cursorLongToContentValuesIfPresent(Landroid/database/Cursor;Landroid/content/ContentValues;Ljava/lang/String;)V" since="8" />
-		<method name="cursorRowToContentValues(Landroid/database/Cursor;Landroid/content/ContentValues;)V" />
-		<method name="cursorShortToContentValuesIfPresent(Landroid/database/Cursor;Landroid/content/ContentValues;Ljava/lang/String;)V" since="8" />
-		<method name="cursorStringToContentValues(Landroid/database/Cursor;Ljava/lang/String;Landroid/content/ContentValues;)V" />
-		<method name="cursorStringToContentValues(Landroid/database/Cursor;Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;)V" />
-		<method name="cursorStringToContentValuesIfPresent(Landroid/database/Cursor;Landroid/content/ContentValues;Ljava/lang/String;)V" since="8" />
-		<method name="cursorStringToInsertHelper(Landroid/database/Cursor;Ljava/lang/String;Landroid/database/DatabaseUtils$InsertHelper;I)V" />
-		<method name="dumpCurrentRow(Landroid/database/Cursor;)V" />
-		<method name="dumpCurrentRow(Landroid/database/Cursor;Ljava/io/PrintStream;)V" />
-		<method name="dumpCurrentRow(Landroid/database/Cursor;Ljava/lang/StringBuilder;)V" />
-		<method name="dumpCurrentRowToString(Landroid/database/Cursor;)Ljava/lang/String;" />
-		<method name="dumpCursor(Landroid/database/Cursor;)V" />
-		<method name="dumpCursor(Landroid/database/Cursor;Ljava/io/PrintStream;)V" />
-		<method name="dumpCursor(Landroid/database/Cursor;Ljava/lang/StringBuilder;)V" />
-		<method name="dumpCursorToString(Landroid/database/Cursor;)Ljava/lang/String;" />
-		<method name="getCollationKey(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getHexCollationKey(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getSqlStatementType(Ljava/lang/String;)I" since="11" />
-		<method name="longForQuery(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/String;)J" />
-		<method name="longForQuery(Landroid/database/sqlite/SQLiteStatement;[Ljava/lang/String;)J" />
-		<method name="queryNumEntries(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;)J" />
-		<method name="queryNumEntries(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;Ljava/lang/String;)J" since="11" />
-		<method name="queryNumEntries(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)J" since="11" />
-		<method name="readExceptionFromParcel(Landroid/os/Parcel;)V" />
-		<method name="readExceptionWithFileNotFoundExceptionFromParcel(Landroid/os/Parcel;)V" />
-		<method name="readExceptionWithOperationApplicationExceptionFromParcel(Landroid/os/Parcel;)V" since="5" />
-		<method name="sqlEscapeString(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="stringForQuery(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="stringForQuery(Landroid/database/sqlite/SQLiteStatement;[Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="writeExceptionToParcel(Landroid/os/Parcel;Ljava/lang/Exception;)V" />
-		<field name="STATEMENT_ABORT" since="11" />
-		<field name="STATEMENT_ATTACH" since="11" />
-		<field name="STATEMENT_BEGIN" since="11" />
-		<field name="STATEMENT_COMMIT" since="11" />
-		<field name="STATEMENT_DDL" since="11" />
-		<field name="STATEMENT_OTHER" since="11" />
-		<field name="STATEMENT_PRAGMA" since="11" />
-		<field name="STATEMENT_SELECT" since="11" />
-		<field name="STATEMENT_UNPREPARED" since="11" />
-		<field name="STATEMENT_UPDATE" since="11" />
-	</class>
-	<class name="android/database/DatabaseUtils$InsertHelper" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;)V" />
-		<method name="bind(ID)V" />
-		<method name="bind(IF)V" />
-		<method name="bind(II)V" />
-		<method name="bind(IJ)V" />
-		<method name="bind(ILjava/lang/String;)V" />
-		<method name="bind(IZ)V" />
-		<method name="bind(I[B)V" />
-		<method name="bindNull(I)V" />
-		<method name="close()V" />
-		<method name="execute()J" />
-		<method name="getColumnIndex(Ljava/lang/String;)I" />
-		<method name="insert(Landroid/content/ContentValues;)J" />
-		<method name="prepareForInsert()V" />
-		<method name="prepareForReplace()V" />
-		<method name="replace(Landroid/content/ContentValues;)J" />
-		<field name="TABLE_INFO_PRAGMA_DEFAULT_INDEX" />
-	</class>
-	<class name="android/database/DefaultDatabaseErrorHandler" since="11">
-		<extends name="java/lang/Object" />
-		<implements name="android/database/DatabaseErrorHandler" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/database/MatrixCursor" since="1">
-		<extends name="android/database/AbstractCursor" />
-		<method name="&lt;init>([Ljava/lang/String;)V" />
-		<method name="&lt;init>([Ljava/lang/String;I)V" />
-		<method name="addRow(Ljava/lang/Iterable;)V" />
-		<method name="addRow([Ljava/lang/Object;)V" />
-		<method name="newRow()Landroid/database/MatrixCursor$RowBuilder;" />
-	</class>
-	<class name="android/database/MatrixCursor$RowBuilder" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/database/MatrixCursor;)V" />
-		<method name="add(Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;" />
-		<method name="add(Ljava/lang/String;Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;" since="19" />
-	</class>
-	<class name="android/database/MergeCursor" since="1">
-		<extends name="android/database/AbstractCursor" />
-		<method name="&lt;init>([Landroid/database/Cursor;)V" />
-	</class>
-	<class name="android/database/Observable" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="registerObserver(Ljava/lang/Object;)V" />
-		<method name="unregisterAll()V" />
-		<method name="unregisterObserver(Ljava/lang/Object;)V" />
-		<field name="mObservers" />
-	</class>
-	<class name="android/database/SQLException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" since="16" />
-	</class>
-	<class name="android/database/StaleDataException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/database/sqlite/SQLiteAbortException" since="1">
-		<extends name="android/database/sqlite/SQLiteException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/database/sqlite/SQLiteAccessPermException" since="11">
-		<extends name="android/database/sqlite/SQLiteException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/database/sqlite/SQLiteBindOrColumnIndexOutOfRangeException" since="11">
-		<extends name="android/database/sqlite/SQLiteException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/database/sqlite/SQLiteBlobTooBigException" since="11">
-		<extends name="android/database/sqlite/SQLiteException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/database/sqlite/SQLiteCantOpenDatabaseException" since="11">
-		<extends name="android/database/sqlite/SQLiteException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/database/sqlite/SQLiteClosable" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Closeable" since="16" />
-		<method name="&lt;init>()V" />
-		<method name="acquireReference()V" />
-		<method name="onAllReferencesReleased()V" />
-		<method name="onAllReferencesReleasedFromContainer()V" />
-		<method name="releaseReference()V" />
-		<method name="releaseReferenceFromContainer()V" />
-	</class>
-	<class name="android/database/sqlite/SQLiteConstraintException" since="1">
-		<extends name="android/database/sqlite/SQLiteException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/database/sqlite/SQLiteCursor" since="1">
-		<extends name="android/database/AbstractWindowedCursor" />
-		<method name="&lt;init>(Landroid/database/sqlite/SQLiteCursorDriver;Ljava/lang/String;Landroid/database/sqlite/SQLiteQuery;)V" since="11" />
-		<method name="&lt;init>(Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteCursorDriver;Ljava/lang/String;Landroid/database/sqlite/SQLiteQuery;)V" />
-		<method name="getDatabase()Landroid/database/sqlite/SQLiteDatabase;" />
-		<method name="setSelectionArguments([Ljava/lang/String;)V" />
-	</class>
-	<class name="android/database/sqlite/SQLiteCursorDriver" since="1">
-		<extends name="java/lang/Object" />
-		<method name="cursorClosed()V" />
-		<method name="cursorDeactivated()V" />
-		<method name="cursorRequeried(Landroid/database/Cursor;)V" />
-		<method name="query(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;[Ljava/lang/String;)Landroid/database/Cursor;" />
-		<method name="setBindArguments([Ljava/lang/String;)V" />
-	</class>
-	<class name="android/database/sqlite/SQLiteDatabase" since="1">
-		<extends name="android/database/sqlite/SQLiteClosable" />
-		<method name="&lt;init>()V" />
-		<method name="beginTransaction()V" />
-		<method name="beginTransactionNonExclusive()V" since="11" />
-		<method name="beginTransactionWithListener(Landroid/database/sqlite/SQLiteTransactionListener;)V" since="5" />
-		<method name="beginTransactionWithListenerNonExclusive(Landroid/database/sqlite/SQLiteTransactionListener;)V" since="11" />
-		<method name="close()V" />
-		<method name="compileStatement(Ljava/lang/String;)Landroid/database/sqlite/SQLiteStatement;" />
-		<method name="create(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;)Landroid/database/sqlite/SQLiteDatabase;" />
-		<method name="delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I" />
-		<method name="deleteDatabase(Ljava/io/File;)Z" since="16" />
-		<method name="disableWriteAheadLogging()V" since="16" />
-		<method name="enableWriteAheadLogging()Z" since="11" />
-		<method name="endTransaction()V" />
-		<method name="execSQL(Ljava/lang/String;)V" />
-		<method name="execSQL(Ljava/lang/String;[Ljava/lang/Object;)V" />
-		<method name="findEditTable(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getAttachedDbs()Ljava/util/List;" since="11" />
-		<method name="getMaximumSize()J" />
-		<method name="getPageSize()J" />
-		<method name="getPath()Ljava/lang/String;" />
-		<method name="getSyncedTables()Ljava/util/Map;" />
-		<method name="getVersion()I" />
-		<method name="inTransaction()Z" />
-		<method name="insert(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J" />
-		<method name="insertOrThrow(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J" />
-		<method name="insertWithOnConflict(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;I)J" since="8" />
-		<method name="isDatabaseIntegrityOk()Z" since="11" />
-		<method name="isDbLockedByCurrentThread()Z" />
-		<method name="isDbLockedByOtherThreads()Z" />
-		<method name="isOpen()Z" />
-		<method name="isReadOnly()Z" />
-		<method name="isWriteAheadLoggingEnabled()Z" since="16" />
-		<method name="markTableSyncable(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="markTableSyncable(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="needUpgrade(I)Z" />
-		<method name="openDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)Landroid/database/sqlite/SQLiteDatabase;" />
-		<method name="openDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;ILandroid/database/DatabaseErrorHandler;)Landroid/database/sqlite/SQLiteDatabase;" since="11" />
-		<method name="openOrCreateDatabase(Ljava/io/File;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;)Landroid/database/sqlite/SQLiteDatabase;" />
-		<method name="openOrCreateDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;)Landroid/database/sqlite/SQLiteDatabase;" />
-		<method name="openOrCreateDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;Landroid/database/DatabaseErrorHandler;)Landroid/database/sqlite/SQLiteDatabase;" since="11" />
-		<method name="query(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;" />
-		<method name="query(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;" />
-		<method name="query(ZLjava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;" />
-		<method name="query(ZLjava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor;" since="16" />
-		<method name="queryWithFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;ZLjava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;" />
-		<method name="queryWithFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;ZLjava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor;" since="16" />
-		<method name="rawQuery(Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor;" />
-		<method name="rawQuery(Ljava/lang/String;[Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor;" since="16" />
-		<method name="rawQueryWithFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;" />
-		<method name="rawQueryWithFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor;" since="16" />
-		<method name="releaseMemory()I" />
-		<method name="replace(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J" />
-		<method name="replaceOrThrow(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J" />
-		<method name="setForeignKeyConstraintsEnabled(Z)V" since="16" />
-		<method name="setLocale(Ljava/util/Locale;)V" />
-		<method name="setLockingEnabled(Z)V" />
-		<method name="setMaxSqlCacheSize(I)V" since="11" />
-		<method name="setMaximumSize(J)J" />
-		<method name="setPageSize(J)V" />
-		<method name="setTransactionSuccessful()V" />
-		<method name="setVersion(I)V" />
-		<method name="update(Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I" />
-		<method name="updateWithOnConflict(Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;I)I" since="8" />
-		<method name="yieldIfContended()Z" />
-		<method name="yieldIfContendedSafely()Z" since="3" />
-		<method name="yieldIfContendedSafely(J)Z" since="5" />
-		<field name="CONFLICT_ABORT" since="8" />
-		<field name="CONFLICT_FAIL" since="8" />
-		<field name="CONFLICT_IGNORE" since="8" />
-		<field name="CONFLICT_NONE" since="8" />
-		<field name="CONFLICT_REPLACE" since="8" />
-		<field name="CONFLICT_ROLLBACK" since="8" />
-		<field name="CREATE_IF_NECESSARY" />
-		<field name="ENABLE_WRITE_AHEAD_LOGGING" since="16" />
-		<field name="MAX_SQL_CACHE_SIZE" since="11" />
-		<field name="NO_LOCALIZED_COLLATORS" />
-		<field name="OPEN_READONLY" />
-		<field name="OPEN_READWRITE" />
-		<field name="SQLITE_MAX_LIKE_PATTERN_LENGTH" />
-	</class>
-	<class name="android/database/sqlite/SQLiteDatabase$CursorFactory" since="1">
-		<extends name="java/lang/Object" />
-		<method name="newCursor(Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteCursorDriver;Ljava/lang/String;Landroid/database/sqlite/SQLiteQuery;)Landroid/database/Cursor;" />
-	</class>
-	<class name="android/database/sqlite/SQLiteDatabaseCorruptException" since="1">
-		<extends name="android/database/sqlite/SQLiteException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/database/sqlite/SQLiteDatabaseLockedException" since="11">
-		<extends name="android/database/sqlite/SQLiteException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/database/sqlite/SQLiteDatatypeMismatchException" since="11">
-		<extends name="android/database/sqlite/SQLiteException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/database/sqlite/SQLiteDiskIOException" since="1">
-		<extends name="android/database/sqlite/SQLiteException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/database/sqlite/SQLiteDoneException" since="1">
-		<extends name="android/database/sqlite/SQLiteException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/database/sqlite/SQLiteException" since="1">
-		<extends name="android/database/SQLException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" since="16" />
-	</class>
-	<class name="android/database/sqlite/SQLiteFullException" since="1">
-		<extends name="android/database/sqlite/SQLiteException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/database/sqlite/SQLiteMisuseException" since="1">
-		<extends name="android/database/sqlite/SQLiteException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/database/sqlite/SQLiteOpenHelper" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Context;Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;ILandroid/database/DatabaseErrorHandler;)V" since="11" />
-		<method name="close()V" />
-		<method name="getDatabaseName()Ljava/lang/String;" since="14" />
-		<method name="getReadableDatabase()Landroid/database/sqlite/SQLiteDatabase;" />
-		<method name="getWritableDatabase()Landroid/database/sqlite/SQLiteDatabase;" />
-		<method name="onConfigure(Landroid/database/sqlite/SQLiteDatabase;)V" since="16" />
-		<method name="onCreate(Landroid/database/sqlite/SQLiteDatabase;)V" />
-		<method name="onDowngrade(Landroid/database/sqlite/SQLiteDatabase;II)V" since="11" />
-		<method name="onOpen(Landroid/database/sqlite/SQLiteDatabase;)V" />
-		<method name="onUpgrade(Landroid/database/sqlite/SQLiteDatabase;II)V" />
-		<method name="setWriteAheadLoggingEnabled(Z)V" since="16" />
-	</class>
-	<class name="android/database/sqlite/SQLiteOutOfMemoryException" since="11">
-		<extends name="android/database/sqlite/SQLiteException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/database/sqlite/SQLiteProgram" since="1">
-		<extends name="android/database/sqlite/SQLiteClosable" />
-		<method name="&lt;init>()V" />
-		<method name="bindAllArgsAsStrings([Ljava/lang/String;)V" since="11" />
-		<method name="bindBlob(I[B)V" />
-		<method name="bindDouble(ID)V" />
-		<method name="bindLong(IJ)V" />
-		<method name="bindNull(I)V" />
-		<method name="bindString(ILjava/lang/String;)V" />
-		<method name="clearBindings()V" />
-		<method name="close()V" />
-		<method name="compile(Ljava/lang/String;Z)V" />
-		<method name="getUniqueId()I" />
-		<method name="native_bind_blob(I[B)V" />
-		<method name="native_bind_double(ID)V" />
-		<method name="native_bind_long(IJ)V" />
-		<method name="native_bind_null(I)V" />
-		<method name="native_bind_string(ILjava/lang/String;)V" />
-		<method name="native_compile(Ljava/lang/String;)V" />
-		<method name="native_finalize()V" />
-		<field name="mDatabase" />
-		<field name="nHandle" />
-		<field name="nStatement" />
-	</class>
-	<class name="android/database/sqlite/SQLiteQuery" since="1">
-		<extends name="android/database/sqlite/SQLiteProgram" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/database/sqlite/SQLiteQueryBuilder" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="appendColumns(Ljava/lang/StringBuilder;[Ljava/lang/String;)V" />
-		<method name="appendWhere(Ljava/lang/CharSequence;)V" />
-		<method name="appendWhereEscapeString(Ljava/lang/String;)V" />
-		<method name="buildQuery([Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" since="11" />
-		<method name="buildQuery([Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="buildQueryString(ZLjava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="buildUnionQuery([Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="buildUnionSubQuery(Ljava/lang/String;[Ljava/lang/String;Ljava/util/Set;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" since="11" />
-		<method name="buildUnionSubQuery(Ljava/lang/String;[Ljava/lang/String;Ljava/util/Set;ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getTables()Ljava/lang/String;" />
-		<method name="query(Landroid/database/sqlite/SQLiteDatabase;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;" />
-		<method name="query(Landroid/database/sqlite/SQLiteDatabase;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;" />
-		<method name="query(Landroid/database/sqlite/SQLiteDatabase;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor;" since="16" />
-		<method name="setCursorFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;)V" />
-		<method name="setDistinct(Z)V" />
-		<method name="setProjectionMap(Ljava/util/Map;)V" />
-		<method name="setStrict(Z)V" since="14" />
-		<method name="setTables(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/database/sqlite/SQLiteReadOnlyDatabaseException" since="11">
-		<extends name="android/database/sqlite/SQLiteException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/database/sqlite/SQLiteStatement" since="1">
-		<extends name="android/database/sqlite/SQLiteProgram" />
-		<method name="&lt;init>()V" />
-		<method name="execute()V" />
-		<method name="executeInsert()J" />
-		<method name="executeUpdateDelete()I" since="11" />
-		<method name="simpleQueryForBlobFileDescriptor()Landroid/os/ParcelFileDescriptor;" since="11" />
-		<method name="simpleQueryForLong()J" />
-		<method name="simpleQueryForString()Ljava/lang/String;" />
-	</class>
-	<class name="android/database/sqlite/SQLiteTableLockedException" since="11">
-		<extends name="android/database/sqlite/SQLiteException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/database/sqlite/SQLiteTransactionListener" since="5">
-		<extends name="java/lang/Object" />
-		<method name="onBegin()V" />
-		<method name="onCommit()V" />
-		<method name="onRollback()V" />
-	</class>
-	<class name="android/drm/DrmConvertedStatus" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(I[BI)V" />
-		<field name="STATUS_ERROR" />
-		<field name="STATUS_INPUTDATA_ERROR" />
-		<field name="STATUS_OK" />
-		<field name="convertedData" />
-		<field name="offset" />
-		<field name="statusCode" />
-	</class>
-	<class name="android/drm/DrmErrorEvent" since="11">
-		<extends name="android/drm/DrmEvent" />
-		<method name="&lt;init>(IILjava/lang/String;)V" />
-		<method name="&lt;init>(IILjava/lang/String;Ljava/util/HashMap;)V" since="12" />
-		<field name="TYPE_ACQUIRE_DRM_INFO_FAILED" since="12" />
-		<field name="TYPE_NOT_SUPPORTED" />
-		<field name="TYPE_NO_INTERNET_CONNECTION" />
-		<field name="TYPE_OUT_OF_MEMORY" />
-		<field name="TYPE_PROCESS_DRM_INFO_FAILED" />
-		<field name="TYPE_REMOVE_ALL_RIGHTS_FAILED" />
-		<field name="TYPE_RIGHTS_NOT_INSTALLED" />
-		<field name="TYPE_RIGHTS_RENEWAL_NOT_ALLOWED" />
-	</class>
-	<class name="android/drm/DrmEvent" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(IILjava/lang/String;)V" />
-		<method name="&lt;init>(IILjava/lang/String;Ljava/util/HashMap;)V" since="12" />
-		<method name="getAttribute(Ljava/lang/String;)Ljava/lang/Object;" since="12" />
-		<method name="getMessage()Ljava/lang/String;" />
-		<method name="getType()I" />
-		<method name="getUniqueId()I" />
-		<field name="DRM_INFO_OBJECT" since="12" />
-		<field name="DRM_INFO_STATUS_OBJECT" />
-		<field name="TYPE_ALL_RIGHTS_REMOVED" />
-		<field name="TYPE_DRM_INFO_PROCESSED" />
-	</class>
-	<class name="android/drm/DrmInfo" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(ILjava/lang/String;Ljava/lang/String;)V" />
-		<method name="&lt;init>(I[BLjava/lang/String;)V" />
-		<method name="get(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="getData()[B" />
-		<method name="getInfoType()I" />
-		<method name="getMimeType()Ljava/lang/String;" />
-		<method name="iterator()Ljava/util/Iterator;" />
-		<method name="keyIterator()Ljava/util/Iterator;" />
-		<method name="put(Ljava/lang/String;Ljava/lang/Object;)V" />
-	</class>
-	<class name="android/drm/DrmInfoEvent" since="11">
-		<extends name="android/drm/DrmEvent" />
-		<method name="&lt;init>(IILjava/lang/String;)V" />
-		<method name="&lt;init>(IILjava/lang/String;Ljava/util/HashMap;)V" since="12" />
-		<field name="TYPE_ACCOUNT_ALREADY_REGISTERED" />
-		<field name="TYPE_ALREADY_REGISTERED_BY_ANOTHER_ACCOUNT" />
-		<field name="TYPE_REMOVE_RIGHTS" />
-		<field name="TYPE_RIGHTS_INSTALLED" />
-		<field name="TYPE_RIGHTS_REMOVED" since="12" />
-		<field name="TYPE_WAIT_FOR_RIGHTS" />
-	</class>
-	<class name="android/drm/DrmInfoRequest" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(ILjava/lang/String;)V" />
-		<method name="get(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="getInfoType()I" />
-		<method name="getMimeType()Ljava/lang/String;" />
-		<method name="iterator()Ljava/util/Iterator;" />
-		<method name="keyIterator()Ljava/util/Iterator;" />
-		<method name="put(Ljava/lang/String;Ljava/lang/Object;)V" />
-		<field name="ACCOUNT_ID" />
-		<field name="SUBSCRIPTION_ID" />
-		<field name="TYPE_REGISTRATION_INFO" />
-		<field name="TYPE_RIGHTS_ACQUISITION_INFO" />
-		<field name="TYPE_RIGHTS_ACQUISITION_PROGRESS_INFO" />
-		<field name="TYPE_UNREGISTRATION_INFO" />
-	</class>
-	<class name="android/drm/DrmInfoStatus" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(IILandroid/drm/ProcessedData;Ljava/lang/String;)V" />
-		<field name="STATUS_ERROR" />
-		<field name="STATUS_OK" />
-		<field name="data" />
-		<field name="infoType" />
-		<field name="mimeType" />
-		<field name="statusCode" />
-	</class>
-	<class name="android/drm/DrmManagerClient" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="acquireDrmInfo(Landroid/drm/DrmInfoRequest;)Landroid/drm/DrmInfo;" />
-		<method name="acquireRights(Landroid/drm/DrmInfoRequest;)I" />
-		<method name="canHandle(Landroid/net/Uri;Ljava/lang/String;)Z" />
-		<method name="canHandle(Ljava/lang/String;Ljava/lang/String;)Z" />
-		<method name="checkRightsStatus(Landroid/net/Uri;)I" />
-		<method name="checkRightsStatus(Landroid/net/Uri;I)I" />
-		<method name="checkRightsStatus(Ljava/lang/String;)I" />
-		<method name="checkRightsStatus(Ljava/lang/String;I)I" />
-		<method name="closeConvertSession(I)Landroid/drm/DrmConvertedStatus;" />
-		<method name="convertData(I[B)Landroid/drm/DrmConvertedStatus;" />
-		<method name="getAvailableDrmEngines()[Ljava/lang/String;" />
-		<method name="getConstraints(Landroid/net/Uri;I)Landroid/content/ContentValues;" />
-		<method name="getConstraints(Ljava/lang/String;I)Landroid/content/ContentValues;" />
-		<method name="getDrmObjectType(Landroid/net/Uri;Ljava/lang/String;)I" />
-		<method name="getDrmObjectType(Ljava/lang/String;Ljava/lang/String;)I" />
-		<method name="getMetadata(Landroid/net/Uri;)Landroid/content/ContentValues;" />
-		<method name="getMetadata(Ljava/lang/String;)Landroid/content/ContentValues;" />
-		<method name="getOriginalMimeType(Landroid/net/Uri;)Ljava/lang/String;" />
-		<method name="getOriginalMimeType(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="openConvertSession(Ljava/lang/String;)I" />
-		<method name="processDrmInfo(Landroid/drm/DrmInfo;)I" />
-		<method name="release()V" since="16" />
-		<method name="removeAllRights()I" />
-		<method name="removeRights(Landroid/net/Uri;)I" />
-		<method name="removeRights(Ljava/lang/String;)I" />
-		<method name="saveRights(Landroid/drm/DrmRights;Ljava/lang/String;Ljava/lang/String;)I" />
-		<method name="setOnErrorListener(Landroid/drm/DrmManagerClient$OnErrorListener;)V" />
-		<method name="setOnEventListener(Landroid/drm/DrmManagerClient$OnEventListener;)V" />
-		<method name="setOnInfoListener(Landroid/drm/DrmManagerClient$OnInfoListener;)V" />
-		<field name="ERROR_NONE" />
-		<field name="ERROR_UNKNOWN" />
-	</class>
-	<class name="android/drm/DrmManagerClient$OnErrorListener" since="11">
-		<extends name="java/lang/Object" />
-		<method name="onError(Landroid/drm/DrmManagerClient;Landroid/drm/DrmErrorEvent;)V" />
-	</class>
-	<class name="android/drm/DrmManagerClient$OnEventListener" since="11">
-		<extends name="java/lang/Object" />
-		<method name="onEvent(Landroid/drm/DrmManagerClient;Landroid/drm/DrmEvent;)V" since="12" />
-		<method name="onEvent(Landroid/drm/DrmManagerClient;Landroid/drm/DrmEvent;Ljava/util/HashMap;)V" />
-	</class>
-	<class name="android/drm/DrmManagerClient$OnInfoListener" since="11">
-		<extends name="java/lang/Object" />
-		<method name="onInfo(Landroid/drm/DrmManagerClient;Landroid/drm/DrmInfoEvent;)V" />
-	</class>
-	<class name="android/drm/DrmRights" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/drm/ProcessedData;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/io/File;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="getAccountId()Ljava/lang/String;" />
-		<method name="getData()[B" />
-		<method name="getMimeType()Ljava/lang/String;" />
-		<method name="getSubscriptionId()Ljava/lang/String;" />
-	</class>
-	<class name="android/drm/DrmStore" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/drm/DrmStore$Action" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="DEFAULT" />
-		<field name="DISPLAY" />
-		<field name="EXECUTE" />
-		<field name="OUTPUT" />
-		<field name="PLAY" />
-		<field name="PREVIEW" />
-		<field name="RINGTONE" />
-		<field name="TRANSFER" />
-	</class>
-	<class name="android/drm/DrmStore$ConstraintsColumns" since="11">
-		<extends name="java/lang/Object" />
-		<field name="EXTENDED_METADATA" />
-		<field name="LICENSE_AVAILABLE_TIME" />
-		<field name="LICENSE_EXPIRY_TIME" />
-		<field name="LICENSE_START_TIME" />
-		<field name="MAX_REPEAT_COUNT" />
-		<field name="REMAINING_REPEAT_COUNT" />
-	</class>
-	<class name="android/drm/DrmStore$DrmObjectType" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT" />
-		<field name="RIGHTS_OBJECT" />
-		<field name="TRIGGER_OBJECT" />
-		<field name="UNKNOWN" />
-	</class>
-	<class name="android/drm/DrmStore$Playback" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="PAUSE" />
-		<field name="RESUME" />
-		<field name="START" />
-		<field name="STOP" />
-	</class>
-	<class name="android/drm/DrmStore$RightsStatus" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="RIGHTS_EXPIRED" />
-		<field name="RIGHTS_INVALID" />
-		<field name="RIGHTS_NOT_ACQUIRED" />
-		<field name="RIGHTS_VALID" />
-	</class>
-	<class name="android/drm/DrmSupportInfo" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addFileSuffix(Ljava/lang/String;)V" />
-		<method name="addMimeType(Ljava/lang/String;)V" />
-		<method name="getDescriprition()Ljava/lang/String;" />
-		<method name="getDescription()Ljava/lang/String;" since="16" />
-		<method name="getFileSuffixIterator()Ljava/util/Iterator;" />
-		<method name="getMimeTypeIterator()Ljava/util/Iterator;" />
-		<method name="setDescription(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/drm/DrmUtils" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getExtendedMetadataParser([B)Landroid/drm/DrmUtils$ExtendedMetadataParser;" />
-	</class>
-	<class name="android/drm/DrmUtils$ExtendedMetadataParser" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="get(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="iterator()Ljava/util/Iterator;" />
-		<method name="keyIterator()Ljava/util/Iterator;" />
-	</class>
-	<class name="android/drm/ProcessedData" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getAccountId()Ljava/lang/String;" />
-		<method name="getData()[B" />
-		<method name="getSubscriptionId()Ljava/lang/String;" />
-	</class>
-	<class name="android/gesture/Gesture" since="4">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="addStroke(Landroid/gesture/GestureStroke;)V" />
-		<method name="getBoundingBox()Landroid/graphics/RectF;" />
-		<method name="getID()J" />
-		<method name="getLength()F" />
-		<method name="getStrokes()Ljava/util/ArrayList;" />
-		<method name="getStrokesCount()I" />
-		<method name="toBitmap(IIII)Landroid/graphics/Bitmap;" />
-		<method name="toBitmap(IIIII)Landroid/graphics/Bitmap;" />
-		<method name="toPath()Landroid/graphics/Path;" />
-		<method name="toPath(IIII)Landroid/graphics/Path;" />
-		<method name="toPath(Landroid/graphics/Path;)Landroid/graphics/Path;" />
-		<method name="toPath(Landroid/graphics/Path;IIII)Landroid/graphics/Path;" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/gesture/GestureLibraries" since="4">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="fromFile(Ljava/io/File;)Landroid/gesture/GestureLibrary;" />
-		<method name="fromFile(Ljava/lang/String;)Landroid/gesture/GestureLibrary;" />
-		<method name="fromPrivateFile(Landroid/content/Context;Ljava/lang/String;)Landroid/gesture/GestureLibrary;" />
-		<method name="fromRawResource(Landroid/content/Context;I)Landroid/gesture/GestureLibrary;" />
-	</class>
-	<class name="android/gesture/GestureLibrary" since="4">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addGesture(Ljava/lang/String;Landroid/gesture/Gesture;)V" />
-		<method name="getGestureEntries()Ljava/util/Set;" />
-		<method name="getGestures(Ljava/lang/String;)Ljava/util/ArrayList;" />
-		<method name="getOrientationStyle()I" />
-		<method name="getSequenceType()I" />
-		<method name="isReadOnly()Z" />
-		<method name="load()Z" />
-		<method name="recognize(Landroid/gesture/Gesture;)Ljava/util/ArrayList;" />
-		<method name="removeEntry(Ljava/lang/String;)V" />
-		<method name="removeGesture(Ljava/lang/String;Landroid/gesture/Gesture;)V" />
-		<method name="save()Z" />
-		<method name="setOrientationStyle(I)V" />
-		<method name="setSequenceType(I)V" />
-		<field name="mStore" />
-	</class>
-	<class name="android/gesture/GestureOverlayView" since="4">
-		<extends name="android/widget/FrameLayout" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="addOnGestureListener(Landroid/gesture/GestureOverlayView$OnGestureListener;)V" />
-		<method name="addOnGesturePerformedListener(Landroid/gesture/GestureOverlayView$OnGesturePerformedListener;)V" />
-		<method name="addOnGesturingListener(Landroid/gesture/GestureOverlayView$OnGesturingListener;)V" />
-		<method name="cancelClearAnimation()V" />
-		<method name="cancelGesture()V" />
-		<method name="clear(Z)V" />
-		<method name="getCurrentStroke()Ljava/util/ArrayList;" />
-		<method name="getFadeOffset()J" />
-		<method name="getGesture()Landroid/gesture/Gesture;" />
-		<method name="getGestureColor()I" />
-		<method name="getGesturePath()Landroid/graphics/Path;" />
-		<method name="getGesturePath(Landroid/graphics/Path;)Landroid/graphics/Path;" />
-		<method name="getGestureStrokeAngleThreshold()F" />
-		<method name="getGestureStrokeLengthThreshold()F" />
-		<method name="getGestureStrokeSquarenessTreshold()F" />
-		<method name="getGestureStrokeType()I" />
-		<method name="getGestureStrokeWidth()F" />
-		<method name="getOrientation()I" />
-		<method name="getUncertainGestureColor()I" />
-		<method name="isEventsInterceptionEnabled()Z" />
-		<method name="isFadeEnabled()Z" />
-		<method name="isGestureVisible()Z" />
-		<method name="isGesturing()Z" />
-		<method name="removeAllOnGestureListeners()V" />
-		<method name="removeAllOnGesturePerformedListeners()V" />
-		<method name="removeAllOnGesturingListeners()V" />
-		<method name="removeOnGestureListener(Landroid/gesture/GestureOverlayView$OnGestureListener;)V" />
-		<method name="removeOnGesturePerformedListener(Landroid/gesture/GestureOverlayView$OnGesturePerformedListener;)V" />
-		<method name="removeOnGesturingListener(Landroid/gesture/GestureOverlayView$OnGesturingListener;)V" />
-		<method name="setEventsInterceptionEnabled(Z)V" />
-		<method name="setFadeEnabled(Z)V" />
-		<method name="setFadeOffset(J)V" />
-		<method name="setGesture(Landroid/gesture/Gesture;)V" />
-		<method name="setGestureColor(I)V" />
-		<method name="setGestureStrokeAngleThreshold(F)V" />
-		<method name="setGestureStrokeLengthThreshold(F)V" />
-		<method name="setGestureStrokeSquarenessTreshold(F)V" />
-		<method name="setGestureStrokeType(I)V" />
-		<method name="setGestureStrokeWidth(F)V" />
-		<method name="setGestureVisible(Z)V" />
-		<method name="setOrientation(I)V" />
-		<method name="setUncertainGestureColor(I)V" />
-		<field name="GESTURE_STROKE_TYPE_MULTIPLE" />
-		<field name="GESTURE_STROKE_TYPE_SINGLE" />
-		<field name="ORIENTATION_HORIZONTAL" />
-		<field name="ORIENTATION_VERTICAL" />
-	</class>
-	<class name="android/gesture/GestureOverlayView$OnGestureListener" since="4">
-		<extends name="java/lang/Object" />
-		<method name="onGesture(Landroid/gesture/GestureOverlayView;Landroid/view/MotionEvent;)V" />
-		<method name="onGestureCancelled(Landroid/gesture/GestureOverlayView;Landroid/view/MotionEvent;)V" />
-		<method name="onGestureEnded(Landroid/gesture/GestureOverlayView;Landroid/view/MotionEvent;)V" />
-		<method name="onGestureStarted(Landroid/gesture/GestureOverlayView;Landroid/view/MotionEvent;)V" />
-	</class>
-	<class name="android/gesture/GestureOverlayView$OnGesturePerformedListener" since="4">
-		<extends name="java/lang/Object" />
-		<method name="onGesturePerformed(Landroid/gesture/GestureOverlayView;Landroid/gesture/Gesture;)V" />
-	</class>
-	<class name="android/gesture/GestureOverlayView$OnGesturingListener" since="4">
-		<extends name="java/lang/Object" />
-		<method name="onGesturingEnded(Landroid/gesture/GestureOverlayView;)V" />
-		<method name="onGesturingStarted(Landroid/gesture/GestureOverlayView;)V" />
-	</class>
-	<class name="android/gesture/GesturePoint" since="4">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(FFJ)V" />
-		<field name="timestamp" />
-		<field name="x" />
-		<field name="y" />
-	</class>
-	<class name="android/gesture/GestureStore" since="4">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addGesture(Ljava/lang/String;Landroid/gesture/Gesture;)V" />
-		<method name="getGestureEntries()Ljava/util/Set;" />
-		<method name="getGestures(Ljava/lang/String;)Ljava/util/ArrayList;" />
-		<method name="getOrientationStyle()I" />
-		<method name="getSequenceType()I" />
-		<method name="hasChanged()Z" />
-		<method name="load(Ljava/io/InputStream;)V" />
-		<method name="load(Ljava/io/InputStream;Z)V" />
-		<method name="recognize(Landroid/gesture/Gesture;)Ljava/util/ArrayList;" />
-		<method name="removeEntry(Ljava/lang/String;)V" />
-		<method name="removeGesture(Ljava/lang/String;Landroid/gesture/Gesture;)V" />
-		<method name="save(Ljava/io/OutputStream;)V" />
-		<method name="save(Ljava/io/OutputStream;Z)V" />
-		<method name="setOrientationStyle(I)V" />
-		<method name="setSequenceType(I)V" />
-		<field name="ORIENTATION_INVARIANT" />
-		<field name="ORIENTATION_SENSITIVE" />
-		<field name="SEQUENCE_INVARIANT" />
-		<field name="SEQUENCE_SENSITIVE" />
-	</class>
-	<class name="android/gesture/GestureStroke" since="4">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/util/ArrayList;)V" />
-		<method name="clearPath()V" />
-		<method name="computeOrientedBoundingBox()Landroid/gesture/OrientedBoundingBox;" />
-		<method name="getPath()Landroid/graphics/Path;" />
-		<method name="toPath(FFI)Landroid/graphics/Path;" />
-		<field name="boundingBox" />
-		<field name="length" />
-		<field name="points" />
-	</class>
-	<class name="android/gesture/GestureUtils" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="computeOrientedBoundingBox(Ljava/util/ArrayList;)Landroid/gesture/OrientedBoundingBox;" />
-		<method name="computeOrientedBoundingBox([F)Landroid/gesture/OrientedBoundingBox;" />
-		<method name="spatialSampling(Landroid/gesture/Gesture;I)[F" />
-		<method name="spatialSampling(Landroid/gesture/Gesture;IZ)[F" />
-		<method name="temporalSampling(Landroid/gesture/GestureStroke;I)[F" />
-	</class>
-	<class name="android/gesture/OrientedBoundingBox" since="4">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="centerX" />
-		<field name="centerY" />
-		<field name="height" />
-		<field name="orientation" />
-		<field name="squareness" />
-		<field name="width" />
-	</class>
-	<class name="android/gesture/Prediction" since="4">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="name" />
-		<field name="score" />
-	</class>
-	<class name="android/graphics/AvoidXfermode" since="1">
-		<extends name="android/graphics/Xfermode" />
-		<method name="&lt;init>(IILandroid/graphics/AvoidXfermode$Mode;)V" />
-	</class>
-	<class name="android/graphics/AvoidXfermode$Mode" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/AvoidXfermode$Mode;" />
-		<method name="values()[Landroid/graphics/AvoidXfermode$Mode;" />
-		<field name="AVOID" />
-		<field name="TARGET" />
-	</class>
-	<class name="android/graphics/Bitmap" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z" />
-		<method name="copy(Landroid/graphics/Bitmap$Config;Z)Landroid/graphics/Bitmap;" />
-		<method name="copyPixelsFromBuffer(Ljava/nio/Buffer;)V" since="3" />
-		<method name="copyPixelsToBuffer(Ljava/nio/Buffer;)V" />
-		<method name="createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;" />
-		<method name="createBitmap(Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap;" />
-		<method name="createBitmap(Landroid/graphics/Bitmap;IIII)Landroid/graphics/Bitmap;" />
-		<method name="createBitmap(Landroid/graphics/Bitmap;IIIILandroid/graphics/Matrix;Z)Landroid/graphics/Bitmap;" />
-		<method name="createBitmap(Landroid/util/DisplayMetrics;IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;" since="17" />
-		<method name="createBitmap(Landroid/util/DisplayMetrics;[IIIIILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;" since="17" />
-		<method name="createBitmap(Landroid/util/DisplayMetrics;[IIILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;" since="17" />
-		<method name="createBitmap([IIIIILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;" />
-		<method name="createBitmap([IIILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;" />
-		<method name="createScaledBitmap(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;" />
-		<method name="eraseColor(I)V" />
-		<method name="extractAlpha()Landroid/graphics/Bitmap;" />
-		<method name="extractAlpha(Landroid/graphics/Paint;[I)Landroid/graphics/Bitmap;" />
-		<method name="getAllocationByteCount()I" since="19" />
-		<method name="getByteCount()I" since="12" />
-		<method name="getConfig()Landroid/graphics/Bitmap$Config;" />
-		<method name="getDensity()I" since="4" />
-		<method name="getGenerationId()I" since="12" />
-		<method name="getHeight()I" />
-		<method name="getNinePatchChunk()[B" />
-		<method name="getPixel(II)I" />
-		<method name="getPixels([IIIIIII)V" />
-		<method name="getRowBytes()I" />
-		<method name="getScaledHeight(I)I" since="4" />
-		<method name="getScaledHeight(Landroid/graphics/Canvas;)I" since="4" />
-		<method name="getScaledHeight(Landroid/util/DisplayMetrics;)I" since="4" />
-		<method name="getScaledWidth(I)I" since="4" />
-		<method name="getScaledWidth(Landroid/graphics/Canvas;)I" since="4" />
-		<method name="getScaledWidth(Landroid/util/DisplayMetrics;)I" since="4" />
-		<method name="getWidth()I" />
-		<method name="hasAlpha()Z" />
-		<method name="hasMipMap()Z" since="17" />
-		<method name="isMutable()Z" />
-		<method name="isPremultiplied()Z" since="17" />
-		<method name="isRecycled()Z" />
-		<method name="prepareToDraw()V" since="4" />
-		<method name="reconfigure(IILandroid/graphics/Bitmap$Config;)V" since="19" />
-		<method name="recycle()V" />
-		<method name="sameAs(Landroid/graphics/Bitmap;)Z" since="12" />
-		<method name="setConfig(Landroid/graphics/Bitmap$Config;)V" since="19" />
-		<method name="setDensity(I)V" since="4" />
-		<method name="setHasAlpha(Z)V" since="12" />
-		<method name="setHasMipMap(Z)V" since="17" />
-		<method name="setHeight(I)V" since="19" />
-		<method name="setPixel(III)V" />
-		<method name="setPixels([IIIIIII)V" />
-		<method name="setPremultiplied(Z)V" since="19" />
-		<method name="setWidth(I)V" since="19" />
-		<field name="CREATOR" />
-		<field name="DENSITY_NONE" since="4" />
-	</class>
-	<class name="android/graphics/Bitmap$CompressFormat" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/Bitmap$CompressFormat;" />
-		<method name="values()[Landroid/graphics/Bitmap$CompressFormat;" />
-		<field name="JPEG" />
-		<field name="PNG" />
-		<field name="WEBP" since="14" />
-	</class>
-	<class name="android/graphics/Bitmap$Config" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/Bitmap$Config;" />
-		<method name="values()[Landroid/graphics/Bitmap$Config;" />
-		<field name="ALPHA_8" />
-		<field name="ARGB_4444" />
-		<field name="ARGB_8888" />
-		<field name="RGB_565" />
-	</class>
-	<class name="android/graphics/BitmapFactory" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="decodeByteArray([BII)Landroid/graphics/Bitmap;" />
-		<method name="decodeByteArray([BIILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;" />
-		<method name="decodeFile(Ljava/lang/String;)Landroid/graphics/Bitmap;" />
-		<method name="decodeFile(Ljava/lang/String;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;" />
-		<method name="decodeFileDescriptor(Ljava/io/FileDescriptor;)Landroid/graphics/Bitmap;" />
-		<method name="decodeFileDescriptor(Ljava/io/FileDescriptor;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;" />
-		<method name="decodeResource(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap;" />
-		<method name="decodeResource(Landroid/content/res/Resources;ILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;" />
-		<method name="decodeResourceStream(Landroid/content/res/Resources;Landroid/util/TypedValue;Ljava/io/InputStream;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;" since="4" />
-		<method name="decodeStream(Ljava/io/InputStream;)Landroid/graphics/Bitmap;" />
-		<method name="decodeStream(Ljava/io/InputStream;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;" />
-	</class>
-	<class name="android/graphics/BitmapFactory$Options" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="requestCancelDecode()V" />
-		<field name="inBitmap" since="11" />
-		<field name="inDensity" since="4" />
-		<field name="inDither" />
-		<field name="inInputShareable" since="4" />
-		<field name="inJustDecodeBounds" />
-		<field name="inMutable" since="11" />
-		<field name="inPreferQualityOverSpeed" since="10" />
-		<field name="inPreferredConfig" />
-		<field name="inPremultiplied" since="19" />
-		<field name="inPurgeable" since="4" />
-		<field name="inSampleSize" />
-		<field name="inScaled" since="4" />
-		<field name="inScreenDensity" since="4" />
-		<field name="inTargetDensity" since="4" />
-		<field name="inTempStorage" />
-		<field name="mCancel" />
-		<field name="outHeight" />
-		<field name="outMimeType" />
-		<field name="outWidth" />
-	</class>
-	<class name="android/graphics/BitmapRegionDecoder" since="10">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="decodeRegion(Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;" />
-		<method name="getHeight()I" />
-		<method name="getWidth()I" />
-		<method name="isRecycled()Z" />
-		<method name="newInstance(Ljava/io/FileDescriptor;Z)Landroid/graphics/BitmapRegionDecoder;" />
-		<method name="newInstance(Ljava/io/InputStream;Z)Landroid/graphics/BitmapRegionDecoder;" />
-		<method name="newInstance(Ljava/lang/String;Z)Landroid/graphics/BitmapRegionDecoder;" />
-		<method name="newInstance([BIIZ)Landroid/graphics/BitmapRegionDecoder;" />
-		<method name="recycle()V" />
-	</class>
-	<class name="android/graphics/BitmapShader" since="1">
-		<extends name="android/graphics/Shader" />
-		<method name="&lt;init>(Landroid/graphics/Bitmap;Landroid/graphics/Shader$TileMode;Landroid/graphics/Shader$TileMode;)V" />
-	</class>
-	<class name="android/graphics/BlurMaskFilter" since="1">
-		<extends name="android/graphics/MaskFilter" />
-		<method name="&lt;init>(FLandroid/graphics/BlurMaskFilter$Blur;)V" />
-	</class>
-	<class name="android/graphics/BlurMaskFilter$Blur" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/BlurMaskFilter$Blur;" />
-		<method name="values()[Landroid/graphics/BlurMaskFilter$Blur;" />
-		<field name="INNER" />
-		<field name="NORMAL" />
-		<field name="OUTER" />
-		<field name="SOLID" />
-	</class>
-	<class name="android/graphics/Camera" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="applyToCanvas(Landroid/graphics/Canvas;)V" />
-		<method name="dotWithNormal(FFF)F" />
-		<method name="getLocationX()F" since="16" />
-		<method name="getLocationY()F" since="16" />
-		<method name="getLocationZ()F" since="16" />
-		<method name="getMatrix(Landroid/graphics/Matrix;)V" />
-		<method name="restore()V" />
-		<method name="rotate(FFF)V" since="12" />
-		<method name="rotateX(F)V" />
-		<method name="rotateY(F)V" />
-		<method name="rotateZ(F)V" />
-		<method name="save()V" />
-		<method name="setLocation(FFF)V" since="12" />
-		<method name="translate(FFF)V" />
-	</class>
-	<class name="android/graphics/Canvas" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/graphics/Bitmap;)V" />
-		<method name="&lt;init>(Ljavax/microedition/khronos/opengles/GL;)V" />
-		<method name="clipPath(Landroid/graphics/Path;)Z" />
-		<method name="clipPath(Landroid/graphics/Path;Landroid/graphics/Region$Op;)Z" />
-		<method name="clipRect(FFFF)Z" />
-		<method name="clipRect(FFFFLandroid/graphics/Region$Op;)Z" />
-		<method name="clipRect(IIII)Z" />
-		<method name="clipRect(Landroid/graphics/Rect;)Z" />
-		<method name="clipRect(Landroid/graphics/Rect;Landroid/graphics/Region$Op;)Z" />
-		<method name="clipRect(Landroid/graphics/RectF;)Z" />
-		<method name="clipRect(Landroid/graphics/RectF;Landroid/graphics/Region$Op;)Z" />
-		<method name="clipRegion(Landroid/graphics/Region;)Z" />
-		<method name="clipRegion(Landroid/graphics/Region;Landroid/graphics/Region$Op;)Z" />
-		<method name="concat(Landroid/graphics/Matrix;)V" />
-		<method name="drawARGB(IIII)V" />
-		<method name="drawArc(Landroid/graphics/RectF;FFZLandroid/graphics/Paint;)V" />
-		<method name="drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V" />
-		<method name="drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Matrix;Landroid/graphics/Paint;)V" />
-		<method name="drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Paint;)V" />
-		<method name="drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/RectF;Landroid/graphics/Paint;)V" />
-		<method name="drawBitmap([IIIFFIIZLandroid/graphics/Paint;)V" since="3" />
-		<method name="drawBitmap([IIIIIIIZLandroid/graphics/Paint;)V" />
-		<method name="drawBitmapMesh(Landroid/graphics/Bitmap;II[FI[IILandroid/graphics/Paint;)V" />
-		<method name="drawCircle(FFFLandroid/graphics/Paint;)V" />
-		<method name="drawColor(I)V" />
-		<method name="drawColor(ILandroid/graphics/PorterDuff$Mode;)V" />
-		<method name="drawLine(FFFFLandroid/graphics/Paint;)V" />
-		<method name="drawLines([FIILandroid/graphics/Paint;)V" />
-		<method name="drawLines([FLandroid/graphics/Paint;)V" />
-		<method name="drawOval(Landroid/graphics/RectF;Landroid/graphics/Paint;)V" />
-		<method name="drawPaint(Landroid/graphics/Paint;)V" />
-		<method name="drawPath(Landroid/graphics/Path;Landroid/graphics/Paint;)V" />
-		<method name="drawPicture(Landroid/graphics/Picture;)V" />
-		<method name="drawPicture(Landroid/graphics/Picture;Landroid/graphics/Rect;)V" />
-		<method name="drawPicture(Landroid/graphics/Picture;Landroid/graphics/RectF;)V" />
-		<method name="drawPoint(FFLandroid/graphics/Paint;)V" />
-		<method name="drawPoints([FIILandroid/graphics/Paint;)V" />
-		<method name="drawPoints([FLandroid/graphics/Paint;)V" />
-		<method name="drawPosText(Ljava/lang/String;[FLandroid/graphics/Paint;)V" />
-		<method name="drawPosText([CII[FLandroid/graphics/Paint;)V" />
-		<method name="drawRGB(III)V" />
-		<method name="drawRect(FFFFLandroid/graphics/Paint;)V" />
-		<method name="drawRect(Landroid/graphics/Rect;Landroid/graphics/Paint;)V" />
-		<method name="drawRect(Landroid/graphics/RectF;Landroid/graphics/Paint;)V" />
-		<method name="drawRoundRect(FFFFFFLandroid/graphics/Paint;)V" since="21" />
-		<method name="drawRoundRect(Landroid/graphics/RectF;FFLandroid/graphics/Paint;)V" />
-		<method name="drawText(Ljava/lang/CharSequence;IIFFLandroid/graphics/Paint;)V" />
-		<method name="drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V" />
-		<method name="drawText(Ljava/lang/String;IIFFLandroid/graphics/Paint;)V" />
-		<method name="drawText([CIIFFLandroid/graphics/Paint;)V" />
-		<method name="drawTextOnPath(Ljava/lang/String;Landroid/graphics/Path;FFLandroid/graphics/Paint;)V" />
-		<method name="drawTextOnPath([CIILandroid/graphics/Path;FFLandroid/graphics/Paint;)V" />
-		<method name="drawVertices(Landroid/graphics/Canvas$VertexMode;I[FI[FI[II[SIILandroid/graphics/Paint;)V" />
-		<method name="freeGlCaches()V" />
-		<method name="getClipBounds()Landroid/graphics/Rect;" />
-		<method name="getClipBounds(Landroid/graphics/Rect;)Z" />
-		<method name="getDensity()I" since="4" />
-		<method name="getDrawFilter()Landroid/graphics/DrawFilter;" />
-		<method name="getGL()Ljavax/microedition/khronos/opengles/GL;" />
-		<method name="getHeight()I" />
-		<method name="getMatrix()Landroid/graphics/Matrix;" />
-		<method name="getMatrix(Landroid/graphics/Matrix;)V" />
-		<method name="getMaximumBitmapHeight()I" since="14" />
-		<method name="getMaximumBitmapWidth()I" since="14" />
-		<method name="getSaveCount()I" />
-		<method name="getWidth()I" />
-		<method name="isHardwareAccelerated()Z" since="11" />
-		<method name="isOpaque()Z" />
-		<method name="quickReject(FFFFLandroid/graphics/Canvas$EdgeType;)Z" />
-		<method name="quickReject(Landroid/graphics/Path;Landroid/graphics/Canvas$EdgeType;)Z" />
-		<method name="quickReject(Landroid/graphics/RectF;Landroid/graphics/Canvas$EdgeType;)Z" />
-		<method name="restore()V" />
-		<method name="restoreToCount(I)V" />
-		<method name="rotate(F)V" />
-		<method name="rotate(FFF)V" />
-		<method name="save()I" />
-		<method name="save(I)I" />
-		<method name="saveLayer(FFFFLandroid/graphics/Paint;)I" since="21" />
-		<method name="saveLayer(FFFFLandroid/graphics/Paint;I)I" />
-		<method name="saveLayer(Landroid/graphics/RectF;Landroid/graphics/Paint;)I" since="21" />
-		<method name="saveLayer(Landroid/graphics/RectF;Landroid/graphics/Paint;I)I" />
-		<method name="saveLayerAlpha(FFFFI)I" since="21" />
-		<method name="saveLayerAlpha(FFFFII)I" />
-		<method name="saveLayerAlpha(Landroid/graphics/RectF;I)I" since="21" />
-		<method name="saveLayerAlpha(Landroid/graphics/RectF;II)I" />
-		<method name="scale(FF)V" />
-		<method name="scale(FFFF)V" />
-		<method name="setBitmap(Landroid/graphics/Bitmap;)V" />
-		<method name="setDensity(I)V" since="4" />
-		<method name="setDrawFilter(Landroid/graphics/DrawFilter;)V" />
-		<method name="setMatrix(Landroid/graphics/Matrix;)V" />
-		<method name="setViewport(II)V" />
-		<method name="skew(FF)V" />
-		<method name="translate(FF)V" />
-		<field name="ALL_SAVE_FLAG" />
-		<field name="CLIP_SAVE_FLAG" />
-		<field name="CLIP_TO_LAYER_SAVE_FLAG" />
-		<field name="FULL_COLOR_LAYER_SAVE_FLAG" />
-		<field name="HAS_ALPHA_LAYER_SAVE_FLAG" />
-		<field name="MATRIX_SAVE_FLAG" />
-	</class>
-	<class name="android/graphics/Canvas$EdgeType" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/Canvas$EdgeType;" />
-		<method name="values()[Landroid/graphics/Canvas$EdgeType;" />
-		<field name="AA" />
-		<field name="BW" />
-	</class>
-	<class name="android/graphics/Canvas$VertexMode" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/Canvas$VertexMode;" />
-		<method name="values()[Landroid/graphics/Canvas$VertexMode;" />
-		<field name="TRIANGLES" />
-		<field name="TRIANGLE_FAN" />
-		<field name="TRIANGLE_STRIP" />
-	</class>
-	<class name="android/graphics/Color" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="HSVToColor(I[F)I" />
-		<method name="HSVToColor([F)I" />
-		<method name="RGBToHSV(III[F)V" />
-		<method name="alpha(I)I" />
-		<method name="argb(IIII)I" />
-		<method name="blue(I)I" />
-		<method name="colorToHSV(I[F)V" />
-		<method name="green(I)I" />
-		<method name="parseColor(Ljava/lang/String;)I" />
-		<method name="red(I)I" />
-		<method name="rgb(III)I" />
-		<field name="BLACK" />
-		<field name="BLUE" />
-		<field name="CYAN" />
-		<field name="DKGRAY" />
-		<field name="GRAY" />
-		<field name="GREEN" />
-		<field name="LTGRAY" />
-		<field name="MAGENTA" />
-		<field name="RED" />
-		<field name="TRANSPARENT" />
-		<field name="WHITE" />
-		<field name="YELLOW" />
-	</class>
-	<class name="android/graphics/ColorFilter" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/graphics/ColorMatrix" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/graphics/ColorMatrix;)V" />
-		<method name="&lt;init>([F)V" />
-		<method name="getArray()[F" />
-		<method name="postConcat(Landroid/graphics/ColorMatrix;)V" />
-		<method name="preConcat(Landroid/graphics/ColorMatrix;)V" />
-		<method name="reset()V" />
-		<method name="set(Landroid/graphics/ColorMatrix;)V" />
-		<method name="set([F)V" />
-		<method name="setConcat(Landroid/graphics/ColorMatrix;Landroid/graphics/ColorMatrix;)V" />
-		<method name="setRGB2YUV()V" />
-		<method name="setRotate(IF)V" />
-		<method name="setSaturation(F)V" />
-		<method name="setScale(FFFF)V" />
-		<method name="setYUV2RGB()V" />
-	</class>
-	<class name="android/graphics/ColorMatrixColorFilter" since="1">
-		<extends name="android/graphics/ColorFilter" />
-		<method name="&lt;init>(Landroid/graphics/ColorMatrix;)V" />
-		<method name="&lt;init>([F)V" />
-		<method name="getColorMatrix()Landroid/graphics/ColorMatrix;" since="21" />
-		<method name="setColorMatrix(Landroid/graphics/ColorMatrix;)V" since="21" />
-		<method name="setColorMatrix([F)V" since="21" />
-	</class>
-	<class name="android/graphics/ComposePathEffect" since="1">
-		<extends name="android/graphics/PathEffect" />
-		<method name="&lt;init>(Landroid/graphics/PathEffect;Landroid/graphics/PathEffect;)V" />
-	</class>
-	<class name="android/graphics/ComposeShader" since="1">
-		<extends name="android/graphics/Shader" />
-		<method name="&lt;init>(Landroid/graphics/Shader;Landroid/graphics/Shader;Landroid/graphics/PorterDuff$Mode;)V" />
-		<method name="&lt;init>(Landroid/graphics/Shader;Landroid/graphics/Shader;Landroid/graphics/Xfermode;)V" />
-	</class>
-	<class name="android/graphics/CornerPathEffect" since="1">
-		<extends name="android/graphics/PathEffect" />
-		<method name="&lt;init>(F)V" />
-	</class>
-	<class name="android/graphics/DashPathEffect" since="1">
-		<extends name="android/graphics/PathEffect" />
-		<method name="&lt;init>([FF)V" />
-	</class>
-	<class name="android/graphics/DiscretePathEffect" since="1">
-		<extends name="android/graphics/PathEffect" />
-		<method name="&lt;init>(FF)V" />
-	</class>
-	<class name="android/graphics/DrawFilter" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/graphics/EmbossMaskFilter" since="1">
-		<extends name="android/graphics/MaskFilter" />
-		<method name="&lt;init>([FFFF)V" />
-	</class>
-	<class name="android/graphics/ImageFormat" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getBitsPerPixel(I)I" />
-		<field name="JPEG" />
-		<field name="NV16" />
-		<field name="NV21" />
-		<field name="RAW_SENSOR" since="21" />
-		<field name="RGB_565" />
-		<field name="UNKNOWN" />
-		<field name="YUV_420_888" since="19" />
-		<field name="YUY2" />
-		<field name="YV12" since="9" />
-	</class>
-	<class name="android/graphics/Interpolator" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(II)V" />
-		<method name="getKeyFrameCount()I" />
-		<method name="getValueCount()I" />
-		<method name="reset(I)V" />
-		<method name="reset(II)V" />
-		<method name="setKeyFrame(II[F)V" />
-		<method name="setKeyFrame(II[F[F)V" />
-		<method name="setRepeatMirror(FZ)V" />
-		<method name="timeToValues(I[F)Landroid/graphics/Interpolator$Result;" />
-		<method name="timeToValues([F)Landroid/graphics/Interpolator$Result;" />
-	</class>
-	<class name="android/graphics/Interpolator$Result" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/Interpolator$Result;" />
-		<method name="values()[Landroid/graphics/Interpolator$Result;" />
-		<field name="FREEZE_END" />
-		<field name="FREEZE_START" />
-		<field name="NORMAL" />
-	</class>
-	<class name="android/graphics/LayerRasterizer" since="1">
-		<extends name="android/graphics/Rasterizer" />
-		<method name="&lt;init>()V" />
-		<method name="addLayer(Landroid/graphics/Paint;)V" />
-		<method name="addLayer(Landroid/graphics/Paint;FF)V" />
-	</class>
-	<class name="android/graphics/LightingColorFilter" since="1">
-		<extends name="android/graphics/ColorFilter" />
-		<method name="&lt;init>(II)V" />
-		<method name="getColorAdd()I" since="21" />
-		<method name="getColorMultiply()I" since="21" />
-		<method name="setColorAdd(I)V" since="21" />
-		<method name="setColorMultiply(I)V" since="21" />
-	</class>
-	<class name="android/graphics/LinearGradient" since="1">
-		<extends name="android/graphics/Shader" />
-		<method name="&lt;init>(FFFFIILandroid/graphics/Shader$TileMode;)V" />
-		<method name="&lt;init>(FFFF[I[FLandroid/graphics/Shader$TileMode;)V" />
-	</class>
-	<class name="android/graphics/MaskFilter" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/graphics/Matrix" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/graphics/Matrix;)V" />
-		<method name="getValues([F)V" />
-		<method name="invert(Landroid/graphics/Matrix;)Z" />
-		<method name="isAffine()Z" since="21" />
-		<method name="isIdentity()Z" />
-		<method name="mapPoints([F)V" />
-		<method name="mapPoints([FI[FII)V" />
-		<method name="mapPoints([F[F)V" />
-		<method name="mapRadius(F)F" />
-		<method name="mapRect(Landroid/graphics/RectF;)Z" />
-		<method name="mapRect(Landroid/graphics/RectF;Landroid/graphics/RectF;)Z" />
-		<method name="mapVectors([F)V" />
-		<method name="mapVectors([FI[FII)V" />
-		<method name="mapVectors([F[F)V" />
-		<method name="postConcat(Landroid/graphics/Matrix;)Z" />
-		<method name="postRotate(F)Z" />
-		<method name="postRotate(FFF)Z" />
-		<method name="postScale(FF)Z" />
-		<method name="postScale(FFFF)Z" />
-		<method name="postSkew(FF)Z" />
-		<method name="postSkew(FFFF)Z" />
-		<method name="postTranslate(FF)Z" />
-		<method name="preConcat(Landroid/graphics/Matrix;)Z" />
-		<method name="preRotate(F)Z" />
-		<method name="preRotate(FFF)Z" />
-		<method name="preScale(FF)Z" />
-		<method name="preScale(FFFF)Z" />
-		<method name="preSkew(FF)Z" />
-		<method name="preSkew(FFFF)Z" />
-		<method name="preTranslate(FF)Z" />
-		<method name="rectStaysRect()Z" />
-		<method name="reset()V" />
-		<method name="set(Landroid/graphics/Matrix;)V" />
-		<method name="setConcat(Landroid/graphics/Matrix;Landroid/graphics/Matrix;)Z" />
-		<method name="setPolyToPoly([FI[FII)Z" />
-		<method name="setRectToRect(Landroid/graphics/RectF;Landroid/graphics/RectF;Landroid/graphics/Matrix$ScaleToFit;)Z" />
-		<method name="setRotate(F)V" />
-		<method name="setRotate(FFF)V" />
-		<method name="setScale(FF)V" />
-		<method name="setScale(FFFF)V" />
-		<method name="setSinCos(FF)V" />
-		<method name="setSinCos(FFFF)V" />
-		<method name="setSkew(FF)V" />
-		<method name="setSkew(FFFF)V" />
-		<method name="setTranslate(FF)V" />
-		<method name="setValues([F)V" />
-		<method name="toShortString()Ljava/lang/String;" />
-		<field name="MPERSP_0" />
-		<field name="MPERSP_1" />
-		<field name="MPERSP_2" />
-		<field name="MSCALE_X" />
-		<field name="MSCALE_Y" />
-		<field name="MSKEW_X" />
-		<field name="MSKEW_Y" />
-		<field name="MTRANS_X" />
-		<field name="MTRANS_Y" />
-	</class>
-	<class name="android/graphics/Matrix$ScaleToFit" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/Matrix$ScaleToFit;" />
-		<method name="values()[Landroid/graphics/Matrix$ScaleToFit;" />
-		<field name="CENTER" />
-		<field name="END" />
-		<field name="FILL" />
-		<field name="START" />
-	</class>
-	<class name="android/graphics/Movie" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="decodeByteArray([BII)Landroid/graphics/Movie;" />
-		<method name="decodeFile(Ljava/lang/String;)Landroid/graphics/Movie;" />
-		<method name="decodeStream(Ljava/io/InputStream;)Landroid/graphics/Movie;" />
-		<method name="draw(Landroid/graphics/Canvas;FF)V" />
-		<method name="draw(Landroid/graphics/Canvas;FFLandroid/graphics/Paint;)V" />
-		<method name="duration()I" />
-		<method name="height()I" />
-		<method name="isOpaque()Z" />
-		<method name="setTime(I)Z" />
-		<method name="width()I" />
-	</class>
-	<class name="android/graphics/NinePatch" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/graphics/Bitmap;[B)V" since="19" />
-		<method name="&lt;init>(Landroid/graphics/Bitmap;[BLjava/lang/String;)V" />
-		<method name="draw(Landroid/graphics/Canvas;Landroid/graphics/Rect;)V" />
-		<method name="draw(Landroid/graphics/Canvas;Landroid/graphics/Rect;Landroid/graphics/Paint;)V" />
-		<method name="draw(Landroid/graphics/Canvas;Landroid/graphics/RectF;)V" />
-		<method name="getBitmap()Landroid/graphics/Bitmap;" since="19" />
-		<method name="getDensity()I" since="4" />
-		<method name="getHeight()I" />
-		<method name="getName()Ljava/lang/String;" since="19" />
-		<method name="getPaint()Landroid/graphics/Paint;" since="19" />
-		<method name="getTransparentRegion(Landroid/graphics/Rect;)Landroid/graphics/Region;" />
-		<method name="getWidth()I" />
-		<method name="hasAlpha()Z" />
-		<method name="isNinePatchChunk([B)Z" />
-		<method name="setPaint(Landroid/graphics/Paint;)V" />
-	</class>
-	<class name="android/graphics/Outline" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/graphics/Outline;)V" />
-		<method name="canClip()Z" />
-		<method name="isEmpty()Z" />
-		<method name="set(Landroid/graphics/Outline;)V" />
-		<method name="setConvexPath(Landroid/graphics/Path;)V" />
-		<method name="setEmpty()V" />
-		<method name="setOval(IIII)V" />
-		<method name="setOval(Landroid/graphics/Rect;)V" />
-		<method name="setRect(IIII)V" />
-		<method name="setRect(Landroid/graphics/Rect;)V" />
-		<method name="setRoundRect(IIIIF)V" />
-		<method name="setRoundRect(Landroid/graphics/Rect;F)V" />
-	</class>
-	<class name="android/graphics/Paint" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(Landroid/graphics/Paint;)V" />
-		<method name="ascent()F" />
-		<method name="breakText(Ljava/lang/CharSequence;IIZF[F)I" />
-		<method name="breakText(Ljava/lang/String;ZF[F)I" />
-		<method name="breakText([CIIF[F)I" />
-		<method name="clearShadowLayer()V" />
-		<method name="descent()F" />
-		<method name="getAlpha()I" />
-		<method name="getColor()I" />
-		<method name="getColorFilter()Landroid/graphics/ColorFilter;" />
-		<method name="getFillPath(Landroid/graphics/Path;Landroid/graphics/Path;)Z" />
-		<method name="getFlags()I" />
-		<method name="getFontMetrics()Landroid/graphics/Paint$FontMetrics;" />
-		<method name="getFontMetrics(Landroid/graphics/Paint$FontMetrics;)F" />
-		<method name="getFontMetricsInt()Landroid/graphics/Paint$FontMetricsInt;" />
-		<method name="getFontMetricsInt(Landroid/graphics/Paint$FontMetricsInt;)I" />
-		<method name="getFontSpacing()F" />
-		<method name="getHinting()I" since="14" />
-		<method name="getMaskFilter()Landroid/graphics/MaskFilter;" />
-		<method name="getPathEffect()Landroid/graphics/PathEffect;" />
-		<method name="getRasterizer()Landroid/graphics/Rasterizer;" />
-		<method name="getShader()Landroid/graphics/Shader;" />
-		<method name="getStrokeCap()Landroid/graphics/Paint$Cap;" />
-		<method name="getStrokeJoin()Landroid/graphics/Paint$Join;" />
-		<method name="getStrokeMiter()F" />
-		<method name="getStrokeWidth()F" />
-		<method name="getStyle()Landroid/graphics/Paint$Style;" />
-		<method name="getTextAlign()Landroid/graphics/Paint$Align;" />
-		<method name="getTextBounds(Ljava/lang/String;IILandroid/graphics/Rect;)V" />
-		<method name="getTextBounds([CIILandroid/graphics/Rect;)V" />
-		<method name="getTextLocale()Ljava/util/Locale;" since="17" />
-		<method name="getTextPath(Ljava/lang/String;IIFFLandroid/graphics/Path;)V" />
-		<method name="getTextPath([CIIFFLandroid/graphics/Path;)V" />
-		<method name="getTextScaleX()F" />
-		<method name="getTextSize()F" />
-		<method name="getTextSkewX()F" />
-		<method name="getTextWidths(Ljava/lang/CharSequence;II[F)I" />
-		<method name="getTextWidths(Ljava/lang/String;II[F)I" />
-		<method name="getTextWidths(Ljava/lang/String;[F)I" />
-		<method name="getTextWidths([CII[F)I" />
-		<method name="getTypeface()Landroid/graphics/Typeface;" />
-		<method name="getXfermode()Landroid/graphics/Xfermode;" />
-		<method name="isAntiAlias()Z" />
-		<method name="isDither()Z" />
-		<method name="isElegantTextHeight()Z" since="21" />
-		<method name="isFakeBoldText()Z" />
-		<method name="isFilterBitmap()Z" />
-		<method name="isLinearText()Z" />
-		<method name="isStrikeThruText()Z" />
-		<method name="isSubpixelText()Z" />
-		<method name="isUnderlineText()Z" />
-		<method name="measureText(Ljava/lang/CharSequence;II)F" />
-		<method name="measureText(Ljava/lang/String;)F" />
-		<method name="measureText(Ljava/lang/String;II)F" />
-		<method name="measureText([CII)F" />
-		<method name="reset()V" />
-		<method name="set(Landroid/graphics/Paint;)V" />
-		<method name="setARGB(IIII)V" />
-		<method name="setAlpha(I)V" />
-		<method name="setAntiAlias(Z)V" />
-		<method name="setColor(I)V" />
-		<method name="setColorFilter(Landroid/graphics/ColorFilter;)Landroid/graphics/ColorFilter;" />
-		<method name="setDither(Z)V" />
-		<method name="setElegantTextHeight(Z)V" since="21" />
-		<method name="setFakeBoldText(Z)V" />
-		<method name="setFilterBitmap(Z)V" />
-		<method name="setFlags(I)V" />
-		<method name="setHinting(I)V" since="14" />
-		<method name="setLinearText(Z)V" />
-		<method name="setMaskFilter(Landroid/graphics/MaskFilter;)Landroid/graphics/MaskFilter;" />
-		<method name="setPathEffect(Landroid/graphics/PathEffect;)Landroid/graphics/PathEffect;" />
-		<method name="setRasterizer(Landroid/graphics/Rasterizer;)Landroid/graphics/Rasterizer;" />
-		<method name="setShader(Landroid/graphics/Shader;)Landroid/graphics/Shader;" />
-		<method name="setShadowLayer(FFFI)V" />
-		<method name="setStrikeThruText(Z)V" />
-		<method name="setStrokeCap(Landroid/graphics/Paint$Cap;)V" />
-		<method name="setStrokeJoin(Landroid/graphics/Paint$Join;)V" />
-		<method name="setStrokeMiter(F)V" />
-		<method name="setStrokeWidth(F)V" />
-		<method name="setStyle(Landroid/graphics/Paint$Style;)V" />
-		<method name="setSubpixelText(Z)V" />
-		<method name="setTextAlign(Landroid/graphics/Paint$Align;)V" />
-		<method name="setTextLocale(Ljava/util/Locale;)V" since="17" />
-		<method name="setTextScaleX(F)V" />
-		<method name="setTextSize(F)V" />
-		<method name="setTextSkewX(F)V" />
-		<method name="setTypeface(Landroid/graphics/Typeface;)Landroid/graphics/Typeface;" />
-		<method name="setUnderlineText(Z)V" />
-		<method name="setXfermode(Landroid/graphics/Xfermode;)Landroid/graphics/Xfermode;" />
-		<field name="ANTI_ALIAS_FLAG" />
-		<field name="DEV_KERN_TEXT_FLAG" />
-		<field name="DITHER_FLAG" />
-		<field name="EMBEDDED_BITMAP_TEXT_FLAG" since="19" />
-		<field name="FAKE_BOLD_TEXT_FLAG" />
-		<field name="FILTER_BITMAP_FLAG" />
-		<field name="HINTING_OFF" since="14" />
-		<field name="HINTING_ON" since="14" />
-		<field name="LINEAR_TEXT_FLAG" />
-		<field name="STRIKE_THRU_TEXT_FLAG" />
-		<field name="SUBPIXEL_TEXT_FLAG" />
-		<field name="UNDERLINE_TEXT_FLAG" />
-	</class>
-	<class name="android/graphics/Paint$Align" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/Paint$Align;" />
-		<method name="values()[Landroid/graphics/Paint$Align;" />
-		<field name="CENTER" />
-		<field name="LEFT" />
-		<field name="RIGHT" />
-	</class>
-	<class name="android/graphics/Paint$Cap" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/Paint$Cap;" />
-		<method name="values()[Landroid/graphics/Paint$Cap;" />
-		<field name="BUTT" />
-		<field name="ROUND" />
-		<field name="SQUARE" />
-	</class>
-	<class name="android/graphics/Paint$FontMetrics" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="ascent" />
-		<field name="bottom" />
-		<field name="descent" />
-		<field name="leading" />
-		<field name="top" />
-	</class>
-	<class name="android/graphics/Paint$FontMetricsInt" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="ascent" />
-		<field name="bottom" />
-		<field name="descent" />
-		<field name="leading" />
-		<field name="top" />
-	</class>
-	<class name="android/graphics/Paint$Join" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/Paint$Join;" />
-		<method name="values()[Landroid/graphics/Paint$Join;" />
-		<field name="BEVEL" />
-		<field name="MITER" />
-		<field name="ROUND" />
-	</class>
-	<class name="android/graphics/Paint$Style" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/Paint$Style;" />
-		<method name="values()[Landroid/graphics/Paint$Style;" />
-		<field name="FILL" />
-		<field name="FILL_AND_STROKE" />
-		<field name="STROKE" />
-	</class>
-	<class name="android/graphics/PaintFlagsDrawFilter" since="1">
-		<extends name="android/graphics/DrawFilter" />
-		<method name="&lt;init>(II)V" />
-	</class>
-	<class name="android/graphics/Path" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/graphics/Path;)V" />
-		<method name="addArc(Landroid/graphics/RectF;FF)V" />
-		<method name="addCircle(FFFLandroid/graphics/Path$Direction;)V" />
-		<method name="addOval(FFFFLandroid/graphics/Path$Direction;)V" since="21" />
-		<method name="addOval(Landroid/graphics/RectF;Landroid/graphics/Path$Direction;)V" />
-		<method name="addPath(Landroid/graphics/Path;)V" />
-		<method name="addPath(Landroid/graphics/Path;FF)V" />
-		<method name="addPath(Landroid/graphics/Path;Landroid/graphics/Matrix;)V" />
-		<method name="addRect(FFFFLandroid/graphics/Path$Direction;)V" />
-		<method name="addRect(Landroid/graphics/RectF;Landroid/graphics/Path$Direction;)V" />
-		<method name="addRoundRect(Landroid/graphics/RectF;FFLandroid/graphics/Path$Direction;)V" />
-		<method name="addRoundRect(Landroid/graphics/RectF;[FLandroid/graphics/Path$Direction;)V" />
-		<method name="arcTo(Landroid/graphics/RectF;FF)V" />
-		<method name="arcTo(Landroid/graphics/RectF;FFZ)V" />
-		<method name="close()V" />
-		<method name="computeBounds(Landroid/graphics/RectF;Z)V" />
-		<method name="cubicTo(FFFFFF)V" />
-		<method name="getFillType()Landroid/graphics/Path$FillType;" />
-		<method name="incReserve(I)V" />
-		<method name="isConvex()Z" since="21" />
-		<method name="isEmpty()Z" />
-		<method name="isInverseFillType()Z" />
-		<method name="isRect(Landroid/graphics/RectF;)Z" />
-		<method name="lineTo(FF)V" />
-		<method name="moveTo(FF)V" />
-		<method name="offset(FF)V" />
-		<method name="offset(FFLandroid/graphics/Path;)V" />
-		<method name="op(Landroid/graphics/Path;Landroid/graphics/Path$Op;)Z" since="19" />
-		<method name="op(Landroid/graphics/Path;Landroid/graphics/Path;Landroid/graphics/Path$Op;)Z" since="19" />
-		<method name="quadTo(FFFF)V" />
-		<method name="rCubicTo(FFFFFF)V" />
-		<method name="rLineTo(FF)V" />
-		<method name="rMoveTo(FF)V" />
-		<method name="rQuadTo(FFFF)V" />
-		<method name="reset()V" />
-		<method name="rewind()V" />
-		<method name="set(Landroid/graphics/Path;)V" />
-		<method name="setFillType(Landroid/graphics/Path$FillType;)V" />
-		<method name="setLastPoint(FF)V" />
-		<method name="toggleInverseFillType()V" />
-		<method name="transform(Landroid/graphics/Matrix;)V" />
-		<method name="transform(Landroid/graphics/Matrix;Landroid/graphics/Path;)V" />
-	</class>
-	<class name="android/graphics/Path$Direction" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/Path$Direction;" />
-		<method name="values()[Landroid/graphics/Path$Direction;" />
-		<field name="CCW" />
-		<field name="CW" />
-	</class>
-	<class name="android/graphics/Path$FillType" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/Path$FillType;" />
-		<method name="values()[Landroid/graphics/Path$FillType;" />
-		<field name="EVEN_ODD" />
-		<field name="INVERSE_EVEN_ODD" />
-		<field name="INVERSE_WINDING" />
-		<field name="WINDING" />
-	</class>
-	<class name="android/graphics/Path$Op" since="19">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/Path$Op;" />
-		<method name="values()[Landroid/graphics/Path$Op;" />
-		<field name="DIFFERENCE" />
-		<field name="INTERSECT" />
-		<field name="REVERSE_DIFFERENCE" />
-		<field name="UNION" />
-		<field name="XOR" />
-	</class>
-	<class name="android/graphics/PathDashPathEffect" since="1">
-		<extends name="android/graphics/PathEffect" />
-		<method name="&lt;init>(Landroid/graphics/Path;FFLandroid/graphics/PathDashPathEffect$Style;)V" />
-	</class>
-	<class name="android/graphics/PathDashPathEffect$Style" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/PathDashPathEffect$Style;" />
-		<method name="values()[Landroid/graphics/PathDashPathEffect$Style;" />
-		<field name="MORPH" />
-		<field name="ROTATE" />
-		<field name="TRANSLATE" />
-	</class>
-	<class name="android/graphics/PathEffect" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/graphics/PathMeasure" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/graphics/Path;Z)V" />
-		<method name="getLength()F" />
-		<method name="getMatrix(FLandroid/graphics/Matrix;I)Z" />
-		<method name="getPosTan(F[F[F)Z" />
-		<method name="getSegment(FFLandroid/graphics/Path;Z)Z" />
-		<method name="isClosed()Z" />
-		<method name="nextContour()Z" />
-		<method name="setPath(Landroid/graphics/Path;Z)V" />
-		<field name="POSITION_MATRIX_FLAG" />
-		<field name="TANGENT_MATRIX_FLAG" />
-	</class>
-	<class name="android/graphics/Picture" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/graphics/Picture;)V" />
-		<method name="beginRecording(II)Landroid/graphics/Canvas;" />
-		<method name="createFromStream(Ljava/io/InputStream;)Landroid/graphics/Picture;" />
-		<method name="draw(Landroid/graphics/Canvas;)V" />
-		<method name="endRecording()V" />
-		<method name="getHeight()I" />
-		<method name="getWidth()I" />
-		<method name="writeToStream(Ljava/io/OutputStream;)V" />
-	</class>
-	<class name="android/graphics/PixelFormat" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="formatHasAlpha(I)Z" />
-		<method name="getPixelFormatInfo(ILandroid/graphics/PixelFormat;)V" />
-		<field name="A_8" />
-		<field name="JPEG" />
-		<field name="LA_88" />
-		<field name="L_8" />
-		<field name="OPAQUE" />
-		<field name="RGBA_4444" />
-		<field name="RGBA_5551" />
-		<field name="RGBA_8888" />
-		<field name="RGBX_8888" />
-		<field name="RGB_332" />
-		<field name="RGB_565" />
-		<field name="RGB_888" />
-		<field name="TRANSLUCENT" />
-		<field name="TRANSPARENT" />
-		<field name="UNKNOWN" />
-		<field name="YCbCr_420_SP" />
-		<field name="YCbCr_422_I" since="5" />
-		<field name="YCbCr_422_SP" />
-		<field name="bitsPerPixel" />
-		<field name="bytesPerPixel" />
-	</class>
-	<class name="android/graphics/PixelXorXfermode" since="1">
-		<extends name="android/graphics/Xfermode" />
-		<method name="&lt;init>(I)V" />
-	</class>
-	<class name="android/graphics/Point" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" since="13" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(II)V" />
-		<method name="&lt;init>(Landroid/graphics/Point;)V" />
-		<method name="equals(II)Z" />
-		<method name="negate()V" />
-		<method name="offset(II)V" />
-		<method name="readFromParcel(Landroid/os/Parcel;)V" since="13" />
-		<method name="set(II)V" />
-		<field name="CREATOR" since="13" />
-		<field name="x" />
-		<field name="y" />
-	</class>
-	<class name="android/graphics/PointF" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" since="13" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(FF)V" />
-		<method name="&lt;init>(Landroid/graphics/Point;)V" />
-		<method name="equals(FF)Z" />
-		<method name="length()F" />
-		<method name="length(FF)F" />
-		<method name="negate()V" />
-		<method name="offset(FF)V" />
-		<method name="readFromParcel(Landroid/os/Parcel;)V" since="13" />
-		<method name="set(FF)V" />
-		<method name="set(Landroid/graphics/PointF;)V" />
-		<field name="CREATOR" since="13" />
-		<field name="x" />
-		<field name="y" />
-	</class>
-	<class name="android/graphics/PorterDuff" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/graphics/PorterDuff$Mode" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/PorterDuff$Mode;" />
-		<method name="values()[Landroid/graphics/PorterDuff$Mode;" />
-		<field name="ADD" since="11" />
-		<field name="CLEAR" />
-		<field name="DARKEN" />
-		<field name="DST" />
-		<field name="DST_ATOP" />
-		<field name="DST_IN" />
-		<field name="DST_OUT" />
-		<field name="DST_OVER" />
-		<field name="LIGHTEN" />
-		<field name="MULTIPLY" />
-		<field name="OVERLAY" since="11" />
-		<field name="SCREEN" />
-		<field name="SRC" />
-		<field name="SRC_ATOP" />
-		<field name="SRC_IN" />
-		<field name="SRC_OUT" />
-		<field name="SRC_OVER" />
-		<field name="XOR" />
-	</class>
-	<class name="android/graphics/PorterDuffColorFilter" since="1">
-		<extends name="android/graphics/ColorFilter" />
-		<method name="&lt;init>(ILandroid/graphics/PorterDuff$Mode;)V" />
-		<method name="getColor()I" since="21" />
-		<method name="getMode()Landroid/graphics/PorterDuff$Mode;" since="21" />
-		<method name="setColor(I)V" since="21" />
-		<method name="setMode(Landroid/graphics/PorterDuff$Mode;)V" since="21" />
-	</class>
-	<class name="android/graphics/PorterDuffXfermode" since="1">
-		<extends name="android/graphics/Xfermode" />
-		<method name="&lt;init>(Landroid/graphics/PorterDuff$Mode;)V" />
-	</class>
-	<class name="android/graphics/RadialGradient" since="1">
-		<extends name="android/graphics/Shader" />
-		<method name="&lt;init>(FFFIILandroid/graphics/Shader$TileMode;)V" />
-		<method name="&lt;init>(FFF[I[FLandroid/graphics/Shader$TileMode;)V" />
-	</class>
-	<class name="android/graphics/Rasterizer" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/graphics/Rect" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(IIII)V" />
-		<method name="&lt;init>(Landroid/graphics/Rect;)V" />
-		<method name="centerX()I" />
-		<method name="centerY()I" />
-		<method name="contains(II)Z" />
-		<method name="contains(IIII)Z" />
-		<method name="contains(Landroid/graphics/Rect;)Z" />
-		<method name="exactCenterX()F" />
-		<method name="exactCenterY()F" />
-		<method name="flattenToString()Ljava/lang/String;" since="7" />
-		<method name="height()I" />
-		<method name="inset(II)V" />
-		<method name="intersect(IIII)Z" />
-		<method name="intersect(Landroid/graphics/Rect;)Z" />
-		<method name="intersects(IIII)Z" />
-		<method name="intersects(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z" />
-		<method name="isEmpty()Z" />
-		<method name="offset(II)V" />
-		<method name="offsetTo(II)V" />
-		<method name="readFromParcel(Landroid/os/Parcel;)V" />
-		<method name="set(IIII)V" />
-		<method name="set(Landroid/graphics/Rect;)V" />
-		<method name="setEmpty()V" />
-		<method name="setIntersect(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z" />
-		<method name="sort()V" />
-		<method name="toShortString()Ljava/lang/String;" since="3" />
-		<method name="unflattenFromString(Ljava/lang/String;)Landroid/graphics/Rect;" since="7" />
-		<method name="union(II)V" />
-		<method name="union(IIII)V" />
-		<method name="union(Landroid/graphics/Rect;)V" />
-		<method name="width()I" />
-		<field name="CREATOR" />
-		<field name="bottom" />
-		<field name="left" />
-		<field name="right" />
-		<field name="top" />
-	</class>
-	<class name="android/graphics/RectF" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" since="3" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(FFFF)V" />
-		<method name="&lt;init>(Landroid/graphics/Rect;)V" />
-		<method name="&lt;init>(Landroid/graphics/RectF;)V" />
-		<method name="centerX()F" />
-		<method name="centerY()F" />
-		<method name="contains(FF)Z" />
-		<method name="contains(FFFF)Z" />
-		<method name="contains(Landroid/graphics/RectF;)Z" />
-		<method name="height()F" />
-		<method name="inset(FF)V" />
-		<method name="intersect(FFFF)Z" />
-		<method name="intersect(Landroid/graphics/RectF;)Z" />
-		<method name="intersects(FFFF)Z" />
-		<method name="intersects(Landroid/graphics/RectF;Landroid/graphics/RectF;)Z" />
-		<method name="isEmpty()Z" />
-		<method name="offset(FF)V" />
-		<method name="offsetTo(FF)V" />
-		<method name="readFromParcel(Landroid/os/Parcel;)V" since="3" />
-		<method name="round(Landroid/graphics/Rect;)V" />
-		<method name="roundOut(Landroid/graphics/Rect;)V" />
-		<method name="set(FFFF)V" />
-		<method name="set(Landroid/graphics/Rect;)V" />
-		<method name="set(Landroid/graphics/RectF;)V" />
-		<method name="setEmpty()V" />
-		<method name="setIntersect(Landroid/graphics/RectF;Landroid/graphics/RectF;)Z" />
-		<method name="sort()V" />
-		<method name="toShortString()Ljava/lang/String;" since="14" />
-		<method name="union(FF)V" />
-		<method name="union(FFFF)V" />
-		<method name="union(Landroid/graphics/RectF;)V" />
-		<method name="width()F" />
-		<field name="CREATOR" since="3" />
-		<field name="bottom" />
-		<field name="left" />
-		<field name="right" />
-		<field name="top" />
-	</class>
-	<class name="android/graphics/Region" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(IIII)V" />
-		<method name="&lt;init>(Landroid/graphics/Rect;)V" />
-		<method name="&lt;init>(Landroid/graphics/Region;)V" />
-		<method name="contains(II)Z" />
-		<method name="getBoundaryPath()Landroid/graphics/Path;" />
-		<method name="getBoundaryPath(Landroid/graphics/Path;)Z" />
-		<method name="getBounds()Landroid/graphics/Rect;" />
-		<method name="getBounds(Landroid/graphics/Rect;)Z" />
-		<method name="isComplex()Z" />
-		<method name="isEmpty()Z" />
-		<method name="isRect()Z" />
-		<method name="op(IIIILandroid/graphics/Region$Op;)Z" />
-		<method name="op(Landroid/graphics/Rect;Landroid/graphics/Region$Op;)Z" />
-		<method name="op(Landroid/graphics/Rect;Landroid/graphics/Region;Landroid/graphics/Region$Op;)Z" />
-		<method name="op(Landroid/graphics/Region;Landroid/graphics/Region$Op;)Z" />
-		<method name="op(Landroid/graphics/Region;Landroid/graphics/Region;Landroid/graphics/Region$Op;)Z" />
-		<method name="quickContains(IIII)Z" />
-		<method name="quickContains(Landroid/graphics/Rect;)Z" />
-		<method name="quickReject(IIII)Z" />
-		<method name="quickReject(Landroid/graphics/Rect;)Z" />
-		<method name="quickReject(Landroid/graphics/Region;)Z" />
-		<method name="set(IIII)Z" />
-		<method name="set(Landroid/graphics/Rect;)Z" />
-		<method name="set(Landroid/graphics/Region;)Z" />
-		<method name="setEmpty()V" />
-		<method name="setPath(Landroid/graphics/Path;Landroid/graphics/Region;)Z" />
-		<method name="translate(II)V" />
-		<method name="translate(IILandroid/graphics/Region;)V" />
-		<method name="union(Landroid/graphics/Rect;)Z" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/graphics/Region$Op" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/Region$Op;" />
-		<method name="values()[Landroid/graphics/Region$Op;" />
-		<field name="DIFFERENCE" />
-		<field name="INTERSECT" />
-		<field name="REPLACE" />
-		<field name="REVERSE_DIFFERENCE" />
-		<field name="UNION" />
-		<field name="XOR" />
-	</class>
-	<class name="android/graphics/RegionIterator" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/graphics/Region;)V" />
-		<method name="next(Landroid/graphics/Rect;)Z" />
-	</class>
-	<class name="android/graphics/Shader" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getLocalMatrix(Landroid/graphics/Matrix;)Z" />
-		<method name="setLocalMatrix(Landroid/graphics/Matrix;)V" />
-	</class>
-	<class name="android/graphics/Shader$TileMode" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/Shader$TileMode;" />
-		<method name="values()[Landroid/graphics/Shader$TileMode;" />
-		<field name="CLAMP" />
-		<field name="MIRROR" />
-		<field name="REPEAT" />
-	</class>
-	<class name="android/graphics/SumPathEffect" since="1">
-		<extends name="android/graphics/PathEffect" />
-		<method name="&lt;init>(Landroid/graphics/PathEffect;Landroid/graphics/PathEffect;)V" />
-	</class>
-	<class name="android/graphics/SurfaceTexture" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(IZ)V" since="19" />
-		<method name="attachToGLContext(I)V" since="16" />
-		<method name="detachFromGLContext()V" since="16" />
-		<method name="getTimestamp()J" since="14" />
-		<method name="getTransformMatrix([F)V" />
-		<method name="release()V" since="14" />
-		<method name="releaseTexImage()V" since="19" />
-		<method name="setDefaultBufferSize(II)V" since="15" />
-		<method name="setOnFrameAvailableListener(Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;)V" />
-		<method name="setOnFrameAvailableListener(Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;Landroid/os/Handler;)V" since="21" />
-		<method name="updateTexImage()V" />
-	</class>
-	<class name="android/graphics/SurfaceTexture$OnFrameAvailableListener" since="11">
-		<extends name="java/lang/Object" />
-		<method name="onFrameAvailable(Landroid/graphics/SurfaceTexture;)V" />
-	</class>
-	<class name="android/graphics/SurfaceTexture$OutOfResourcesException" since="11">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/graphics/SweepGradient" since="1">
-		<extends name="android/graphics/Shader" />
-		<method name="&lt;init>(FFII)V" />
-		<method name="&lt;init>(FF[I[F)V" />
-	</class>
-	<class name="android/graphics/Typeface" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="create(Landroid/graphics/Typeface;I)Landroid/graphics/Typeface;" />
-		<method name="create(Ljava/lang/String;I)Landroid/graphics/Typeface;" />
-		<method name="createFromAsset(Landroid/content/res/AssetManager;Ljava/lang/String;)Landroid/graphics/Typeface;" />
-		<method name="createFromFile(Ljava/io/File;)Landroid/graphics/Typeface;" since="4" />
-		<method name="createFromFile(Ljava/lang/String;)Landroid/graphics/Typeface;" since="4" />
-		<method name="defaultFromStyle(I)Landroid/graphics/Typeface;" />
-		<method name="getStyle()I" />
-		<method name="isBold()Z" />
-		<method name="isItalic()Z" />
-		<field name="BOLD" />
-		<field name="BOLD_ITALIC" />
-		<field name="DEFAULT" />
-		<field name="DEFAULT_BOLD" />
-		<field name="ITALIC" />
-		<field name="MONOSPACE" />
-		<field name="NORMAL" />
-		<field name="SANS_SERIF" />
-		<field name="SERIF" />
-	</class>
-	<class name="android/graphics/Xfermode" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/graphics/YuvImage" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>([BIII[I)V" />
-		<method name="compressToJpeg(Landroid/graphics/Rect;ILjava/io/OutputStream;)Z" />
-		<method name="getHeight()I" />
-		<method name="getStrides()[I" />
-		<method name="getWidth()I" />
-		<method name="getYuvData()[B" />
-		<method name="getYuvFormat()I" />
-	</class>
-	<class name="android/graphics/drawable/Animatable" since="4">
-		<extends name="java/lang/Object" />
-		<method name="isRunning()Z" />
-		<method name="start()V" />
-		<method name="stop()V" />
-	</class>
-	<class name="android/graphics/drawable/AnimatedStateListDrawable" since="21">
-		<extends name="android/graphics/drawable/StateListDrawable" />
-		<method name="&lt;init>()V" />
-		<method name="addState([ILandroid/graphics/drawable/Drawable;I)V" />
-		<method name="addTransition(IILandroid/graphics/drawable/AnimationDrawable;Z)V" />
-	</class>
-	<class name="android/graphics/drawable/AnimationDrawable" since="1">
-		<extends name="android/graphics/drawable/DrawableContainer" />
-		<implements name="android/graphics/drawable/Animatable" since="4" />
-		<implements name="java/lang/Runnable" />
-		<method name="&lt;init>()V" />
-		<method name="addFrame(Landroid/graphics/drawable/Drawable;I)V" />
-		<method name="getDuration(I)I" />
-		<method name="getFrame(I)Landroid/graphics/drawable/Drawable;" />
-		<method name="getNumberOfFrames()I" />
-		<method name="isOneShot()Z" />
-		<method name="isRunning()Z" />
-		<method name="setOneShot(Z)V" />
-		<method name="start()V" />
-		<method name="stop()V" />
-	</class>
-	<class name="android/graphics/drawable/BitmapDrawable" since="1">
-		<extends name="android/graphics/drawable/Drawable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/content/res/Resources;)V" since="4" />
-		<method name="&lt;init>(Landroid/content/res/Resources;Landroid/graphics/Bitmap;)V" since="4" />
-		<method name="&lt;init>(Landroid/content/res/Resources;Ljava/io/InputStream;)V" since="5" />
-		<method name="&lt;init>(Landroid/content/res/Resources;Ljava/lang/String;)V" since="5" />
-		<method name="&lt;init>(Landroid/graphics/Bitmap;)V" />
-		<method name="&lt;init>(Ljava/io/InputStream;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="getBitmap()Landroid/graphics/Bitmap;" />
-		<method name="getGravity()I" />
-		<method name="getPaint()Landroid/graphics/Paint;" />
-		<method name="getTileModeX()Landroid/graphics/Shader$TileMode;" />
-		<method name="getTileModeY()Landroid/graphics/Shader$TileMode;" />
-		<method name="hasAntiAlias()Z" since="18" />
-		<method name="hasMipMap()Z" since="18" />
-		<method name="setAntiAlias(Z)V" />
-		<method name="setGravity(I)V" />
-		<method name="setMipMap(Z)V" since="18" />
-		<method name="setTargetDensity(I)V" since="4" />
-		<method name="setTargetDensity(Landroid/graphics/Canvas;)V" since="4" />
-		<method name="setTargetDensity(Landroid/util/DisplayMetrics;)V" since="4" />
-		<method name="setTileModeX(Landroid/graphics/Shader$TileMode;)V" />
-		<method name="setTileModeXY(Landroid/graphics/Shader$TileMode;Landroid/graphics/Shader$TileMode;)V" />
-		<method name="setTileModeY(Landroid/graphics/Shader$TileMode;)V" />
-	</class>
-	<class name="android/graphics/drawable/ClipDrawable" since="1">
-		<extends name="android/graphics/drawable/Drawable" />
-		<implements name="android/graphics/drawable/Drawable$Callback" />
-		<method name="&lt;init>(Landroid/graphics/drawable/Drawable;II)V" />
-		<field name="HORIZONTAL" />
-		<field name="VERTICAL" />
-	</class>
-	<class name="android/graphics/drawable/ColorDrawable" since="1">
-		<extends name="android/graphics/drawable/Drawable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="getAlpha()I" />
-		<method name="getColor()I" since="11" />
-		<method name="setColor(I)V" since="11" />
-	</class>
-	<class name="android/graphics/drawable/Drawable" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="applyTheme(Landroid/content/res/Resources$Theme;)V" since="21" />
-		<method name="canApplyTheme()Z" since="21" />
-		<method name="clearColorFilter()V" />
-		<method name="copyBounds()Landroid/graphics/Rect;" />
-		<method name="copyBounds(Landroid/graphics/Rect;)V" />
-		<method name="createFromPath(Ljava/lang/String;)Landroid/graphics/drawable/Drawable;" />
-		<method name="createFromResourceStream(Landroid/content/res/Resources;Landroid/util/TypedValue;Ljava/io/InputStream;Ljava/lang/String;)Landroid/graphics/drawable/Drawable;" since="4" />
-		<method name="createFromResourceStream(Landroid/content/res/Resources;Landroid/util/TypedValue;Ljava/io/InputStream;Ljava/lang/String;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/drawable/Drawable;" since="5" />
-		<method name="createFromStream(Ljava/io/InputStream;Ljava/lang/String;)Landroid/graphics/drawable/Drawable;" />
-		<method name="createFromXml(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;)Landroid/graphics/drawable/Drawable;" />
-		<method name="createFromXml(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;" since="21" />
-		<method name="createFromXmlInner(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;)Landroid/graphics/drawable/Drawable;" />
-		<method name="createFromXmlInner(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;" since="21" />
-		<method name="draw(Landroid/graphics/Canvas;)V" />
-		<method name="getAlpha()I" since="19" />
-		<method name="getBounds()Landroid/graphics/Rect;" />
-		<method name="getCallback()Landroid/graphics/drawable/Drawable$Callback;" since="11" />
-		<method name="getChangingConfigurations()I" />
-		<method name="getColorFilter()Landroid/graphics/ColorFilter;" since="21" />
-		<method name="getConstantState()Landroid/graphics/drawable/Drawable$ConstantState;" />
-		<method name="getCurrent()Landroid/graphics/drawable/Drawable;" />
-		<method name="getDirtyBounds()Landroid/graphics/Rect;" since="21" />
-		<method name="getIntrinsicHeight()I" />
-		<method name="getIntrinsicWidth()I" />
-		<method name="getLevel()I" />
-		<method name="getMinimumHeight()I" />
-		<method name="getMinimumWidth()I" />
-		<method name="getOpacity()I" />
-		<method name="getOutline(Landroid/graphics/Outline;)Z" since="21" />
-		<method name="getPadding(Landroid/graphics/Rect;)Z" />
-		<method name="getState()[I" />
-		<method name="getTransparentRegion()Landroid/graphics/Region;" />
-		<method name="inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;)V" />
-		<method name="inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V" since="21" />
-		<method name="invalidateSelf()V" />
-		<method name="isAutoMirrored()Z" since="19" />
-		<method name="isStateful()Z" />
-		<method name="isVisible()Z" />
-		<method name="jumpToCurrentState()V" since="11" />
-		<method name="mutate()Landroid/graphics/drawable/Drawable;" since="3" />
-		<method name="onBoundsChange(Landroid/graphics/Rect;)V" />
-		<method name="onLevelChange(I)Z" />
-		<method name="onStateChange([I)Z" />
-		<method name="resolveOpacity(II)I" />
-		<method name="scheduleSelf(Ljava/lang/Runnable;J)V" />
-		<method name="setAlpha(I)V" />
-		<method name="setAutoMirrored(Z)V" since="19" />
-		<method name="setBounds(IIII)V" />
-		<method name="setBounds(Landroid/graphics/Rect;)V" />
-		<method name="setCallback(Landroid/graphics/drawable/Drawable$Callback;)V" />
-		<method name="setChangingConfigurations(I)V" />
-		<method name="setColorFilter(ILandroid/graphics/PorterDuff$Mode;)V" />
-		<method name="setColorFilter(Landroid/graphics/ColorFilter;)V" />
-		<method name="setDither(Z)V" />
-		<method name="setFilterBitmap(Z)V" />
-		<method name="setHotspot(FF)V" since="21" />
-		<method name="setHotspotBounds(IIII)V" since="21" />
-		<method name="setLevel(I)Z" />
-		<method name="setState([I)Z" />
-		<method name="setTint(Landroid/content/res/ColorStateList;Landroid/graphics/PorterDuff$Mode;)V" since="21" />
-		<method name="setVisible(ZZ)Z" />
-		<method name="unscheduleSelf(Ljava/lang/Runnable;)V" />
-	</class>
-	<class name="android/graphics/drawable/Drawable$Callback" since="1">
-		<extends name="java/lang/Object" />
-		<method name="invalidateDrawable(Landroid/graphics/drawable/Drawable;)V" />
-		<method name="scheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;J)V" />
-		<method name="unscheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;)V" />
-	</class>
-	<class name="android/graphics/drawable/Drawable$ConstantState" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="canApplyTheme()Z" since="21" />
-		<method name="getChangingConfigurations()I" />
-		<method name="newDrawable()Landroid/graphics/drawable/Drawable;" />
-		<method name="newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable;" since="5" />
-		<method name="newDrawable(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;" since="21" />
-	</class>
-	<class name="android/graphics/drawable/DrawableContainer" since="1">
-		<extends name="android/graphics/drawable/Drawable" />
-		<implements name="android/graphics/drawable/Drawable$Callback" />
-		<method name="&lt;init>()V" />
-		<method name="selectDrawable(I)Z" />
-		<method name="setConstantState(Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;)V" />
-		<method name="setEnterFadeDuration(I)V" since="11" />
-		<method name="setExitFadeDuration(I)V" since="11" />
-	</class>
-	<class name="android/graphics/drawable/DrawableContainer$DrawableContainerState" since="1">
-		<extends name="android/graphics/drawable/Drawable$ConstantState" />
-		<method name="&lt;init>()V" />
-		<method name="addChild(Landroid/graphics/drawable/Drawable;)I" />
-		<method name="canConstantState()Z" />
-		<method name="computeConstantSize()V" since="11" />
-		<method name="getChild(I)Landroid/graphics/drawable/Drawable;" since="19" />
-		<method name="getChildCount()I" />
-		<method name="getChildren()[Landroid/graphics/drawable/Drawable;" />
-		<method name="getConstantHeight()I" />
-		<method name="getConstantMinimumHeight()I" />
-		<method name="getConstantMinimumWidth()I" />
-		<method name="getConstantPadding()Landroid/graphics/Rect;" />
-		<method name="getConstantWidth()I" />
-		<method name="getEnterFadeDuration()I" since="11" />
-		<method name="getExitFadeDuration()I" since="11" />
-		<method name="getOpacity()I" />
-		<method name="growArray(II)V" />
-		<method name="isConstantSize()Z" />
-		<method name="isStateful()Z" />
-		<method name="setConstantSize(Z)V" />
-		<method name="setEnterFadeDuration(I)V" since="11" />
-		<method name="setExitFadeDuration(I)V" since="11" />
-		<method name="setVariablePadding(Z)V" />
-	</class>
-	<class name="android/graphics/drawable/GradientDrawable" since="1">
-		<extends name="android/graphics/drawable/Drawable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/graphics/drawable/GradientDrawable$Orientation;[I)V" />
-		<method name="getGradientRadius()F" since="21" />
-		<method name="getOrientation()Landroid/graphics/drawable/GradientDrawable$Orientation;" since="16" />
-		<method name="setColor(I)V" />
-		<method name="setColor(Landroid/content/res/ColorStateList;)V" since="21" />
-		<method name="setColors([I)V" since="16" />
-		<method name="setCornerRadii([F)V" />
-		<method name="setCornerRadius(F)V" />
-		<method name="setGradientCenter(FF)V" />
-		<method name="setGradientRadius(F)V" />
-		<method name="setGradientType(I)V" />
-		<method name="setOrientation(Landroid/graphics/drawable/GradientDrawable$Orientation;)V" since="16" />
-		<method name="setShape(I)V" />
-		<method name="setSize(II)V" />
-		<method name="setStroke(II)V" />
-		<method name="setStroke(IIFF)V" />
-		<method name="setStroke(ILandroid/content/res/ColorStateList;)V" since="21" />
-		<method name="setStroke(ILandroid/content/res/ColorStateList;FF)V" since="21" />
-		<method name="setUseLevel(Z)V" />
-		<field name="LINE" />
-		<field name="LINEAR_GRADIENT" />
-		<field name="OVAL" />
-		<field name="RADIAL_GRADIENT" />
-		<field name="RECTANGLE" />
-		<field name="RING" />
-		<field name="SWEEP_GRADIENT" />
-	</class>
-	<class name="android/graphics/drawable/GradientDrawable$Orientation" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/drawable/GradientDrawable$Orientation;" />
-		<method name="values()[Landroid/graphics/drawable/GradientDrawable$Orientation;" />
-		<field name="BL_TR" />
-		<field name="BOTTOM_TOP" />
-		<field name="BR_TL" />
-		<field name="LEFT_RIGHT" />
-		<field name="RIGHT_LEFT" />
-		<field name="TL_BR" />
-		<field name="TOP_BOTTOM" />
-		<field name="TR_BL" />
-	</class>
-	<class name="android/graphics/drawable/InsetDrawable" since="1">
-		<extends name="android/graphics/drawable/Drawable" />
-		<implements name="android/graphics/drawable/Drawable$Callback" />
-		<method name="&lt;init>(Landroid/graphics/drawable/Drawable;I)V" />
-		<method name="&lt;init>(Landroid/graphics/drawable/Drawable;IIII)V" />
-		<method name="getDrawable()Landroid/graphics/drawable/Drawable;" since="19" />
-	</class>
-	<class name="android/graphics/drawable/LayerDrawable" since="1">
-		<extends name="android/graphics/drawable/Drawable" />
-		<implements name="android/graphics/drawable/Drawable$Callback" />
-		<method name="&lt;init>([Landroid/graphics/drawable/Drawable;)V" />
-		<method name="findDrawableByLayerId(I)Landroid/graphics/drawable/Drawable;" />
-		<method name="getDrawable(I)Landroid/graphics/drawable/Drawable;" />
-		<method name="getId(I)I" />
-		<method name="getNumberOfLayers()I" />
-		<method name="getPaddingMode()I" since="21" />
-		<method name="setDrawableByLayerId(ILandroid/graphics/drawable/Drawable;)Z" />
-		<method name="setId(II)V" />
-		<method name="setLayerInset(IIIII)V" />
-		<method name="setOpacity(I)V" since="11" />
-		<method name="setPaddingMode(I)V" since="21" />
-		<field name="PADDING_MODE_NEST" since="21" />
-		<field name="PADDING_MODE_STACK" since="21" />
-	</class>
-	<class name="android/graphics/drawable/LevelListDrawable" since="1">
-		<extends name="android/graphics/drawable/DrawableContainer" />
-		<method name="&lt;init>()V" />
-		<method name="addLevel(IILandroid/graphics/drawable/Drawable;)V" />
-	</class>
-	<class name="android/graphics/drawable/NinePatchDrawable" since="1">
-		<extends name="android/graphics/drawable/Drawable" />
-		<method name="&lt;init>(Landroid/content/res/Resources;Landroid/graphics/Bitmap;[BLandroid/graphics/Rect;Ljava/lang/String;)V" since="4" />
-		<method name="&lt;init>(Landroid/content/res/Resources;Landroid/graphics/NinePatch;)V" since="4" />
-		<method name="&lt;init>(Landroid/graphics/Bitmap;[BLandroid/graphics/Rect;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Landroid/graphics/NinePatch;)V" />
-		<method name="getPaint()Landroid/graphics/Paint;" />
-		<method name="setTargetDensity(I)V" since="4" />
-		<method name="setTargetDensity(Landroid/graphics/Canvas;)V" since="4" />
-		<method name="setTargetDensity(Landroid/util/DisplayMetrics;)V" since="4" />
-	</class>
-	<class name="android/graphics/drawable/PaintDrawable" since="1">
-		<extends name="android/graphics/drawable/ShapeDrawable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="setCornerRadii([F)V" />
-		<method name="setCornerRadius(F)V" />
-	</class>
-	<class name="android/graphics/drawable/PictureDrawable" since="1">
-		<extends name="android/graphics/drawable/Drawable" />
-		<method name="&lt;init>(Landroid/graphics/Picture;)V" />
-		<method name="getPicture()Landroid/graphics/Picture;" />
-		<method name="setPicture(Landroid/graphics/Picture;)V" />
-	</class>
-	<class name="android/graphics/drawable/RippleDrawable" since="21">
-		<extends name="android/graphics/drawable/LayerDrawable" />
-		<method name="&lt;init>(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V" />
-		<method name="setColor(Landroid/content/res/ColorStateList;)V" />
-	</class>
-	<class name="android/graphics/drawable/RotateDrawable" since="1">
-		<extends name="android/graphics/drawable/Drawable" />
-		<implements name="android/graphics/drawable/Drawable$Callback" />
-		<method name="&lt;init>()V" />
-		<method name="getDrawable()Landroid/graphics/drawable/Drawable;" since="3" />
-		<method name="getFromDegrees()F" since="21" />
-		<method name="getPivotX()F" since="21" />
-		<method name="getPivotY()F" since="21" />
-		<method name="getToDegrees()F" since="21" />
-		<method name="isPivotXRelative()Z" since="21" />
-		<method name="isPivotYRelative()Z" since="21" />
-		<method name="setDrawable(Landroid/graphics/drawable/Drawable;)V" since="21" />
-		<method name="setFromDegrees(F)V" since="21" />
-		<method name="setPivotX(F)V" since="21" />
-		<method name="setPivotXRelative(Z)V" since="21" />
-		<method name="setPivotY(F)V" since="21" />
-		<method name="setPivotYRelative(Z)V" since="21" />
-		<method name="setToDegrees(F)V" since="21" />
-	</class>
-	<class name="android/graphics/drawable/ScaleDrawable" since="1">
-		<extends name="android/graphics/drawable/Drawable" />
-		<implements name="android/graphics/drawable/Drawable$Callback" />
-		<method name="&lt;init>(Landroid/graphics/drawable/Drawable;IFF)V" />
-		<method name="getDrawable()Landroid/graphics/drawable/Drawable;" since="3" />
-	</class>
-	<class name="android/graphics/drawable/ShapeDrawable" since="1">
-		<extends name="android/graphics/drawable/Drawable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/graphics/drawable/shapes/Shape;)V" />
-		<method name="getPaint()Landroid/graphics/Paint;" />
-		<method name="getShaderFactory()Landroid/graphics/drawable/ShapeDrawable$ShaderFactory;" />
-		<method name="getShape()Landroid/graphics/drawable/shapes/Shape;" />
-		<method name="inflateTag(Ljava/lang/String;Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;)Z" />
-		<method name="onDraw(Landroid/graphics/drawable/shapes/Shape;Landroid/graphics/Canvas;Landroid/graphics/Paint;)V" />
-		<method name="setIntrinsicHeight(I)V" />
-		<method name="setIntrinsicWidth(I)V" />
-		<method name="setPadding(IIII)V" />
-		<method name="setPadding(Landroid/graphics/Rect;)V" />
-		<method name="setShaderFactory(Landroid/graphics/drawable/ShapeDrawable$ShaderFactory;)V" />
-		<method name="setShape(Landroid/graphics/drawable/shapes/Shape;)V" />
-	</class>
-	<class name="android/graphics/drawable/ShapeDrawable$ShaderFactory" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="resize(II)Landroid/graphics/Shader;" />
-	</class>
-	<class name="android/graphics/drawable/StateListDrawable" since="1">
-		<extends name="android/graphics/drawable/DrawableContainer" />
-		<method name="&lt;init>()V" />
-		<method name="addState([ILandroid/graphics/drawable/Drawable;)V" />
-	</class>
-	<class name="android/graphics/drawable/TransitionDrawable" since="1">
-		<extends name="android/graphics/drawable/LayerDrawable" />
-		<implements name="android/graphics/drawable/Drawable$Callback" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>([Landroid/graphics/drawable/Drawable;)V" since="3" />
-		<method name="isCrossFadeEnabled()Z" />
-		<method name="resetTransition()V" />
-		<method name="reverseTransition(I)V" />
-		<method name="setCrossFadeEnabled(Z)V" />
-		<method name="startTransition(I)V" />
-	</class>
-	<class name="android/graphics/drawable/shapes/ArcShape" since="1">
-		<extends name="android/graphics/drawable/shapes/RectShape" />
-		<method name="&lt;init>(FF)V" />
-	</class>
-	<class name="android/graphics/drawable/shapes/OvalShape" since="1">
-		<extends name="android/graphics/drawable/shapes/RectShape" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/graphics/drawable/shapes/PathShape" since="1">
-		<extends name="android/graphics/drawable/shapes/Shape" />
-		<method name="&lt;init>(Landroid/graphics/Path;FF)V" />
-		<method name="clone()Landroid/graphics/drawable/shapes/PathShape;" since="3" />
-	</class>
-	<class name="android/graphics/drawable/shapes/RectShape" since="1">
-		<extends name="android/graphics/drawable/shapes/Shape" />
-		<method name="&lt;init>()V" />
-		<method name="clone()Landroid/graphics/drawable/shapes/RectShape;" since="3" />
-		<method name="rect()Landroid/graphics/RectF;" />
-	</class>
-	<class name="android/graphics/drawable/shapes/RoundRectShape" since="1">
-		<extends name="android/graphics/drawable/shapes/RectShape" />
-		<method name="&lt;init>([FLandroid/graphics/RectF;[F)V" />
-		<method name="clone()Landroid/graphics/drawable/shapes/RoundRectShape;" since="3" />
-	</class>
-	<class name="android/graphics/drawable/shapes/Shape" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" since="3" />
-		<method name="&lt;init>()V" />
-		<method name="clone()Landroid/graphics/drawable/shapes/Shape;" since="3" />
-		<method name="draw(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V" />
-		<method name="getHeight()F" />
-		<method name="getOutline(Landroid/graphics/Outline;)Z" since="21" />
-		<method name="getWidth()F" />
-		<method name="hasAlpha()Z" />
-		<method name="onResize(FF)V" />
-		<method name="resize(FF)V" />
-	</class>
-	<class name="android/graphics/pdf/PdfDocument" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="close()V" />
-		<method name="finishPage(Landroid/graphics/pdf/PdfDocument$Page;)V" />
-		<method name="getPages()Ljava/util/List;" />
-		<method name="startPage(Landroid/graphics/pdf/PdfDocument$PageInfo;)Landroid/graphics/pdf/PdfDocument$Page;" />
-		<method name="writeTo(Ljava/io/OutputStream;)V" />
-	</class>
-	<class name="android/graphics/pdf/PdfDocument$Page" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getCanvas()Landroid/graphics/Canvas;" />
-		<method name="getInfo()Landroid/graphics/pdf/PdfDocument$PageInfo;" />
-	</class>
-	<class name="android/graphics/pdf/PdfDocument$PageInfo" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getContentRect()Landroid/graphics/Rect;" />
-		<method name="getPageHeight()I" />
-		<method name="getPageNumber()I" />
-		<method name="getPageWidth()I" />
-	</class>
-	<class name="android/graphics/pdf/PdfDocument$PageInfo$Builder" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(III)V" />
-		<method name="create()Landroid/graphics/pdf/PdfDocument$PageInfo;" />
-		<method name="setContentRect(Landroid/graphics/Rect;)Landroid/graphics/pdf/PdfDocument$PageInfo$Builder;" />
-	</class>
-	<class name="android/graphics/pdf/PdfRenderer" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/AutoCloseable" />
-		<method name="&lt;init>(Landroid/os/ParcelFileDescriptor;)V" />
-		<method name="getPageCount()I" />
-		<method name="openPage(I)Landroid/graphics/pdf/PdfRenderer$Page;" />
-		<method name="shouldScaleForPrinting()Z" />
-	</class>
-	<class name="android/graphics/pdf/PdfRenderer$Page" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/AutoCloseable" />
-		<method name="&lt;init>(Landroid/graphics/pdf/PdfRenderer;)V" />
-		<method name="getHeight()I" />
-		<method name="getIndex()I" />
-		<method name="getWidth()I" />
-		<method name="render(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/Matrix;I)V" />
-		<field name="RENDER_MODE_FOR_DISPLAY" />
-		<field name="RENDER_MODE_FOR_PRINT" />
-	</class>
-	<class name="android/hardware/Camera" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addCallbackBuffer([B)V" since="8" />
-		<method name="autoFocus(Landroid/hardware/Camera$AutoFocusCallback;)V" />
-		<method name="cancelAutoFocus()V" since="5" />
-		<method name="enableShutterSound(Z)Z" since="17" />
-		<method name="getCameraInfo(ILandroid/hardware/Camera$CameraInfo;)V" since="9" />
-		<method name="getNumberOfCameras()I" since="9" />
-		<method name="getParameters()Landroid/hardware/Camera$Parameters;" />
-		<method name="lock()V" since="5" />
-		<method name="open()Landroid/hardware/Camera;" />
-		<method name="open(I)Landroid/hardware/Camera;" since="9" />
-		<method name="reconnect()V" since="8" />
-		<method name="release()V" />
-		<method name="setAutoFocusMoveCallback(Landroid/hardware/Camera$AutoFocusMoveCallback;)V" since="16" />
-		<method name="setDisplayOrientation(I)V" since="8" />
-		<method name="setErrorCallback(Landroid/hardware/Camera$ErrorCallback;)V" />
-		<method name="setFaceDetectionListener(Landroid/hardware/Camera$FaceDetectionListener;)V" since="14" />
-		<method name="setOneShotPreviewCallback(Landroid/hardware/Camera$PreviewCallback;)V" since="3" />
-		<method name="setParameters(Landroid/hardware/Camera$Parameters;)V" />
-		<method name="setPreviewCallback(Landroid/hardware/Camera$PreviewCallback;)V" />
-		<method name="setPreviewCallbackWithBuffer(Landroid/hardware/Camera$PreviewCallback;)V" since="8" />
-		<method name="setPreviewDisplay(Landroid/view/SurfaceHolder;)V" />
-		<method name="setPreviewTexture(Landroid/graphics/SurfaceTexture;)V" since="11" />
-		<method name="setZoomChangeListener(Landroid/hardware/Camera$OnZoomChangeListener;)V" since="8" />
-		<method name="startFaceDetection()V" since="14" />
-		<method name="startPreview()V" />
-		<method name="startSmoothZoom(I)V" since="8" />
-		<method name="stopFaceDetection()V" since="14" />
-		<method name="stopPreview()V" />
-		<method name="stopSmoothZoom()V" since="8" />
-		<method name="takePicture(Landroid/hardware/Camera$ShutterCallback;Landroid/hardware/Camera$PictureCallback;Landroid/hardware/Camera$PictureCallback;)V" />
-		<method name="takePicture(Landroid/hardware/Camera$ShutterCallback;Landroid/hardware/Camera$PictureCallback;Landroid/hardware/Camera$PictureCallback;Landroid/hardware/Camera$PictureCallback;)V" since="5" />
-		<method name="unlock()V" since="5" />
-		<field name="ACTION_NEW_PICTURE" since="14" />
-		<field name="ACTION_NEW_VIDEO" since="14" />
-		<field name="CAMERA_ERROR_SERVER_DIED" />
-		<field name="CAMERA_ERROR_UNKNOWN" />
-	</class>
-	<class name="android/hardware/Camera$Area" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/graphics/Rect;I)V" />
-		<field name="rect" />
-		<field name="weight" />
-	</class>
-	<class name="android/hardware/Camera$AutoFocusCallback" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onAutoFocus(ZLandroid/hardware/Camera;)V" />
-	</class>
-	<class name="android/hardware/Camera$AutoFocusMoveCallback" since="16">
-		<extends name="java/lang/Object" />
-		<method name="onAutoFocusMoving(ZLandroid/hardware/Camera;)V" />
-	</class>
-	<class name="android/hardware/Camera$CameraInfo" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="CAMERA_FACING_BACK" />
-		<field name="CAMERA_FACING_FRONT" />
-		<field name="canDisableShutterSound" since="17" />
-		<field name="facing" />
-		<field name="orientation" />
-	</class>
-	<class name="android/hardware/Camera$ErrorCallback" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onError(ILandroid/hardware/Camera;)V" />
-	</class>
-	<class name="android/hardware/Camera$Face" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="id" />
-		<field name="leftEye" />
-		<field name="mouth" />
-		<field name="rect" />
-		<field name="rightEye" />
-		<field name="score" />
-	</class>
-	<class name="android/hardware/Camera$FaceDetectionListener" since="14">
-		<extends name="java/lang/Object" />
-		<method name="onFaceDetection([Landroid/hardware/Camera$Face;Landroid/hardware/Camera;)V" />
-	</class>
-	<class name="android/hardware/Camera$OnZoomChangeListener" since="8">
-		<extends name="java/lang/Object" />
-		<method name="onZoomChange(IZLandroid/hardware/Camera;)V" />
-	</class>
-	<class name="android/hardware/Camera$Parameters" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/hardware/Camera;)V" />
-		<method name="flatten()Ljava/lang/String;" />
-		<method name="get(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getAntibanding()Ljava/lang/String;" since="5" />
-		<method name="getAutoExposureLock()Z" since="14" />
-		<method name="getAutoWhiteBalanceLock()Z" since="14" />
-		<method name="getColorEffect()Ljava/lang/String;" since="5" />
-		<method name="getExposureCompensation()I" since="8" />
-		<method name="getExposureCompensationStep()F" since="8" />
-		<method name="getFlashMode()Ljava/lang/String;" since="5" />
-		<method name="getFocalLength()F" since="8" />
-		<method name="getFocusAreas()Ljava/util/List;" since="14" />
-		<method name="getFocusDistances([F)V" since="9" />
-		<method name="getFocusMode()Ljava/lang/String;" since="5" />
-		<method name="getHorizontalViewAngle()F" since="8" />
-		<method name="getInt(Ljava/lang/String;)I" />
-		<method name="getJpegQuality()I" since="5" />
-		<method name="getJpegThumbnailQuality()I" since="5" />
-		<method name="getJpegThumbnailSize()Landroid/hardware/Camera$Size;" since="5" />
-		<method name="getMaxExposureCompensation()I" since="8" />
-		<method name="getMaxNumDetectedFaces()I" since="14" />
-		<method name="getMaxNumFocusAreas()I" since="14" />
-		<method name="getMaxNumMeteringAreas()I" since="14" />
-		<method name="getMaxZoom()I" since="8" />
-		<method name="getMeteringAreas()Ljava/util/List;" since="14" />
-		<method name="getMinExposureCompensation()I" since="8" />
-		<method name="getPictureFormat()I" />
-		<method name="getPictureSize()Landroid/hardware/Camera$Size;" />
-		<method name="getPreferredPreviewSizeForVideo()Landroid/hardware/Camera$Size;" since="11" />
-		<method name="getPreviewFormat()I" />
-		<method name="getPreviewFpsRange([I)V" since="9" />
-		<method name="getPreviewFrameRate()I" />
-		<method name="getPreviewSize()Landroid/hardware/Camera$Size;" />
-		<method name="getSceneMode()Ljava/lang/String;" since="5" />
-		<method name="getSupportedAntibanding()Ljava/util/List;" since="5" />
-		<method name="getSupportedColorEffects()Ljava/util/List;" since="5" />
-		<method name="getSupportedFlashModes()Ljava/util/List;" since="5" />
-		<method name="getSupportedFocusModes()Ljava/util/List;" since="5" />
-		<method name="getSupportedJpegThumbnailSizes()Ljava/util/List;" since="8" />
-		<method name="getSupportedPictureFormats()Ljava/util/List;" since="5" />
-		<method name="getSupportedPictureSizes()Ljava/util/List;" since="5" />
-		<method name="getSupportedPreviewFormats()Ljava/util/List;" since="5" />
-		<method name="getSupportedPreviewFpsRange()Ljava/util/List;" since="9" />
-		<method name="getSupportedPreviewFrameRates()Ljava/util/List;" since="5" />
-		<method name="getSupportedPreviewSizes()Ljava/util/List;" since="5" />
-		<method name="getSupportedSceneModes()Ljava/util/List;" since="5" />
-		<method name="getSupportedVideoSizes()Ljava/util/List;" since="11" />
-		<method name="getSupportedWhiteBalance()Ljava/util/List;" since="5" />
-		<method name="getVerticalViewAngle()F" since="8" />
-		<method name="getVideoStabilization()Z" since="15" />
-		<method name="getWhiteBalance()Ljava/lang/String;" since="5" />
-		<method name="getZoom()I" since="8" />
-		<method name="getZoomRatios()Ljava/util/List;" since="8" />
-		<method name="isAutoExposureLockSupported()Z" since="14" />
-		<method name="isAutoWhiteBalanceLockSupported()Z" since="14" />
-		<method name="isSmoothZoomSupported()Z" since="8" />
-		<method name="isVideoSnapshotSupported()Z" since="14" />
-		<method name="isVideoStabilizationSupported()Z" since="15" />
-		<method name="isZoomSupported()Z" since="8" />
-		<method name="remove(Ljava/lang/String;)V" />
-		<method name="removeGpsData()V" since="5" />
-		<method name="set(Ljava/lang/String;I)V" />
-		<method name="set(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="setAntibanding(Ljava/lang/String;)V" since="5" />
-		<method name="setAutoExposureLock(Z)V" since="14" />
-		<method name="setAutoWhiteBalanceLock(Z)V" since="14" />
-		<method name="setColorEffect(Ljava/lang/String;)V" since="5" />
-		<method name="setExposureCompensation(I)V" since="8" />
-		<method name="setFlashMode(Ljava/lang/String;)V" since="5" />
-		<method name="setFocusAreas(Ljava/util/List;)V" since="14" />
-		<method name="setFocusMode(Ljava/lang/String;)V" since="5" />
-		<method name="setGpsAltitude(D)V" since="5" />
-		<method name="setGpsLatitude(D)V" since="5" />
-		<method name="setGpsLongitude(D)V" since="5" />
-		<method name="setGpsProcessingMethod(Ljava/lang/String;)V" since="8" />
-		<method name="setGpsTimestamp(J)V" since="5" />
-		<method name="setJpegQuality(I)V" since="5" />
-		<method name="setJpegThumbnailQuality(I)V" since="5" />
-		<method name="setJpegThumbnailSize(II)V" since="5" />
-		<method name="setMeteringAreas(Ljava/util/List;)V" since="14" />
-		<method name="setPictureFormat(I)V" />
-		<method name="setPictureSize(II)V" />
-		<method name="setPreviewFormat(I)V" />
-		<method name="setPreviewFpsRange(II)V" since="9" />
-		<method name="setPreviewFrameRate(I)V" />
-		<method name="setPreviewSize(II)V" />
-		<method name="setRecordingHint(Z)V" since="14" />
-		<method name="setRotation(I)V" since="5" />
-		<method name="setSceneMode(Ljava/lang/String;)V" since="5" />
-		<method name="setVideoStabilization(Z)V" since="15" />
-		<method name="setWhiteBalance(Ljava/lang/String;)V" since="5" />
-		<method name="setZoom(I)V" since="8" />
-		<method name="unflatten(Ljava/lang/String;)V" />
-		<field name="ANTIBANDING_50HZ" since="5" />
-		<field name="ANTIBANDING_60HZ" since="5" />
-		<field name="ANTIBANDING_AUTO" since="5" />
-		<field name="ANTIBANDING_OFF" since="5" />
-		<field name="EFFECT_AQUA" since="5" />
-		<field name="EFFECT_BLACKBOARD" since="5" />
-		<field name="EFFECT_MONO" since="5" />
-		<field name="EFFECT_NEGATIVE" since="5" />
-		<field name="EFFECT_NONE" since="5" />
-		<field name="EFFECT_POSTERIZE" since="5" />
-		<field name="EFFECT_SEPIA" since="5" />
-		<field name="EFFECT_SOLARIZE" since="5" />
-		<field name="EFFECT_WHITEBOARD" since="5" />
-		<field name="FLASH_MODE_AUTO" since="5" />
-		<field name="FLASH_MODE_OFF" since="5" />
-		<field name="FLASH_MODE_ON" since="5" />
-		<field name="FLASH_MODE_RED_EYE" since="5" />
-		<field name="FLASH_MODE_TORCH" since="5" />
-		<field name="FOCUS_DISTANCE_FAR_INDEX" since="9" />
-		<field name="FOCUS_DISTANCE_NEAR_INDEX" since="9" />
-		<field name="FOCUS_DISTANCE_OPTIMAL_INDEX" since="9" />
-		<field name="FOCUS_MODE_AUTO" since="5" />
-		<field name="FOCUS_MODE_CONTINUOUS_PICTURE" since="14" />
-		<field name="FOCUS_MODE_CONTINUOUS_VIDEO" since="9" />
-		<field name="FOCUS_MODE_EDOF" since="8" />
-		<field name="FOCUS_MODE_FIXED" since="5" />
-		<field name="FOCUS_MODE_INFINITY" since="5" />
-		<field name="FOCUS_MODE_MACRO" since="5" />
-		<field name="PREVIEW_FPS_MAX_INDEX" since="9" />
-		<field name="PREVIEW_FPS_MIN_INDEX" since="9" />
-		<field name="SCENE_MODE_ACTION" since="5" />
-		<field name="SCENE_MODE_AUTO" since="5" />
-		<field name="SCENE_MODE_BARCODE" since="8" />
-		<field name="SCENE_MODE_BEACH" since="5" />
-		<field name="SCENE_MODE_CANDLELIGHT" since="5" />
-		<field name="SCENE_MODE_FIREWORKS" since="5" />
-		<field name="SCENE_MODE_HDR" since="17" />
-		<field name="SCENE_MODE_LANDSCAPE" since="5" />
-		<field name="SCENE_MODE_NIGHT" since="5" />
-		<field name="SCENE_MODE_NIGHT_PORTRAIT" since="5" />
-		<field name="SCENE_MODE_PARTY" since="5" />
-		<field name="SCENE_MODE_PORTRAIT" since="5" />
-		<field name="SCENE_MODE_SNOW" since="5" />
-		<field name="SCENE_MODE_SPORTS" since="5" />
-		<field name="SCENE_MODE_STEADYPHOTO" since="5" />
-		<field name="SCENE_MODE_SUNSET" since="5" />
-		<field name="SCENE_MODE_THEATRE" since="5" />
-		<field name="WHITE_BALANCE_AUTO" since="5" />
-		<field name="WHITE_BALANCE_CLOUDY_DAYLIGHT" since="5" />
-		<field name="WHITE_BALANCE_DAYLIGHT" since="5" />
-		<field name="WHITE_BALANCE_FLUORESCENT" since="5" />
-		<field name="WHITE_BALANCE_INCANDESCENT" since="5" />
-		<field name="WHITE_BALANCE_SHADE" since="5" />
-		<field name="WHITE_BALANCE_TWILIGHT" since="5" />
-		<field name="WHITE_BALANCE_WARM_FLUORESCENT" since="5" />
-	</class>
-	<class name="android/hardware/Camera$PictureCallback" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onPictureTaken([BLandroid/hardware/Camera;)V" />
-	</class>
-	<class name="android/hardware/Camera$PreviewCallback" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onPreviewFrame([BLandroid/hardware/Camera;)V" />
-	</class>
-	<class name="android/hardware/Camera$ShutterCallback" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onShutter()V" />
-	</class>
-	<class name="android/hardware/Camera$Size" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/hardware/Camera;II)V" />
-		<field name="height" />
-		<field name="width" />
-	</class>
-	<class name="android/hardware/ConsumerIrManager" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getCarrierFrequencies()[Landroid/hardware/ConsumerIrManager$CarrierFrequencyRange;" />
-		<method name="hasIrEmitter()Z" />
-		<method name="transmit(I[I)V" />
-	</class>
-	<class name="android/hardware/ConsumerIrManager$CarrierFrequencyRange" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/hardware/ConsumerIrManager;II)V" />
-		<method name="getMaxFrequency()I" />
-		<method name="getMinFrequency()I" />
-	</class>
-	<class name="android/hardware/GeomagneticField" since="3">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(FFFJ)V" />
-		<method name="getDeclination()F" />
-		<method name="getFieldStrength()F" />
-		<method name="getHorizontalStrength()F" />
-		<method name="getInclination()F" />
-		<method name="getX()F" />
-		<method name="getY()F" />
-		<method name="getZ()F" />
-	</class>
-	<class name="android/hardware/Sensor" since="3">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getFifoMaxEventCount()I" since="19" />
-		<method name="getFifoReservedEventCount()I" since="19" />
-		<method name="getMaximumRange()F" />
-		<method name="getMinDelay()I" since="9" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getPower()F" />
-		<method name="getResolution()F" />
-		<method name="getStringType()Ljava/lang/String;" since="20" />
-		<method name="getType()I" />
-		<method name="getVendor()Ljava/lang/String;" />
-		<method name="getVersion()I" />
-		<field name="STRING_TYPE_ACCELEROMETER" since="20" />
-		<field name="STRING_TYPE_AMBIENT_TEMPERATURE" since="20" />
-		<field name="STRING_TYPE_GAME_ROTATION_VECTOR" since="20" />
-		<field name="STRING_TYPE_GEOMAGNETIC_ROTATION_VECTOR" since="20" />
-		<field name="STRING_TYPE_GRAVITY" since="20" />
-		<field name="STRING_TYPE_GYROSCOPE" since="20" />
-		<field name="STRING_TYPE_GYROSCOPE_UNCALIBRATED" since="20" />
-		<field name="STRING_TYPE_HEART_RATE" since="20" />
-		<field name="STRING_TYPE_LIGHT" since="20" />
-		<field name="STRING_TYPE_LINEAR_ACCELERATION" since="20" />
-		<field name="STRING_TYPE_MAGNETIC_FIELD" since="20" />
-		<field name="STRING_TYPE_MAGNETIC_FIELD_UNCALIBRATED" since="20" />
-		<field name="STRING_TYPE_ORIENTATION" since="20" />
-		<field name="STRING_TYPE_PRESSURE" since="20" />
-		<field name="STRING_TYPE_PROXIMITY" since="20" />
-		<field name="STRING_TYPE_RELATIVE_HUMIDITY" since="20" />
-		<field name="STRING_TYPE_ROTATION_VECTOR" since="20" />
-		<field name="STRING_TYPE_SIGNIFICANT_MOTION" since="20" />
-		<field name="STRING_TYPE_STEP_COUNTER" since="20" />
-		<field name="STRING_TYPE_STEP_DETECTOR" since="20" />
-		<field name="STRING_TYPE_TEMPERATURE" since="20" />
-		<field name="TYPE_ACCELEROMETER" />
-		<field name="TYPE_ALL" />
-		<field name="TYPE_AMBIENT_TEMPERATURE" since="14" />
-		<field name="TYPE_GAME_ROTATION_VECTOR" since="18" />
-		<field name="TYPE_GEOMAGNETIC_ROTATION_VECTOR" since="19" />
-		<field name="TYPE_GRAVITY" since="9" />
-		<field name="TYPE_GYROSCOPE" />
-		<field name="TYPE_GYROSCOPE_UNCALIBRATED" since="18" />
-		<field name="TYPE_HEART_RATE" since="20" />
-		<field name="TYPE_LIGHT" />
-		<field name="TYPE_LINEAR_ACCELERATION" since="9" />
-		<field name="TYPE_MAGNETIC_FIELD" />
-		<field name="TYPE_MAGNETIC_FIELD_UNCALIBRATED" since="18" />
-		<field name="TYPE_ORIENTATION" />
-		<field name="TYPE_PRESSURE" />
-		<field name="TYPE_PROXIMITY" />
-		<field name="TYPE_RELATIVE_HUMIDITY" since="14" />
-		<field name="TYPE_ROTATION_VECTOR" since="9" />
-		<field name="TYPE_SIGNIFICANT_MOTION" since="18" />
-		<field name="TYPE_STEP_COUNTER" since="19" />
-		<field name="TYPE_STEP_DETECTOR" since="19" />
-		<field name="TYPE_TEMPERATURE" />
-	</class>
-	<class name="android/hardware/SensorEvent" since="3">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="accuracy" />
-		<field name="sensor" />
-		<field name="timestamp" />
-		<field name="values" />
-	</class>
-	<class name="android/hardware/SensorEventListener" since="3">
-		<extends name="java/lang/Object" />
-		<method name="onAccuracyChanged(Landroid/hardware/Sensor;I)V" />
-		<method name="onSensorChanged(Landroid/hardware/SensorEvent;)V" />
-	</class>
-	<class name="android/hardware/SensorEventListener2" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="android/hardware/SensorEventListener" />
-		<method name="onFlushCompleted(Landroid/hardware/Sensor;)V" />
-	</class>
-	<class name="android/hardware/SensorListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onAccuracyChanged(II)V" />
-		<method name="onSensorChanged(I[F)V" />
-	</class>
-	<class name="android/hardware/SensorManager" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="cancelTriggerSensor(Landroid/hardware/TriggerEventListener;Landroid/hardware/Sensor;)Z" since="18" />
-		<method name="flush(Landroid/hardware/SensorEventListener;)Z" since="19" />
-		<method name="getAltitude(FF)F" since="9" />
-		<method name="getAngleChange([F[F[F)V" since="9" />
-		<method name="getDefaultSensor(I)Landroid/hardware/Sensor;" since="3" />
-		<method name="getInclination([F)F" since="3" />
-		<method name="getOrientation([F[F)[F" since="3" />
-		<method name="getQuaternionFromVector([F[F)V" since="9" />
-		<method name="getRotationMatrix([F[F[F[F)Z" since="3" />
-		<method name="getRotationMatrixFromVector([F[F)V" since="9" />
-		<method name="getSensorList(I)Ljava/util/List;" since="3" />
-		<method name="getSensors()I" />
-		<method name="registerListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;I)Z" since="3" />
-		<method name="registerListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;II)Z" since="19" />
-		<method name="registerListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;IILandroid/os/Handler;)Z" since="19" />
-		<method name="registerListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;ILandroid/os/Handler;)Z" since="3" />
-		<method name="registerListener(Landroid/hardware/SensorListener;I)Z" />
-		<method name="registerListener(Landroid/hardware/SensorListener;II)Z" />
-		<method name="remapCoordinateSystem([FII[F)Z" since="3" />
-		<method name="requestTriggerSensor(Landroid/hardware/TriggerEventListener;Landroid/hardware/Sensor;)Z" since="18" />
-		<method name="unregisterListener(Landroid/hardware/SensorEventListener;)V" since="3" />
-		<method name="unregisterListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;)V" since="3" />
-		<method name="unregisterListener(Landroid/hardware/SensorListener;)V" />
-		<method name="unregisterListener(Landroid/hardware/SensorListener;I)V" />
-		<field name="AXIS_MINUS_X" since="3" />
-		<field name="AXIS_MINUS_Y" since="3" />
-		<field name="AXIS_MINUS_Z" since="3" />
-		<field name="AXIS_X" since="3" />
-		<field name="AXIS_Y" since="3" />
-		<field name="AXIS_Z" since="3" />
-		<field name="DATA_X" />
-		<field name="DATA_Y" />
-		<field name="DATA_Z" />
-		<field name="GRAVITY_DEATH_STAR_I" />
-		<field name="GRAVITY_EARTH" />
-		<field name="GRAVITY_JUPITER" />
-		<field name="GRAVITY_MARS" />
-		<field name="GRAVITY_MERCURY" />
-		<field name="GRAVITY_MOON" />
-		<field name="GRAVITY_NEPTUNE" />
-		<field name="GRAVITY_PLUTO" />
-		<field name="GRAVITY_SATURN" />
-		<field name="GRAVITY_SUN" />
-		<field name="GRAVITY_THE_ISLAND" />
-		<field name="GRAVITY_URANUS" />
-		<field name="GRAVITY_VENUS" />
-		<field name="LIGHT_CLOUDY" />
-		<field name="LIGHT_FULLMOON" />
-		<field name="LIGHT_NO_MOON" />
-		<field name="LIGHT_OVERCAST" />
-		<field name="LIGHT_SHADE" />
-		<field name="LIGHT_SUNLIGHT" />
-		<field name="LIGHT_SUNLIGHT_MAX" />
-		<field name="LIGHT_SUNRISE" />
-		<field name="MAGNETIC_FIELD_EARTH_MAX" />
-		<field name="MAGNETIC_FIELD_EARTH_MIN" />
-		<field name="PRESSURE_STANDARD_ATMOSPHERE" since="9" />
-		<field name="RAW_DATA_INDEX" />
-		<field name="RAW_DATA_X" />
-		<field name="RAW_DATA_Y" />
-		<field name="RAW_DATA_Z" />
-		<field name="SENSOR_ACCELEROMETER" />
-		<field name="SENSOR_ALL" />
-		<field name="SENSOR_DELAY_FASTEST" />
-		<field name="SENSOR_DELAY_GAME" />
-		<field name="SENSOR_DELAY_NORMAL" />
-		<field name="SENSOR_DELAY_UI" />
-		<field name="SENSOR_LIGHT" />
-		<field name="SENSOR_MAGNETIC_FIELD" />
-		<field name="SENSOR_MAX" />
-		<field name="SENSOR_MIN" />
-		<field name="SENSOR_ORIENTATION" />
-		<field name="SENSOR_ORIENTATION_RAW" />
-		<field name="SENSOR_PROXIMITY" />
-		<field name="SENSOR_STATUS_ACCURACY_HIGH" />
-		<field name="SENSOR_STATUS_ACCURACY_LOW" />
-		<field name="SENSOR_STATUS_ACCURACY_MEDIUM" />
-		<field name="SENSOR_STATUS_NO_CONTACT" since="20" />
-		<field name="SENSOR_STATUS_UNRELIABLE" />
-		<field name="SENSOR_TEMPERATURE" />
-		<field name="SENSOR_TRICORDER" />
-		<field name="STANDARD_GRAVITY" />
-	</class>
-	<class name="android/hardware/TriggerEvent" since="18">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="sensor" />
-		<field name="timestamp" />
-		<field name="values" />
-	</class>
-	<class name="android/hardware/TriggerEventListener" since="18">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="onTrigger(Landroid/hardware/TriggerEvent;)V" />
-	</class>
-	<class name="android/hardware/camera2/CameraAccessException" since="21">
-		<extends name="android/util/AndroidException" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(ILjava/lang/String;)V" />
-		<method name="&lt;init>(ILjava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(ILjava/lang/Throwable;)V" />
-		<method name="getReason()I" />
-		<field name="CAMERA_DISABLED" />
-		<field name="CAMERA_DISCONNECTED" />
-		<field name="CAMERA_ERROR" />
-	</class>
-	<class name="android/hardware/camera2/CameraCaptureSession" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/AutoCloseable" />
-		<method name="&lt;init>()V" />
-		<method name="abortCaptures()V" />
-		<method name="capture(Landroid/hardware/camera2/CaptureRequest;Landroid/hardware/camera2/CameraCaptureSession$CaptureListener;Landroid/os/Handler;)I" />
-		<method name="captureBurst(Ljava/util/List;Landroid/hardware/camera2/CameraCaptureSession$CaptureListener;Landroid/os/Handler;)I" />
-		<method name="getDevice()Landroid/hardware/camera2/CameraDevice;" />
-		<method name="setRepeatingBurst(Ljava/util/List;Landroid/hardware/camera2/CameraCaptureSession$CaptureListener;Landroid/os/Handler;)I" />
-		<method name="setRepeatingRequest(Landroid/hardware/camera2/CaptureRequest;Landroid/hardware/camera2/CameraCaptureSession$CaptureListener;Landroid/os/Handler;)I" />
-		<method name="stopRepeating()V" />
-	</class>
-	<class name="android/hardware/camera2/CameraCaptureSession$CaptureListener" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="onCaptureCompleted(Landroid/hardware/camera2/CameraCaptureSession;Landroid/hardware/camera2/CaptureRequest;Landroid/hardware/camera2/TotalCaptureResult;)V" />
-		<method name="onCaptureFailed(Landroid/hardware/camera2/CameraCaptureSession;Landroid/hardware/camera2/CaptureRequest;Landroid/hardware/camera2/CaptureFailure;)V" />
-		<method name="onCaptureProgressed(Landroid/hardware/camera2/CameraCaptureSession;Landroid/hardware/camera2/CaptureRequest;Landroid/hardware/camera2/CaptureResult;)V" />
-		<method name="onCaptureSequenceAborted(Landroid/hardware/camera2/CameraCaptureSession;I)V" />
-		<method name="onCaptureSequenceCompleted(Landroid/hardware/camera2/CameraCaptureSession;IJ)V" />
-		<method name="onCaptureStarted(Landroid/hardware/camera2/CameraCaptureSession;Landroid/hardware/camera2/CaptureRequest;J)V" />
-	</class>
-	<class name="android/hardware/camera2/CameraCaptureSession$StateListener" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="onActive(Landroid/hardware/camera2/CameraCaptureSession;)V" />
-		<method name="onClosed(Landroid/hardware/camera2/CameraCaptureSession;)V" />
-		<method name="onConfigureFailed(Landroid/hardware/camera2/CameraCaptureSession;)V" />
-		<method name="onConfigured(Landroid/hardware/camera2/CameraCaptureSession;)V" />
-		<method name="onReady(Landroid/hardware/camera2/CameraCaptureSession;)V" />
-	</class>
-	<class name="android/hardware/camera2/CameraCharacteristics" since="21">
-		<extends name="android/hardware/camera2/CameraMetadata" />
-		<method name="&lt;init>()V" />
-		<method name="get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;" />
-		<method name="getAvailableCaptureRequestKeys()Ljava/util/List;" />
-		<method name="getAvailableCaptureResultKeys()Ljava/util/List;" />
-		<field name="CONTROL_AE_AVAILABLE_ANTIBANDING_MODES" />
-		<field name="CONTROL_AE_AVAILABLE_MODES" />
-		<field name="CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES" />
-		<field name="CONTROL_AE_COMPENSATION_RANGE" />
-		<field name="CONTROL_AE_COMPENSATION_STEP" />
-		<field name="CONTROL_AF_AVAILABLE_MODES" />
-		<field name="CONTROL_AVAILABLE_EFFECTS" />
-		<field name="CONTROL_AVAILABLE_SCENE_MODES" />
-		<field name="CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES" />
-		<field name="CONTROL_AWB_AVAILABLE_MODES" />
-		<field name="CONTROL_MAX_REGIONS_AE" />
-		<field name="CONTROL_MAX_REGIONS_AF" />
-		<field name="CONTROL_MAX_REGIONS_AWB" />
-		<field name="EDGE_AVAILABLE_EDGE_MODES" />
-		<field name="FLASH_INFO_AVAILABLE" />
-		<field name="HOT_PIXEL_AVAILABLE_HOT_PIXEL_MODES" />
-		<field name="INFO_SUPPORTED_HARDWARE_LEVEL" />
-		<field name="JPEG_AVAILABLE_THUMBNAIL_SIZES" />
-		<field name="LENS_FACING" />
-		<field name="LENS_INFO_AVAILABLE_APERTURES" />
-		<field name="LENS_INFO_AVAILABLE_FILTER_DENSITIES" />
-		<field name="LENS_INFO_AVAILABLE_FOCAL_LENGTHS" />
-		<field name="LENS_INFO_AVAILABLE_OPTICAL_STABILIZATION" />
-		<field name="LENS_INFO_FOCUS_DISTANCE_CALIBRATION" />
-		<field name="LENS_INFO_HYPERFOCAL_DISTANCE" />
-		<field name="LENS_INFO_MINIMUM_FOCUS_DISTANCE" />
-		<field name="NOISE_REDUCTION_AVAILABLE_NOISE_REDUCTION_MODES" />
-		<field name="REQUEST_AVAILABLE_CAPABILITIES" />
-		<field name="REQUEST_MAX_NUM_OUTPUT_PROC" />
-		<field name="REQUEST_MAX_NUM_OUTPUT_PROC_STALLING" />
-		<field name="REQUEST_MAX_NUM_OUTPUT_RAW" />
-		<field name="REQUEST_PARTIAL_RESULT_COUNT" />
-		<field name="REQUEST_PIPELINE_MAX_DEPTH" />
-		<field name="SCALER_AVAILABLE_MAX_DIGITAL_ZOOM" />
-		<field name="SCALER_CROPPING_TYPE" />
-		<field name="SCALER_STREAM_CONFIGURATION_MAP" />
-		<field name="SENSOR_AVAILABLE_TEST_PATTERN_MODES" />
-		<field name="SENSOR_BLACK_LEVEL_PATTERN" />
-		<field name="SENSOR_CALIBRATION_TRANSFORM1" />
-		<field name="SENSOR_CALIBRATION_TRANSFORM2" />
-		<field name="SENSOR_COLOR_TRANSFORM1" />
-		<field name="SENSOR_COLOR_TRANSFORM2" />
-		<field name="SENSOR_FORWARD_MATRIX1" />
-		<field name="SENSOR_FORWARD_MATRIX2" />
-		<field name="SENSOR_INFO_ACTIVE_ARRAY_SIZE" />
-		<field name="SENSOR_INFO_COLOR_FILTER_ARRANGEMENT" />
-		<field name="SENSOR_INFO_EXPOSURE_TIME_RANGE" />
-		<field name="SENSOR_INFO_MAX_FRAME_DURATION" />
-		<field name="SENSOR_INFO_PHYSICAL_SIZE" />
-		<field name="SENSOR_INFO_PIXEL_ARRAY_SIZE" />
-		<field name="SENSOR_INFO_SENSITIVITY_RANGE" />
-		<field name="SENSOR_INFO_WHITE_LEVEL" />
-		<field name="SENSOR_MAX_ANALOG_SENSITIVITY" />
-		<field name="SENSOR_ORIENTATION" />
-		<field name="SENSOR_REFERENCE_ILLUMINANT1" />
-		<field name="SENSOR_REFERENCE_ILLUMINANT2" />
-		<field name="STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES" />
-		<field name="STATISTICS_INFO_AVAILABLE_HOT_PIXEL_MAP_MODES" />
-		<field name="STATISTICS_INFO_MAX_FACE_COUNT" />
-		<field name="SYNC_MAX_LATENCY" />
-		<field name="TONEMAP_AVAILABLE_TONE_MAP_MODES" />
-		<field name="TONEMAP_MAX_CURVE_POINTS" />
-	</class>
-	<class name="android/hardware/camera2/CameraCharacteristics$Key" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getName()Ljava/lang/String;" />
-	</class>
-	<class name="android/hardware/camera2/CameraDevice" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/AutoCloseable" />
-		<method name="&lt;init>()V" />
-		<method name="capture(Landroid/hardware/camera2/CaptureRequest;Landroid/hardware/camera2/CameraDevice$CaptureListener;Landroid/os/Handler;)I" />
-		<method name="captureBurst(Ljava/util/List;Landroid/hardware/camera2/CameraDevice$CaptureListener;Landroid/os/Handler;)I" />
-		<method name="configureOutputs(Ljava/util/List;)V" />
-		<method name="createCaptureRequest(I)Landroid/hardware/camera2/CaptureRequest$Builder;" />
-		<method name="createCaptureSession(Ljava/util/List;Landroid/hardware/camera2/CameraCaptureSession$StateListener;Landroid/os/Handler;)V" />
-		<method name="flush()V" />
-		<method name="getId()Ljava/lang/String;" />
-		<method name="setRepeatingBurst(Ljava/util/List;Landroid/hardware/camera2/CameraDevice$CaptureListener;Landroid/os/Handler;)I" />
-		<method name="setRepeatingRequest(Landroid/hardware/camera2/CaptureRequest;Landroid/hardware/camera2/CameraDevice$CaptureListener;Landroid/os/Handler;)I" />
-		<method name="stopRepeating()V" />
-		<field name="TEMPLATE_MANUAL" />
-		<field name="TEMPLATE_PREVIEW" />
-		<field name="TEMPLATE_RECORD" />
-		<field name="TEMPLATE_STILL_CAPTURE" />
-		<field name="TEMPLATE_VIDEO_SNAPSHOT" />
-		<field name="TEMPLATE_ZERO_SHUTTER_LAG" />
-	</class>
-	<class name="android/hardware/camera2/CameraDevice$CaptureListener" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="onCaptureCompleted(Landroid/hardware/camera2/CameraDevice;Landroid/hardware/camera2/CaptureRequest;Landroid/hardware/camera2/TotalCaptureResult;)V" />
-		<method name="onCaptureFailed(Landroid/hardware/camera2/CameraDevice;Landroid/hardware/camera2/CaptureRequest;Landroid/hardware/camera2/CaptureFailure;)V" />
-		<method name="onCaptureProgressed(Landroid/hardware/camera2/CameraDevice;Landroid/hardware/camera2/CaptureRequest;Landroid/hardware/camera2/CaptureResult;)V" />
-		<method name="onCaptureSequenceAborted(Landroid/hardware/camera2/CameraDevice;I)V" />
-		<method name="onCaptureSequenceCompleted(Landroid/hardware/camera2/CameraDevice;IJ)V" />
-		<method name="onCaptureStarted(Landroid/hardware/camera2/CameraDevice;Landroid/hardware/camera2/CaptureRequest;J)V" />
-	</class>
-	<class name="android/hardware/camera2/CameraDevice$StateListener" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="onActive(Landroid/hardware/camera2/CameraDevice;)V" />
-		<method name="onBusy(Landroid/hardware/camera2/CameraDevice;)V" />
-		<method name="onClosed(Landroid/hardware/camera2/CameraDevice;)V" />
-		<method name="onDisconnected(Landroid/hardware/camera2/CameraDevice;)V" />
-		<method name="onError(Landroid/hardware/camera2/CameraDevice;I)V" />
-		<method name="onIdle(Landroid/hardware/camera2/CameraDevice;)V" />
-		<method name="onOpened(Landroid/hardware/camera2/CameraDevice;)V" />
-		<method name="onUnconfigured(Landroid/hardware/camera2/CameraDevice;)V" />
-		<field name="ERROR_CAMERA_DEVICE" />
-		<field name="ERROR_CAMERA_DISABLED" />
-		<field name="ERROR_CAMERA_IN_USE" />
-		<field name="ERROR_CAMERA_SERVICE" />
-		<field name="ERROR_MAX_CAMERAS_IN_USE" />
-	</class>
-	<class name="android/hardware/camera2/CameraManager" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addAvailabilityListener(Landroid/hardware/camera2/CameraManager$AvailabilityListener;Landroid/os/Handler;)V" />
-		<method name="getCameraCharacteristics(Ljava/lang/String;)Landroid/hardware/camera2/CameraCharacteristics;" />
-		<method name="getCameraIdList()[Ljava/lang/String;" />
-		<method name="openCamera(Ljava/lang/String;Landroid/hardware/camera2/CameraDevice$StateListener;Landroid/os/Handler;)V" />
-		<method name="removeAvailabilityListener(Landroid/hardware/camera2/CameraManager$AvailabilityListener;)V" />
-	</class>
-	<class name="android/hardware/camera2/CameraManager$AvailabilityListener" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="onCameraAvailable(Ljava/lang/String;)V" />
-		<method name="onCameraUnavailable(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/hardware/camera2/CameraMetadata" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getKeys()Ljava/util/List;" />
-		<field name="COLOR_CORRECTION_MODE_FAST" />
-		<field name="COLOR_CORRECTION_MODE_HIGH_QUALITY" />
-		<field name="COLOR_CORRECTION_MODE_TRANSFORM_MATRIX" />
-		<field name="CONTROL_AE_ANTIBANDING_MODE_50HZ" />
-		<field name="CONTROL_AE_ANTIBANDING_MODE_60HZ" />
-		<field name="CONTROL_AE_ANTIBANDING_MODE_AUTO" />
-		<field name="CONTROL_AE_ANTIBANDING_MODE_OFF" />
-		<field name="CONTROL_AE_MODE_OFF" />
-		<field name="CONTROL_AE_MODE_ON" />
-		<field name="CONTROL_AE_MODE_ON_ALWAYS_FLASH" />
-		<field name="CONTROL_AE_MODE_ON_AUTO_FLASH" />
-		<field name="CONTROL_AE_MODE_ON_AUTO_FLASH_REDEYE" />
-		<field name="CONTROL_AE_PRECAPTURE_TRIGGER_IDLE" />
-		<field name="CONTROL_AE_PRECAPTURE_TRIGGER_START" />
-		<field name="CONTROL_AE_STATE_CONVERGED" />
-		<field name="CONTROL_AE_STATE_FLASH_REQUIRED" />
-		<field name="CONTROL_AE_STATE_INACTIVE" />
-		<field name="CONTROL_AE_STATE_LOCKED" />
-		<field name="CONTROL_AE_STATE_PRECAPTURE" />
-		<field name="CONTROL_AE_STATE_SEARCHING" />
-		<field name="CONTROL_AF_MODE_AUTO" />
-		<field name="CONTROL_AF_MODE_CONTINUOUS_PICTURE" />
-		<field name="CONTROL_AF_MODE_CONTINUOUS_VIDEO" />
-		<field name="CONTROL_AF_MODE_EDOF" />
-		<field name="CONTROL_AF_MODE_MACRO" />
-		<field name="CONTROL_AF_MODE_OFF" />
-		<field name="CONTROL_AF_STATE_ACTIVE_SCAN" />
-		<field name="CONTROL_AF_STATE_FOCUSED_LOCKED" />
-		<field name="CONTROL_AF_STATE_INACTIVE" />
-		<field name="CONTROL_AF_STATE_NOT_FOCUSED_LOCKED" />
-		<field name="CONTROL_AF_STATE_PASSIVE_FOCUSED" />
-		<field name="CONTROL_AF_STATE_PASSIVE_SCAN" />
-		<field name="CONTROL_AF_STATE_PASSIVE_UNFOCUSED" />
-		<field name="CONTROL_AF_TRIGGER_CANCEL" />
-		<field name="CONTROL_AF_TRIGGER_IDLE" />
-		<field name="CONTROL_AF_TRIGGER_START" />
-		<field name="CONTROL_AWB_MODE_AUTO" />
-		<field name="CONTROL_AWB_MODE_CLOUDY_DAYLIGHT" />
-		<field name="CONTROL_AWB_MODE_DAYLIGHT" />
-		<field name="CONTROL_AWB_MODE_FLUORESCENT" />
-		<field name="CONTROL_AWB_MODE_INCANDESCENT" />
-		<field name="CONTROL_AWB_MODE_OFF" />
-		<field name="CONTROL_AWB_MODE_SHADE" />
-		<field name="CONTROL_AWB_MODE_TWILIGHT" />
-		<field name="CONTROL_AWB_MODE_WARM_FLUORESCENT" />
-		<field name="CONTROL_AWB_STATE_CONVERGED" />
-		<field name="CONTROL_AWB_STATE_INACTIVE" />
-		<field name="CONTROL_AWB_STATE_LOCKED" />
-		<field name="CONTROL_AWB_STATE_SEARCHING" />
-		<field name="CONTROL_CAPTURE_INTENT_CUSTOM" />
-		<field name="CONTROL_CAPTURE_INTENT_MANUAL" />
-		<field name="CONTROL_CAPTURE_INTENT_PREVIEW" />
-		<field name="CONTROL_CAPTURE_INTENT_STILL_CAPTURE" />
-		<field name="CONTROL_CAPTURE_INTENT_VIDEO_RECORD" />
-		<field name="CONTROL_CAPTURE_INTENT_VIDEO_SNAPSHOT" />
-		<field name="CONTROL_CAPTURE_INTENT_ZERO_SHUTTER_LAG" />
-		<field name="CONTROL_EFFECT_MODE_AQUA" />
-		<field name="CONTROL_EFFECT_MODE_BLACKBOARD" />
-		<field name="CONTROL_EFFECT_MODE_MONO" />
-		<field name="CONTROL_EFFECT_MODE_NEGATIVE" />
-		<field name="CONTROL_EFFECT_MODE_OFF" />
-		<field name="CONTROL_EFFECT_MODE_POSTERIZE" />
-		<field name="CONTROL_EFFECT_MODE_SEPIA" />
-		<field name="CONTROL_EFFECT_MODE_SOLARIZE" />
-		<field name="CONTROL_EFFECT_MODE_WHITEBOARD" />
-		<field name="CONTROL_MODE_AUTO" />
-		<field name="CONTROL_MODE_OFF" />
-		<field name="CONTROL_MODE_OFF_KEEP_STATE" />
-		<field name="CONTROL_MODE_USE_SCENE_MODE" />
-		<field name="CONTROL_SCENE_MODE_ACTION" />
-		<field name="CONTROL_SCENE_MODE_BARCODE" />
-		<field name="CONTROL_SCENE_MODE_BEACH" />
-		<field name="CONTROL_SCENE_MODE_CANDLELIGHT" />
-		<field name="CONTROL_SCENE_MODE_DISABLED" />
-		<field name="CONTROL_SCENE_MODE_FACE_PRIORITY" />
-		<field name="CONTROL_SCENE_MODE_FIREWORKS" />
-		<field name="CONTROL_SCENE_MODE_LANDSCAPE" />
-		<field name="CONTROL_SCENE_MODE_NIGHT" />
-		<field name="CONTROL_SCENE_MODE_NIGHT_PORTRAIT" />
-		<field name="CONTROL_SCENE_MODE_PARTY" />
-		<field name="CONTROL_SCENE_MODE_PORTRAIT" />
-		<field name="CONTROL_SCENE_MODE_SNOW" />
-		<field name="CONTROL_SCENE_MODE_SPORTS" />
-		<field name="CONTROL_SCENE_MODE_STEADYPHOTO" />
-		<field name="CONTROL_SCENE_MODE_SUNSET" />
-		<field name="CONTROL_SCENE_MODE_THEATRE" />
-		<field name="CONTROL_VIDEO_STABILIZATION_MODE_OFF" />
-		<field name="CONTROL_VIDEO_STABILIZATION_MODE_ON" />
-		<field name="EDGE_MODE_FAST" />
-		<field name="EDGE_MODE_HIGH_QUALITY" />
-		<field name="EDGE_MODE_OFF" />
-		<field name="FLASH_MODE_OFF" />
-		<field name="FLASH_MODE_SINGLE" />
-		<field name="FLASH_MODE_TORCH" />
-		<field name="FLASH_STATE_CHARGING" />
-		<field name="FLASH_STATE_FIRED" />
-		<field name="FLASH_STATE_PARTIAL" />
-		<field name="FLASH_STATE_READY" />
-		<field name="FLASH_STATE_UNAVAILABLE" />
-		<field name="HOT_PIXEL_MODE_FAST" />
-		<field name="HOT_PIXEL_MODE_HIGH_QUALITY" />
-		<field name="HOT_PIXEL_MODE_OFF" />
-		<field name="INFO_SUPPORTED_HARDWARE_LEVEL_FULL" />
-		<field name="INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED" />
-		<field name="LENS_FACING_BACK" />
-		<field name="LENS_FACING_FRONT" />
-		<field name="LENS_INFO_FOCUS_DISTANCE_CALIBRATION_APPROXIMATE" />
-		<field name="LENS_INFO_FOCUS_DISTANCE_CALIBRATION_CALIBRATED" />
-		<field name="LENS_INFO_FOCUS_DISTANCE_CALIBRATION_UNCALIBRATED" />
-		<field name="LENS_OPTICAL_STABILIZATION_MODE_OFF" />
-		<field name="LENS_OPTICAL_STABILIZATION_MODE_ON" />
-		<field name="LENS_STATE_MOVING" />
-		<field name="LENS_STATE_STATIONARY" />
-		<field name="NOISE_REDUCTION_MODE_FAST" />
-		<field name="NOISE_REDUCTION_MODE_HIGH_QUALITY" />
-		<field name="NOISE_REDUCTION_MODE_OFF" />
-		<field name="REQUEST_AVAILABLE_CAPABILITIES_DNG" />
-		<field name="REQUEST_AVAILABLE_CAPABILITIES_MANUAL_POST_PROCESSING" />
-		<field name="REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR" />
-		<field name="SCALER_CROPPING_TYPE_CENTER_ONLY" />
-		<field name="SCALER_CROPPING_TYPE_FREEFORM" />
-		<field name="SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_BGGR" />
-		<field name="SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GBRG" />
-		<field name="SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GRBG" />
-		<field name="SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGB" />
-		<field name="SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGGB" />
-		<field name="SENSOR_REFERENCE_ILLUMINANT1_CLOUDY_WEATHER" />
-		<field name="SENSOR_REFERENCE_ILLUMINANT1_COOL_WHITE_FLUORESCENT" />
-		<field name="SENSOR_REFERENCE_ILLUMINANT1_D50" />
-		<field name="SENSOR_REFERENCE_ILLUMINANT1_D55" />
-		<field name="SENSOR_REFERENCE_ILLUMINANT1_D65" />
-		<field name="SENSOR_REFERENCE_ILLUMINANT1_D75" />
-		<field name="SENSOR_REFERENCE_ILLUMINANT1_DAYLIGHT" />
-		<field name="SENSOR_REFERENCE_ILLUMINANT1_DAYLIGHT_FLUORESCENT" />
-		<field name="SENSOR_REFERENCE_ILLUMINANT1_DAY_WHITE_FLUORESCENT" />
-		<field name="SENSOR_REFERENCE_ILLUMINANT1_FINE_WEATHER" />
-		<field name="SENSOR_REFERENCE_ILLUMINANT1_FLASH" />
-		<field name="SENSOR_REFERENCE_ILLUMINANT1_FLUORESCENT" />
-		<field name="SENSOR_REFERENCE_ILLUMINANT1_ISO_STUDIO_TUNGSTEN" />
-		<field name="SENSOR_REFERENCE_ILLUMINANT1_SHADE" />
-		<field name="SENSOR_REFERENCE_ILLUMINANT1_STANDARD_A" />
-		<field name="SENSOR_REFERENCE_ILLUMINANT1_STANDARD_B" />
-		<field name="SENSOR_REFERENCE_ILLUMINANT1_STANDARD_C" />
-		<field name="SENSOR_REFERENCE_ILLUMINANT1_TUNGSTEN" />
-		<field name="SENSOR_REFERENCE_ILLUMINANT1_WHITE_FLUORESCENT" />
-		<field name="SENSOR_TEST_PATTERN_MODE_COLOR_BARS" />
-		<field name="SENSOR_TEST_PATTERN_MODE_COLOR_BARS_FADE_TO_GRAY" />
-		<field name="SENSOR_TEST_PATTERN_MODE_CUSTOM1" />
-		<field name="SENSOR_TEST_PATTERN_MODE_OFF" />
-		<field name="SENSOR_TEST_PATTERN_MODE_PN9" />
-		<field name="SENSOR_TEST_PATTERN_MODE_SOLID_COLOR" />
-		<field name="SHADING_MODE_FAST" />
-		<field name="SHADING_MODE_HIGH_QUALITY" />
-		<field name="SHADING_MODE_OFF" />
-		<field name="STATISTICS_FACE_DETECT_MODE_FULL" />
-		<field name="STATISTICS_FACE_DETECT_MODE_OFF" />
-		<field name="STATISTICS_FACE_DETECT_MODE_SIMPLE" />
-		<field name="STATISTICS_LENS_SHADING_MAP_MODE_OFF" />
-		<field name="STATISTICS_LENS_SHADING_MAP_MODE_ON" />
-		<field name="STATISTICS_SCENE_FLICKER_50HZ" />
-		<field name="STATISTICS_SCENE_FLICKER_60HZ" />
-		<field name="STATISTICS_SCENE_FLICKER_NONE" />
-		<field name="SYNC_MAX_LATENCY_PER_FRAME_CONTROL" />
-		<field name="SYNC_MAX_LATENCY_UNKNOWN" />
-		<field name="TONEMAP_MODE_CONTRAST_CURVE" />
-		<field name="TONEMAP_MODE_FAST" />
-		<field name="TONEMAP_MODE_HIGH_QUALITY" />
-	</class>
-	<class name="android/hardware/camera2/CaptureFailure" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getFrameNumber()I" />
-		<method name="getReason()I" />
-		<method name="getRequest()Landroid/hardware/camera2/CaptureRequest;" />
-		<method name="getSequenceId()I" />
-		<method name="wasImageCaptured()Z" />
-		<field name="REASON_ERROR" />
-		<field name="REASON_FLUSHED" />
-	</class>
-	<class name="android/hardware/camera2/CaptureRequest" since="21">
-		<extends name="android/hardware/camera2/CameraMetadata" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="get(Landroid/hardware/camera2/CaptureRequest$Key;)Ljava/lang/Object;" />
-		<method name="getTag()Ljava/lang/Object;" />
-		<field name="BLACK_LEVEL_LOCK" />
-		<field name="COLOR_CORRECTION_GAINS" />
-		<field name="COLOR_CORRECTION_MODE" />
-		<field name="COLOR_CORRECTION_TRANSFORM" />
-		<field name="CONTROL_AE_ANTIBANDING_MODE" />
-		<field name="CONTROL_AE_EXPOSURE_COMPENSATION" />
-		<field name="CONTROL_AE_LOCK" />
-		<field name="CONTROL_AE_MODE" />
-		<field name="CONTROL_AE_PRECAPTURE_TRIGGER" />
-		<field name="CONTROL_AE_REGIONS" />
-		<field name="CONTROL_AE_TARGET_FPS_RANGE" />
-		<field name="CONTROL_AF_MODE" />
-		<field name="CONTROL_AF_REGIONS" />
-		<field name="CONTROL_AF_TRIGGER" />
-		<field name="CONTROL_AWB_LOCK" />
-		<field name="CONTROL_AWB_MODE" />
-		<field name="CONTROL_AWB_REGIONS" />
-		<field name="CONTROL_CAPTURE_INTENT" />
-		<field name="CONTROL_EFFECT_MODE" />
-		<field name="CONTROL_MODE" />
-		<field name="CONTROL_SCENE_MODE" />
-		<field name="CONTROL_VIDEO_STABILIZATION_MODE" />
-		<field name="CREATOR" />
-		<field name="EDGE_MODE" />
-		<field name="FLASH_MODE" />
-		<field name="HOT_PIXEL_MODE" />
-		<field name="JPEG_GPS_LOCATION" />
-		<field name="JPEG_ORIENTATION" />
-		<field name="JPEG_QUALITY" />
-		<field name="JPEG_THUMBNAIL_QUALITY" />
-		<field name="JPEG_THUMBNAIL_SIZE" />
-		<field name="LENS_APERTURE" />
-		<field name="LENS_FILTER_DENSITY" />
-		<field name="LENS_FOCAL_LENGTH" />
-		<field name="LENS_FOCUS_DISTANCE" />
-		<field name="LENS_OPTICAL_STABILIZATION_MODE" />
-		<field name="NOISE_REDUCTION_MODE" />
-		<field name="SCALER_CROP_REGION" />
-		<field name="SENSOR_EXPOSURE_TIME" />
-		<field name="SENSOR_FRAME_DURATION" />
-		<field name="SENSOR_SENSITIVITY" />
-		<field name="SENSOR_TEST_PATTERN_DATA" />
-		<field name="SENSOR_TEST_PATTERN_MODE" />
-		<field name="SHADING_MODE" />
-		<field name="STATISTICS_FACE_DETECT_MODE" />
-		<field name="STATISTICS_HOT_PIXEL_MAP_MODE" />
-		<field name="STATISTICS_LENS_SHADING_MAP_MODE" />
-		<field name="TONEMAP_CURVE" />
-		<field name="TONEMAP_MODE" />
-	</class>
-	<class name="android/hardware/camera2/CaptureRequest$Builder" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addTarget(Landroid/view/Surface;)V" />
-		<method name="build()Landroid/hardware/camera2/CaptureRequest;" />
-		<method name="get(Landroid/hardware/camera2/CaptureRequest$Key;)Ljava/lang/Object;" />
-		<method name="removeTarget(Landroid/view/Surface;)V" />
-		<method name="set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V" />
-		<method name="setTag(Ljava/lang/Object;)V" />
-	</class>
-	<class name="android/hardware/camera2/CaptureRequest$Key" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getName()Ljava/lang/String;" />
-	</class>
-	<class name="android/hardware/camera2/CaptureResult" since="21">
-		<extends name="android/hardware/camera2/CameraMetadata" />
-		<method name="&lt;init>()V" />
-		<method name="get(Landroid/hardware/camera2/CaptureResult$Key;)Ljava/lang/Object;" />
-		<method name="getFrameNumber()I" />
-		<method name="getRequest()Landroid/hardware/camera2/CaptureRequest;" />
-		<method name="getSequenceId()I" />
-		<field name="BLACK_LEVEL_LOCK" />
-		<field name="COLOR_CORRECTION_GAINS" />
-		<field name="COLOR_CORRECTION_MODE" />
-		<field name="COLOR_CORRECTION_TRANSFORM" />
-		<field name="CONTROL_AE_ANTIBANDING_MODE" />
-		<field name="CONTROL_AE_EXPOSURE_COMPENSATION" />
-		<field name="CONTROL_AE_LOCK" />
-		<field name="CONTROL_AE_MODE" />
-		<field name="CONTROL_AE_PRECAPTURE_TRIGGER" />
-		<field name="CONTROL_AE_REGIONS" />
-		<field name="CONTROL_AE_STATE" />
-		<field name="CONTROL_AE_TARGET_FPS_RANGE" />
-		<field name="CONTROL_AF_MODE" />
-		<field name="CONTROL_AF_REGIONS" />
-		<field name="CONTROL_AF_STATE" />
-		<field name="CONTROL_AF_TRIGGER" />
-		<field name="CONTROL_AWB_LOCK" />
-		<field name="CONTROL_AWB_MODE" />
-		<field name="CONTROL_AWB_REGIONS" />
-		<field name="CONTROL_AWB_STATE" />
-		<field name="CONTROL_CAPTURE_INTENT" />
-		<field name="CONTROL_EFFECT_MODE" />
-		<field name="CONTROL_MODE" />
-		<field name="CONTROL_SCENE_MODE" />
-		<field name="CONTROL_VIDEO_STABILIZATION_MODE" />
-		<field name="EDGE_MODE" />
-		<field name="FLASH_MODE" />
-		<field name="FLASH_STATE" />
-		<field name="HOT_PIXEL_MODE" />
-		<field name="JPEG_GPS_LOCATION" />
-		<field name="JPEG_ORIENTATION" />
-		<field name="JPEG_QUALITY" />
-		<field name="JPEG_THUMBNAIL_QUALITY" />
-		<field name="JPEG_THUMBNAIL_SIZE" />
-		<field name="LENS_APERTURE" />
-		<field name="LENS_FILTER_DENSITY" />
-		<field name="LENS_FOCAL_LENGTH" />
-		<field name="LENS_FOCUS_DISTANCE" />
-		<field name="LENS_FOCUS_RANGE" />
-		<field name="LENS_OPTICAL_STABILIZATION_MODE" />
-		<field name="LENS_STATE" />
-		<field name="NOISE_REDUCTION_MODE" />
-		<field name="REQUEST_FRAME_COUNT" />
-		<field name="REQUEST_PIPELINE_DEPTH" />
-		<field name="SCALER_CROP_REGION" />
-		<field name="SENSOR_EXPOSURE_TIME" />
-		<field name="SENSOR_FRAME_DURATION" />
-		<field name="SENSOR_GREEN_SPLIT" />
-		<field name="SENSOR_NEUTRAL_COLOR_POINT" />
-		<field name="SENSOR_SENSITIVITY" />
-		<field name="SENSOR_TEST_PATTERN_DATA" />
-		<field name="SENSOR_TEST_PATTERN_MODE" />
-		<field name="SENSOR_TIMESTAMP" />
-		<field name="SHADING_MODE" />
-		<field name="STATISTICS_FACES" />
-		<field name="STATISTICS_FACE_DETECT_MODE" />
-		<field name="STATISTICS_HOT_PIXEL_MAP" />
-		<field name="STATISTICS_HOT_PIXEL_MAP_MODE" />
-		<field name="STATISTICS_LENS_SHADING_CORRECTION_MAP" />
-		<field name="STATISTICS_LENS_SHADING_MAP_MODE" />
-		<field name="STATISTICS_SCENE_FLICKER" />
-		<field name="TONEMAP_CURVE" />
-		<field name="TONEMAP_MODE" />
-	</class>
-	<class name="android/hardware/camera2/CaptureResult$Key" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getName()Ljava/lang/String;" />
-	</class>
-	<class name="android/hardware/camera2/DngCreator" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/AutoCloseable" />
-		<method name="&lt;init>(Landroid/hardware/camera2/CameraCharacteristics;Landroid/hardware/camera2/CaptureResult;)V" />
-		<method name="writeImage(Ljava/io/OutputStream;Landroid/media/Image;)V" />
-	</class>
-	<class name="android/hardware/camera2/TotalCaptureResult" since="21">
-		<extends name="android/hardware/camera2/CaptureResult" />
-		<method name="&lt;init>()V" />
-		<method name="getPartialResults()Ljava/util/List;" />
-	</class>
-	<class name="android/hardware/camera2/params/ColorSpaceTransform" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>([I)V" />
-		<method name="&lt;init>([Landroid/util/Rational;)V" />
-		<method name="copyElements([II)V" />
-		<method name="copyElements([Landroid/util/Rational;I)V" />
-		<method name="getElement(II)Landroid/util/Rational;" />
-	</class>
-	<class name="android/hardware/camera2/params/Face" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getBounds()Landroid/graphics/Rect;" />
-		<method name="getId()I" />
-		<method name="getLeftEyePosition()Landroid/graphics/Point;" />
-		<method name="getMouthPosition()Landroid/graphics/Point;" />
-		<method name="getRightEyePosition()Landroid/graphics/Point;" />
-		<method name="getScore()I" />
-		<field name="ID_UNSUPPORTED" />
-		<field name="SCORE_MAX" />
-		<field name="SCORE_MIN" />
-	</class>
-	<class name="android/hardware/camera2/params/LensShadingMap" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="copyGainFactors([FI)V" />
-		<method name="getColumnCount()I" />
-		<method name="getGainFactor(III)F" />
-		<method name="getGainFactorCount()I" />
-		<method name="getGainFactorVector(II)Landroid/hardware/camera2/params/RggbChannelVector;" />
-		<method name="getRowCount()I" />
-		<field name="MINIMUM_GAIN_FACTOR" />
-	</class>
-	<class name="android/hardware/camera2/params/MeteringRectangle" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(IIIII)V" />
-		<method name="&lt;init>(Landroid/graphics/Point;Landroid/util/Size;I)V" />
-		<method name="&lt;init>(Landroid/graphics/Rect;I)V" />
-		<method name="equals(Landroid/hardware/camera2/params/MeteringRectangle;)Z" />
-		<method name="getHeight()I" />
-		<method name="getMeteringWeight()I" />
-		<method name="getRect()Landroid/graphics/Rect;" />
-		<method name="getSize()Landroid/util/Size;" />
-		<method name="getUpperLeftPoint()Landroid/graphics/Point;" />
-		<method name="getWidth()I" />
-		<method name="getX()I" />
-		<method name="getY()I" />
-		<field name="METERING_WEIGHT_DONT_CARE" />
-		<field name="METERING_WEIGHT_MAX" />
-		<field name="METERING_WEIGHT_MIN" />
-	</class>
-	<class name="android/hardware/camera2/params/RggbChannelVector" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(FFFF)V" />
-		<method name="copyTo([FI)V" />
-		<method name="getBlue()F" />
-		<method name="getComponent(I)F" />
-		<method name="getGreenEven()F" />
-		<method name="getGreenOdd()F" />
-		<method name="getRed()F" />
-		<field name="BLUE" />
-		<field name="COUNT" />
-		<field name="GREEN_EVEN" />
-		<field name="GREEN_ODD" />
-		<field name="RED" />
-	</class>
-	<class name="android/hardware/camera2/params/StreamConfigurationMap" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getOutputFormats()[I" />
-		<method name="getOutputMinFrameDuration(ILandroid/util/Size;)J" />
-		<method name="getOutputMinFrameDuration(Ljava/lang/Class;Landroid/util/Size;)J" />
-		<method name="getOutputSizes(I)[Landroid/util/Size;" />
-		<method name="getOutputSizes(Ljava/lang/Class;)[Landroid/util/Size;" />
-		<method name="getOutputStallDuration(ILandroid/util/Size;)J" />
-		<method name="getOutputStallDuration(Ljava/lang/Class;Landroid/util/Size;)J" />
-		<method name="isOutputSupportedFor(I)Z" />
-		<method name="isOutputSupportedFor(Landroid/view/Surface;)Z" />
-		<method name="isOutputSupportedFor(Ljava/lang/Class;)Z" />
-	</class>
-	<class name="android/hardware/camera2/params/TonemapCurve" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>([F[F[F)V" />
-		<method name="copyColorCurve(I[FI)V" />
-		<method name="getPoint(II)Landroid/graphics/PointF;" />
-		<method name="getPointCount(I)I" />
-		<field name="CHANNEL_BLUE" />
-		<field name="CHANNEL_GREEN" />
-		<field name="CHANNEL_RED" />
-		<field name="LEVEL_BLACK" />
-		<field name="LEVEL_WHITE" />
-		<field name="POINT_SIZE" />
-	</class>
-	<class name="android/hardware/display/DisplayManager" since="17">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="createVirtualDisplay(Ljava/lang/String;IIILandroid/view/Surface;I)Landroid/hardware/display/VirtualDisplay;" since="19" />
-		<method name="getDisplay(I)Landroid/view/Display;" />
-		<method name="getDisplays()[Landroid/view/Display;" />
-		<method name="getDisplays(Ljava/lang/String;)[Landroid/view/Display;" />
-		<method name="registerDisplayListener(Landroid/hardware/display/DisplayManager$DisplayListener;Landroid/os/Handler;)V" />
-		<method name="unregisterDisplayListener(Landroid/hardware/display/DisplayManager$DisplayListener;)V" />
-		<field name="DISPLAY_CATEGORY_PRESENTATION" />
-		<field name="VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY" since="20" />
-		<field name="VIRTUAL_DISPLAY_FLAG_PRESENTATION" since="19" />
-		<field name="VIRTUAL_DISPLAY_FLAG_PUBLIC" since="19" />
-		<field name="VIRTUAL_DISPLAY_FLAG_SECURE" since="19" />
-	</class>
-	<class name="android/hardware/display/DisplayManager$DisplayListener" since="17">
-		<extends name="java/lang/Object" />
-		<method name="onDisplayAdded(I)V" />
-		<method name="onDisplayChanged(I)V" />
-		<method name="onDisplayRemoved(I)V" />
-	</class>
-	<class name="android/hardware/display/VirtualDisplay" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getDisplay()Landroid/view/Display;" />
-		<method name="getSurface()Landroid/view/Surface;" since="20" />
-		<method name="release()V" />
-		<method name="setSurface(Landroid/view/Surface;)V" since="20" />
-	</class>
-	<class name="android/hardware/input/InputManager" since="16">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getInputDevice(I)Landroid/view/InputDevice;" />
-		<method name="getInputDeviceIds()[I" />
-		<method name="registerInputDeviceListener(Landroid/hardware/input/InputManager$InputDeviceListener;Landroid/os/Handler;)V" />
-		<method name="unregisterInputDeviceListener(Landroid/hardware/input/InputManager$InputDeviceListener;)V" />
-		<field name="ACTION_QUERY_KEYBOARD_LAYOUTS" />
-		<field name="META_DATA_KEYBOARD_LAYOUTS" />
-	</class>
-	<class name="android/hardware/input/InputManager$InputDeviceListener" since="16">
-		<extends name="java/lang/Object" />
-		<method name="onInputDeviceAdded(I)V" />
-		<method name="onInputDeviceChanged(I)V" />
-		<method name="onInputDeviceRemoved(I)V" />
-	</class>
-	<class name="android/hardware/location/GeofenceHardware" since="18">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addGeofence(IILandroid/hardware/location/GeofenceHardwareRequest;Landroid/hardware/location/GeofenceHardwareCallback;)Z" />
-		<method name="getMonitoringTypes()[I" />
-		<method name="getStatusOfMonitoringType(I)I" />
-		<method name="pauseGeofence(II)Z" />
-		<method name="registerForMonitorStateChangeCallback(ILandroid/hardware/location/GeofenceHardwareMonitorCallback;)Z" />
-		<method name="removeGeofence(II)Z" />
-		<method name="resumeGeofence(III)Z" />
-		<method name="unregisterForMonitorStateChangeCallback(ILandroid/hardware/location/GeofenceHardwareMonitorCallback;)Z" />
-		<field name="GEOFENCE_ENTERED" />
-		<field name="GEOFENCE_ERROR_ID_EXISTS" />
-		<field name="GEOFENCE_ERROR_ID_UNKNOWN" />
-		<field name="GEOFENCE_ERROR_INVALID_TRANSITION" />
-		<field name="GEOFENCE_ERROR_TOO_MANY_GEOFENCES" />
-		<field name="GEOFENCE_EXITED" />
-		<field name="GEOFENCE_FAILURE" />
-		<field name="GEOFENCE_SUCCESS" />
-		<field name="GEOFENCE_UNCERTAIN" />
-		<field name="MONITORING_TYPE_GPS_HARDWARE" />
-		<field name="MONITOR_CURRENTLY_AVAILABLE" />
-		<field name="MONITOR_CURRENTLY_UNAVAILABLE" />
-		<field name="MONITOR_UNSUPPORTED" />
-	</class>
-	<class name="android/hardware/location/GeofenceHardwareCallback" since="18">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="onGeofenceAdd(II)V" />
-		<method name="onGeofencePause(II)V" />
-		<method name="onGeofenceRemove(II)V" />
-		<method name="onGeofenceResume(II)V" />
-		<method name="onGeofenceTransition(IILandroid/location/Location;JI)V" />
-	</class>
-	<class name="android/hardware/location/GeofenceHardwareMonitorCallback" since="18">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="onMonitoringSystemChange(IZLandroid/location/Location;)V" />
-	</class>
-	<class name="android/hardware/location/GeofenceHardwareRequest" since="18">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="createCircularGeofence(DDD)Landroid/hardware/location/GeofenceHardwareRequest;" />
-		<method name="getLastTransition()I" />
-		<method name="getLatitude()D" />
-		<method name="getLongitude()D" />
-		<method name="getMonitorTransitions()I" />
-		<method name="getNotificationResponsiveness()I" />
-		<method name="getRadius()D" />
-		<method name="getUnknownTimer()I" />
-		<method name="setLastTransition(I)V" />
-		<method name="setMonitorTransitions(I)V" />
-		<method name="setNotificationResponsiveness(I)V" />
-		<method name="setUnknownTimer(I)V" />
-	</class>
-	<class name="android/hardware/usb/UsbAccessory" since="12">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getDescription()Ljava/lang/String;" />
-		<method name="getManufacturer()Ljava/lang/String;" />
-		<method name="getModel()Ljava/lang/String;" />
-		<method name="getSerial()Ljava/lang/String;" />
-		<method name="getUri()Ljava/lang/String;" />
-		<method name="getVersion()Ljava/lang/String;" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/hardware/usb/UsbConfiguration" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getId()I" />
-		<method name="getInterface(I)Landroid/hardware/usb/UsbInterface;" />
-		<method name="getInterfaceCount()I" />
-		<method name="getMaxPower()I" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="isRemoteWakeup()Z" />
-		<method name="isSelfPowered()Z" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/hardware/usb/UsbConstants" since="12">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="USB_CLASS_APP_SPEC" />
-		<field name="USB_CLASS_AUDIO" />
-		<field name="USB_CLASS_CDC_DATA" />
-		<field name="USB_CLASS_COMM" />
-		<field name="USB_CLASS_CONTENT_SEC" />
-		<field name="USB_CLASS_CSCID" />
-		<field name="USB_CLASS_HID" />
-		<field name="USB_CLASS_HUB" />
-		<field name="USB_CLASS_MASS_STORAGE" />
-		<field name="USB_CLASS_MISC" />
-		<field name="USB_CLASS_PER_INTERFACE" />
-		<field name="USB_CLASS_PHYSICA" />
-		<field name="USB_CLASS_PRINTER" />
-		<field name="USB_CLASS_STILL_IMAGE" />
-		<field name="USB_CLASS_VENDOR_SPEC" />
-		<field name="USB_CLASS_VIDEO" />
-		<field name="USB_CLASS_WIRELESS_CONTROLLER" />
-		<field name="USB_DIR_IN" />
-		<field name="USB_DIR_OUT" />
-		<field name="USB_ENDPOINT_DIR_MASK" />
-		<field name="USB_ENDPOINT_NUMBER_MASK" />
-		<field name="USB_ENDPOINT_XFERTYPE_MASK" />
-		<field name="USB_ENDPOINT_XFER_BULK" />
-		<field name="USB_ENDPOINT_XFER_CONTROL" />
-		<field name="USB_ENDPOINT_XFER_INT" />
-		<field name="USB_ENDPOINT_XFER_ISOC" />
-		<field name="USB_INTERFACE_SUBCLASS_BOOT" />
-		<field name="USB_SUBCLASS_VENDOR_SPEC" />
-		<field name="USB_TYPE_CLASS" />
-		<field name="USB_TYPE_MASK" />
-		<field name="USB_TYPE_RESERVED" />
-		<field name="USB_TYPE_STANDARD" />
-		<field name="USB_TYPE_VENDOR" />
-	</class>
-	<class name="android/hardware/usb/UsbDevice" since="12">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getConfiguration(I)Landroid/hardware/usb/UsbConfiguration;" since="21" />
-		<method name="getConfigurationCount()I" since="21" />
-		<method name="getDeviceClass()I" />
-		<method name="getDeviceId()I" />
-		<method name="getDeviceId(Ljava/lang/String;)I" />
-		<method name="getDeviceName()Ljava/lang/String;" />
-		<method name="getDeviceName(I)Ljava/lang/String;" />
-		<method name="getDeviceProtocol()I" />
-		<method name="getDeviceSubclass()I" />
-		<method name="getInterface(I)Landroid/hardware/usb/UsbInterface;" />
-		<method name="getInterfaceCount()I" />
-		<method name="getManufacturerName()Ljava/lang/String;" since="21" />
-		<method name="getProductId()I" />
-		<method name="getProductName()Ljava/lang/String;" since="21" />
-		<method name="getSerialNumber()Ljava/lang/String;" since="21" />
-		<method name="getVendorId()I" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/hardware/usb/UsbDeviceConnection" since="12">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="bulkTransfer(Landroid/hardware/usb/UsbEndpoint;[BII)I" />
-		<method name="bulkTransfer(Landroid/hardware/usb/UsbEndpoint;[BIII)I" since="18" />
-		<method name="claimInterface(Landroid/hardware/usb/UsbInterface;Z)Z" />
-		<method name="close()V" />
-		<method name="controlTransfer(IIII[BII)I" />
-		<method name="controlTransfer(IIII[BIII)I" since="18" />
-		<method name="getFileDescriptor()I" />
-		<method name="getRawDescriptors()[B" since="13" />
-		<method name="getSerial()Ljava/lang/String;" />
-		<method name="releaseInterface(Landroid/hardware/usb/UsbInterface;)Z" />
-		<method name="requestWait()Landroid/hardware/usb/UsbRequest;" />
-		<method name="setConfiguration(Landroid/hardware/usb/UsbConfiguration;)Z" since="21" />
-		<method name="setInterface(Landroid/hardware/usb/UsbInterface;)Z" since="21" />
-	</class>
-	<class name="android/hardware/usb/UsbEndpoint" since="12">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getAddress()I" />
-		<method name="getAttributes()I" />
-		<method name="getDirection()I" />
-		<method name="getEndpointNumber()I" />
-		<method name="getInterval()I" />
-		<method name="getMaxPacketSize()I" />
-		<method name="getType()I" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/hardware/usb/UsbInterface" since="12">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getAlternateSetting()I" since="21" />
-		<method name="getEndpoint(I)Landroid/hardware/usb/UsbEndpoint;" />
-		<method name="getEndpointCount()I" />
-		<method name="getId()I" />
-		<method name="getInterfaceClass()I" />
-		<method name="getInterfaceProtocol()I" />
-		<method name="getInterfaceSubclass()I" />
-		<method name="getName()Ljava/lang/String;" since="21" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/hardware/usb/UsbManager" since="12">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getAccessoryList()[Landroid/hardware/usb/UsbAccessory;" />
-		<method name="getDeviceList()Ljava/util/HashMap;" />
-		<method name="hasPermission(Landroid/hardware/usb/UsbAccessory;)Z" />
-		<method name="hasPermission(Landroid/hardware/usb/UsbDevice;)Z" />
-		<method name="openAccessory(Landroid/hardware/usb/UsbAccessory;)Landroid/os/ParcelFileDescriptor;" />
-		<method name="openDevice(Landroid/hardware/usb/UsbDevice;)Landroid/hardware/usb/UsbDeviceConnection;" />
-		<method name="requestPermission(Landroid/hardware/usb/UsbAccessory;Landroid/app/PendingIntent;)V" />
-		<method name="requestPermission(Landroid/hardware/usb/UsbDevice;Landroid/app/PendingIntent;)V" />
-		<field name="ACTION_USB_ACCESSORY_ATTACHED" />
-		<field name="ACTION_USB_ACCESSORY_DETACHED" />
-		<field name="ACTION_USB_DEVICE_ATTACHED" />
-		<field name="ACTION_USB_DEVICE_DETACHED" />
-		<field name="EXTRA_ACCESSORY" />
-		<field name="EXTRA_DEVICE" />
-		<field name="EXTRA_PERMISSION_GRANTED" />
-	</class>
-	<class name="android/hardware/usb/UsbRequest" since="12">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="cancel()Z" />
-		<method name="close()V" />
-		<method name="getClientData()Ljava/lang/Object;" />
-		<method name="getEndpoint()Landroid/hardware/usb/UsbEndpoint;" />
-		<method name="initialize(Landroid/hardware/usb/UsbDeviceConnection;Landroid/hardware/usb/UsbEndpoint;)Z" />
-		<method name="queue(Ljava/nio/ByteBuffer;I)Z" />
-		<method name="setClientData(Ljava/lang/Object;)V" />
-	</class>
-	<class name="android/inputmethodservice/AbstractInputMethodService" since="3">
-		<extends name="android/app/Service" />
-		<implements name="android/view/KeyEvent$Callback" />
-		<method name="&lt;init>()V" />
-		<method name="getKeyDispatcherState()Landroid/view/KeyEvent$DispatcherState;" since="5" />
-		<method name="onCreateInputMethodInterface()Landroid/inputmethodservice/AbstractInputMethodService$AbstractInputMethodImpl;" />
-		<method name="onCreateInputMethodSessionInterface()Landroid/inputmethodservice/AbstractInputMethodService$AbstractInputMethodSessionImpl;" />
-		<method name="onGenericMotionEvent(Landroid/view/MotionEvent;)Z" since="17" />
-		<method name="onTrackballEvent(Landroid/view/MotionEvent;)Z" />
-	</class>
-	<class name="android/inputmethodservice/AbstractInputMethodService$AbstractInputMethodImpl" since="3">
-		<extends name="java/lang/Object" />
-		<implements name="android/view/inputmethod/InputMethod" />
-		<method name="&lt;init>(Landroid/inputmethodservice/AbstractInputMethodService;)V" />
-	</class>
-	<class name="android/inputmethodservice/AbstractInputMethodService$AbstractInputMethodSessionImpl" since="3">
-		<extends name="java/lang/Object" />
-		<implements name="android/view/inputmethod/InputMethodSession" />
-		<method name="&lt;init>(Landroid/inputmethodservice/AbstractInputMethodService;)V" />
-		<method name="isEnabled()Z" />
-		<method name="isRevoked()Z" />
-		<method name="revokeSelf()V" />
-		<method name="setEnabled(Z)V" />
-	</class>
-	<class name="android/inputmethodservice/ExtractEditText" since="3">
-		<extends name="android/widget/EditText" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="finishInternalChanges()V" />
-		<method name="hasVerticalScrollBar()Z" />
-		<method name="startInternalChanges()V" />
-	</class>
-	<class name="android/inputmethodservice/InputMethodService" since="3">
-		<extends name="android/inputmethodservice/AbstractInputMethodService" />
-		<method name="&lt;init>()V" />
-		<method name="enableHardwareAcceleration()Z" since="17" />
-		<method name="getBackDisposition()I" since="11" />
-		<method name="getCandidatesHiddenVisibility()I" />
-		<method name="getCurrentInputBinding()Landroid/view/inputmethod/InputBinding;" />
-		<method name="getCurrentInputConnection()Landroid/view/inputmethod/InputConnection;" />
-		<method name="getCurrentInputEditorInfo()Landroid/view/inputmethod/EditorInfo;" />
-		<method name="getCurrentInputStarted()Z" />
-		<method name="getInputMethodWindowRecommendedHeight()I" since="21" />
-		<method name="getLayoutInflater()Landroid/view/LayoutInflater;" />
-		<method name="getMaxWidth()I" />
-		<method name="getTextForImeAction(I)Ljava/lang/CharSequence;" />
-		<method name="getWindow()Landroid/app/Dialog;" />
-		<method name="hideStatusIcon()V" />
-		<method name="hideWindow()V" />
-		<method name="isExtractViewShown()Z" />
-		<method name="isFullscreenMode()Z" />
-		<method name="isInputViewShown()Z" />
-		<method name="isShowInputRequested()Z" />
-		<method name="onAppPrivateCommand(Ljava/lang/String;Landroid/os/Bundle;)V" />
-		<method name="onBindInput()V" />
-		<method name="onComputeInsets(Landroid/inputmethodservice/InputMethodService$Insets;)V" />
-		<method name="onConfigureWindow(Landroid/view/Window;ZZ)V" />
-		<method name="onCreateCandidatesView()Landroid/view/View;" />
-		<method name="onCreateExtractTextView()Landroid/view/View;" />
-		<method name="onCreateInputView()Landroid/view/View;" />
-		<method name="onCurrentInputMethodSubtypeChanged(Landroid/view/inputmethod/InputMethodSubtype;)V" since="11" />
-		<method name="onDisplayCompletions([Landroid/view/inputmethod/CompletionInfo;)V" />
-		<method name="onEvaluateFullscreenMode()Z" />
-		<method name="onEvaluateInputViewShown()Z" />
-		<method name="onExtractTextContextMenuItem(I)Z" />
-		<method name="onExtractedCursorMovement(II)V" />
-		<method name="onExtractedSelectionChanged(II)V" />
-		<method name="onExtractedTextClicked()V" />
-		<method name="onExtractingInputChanged(Landroid/view/inputmethod/EditorInfo;)V" />
-		<method name="onFinishCandidatesView(Z)V" />
-		<method name="onFinishInput()V" />
-		<method name="onFinishInputView(Z)V" />
-		<method name="onInitializeInterface()V" />
-		<method name="onShowInputRequested(IZ)Z" />
-		<method name="onStartCandidatesView(Landroid/view/inputmethod/EditorInfo;Z)V" />
-		<method name="onStartInput(Landroid/view/inputmethod/EditorInfo;Z)V" />
-		<method name="onStartInputView(Landroid/view/inputmethod/EditorInfo;Z)V" />
-		<method name="onUnbindInput()V" />
-		<method name="onUpdateCursor(Landroid/graphics/Rect;)V" />
-		<method name="onUpdateCursorAnchorInfo(Landroid/view/inputmethod/CursorAnchorInfo;)V" since="21" />
-		<method name="onUpdateExtractedText(ILandroid/view/inputmethod/ExtractedText;)V" />
-		<method name="onUpdateExtractingViews(Landroid/view/inputmethod/EditorInfo;)V" />
-		<method name="onUpdateExtractingVisibility(Landroid/view/inputmethod/EditorInfo;)V" />
-		<method name="onUpdateSelection(IIIIII)V" />
-		<method name="onViewClicked(Z)V" since="14" />
-		<method name="onWindowHidden()V" />
-		<method name="onWindowShown()V" />
-		<method name="requestHideSelf(I)V" />
-		<method name="sendDefaultEditorAction(Z)Z" />
-		<method name="sendDownUpKeyEvents(I)V" />
-		<method name="sendKeyChar(C)V" />
-		<method name="setBackDisposition(I)V" since="11" />
-		<method name="setCandidatesView(Landroid/view/View;)V" />
-		<method name="setCandidatesViewShown(Z)V" />
-		<method name="setCursorAnchorMonitorMode(I)V" since="21" />
-		<method name="setExtractView(Landroid/view/View;)V" />
-		<method name="setExtractViewShown(Z)V" />
-		<method name="setInputView(Landroid/view/View;)V" />
-		<method name="showStatusIcon(I)V" />
-		<method name="showWindow(Z)V" />
-		<method name="switchInputMethod(Ljava/lang/String;)V" />
-		<method name="updateFullscreenMode()V" />
-		<method name="updateInputViewShown()V" />
-		<field name="BACK_DISPOSITION_DEFAULT" since="11" />
-		<field name="BACK_DISPOSITION_WILL_DISMISS" since="11" />
-		<field name="BACK_DISPOSITION_WILL_NOT_DISMISS" since="11" />
-		<field name="CURSOR_ANCHOR_MONITOR_MODE_CURSOR_RECT" since="21" />
-		<field name="CURSOR_ANCHOR_MONITOR_MODE_NONE" since="21" />
-	</class>
-	<class name="android/inputmethodservice/InputMethodService$InputMethodImpl" since="3">
-		<extends name="android/inputmethodservice/AbstractInputMethodService$AbstractInputMethodImpl" />
-		<method name="&lt;init>(Landroid/inputmethodservice/InputMethodService;)V" />
-	</class>
-	<class name="android/inputmethodservice/InputMethodService$InputMethodSessionImpl" since="3">
-		<extends name="android/inputmethodservice/AbstractInputMethodService$AbstractInputMethodSessionImpl" />
-		<method name="&lt;init>(Landroid/inputmethodservice/InputMethodService;)V" />
-	</class>
-	<class name="android/inputmethodservice/InputMethodService$Insets" since="3">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="TOUCHABLE_INSETS_CONTENT" />
-		<field name="TOUCHABLE_INSETS_FRAME" />
-		<field name="TOUCHABLE_INSETS_REGION" since="11" />
-		<field name="TOUCHABLE_INSETS_VISIBLE" />
-		<field name="contentTopInsets" />
-		<field name="touchableInsets" />
-		<field name="touchableRegion" since="11" />
-		<field name="visibleTopInsets" />
-	</class>
-	<class name="android/inputmethodservice/Keyboard" since="3">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Context;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;II)V" />
-		<method name="&lt;init>(Landroid/content/Context;IIII)V" since="11" />
-		<method name="&lt;init>(Landroid/content/Context;ILjava/lang/CharSequence;II)V" />
-		<method name="createKeyFromXml(Landroid/content/res/Resources;Landroid/inputmethodservice/Keyboard$Row;IILandroid/content/res/XmlResourceParser;)Landroid/inputmethodservice/Keyboard$Key;" />
-		<method name="createRowFromXml(Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;)Landroid/inputmethodservice/Keyboard$Row;" />
-		<method name="getHeight()I" />
-		<method name="getHorizontalGap()I" />
-		<method name="getKeyHeight()I" />
-		<method name="getKeyWidth()I" />
-		<method name="getKeys()Ljava/util/List;" />
-		<method name="getMinWidth()I" />
-		<method name="getModifierKeys()Ljava/util/List;" />
-		<method name="getNearestKeys(II)[I" />
-		<method name="getShiftKeyIndex()I" />
-		<method name="getVerticalGap()I" />
-		<method name="isShifted()Z" />
-		<method name="setHorizontalGap(I)V" />
-		<method name="setKeyHeight(I)V" />
-		<method name="setKeyWidth(I)V" />
-		<method name="setShifted(Z)Z" />
-		<method name="setVerticalGap(I)V" />
-		<field name="EDGE_BOTTOM" />
-		<field name="EDGE_LEFT" />
-		<field name="EDGE_RIGHT" />
-		<field name="EDGE_TOP" />
-		<field name="KEYCODE_ALT" />
-		<field name="KEYCODE_CANCEL" />
-		<field name="KEYCODE_DELETE" />
-		<field name="KEYCODE_DONE" />
-		<field name="KEYCODE_MODE_CHANGE" />
-		<field name="KEYCODE_SHIFT" />
-	</class>
-	<class name="android/inputmethodservice/Keyboard$Key" since="3">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/res/Resources;Landroid/inputmethodservice/Keyboard$Row;IILandroid/content/res/XmlResourceParser;)V" />
-		<method name="&lt;init>(Landroid/inputmethodservice/Keyboard$Row;)V" />
-		<method name="getCurrentDrawableState()[I" />
-		<method name="isInside(II)Z" />
-		<method name="onPressed()V" />
-		<method name="onReleased(Z)V" />
-		<method name="squaredDistanceFrom(II)I" />
-		<field name="codes" />
-		<field name="edgeFlags" />
-		<field name="gap" />
-		<field name="height" />
-		<field name="icon" />
-		<field name="iconPreview" />
-		<field name="label" />
-		<field name="modifier" />
-		<field name="on" />
-		<field name="popupCharacters" />
-		<field name="popupResId" />
-		<field name="pressed" />
-		<field name="repeatable" />
-		<field name="sticky" />
-		<field name="text" />
-		<field name="width" />
-		<field name="x" />
-		<field name="y" />
-	</class>
-	<class name="android/inputmethodservice/Keyboard$Row" since="3">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/res/Resources;Landroid/inputmethodservice/Keyboard;Landroid/content/res/XmlResourceParser;)V" />
-		<method name="&lt;init>(Landroid/inputmethodservice/Keyboard;)V" />
-		<field name="defaultHeight" />
-		<field name="defaultHorizontalGap" />
-		<field name="defaultWidth" />
-		<field name="mode" />
-		<field name="rowEdgeFlags" />
-		<field name="verticalGap" />
-	</class>
-	<class name="android/inputmethodservice/KeyboardView" since="3">
-		<extends name="android/view/View" />
-		<implements name="android/view/View$OnClickListener" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="closing()V" />
-		<method name="getKeyboard()Landroid/inputmethodservice/Keyboard;" />
-		<method name="getOnKeyboardActionListener()Landroid/inputmethodservice/KeyboardView$OnKeyboardActionListener;" />
-		<method name="handleBack()Z" />
-		<method name="invalidateAllKeys()V" since="4" />
-		<method name="invalidateKey(I)V" since="4" />
-		<method name="isPreviewEnabled()Z" />
-		<method name="isProximityCorrectionEnabled()Z" />
-		<method name="isShifted()Z" />
-		<method name="onLongPress(Landroid/inputmethodservice/Keyboard$Key;)Z" />
-		<method name="setKeyboard(Landroid/inputmethodservice/Keyboard;)V" />
-		<method name="setOnKeyboardActionListener(Landroid/inputmethodservice/KeyboardView$OnKeyboardActionListener;)V" />
-		<method name="setPopupOffset(II)V" />
-		<method name="setPopupParent(Landroid/view/View;)V" />
-		<method name="setPreviewEnabled(Z)V" />
-		<method name="setProximityCorrectionEnabled(Z)V" />
-		<method name="setShifted(Z)Z" />
-		<method name="setVerticalCorrection(I)V" />
-		<method name="swipeDown()V" />
-		<method name="swipeLeft()V" />
-		<method name="swipeRight()V" />
-		<method name="swipeUp()V" />
-	</class>
-	<class name="android/inputmethodservice/KeyboardView$OnKeyboardActionListener" since="3">
-		<extends name="java/lang/Object" />
-		<method name="onKey(I[I)V" />
-		<method name="onPress(I)V" />
-		<method name="onRelease(I)V" />
-		<method name="onText(Ljava/lang/CharSequence;)V" />
-		<method name="swipeDown()V" />
-		<method name="swipeLeft()V" />
-		<method name="swipeRight()V" />
-		<method name="swipeUp()V" />
-	</class>
-	<class name="android/location/Address" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(Ljava/util/Locale;)V" />
-		<method name="clearLatitude()V" />
-		<method name="clearLongitude()V" />
-		<method name="getAddressLine(I)Ljava/lang/String;" />
-		<method name="getAdminArea()Ljava/lang/String;" />
-		<method name="getCountryCode()Ljava/lang/String;" />
-		<method name="getCountryName()Ljava/lang/String;" />
-		<method name="getExtras()Landroid/os/Bundle;" />
-		<method name="getFeatureName()Ljava/lang/String;" />
-		<method name="getLatitude()D" />
-		<method name="getLocale()Ljava/util/Locale;" />
-		<method name="getLocality()Ljava/lang/String;" />
-		<method name="getLongitude()D" />
-		<method name="getMaxAddressLineIndex()I" />
-		<method name="getPhone()Ljava/lang/String;" />
-		<method name="getPostalCode()Ljava/lang/String;" />
-		<method name="getPremises()Ljava/lang/String;" since="4" />
-		<method name="getSubAdminArea()Ljava/lang/String;" />
-		<method name="getSubLocality()Ljava/lang/String;" since="4" />
-		<method name="getSubThoroughfare()Ljava/lang/String;" since="4" />
-		<method name="getThoroughfare()Ljava/lang/String;" />
-		<method name="getUrl()Ljava/lang/String;" />
-		<method name="hasLatitude()Z" />
-		<method name="hasLongitude()Z" />
-		<method name="setAddressLine(ILjava/lang/String;)V" />
-		<method name="setAdminArea(Ljava/lang/String;)V" />
-		<method name="setCountryCode(Ljava/lang/String;)V" />
-		<method name="setCountryName(Ljava/lang/String;)V" />
-		<method name="setExtras(Landroid/os/Bundle;)V" />
-		<method name="setFeatureName(Ljava/lang/String;)V" />
-		<method name="setLatitude(D)V" />
-		<method name="setLocality(Ljava/lang/String;)V" />
-		<method name="setLongitude(D)V" />
-		<method name="setPhone(Ljava/lang/String;)V" />
-		<method name="setPostalCode(Ljava/lang/String;)V" />
-		<method name="setPremises(Ljava/lang/String;)V" since="4" />
-		<method name="setSubAdminArea(Ljava/lang/String;)V" />
-		<method name="setSubLocality(Ljava/lang/String;)V" since="4" />
-		<method name="setSubThoroughfare(Ljava/lang/String;)V" since="4" />
-		<method name="setThoroughfare(Ljava/lang/String;)V" />
-		<method name="setUrl(Ljava/lang/String;)V" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/location/Criteria" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/location/Criteria;)V" />
-		<method name="getAccuracy()I" />
-		<method name="getBearingAccuracy()I" since="9" />
-		<method name="getHorizontalAccuracy()I" since="9" />
-		<method name="getPowerRequirement()I" />
-		<method name="getSpeedAccuracy()I" since="9" />
-		<method name="getVerticalAccuracy()I" since="9" />
-		<method name="isAltitudeRequired()Z" />
-		<method name="isBearingRequired()Z" />
-		<method name="isCostAllowed()Z" />
-		<method name="isSpeedRequired()Z" />
-		<method name="setAccuracy(I)V" />
-		<method name="setAltitudeRequired(Z)V" />
-		<method name="setBearingAccuracy(I)V" since="9" />
-		<method name="setBearingRequired(Z)V" />
-		<method name="setCostAllowed(Z)V" />
-		<method name="setHorizontalAccuracy(I)V" since="9" />
-		<method name="setPowerRequirement(I)V" />
-		<method name="setSpeedAccuracy(I)V" since="9" />
-		<method name="setSpeedRequired(Z)V" />
-		<method name="setVerticalAccuracy(I)V" since="9" />
-		<field name="ACCURACY_COARSE" />
-		<field name="ACCURACY_FINE" />
-		<field name="ACCURACY_HIGH" since="9" />
-		<field name="ACCURACY_LOW" since="9" />
-		<field name="ACCURACY_MEDIUM" since="9" />
-		<field name="CREATOR" />
-		<field name="NO_REQUIREMENT" />
-		<field name="POWER_HIGH" />
-		<field name="POWER_LOW" />
-		<field name="POWER_MEDIUM" />
-	</class>
-	<class name="android/location/Geocoder" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Ljava/util/Locale;)V" />
-		<method name="getFromLocation(DDI)Ljava/util/List;" />
-		<method name="getFromLocationName(Ljava/lang/String;I)Ljava/util/List;" />
-		<method name="getFromLocationName(Ljava/lang/String;IDDDD)Ljava/util/List;" />
-		<method name="isPresent()Z" since="9" />
-	</class>
-	<class name="android/location/GpsSatellite" since="3">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getAzimuth()F" />
-		<method name="getElevation()F" />
-		<method name="getPrn()I" />
-		<method name="getSnr()F" />
-		<method name="hasAlmanac()Z" />
-		<method name="hasEphemeris()Z" />
-		<method name="usedInFix()Z" />
-	</class>
-	<class name="android/location/GpsStatus" since="3">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getMaxSatellites()I" />
-		<method name="getSatellites()Ljava/lang/Iterable;" />
-		<method name="getTimeToFirstFix()I" />
-		<field name="GPS_EVENT_FIRST_FIX" />
-		<field name="GPS_EVENT_SATELLITE_STATUS" />
-		<field name="GPS_EVENT_STARTED" />
-		<field name="GPS_EVENT_STOPPED" />
-	</class>
-	<class name="android/location/GpsStatus$Listener" since="3">
-		<extends name="java/lang/Object" />
-		<method name="onGpsStatusChanged(I)V" />
-	</class>
-	<class name="android/location/GpsStatus$NmeaListener" since="5">
-		<extends name="java/lang/Object" />
-		<method name="onNmeaReceived(JLjava/lang/String;)V" />
-	</class>
-	<class name="android/location/Location" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(Landroid/location/Location;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="bearingTo(Landroid/location/Location;)F" />
-		<method name="convert(DI)Ljava/lang/String;" />
-		<method name="convert(Ljava/lang/String;)D" />
-		<method name="distanceBetween(DDDD[F)V" />
-		<method name="distanceTo(Landroid/location/Location;)F" />
-		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" since="3" />
-		<method name="getAccuracy()F" />
-		<method name="getAltitude()D" />
-		<method name="getBearing()F" />
-		<method name="getElapsedRealtimeNanos()J" since="17" />
-		<method name="getExtras()Landroid/os/Bundle;" />
-		<method name="getLatitude()D" />
-		<method name="getLongitude()D" />
-		<method name="getProvider()Ljava/lang/String;" />
-		<method name="getSpeed()F" />
-		<method name="getTime()J" />
-		<method name="hasAccuracy()Z" />
-		<method name="hasAltitude()Z" />
-		<method name="hasBearing()Z" />
-		<method name="hasSpeed()Z" />
-		<method name="isFromMockProvider()Z" since="18" />
-		<method name="removeAccuracy()V" />
-		<method name="removeAltitude()V" />
-		<method name="removeBearing()V" />
-		<method name="removeSpeed()V" />
-		<method name="reset()V" />
-		<method name="set(Landroid/location/Location;)V" />
-		<method name="setAccuracy(F)V" />
-		<method name="setAltitude(D)V" />
-		<method name="setBearing(F)V" />
-		<method name="setElapsedRealtimeNanos(J)V" since="17" />
-		<method name="setExtras(Landroid/os/Bundle;)V" />
-		<method name="setLatitude(D)V" />
-		<method name="setLongitude(D)V" />
-		<method name="setProvider(Ljava/lang/String;)V" />
-		<method name="setSpeed(F)V" />
-		<method name="setTime(J)V" />
-		<field name="CREATOR" />
-		<field name="FORMAT_DEGREES" />
-		<field name="FORMAT_MINUTES" />
-		<field name="FORMAT_SECONDS" />
-	</class>
-	<class name="android/location/LocationListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onLocationChanged(Landroid/location/Location;)V" />
-		<method name="onProviderDisabled(Ljava/lang/String;)V" />
-		<method name="onProviderEnabled(Ljava/lang/String;)V" />
-		<method name="onStatusChanged(Ljava/lang/String;ILandroid/os/Bundle;)V" />
-	</class>
-	<class name="android/location/LocationManager" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addGpsStatusListener(Landroid/location/GpsStatus$Listener;)Z" since="3" />
-		<method name="addNmeaListener(Landroid/location/GpsStatus$NmeaListener;)Z" since="5" />
-		<method name="addProximityAlert(DDFJLandroid/app/PendingIntent;)V" />
-		<method name="addTestProvider(Ljava/lang/String;ZZZZZZZII)V" since="3" />
-		<method name="clearTestProviderEnabled(Ljava/lang/String;)V" since="3" />
-		<method name="clearTestProviderLocation(Ljava/lang/String;)V" since="3" />
-		<method name="clearTestProviderStatus(Ljava/lang/String;)V" since="3" />
-		<method name="getAllProviders()Ljava/util/List;" />
-		<method name="getBestProvider(Landroid/location/Criteria;Z)Ljava/lang/String;" />
-		<method name="getGpsStatus(Landroid/location/GpsStatus;)Landroid/location/GpsStatus;" since="3" />
-		<method name="getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;" />
-		<method name="getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;" />
-		<method name="getProviders(Landroid/location/Criteria;Z)Ljava/util/List;" />
-		<method name="getProviders(Z)Ljava/util/List;" />
-		<method name="isProviderEnabled(Ljava/lang/String;)Z" />
-		<method name="removeGpsStatusListener(Landroid/location/GpsStatus$Listener;)V" since="3" />
-		<method name="removeNmeaListener(Landroid/location/GpsStatus$NmeaListener;)V" since="5" />
-		<method name="removeProximityAlert(Landroid/app/PendingIntent;)V" />
-		<method name="removeTestProvider(Ljava/lang/String;)V" since="3" />
-		<method name="removeUpdates(Landroid/app/PendingIntent;)V" since="3" />
-		<method name="removeUpdates(Landroid/location/LocationListener;)V" />
-		<method name="requestLocationUpdates(JFLandroid/location/Criteria;Landroid/app/PendingIntent;)V" since="9" />
-		<method name="requestLocationUpdates(JFLandroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V" since="9" />
-		<method name="requestLocationUpdates(Ljava/lang/String;JFLandroid/app/PendingIntent;)V" since="3" />
-		<method name="requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;)V" />
-		<method name="requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;Landroid/os/Looper;)V" />
-		<method name="requestSingleUpdate(Landroid/location/Criteria;Landroid/app/PendingIntent;)V" since="9" />
-		<method name="requestSingleUpdate(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V" since="9" />
-		<method name="requestSingleUpdate(Ljava/lang/String;Landroid/app/PendingIntent;)V" since="9" />
-		<method name="requestSingleUpdate(Ljava/lang/String;Landroid/location/LocationListener;Landroid/os/Looper;)V" since="9" />
-		<method name="sendExtraCommand(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Z" since="3" />
-		<method name="setTestProviderEnabled(Ljava/lang/String;Z)V" since="3" />
-		<method name="setTestProviderLocation(Ljava/lang/String;Landroid/location/Location;)V" since="3" />
-		<method name="setTestProviderStatus(Ljava/lang/String;ILandroid/os/Bundle;J)V" since="3" />
-		<field name="GPS_PROVIDER" />
-		<field name="KEY_LOCATION_CHANGED" since="3" />
-		<field name="KEY_PROVIDER_ENABLED" since="3" />
-		<field name="KEY_PROXIMITY_ENTERING" />
-		<field name="KEY_STATUS_CHANGED" since="3" />
-		<field name="MODE_CHANGED_ACTION" since="19" />
-		<field name="NETWORK_PROVIDER" />
-		<field name="PASSIVE_PROVIDER" since="8" />
-		<field name="PROVIDERS_CHANGED_ACTION" since="9" />
-	</class>
-	<class name="android/location/LocationProvider" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getAccuracy()I" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getPowerRequirement()I" />
-		<method name="hasMonetaryCost()Z" />
-		<method name="meetsCriteria(Landroid/location/Criteria;)Z" />
-		<method name="requiresCell()Z" />
-		<method name="requiresNetwork()Z" />
-		<method name="requiresSatellite()Z" />
-		<method name="supportsAltitude()Z" />
-		<method name="supportsBearing()Z" />
-		<method name="supportsSpeed()Z" />
-		<field name="AVAILABLE" />
-		<field name="OUT_OF_SERVICE" />
-		<field name="TEMPORARILY_UNAVAILABLE" />
-	</class>
-	<class name="android/location/SettingInjectorService" since="19">
-		<extends name="android/app/Service" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="onGetEnabled()Z" />
-		<method name="onGetSummary()Ljava/lang/String;" />
-		<field name="ACTION_INJECTED_SETTING_CHANGED" />
-		<field name="ACTION_SERVICE_INTENT" />
-		<field name="ATTRIBUTES_NAME" />
-		<field name="META_DATA_NAME" />
-	</class>
-	<class name="android/media/AsyncPlayer" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="play(Landroid/content/Context;Landroid/net/Uri;ZI)V" />
-		<method name="stop()V" />
-	</class>
-	<class name="android/media/AudioFormat" since="3">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="CHANNEL_CONFIGURATION_DEFAULT" />
-		<field name="CHANNEL_CONFIGURATION_INVALID" />
-		<field name="CHANNEL_CONFIGURATION_MONO" />
-		<field name="CHANNEL_CONFIGURATION_STEREO" />
-		<field name="CHANNEL_INVALID" since="5" />
-		<field name="CHANNEL_IN_BACK" since="5" />
-		<field name="CHANNEL_IN_BACK_PROCESSED" since="5" />
-		<field name="CHANNEL_IN_DEFAULT" since="5" />
-		<field name="CHANNEL_IN_FRONT" since="5" />
-		<field name="CHANNEL_IN_FRONT_PROCESSED" since="5" />
-		<field name="CHANNEL_IN_LEFT" since="5" />
-		<field name="CHANNEL_IN_LEFT_PROCESSED" since="5" />
-		<field name="CHANNEL_IN_MONO" since="5" />
-		<field name="CHANNEL_IN_PRESSURE" since="5" />
-		<field name="CHANNEL_IN_RIGHT" since="5" />
-		<field name="CHANNEL_IN_RIGHT_PROCESSED" since="5" />
-		<field name="CHANNEL_IN_STEREO" since="5" />
-		<field name="CHANNEL_IN_VOICE_DNLINK" since="5" />
-		<field name="CHANNEL_IN_VOICE_UPLINK" since="5" />
-		<field name="CHANNEL_IN_X_AXIS" since="5" />
-		<field name="CHANNEL_IN_Y_AXIS" since="5" />
-		<field name="CHANNEL_IN_Z_AXIS" since="5" />
-		<field name="CHANNEL_OUT_5POINT1" since="5" />
-		<field name="CHANNEL_OUT_7POINT1" since="5" />
-		<field name="CHANNEL_OUT_BACK_CENTER" since="5" />
-		<field name="CHANNEL_OUT_BACK_LEFT" since="5" />
-		<field name="CHANNEL_OUT_BACK_RIGHT" since="5" />
-		<field name="CHANNEL_OUT_DEFAULT" since="5" />
-		<field name="CHANNEL_OUT_FRONT_CENTER" since="5" />
-		<field name="CHANNEL_OUT_FRONT_LEFT" since="5" />
-		<field name="CHANNEL_OUT_FRONT_LEFT_OF_CENTER" since="5" />
-		<field name="CHANNEL_OUT_FRONT_RIGHT" since="5" />
-		<field name="CHANNEL_OUT_FRONT_RIGHT_OF_CENTER" since="5" />
-		<field name="CHANNEL_OUT_LOW_FREQUENCY" since="5" />
-		<field name="CHANNEL_OUT_MONO" since="5" />
-		<field name="CHANNEL_OUT_QUAD" since="5" />
-		<field name="CHANNEL_OUT_STEREO" since="5" />
-		<field name="CHANNEL_OUT_SURROUND" since="5" />
-		<field name="ENCODING_DEFAULT" />
-		<field name="ENCODING_INVALID" />
-		<field name="ENCODING_PCM_16BIT" />
-		<field name="ENCODING_PCM_8BIT" />
-		<field name="ENCODING_PCM_FLOAT" since="21" />
-	</class>
-	<class name="android/media/AudioManager" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="abandonAudioFocus(Landroid/media/AudioManager$OnAudioFocusChangeListener;)I" since="8" />
-		<method name="adjustStreamVolume(III)V" />
-		<method name="adjustSuggestedStreamVolume(III)V" />
-		<method name="adjustVolume(II)V" />
-		<method name="dispatchMediaKeyEvent(Landroid/view/KeyEvent;)V" since="19" />
-		<method name="getMode()I" />
-		<method name="getParameters(Ljava/lang/String;)Ljava/lang/String;" since="5" />
-		<method name="getProperty(Ljava/lang/String;)Ljava/lang/String;" since="17" />
-		<method name="getRingerMode()I" />
-		<method name="getRouting(I)I" />
-		<method name="getStreamMaxVolume(I)I" />
-		<method name="getStreamVolume(I)I" />
-		<method name="getVibrateSetting(I)I" />
-		<method name="isBluetoothA2dpOn()Z" since="3" />
-		<method name="isBluetoothScoAvailableOffCall()Z" since="8" />
-		<method name="isBluetoothScoOn()Z" />
-		<method name="isMicrophoneMute()Z" />
-		<method name="isMusicActive()Z" />
-		<method name="isSpeakerphoneOn()Z" />
-		<method name="isWiredHeadsetOn()Z" since="5" />
-		<method name="loadSoundEffects()V" />
-		<method name="playSoundEffect(I)V" />
-		<method name="playSoundEffect(IF)V" since="3" />
-		<method name="registerMediaButtonEventReceiver(Landroid/app/PendingIntent;)V" since="18" />
-		<method name="registerMediaButtonEventReceiver(Landroid/content/ComponentName;)V" since="8" />
-		<method name="registerRemoteControlClient(Landroid/media/RemoteControlClient;)V" since="14" />
-		<method name="registerRemoteController(Landroid/media/RemoteController;)Z" since="19" />
-		<method name="requestAudioFocus(Landroid/media/AudioManager$OnAudioFocusChangeListener;II)I" since="8" />
-		<method name="setBluetoothA2dpOn(Z)V" since="3" />
-		<method name="setBluetoothScoOn(Z)V" />
-		<method name="setMicrophoneMute(Z)V" />
-		<method name="setMode(I)V" />
-		<method name="setParameters(Ljava/lang/String;)V" since="5" />
-		<method name="setRingerMode(I)V" />
-		<method name="setRouting(III)V" />
-		<method name="setSpeakerphoneOn(Z)V" />
-		<method name="setStreamMute(IZ)V" />
-		<method name="setStreamSolo(IZ)V" />
-		<method name="setStreamVolume(III)V" />
-		<method name="setVibrateSetting(II)V" />
-		<method name="setWiredHeadsetOn(Z)V" since="5" />
-		<method name="shouldVibrate(I)Z" />
-		<method name="startBluetoothSco()V" since="8" />
-		<method name="stopBluetoothSco()V" since="8" />
-		<method name="unloadSoundEffects()V" />
-		<method name="unregisterMediaButtonEventReceiver(Landroid/app/PendingIntent;)V" since="18" />
-		<method name="unregisterMediaButtonEventReceiver(Landroid/content/ComponentName;)V" since="8" />
-		<method name="unregisterRemoteControlClient(Landroid/media/RemoteControlClient;)V" since="14" />
-		<method name="unregisterRemoteController(Landroid/media/RemoteController;)V" since="19" />
-		<field name="ACTION_AUDIO_BECOMING_NOISY" since="3" />
-		<field name="ACTION_SCO_AUDIO_STATE_CHANGED" since="8" />
-		<field name="ACTION_SCO_AUDIO_STATE_UPDATED" since="14" />
-		<field name="ADJUST_LOWER" />
-		<field name="ADJUST_RAISE" />
-		<field name="ADJUST_SAME" />
-		<field name="AUDIOFOCUS_GAIN" since="8" />
-		<field name="AUDIOFOCUS_GAIN_TRANSIENT" since="8" />
-		<field name="AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE" since="19" />
-		<field name="AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK" since="8" />
-		<field name="AUDIOFOCUS_LOSS" since="8" />
-		<field name="AUDIOFOCUS_LOSS_TRANSIENT" since="8" />
-		<field name="AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK" since="8" />
-		<field name="AUDIOFOCUS_REQUEST_FAILED" since="8" />
-		<field name="AUDIOFOCUS_REQUEST_GRANTED" since="8" />
-		<field name="EXTRA_RINGER_MODE" />
-		<field name="EXTRA_SCO_AUDIO_PREVIOUS_STATE" since="14" />
-		<field name="EXTRA_SCO_AUDIO_STATE" since="8" />
-		<field name="EXTRA_VIBRATE_SETTING" />
-		<field name="EXTRA_VIBRATE_TYPE" />
-		<field name="FLAG_ALLOW_RINGER_MODES" />
-		<field name="FLAG_PLAY_SOUND" />
-		<field name="FLAG_REMOVE_SOUND_AND_VIBRATE" />
-		<field name="FLAG_SHOW_UI" />
-		<field name="FLAG_VIBRATE" />
-		<field name="FX_FOCUS_NAVIGATION_DOWN" />
-		<field name="FX_FOCUS_NAVIGATION_LEFT" />
-		<field name="FX_FOCUS_NAVIGATION_RIGHT" />
-		<field name="FX_FOCUS_NAVIGATION_UP" />
-		<field name="FX_KEYPRESS_DELETE" since="3" />
-		<field name="FX_KEYPRESS_INVALID" since="19" />
-		<field name="FX_KEYPRESS_RETURN" since="3" />
-		<field name="FX_KEYPRESS_SPACEBAR" since="3" />
-		<field name="FX_KEYPRESS_STANDARD" since="3" />
-		<field name="FX_KEY_CLICK" />
-		<field name="MODE_CURRENT" />
-		<field name="MODE_INVALID" />
-		<field name="MODE_IN_CALL" />
-		<field name="MODE_IN_COMMUNICATION" since="11" />
-		<field name="MODE_NORMAL" />
-		<field name="MODE_RINGTONE" />
-		<field name="NUM_STREAMS" />
-		<field name="PROPERTY_OUTPUT_FRAMES_PER_BUFFER" since="17" />
-		<field name="PROPERTY_OUTPUT_SAMPLE_RATE" since="17" />
-		<field name="RINGER_MODE_CHANGED_ACTION" />
-		<field name="RINGER_MODE_NORMAL" />
-		<field name="RINGER_MODE_SILENT" />
-		<field name="RINGER_MODE_VIBRATE" />
-		<field name="ROUTE_ALL" />
-		<field name="ROUTE_BLUETOOTH" />
-		<field name="ROUTE_BLUETOOTH_A2DP" since="3" />
-		<field name="ROUTE_BLUETOOTH_SCO" since="3" />
-		<field name="ROUTE_EARPIECE" />
-		<field name="ROUTE_HEADSET" />
-		<field name="ROUTE_SPEAKER" />
-		<field name="SCO_AUDIO_STATE_CONNECTED" since="8" />
-		<field name="SCO_AUDIO_STATE_CONNECTING" since="14" />
-		<field name="SCO_AUDIO_STATE_DISCONNECTED" since="8" />
-		<field name="SCO_AUDIO_STATE_ERROR" since="8" />
-		<field name="STREAM_ALARM" />
-		<field name="STREAM_DTMF" since="5" />
-		<field name="STREAM_MUSIC" />
-		<field name="STREAM_NOTIFICATION" since="3" />
-		<field name="STREAM_RING" />
-		<field name="STREAM_SYSTEM" />
-		<field name="STREAM_VOICE_CALL" />
-		<field name="USE_DEFAULT_STREAM_TYPE" />
-		<field name="VIBRATE_SETTING_CHANGED_ACTION" />
-		<field name="VIBRATE_SETTING_OFF" />
-		<field name="VIBRATE_SETTING_ON" />
-		<field name="VIBRATE_SETTING_ONLY_SILENT" />
-		<field name="VIBRATE_TYPE_NOTIFICATION" />
-		<field name="VIBRATE_TYPE_RINGER" />
-	</class>
-	<class name="android/media/AudioManager$OnAudioFocusChangeListener" since="8">
-		<extends name="java/lang/Object" />
-		<method name="onAudioFocusChange(I)V" />
-	</class>
-	<class name="android/media/AudioRecord" since="3">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(IIIII)V" />
-		<method name="getAudioFormat()I" />
-		<method name="getAudioSessionId()I" since="16" />
-		<method name="getAudioSource()I" />
-		<method name="getChannelConfiguration()I" />
-		<method name="getChannelCount()I" />
-		<method name="getMinBufferSize(III)I" />
-		<method name="getNotificationMarkerPosition()I" />
-		<method name="getPositionNotificationPeriod()I" />
-		<method name="getRecordingState()I" />
-		<method name="getSampleRate()I" />
-		<method name="getState()I" />
-		<method name="read(Ljava/nio/ByteBuffer;I)I" />
-		<method name="read([BII)I" />
-		<method name="read([SII)I" />
-		<method name="release()V" />
-		<method name="setNotificationMarkerPosition(I)I" />
-		<method name="setPositionNotificationPeriod(I)I" />
-		<method name="setRecordPositionUpdateListener(Landroid/media/AudioRecord$OnRecordPositionUpdateListener;)V" />
-		<method name="setRecordPositionUpdateListener(Landroid/media/AudioRecord$OnRecordPositionUpdateListener;Landroid/os/Handler;)V" />
-		<method name="startRecording()V" />
-		<method name="startRecording(Landroid/media/MediaSyncEvent;)V" since="16" />
-		<method name="stop()V" />
-		<field name="ERROR" />
-		<field name="ERROR_BAD_VALUE" />
-		<field name="ERROR_INVALID_OPERATION" />
-		<field name="RECORDSTATE_RECORDING" />
-		<field name="RECORDSTATE_STOPPED" />
-		<field name="STATE_INITIALIZED" />
-		<field name="STATE_UNINITIALIZED" />
-		<field name="SUCCESS" />
-	</class>
-	<class name="android/media/AudioRecord$OnRecordPositionUpdateListener" since="3">
-		<extends name="java/lang/Object" />
-		<method name="onMarkerReached(Landroid/media/AudioRecord;)V" />
-		<method name="onPeriodicNotification(Landroid/media/AudioRecord;)V" />
-	</class>
-	<class name="android/media/AudioTimestamp" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="framePosition" />
-		<field name="nanoTime" />
-	</class>
-	<class name="android/media/AudioTrack" since="3">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(IIIIII)V" />
-		<method name="&lt;init>(IIIIIII)V" since="9" />
-		<method name="attachAuxEffect(I)I" since="9" />
-		<method name="flush()V" />
-		<method name="getAudioFormat()I" />
-		<method name="getAudioSessionId()I" since="9" />
-		<method name="getChannelConfiguration()I" />
-		<method name="getChannelCount()I" />
-		<method name="getMaxVolume()F" />
-		<method name="getMinBufferSize(III)I" />
-		<method name="getMinVolume()F" />
-		<method name="getNativeFrameCount()I" />
-		<method name="getNativeOutputSampleRate(I)I" />
-		<method name="getNotificationMarkerPosition()I" />
-		<method name="getPlayState()I" />
-		<method name="getPlaybackHeadPosition()I" />
-		<method name="getPlaybackRate()I" />
-		<method name="getPositionNotificationPeriod()I" />
-		<method name="getSampleRate()I" />
-		<method name="getState()I" />
-		<method name="getStreamType()I" />
-		<method name="getTimestamp(Landroid/media/AudioTimestamp;)Z" since="19" />
-		<method name="pause()V" />
-		<method name="play()V" />
-		<method name="release()V" />
-		<method name="reloadStaticData()I" />
-		<method name="setAuxEffectSendLevel(F)I" since="9" />
-		<method name="setLoopPoints(III)I" />
-		<method name="setNotificationMarkerPosition(I)I" />
-		<method name="setPlaybackHeadPosition(I)I" />
-		<method name="setPlaybackPositionUpdateListener(Landroid/media/AudioTrack$OnPlaybackPositionUpdateListener;)V" />
-		<method name="setPlaybackPositionUpdateListener(Landroid/media/AudioTrack$OnPlaybackPositionUpdateListener;Landroid/os/Handler;)V" />
-		<method name="setPlaybackRate(I)I" />
-		<method name="setPositionNotificationPeriod(I)I" />
-		<method name="setState(I)V" />
-		<method name="setStereoVolume(FF)I" />
-		<method name="setVolume(F)I" since="21" />
-		<method name="stop()V" />
-		<method name="write(Ljava/nio/ByteBuffer;II)I" since="21" />
-		<method name="write([BII)I" />
-		<method name="write([FIII)I" since="21" />
-		<method name="write([SII)I" />
-		<field name="ERROR" />
-		<field name="ERROR_BAD_VALUE" />
-		<field name="ERROR_INVALID_OPERATION" />
-		<field name="MODE_STATIC" />
-		<field name="MODE_STREAM" />
-		<field name="PLAYSTATE_PAUSED" />
-		<field name="PLAYSTATE_PLAYING" />
-		<field name="PLAYSTATE_STOPPED" />
-		<field name="STATE_INITIALIZED" />
-		<field name="STATE_NO_STATIC_DATA" />
-		<field name="STATE_UNINITIALIZED" />
-		<field name="SUCCESS" />
-		<field name="WRITE_BLOCKING" since="21" />
-		<field name="WRITE_NON_BLOCKING" since="21" />
-	</class>
-	<class name="android/media/AudioTrack$OnPlaybackPositionUpdateListener" since="3">
-		<extends name="java/lang/Object" />
-		<method name="onMarkerReached(Landroid/media/AudioTrack;)V" />
-		<method name="onPeriodicNotification(Landroid/media/AudioTrack;)V" />
-	</class>
-	<class name="android/media/CamcorderProfile" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="get(I)Landroid/media/CamcorderProfile;" />
-		<method name="get(II)Landroid/media/CamcorderProfile;" since="9" />
-		<method name="hasProfile(I)Z" since="11" />
-		<method name="hasProfile(II)Z" since="11" />
-		<field name="QUALITY_1080P" since="11" />
-		<field name="QUALITY_480P" since="11" />
-		<field name="QUALITY_720P" since="11" />
-		<field name="QUALITY_CIF" since="11" />
-		<field name="QUALITY_HIGH" />
-		<field name="QUALITY_LOW" />
-		<field name="QUALITY_QCIF" since="11" />
-		<field name="QUALITY_QVGA" since="15" />
-		<field name="QUALITY_TIME_LAPSE_1080P" since="11" />
-		<field name="QUALITY_TIME_LAPSE_480P" since="11" />
-		<field name="QUALITY_TIME_LAPSE_720P" since="11" />
-		<field name="QUALITY_TIME_LAPSE_CIF" since="11" />
-		<field name="QUALITY_TIME_LAPSE_HIGH" since="11" />
-		<field name="QUALITY_TIME_LAPSE_LOW" since="11" />
-		<field name="QUALITY_TIME_LAPSE_QCIF" since="11" />
-		<field name="QUALITY_TIME_LAPSE_QVGA" since="15" />
-		<field name="audioBitRate" />
-		<field name="audioChannels" />
-		<field name="audioCodec" />
-		<field name="audioSampleRate" />
-		<field name="duration" />
-		<field name="fileFormat" />
-		<field name="quality" />
-		<field name="videoBitRate" />
-		<field name="videoCodec" />
-		<field name="videoFrameHeight" />
-		<field name="videoFrameRate" />
-		<field name="videoFrameWidth" />
-	</class>
-	<class name="android/media/CameraProfile" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getJpegEncodingQualityParameter(I)I" />
-		<method name="getJpegEncodingQualityParameter(II)I" since="9" />
-		<field name="QUALITY_HIGH" />
-		<field name="QUALITY_LOW" />
-		<field name="QUALITY_MEDIUM" />
-	</class>
-	<class name="android/media/DeniedByServerException" since="18">
-		<extends name="android/media/MediaDrmException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/media/ExifInterface" since="5">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="getAltitude(D)D" since="9" />
-		<method name="getAttribute(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getAttributeDouble(Ljava/lang/String;D)D" since="8" />
-		<method name="getAttributeInt(Ljava/lang/String;I)I" />
-		<method name="getLatLong([F)Z" />
-		<method name="getThumbnail()[B" />
-		<method name="hasThumbnail()Z" />
-		<method name="saveAttributes()V" />
-		<method name="setAttribute(Ljava/lang/String;Ljava/lang/String;)V" />
-		<field name="ORIENTATION_FLIP_HORIZONTAL" />
-		<field name="ORIENTATION_FLIP_VERTICAL" />
-		<field name="ORIENTATION_NORMAL" />
-		<field name="ORIENTATION_ROTATE_180" />
-		<field name="ORIENTATION_ROTATE_270" />
-		<field name="ORIENTATION_ROTATE_90" />
-		<field name="ORIENTATION_TRANSPOSE" />
-		<field name="ORIENTATION_TRANSVERSE" />
-		<field name="ORIENTATION_UNDEFINED" />
-		<field name="TAG_APERTURE" since="11" />
-		<field name="TAG_DATETIME" />
-		<field name="TAG_EXPOSURE_TIME" since="11" />
-		<field name="TAG_FLASH" />
-		<field name="TAG_FOCAL_LENGTH" since="8" />
-		<field name="TAG_GPS_ALTITUDE" since="9" />
-		<field name="TAG_GPS_ALTITUDE_REF" since="9" />
-		<field name="TAG_GPS_DATESTAMP" since="8" />
-		<field name="TAG_GPS_LATITUDE" />
-		<field name="TAG_GPS_LATITUDE_REF" />
-		<field name="TAG_GPS_LONGITUDE" />
-		<field name="TAG_GPS_LONGITUDE_REF" />
-		<field name="TAG_GPS_PROCESSING_METHOD" since="8" />
-		<field name="TAG_GPS_TIMESTAMP" since="8" />
-		<field name="TAG_IMAGE_LENGTH" />
-		<field name="TAG_IMAGE_WIDTH" />
-		<field name="TAG_ISO" since="11" />
-		<field name="TAG_MAKE" />
-		<field name="TAG_MODEL" />
-		<field name="TAG_ORIENTATION" />
-		<field name="TAG_WHITE_BALANCE" />
-		<field name="WHITEBALANCE_AUTO" />
-		<field name="WHITEBALANCE_MANUAL" />
-	</class>
-	<class name="android/media/FaceDetector" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(III)V" />
-		<method name="findFaces(Landroid/graphics/Bitmap;[Landroid/media/FaceDetector$Face;)I" />
-	</class>
-	<class name="android/media/FaceDetector$Face" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/media/FaceDetector;)V" />
-		<method name="confidence()F" />
-		<method name="eyesDistance()F" />
-		<method name="getMidPoint(Landroid/graphics/PointF;)V" />
-		<method name="pose(I)F" />
-		<field name="CONFIDENCE_THRESHOLD" />
-		<field name="EULER_X" />
-		<field name="EULER_Y" />
-		<field name="EULER_Z" />
-	</class>
-	<class name="android/media/Image" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/AutoCloseable" />
-		<method name="&lt;init>()V" />
-		<method name="getFormat()I" />
-		<method name="getHeight()I" />
-		<method name="getPlanes()[Landroid/media/Image$Plane;" />
-		<method name="getTimestamp()J" />
-		<method name="getWidth()I" />
-	</class>
-	<class name="android/media/Image$Plane" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getBuffer()Ljava/nio/ByteBuffer;" />
-		<method name="getPixelStride()I" />
-		<method name="getRowStride()I" />
-	</class>
-	<class name="android/media/ImageReader" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/AutoCloseable" />
-		<method name="&lt;init>()V" />
-		<method name="acquireLatestImage()Landroid/media/Image;" />
-		<method name="acquireNextImage()Landroid/media/Image;" />
-		<method name="getHeight()I" />
-		<method name="getImageFormat()I" />
-		<method name="getMaxImages()I" />
-		<method name="getSurface()Landroid/view/Surface;" />
-		<method name="getWidth()I" />
-		<method name="newInstance(IIII)Landroid/media/ImageReader;" />
-		<method name="setOnImageAvailableListener(Landroid/media/ImageReader$OnImageAvailableListener;Landroid/os/Handler;)V" />
-	</class>
-	<class name="android/media/ImageReader$OnImageAvailableListener" since="19">
-		<extends name="java/lang/Object" />
-		<method name="onImageAvailable(Landroid/media/ImageReader;)V" />
-	</class>
-	<class name="android/media/JetPlayer" since="3">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="clearQueue()Z" />
-		<method name="closeJetFile()Z" />
-		<method name="getJetPlayer()Landroid/media/JetPlayer;" />
-		<method name="getMaxTracks()I" />
-		<method name="loadJetFile(Landroid/content/res/AssetFileDescriptor;)Z" />
-		<method name="loadJetFile(Ljava/lang/String;)Z" />
-		<method name="pause()Z" />
-		<method name="play()Z" />
-		<method name="queueJetSegment(IIIIIB)Z" />
-		<method name="queueJetSegmentMuteArray(IIII[ZB)Z" />
-		<method name="release()V" />
-		<method name="setEventListener(Landroid/media/JetPlayer$OnJetEventListener;)V" />
-		<method name="setEventListener(Landroid/media/JetPlayer$OnJetEventListener;Landroid/os/Handler;)V" />
-		<method name="setMuteArray([ZZ)Z" />
-		<method name="setMuteFlag(IZZ)Z" />
-		<method name="setMuteFlags(IZ)Z" />
-		<method name="triggerClip(I)Z" />
-	</class>
-	<class name="android/media/JetPlayer$OnJetEventListener" since="3">
-		<extends name="java/lang/Object" />
-		<method name="onJetEvent(Landroid/media/JetPlayer;SBBBB)V" />
-		<method name="onJetNumQueuedSegmentUpdate(Landroid/media/JetPlayer;I)V" />
-		<method name="onJetPauseUpdate(Landroid/media/JetPlayer;I)V" />
-		<method name="onJetUserIdUpdate(Landroid/media/JetPlayer;II)V" />
-	</class>
-	<class name="android/media/MediaActionSound" since="16">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="load(I)V" />
-		<method name="play(I)V" />
-		<method name="release()V" />
-		<field name="FOCUS_COMPLETE" />
-		<field name="SHUTTER_CLICK" />
-		<field name="START_VIDEO_RECORDING" />
-		<field name="STOP_VIDEO_RECORDING" />
-	</class>
-	<class name="android/media/MediaCodec" since="16">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="configure(Landroid/media/MediaFormat;Landroid/view/Surface;Landroid/media/MediaCrypto;I)V" />
-		<method name="createByCodecName(Ljava/lang/String;)Landroid/media/MediaCodec;" />
-		<method name="createDecoderByType(Ljava/lang/String;)Landroid/media/MediaCodec;" />
-		<method name="createEncoderByType(Ljava/lang/String;)Landroid/media/MediaCodec;" />
-		<method name="createInputSurface()Landroid/view/Surface;" since="18" />
-		<method name="dequeueInputBuffer(J)I" />
-		<method name="dequeueOutputBuffer(Landroid/media/MediaCodec$BufferInfo;J)I" />
-		<method name="flush()V" />
-		<method name="getCodecInfo()Landroid/media/MediaCodecInfo;" since="18" />
-		<method name="getInputBuffers()[Ljava/nio/ByteBuffer;" />
-		<method name="getName()Ljava/lang/String;" since="18" />
-		<method name="getOutputBuffers()[Ljava/nio/ByteBuffer;" />
-		<method name="getOutputFormat()Landroid/media/MediaFormat;" />
-		<method name="queueInputBuffer(IIIJI)V" />
-		<method name="queueSecureInputBuffer(IILandroid/media/MediaCodec$CryptoInfo;JI)V" />
-		<method name="release()V" />
-		<method name="releaseOutputBuffer(IJ)V" since="21" />
-		<method name="releaseOutputBuffer(IZ)V" />
-		<method name="setParameters(Landroid/os/Bundle;)V" since="19" />
-		<method name="setVideoScalingMode(I)V" />
-		<method name="signalEndOfInputStream()V" since="18" />
-		<method name="start()V" />
-		<method name="stop()V" />
-		<field name="BUFFER_FLAG_CODEC_CONFIG" />
-		<field name="BUFFER_FLAG_END_OF_STREAM" />
-		<field name="BUFFER_FLAG_SYNC_FRAME" />
-		<field name="CONFIGURE_FLAG_ENCODE" />
-		<field name="CRYPTO_MODE_AES_CTR" />
-		<field name="CRYPTO_MODE_UNENCRYPTED" />
-		<field name="INFO_OUTPUT_BUFFERS_CHANGED" />
-		<field name="INFO_OUTPUT_FORMAT_CHANGED" />
-		<field name="INFO_TRY_AGAIN_LATER" />
-		<field name="PARAMETER_KEY_REQUEST_SYNC_FRAME" since="19" />
-		<field name="PARAMETER_KEY_SUSPEND" since="19" />
-		<field name="PARAMETER_KEY_VIDEO_BITRATE" since="19" />
-		<field name="VIDEO_SCALING_MODE_SCALE_TO_FIT" />
-		<field name="VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING" />
-	</class>
-	<class name="android/media/MediaCodec$BufferInfo" since="16">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="set(IIJI)V" />
-		<field name="flags" />
-		<field name="offset" />
-		<field name="presentationTimeUs" />
-		<field name="size" />
-	</class>
-	<class name="android/media/MediaCodec$CryptoException" since="16">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>(ILjava/lang/String;)V" />
-		<method name="getErrorCode()I" />
-		<field name="ERROR_KEY_EXPIRED" since="19" />
-		<field name="ERROR_NO_KEY" since="19" />
-		<field name="ERROR_RESOURCE_BUSY" since="19" />
-	</class>
-	<class name="android/media/MediaCodec$CryptoInfo" since="16">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="set(I[I[I[B[BI)V" />
-		<field name="iv" />
-		<field name="key" />
-		<field name="mode" />
-		<field name="numBytesOfClearData" />
-		<field name="numBytesOfEncryptedData" />
-		<field name="numSubSamples" />
-	</class>
-	<class name="android/media/MediaCodecInfo" since="16">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getCapabilitiesForType(Ljava/lang/String;)Landroid/media/MediaCodecInfo$CodecCapabilities;" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getSupportedTypes()[Ljava/lang/String;" />
-		<method name="isEncoder()Z" />
-	</class>
-	<class name="android/media/MediaCodecInfo$CodecCapabilities" since="16">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="isFeatureSupported(Ljava/lang/String;)Z" since="19" />
-		<field name="COLOR_Format12bitRGB444" />
-		<field name="COLOR_Format16bitARGB1555" />
-		<field name="COLOR_Format16bitARGB4444" />
-		<field name="COLOR_Format16bitBGR565" />
-		<field name="COLOR_Format16bitRGB565" />
-		<field name="COLOR_Format18BitBGR666" />
-		<field name="COLOR_Format18bitARGB1665" />
-		<field name="COLOR_Format18bitRGB666" />
-		<field name="COLOR_Format19bitARGB1666" />
-		<field name="COLOR_Format24BitABGR6666" />
-		<field name="COLOR_Format24BitARGB6666" />
-		<field name="COLOR_Format24bitARGB1887" />
-		<field name="COLOR_Format24bitBGR888" />
-		<field name="COLOR_Format24bitRGB888" />
-		<field name="COLOR_Format25bitARGB1888" />
-		<field name="COLOR_Format32bitARGB8888" />
-		<field name="COLOR_Format32bitBGRA8888" />
-		<field name="COLOR_Format8bitRGB332" />
-		<field name="COLOR_FormatCbYCrY" />
-		<field name="COLOR_FormatCrYCbY" />
-		<field name="COLOR_FormatL16" />
-		<field name="COLOR_FormatL2" />
-		<field name="COLOR_FormatL24" />
-		<field name="COLOR_FormatL32" />
-		<field name="COLOR_FormatL4" />
-		<field name="COLOR_FormatL8" />
-		<field name="COLOR_FormatMonochrome" />
-		<field name="COLOR_FormatRawBayer10bit" />
-		<field name="COLOR_FormatRawBayer8bit" />
-		<field name="COLOR_FormatRawBayer8bitcompressed" />
-		<field name="COLOR_FormatSurface" since="18" />
-		<field name="COLOR_FormatYCbYCr" />
-		<field name="COLOR_FormatYCrYCb" />
-		<field name="COLOR_FormatYUV411PackedPlanar" />
-		<field name="COLOR_FormatYUV411Planar" />
-		<field name="COLOR_FormatYUV420PackedPlanar" />
-		<field name="COLOR_FormatYUV420PackedSemiPlanar" />
-		<field name="COLOR_FormatYUV420Planar" />
-		<field name="COLOR_FormatYUV420SemiPlanar" />
-		<field name="COLOR_FormatYUV422PackedPlanar" />
-		<field name="COLOR_FormatYUV422PackedSemiPlanar" />
-		<field name="COLOR_FormatYUV422Planar" />
-		<field name="COLOR_FormatYUV422SemiPlanar" />
-		<field name="COLOR_FormatYUV444Interleaved" />
-		<field name="COLOR_QCOM_FormatYUV420SemiPlanar" />
-		<field name="COLOR_TI_FormatYUV420PackedSemiPlanar" />
-		<field name="FEATURE_AdaptivePlayback" since="19" />
-		<field name="colorFormats" />
-		<field name="profileLevels" />
-	</class>
-	<class name="android/media/MediaCodecInfo$CodecProfileLevel" since="16">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="AACObjectELD" />
-		<field name="AACObjectERLC" />
-		<field name="AACObjectHE" />
-		<field name="AACObjectHE_PS" />
-		<field name="AACObjectLC" />
-		<field name="AACObjectLD" />
-		<field name="AACObjectLTP" />
-		<field name="AACObjectMain" />
-		<field name="AACObjectSSR" />
-		<field name="AACObjectScalable" />
-		<field name="AVCLevel1" />
-		<field name="AVCLevel11" />
-		<field name="AVCLevel12" />
-		<field name="AVCLevel13" />
-		<field name="AVCLevel1b" />
-		<field name="AVCLevel2" />
-		<field name="AVCLevel21" />
-		<field name="AVCLevel22" />
-		<field name="AVCLevel3" />
-		<field name="AVCLevel31" />
-		<field name="AVCLevel32" />
-		<field name="AVCLevel4" />
-		<field name="AVCLevel41" />
-		<field name="AVCLevel42" />
-		<field name="AVCLevel5" />
-		<field name="AVCLevel51" />
-		<field name="AVCProfileBaseline" />
-		<field name="AVCProfileExtended" />
-		<field name="AVCProfileHigh" />
-		<field name="AVCProfileHigh10" />
-		<field name="AVCProfileHigh422" />
-		<field name="AVCProfileHigh444" />
-		<field name="AVCProfileMain" />
-		<field name="H263Level10" />
-		<field name="H263Level20" />
-		<field name="H263Level30" />
-		<field name="H263Level40" />
-		<field name="H263Level45" />
-		<field name="H263Level50" />
-		<field name="H263Level60" />
-		<field name="H263Level70" />
-		<field name="H263ProfileBackwardCompatible" />
-		<field name="H263ProfileBaseline" />
-		<field name="H263ProfileH320Coding" />
-		<field name="H263ProfileHighCompression" />
-		<field name="H263ProfileHighLatency" />
-		<field name="H263ProfileISWV2" />
-		<field name="H263ProfileISWV3" />
-		<field name="H263ProfileInterlace" />
-		<field name="H263ProfileInternet" />
-		<field name="HEVCHighTierLevel1" since="21" />
-		<field name="HEVCHighTierLevel2" since="21" />
-		<field name="HEVCHighTierLevel21" since="21" />
-		<field name="HEVCHighTierLevel3" since="21" />
-		<field name="HEVCHighTierLevel31" since="21" />
-		<field name="HEVCHighTierLevel4" since="21" />
-		<field name="HEVCHighTierLevel41" since="21" />
-		<field name="HEVCHighTierLevel5" since="21" />
-		<field name="HEVCHighTierLevel51" since="21" />
-		<field name="HEVCHighTierLevel52" since="21" />
-		<field name="HEVCHighTierLevel6" since="21" />
-		<field name="HEVCHighTierLevel61" since="21" />
-		<field name="HEVCHighTierLevel62" since="21" />
-		<field name="HEVCMainTierLevel1" since="21" />
-		<field name="HEVCMainTierLevel2" since="21" />
-		<field name="HEVCMainTierLevel21" since="21" />
-		<field name="HEVCMainTierLevel3" since="21" />
-		<field name="HEVCMainTierLevel31" since="21" />
-		<field name="HEVCMainTierLevel4" since="21" />
-		<field name="HEVCMainTierLevel41" since="21" />
-		<field name="HEVCMainTierLevel5" since="21" />
-		<field name="HEVCMainTierLevel51" since="21" />
-		<field name="HEVCMainTierLevel52" since="21" />
-		<field name="HEVCMainTierLevel6" since="21" />
-		<field name="HEVCMainTierLevel61" since="21" />
-		<field name="HEVCMainTierLevel62" since="21" />
-		<field name="HEVCProfileMain" since="21" />
-		<field name="HEVCProfileMain10" since="21" />
-		<field name="MPEG4Level0" />
-		<field name="MPEG4Level0b" />
-		<field name="MPEG4Level1" />
-		<field name="MPEG4Level2" />
-		<field name="MPEG4Level3" />
-		<field name="MPEG4Level4" />
-		<field name="MPEG4Level4a" />
-		<field name="MPEG4Level5" />
-		<field name="MPEG4ProfileAdvancedCoding" />
-		<field name="MPEG4ProfileAdvancedCore" />
-		<field name="MPEG4ProfileAdvancedRealTime" />
-		<field name="MPEG4ProfileAdvancedScalable" />
-		<field name="MPEG4ProfileAdvancedSimple" />
-		<field name="MPEG4ProfileBasicAnimated" />
-		<field name="MPEG4ProfileCore" />
-		<field name="MPEG4ProfileCoreScalable" />
-		<field name="MPEG4ProfileHybrid" />
-		<field name="MPEG4ProfileMain" />
-		<field name="MPEG4ProfileNbit" />
-		<field name="MPEG4ProfileScalableTexture" />
-		<field name="MPEG4ProfileSimple" />
-		<field name="MPEG4ProfileSimpleFBA" />
-		<field name="MPEG4ProfileSimpleFace" />
-		<field name="MPEG4ProfileSimpleScalable" />
-		<field name="VP8Level_Version0" since="18" />
-		<field name="VP8Level_Version1" since="18" />
-		<field name="VP8Level_Version2" since="18" />
-		<field name="VP8Level_Version3" since="18" />
-		<field name="VP8ProfileMain" since="18" />
-		<field name="level" />
-		<field name="profile" />
-	</class>
-	<class name="android/media/MediaCodecList" since="16">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getCodecCount()I" />
-		<method name="getCodecInfoAt(I)Landroid/media/MediaCodecInfo;" />
-	</class>
-	<class name="android/media/MediaCrypto" since="16">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/util/UUID;[B)V" />
-		<method name="isCryptoSchemeSupported(Ljava/util/UUID;)Z" />
-		<method name="release()V" />
-		<method name="requiresSecureDecoderComponent(Ljava/lang/String;)Z" />
-	</class>
-	<class name="android/media/MediaCryptoException" since="16">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/media/MediaDrm" since="18">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/util/UUID;)V" />
-		<method name="closeSession([B)V" />
-		<method name="getCryptoSession([BLjava/lang/String;Ljava/lang/String;)Landroid/media/MediaDrm$CryptoSession;" />
-		<method name="getKeyRequest([B[BLjava/lang/String;ILjava/util/HashMap;)Landroid/media/MediaDrm$KeyRequest;" />
-		<method name="getPropertyByteArray(Ljava/lang/String;)[B" />
-		<method name="getPropertyString(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getProvisionRequest()Landroid/media/MediaDrm$ProvisionRequest;" />
-		<method name="getSecureStops()Ljava/util/List;" />
-		<method name="isCryptoSchemeSupported(Ljava/util/UUID;)Z" />
-		<method name="isCryptoSchemeSupported(Ljava/util/UUID;Ljava/lang/String;)Z" since="19" />
-		<method name="openSession()[B" />
-		<method name="provideKeyResponse([B[B)[B" />
-		<method name="provideProvisionResponse([B)V" />
-		<method name="queryKeyStatus([B)Ljava/util/HashMap;" />
-		<method name="release()V" />
-		<method name="releaseSecureStops([B)V" />
-		<method name="removeKeys([B)V" />
-		<method name="restoreKeys([B[B)V" />
-		<method name="setOnEventListener(Landroid/media/MediaDrm$OnEventListener;)V" />
-		<method name="setPropertyByteArray(Ljava/lang/String;[B)V" />
-		<method name="setPropertyString(Ljava/lang/String;Ljava/lang/String;)V" />
-		<field name="EVENT_KEY_EXPIRED" />
-		<field name="EVENT_KEY_REQUIRED" />
-		<field name="EVENT_PROVISION_REQUIRED" />
-		<field name="EVENT_VENDOR_DEFINED" />
-		<field name="KEY_TYPE_OFFLINE" />
-		<field name="KEY_TYPE_RELEASE" />
-		<field name="KEY_TYPE_STREAMING" />
-		<field name="PROPERTY_ALGORITHMS" />
-		<field name="PROPERTY_DESCRIPTION" />
-		<field name="PROPERTY_DEVICE_UNIQUE_ID" />
-		<field name="PROPERTY_VENDOR" />
-		<field name="PROPERTY_VERSION" />
-	</class>
-	<class name="android/media/MediaDrm$CryptoSession" since="18">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/media/MediaDrm;)V" />
-		<method name="decrypt([B[B[B)[B" />
-		<method name="encrypt([B[B[B)[B" />
-		<method name="sign([B[B)[B" />
-		<method name="verify([B[B[B)Z" />
-	</class>
-	<class name="android/media/MediaDrm$KeyRequest" since="18">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getData()[B" />
-		<method name="getDefaultUrl()Ljava/lang/String;" />
-	</class>
-	<class name="android/media/MediaDrm$OnEventListener" since="18">
-		<extends name="java/lang/Object" />
-		<method name="onEvent(Landroid/media/MediaDrm;[BII[B)V" />
-	</class>
-	<class name="android/media/MediaDrm$ProvisionRequest" since="18">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getData()[B" />
-		<method name="getDefaultUrl()Ljava/lang/String;" />
-	</class>
-	<class name="android/media/MediaDrmException" since="18">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/media/MediaExtractor" since="16">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="advance()Z" />
-		<method name="getCachedDuration()J" />
-		<method name="getPsshInfo()Ljava/util/Map;" since="18" />
-		<method name="getSampleCryptoInfo(Landroid/media/MediaCodec$CryptoInfo;)Z" />
-		<method name="getSampleFlags()I" />
-		<method name="getSampleTime()J" />
-		<method name="getSampleTrackIndex()I" />
-		<method name="getTrackCount()I" />
-		<method name="getTrackFormat(I)Landroid/media/MediaFormat;" />
-		<method name="hasCacheReachedEndOfStream()Z" />
-		<method name="readSampleData(Ljava/nio/ByteBuffer;I)I" />
-		<method name="release()V" />
-		<method name="seekTo(JI)V" />
-		<method name="selectTrack(I)V" />
-		<method name="setDataSource(Landroid/content/Context;Landroid/net/Uri;Ljava/util/Map;)V" />
-		<method name="setDataSource(Ljava/io/FileDescriptor;)V" />
-		<method name="setDataSource(Ljava/io/FileDescriptor;JJ)V" />
-		<method name="setDataSource(Ljava/lang/String;)V" />
-		<method name="setDataSource(Ljava/lang/String;Ljava/util/Map;)V" />
-		<method name="unselectTrack(I)V" />
-		<field name="SAMPLE_FLAG_ENCRYPTED" />
-		<field name="SAMPLE_FLAG_SYNC" />
-		<field name="SEEK_TO_CLOSEST_SYNC" />
-		<field name="SEEK_TO_NEXT_SYNC" />
-		<field name="SEEK_TO_PREVIOUS_SYNC" />
-	</class>
-	<class name="android/media/MediaFormat" since="16">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="containsKey(Ljava/lang/String;)Z" />
-		<method name="createAudioFormat(Ljava/lang/String;II)Landroid/media/MediaFormat;" />
-		<method name="createSubtitleFormat(Ljava/lang/String;Ljava/lang/String;)Landroid/media/MediaFormat;" since="19" />
-		<method name="createVideoFormat(Ljava/lang/String;II)Landroid/media/MediaFormat;" />
-		<method name="getByteBuffer(Ljava/lang/String;)Ljava/nio/ByteBuffer;" />
-		<method name="getFloat(Ljava/lang/String;)F" />
-		<method name="getInteger(Ljava/lang/String;)I" />
-		<method name="getLong(Ljava/lang/String;)J" />
-		<method name="getString(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="setByteBuffer(Ljava/lang/String;Ljava/nio/ByteBuffer;)V" />
-		<method name="setFloat(Ljava/lang/String;F)V" />
-		<method name="setInteger(Ljava/lang/String;I)V" />
-		<method name="setLong(Ljava/lang/String;J)V" />
-		<method name="setString(Ljava/lang/String;Ljava/lang/String;)V" />
-		<field name="KEY_AAC_PROFILE" />
-		<field name="KEY_BIT_RATE" />
-		<field name="KEY_CHANNEL_COUNT" />
-		<field name="KEY_CHANNEL_MASK" />
-		<field name="KEY_COLOR_FORMAT" />
-		<field name="KEY_DURATION" />
-		<field name="KEY_FLAC_COMPRESSION_LEVEL" />
-		<field name="KEY_FRAME_RATE" />
-		<field name="KEY_HEIGHT" />
-		<field name="KEY_IS_ADTS" />
-		<field name="KEY_IS_AUTOSELECT" since="19" />
-		<field name="KEY_IS_DEFAULT" since="19" />
-		<field name="KEY_IS_FORCED_SUBTITLE" since="19" />
-		<field name="KEY_I_FRAME_INTERVAL" />
-		<field name="KEY_LANGUAGE" since="19" />
-		<field name="KEY_MAX_HEIGHT" since="19" />
-		<field name="KEY_MAX_INPUT_SIZE" />
-		<field name="KEY_MAX_WIDTH" since="19" />
-		<field name="KEY_MIME" />
-		<field name="KEY_PUSH_BLANK_BUFFERS_ON_STOP" since="19" />
-		<field name="KEY_REPEAT_PREVIOUS_FRAME_AFTER" since="19" />
-		<field name="KEY_SAMPLE_RATE" />
-		<field name="KEY_WIDTH" />
-	</class>
-	<class name="android/media/MediaMetadata" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="containsKey(Ljava/lang/String;)Z" />
-		<method name="getBitmap(Ljava/lang/String;)Landroid/graphics/Bitmap;" />
-		<method name="getLong(Ljava/lang/String;)J" />
-		<method name="getRating(Ljava/lang/String;)Landroid/media/Rating;" />
-		<method name="getString(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="keySet()Ljava/util/Set;" />
-		<method name="size()I" />
-		<field name="CREATOR" />
-		<field name="METADATA_KEY_ALBUM" />
-		<field name="METADATA_KEY_ALBUM_ART" />
-		<field name="METADATA_KEY_ALBUM_ARTIST" />
-		<field name="METADATA_KEY_ALBUM_ART_URI" />
-		<field name="METADATA_KEY_ART" />
-		<field name="METADATA_KEY_ARTIST" />
-		<field name="METADATA_KEY_ART_URI" />
-		<field name="METADATA_KEY_AUTHOR" />
-		<field name="METADATA_KEY_COMPILATION" />
-		<field name="METADATA_KEY_COMPOSER" />
-		<field name="METADATA_KEY_DATE" />
-		<field name="METADATA_KEY_DISC_NUMBER" />
-		<field name="METADATA_KEY_DURATION" />
-		<field name="METADATA_KEY_GENRE" />
-		<field name="METADATA_KEY_NUM_TRACKS" />
-		<field name="METADATA_KEY_RATING" />
-		<field name="METADATA_KEY_TITLE" />
-		<field name="METADATA_KEY_TRACK_NUMBER" />
-		<field name="METADATA_KEY_USER_RATING" />
-		<field name="METADATA_KEY_WRITER" />
-		<field name="METADATA_KEY_YEAR" />
-	</class>
-	<class name="android/media/MediaMetadata$Builder" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/media/MediaMetadata;)V" />
-		<method name="build()Landroid/media/MediaMetadata;" />
-		<method name="putBitmap(Ljava/lang/String;Landroid/graphics/Bitmap;)Landroid/media/MediaMetadata$Builder;" />
-		<method name="putLong(Ljava/lang/String;J)Landroid/media/MediaMetadata$Builder;" />
-		<method name="putRating(Ljava/lang/String;Landroid/media/Rating;)Landroid/media/MediaMetadata$Builder;" />
-		<method name="putString(Ljava/lang/String;Ljava/lang/String;)Landroid/media/MediaMetadata$Builder;" />
-	</class>
-	<class name="android/media/MediaMetadataEditor" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addEditableKey(I)V" />
-		<method name="apply()V" />
-		<method name="clear()V" />
-		<method name="getBitmap(ILandroid/graphics/Bitmap;)Landroid/graphics/Bitmap;" />
-		<method name="getEditableKeys()[I" />
-		<method name="getLong(IJ)J" />
-		<method name="getObject(ILjava/lang/Object;)Ljava/lang/Object;" />
-		<method name="getString(ILjava/lang/String;)Ljava/lang/String;" />
-		<method name="putBitmap(ILandroid/graphics/Bitmap;)Landroid/media/MediaMetadataEditor;" />
-		<method name="putLong(IJ)Landroid/media/MediaMetadataEditor;" />
-		<method name="putObject(ILjava/lang/Object;)Landroid/media/MediaMetadataEditor;" />
-		<method name="putString(ILjava/lang/String;)Landroid/media/MediaMetadataEditor;" />
-		<method name="removeEditableKeys()V" />
-		<field name="BITMAP_KEY_ARTWORK" />
-		<field name="RATING_KEY_BY_OTHERS" />
-		<field name="RATING_KEY_BY_USER" />
-	</class>
-	<class name="android/media/MediaMetadataRetriever" since="10">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="extractMetadata(I)Ljava/lang/String;" />
-		<method name="getEmbeddedPicture()[B" />
-		<method name="getFrameAtTime()Landroid/graphics/Bitmap;" />
-		<method name="getFrameAtTime(J)Landroid/graphics/Bitmap;" />
-		<method name="getFrameAtTime(JI)Landroid/graphics/Bitmap;" />
-		<method name="release()V" />
-		<method name="setDataSource(Landroid/content/Context;Landroid/net/Uri;)V" />
-		<method name="setDataSource(Ljava/io/FileDescriptor;)V" />
-		<method name="setDataSource(Ljava/io/FileDescriptor;JJ)V" />
-		<method name="setDataSource(Ljava/lang/String;)V" />
-		<method name="setDataSource(Ljava/lang/String;Ljava/util/Map;)V" since="14" />
-		<field name="METADATA_KEY_ALBUM" />
-		<field name="METADATA_KEY_ALBUMARTIST" />
-		<field name="METADATA_KEY_ARTIST" />
-		<field name="METADATA_KEY_AUTHOR" />
-		<field name="METADATA_KEY_BITRATE" since="14" />
-		<field name="METADATA_KEY_CD_TRACK_NUMBER" />
-		<field name="METADATA_KEY_COMPILATION" />
-		<field name="METADATA_KEY_COMPOSER" />
-		<field name="METADATA_KEY_DATE" />
-		<field name="METADATA_KEY_DISC_NUMBER" />
-		<field name="METADATA_KEY_DURATION" />
-		<field name="METADATA_KEY_GENRE" />
-		<field name="METADATA_KEY_HAS_AUDIO" since="14" />
-		<field name="METADATA_KEY_HAS_VIDEO" since="14" />
-		<field name="METADATA_KEY_LOCATION" since="15" />
-		<field name="METADATA_KEY_MIMETYPE" />
-		<field name="METADATA_KEY_NUM_TRACKS" />
-		<field name="METADATA_KEY_TITLE" />
-		<field name="METADATA_KEY_VIDEO_HEIGHT" since="14" />
-		<field name="METADATA_KEY_VIDEO_ROTATION" since="17" />
-		<field name="METADATA_KEY_VIDEO_WIDTH" since="14" />
-		<field name="METADATA_KEY_WRITER" />
-		<field name="METADATA_KEY_YEAR" />
-		<field name="OPTION_CLOSEST" />
-		<field name="OPTION_CLOSEST_SYNC" />
-		<field name="OPTION_NEXT_SYNC" />
-		<field name="OPTION_PREVIOUS_SYNC" />
-	</class>
-	<class name="android/media/MediaMuxer" since="18">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;I)V" />
-		<method name="addTrack(Landroid/media/MediaFormat;)I" />
-		<method name="release()V" />
-		<method name="setLocation(FF)V" since="19" />
-		<method name="setOrientationHint(I)V" />
-		<method name="start()V" />
-		<method name="stop()V" />
-		<method name="writeSampleData(ILjava/nio/ByteBuffer;Landroid/media/MediaCodec$BufferInfo;)V" />
-	</class>
-	<class name="android/media/MediaMuxer$OutputFormat" since="18">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="MUXER_OUTPUT_MPEG_4" />
-		<field name="MUXER_OUTPUT_WEBM" since="21" />
-	</class>
-	<class name="android/media/MediaPlayer" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addTimedTextSource(Landroid/content/Context;Landroid/net/Uri;Ljava/lang/String;)V" since="16" />
-		<method name="addTimedTextSource(Ljava/io/FileDescriptor;JJLjava/lang/String;)V" since="16" />
-		<method name="addTimedTextSource(Ljava/io/FileDescriptor;Ljava/lang/String;)V" since="16" />
-		<method name="addTimedTextSource(Ljava/lang/String;Ljava/lang/String;)V" since="16" />
-		<method name="attachAuxEffect(I)V" since="9" />
-		<method name="create(Landroid/content/Context;I)Landroid/media/MediaPlayer;" />
-		<method name="create(Landroid/content/Context;Landroid/net/Uri;)Landroid/media/MediaPlayer;" />
-		<method name="create(Landroid/content/Context;Landroid/net/Uri;Landroid/view/SurfaceHolder;)Landroid/media/MediaPlayer;" />
-		<method name="deselectTrack(I)V" since="16" />
-		<method name="getAudioSessionId()I" since="9" />
-		<method name="getCurrentPosition()I" />
-		<method name="getDuration()I" />
-		<method name="getTrackInfo()[Landroid/media/MediaPlayer$TrackInfo;" since="16" />
-		<method name="getVideoHeight()I" />
-		<method name="getVideoWidth()I" />
-		<method name="isLooping()Z" since="3" />
-		<method name="isPlaying()Z" />
-		<method name="pause()V" />
-		<method name="prepare()V" />
-		<method name="prepareAsync()V" />
-		<method name="release()V" />
-		<method name="reset()V" />
-		<method name="seekTo(I)V" />
-		<method name="selectTrack(I)V" since="16" />
-		<method name="setAudioSessionId(I)V" since="9" />
-		<method name="setAudioStreamType(I)V" />
-		<method name="setAuxEffectSendLevel(F)V" since="9" />
-		<method name="setDataSource(Landroid/content/Context;Landroid/net/Uri;)V" />
-		<method name="setDataSource(Landroid/content/Context;Landroid/net/Uri;Ljava/util/Map;)V" since="14" />
-		<method name="setDataSource(Ljava/io/FileDescriptor;)V" />
-		<method name="setDataSource(Ljava/io/FileDescriptor;JJ)V" />
-		<method name="setDataSource(Ljava/lang/String;)V" />
-		<method name="setDisplay(Landroid/view/SurfaceHolder;)V" />
-		<method name="setLooping(Z)V" />
-		<method name="setNextMediaPlayer(Landroid/media/MediaPlayer;)V" since="16" />
-		<method name="setOnBufferingUpdateListener(Landroid/media/MediaPlayer$OnBufferingUpdateListener;)V" />
-		<method name="setOnCompletionListener(Landroid/media/MediaPlayer$OnCompletionListener;)V" />
-		<method name="setOnErrorListener(Landroid/media/MediaPlayer$OnErrorListener;)V" />
-		<method name="setOnInfoListener(Landroid/media/MediaPlayer$OnInfoListener;)V" since="3" />
-		<method name="setOnPreparedListener(Landroid/media/MediaPlayer$OnPreparedListener;)V" />
-		<method name="setOnSeekCompleteListener(Landroid/media/MediaPlayer$OnSeekCompleteListener;)V" />
-		<method name="setOnTimedTextListener(Landroid/media/MediaPlayer$OnTimedTextListener;)V" since="16" />
-		<method name="setOnVideoSizeChangedListener(Landroid/media/MediaPlayer$OnVideoSizeChangedListener;)V" since="3" />
-		<method name="setScreenOnWhilePlaying(Z)V" />
-		<method name="setSurface(Landroid/view/Surface;)V" since="14" />
-		<method name="setVideoScalingMode(I)V" since="16" />
-		<method name="setVolume(FF)V" />
-		<method name="setWakeMode(Landroid/content/Context;I)V" />
-		<method name="start()V" />
-		<method name="stop()V" />
-		<field name="MEDIA_ERROR_IO" since="17" />
-		<field name="MEDIA_ERROR_MALFORMED" since="17" />
-		<field name="MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK" since="3" />
-		<field name="MEDIA_ERROR_SERVER_DIED" />
-		<field name="MEDIA_ERROR_TIMED_OUT" since="17" />
-		<field name="MEDIA_ERROR_UNKNOWN" />
-		<field name="MEDIA_ERROR_UNSUPPORTED" since="17" />
-		<field name="MEDIA_INFO_BAD_INTERLEAVING" since="3" />
-		<field name="MEDIA_INFO_BUFFERING_END" since="9" />
-		<field name="MEDIA_INFO_BUFFERING_START" since="9" />
-		<field name="MEDIA_INFO_METADATA_UPDATE" since="5" />
-		<field name="MEDIA_INFO_NOT_SEEKABLE" since="3" />
-		<field name="MEDIA_INFO_SUBTITLE_TIMED_OUT" since="19" />
-		<field name="MEDIA_INFO_UNKNOWN" since="3" />
-		<field name="MEDIA_INFO_UNSUPPORTED_SUBTITLE" since="19" />
-		<field name="MEDIA_INFO_VIDEO_RENDERING_START" since="17" />
-		<field name="MEDIA_INFO_VIDEO_TRACK_LAGGING" since="3" />
-		<field name="MEDIA_MIMETYPE_TEXT_SUBRIP" since="16" />
-		<field name="VIDEO_SCALING_MODE_SCALE_TO_FIT" since="16" />
-		<field name="VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING" since="16" />
-	</class>
-	<class name="android/media/MediaPlayer$OnBufferingUpdateListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onBufferingUpdate(Landroid/media/MediaPlayer;I)V" />
-	</class>
-	<class name="android/media/MediaPlayer$OnCompletionListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onCompletion(Landroid/media/MediaPlayer;)V" />
-	</class>
-	<class name="android/media/MediaPlayer$OnErrorListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onError(Landroid/media/MediaPlayer;II)Z" />
-	</class>
-	<class name="android/media/MediaPlayer$OnInfoListener" since="3">
-		<extends name="java/lang/Object" />
-		<method name="onInfo(Landroid/media/MediaPlayer;II)Z" />
-	</class>
-	<class name="android/media/MediaPlayer$OnPreparedListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onPrepared(Landroid/media/MediaPlayer;)V" />
-	</class>
-	<class name="android/media/MediaPlayer$OnSeekCompleteListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onSeekComplete(Landroid/media/MediaPlayer;)V" />
-	</class>
-	<class name="android/media/MediaPlayer$OnTimedTextListener" since="16">
-		<extends name="java/lang/Object" />
-		<method name="onTimedText(Landroid/media/MediaPlayer;Landroid/media/TimedText;)V" />
-	</class>
-	<class name="android/media/MediaPlayer$OnVideoSizeChangedListener" since="3">
-		<extends name="java/lang/Object" />
-		<method name="onVideoSizeChanged(Landroid/media/MediaPlayer;II)V" />
-	</class>
-	<class name="android/media/MediaPlayer$TrackInfo" since="16">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getFormat()Landroid/media/MediaFormat;" since="19" />
-		<method name="getLanguage()Ljava/lang/String;" />
-		<method name="getTrackType()I" />
-		<field name="MEDIA_TRACK_TYPE_AUDIO" />
-		<field name="MEDIA_TRACK_TYPE_TIMEDTEXT" />
-		<field name="MEDIA_TRACK_TYPE_UNKNOWN" />
-		<field name="MEDIA_TRACK_TYPE_VIDEO" />
-	</class>
-	<class name="android/media/MediaRecorder" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getAudioSourceMax()I" since="4" />
-		<method name="getMaxAmplitude()I" />
-		<method name="getSurface()Landroid/view/Surface;" since="21" />
-		<method name="prepare()V" />
-		<method name="release()V" />
-		<method name="reset()V" />
-		<method name="setAudioChannels(I)V" since="8" />
-		<method name="setAudioEncoder(I)V" />
-		<method name="setAudioEncodingBitRate(I)V" since="8" />
-		<method name="setAudioSamplingRate(I)V" since="8" />
-		<method name="setAudioSource(I)V" />
-		<method name="setAuxiliaryOutputFile(Ljava/io/FileDescriptor;)V" since="11" />
-		<method name="setAuxiliaryOutputFile(Ljava/lang/String;)V" since="11" />
-		<method name="setCamera(Landroid/hardware/Camera;)V" since="3" />
-		<method name="setCaptureRate(D)V" since="11" />
-		<method name="setLocation(FF)V" since="14" />
-		<method name="setMaxDuration(I)V" since="3" />
-		<method name="setMaxFileSize(J)V" since="3" />
-		<method name="setOnErrorListener(Landroid/media/MediaRecorder$OnErrorListener;)V" since="3" />
-		<method name="setOnInfoListener(Landroid/media/MediaRecorder$OnInfoListener;)V" since="3" />
-		<method name="setOrientationHint(I)V" since="9" />
-		<method name="setOutputFile(Ljava/io/FileDescriptor;)V" since="3" />
-		<method name="setOutputFile(Ljava/lang/String;)V" />
-		<method name="setOutputFormat(I)V" />
-		<method name="setPreviewDisplay(Landroid/view/Surface;)V" />
-		<method name="setProfile(Landroid/media/CamcorderProfile;)V" since="8" />
-		<method name="setVideoEncoder(I)V" since="3" />
-		<method name="setVideoEncodingBitRate(I)V" since="8" />
-		<method name="setVideoFrameRate(I)V" since="3" />
-		<method name="setVideoSize(II)V" since="3" />
-		<method name="setVideoSource(I)V" since="3" />
-		<method name="start()V" />
-		<method name="stop()V" />
-		<field name="MEDIA_ERROR_SERVER_DIED" since="17" />
-		<field name="MEDIA_RECORDER_ERROR_UNKNOWN" since="3" />
-		<field name="MEDIA_RECORDER_INFO_MAX_DURATION_REACHED" since="3" />
-		<field name="MEDIA_RECORDER_INFO_MAX_FILESIZE_REACHED" since="3" />
-		<field name="MEDIA_RECORDER_INFO_UNKNOWN" since="3" />
-	</class>
-	<class name="android/media/MediaRecorder$AudioEncoder" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/media/MediaRecorder;)V" />
-		<field name="AAC" since="10" />
-		<field name="AAC_ELD" since="16" />
-		<field name="AMR_NB" />
-		<field name="AMR_WB" since="10" />
-		<field name="DEFAULT" />
-		<field name="HE_AAC" since="16" />
-	</class>
-	<class name="android/media/MediaRecorder$AudioSource" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/media/MediaRecorder;)V" />
-		<field name="CAMCORDER" since="7" />
-		<field name="DEFAULT" />
-		<field name="MIC" />
-		<field name="REMOTE_SUBMIX" since="19" />
-		<field name="VOICE_CALL" since="4" />
-		<field name="VOICE_COMMUNICATION" since="11" />
-		<field name="VOICE_DOWNLINK" since="4" />
-		<field name="VOICE_RECOGNITION" since="7" />
-		<field name="VOICE_UPLINK" since="4" />
-	</class>
-	<class name="android/media/MediaRecorder$OnErrorListener" since="3">
-		<extends name="java/lang/Object" />
-		<method name="onError(Landroid/media/MediaRecorder;II)V" />
-	</class>
-	<class name="android/media/MediaRecorder$OnInfoListener" since="3">
-		<extends name="java/lang/Object" />
-		<method name="onInfo(Landroid/media/MediaRecorder;II)V" />
-	</class>
-	<class name="android/media/MediaRecorder$OutputFormat" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/media/MediaRecorder;)V" />
-		<field name="AAC_ADTS" since="16" />
-		<field name="AMR_NB" since="10" />
-		<field name="AMR_WB" since="10" />
-		<field name="DEFAULT" />
-		<field name="MPEG_4" />
-		<field name="RAW_AMR" since="3" />
-		<field name="THREE_GPP" />
-	</class>
-	<class name="android/media/MediaRecorder$VideoEncoder" since="3">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/media/MediaRecorder;)V" />
-		<field name="DEFAULT" />
-		<field name="H263" />
-		<field name="H264" />
-		<field name="MPEG_4_SP" />
-	</class>
-	<class name="android/media/MediaRecorder$VideoSource" since="3">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/media/MediaRecorder;)V" />
-		<field name="CAMERA" />
-		<field name="DEFAULT" />
-		<field name="SURFACE" since="21" />
-	</class>
-	<class name="android/media/MediaRouter" since="16">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addCallback(ILandroid/media/MediaRouter$Callback;)V" />
-		<method name="addCallback(ILandroid/media/MediaRouter$Callback;I)V" since="18" />
-		<method name="addUserRoute(Landroid/media/MediaRouter$UserRouteInfo;)V" />
-		<method name="clearUserRoutes()V" />
-		<method name="createRouteCategory(IZ)Landroid/media/MediaRouter$RouteCategory;" />
-		<method name="createRouteCategory(Ljava/lang/CharSequence;Z)Landroid/media/MediaRouter$RouteCategory;" />
-		<method name="createUserRoute(Landroid/media/MediaRouter$RouteCategory;)Landroid/media/MediaRouter$UserRouteInfo;" />
-		<method name="getCategoryAt(I)Landroid/media/MediaRouter$RouteCategory;" />
-		<method name="getCategoryCount()I" />
-		<method name="getDefaultRoute()Landroid/media/MediaRouter$RouteInfo;" since="18" />
-		<method name="getRouteAt(I)Landroid/media/MediaRouter$RouteInfo;" />
-		<method name="getRouteCount()I" />
-		<method name="getSelectedRoute(I)Landroid/media/MediaRouter$RouteInfo;" />
-		<method name="removeCallback(Landroid/media/MediaRouter$Callback;)V" />
-		<method name="removeUserRoute(Landroid/media/MediaRouter$UserRouteInfo;)V" />
-		<method name="selectRoute(ILandroid/media/MediaRouter$RouteInfo;)V" />
-		<field name="CALLBACK_FLAG_PERFORM_ACTIVE_SCAN" since="18" />
-		<field name="CALLBACK_FLAG_UNFILTERED_EVENTS" since="18" />
-		<field name="ROUTE_TYPE_LIVE_AUDIO" />
-		<field name="ROUTE_TYPE_LIVE_VIDEO" since="17" />
-		<field name="ROUTE_TYPE_USER" />
-	</class>
-	<class name="android/media/MediaRouter$Callback" since="16">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="onRouteAdded(Landroid/media/MediaRouter;Landroid/media/MediaRouter$RouteInfo;)V" />
-		<method name="onRouteChanged(Landroid/media/MediaRouter;Landroid/media/MediaRouter$RouteInfo;)V" />
-		<method name="onRouteGrouped(Landroid/media/MediaRouter;Landroid/media/MediaRouter$RouteInfo;Landroid/media/MediaRouter$RouteGroup;I)V" />
-		<method name="onRoutePresentationDisplayChanged(Landroid/media/MediaRouter;Landroid/media/MediaRouter$RouteInfo;)V" since="17" />
-		<method name="onRouteRemoved(Landroid/media/MediaRouter;Landroid/media/MediaRouter$RouteInfo;)V" />
-		<method name="onRouteSelected(Landroid/media/MediaRouter;ILandroid/media/MediaRouter$RouteInfo;)V" />
-		<method name="onRouteUngrouped(Landroid/media/MediaRouter;Landroid/media/MediaRouter$RouteInfo;Landroid/media/MediaRouter$RouteGroup;)V" />
-		<method name="onRouteUnselected(Landroid/media/MediaRouter;ILandroid/media/MediaRouter$RouteInfo;)V" />
-		<method name="onRouteVolumeChanged(Landroid/media/MediaRouter;Landroid/media/MediaRouter$RouteInfo;)V" />
-	</class>
-	<class name="android/media/MediaRouter$RouteCategory" since="16">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getName()Ljava/lang/CharSequence;" />
-		<method name="getName(Landroid/content/Context;)Ljava/lang/CharSequence;" />
-		<method name="getRoutes(Ljava/util/List;)Ljava/util/List;" />
-		<method name="getSupportedTypes()I" />
-		<method name="isGroupable()Z" />
-	</class>
-	<class name="android/media/MediaRouter$RouteGroup" since="16">
-		<extends name="android/media/MediaRouter$RouteInfo" />
-		<method name="&lt;init>()V" />
-		<method name="addRoute(Landroid/media/MediaRouter$RouteInfo;)V" />
-		<method name="addRoute(Landroid/media/MediaRouter$RouteInfo;I)V" />
-		<method name="getRouteAt(I)Landroid/media/MediaRouter$RouteInfo;" />
-		<method name="getRouteCount()I" />
-		<method name="removeRoute(I)V" />
-		<method name="removeRoute(Landroid/media/MediaRouter$RouteInfo;)V" />
-		<method name="setIconDrawable(Landroid/graphics/drawable/Drawable;)V" />
-		<method name="setIconResource(I)V" />
-	</class>
-	<class name="android/media/MediaRouter$RouteInfo" since="16">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getCategory()Landroid/media/MediaRouter$RouteCategory;" />
-		<method name="getDescription()Ljava/lang/CharSequence;" since="18" />
-		<method name="getGroup()Landroid/media/MediaRouter$RouteGroup;" />
-		<method name="getIconDrawable()Landroid/graphics/drawable/Drawable;" />
-		<method name="getName()Ljava/lang/CharSequence;" />
-		<method name="getName(Landroid/content/Context;)Ljava/lang/CharSequence;" />
-		<method name="getPlaybackStream()I" />
-		<method name="getPlaybackType()I" />
-		<method name="getPresentationDisplay()Landroid/view/Display;" since="17" />
-		<method name="getStatus()Ljava/lang/CharSequence;" />
-		<method name="getSupportedTypes()I" />
-		<method name="getTag()Ljava/lang/Object;" />
-		<method name="getVolume()I" />
-		<method name="getVolumeHandling()I" />
-		<method name="getVolumeMax()I" />
-		<method name="isConnecting()Z" since="18" />
-		<method name="isEnabled()Z" since="17" />
-		<method name="requestSetVolume(I)V" />
-		<method name="requestUpdateVolume(I)V" />
-		<method name="setTag(Ljava/lang/Object;)V" />
-		<field name="PLAYBACK_TYPE_LOCAL" />
-		<field name="PLAYBACK_TYPE_REMOTE" />
-		<field name="PLAYBACK_VOLUME_FIXED" />
-		<field name="PLAYBACK_VOLUME_VARIABLE" />
-	</class>
-	<class name="android/media/MediaRouter$SimpleCallback" since="16">
-		<extends name="android/media/MediaRouter$Callback" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/media/MediaRouter$UserRouteInfo" since="16">
-		<extends name="android/media/MediaRouter$RouteInfo" />
-		<method name="&lt;init>()V" />
-		<method name="getRemoteControlClient()Landroid/media/RemoteControlClient;" />
-		<method name="setDescription(Ljava/lang/CharSequence;)V" since="18" />
-		<method name="setIconDrawable(Landroid/graphics/drawable/Drawable;)V" />
-		<method name="setIconResource(I)V" />
-		<method name="setName(I)V" />
-		<method name="setName(Ljava/lang/CharSequence;)V" />
-		<method name="setPlaybackStream(I)V" />
-		<method name="setPlaybackType(I)V" />
-		<method name="setRemoteControlClient(Landroid/media/RemoteControlClient;)V" />
-		<method name="setStatus(Ljava/lang/CharSequence;)V" />
-		<method name="setVolume(I)V" />
-		<method name="setVolumeCallback(Landroid/media/MediaRouter$VolumeCallback;)V" />
-		<method name="setVolumeHandling(I)V" />
-		<method name="setVolumeMax(I)V" />
-	</class>
-	<class name="android/media/MediaRouter$VolumeCallback" since="16">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="onVolumeSetRequest(Landroid/media/MediaRouter$RouteInfo;I)V" />
-		<method name="onVolumeUpdateRequest(Landroid/media/MediaRouter$RouteInfo;I)V" />
-	</class>
-	<class name="android/media/MediaScannerConnection" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/content/ServiceConnection" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/media/MediaScannerConnection$MediaScannerConnectionClient;)V" />
-		<method name="connect()V" />
-		<method name="disconnect()V" />
-		<method name="isConnected()Z" />
-		<method name="scanFile(Landroid/content/Context;[Ljava/lang/String;[Ljava/lang/String;Landroid/media/MediaScannerConnection$OnScanCompletedListener;)V" since="8" />
-		<method name="scanFile(Ljava/lang/String;Ljava/lang/String;)V" />
-	</class>
-	<class name="android/media/MediaScannerConnection$MediaScannerConnectionClient" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/media/MediaScannerConnection$OnScanCompletedListener" since="8" />
-		<method name="onMediaScannerConnected()V" />
-		<method name="onScanCompleted(Ljava/lang/String;Landroid/net/Uri;)V" />
-	</class>
-	<class name="android/media/MediaScannerConnection$OnScanCompletedListener" since="8">
-		<extends name="java/lang/Object" />
-		<method name="onScanCompleted(Ljava/lang/String;Landroid/net/Uri;)V" />
-	</class>
-	<class name="android/media/MediaSyncEvent" since="16">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="createEvent(I)Landroid/media/MediaSyncEvent;" />
-		<method name="getAudioSessionId()I" />
-		<method name="getType()I" />
-		<method name="setAudioSessionId(I)Landroid/media/MediaSyncEvent;" />
-		<field name="SYNC_EVENT_NONE" />
-		<field name="SYNC_EVENT_PRESENTATION_COMPLETE" />
-	</class>
-	<class name="android/media/NotProvisionedException" since="18">
-		<extends name="android/media/MediaDrmException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/media/Rating" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getPercentRating()F" />
-		<method name="getRatingStyle()I" />
-		<method name="getStarRating()F" />
-		<method name="hasHeart()Z" />
-		<method name="isRated()Z" />
-		<method name="isThumbUp()Z" />
-		<method name="newHeartRating(Z)Landroid/media/Rating;" />
-		<method name="newPercentageRating(F)Landroid/media/Rating;" />
-		<method name="newStarRating(IF)Landroid/media/Rating;" />
-		<method name="newThumbRating(Z)Landroid/media/Rating;" />
-		<method name="newUnratedRating(I)Landroid/media/Rating;" />
-		<field name="CREATOR" />
-		<field name="RATING_3_STARS" />
-		<field name="RATING_4_STARS" />
-		<field name="RATING_5_STARS" />
-		<field name="RATING_HEART" />
-		<field name="RATING_NONE" since="21" />
-		<field name="RATING_PERCENTAGE" />
-		<field name="RATING_THUMB_UP_DOWN" />
-	</class>
-	<class name="android/media/RemoteControlClient" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/app/PendingIntent;)V" />
-		<method name="&lt;init>(Landroid/app/PendingIntent;Landroid/os/Looper;)V" />
-		<method name="editMetadata(Z)Landroid/media/RemoteControlClient$MetadataEditor;" />
-		<method name="getMediaSession()Landroid/media/session/MediaSession;" since="21" />
-		<method name="setMetadataUpdateListener(Landroid/media/RemoteControlClient$OnMetadataUpdateListener;)V" since="19" />
-		<method name="setOnGetPlaybackPositionListener(Landroid/media/RemoteControlClient$OnGetPlaybackPositionListener;)V" since="18" />
-		<method name="setPlaybackPositionUpdateListener(Landroid/media/RemoteControlClient$OnPlaybackPositionUpdateListener;)V" since="18" />
-		<method name="setPlaybackState(I)V" />
-		<method name="setPlaybackState(IJF)V" since="18" />
-		<method name="setTransportControlFlags(I)V" />
-		<field name="FLAG_KEY_MEDIA_FAST_FORWARD" />
-		<field name="FLAG_KEY_MEDIA_NEXT" />
-		<field name="FLAG_KEY_MEDIA_PAUSE" />
-		<field name="FLAG_KEY_MEDIA_PLAY" />
-		<field name="FLAG_KEY_MEDIA_PLAY_PAUSE" />
-		<field name="FLAG_KEY_MEDIA_POSITION_UPDATE" since="18" />
-		<field name="FLAG_KEY_MEDIA_PREVIOUS" />
-		<field name="FLAG_KEY_MEDIA_RATING" since="19" />
-		<field name="FLAG_KEY_MEDIA_REWIND" />
-		<field name="FLAG_KEY_MEDIA_STOP" />
-		<field name="PLAYSTATE_BUFFERING" />
-		<field name="PLAYSTATE_ERROR" />
-		<field name="PLAYSTATE_FAST_FORWARDING" />
-		<field name="PLAYSTATE_PAUSED" />
-		<field name="PLAYSTATE_PLAYING" />
-		<field name="PLAYSTATE_REWINDING" />
-		<field name="PLAYSTATE_SKIPPING_BACKWARDS" />
-		<field name="PLAYSTATE_SKIPPING_FORWARDS" />
-		<field name="PLAYSTATE_STOPPED" />
-	</class>
-	<class name="android/media/RemoteControlClient$MetadataEditor" since="14">
-		<extends name="android/media/MediaMetadataEditor" since="19" />
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/media/RemoteControlClient;)V" />
-		<method name="apply()V" />
-		<method name="clear()V" />
-		<method name="putBitmap(ILandroid/graphics/Bitmap;)Landroid/media/RemoteControlClient$MetadataEditor;" />
-		<method name="putLong(IJ)Landroid/media/RemoteControlClient$MetadataEditor;" />
-		<method name="putString(ILjava/lang/String;)Landroid/media/RemoteControlClient$MetadataEditor;" />
-		<field name="BITMAP_KEY_ARTWORK" />
-	</class>
-	<class name="android/media/RemoteControlClient$OnGetPlaybackPositionListener" since="18">
-		<extends name="java/lang/Object" />
-		<method name="onGetPlaybackPosition()J" />
-	</class>
-	<class name="android/media/RemoteControlClient$OnMetadataUpdateListener" since="19">
-		<extends name="java/lang/Object" />
-		<method name="onMetadataUpdate(ILjava/lang/Object;)V" />
-	</class>
-	<class name="android/media/RemoteControlClient$OnPlaybackPositionUpdateListener" since="18">
-		<extends name="java/lang/Object" />
-		<method name="onPlaybackPositionUpdate(J)V" />
-	</class>
-	<class name="android/media/RemoteController" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/media/RemoteController$OnClientUpdateListener;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/media/RemoteController$OnClientUpdateListener;Landroid/os/Looper;)V" />
-		<method name="clearArtworkConfiguration()Z" />
-		<method name="editMetadata()Landroid/media/RemoteController$MetadataEditor;" />
-		<method name="getEstimatedMediaPosition()J" />
-		<method name="seekTo(J)Z" />
-		<method name="sendMediaKeyEvent(Landroid/view/KeyEvent;)Z" />
-		<method name="setArtworkConfiguration(II)Z" />
-		<method name="setSynchronizationMode(I)Z" />
-		<field name="POSITION_SYNCHRONIZATION_CHECK" />
-		<field name="POSITION_SYNCHRONIZATION_NONE" />
-	</class>
-	<class name="android/media/RemoteController$MetadataEditor" since="19">
-		<extends name="android/media/MediaMetadataEditor" />
-		<method name="&lt;init>(Landroid/media/RemoteController;)V" />
-	</class>
-	<class name="android/media/RemoteController$OnClientUpdateListener" since="19">
-		<extends name="java/lang/Object" />
-		<method name="onClientChange(Z)V" />
-		<method name="onClientMetadataUpdate(Landroid/media/RemoteController$MetadataEditor;)V" />
-		<method name="onClientPlaybackStateUpdate(I)V" />
-		<method name="onClientPlaybackStateUpdate(IJJF)V" />
-		<method name="onClientTransportControlUpdate(I)V" />
-	</class>
-	<class name="android/media/ResourceBusyException" since="19">
-		<extends name="android/media/MediaDrmException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/media/Ringtone" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getStreamType()I" />
-		<method name="getTitle(Landroid/content/Context;)Ljava/lang/String;" />
-		<method name="isPlaying()Z" />
-		<method name="play()V" />
-		<method name="setStreamType(I)V" />
-		<method name="stop()V" />
-	</class>
-	<class name="android/media/RingtoneManager" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/app/Activity;)V" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="getActualDefaultRingtoneUri(Landroid/content/Context;I)Landroid/net/Uri;" />
-		<method name="getCursor()Landroid/database/Cursor;" />
-		<method name="getDefaultType(Landroid/net/Uri;)I" />
-		<method name="getDefaultUri(I)Landroid/net/Uri;" />
-		<method name="getIncludeDrm()Z" />
-		<method name="getRingtone(I)Landroid/media/Ringtone;" />
-		<method name="getRingtone(Landroid/content/Context;Landroid/net/Uri;)Landroid/media/Ringtone;" />
-		<method name="getRingtonePosition(Landroid/net/Uri;)I" />
-		<method name="getRingtoneUri(I)Landroid/net/Uri;" />
-		<method name="getStopPreviousRingtone()Z" />
-		<method name="getValidRingtoneUri(Landroid/content/Context;)Landroid/net/Uri;" />
-		<method name="inferStreamType()I" since="3" />
-		<method name="isDefault(Landroid/net/Uri;)Z" />
-		<method name="setActualDefaultRingtoneUri(Landroid/content/Context;ILandroid/net/Uri;)V" />
-		<method name="setIncludeDrm(Z)V" />
-		<method name="setStopPreviousRingtone(Z)V" />
-		<method name="setType(I)V" />
-		<method name="stopPreviousRingtone()V" />
-		<field name="ACTION_RINGTONE_PICKER" />
-		<field name="EXTRA_RINGTONE_DEFAULT_URI" />
-		<field name="EXTRA_RINGTONE_EXISTING_URI" />
-		<field name="EXTRA_RINGTONE_INCLUDE_DRM" />
-		<field name="EXTRA_RINGTONE_PICKED_URI" />
-		<field name="EXTRA_RINGTONE_SHOW_DEFAULT" />
-		<field name="EXTRA_RINGTONE_SHOW_SILENT" />
-		<field name="EXTRA_RINGTONE_TITLE" />
-		<field name="EXTRA_RINGTONE_TYPE" />
-		<field name="ID_COLUMN_INDEX" />
-		<field name="TITLE_COLUMN_INDEX" />
-		<field name="TYPE_ALARM" />
-		<field name="TYPE_ALL" />
-		<field name="TYPE_NOTIFICATION" />
-		<field name="TYPE_RINGTONE" />
-		<field name="URI_COLUMN_INDEX" />
-	</class>
-	<class name="android/media/SoundPool" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(III)V" />
-		<method name="autoPause()V" since="8" />
-		<method name="autoResume()V" since="8" />
-		<method name="load(Landroid/content/Context;II)I" />
-		<method name="load(Landroid/content/res/AssetFileDescriptor;I)I" since="3" />
-		<method name="load(Ljava/io/FileDescriptor;JJI)I" since="3" />
-		<method name="load(Ljava/lang/String;I)I" />
-		<method name="pause(I)V" />
-		<method name="play(IFFIIF)I" />
-		<method name="release()V" />
-		<method name="resume(I)V" />
-		<method name="setLoop(II)V" />
-		<method name="setOnLoadCompleteListener(Landroid/media/SoundPool$OnLoadCompleteListener;)V" since="8" />
-		<method name="setPriority(II)V" />
-		<method name="setRate(IF)V" />
-		<method name="setVolume(IFF)V" />
-		<method name="stop(I)V" />
-		<method name="unload(I)Z" />
-	</class>
-	<class name="android/media/SoundPool$OnLoadCompleteListener" since="8">
-		<extends name="java/lang/Object" />
-		<method name="onLoadComplete(Landroid/media/SoundPool;II)V" />
-	</class>
-	<class name="android/media/ThumbnailUtils" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="createVideoThumbnail(Ljava/lang/String;I)Landroid/graphics/Bitmap;" />
-		<method name="extractThumbnail(Landroid/graphics/Bitmap;II)Landroid/graphics/Bitmap;" />
-		<method name="extractThumbnail(Landroid/graphics/Bitmap;III)Landroid/graphics/Bitmap;" />
-		<field name="OPTIONS_RECYCLE_INPUT" />
-	</class>
-	<class name="android/media/TimedText" since="16">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getBounds()Landroid/graphics/Rect;" />
-		<method name="getText()Ljava/lang/String;" />
-	</class>
-	<class name="android/media/ToneGenerator" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(II)V" />
-		<method name="getAudioSessionId()I" since="16" />
-		<method name="release()V" />
-		<method name="startTone(I)Z" />
-		<method name="startTone(II)Z" since="5" />
-		<method name="stopTone()V" />
-		<field name="MAX_VOLUME" />
-		<field name="MIN_VOLUME" />
-		<field name="TONE_CDMA_ABBR_ALERT" since="4" />
-		<field name="TONE_CDMA_ABBR_INTERCEPT" since="4" />
-		<field name="TONE_CDMA_ABBR_REORDER" since="4" />
-		<field name="TONE_CDMA_ALERT_AUTOREDIAL_LITE" since="4" />
-		<field name="TONE_CDMA_ALERT_CALL_GUARD" since="4" />
-		<field name="TONE_CDMA_ALERT_INCALL_LITE" since="4" />
-		<field name="TONE_CDMA_ALERT_NETWORK_LITE" since="4" />
-		<field name="TONE_CDMA_ANSWER" since="4" />
-		<field name="TONE_CDMA_CALLDROP_LITE" since="4" />
-		<field name="TONE_CDMA_CALL_SIGNAL_ISDN_INTERGROUP" since="4" />
-		<field name="TONE_CDMA_CALL_SIGNAL_ISDN_NORMAL" since="4" />
-		<field name="TONE_CDMA_CALL_SIGNAL_ISDN_PAT3" since="4" />
-		<field name="TONE_CDMA_CALL_SIGNAL_ISDN_PAT5" since="4" />
-		<field name="TONE_CDMA_CALL_SIGNAL_ISDN_PAT6" since="4" />
-		<field name="TONE_CDMA_CALL_SIGNAL_ISDN_PAT7" since="4" />
-		<field name="TONE_CDMA_CALL_SIGNAL_ISDN_PING_RING" since="4" />
-		<field name="TONE_CDMA_CALL_SIGNAL_ISDN_SP_PRI" since="4" />
-		<field name="TONE_CDMA_CONFIRM" since="4" />
-		<field name="TONE_CDMA_DIAL_TONE_LITE" since="4" />
-		<field name="TONE_CDMA_EMERGENCY_RINGBACK" since="4" />
-		<field name="TONE_CDMA_HIGH_L" since="4" />
-		<field name="TONE_CDMA_HIGH_PBX_L" since="4" />
-		<field name="TONE_CDMA_HIGH_PBX_SLS" since="4" />
-		<field name="TONE_CDMA_HIGH_PBX_SS" since="4" />
-		<field name="TONE_CDMA_HIGH_PBX_SSL" since="4" />
-		<field name="TONE_CDMA_HIGH_PBX_S_X4" since="4" />
-		<field name="TONE_CDMA_HIGH_SLS" since="4" />
-		<field name="TONE_CDMA_HIGH_SS" since="4" />
-		<field name="TONE_CDMA_HIGH_SSL" since="4" />
-		<field name="TONE_CDMA_HIGH_SS_2" since="4" />
-		<field name="TONE_CDMA_HIGH_S_X4" since="4" />
-		<field name="TONE_CDMA_INTERCEPT" since="4" />
-		<field name="TONE_CDMA_KEYPAD_VOLUME_KEY_LITE" since="4" />
-		<field name="TONE_CDMA_LOW_L" since="4" />
-		<field name="TONE_CDMA_LOW_PBX_L" since="4" />
-		<field name="TONE_CDMA_LOW_PBX_SLS" since="4" />
-		<field name="TONE_CDMA_LOW_PBX_SS" since="4" />
-		<field name="TONE_CDMA_LOW_PBX_SSL" since="4" />
-		<field name="TONE_CDMA_LOW_PBX_S_X4" since="4" />
-		<field name="TONE_CDMA_LOW_SLS" since="4" />
-		<field name="TONE_CDMA_LOW_SS" since="4" />
-		<field name="TONE_CDMA_LOW_SSL" since="4" />
-		<field name="TONE_CDMA_LOW_SS_2" since="4" />
-		<field name="TONE_CDMA_LOW_S_X4" since="4" />
-		<field name="TONE_CDMA_MED_L" since="4" />
-		<field name="TONE_CDMA_MED_PBX_L" since="4" />
-		<field name="TONE_CDMA_MED_PBX_SLS" since="4" />
-		<field name="TONE_CDMA_MED_PBX_SS" since="4" />
-		<field name="TONE_CDMA_MED_PBX_SSL" since="4" />
-		<field name="TONE_CDMA_MED_PBX_S_X4" since="4" />
-		<field name="TONE_CDMA_MED_SLS" since="4" />
-		<field name="TONE_CDMA_MED_SS" since="4" />
-		<field name="TONE_CDMA_MED_SSL" since="4" />
-		<field name="TONE_CDMA_MED_SS_2" since="4" />
-		<field name="TONE_CDMA_MED_S_X4" since="4" />
-		<field name="TONE_CDMA_NETWORK_BUSY" since="4" />
-		<field name="TONE_CDMA_NETWORK_BUSY_ONE_SHOT" since="4" />
-		<field name="TONE_CDMA_NETWORK_CALLWAITING" since="4" />
-		<field name="TONE_CDMA_NETWORK_USA_RINGBACK" since="4" />
-		<field name="TONE_CDMA_ONE_MIN_BEEP" since="4" />
-		<field name="TONE_CDMA_PIP" since="4" />
-		<field name="TONE_CDMA_PRESSHOLDKEY_LITE" since="4" />
-		<field name="TONE_CDMA_REORDER" since="4" />
-		<field name="TONE_CDMA_SIGNAL_OFF" since="4" />
-		<field name="TONE_CDMA_SOFT_ERROR_LITE" since="4" />
-		<field name="TONE_DTMF_0" />
-		<field name="TONE_DTMF_1" />
-		<field name="TONE_DTMF_2" />
-		<field name="TONE_DTMF_3" />
-		<field name="TONE_DTMF_4" />
-		<field name="TONE_DTMF_5" />
-		<field name="TONE_DTMF_6" />
-		<field name="TONE_DTMF_7" />
-		<field name="TONE_DTMF_8" />
-		<field name="TONE_DTMF_9" />
-		<field name="TONE_DTMF_A" />
-		<field name="TONE_DTMF_B" />
-		<field name="TONE_DTMF_C" />
-		<field name="TONE_DTMF_D" />
-		<field name="TONE_DTMF_P" />
-		<field name="TONE_DTMF_S" />
-		<field name="TONE_PROP_ACK" />
-		<field name="TONE_PROP_BEEP" />
-		<field name="TONE_PROP_BEEP2" />
-		<field name="TONE_PROP_NACK" />
-		<field name="TONE_PROP_PROMPT" />
-		<field name="TONE_SUP_BUSY" />
-		<field name="TONE_SUP_CALL_WAITING" />
-		<field name="TONE_SUP_CONFIRM" since="4" />
-		<field name="TONE_SUP_CONGESTION" />
-		<field name="TONE_SUP_CONGESTION_ABBREV" since="4" />
-		<field name="TONE_SUP_DIAL" />
-		<field name="TONE_SUP_ERROR" />
-		<field name="TONE_SUP_INTERCEPT" since="4" />
-		<field name="TONE_SUP_INTERCEPT_ABBREV" since="4" />
-		<field name="TONE_SUP_PIP" since="4" />
-		<field name="TONE_SUP_RADIO_ACK" />
-		<field name="TONE_SUP_RADIO_NOTAVAIL" />
-		<field name="TONE_SUP_RINGTONE" />
-	</class>
-	<class name="android/media/UnsupportedSchemeException" since="18">
-		<extends name="android/media/MediaDrmException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/media/audiofx/AcousticEchoCanceler" since="16">
-		<extends name="android/media/audiofx/AudioEffect" />
-		<method name="&lt;init>()V" />
-		<method name="create(I)Landroid/media/audiofx/AcousticEchoCanceler;" />
-		<method name="isAvailable()Z" />
-	</class>
-	<class name="android/media/audiofx/AudioEffect" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getDescriptor()Landroid/media/audiofx/AudioEffect$Descriptor;" />
-		<method name="getEnabled()Z" />
-		<method name="getId()I" />
-		<method name="hasControl()Z" />
-		<method name="queryEffects()[Landroid/media/audiofx/AudioEffect$Descriptor;" />
-		<method name="release()V" />
-		<method name="setControlStatusListener(Landroid/media/audiofx/AudioEffect$OnControlStatusChangeListener;)V" />
-		<method name="setEnableStatusListener(Landroid/media/audiofx/AudioEffect$OnEnableStatusChangeListener;)V" />
-		<method name="setEnabled(Z)I" />
-		<field name="ACTION_CLOSE_AUDIO_EFFECT_CONTROL_SESSION" />
-		<field name="ACTION_DISPLAY_AUDIO_EFFECT_CONTROL_PANEL" />
-		<field name="ACTION_OPEN_AUDIO_EFFECT_CONTROL_SESSION" />
-		<field name="ALREADY_EXISTS" />
-		<field name="CONTENT_TYPE_GAME" />
-		<field name="CONTENT_TYPE_MOVIE" />
-		<field name="CONTENT_TYPE_MUSIC" />
-		<field name="CONTENT_TYPE_VOICE" />
-		<field name="EFFECT_AUXILIARY" />
-		<field name="EFFECT_INSERT" />
-		<field name="EFFECT_TYPE_AEC" since="18" />
-		<field name="EFFECT_TYPE_AGC" since="18" />
-		<field name="EFFECT_TYPE_BASS_BOOST" since="18" />
-		<field name="EFFECT_TYPE_ENV_REVERB" since="18" />
-		<field name="EFFECT_TYPE_EQUALIZER" since="18" />
-		<field name="EFFECT_TYPE_LOUDNESS_ENHANCER" since="19" />
-		<field name="EFFECT_TYPE_NS" since="18" />
-		<field name="EFFECT_TYPE_PRESET_REVERB" since="18" />
-		<field name="EFFECT_TYPE_VIRTUALIZER" since="18" />
-		<field name="ERROR" />
-		<field name="ERROR_BAD_VALUE" />
-		<field name="ERROR_DEAD_OBJECT" />
-		<field name="ERROR_INVALID_OPERATION" />
-		<field name="ERROR_NO_INIT" />
-		<field name="ERROR_NO_MEMORY" />
-		<field name="EXTRA_AUDIO_SESSION" />
-		<field name="EXTRA_CONTENT_TYPE" />
-		<field name="EXTRA_PACKAGE_NAME" />
-		<field name="SUCCESS" />
-	</class>
-	<class name="android/media/audiofx/AudioEffect$Descriptor" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<field name="connectMode" />
-		<field name="implementor" />
-		<field name="name" />
-		<field name="type" />
-		<field name="uuid" />
-	</class>
-	<class name="android/media/audiofx/AudioEffect$OnControlStatusChangeListener" since="9">
-		<extends name="java/lang/Object" />
-		<method name="onControlStatusChange(Landroid/media/audiofx/AudioEffect;Z)V" />
-	</class>
-	<class name="android/media/audiofx/AudioEffect$OnEnableStatusChangeListener" since="9">
-		<extends name="java/lang/Object" />
-		<method name="onEnableStatusChange(Landroid/media/audiofx/AudioEffect;Z)V" />
-	</class>
-	<class name="android/media/audiofx/AutomaticGainControl" since="16">
-		<extends name="android/media/audiofx/AudioEffect" />
-		<method name="&lt;init>()V" />
-		<method name="create(I)Landroid/media/audiofx/AutomaticGainControl;" />
-		<method name="isAvailable()Z" />
-	</class>
-	<class name="android/media/audiofx/BassBoost" since="9">
-		<extends name="android/media/audiofx/AudioEffect" />
-		<method name="&lt;init>(II)V" />
-		<method name="getProperties()Landroid/media/audiofx/BassBoost$Settings;" />
-		<method name="getRoundedStrength()S" />
-		<method name="getStrengthSupported()Z" />
-		<method name="setParameterListener(Landroid/media/audiofx/BassBoost$OnParameterChangeListener;)V" />
-		<method name="setProperties(Landroid/media/audiofx/BassBoost$Settings;)V" />
-		<method name="setStrength(S)V" />
-		<field name="PARAM_STRENGTH" />
-		<field name="PARAM_STRENGTH_SUPPORTED" />
-	</class>
-	<class name="android/media/audiofx/BassBoost$OnParameterChangeListener" since="9">
-		<extends name="java/lang/Object" />
-		<method name="onParameterChange(Landroid/media/audiofx/BassBoost;IIS)V" />
-	</class>
-	<class name="android/media/audiofx/BassBoost$Settings" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<field name="strength" />
-	</class>
-	<class name="android/media/audiofx/EnvironmentalReverb" since="9">
-		<extends name="android/media/audiofx/AudioEffect" />
-		<method name="&lt;init>(II)V" />
-		<method name="getDecayHFRatio()S" />
-		<method name="getDecayTime()I" />
-		<method name="getDensity()S" />
-		<method name="getDiffusion()S" />
-		<method name="getProperties()Landroid/media/audiofx/EnvironmentalReverb$Settings;" />
-		<method name="getReflectionsDelay()I" />
-		<method name="getReflectionsLevel()S" />
-		<method name="getReverbDelay()I" />
-		<method name="getReverbLevel()S" />
-		<method name="getRoomHFLevel()S" />
-		<method name="getRoomLevel()S" />
-		<method name="setDecayHFRatio(S)V" />
-		<method name="setDecayTime(I)V" />
-		<method name="setDensity(S)V" />
-		<method name="setDiffusion(S)V" />
-		<method name="setParameterListener(Landroid/media/audiofx/EnvironmentalReverb$OnParameterChangeListener;)V" />
-		<method name="setProperties(Landroid/media/audiofx/EnvironmentalReverb$Settings;)V" />
-		<method name="setReflectionsDelay(I)V" />
-		<method name="setReflectionsLevel(S)V" />
-		<method name="setReverbDelay(I)V" />
-		<method name="setReverbLevel(S)V" />
-		<method name="setRoomHFLevel(S)V" />
-		<method name="setRoomLevel(S)V" />
-		<field name="PARAM_DECAY_HF_RATIO" />
-		<field name="PARAM_DECAY_TIME" />
-		<field name="PARAM_DENSITY" />
-		<field name="PARAM_DIFFUSION" />
-		<field name="PARAM_REFLECTIONS_DELAY" />
-		<field name="PARAM_REFLECTIONS_LEVEL" />
-		<field name="PARAM_REVERB_DELAY" />
-		<field name="PARAM_REVERB_LEVEL" />
-		<field name="PARAM_ROOM_HF_LEVEL" />
-		<field name="PARAM_ROOM_LEVEL" />
-	</class>
-	<class name="android/media/audiofx/EnvironmentalReverb$OnParameterChangeListener" since="9">
-		<extends name="java/lang/Object" />
-		<method name="onParameterChange(Landroid/media/audiofx/EnvironmentalReverb;III)V" />
-	</class>
-	<class name="android/media/audiofx/EnvironmentalReverb$Settings" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<field name="decayHFRatio" />
-		<field name="decayTime" />
-		<field name="density" />
-		<field name="diffusion" />
-		<field name="reflectionsDelay" />
-		<field name="reflectionsLevel" />
-		<field name="reverbDelay" />
-		<field name="reverbLevel" />
-		<field name="roomHFLevel" />
-		<field name="roomLevel" />
-	</class>
-	<class name="android/media/audiofx/Equalizer" since="9">
-		<extends name="android/media/audiofx/AudioEffect" />
-		<method name="&lt;init>(II)V" />
-		<method name="getBand(I)S" />
-		<method name="getBandFreqRange(S)[I" />
-		<method name="getBandLevel(S)S" />
-		<method name="getBandLevelRange()[S" />
-		<method name="getCenterFreq(S)I" />
-		<method name="getCurrentPreset()S" />
-		<method name="getNumberOfBands()S" />
-		<method name="getNumberOfPresets()S" />
-		<method name="getPresetName(S)Ljava/lang/String;" />
-		<method name="getProperties()Landroid/media/audiofx/Equalizer$Settings;" />
-		<method name="setBandLevel(SS)V" />
-		<method name="setParameterListener(Landroid/media/audiofx/Equalizer$OnParameterChangeListener;)V" />
-		<method name="setProperties(Landroid/media/audiofx/Equalizer$Settings;)V" />
-		<method name="usePreset(S)V" />
-		<field name="PARAM_BAND_FREQ_RANGE" />
-		<field name="PARAM_BAND_LEVEL" />
-		<field name="PARAM_CENTER_FREQ" />
-		<field name="PARAM_CURRENT_PRESET" />
-		<field name="PARAM_GET_BAND" />
-		<field name="PARAM_GET_NUM_OF_PRESETS" />
-		<field name="PARAM_GET_PRESET_NAME" />
-		<field name="PARAM_LEVEL_RANGE" />
-		<field name="PARAM_NUM_BANDS" />
-		<field name="PARAM_STRING_SIZE_MAX" />
-	</class>
-	<class name="android/media/audiofx/Equalizer$OnParameterChangeListener" since="9">
-		<extends name="java/lang/Object" />
-		<method name="onParameterChange(Landroid/media/audiofx/Equalizer;IIII)V" />
-	</class>
-	<class name="android/media/audiofx/Equalizer$Settings" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<field name="bandLevels" />
-		<field name="curPreset" />
-		<field name="numBands" />
-	</class>
-	<class name="android/media/audiofx/LoudnessEnhancer" since="19">
-		<extends name="android/media/audiofx/AudioEffect" />
-		<method name="&lt;init>(I)V" />
-		<method name="getTargetGain()F" />
-		<method name="setTargetGain(I)V" />
-		<field name="PARAM_TARGET_GAIN_MB" />
-	</class>
-	<class name="android/media/audiofx/NoiseSuppressor" since="16">
-		<extends name="android/media/audiofx/AudioEffect" />
-		<method name="&lt;init>()V" />
-		<method name="create(I)Landroid/media/audiofx/NoiseSuppressor;" />
-		<method name="isAvailable()Z" />
-	</class>
-	<class name="android/media/audiofx/PresetReverb" since="9">
-		<extends name="android/media/audiofx/AudioEffect" />
-		<method name="&lt;init>(II)V" />
-		<method name="getPreset()S" />
-		<method name="getProperties()Landroid/media/audiofx/PresetReverb$Settings;" />
-		<method name="setParameterListener(Landroid/media/audiofx/PresetReverb$OnParameterChangeListener;)V" />
-		<method name="setPreset(S)V" />
-		<method name="setProperties(Landroid/media/audiofx/PresetReverb$Settings;)V" />
-		<field name="PARAM_PRESET" />
-		<field name="PRESET_LARGEHALL" />
-		<field name="PRESET_LARGEROOM" />
-		<field name="PRESET_MEDIUMHALL" />
-		<field name="PRESET_MEDIUMROOM" />
-		<field name="PRESET_NONE" />
-		<field name="PRESET_PLATE" />
-		<field name="PRESET_SMALLROOM" />
-	</class>
-	<class name="android/media/audiofx/PresetReverb$OnParameterChangeListener" since="9">
-		<extends name="java/lang/Object" />
-		<method name="onParameterChange(Landroid/media/audiofx/PresetReverb;IIS)V" />
-	</class>
-	<class name="android/media/audiofx/PresetReverb$Settings" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<field name="preset" />
-	</class>
-	<class name="android/media/audiofx/Virtualizer" since="9">
-		<extends name="android/media/audiofx/AudioEffect" />
-		<method name="&lt;init>(II)V" />
-		<method name="getProperties()Landroid/media/audiofx/Virtualizer$Settings;" />
-		<method name="getRoundedStrength()S" />
-		<method name="getStrengthSupported()Z" />
-		<method name="setParameterListener(Landroid/media/audiofx/Virtualizer$OnParameterChangeListener;)V" />
-		<method name="setProperties(Landroid/media/audiofx/Virtualizer$Settings;)V" />
-		<method name="setStrength(S)V" />
-		<field name="PARAM_STRENGTH" />
-		<field name="PARAM_STRENGTH_SUPPORTED" />
-	</class>
-	<class name="android/media/audiofx/Virtualizer$OnParameterChangeListener" since="9">
-		<extends name="java/lang/Object" />
-		<method name="onParameterChange(Landroid/media/audiofx/Virtualizer;IIS)V" />
-	</class>
-	<class name="android/media/audiofx/Virtualizer$Settings" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<field name="strength" />
-	</class>
-	<class name="android/media/audiofx/Visualizer" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(I)V" />
-		<method name="getCaptureSize()I" />
-		<method name="getCaptureSizeRange()[I" />
-		<method name="getEnabled()Z" />
-		<method name="getFft([B)I" />
-		<method name="getMaxCaptureRate()I" />
-		<method name="getMeasurementMode()I" since="19" />
-		<method name="getMeasurementPeakRms(Landroid/media/audiofx/Visualizer$MeasurementPeakRms;)I" since="19" />
-		<method name="getSamplingRate()I" />
-		<method name="getScalingMode()I" since="16" />
-		<method name="getWaveForm([B)I" />
-		<method name="release()V" />
-		<method name="setCaptureSize(I)I" />
-		<method name="setDataCaptureListener(Landroid/media/audiofx/Visualizer$OnDataCaptureListener;IZZ)I" />
-		<method name="setEnabled(Z)I" />
-		<method name="setMeasurementMode(I)I" since="19" />
-		<method name="setScalingMode(I)I" since="16" />
-		<field name="ALREADY_EXISTS" />
-		<field name="ERROR" />
-		<field name="ERROR_BAD_VALUE" />
-		<field name="ERROR_DEAD_OBJECT" />
-		<field name="ERROR_INVALID_OPERATION" />
-		<field name="ERROR_NO_INIT" />
-		<field name="ERROR_NO_MEMORY" />
-		<field name="MEASUREMENT_MODE_NONE" since="19" />
-		<field name="MEASUREMENT_MODE_PEAK_RMS" since="19" />
-		<field name="SCALING_MODE_AS_PLAYED" since="16" />
-		<field name="SCALING_MODE_NORMALIZED" since="16" />
-		<field name="STATE_ENABLED" />
-		<field name="STATE_INITIALIZED" />
-		<field name="STATE_UNINITIALIZED" />
-		<field name="SUCCESS" />
-	</class>
-	<class name="android/media/audiofx/Visualizer$MeasurementPeakRms" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="mPeak" />
-		<field name="mRms" />
-	</class>
-	<class name="android/media/audiofx/Visualizer$OnDataCaptureListener" since="9">
-		<extends name="java/lang/Object" />
-		<method name="onFftDataCapture(Landroid/media/audiofx/Visualizer;[BI)V" />
-		<method name="onWaveFormDataCapture(Landroid/media/audiofx/Visualizer;[BI)V" />
-	</class>
-	<class name="android/media/effect/Effect" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="apply(IIII)V" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="release()V" />
-		<method name="setParameter(Ljava/lang/String;Ljava/lang/Object;)V" />
-		<method name="setUpdateListener(Landroid/media/effect/EffectUpdateListener;)V" />
-	</class>
-	<class name="android/media/effect/EffectContext" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="createWithCurrentGlContext()Landroid/media/effect/EffectContext;" />
-		<method name="getFactory()Landroid/media/effect/EffectFactory;" />
-		<method name="release()V" />
-	</class>
-	<class name="android/media/effect/EffectFactory" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="createEffect(Ljava/lang/String;)Landroid/media/effect/Effect;" />
-		<method name="isEffectSupported(Ljava/lang/String;)Z" />
-		<field name="EFFECT_AUTOFIX" />
-		<field name="EFFECT_BACKDROPPER" />
-		<field name="EFFECT_BITMAPOVERLAY" />
-		<field name="EFFECT_BLACKWHITE" />
-		<field name="EFFECT_BRIGHTNESS" />
-		<field name="EFFECT_CONTRAST" />
-		<field name="EFFECT_CROP" />
-		<field name="EFFECT_CROSSPROCESS" />
-		<field name="EFFECT_DOCUMENTARY" />
-		<field name="EFFECT_DUOTONE" />
-		<field name="EFFECT_FILLLIGHT" />
-		<field name="EFFECT_FISHEYE" />
-		<field name="EFFECT_FLIP" />
-		<field name="EFFECT_GRAIN" />
-		<field name="EFFECT_GRAYSCALE" />
-		<field name="EFFECT_LOMOISH" />
-		<field name="EFFECT_NEGATIVE" />
-		<field name="EFFECT_POSTERIZE" />
-		<field name="EFFECT_REDEYE" />
-		<field name="EFFECT_ROTATE" />
-		<field name="EFFECT_SATURATE" />
-		<field name="EFFECT_SEPIA" />
-		<field name="EFFECT_SHARPEN" />
-		<field name="EFFECT_STRAIGHTEN" />
-		<field name="EFFECT_TEMPERATURE" />
-		<field name="EFFECT_TINT" />
-		<field name="EFFECT_VIGNETTE" />
-	</class>
-	<class name="android/media/effect/EffectUpdateListener" since="14">
-		<extends name="java/lang/Object" />
-		<method name="onEffectUpdated(Landroid/media/effect/Effect;Ljava/lang/Object;)V" />
-	</class>
-	<class name="android/media/session/MediaController" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addCallback(Landroid/media/session/MediaController$Callback;)V" />
-		<method name="addCallback(Landroid/media/session/MediaController$Callback;Landroid/os/Handler;)V" />
-		<method name="dispatchMediaButtonEvent(Landroid/view/KeyEvent;)Z" />
-		<method name="fromToken(Landroid/media/session/MediaSessionToken;)Landroid/media/session/MediaController;" />
-		<method name="getMetadata()Landroid/media/MediaMetadata;" />
-		<method name="getPlaybackState()Landroid/media/session/PlaybackState;" />
-		<method name="getRatingType()I" />
-		<method name="getTransportControls()Landroid/media/session/MediaController$TransportControls;" />
-		<method name="removeCallback(Landroid/media/session/MediaController$Callback;)V" />
-		<method name="sendControlCommand(Ljava/lang/String;Landroid/os/Bundle;Landroid/os/ResultReceiver;)V" />
-	</class>
-	<class name="android/media/session/MediaController$Callback" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="onMetadataChanged(Landroid/media/MediaMetadata;)V" />
-		<method name="onPlaybackStateChanged(Landroid/media/session/PlaybackState;)V" />
-		<method name="onSessionEvent(Ljava/lang/String;Landroid/os/Bundle;)V" />
-	</class>
-	<class name="android/media/session/MediaController$TransportControls" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/media/session/MediaController;)V" />
-		<method name="fastForward()V" />
-		<method name="pause()V" />
-		<method name="play()V" />
-		<method name="rewind()V" />
-		<method name="seekTo(J)V" />
-		<method name="setRating(Landroid/media/Rating;)V" />
-		<method name="skipToNext()V" />
-		<method name="skipToPrevious()V" />
-		<method name="stop()V" />
-	</class>
-	<class name="android/media/session/MediaSession" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addCallback(Landroid/media/session/MediaSession$Callback;)V" />
-		<method name="addCallback(Landroid/media/session/MediaSession$Callback;Landroid/os/Handler;)V" />
-		<method name="addTransportControlsCallback(Landroid/media/session/MediaSession$TransportControlsCallback;)V" />
-		<method name="addTransportControlsCallback(Landroid/media/session/MediaSession$TransportControlsCallback;Landroid/os/Handler;)V" />
-		<method name="getSessionToken()Landroid/media/session/MediaSessionToken;" />
-		<method name="isActive()Z" />
-		<method name="release()V" />
-		<method name="removeCallback(Landroid/media/session/MediaSession$Callback;)V" />
-		<method name="removeTransportControlsCallback(Landroid/media/session/MediaSession$TransportControlsCallback;)V" />
-		<method name="sendSessionEvent(Ljava/lang/String;Landroid/os/Bundle;)V" />
-		<method name="setActive(Z)V" />
-		<method name="setFlags(I)V" />
-		<method name="setLaunchPendingIntent(Landroid/app/PendingIntent;)V" />
-		<method name="setMetadata(Landroid/media/MediaMetadata;)V" />
-		<method name="setPlaybackState(Landroid/media/session/PlaybackState;)V" />
-		<method name="setPlaybackToLocal(I)V" />
-		<method name="setPlaybackToRemote(Landroid/media/session/RemoteVolumeProvider;)V" />
-		<field name="FLAG_HANDLES_MEDIA_BUTTONS" />
-		<field name="FLAG_HANDLES_TRANSPORT_CONTROLS" />
-	</class>
-	<class name="android/media/session/MediaSession$Callback" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="onControlCommand(Ljava/lang/String;Landroid/os/Bundle;Landroid/os/ResultReceiver;)V" />
-		<method name="onMediaButtonEvent(Landroid/content/Intent;)V" />
-	</class>
-	<class name="android/media/session/MediaSession$TransportControlsCallback" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="onFastForward()V" />
-		<method name="onPause()V" />
-		<method name="onPlay()V" />
-		<method name="onRewind()V" />
-		<method name="onSeekTo(J)V" />
-		<method name="onSetRating(Landroid/media/Rating;)V" />
-		<method name="onSkipToNext()V" />
-		<method name="onSkipToPrevious()V" />
-		<method name="onStop()V" />
-	</class>
-	<class name="android/media/session/MediaSessionManager" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="createSession(Ljava/lang/String;)Landroid/media/session/MediaSession;" />
-	</class>
-	<class name="android/media/session/MediaSessionToken" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/media/session/PlaybackState" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/media/session/PlaybackState;)V" />
-		<method name="getActions()J" />
-		<method name="getBufferPosition()J" />
-		<method name="getErrorMessage()Ljava/lang/CharSequence;" />
-		<method name="getPlaybackRate()F" />
-		<method name="getPosition()J" />
-		<method name="getState()I" />
-		<method name="setActions(J)V" />
-		<method name="setBufferPosition(J)V" />
-		<method name="setErrorMessage(Ljava/lang/CharSequence;)V" />
-		<method name="setState(IJF)V" />
-		<field name="ACTION_FAST_FORWARD" />
-		<field name="ACTION_PAUSE" />
-		<field name="ACTION_PLAY" />
-		<field name="ACTION_PLAY_PAUSE" />
-		<field name="ACTION_REWIND" />
-		<field name="ACTION_SEEK_TO" />
-		<field name="ACTION_SET_RATING" />
-		<field name="ACTION_SKIP_TO_NEXT" />
-		<field name="ACTION_SKIP_TO_PREVIOUS" />
-		<field name="ACTION_STOP" />
-		<field name="CREATOR" />
-		<field name="PLAYBACK_POSITION_UNKNOWN" />
-		<field name="STATE_BUFFERING" />
-		<field name="STATE_ERROR" />
-		<field name="STATE_FAST_FORWARDING" />
-		<field name="STATE_NONE" />
-		<field name="STATE_PAUSED" />
-		<field name="STATE_PLAYING" />
-		<field name="STATE_REWINDING" />
-		<field name="STATE_SKIPPING_TO_NEXT" />
-		<field name="STATE_SKIPPING_TO_PREVIOUS" />
-		<field name="STATE_STOPPED" />
-	</class>
-	<class name="android/media/session/RemoteVolumeProvider" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(II)V" />
-		<method name="getMaxVolume()I" />
-		<method name="getVolumeControl()I" />
-		<method name="notifyVolumeChanged()V" />
-		<method name="onAdjustVolumeBy(I)V" />
-		<method name="onGetCurrentVolume()I" />
-		<method name="onSetVolumeTo(I)V" />
-		<field name="VOLUME_CONTROL_ABSOLUTE" />
-		<field name="VOLUME_CONTROL_FIXED" />
-		<field name="VOLUME_CONTROL_RELATIVE" />
-	</class>
-	<class name="android/media/tv/TvContract" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="buildChannelLogoUri(J)Landroid/net/Uri;" />
-		<method name="buildChannelLogoUri(Landroid/net/Uri;)Landroid/net/Uri;" />
-		<method name="buildChannelUri(J)Landroid/net/Uri;" />
-		<method name="buildChannelsUriForInput(Landroid/content/ComponentName;)Landroid/net/Uri;" />
-		<method name="buildChannelsUriForInput(Landroid/content/ComponentName;Z)Landroid/net/Uri;" />
-		<method name="buildProgramUri(J)Landroid/net/Uri;" />
-		<method name="buildProgramsUriForChannel(Landroid/net/Uri;)Landroid/net/Uri;" />
-		<method name="buildProgramsUriForChannel(Landroid/net/Uri;JJ)Landroid/net/Uri;" />
-		<field name="AUTHORITY" />
-	</class>
-	<class name="android/media/tv/TvContract$BaseTvColumns" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<field name="COLUMN_PACKAGE_NAME" />
-	</class>
-	<class name="android/media/tv/TvContract$Channels" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="android/media/tv/TvContract$BaseTvColumns" />
-		<method name="&lt;init>()V" />
-		<field name="COLUMN_BROWSABLE" />
-		<field name="COLUMN_DESCRIPTION" />
-		<field name="COLUMN_DISPLAY_NAME" />
-		<field name="COLUMN_DISPLAY_NUMBER" />
-		<field name="COLUMN_INTERNAL_PROVIDER_DATA" />
-		<field name="COLUMN_ORIGINAL_NETWORK_ID" />
-		<field name="COLUMN_SEARCHABLE" />
-		<field name="COLUMN_SERVICE_ID" />
-		<field name="COLUMN_SERVICE_NAME" />
-		<field name="COLUMN_SERVICE_TYPE" />
-		<field name="COLUMN_TRANSPORT_STREAM_ID" />
-		<field name="COLUMN_TYPE" />
-		<field name="COLUMN_VERSION_NUMBER" />
-		<field name="CONTENT_ITEM_TYPE" />
-		<field name="CONTENT_TYPE" />
-		<field name="CONTENT_URI" />
-		<field name="SERVICE_TYPE_AUDIO" />
-		<field name="SERVICE_TYPE_AUDIO_VIDEO" />
-		<field name="SERVICE_TYPE_OTHER" />
-		<field name="TYPE_1SEG" />
-		<field name="TYPE_ATSC_C" />
-		<field name="TYPE_ATSC_M_H" />
-		<field name="TYPE_ATSC_T" />
-		<field name="TYPE_CMMB" />
-		<field name="TYPE_DTMB" />
-		<field name="TYPE_DVB_C" />
-		<field name="TYPE_DVB_C2" />
-		<field name="TYPE_DVB_H" />
-		<field name="TYPE_DVB_S" />
-		<field name="TYPE_DVB_S2" />
-		<field name="TYPE_DVB_SH" />
-		<field name="TYPE_DVB_T" />
-		<field name="TYPE_DVB_T2" />
-		<field name="TYPE_ISDB_C" />
-		<field name="TYPE_ISDB_S" />
-		<field name="TYPE_ISDB_T" />
-		<field name="TYPE_ISDB_TB" />
-		<field name="TYPE_OTHER" />
-		<field name="TYPE_PASSTHROUGH" />
-		<field name="TYPE_S_DMB" />
-		<field name="TYPE_T_DMB" />
-	</class>
-	<class name="android/media/tv/TvContract$Channels$Logo" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_DIRECTORY" />
-	</class>
-	<class name="android/media/tv/TvContract$Programs" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="android/media/tv/TvContract$BaseTvColumns" />
-		<method name="&lt;init>()V" />
-		<field name="COLUMN_AUDIO_LANGUAGE" />
-		<field name="COLUMN_BROADCAST_GENRE" />
-		<field name="COLUMN_CANONICAL_GENRE" />
-		<field name="COLUMN_CHANNEL_ID" />
-		<field name="COLUMN_END_TIME_UTC_MILLIS" />
-		<field name="COLUMN_INTERNAL_PROVIDER_DATA" />
-		<field name="COLUMN_LONG_DESCRIPTION" />
-		<field name="COLUMN_POSTER_ART_URI" />
-		<field name="COLUMN_SHORT_DESCRIPTION" />
-		<field name="COLUMN_START_TIME_UTC_MILLIS" />
-		<field name="COLUMN_THUMBNAIL_URI" />
-		<field name="COLUMN_TITLE" />
-		<field name="COLUMN_VERSION_NUMBER" />
-		<field name="CONTENT_ITEM_TYPE" />
-		<field name="CONTENT_TYPE" />
-		<field name="CONTENT_URI" />
-	</class>
-	<class name="android/media/tv/TvContract$Programs$Genres" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="decode(Ljava/lang/String;)[Ljava/lang/String;" />
-		<method name="encode([Ljava/lang/String;)Ljava/lang/String;" />
-		<field name="ANIMAL_WILDLIFE" />
-		<field name="COMEDY" />
-		<field name="DRAMA" />
-		<field name="EDUCATION" />
-		<field name="FAMILY_KIDS" />
-		<field name="GAMING" />
-		<field name="MOVIES" />
-		<field name="NEWS" />
-		<field name="SHOPPING" />
-		<field name="SPORTS" />
-		<field name="TRAVEL" />
-	</class>
-	<class name="android/media/tv/TvInputInfo" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getId()Ljava/lang/String;" />
-		<method name="getIntentForSettingsActivity()Landroid/content/Intent;" />
-		<method name="getIntentForSetupActivity()Landroid/content/Intent;" />
-		<method name="getServiceInfo()Landroid/content/pm/ServiceInfo;" />
-		<method name="getType()I" />
-		<method name="loadLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;" />
-		<field name="EXTRA_SERVICE_NAME" />
-		<field name="TYPE_HDMI" />
-		<field name="TYPE_PASSTHROUGH" />
-		<field name="TYPE_TUNER" />
-		<field name="TYPE_VIRTUAL" />
-	</class>
-	<class name="android/media/tv/TvInputManager" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getAvailability(Ljava/lang/String;)Z" />
-		<method name="getTvInputList()Ljava/util/List;" />
-	</class>
-	<class name="android/media/tv/TvInputManager$TvInputListener" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="onAvailabilityChanged(Ljava/lang/String;Z)V" />
-	</class>
-	<class name="android/media/tv/TvInputService" since="21">
-		<extends name="android/app/Service" />
-		<method name="&lt;init>()V" />
-		<method name="onCreateSession()Landroid/media/tv/TvInputService$Session;" />
-		<field name="SERVICE_INTERFACE" />
-		<field name="SERVICE_META_DATA" />
-	</class>
-	<class name="android/media/tv/TvInputService$Session" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="android/view/KeyEvent$Callback" />
-		<method name="&lt;init>(Landroid/media/tv/TvInputService;)V" />
-		<method name="onCreateOverlayView()Landroid/view/View;" />
-		<method name="onGenericMotionEvent(Landroid/view/MotionEvent;)Z" />
-		<method name="onRelease()V" />
-		<method name="onSetStreamVolume(F)V" />
-		<method name="onSetSurface(Landroid/view/Surface;)Z" />
-		<method name="onTouchEvent(Landroid/view/MotionEvent;)Z" />
-		<method name="onTrackballEvent(Landroid/view/MotionEvent;)Z" />
-		<method name="onTune(Landroid/net/Uri;)Z" />
-		<method name="setOverlayViewEnabled(Z)V" />
-	</class>
-	<class name="android/media/tv/TvView" since="21">
-		<extends name="android/view/ViewGroup" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="dispatchUnhandledInputEvent(Landroid/view/InputEvent;)Z" />
-		<method name="onUnhandledInputEvent(Landroid/view/InputEvent;)Z" />
-		<method name="reset()V" />
-		<method name="setOnUnhandledInputEventListener(Landroid/media/tv/TvView$OnUnhandledInputEventListener;)V" />
-		<method name="setStreamVolume(F)V" />
-		<method name="setTvInputListener(Landroid/media/tv/TvView$TvInputListener;)V" />
-		<method name="tune(Ljava/lang/String;Landroid/net/Uri;)V" />
-		<field name="ERROR_BUSY" />
-		<field name="ERROR_TV_INPUT_DISCONNECTED" />
-	</class>
-	<class name="android/media/tv/TvView$OnUnhandledInputEventListener" since="21">
-		<extends name="java/lang/Object" />
-		<method name="onUnhandledInputEvent(Landroid/view/InputEvent;)Z" />
-	</class>
-	<class name="android/media/tv/TvView$TvInputListener" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="onError(Ljava/lang/String;I)V" />
-	</class>
-	<class name="android/mtp/MtpConstants" since="12">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="isAbstractObject(I)Z" />
-		<field name="ASSOCIATION_TYPE_GENERIC_FOLDER" />
-		<field name="FORMAT_3GP_CONTAINER" />
-		<field name="FORMAT_AAC" />
-		<field name="FORMAT_ABSTRACT_AUDIO_ALBUM" />
-		<field name="FORMAT_ABSTRACT_AUDIO_PLAYLIST" />
-		<field name="FORMAT_ABSTRACT_AV_PLAYLIST" />
-		<field name="FORMAT_ABSTRACT_DOCUMENT" />
-		<field name="FORMAT_ABSTRACT_IMAGE_ALBUM" />
-		<field name="FORMAT_ABSTRACT_MEDIACAST" />
-		<field name="FORMAT_ABSTRACT_MULTIMEDIA_ALBUM" />
-		<field name="FORMAT_ABSTRACT_VIDEO_ALBUM" />
-		<field name="FORMAT_ABSTRACT_VIDEO_PLAYLIST" />
-		<field name="FORMAT_AIFF" />
-		<field name="FORMAT_ASF" />
-		<field name="FORMAT_ASSOCIATION" />
-		<field name="FORMAT_ASX_PLAYLIST" />
-		<field name="FORMAT_AUDIBLE" />
-		<field name="FORMAT_AVI" />
-		<field name="FORMAT_BMP" />
-		<field name="FORMAT_DPOF" />
-		<field name="FORMAT_EXECUTABLE" />
-		<field name="FORMAT_EXIF_JPEG" />
-		<field name="FORMAT_FLAC" />
-		<field name="FORMAT_GIF" />
-		<field name="FORMAT_HTML" />
-		<field name="FORMAT_JFIF" />
-		<field name="FORMAT_JP2" />
-		<field name="FORMAT_JPX" />
-		<field name="FORMAT_M3U_PLAYLIST" />
-		<field name="FORMAT_MP2" />
-		<field name="FORMAT_MP3" />
-		<field name="FORMAT_MP4_CONTAINER" />
-		<field name="FORMAT_MPEG" />
-		<field name="FORMAT_MPL_PLAYLIST" />
-		<field name="FORMAT_MS_EXCEL_SPREADSHEET" />
-		<field name="FORMAT_MS_POWERPOINT_PRESENTATION" />
-		<field name="FORMAT_MS_WORD_DOCUMENT" />
-		<field name="FORMAT_OGG" />
-		<field name="FORMAT_PICT" />
-		<field name="FORMAT_PLS_PLAYLIST" />
-		<field name="FORMAT_PNG" />
-		<field name="FORMAT_SCRIPT" />
-		<field name="FORMAT_TEXT" />
-		<field name="FORMAT_TIFF" />
-		<field name="FORMAT_TIFF_EP" />
-		<field name="FORMAT_UNDEFINED" />
-		<field name="FORMAT_UNDEFINED_AUDIO" />
-		<field name="FORMAT_UNDEFINED_COLLECTION" />
-		<field name="FORMAT_UNDEFINED_DOCUMENT" />
-		<field name="FORMAT_UNDEFINED_FIRMWARE" />
-		<field name="FORMAT_UNDEFINED_VIDEO" />
-		<field name="FORMAT_WAV" />
-		<field name="FORMAT_WINDOWS_IMAGE_FORMAT" />
-		<field name="FORMAT_WMA" />
-		<field name="FORMAT_WMV" />
-		<field name="FORMAT_WPL_PLAYLIST" />
-		<field name="FORMAT_XML_DOCUMENT" />
-		<field name="PROTECTION_STATUS_NONE" />
-		<field name="PROTECTION_STATUS_NON_TRANSFERABLE_DATA" />
-		<field name="PROTECTION_STATUS_READ_ONLY" />
-		<field name="PROTECTION_STATUS_READ_ONLY_DATA" />
-	</class>
-	<class name="android/mtp/MtpDevice" since="12">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/hardware/usb/UsbDevice;)V" />
-		<method name="close()V" />
-		<method name="deleteObject(I)Z" />
-		<method name="getDeviceId()I" />
-		<method name="getDeviceInfo()Landroid/mtp/MtpDeviceInfo;" />
-		<method name="getDeviceName()Ljava/lang/String;" />
-		<method name="getObject(II)[B" />
-		<method name="getObjectHandles(III)[I" />
-		<method name="getObjectInfo(I)Landroid/mtp/MtpObjectInfo;" />
-		<method name="getParent(I)J" />
-		<method name="getStorageId(I)J" />
-		<method name="getStorageIds()[I" />
-		<method name="getStorageInfo(I)Landroid/mtp/MtpStorageInfo;" />
-		<method name="getThumbnail(I)[B" />
-		<method name="importFile(ILjava/lang/String;)Z" />
-		<method name="open(Landroid/hardware/usb/UsbDeviceConnection;)Z" />
-	</class>
-	<class name="android/mtp/MtpDeviceInfo" since="12">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getManufacturer()Ljava/lang/String;" />
-		<method name="getModel()Ljava/lang/String;" />
-		<method name="getSerialNumber()Ljava/lang/String;" />
-		<method name="getVersion()Ljava/lang/String;" />
-	</class>
-	<class name="android/mtp/MtpObjectInfo" since="12">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getAssociationDesc()I" />
-		<method name="getAssociationType()I" />
-		<method name="getCompressedSize()I" />
-		<method name="getDateCreated()J" />
-		<method name="getDateModified()J" />
-		<method name="getFormat()I" />
-		<method name="getImagePixDepth()I" />
-		<method name="getImagePixHeight()I" />
-		<method name="getImagePixWidth()I" />
-		<method name="getKeywords()Ljava/lang/String;" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getObjectHandle()I" />
-		<method name="getParent()I" />
-		<method name="getProtectionStatus()I" />
-		<method name="getSequenceNumber()I" />
-		<method name="getStorageId()I" />
-		<method name="getThumbCompressedSize()I" />
-		<method name="getThumbFormat()I" />
-		<method name="getThumbPixHeight()I" />
-		<method name="getThumbPixWidth()I" />
-	</class>
-	<class name="android/mtp/MtpStorageInfo" since="12">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getDescription()Ljava/lang/String;" />
-		<method name="getFreeSpace()J" />
-		<method name="getMaxCapacity()J" />
-		<method name="getStorageId()I" />
-		<method name="getVolumeIdentifier()Ljava/lang/String;" />
-	</class>
-	<class name="android/net/ConnectivityManager" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getActiveNetworkInfo()Landroid/net/NetworkInfo;" />
-		<method name="getAllNetworkInfo()[Landroid/net/NetworkInfo;" />
-		<method name="getBackgroundDataSetting()Z" since="3" />
-		<method name="getLinkProperties(Landroid/net/Network;)Landroid/net/LinkProperties;" since="21" />
-		<method name="getNetworkCapabilities(Landroid/net/Network;)Landroid/net/NetworkCapabilities;" since="21" />
-		<method name="getNetworkInfo(I)Landroid/net/NetworkInfo;" />
-		<method name="getNetworkPreference()I" />
-		<method name="getProcessDefaultNetwork()Landroid/net/Network;" since="21" />
-		<method name="isActiveNetworkMetered()Z" since="16" />
-		<method name="isDefaultNetworkActive()Z" since="21" />
-		<method name="isNetworkTypeValid(I)Z" />
-		<method name="registerDefaultNetworkActiveListener(Landroid/net/ConnectivityManager$OnNetworkActiveListener;)V" since="21" />
-		<method name="registerNetworkCallback(Landroid/net/NetworkRequest;Landroid/net/ConnectivityManager$NetworkCallback;)V" since="21" />
-		<method name="reportBadNetwork(Landroid/net/Network;)V" since="21" />
-		<method name="requestNetwork(Landroid/net/NetworkRequest;Landroid/net/ConnectivityManager$NetworkCallback;)V" since="21" />
-		<method name="requestRouteToHost(II)Z" />
-		<method name="setNetworkPreference(I)V" />
-		<method name="setProcessDefaultNetwork(Landroid/net/Network;)Z" since="21" />
-		<method name="startUsingNetworkFeature(ILjava/lang/String;)I" />
-		<method name="stopUsingNetworkFeature(ILjava/lang/String;)I" />
-		<method name="unregisterDefaultNetworkActiveListener(Landroid/net/ConnectivityManager$OnNetworkActiveListener;)V" since="21" />
-		<method name="unregisterNetworkCallback(Landroid/net/ConnectivityManager$NetworkCallback;)V" since="21" />
-		<field name="ACTION_BACKGROUND_DATA_SETTING_CHANGED" since="3" />
-		<field name="CONNECTIVITY_ACTION" />
-		<field name="DEFAULT_NETWORK_PREFERENCE" />
-		<field name="EXTRA_EXTRA_INFO" />
-		<field name="EXTRA_IS_FAILOVER" />
-		<field name="EXTRA_NETWORK_INFO" />
-		<field name="EXTRA_NETWORK_TYPE" since="17" />
-		<field name="EXTRA_NO_CONNECTIVITY" />
-		<field name="EXTRA_OTHER_NETWORK_INFO" />
-		<field name="EXTRA_REASON" />
-		<field name="TYPE_BLUETOOTH" since="13" />
-		<field name="TYPE_DUMMY" since="14" />
-		<field name="TYPE_ETHERNET" since="13" />
-		<field name="TYPE_MOBILE" />
-		<field name="TYPE_MOBILE_DUN" since="8" />
-		<field name="TYPE_MOBILE_HIPRI" since="8" />
-		<field name="TYPE_MOBILE_MMS" since="8" />
-		<field name="TYPE_MOBILE_SUPL" since="8" />
-		<field name="TYPE_WIFI" />
-		<field name="TYPE_WIMAX" since="8" />
-	</class>
-	<class name="android/net/ConnectivityManager$NetworkCallback" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="onAvailable(Landroid/net/Network;)V" />
-		<method name="onCapabilitiesChanged(Landroid/net/Network;Landroid/net/NetworkCapabilities;)V" />
-		<method name="onLinkPropertiesChanged(Landroid/net/Network;Landroid/net/LinkProperties;)V" />
-		<method name="onLosing(Landroid/net/Network;I)V" />
-		<method name="onLost(Landroid/net/Network;)V" />
-	</class>
-	<class name="android/net/ConnectivityManager$OnNetworkActiveListener" since="21">
-		<extends name="java/lang/Object" />
-		<method name="onNetworkActive()V" />
-	</class>
-	<class name="android/net/Credentials" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(III)V" />
-		<method name="getGid()I" />
-		<method name="getPid()I" />
-		<method name="getUid()I" />
-	</class>
-	<class name="android/net/DhcpInfo" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<field name="dns1" />
-		<field name="dns2" />
-		<field name="gateway" />
-		<field name="ipAddress" />
-		<field name="leaseDuration" />
-		<field name="netmask" />
-		<field name="serverAddress" />
-	</class>
-	<class name="android/net/IpPrefix" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getAddress()Ljava/net/InetAddress;" />
-		<method name="getPrefixLength()I" />
-		<method name="getRawAddress()[B" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/net/LinkAddress" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getAddress()Ljava/net/InetAddress;" />
-		<method name="getFlags()I" />
-		<method name="getPrefixLength()I" />
-		<method name="getScope()I" />
-	</class>
-	<class name="android/net/LinkProperties" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getDnsServers()Ljava/util/List;" />
-		<method name="getDomains()Ljava/lang/String;" />
-		<method name="getHttpProxy()Landroid/net/ProxyInfo;" />
-		<method name="getInterfaceName()Ljava/lang/String;" />
-		<method name="getLinkAddresses()Ljava/util/List;" />
-		<method name="getRoutes()Ljava/util/List;" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/net/LocalServerSocket" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/io/FileDescriptor;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="accept()Landroid/net/LocalSocket;" />
-		<method name="close()V" />
-		<method name="getFileDescriptor()Ljava/io/FileDescriptor;" />
-		<method name="getLocalSocketAddress()Landroid/net/LocalSocketAddress;" />
-	</class>
-	<class name="android/net/LocalSocket" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Closeable" since="17" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" since="19" />
-		<method name="bind(Landroid/net/LocalSocketAddress;)V" />
-		<method name="close()V" />
-		<method name="connect(Landroid/net/LocalSocketAddress;)V" />
-		<method name="connect(Landroid/net/LocalSocketAddress;I)V" />
-		<method name="getAncillaryFileDescriptors()[Ljava/io/FileDescriptor;" />
-		<method name="getFileDescriptor()Ljava/io/FileDescriptor;" />
-		<method name="getInputStream()Ljava/io/InputStream;" />
-		<method name="getLocalSocketAddress()Landroid/net/LocalSocketAddress;" />
-		<method name="getOutputStream()Ljava/io/OutputStream;" />
-		<method name="getPeerCredentials()Landroid/net/Credentials;" />
-		<method name="getReceiveBufferSize()I" />
-		<method name="getRemoteSocketAddress()Landroid/net/LocalSocketAddress;" />
-		<method name="getSendBufferSize()I" />
-		<method name="getSoTimeout()I" />
-		<method name="isBound()Z" />
-		<method name="isClosed()Z" />
-		<method name="isConnected()Z" />
-		<method name="isInputShutdown()Z" />
-		<method name="isOutputShutdown()Z" />
-		<method name="setFileDescriptorsForSend([Ljava/io/FileDescriptor;)V" />
-		<method name="setReceiveBufferSize(I)V" />
-		<method name="setSendBufferSize(I)V" />
-		<method name="setSoTimeout(I)V" />
-		<method name="shutdownInput()V" />
-		<method name="shutdownOutput()V" />
-		<field name="SOCKET_DGRAM" since="19" />
-		<field name="SOCKET_SEQPACKET" since="19" />
-		<field name="SOCKET_STREAM" since="19" />
-	</class>
-	<class name="android/net/LocalSocketAddress" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Landroid/net/LocalSocketAddress$Namespace;)V" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getNamespace()Landroid/net/LocalSocketAddress$Namespace;" />
-	</class>
-	<class name="android/net/LocalSocketAddress$Namespace" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/net/LocalSocketAddress$Namespace;" />
-		<method name="values()[Landroid/net/LocalSocketAddress$Namespace;" />
-		<field name="ABSTRACT" />
-		<field name="FILESYSTEM" />
-		<field name="RESERVED" />
-	</class>
-	<class name="android/net/MailTo" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getBody()Ljava/lang/String;" />
-		<method name="getCc()Ljava/lang/String;" />
-		<method name="getHeaders()Ljava/util/Map;" />
-		<method name="getSubject()Ljava/lang/String;" />
-		<method name="getTo()Ljava/lang/String;" />
-		<method name="isMailTo(Ljava/lang/String;)Z" />
-		<method name="parse(Ljava/lang/String;)Landroid/net/MailTo;" />
-		<field name="MAILTO_SCHEME" />
-	</class>
-	<class name="android/net/Network" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getAllByName(Ljava/lang/String;)[Ljava/net/InetAddress;" />
-		<method name="getByName(Ljava/lang/String;)Ljava/net/InetAddress;" />
-		<method name="getSocketFactory()Ljavax/net/SocketFactory;" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/net/NetworkCapabilities" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(Landroid/net/NetworkCapabilities;)V" />
-		<method name="getLinkDownstreamBandwidthKbps()I" />
-		<method name="getLinkUpstreamBandwidthKbps()I" />
-		<method name="hasCapability(I)Z" />
-		<method name="hasTransport(I)Z" />
-		<field name="CREATOR" />
-		<field name="NET_CAPABILITY_CBS" />
-		<field name="NET_CAPABILITY_DUN" />
-		<field name="NET_CAPABILITY_EIMS" />
-		<field name="NET_CAPABILITY_FOTA" />
-		<field name="NET_CAPABILITY_IA" />
-		<field name="NET_CAPABILITY_IMS" />
-		<field name="NET_CAPABILITY_INTERNET" />
-		<field name="NET_CAPABILITY_MMS" />
-		<field name="NET_CAPABILITY_NOT_METERED" />
-		<field name="NET_CAPABILITY_NOT_RESTRICTED" />
-		<field name="NET_CAPABILITY_RCS" />
-		<field name="NET_CAPABILITY_SUPL" />
-		<field name="NET_CAPABILITY_WIFI_P2P" />
-		<field name="NET_CAPABILITY_XCAP" />
-		<field name="TRANSPORT_BLUETOOTH" />
-		<field name="TRANSPORT_CELLULAR" />
-		<field name="TRANSPORT_ETHERNET" />
-		<field name="TRANSPORT_WIFI" />
-	</class>
-	<class name="android/net/NetworkInfo" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" since="3" />
-		<method name="&lt;init>(I)V" />
-		<method name="getDetailedState()Landroid/net/NetworkInfo$DetailedState;" />
-		<method name="getExtraInfo()Ljava/lang/String;" />
-		<method name="getReason()Ljava/lang/String;" />
-		<method name="getState()Landroid/net/NetworkInfo$State;" />
-		<method name="getSubtype()I" since="3" />
-		<method name="getSubtypeName()Ljava/lang/String;" since="3" />
-		<method name="getType()I" />
-		<method name="getTypeName()Ljava/lang/String;" />
-		<method name="isAvailable()Z" />
-		<method name="isConnected()Z" />
-		<method name="isConnectedOrConnecting()Z" />
-		<method name="isFailover()Z" />
-		<method name="isRoaming()Z" since="3" />
-	</class>
-	<class name="android/net/NetworkInfo$DetailedState" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/net/NetworkInfo$DetailedState;" />
-		<method name="values()[Landroid/net/NetworkInfo$DetailedState;" />
-		<field name="AUTHENTICATING" />
-		<field name="BLOCKED" since="14" />
-		<field name="CAPTIVE_PORTAL_CHECK" since="17" />
-		<field name="CONNECTED" />
-		<field name="CONNECTING" />
-		<field name="DISCONNECTED" />
-		<field name="DISCONNECTING" />
-		<field name="FAILED" />
-		<field name="IDLE" />
-		<field name="OBTAINING_IPADDR" />
-		<field name="SCANNING" />
-		<field name="SUSPENDED" />
-		<field name="VERIFYING_POOR_LINK" since="16" />
-	</class>
-	<class name="android/net/NetworkInfo$State" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/net/NetworkInfo$State;" />
-		<method name="values()[Landroid/net/NetworkInfo$State;" />
-		<field name="CONNECTED" />
-		<field name="CONNECTING" />
-		<field name="DISCONNECTED" />
-		<field name="DISCONNECTING" />
-		<field name="SUSPENDED" />
-		<field name="UNKNOWN" />
-	</class>
-	<class name="android/net/NetworkRequest" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/net/NetworkRequest$Builder" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addCapability(I)Landroid/net/NetworkRequest$Builder;" />
-		<method name="addTransportType(I)Landroid/net/NetworkRequest$Builder;" />
-		<method name="build()Landroid/net/NetworkRequest;" />
-		<method name="removeCapability(I)Landroid/net/NetworkRequest$Builder;" />
-		<method name="removeTransportType(I)Landroid/net/NetworkRequest$Builder;" />
-	</class>
-	<class name="android/net/ParseException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-		<field name="response" />
-	</class>
-	<class name="android/net/Proxy" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getDefaultHost()Ljava/lang/String;" />
-		<method name="getDefaultPort()I" />
-		<method name="getHost(Landroid/content/Context;)Ljava/lang/String;" />
-		<method name="getPort(Landroid/content/Context;)I" />
-		<field name="EXTRA_PROXY_INFO" since="21" />
-		<field name="PROXY_CHANGE_ACTION" />
-	</class>
-	<class name="android/net/ProxyInfo" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="buildDirectProxy(Ljava/lang/String;I)Landroid/net/ProxyInfo;" />
-		<method name="buildDirectProxy(Ljava/lang/String;ILjava/util/List;)Landroid/net/ProxyInfo;" />
-		<method name="buildPacProxy(Landroid/net/Uri;)Landroid/net/ProxyInfo;" />
-		<method name="getExclusionList()[Ljava/lang/String;" />
-		<method name="getHost()Ljava/lang/String;" />
-		<method name="getPacFileUrl()Landroid/net/Uri;" />
-		<method name="getPort()I" />
-	</class>
-	<class name="android/net/RouteInfo" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getDestination()Landroid/net/IpPrefix;" />
-		<method name="getGateway()Ljava/net/InetAddress;" />
-		<method name="getInterface()Ljava/lang/String;" />
-		<method name="isDefaultRoute()Z" />
-		<method name="matches(Ljava/net/InetAddress;)Z" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/net/SSLCertificateSocketFactory" since="1">
-		<extends name="javax/net/ssl/SSLSocketFactory" />
-		<method name="&lt;init>(I)V" />
-		<method name="getDefault(I)Ljavax/net/SocketFactory;" />
-		<method name="getDefault(ILandroid/net/SSLSessionCache;)Ljavax/net/ssl/SSLSocketFactory;" since="8" />
-		<method name="getHttpSocketFactory(ILandroid/net/SSLSessionCache;)Lorg/apache/http/conn/ssl/SSLSocketFactory;" since="8" />
-		<method name="getInsecure(ILandroid/net/SSLSessionCache;)Ljavax/net/ssl/SSLSocketFactory;" since="8" />
-		<method name="getNpnSelectedProtocol(Ljava/net/Socket;)[B" since="16" />
-		<method name="setHostname(Ljava/net/Socket;Ljava/lang/String;)V" since="17" />
-		<method name="setKeyManagers([Ljavax/net/ssl/KeyManager;)V" since="14" />
-		<method name="setNpnProtocols([[B)V" since="16" />
-		<method name="setTrustManagers([Ljavax/net/ssl/TrustManager;)V" since="14" />
-		<method name="setUseSessionTickets(Ljava/net/Socket;Z)V" since="17" />
-	</class>
-	<class name="android/net/SSLSessionCache" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Ljava/io/File;)V" />
-	</class>
-	<class name="android/net/TrafficStats" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="clearThreadStatsTag()V" since="14" />
-		<method name="getMobileRxBytes()J" />
-		<method name="getMobileRxPackets()J" />
-		<method name="getMobileTxBytes()J" />
-		<method name="getMobileTxPackets()J" />
-		<method name="getThreadStatsTag()I" since="14" />
-		<method name="getTotalRxBytes()J" />
-		<method name="getTotalRxPackets()J" />
-		<method name="getTotalTxBytes()J" />
-		<method name="getTotalTxPackets()J" />
-		<method name="getUidRxBytes(I)J" />
-		<method name="getUidRxPackets(I)J" since="12" />
-		<method name="getUidTcpRxBytes(I)J" since="12" />
-		<method name="getUidTcpRxSegments(I)J" since="12" />
-		<method name="getUidTcpTxBytes(I)J" since="12" />
-		<method name="getUidTcpTxSegments(I)J" since="12" />
-		<method name="getUidTxBytes(I)J" />
-		<method name="getUidTxPackets(I)J" since="12" />
-		<method name="getUidUdpRxBytes(I)J" since="12" />
-		<method name="getUidUdpRxPackets(I)J" since="12" />
-		<method name="getUidUdpTxBytes(I)J" since="12" />
-		<method name="getUidUdpTxPackets(I)J" since="12" />
-		<method name="incrementOperationCount(I)V" since="14" />
-		<method name="incrementOperationCount(II)V" since="14" />
-		<method name="setThreadStatsTag(I)V" since="14" />
-		<method name="tagSocket(Ljava/net/Socket;)V" since="14" />
-		<method name="untagSocket(Ljava/net/Socket;)V" since="14" />
-		<field name="UNSUPPORTED" />
-	</class>
-	<class name="android/net/Uri" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<implements name="java/lang/Comparable" />
-		<method name="&lt;init>()V" />
-		<method name="buildUpon()Landroid/net/Uri$Builder;" />
-		<method name="compareTo(Landroid/net/Uri;)I" />
-		<method name="decode(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="encode(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="fromFile(Ljava/io/File;)Landroid/net/Uri;" />
-		<method name="fromParts(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri;" />
-		<method name="getAuthority()Ljava/lang/String;" />
-		<method name="getBooleanQueryParameter(Ljava/lang/String;Z)Z" since="11" />
-		<method name="getEncodedAuthority()Ljava/lang/String;" />
-		<method name="getEncodedFragment()Ljava/lang/String;" />
-		<method name="getEncodedPath()Ljava/lang/String;" />
-		<method name="getEncodedQuery()Ljava/lang/String;" />
-		<method name="getEncodedSchemeSpecificPart()Ljava/lang/String;" />
-		<method name="getEncodedUserInfo()Ljava/lang/String;" />
-		<method name="getFragment()Ljava/lang/String;" />
-		<method name="getHost()Ljava/lang/String;" />
-		<method name="getLastPathSegment()Ljava/lang/String;" />
-		<method name="getPath()Ljava/lang/String;" />
-		<method name="getPathSegments()Ljava/util/List;" />
-		<method name="getPort()I" />
-		<method name="getQuery()Ljava/lang/String;" />
-		<method name="getQueryParameter(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getQueryParameterNames()Ljava/util/Set;" since="11" />
-		<method name="getQueryParameters(Ljava/lang/String;)Ljava/util/List;" />
-		<method name="getScheme()Ljava/lang/String;" />
-		<method name="getSchemeSpecificPart()Ljava/lang/String;" />
-		<method name="getUserInfo()Ljava/lang/String;" />
-		<method name="isAbsolute()Z" />
-		<method name="isHierarchical()Z" />
-		<method name="isOpaque()Z" />
-		<method name="isRelative()Z" />
-		<method name="normalizeScheme()Landroid/net/Uri;" since="16" />
-		<method name="parse(Ljava/lang/String;)Landroid/net/Uri;" />
-		<method name="withAppendedPath(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;" />
-		<method name="writeToParcel(Landroid/os/Parcel;Landroid/net/Uri;)V" />
-		<field name="CREATOR" />
-		<field name="EMPTY" />
-	</class>
-	<class name="android/net/Uri$Builder" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="appendEncodedPath(Ljava/lang/String;)Landroid/net/Uri$Builder;" />
-		<method name="appendPath(Ljava/lang/String;)Landroid/net/Uri$Builder;" />
-		<method name="appendQueryParameter(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri$Builder;" />
-		<method name="authority(Ljava/lang/String;)Landroid/net/Uri$Builder;" />
-		<method name="build()Landroid/net/Uri;" />
-		<method name="clearQuery()Landroid/net/Uri$Builder;" since="11" />
-		<method name="encodedAuthority(Ljava/lang/String;)Landroid/net/Uri$Builder;" />
-		<method name="encodedFragment(Ljava/lang/String;)Landroid/net/Uri$Builder;" />
-		<method name="encodedOpaquePart(Ljava/lang/String;)Landroid/net/Uri$Builder;" />
-		<method name="encodedPath(Ljava/lang/String;)Landroid/net/Uri$Builder;" />
-		<method name="encodedQuery(Ljava/lang/String;)Landroid/net/Uri$Builder;" />
-		<method name="fragment(Ljava/lang/String;)Landroid/net/Uri$Builder;" />
-		<method name="opaquePart(Ljava/lang/String;)Landroid/net/Uri$Builder;" />
-		<method name="path(Ljava/lang/String;)Landroid/net/Uri$Builder;" />
-		<method name="query(Ljava/lang/String;)Landroid/net/Uri$Builder;" />
-		<method name="scheme(Ljava/lang/String;)Landroid/net/Uri$Builder;" />
-	</class>
-	<class name="android/net/UrlQuerySanitizer" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="addSanitizedEntry(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="clear()V" />
-		<method name="decodeHexDigit(C)I" />
-		<method name="getAllButNulAndAngleBracketsLegal()Landroid/net/UrlQuerySanitizer$ValueSanitizer;" />
-		<method name="getAllButNulLegal()Landroid/net/UrlQuerySanitizer$ValueSanitizer;" />
-		<method name="getAllButWhitespaceLegal()Landroid/net/UrlQuerySanitizer$ValueSanitizer;" />
-		<method name="getAllIllegal()Landroid/net/UrlQuerySanitizer$ValueSanitizer;" />
-		<method name="getAllowUnregisteredParamaters()Z" />
-		<method name="getAmpAndSpaceLegal()Landroid/net/UrlQuerySanitizer$ValueSanitizer;" />
-		<method name="getAmpLegal()Landroid/net/UrlQuerySanitizer$ValueSanitizer;" />
-		<method name="getEffectiveValueSanitizer(Ljava/lang/String;)Landroid/net/UrlQuerySanitizer$ValueSanitizer;" />
-		<method name="getParameterList()Ljava/util/List;" />
-		<method name="getParameterSet()Ljava/util/Set;" />
-		<method name="getPreferFirstRepeatedParameter()Z" />
-		<method name="getSpaceLegal()Landroid/net/UrlQuerySanitizer$ValueSanitizer;" />
-		<method name="getUnregisteredParameterValueSanitizer()Landroid/net/UrlQuerySanitizer$ValueSanitizer;" />
-		<method name="getUrlAndSpaceLegal()Landroid/net/UrlQuerySanitizer$ValueSanitizer;" />
-		<method name="getUrlLegal()Landroid/net/UrlQuerySanitizer$ValueSanitizer;" />
-		<method name="getValue(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getValueSanitizer(Ljava/lang/String;)Landroid/net/UrlQuerySanitizer$ValueSanitizer;" />
-		<method name="hasParameter(Ljava/lang/String;)Z" />
-		<method name="isHexDigit(C)Z" />
-		<method name="parseEntry(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="parseQuery(Ljava/lang/String;)V" />
-		<method name="parseUrl(Ljava/lang/String;)V" />
-		<method name="registerParameter(Ljava/lang/String;Landroid/net/UrlQuerySanitizer$ValueSanitizer;)V" />
-		<method name="registerParameters([Ljava/lang/String;Landroid/net/UrlQuerySanitizer$ValueSanitizer;)V" />
-		<method name="setAllowUnregisteredParamaters(Z)V" />
-		<method name="setPreferFirstRepeatedParameter(Z)V" />
-		<method name="setUnregisteredParameterValueSanitizer(Landroid/net/UrlQuerySanitizer$ValueSanitizer;)V" />
-		<method name="unescape(Ljava/lang/String;)Ljava/lang/String;" />
-	</class>
-	<class name="android/net/UrlQuerySanitizer$IllegalCharacterValueSanitizer" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/net/UrlQuerySanitizer$ValueSanitizer" />
-		<method name="&lt;init>(I)V" />
-		<field name="ALL_BUT_NUL_AND_ANGLE_BRACKETS_LEGAL" />
-		<field name="ALL_BUT_NUL_LEGAL" />
-		<field name="ALL_BUT_WHITESPACE_LEGAL" />
-		<field name="ALL_ILLEGAL" />
-		<field name="ALL_OK" />
-		<field name="ALL_WHITESPACE_OK" />
-		<field name="AMP_AND_SPACE_LEGAL" />
-		<field name="AMP_LEGAL" />
-		<field name="AMP_OK" />
-		<field name="DQUOTE_OK" />
-		<field name="GT_OK" />
-		<field name="LT_OK" />
-		<field name="NON_7_BIT_ASCII_OK" />
-		<field name="NUL_OK" />
-		<field name="OTHER_WHITESPACE_OK" />
-		<field name="PCT_OK" />
-		<field name="SCRIPT_URL_OK" />
-		<field name="SPACE_LEGAL" />
-		<field name="SPACE_OK" />
-		<field name="SQUOTE_OK" />
-		<field name="URL_AND_SPACE_LEGAL" />
-		<field name="URL_LEGAL" />
-	</class>
-	<class name="android/net/UrlQuerySanitizer$ParameterValuePair" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/net/UrlQuerySanitizer;Ljava/lang/String;Ljava/lang/String;)V" />
-		<field name="mParameter" />
-		<field name="mValue" />
-	</class>
-	<class name="android/net/UrlQuerySanitizer$ValueSanitizer" since="1">
-		<extends name="java/lang/Object" />
-		<method name="sanitize(Ljava/lang/String;)Ljava/lang/String;" />
-	</class>
-	<class name="android/net/VpnService" since="14">
-		<extends name="android/app/Service" />
-		<method name="&lt;init>()V" />
-		<method name="onRevoke()V" />
-		<method name="prepare(Landroid/content/Context;)Landroid/content/Intent;" />
-		<method name="protect(I)Z" />
-		<method name="protect(Ljava/net/DatagramSocket;)Z" />
-		<method name="protect(Ljava/net/Socket;)Z" />
-		<field name="SERVICE_INTERFACE" />
-	</class>
-	<class name="android/net/VpnService$Builder" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/net/VpnService;)V" />
-		<method name="addAddress(Ljava/lang/String;I)Landroid/net/VpnService$Builder;" />
-		<method name="addAddress(Ljava/net/InetAddress;I)Landroid/net/VpnService$Builder;" />
-		<method name="addDnsServer(Ljava/lang/String;)Landroid/net/VpnService$Builder;" />
-		<method name="addDnsServer(Ljava/net/InetAddress;)Landroid/net/VpnService$Builder;" />
-		<method name="addRoute(Ljava/lang/String;I)Landroid/net/VpnService$Builder;" />
-		<method name="addRoute(Ljava/net/InetAddress;I)Landroid/net/VpnService$Builder;" />
-		<method name="addSearchDomain(Ljava/lang/String;)Landroid/net/VpnService$Builder;" />
-		<method name="establish()Landroid/os/ParcelFileDescriptor;" />
-		<method name="setConfigureIntent(Landroid/app/PendingIntent;)Landroid/net/VpnService$Builder;" />
-		<method name="setMtu(I)Landroid/net/VpnService$Builder;" />
-		<method name="setSession(Ljava/lang/String;)Landroid/net/VpnService$Builder;" />
-	</class>
-	<class name="android/net/http/AndroidHttpClient" since="8">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/client/HttpClient" />
-		<method name="&lt;init>()V" />
-		<method name="close()V" />
-		<method name="disableCurlLogging()V" />
-		<method name="enableCurlLogging(Ljava/lang/String;I)V" />
-		<method name="getCompressedEntity([BLandroid/content/ContentResolver;)Lorg/apache/http/entity/AbstractHttpEntity;" />
-		<method name="getMinGzipSize(Landroid/content/ContentResolver;)J" />
-		<method name="getUngzippedContent(Lorg/apache/http/HttpEntity;)Ljava/io/InputStream;" />
-		<method name="modifyRequestToAcceptGzipResponse(Lorg/apache/http/HttpRequest;)V" />
-		<method name="newInstance(Ljava/lang/String;)Landroid/net/http/AndroidHttpClient;" />
-		<method name="newInstance(Ljava/lang/String;Landroid/content/Context;)Landroid/net/http/AndroidHttpClient;" />
-		<method name="parseDate(Ljava/lang/String;)J" />
-		<field name="DEFAULT_SYNC_MIN_GZIP_BYTES" />
-	</class>
-	<class name="android/net/http/HttpResponseCache" since="14">
-		<extends name="java/net/ResponseCache" />
-		<implements name="java/io/Closeable" />
-		<method name="&lt;init>()V" />
-		<method name="delete()V" />
-		<method name="flush()V" />
-		<method name="getHitCount()I" />
-		<method name="getInstalled()Landroid/net/http/HttpResponseCache;" />
-		<method name="getNetworkCount()I" />
-		<method name="getRequestCount()I" />
-		<method name="install(Ljava/io/File;J)Landroid/net/http/HttpResponseCache;" />
-		<method name="maxSize()J" />
-		<method name="size()J" />
-	</class>
-	<class name="android/net/http/SslCertificate" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/util/Date;Ljava/util/Date;)V" since="8" />
-		<method name="&lt;init>(Ljava/security/cert/X509Certificate;)V" />
-		<method name="getIssuedBy()Landroid/net/http/SslCertificate$DName;" />
-		<method name="getIssuedTo()Landroid/net/http/SslCertificate$DName;" />
-		<method name="getValidNotAfter()Ljava/lang/String;" />
-		<method name="getValidNotAfterDate()Ljava/util/Date;" since="8" />
-		<method name="getValidNotBefore()Ljava/lang/String;" />
-		<method name="getValidNotBeforeDate()Ljava/util/Date;" since="8" />
-		<method name="restoreState(Landroid/os/Bundle;)Landroid/net/http/SslCertificate;" />
-		<method name="saveState(Landroid/net/http/SslCertificate;)Landroid/os/Bundle;" />
-	</class>
-	<class name="android/net/http/SslCertificate$DName" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/net/http/SslCertificate;Ljava/lang/String;)V" />
-		<method name="getCName()Ljava/lang/String;" />
-		<method name="getDName()Ljava/lang/String;" />
-		<method name="getOName()Ljava/lang/String;" />
-		<method name="getUName()Ljava/lang/String;" />
-	</class>
-	<class name="android/net/http/SslError" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(ILandroid/net/http/SslCertificate;)V" />
-		<method name="&lt;init>(ILandroid/net/http/SslCertificate;Ljava/lang/String;)V" since="14" />
-		<method name="&lt;init>(ILjava/security/cert/X509Certificate;)V" />
-		<method name="&lt;init>(ILjava/security/cert/X509Certificate;Ljava/lang/String;)V" since="14" />
-		<method name="addError(I)Z" />
-		<method name="getCertificate()Landroid/net/http/SslCertificate;" />
-		<method name="getPrimaryError()I" />
-		<method name="getUrl()Ljava/lang/String;" since="14" />
-		<method name="hasError(I)Z" />
-		<field name="SSL_DATE_INVALID" since="14" />
-		<field name="SSL_EXPIRED" />
-		<field name="SSL_IDMISMATCH" />
-		<field name="SSL_INVALID" since="14" />
-		<field name="SSL_MAX_ERROR" />
-		<field name="SSL_NOTYETVALID" />
-		<field name="SSL_UNTRUSTED" />
-	</class>
-	<class name="android/net/http/X509TrustManagerExtensions" since="17">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljavax/net/ssl/X509TrustManager;)V" />
-		<method name="checkServerTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;" />
-		<method name="isUserAddedCertificate(Ljava/security/cert/X509Certificate;)Z" since="21" />
-	</class>
-	<class name="android/net/nsd/NsdManager" since="16">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="discoverServices(Ljava/lang/String;ILandroid/net/nsd/NsdManager$DiscoveryListener;)V" />
-		<method name="registerService(Landroid/net/nsd/NsdServiceInfo;ILandroid/net/nsd/NsdManager$RegistrationListener;)V" />
-		<method name="resolveService(Landroid/net/nsd/NsdServiceInfo;Landroid/net/nsd/NsdManager$ResolveListener;)V" />
-		<method name="stopServiceDiscovery(Landroid/net/nsd/NsdManager$DiscoveryListener;)V" />
-		<method name="unregisterService(Landroid/net/nsd/NsdManager$RegistrationListener;)V" />
-		<field name="ACTION_NSD_STATE_CHANGED" />
-		<field name="EXTRA_NSD_STATE" />
-		<field name="FAILURE_ALREADY_ACTIVE" />
-		<field name="FAILURE_INTERNAL_ERROR" />
-		<field name="FAILURE_MAX_LIMIT" />
-		<field name="NSD_STATE_DISABLED" />
-		<field name="NSD_STATE_ENABLED" />
-		<field name="PROTOCOL_DNS_SD" />
-	</class>
-	<class name="android/net/nsd/NsdManager$DiscoveryListener" since="16">
-		<extends name="java/lang/Object" />
-		<method name="onDiscoveryStarted(Ljava/lang/String;)V" />
-		<method name="onDiscoveryStopped(Ljava/lang/String;)V" />
-		<method name="onServiceFound(Landroid/net/nsd/NsdServiceInfo;)V" />
-		<method name="onServiceLost(Landroid/net/nsd/NsdServiceInfo;)V" />
-		<method name="onStartDiscoveryFailed(Ljava/lang/String;I)V" />
-		<method name="onStopDiscoveryFailed(Ljava/lang/String;I)V" />
-	</class>
-	<class name="android/net/nsd/NsdManager$RegistrationListener" since="16">
-		<extends name="java/lang/Object" />
-		<method name="onRegistrationFailed(Landroid/net/nsd/NsdServiceInfo;I)V" />
-		<method name="onServiceRegistered(Landroid/net/nsd/NsdServiceInfo;)V" />
-		<method name="onServiceUnregistered(Landroid/net/nsd/NsdServiceInfo;)V" />
-		<method name="onUnregistrationFailed(Landroid/net/nsd/NsdServiceInfo;I)V" />
-	</class>
-	<class name="android/net/nsd/NsdManager$ResolveListener" since="16">
-		<extends name="java/lang/Object" />
-		<method name="onResolveFailed(Landroid/net/nsd/NsdServiceInfo;I)V" />
-		<method name="onServiceResolved(Landroid/net/nsd/NsdServiceInfo;)V" />
-	</class>
-	<class name="android/net/nsd/NsdServiceInfo" since="16">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getAttributes()Ljava/util/Map;" since="21" />
-		<method name="getHost()Ljava/net/InetAddress;" />
-		<method name="getPort()I" />
-		<method name="getServiceName()Ljava/lang/String;" />
-		<method name="getServiceType()Ljava/lang/String;" />
-		<method name="removeAttribute(Ljava/lang/String;)V" since="21" />
-		<method name="setAttribute(Ljava/lang/String;Ljava/lang/String;)V" since="21" />
-		<method name="setHost(Ljava/net/InetAddress;)V" />
-		<method name="setPort(I)V" />
-		<method name="setServiceName(Ljava/lang/String;)V" />
-		<method name="setServiceType(Ljava/lang/String;)V" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/net/rtp/AudioCodec" since="12">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getCodec(ILjava/lang/String;Ljava/lang/String;)Landroid/net/rtp/AudioCodec;" />
-		<method name="getCodecs()[Landroid/net/rtp/AudioCodec;" />
-		<field name="AMR" />
-		<field name="GSM" />
-		<field name="GSM_EFR" />
-		<field name="PCMA" />
-		<field name="PCMU" />
-		<field name="fmtp" />
-		<field name="rtpmap" />
-		<field name="type" />
-	</class>
-	<class name="android/net/rtp/AudioGroup" since="12">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="clear()V" />
-		<method name="getMode()I" />
-		<method name="getStreams()[Landroid/net/rtp/AudioStream;" />
-		<method name="sendDtmf(I)V" />
-		<method name="setMode(I)V" />
-		<field name="MODE_ECHO_SUPPRESSION" />
-		<field name="MODE_MUTED" />
-		<field name="MODE_NORMAL" />
-		<field name="MODE_ON_HOLD" />
-	</class>
-	<class name="android/net/rtp/AudioStream" since="12">
-		<extends name="android/net/rtp/RtpStream" />
-		<method name="&lt;init>(Ljava/net/InetAddress;)V" />
-		<method name="getCodec()Landroid/net/rtp/AudioCodec;" />
-		<method name="getDtmfType()I" />
-		<method name="getGroup()Landroid/net/rtp/AudioGroup;" />
-		<method name="join(Landroid/net/rtp/AudioGroup;)V" />
-		<method name="setCodec(Landroid/net/rtp/AudioCodec;)V" />
-		<method name="setDtmfType(I)V" />
-	</class>
-	<class name="android/net/rtp/RtpStream" since="12">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="associate(Ljava/net/InetAddress;I)V" />
-		<method name="getLocalAddress()Ljava/net/InetAddress;" />
-		<method name="getLocalPort()I" />
-		<method name="getMode()I" />
-		<method name="getRemoteAddress()Ljava/net/InetAddress;" />
-		<method name="getRemotePort()I" />
-		<method name="isBusy()Z" />
-		<method name="release()V" />
-		<method name="setMode(I)V" />
-		<field name="MODE_NORMAL" />
-		<field name="MODE_RECEIVE_ONLY" />
-		<field name="MODE_SEND_ONLY" />
-	</class>
-	<class name="android/net/sip/SipAudioCall" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/net/sip/SipProfile;)V" />
-		<method name="answerCall(I)V" />
-		<method name="attachCall(Landroid/net/sip/SipSession;Ljava/lang/String;)V" />
-		<method name="close()V" />
-		<method name="continueCall(I)V" />
-		<method name="endCall()V" />
-		<method name="getLocalProfile()Landroid/net/sip/SipProfile;" />
-		<method name="getPeerProfile()Landroid/net/sip/SipProfile;" />
-		<method name="getState()I" />
-		<method name="holdCall(I)V" />
-		<method name="isInCall()Z" />
-		<method name="isMuted()Z" />
-		<method name="isOnHold()Z" />
-		<method name="makeCall(Landroid/net/sip/SipProfile;Landroid/net/sip/SipSession;I)V" />
-		<method name="sendDtmf(I)V" />
-		<method name="sendDtmf(ILandroid/os/Message;)V" />
-		<method name="setListener(Landroid/net/sip/SipAudioCall$Listener;)V" />
-		<method name="setListener(Landroid/net/sip/SipAudioCall$Listener;Z)V" />
-		<method name="setSpeakerMode(Z)V" />
-		<method name="startAudio()V" />
-		<method name="toggleMute()V" />
-	</class>
-	<class name="android/net/sip/SipAudioCall$Listener" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="onCallBusy(Landroid/net/sip/SipAudioCall;)V" />
-		<method name="onCallEnded(Landroid/net/sip/SipAudioCall;)V" />
-		<method name="onCallEstablished(Landroid/net/sip/SipAudioCall;)V" />
-		<method name="onCallHeld(Landroid/net/sip/SipAudioCall;)V" />
-		<method name="onCalling(Landroid/net/sip/SipAudioCall;)V" />
-		<method name="onChanged(Landroid/net/sip/SipAudioCall;)V" />
-		<method name="onError(Landroid/net/sip/SipAudioCall;ILjava/lang/String;)V" />
-		<method name="onReadyToCall(Landroid/net/sip/SipAudioCall;)V" />
-		<method name="onRinging(Landroid/net/sip/SipAudioCall;Landroid/net/sip/SipProfile;)V" />
-		<method name="onRingingBack(Landroid/net/sip/SipAudioCall;)V" />
-	</class>
-	<class name="android/net/sip/SipErrorCode" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="toString(I)Ljava/lang/String;" />
-		<field name="CLIENT_ERROR" />
-		<field name="CROSS_DOMAIN_AUTHENTICATION" />
-		<field name="DATA_CONNECTION_LOST" />
-		<field name="INVALID_CREDENTIALS" />
-		<field name="INVALID_REMOTE_URI" />
-		<field name="IN_PROGRESS" />
-		<field name="NO_ERROR" />
-		<field name="PEER_NOT_REACHABLE" />
-		<field name="SERVER_ERROR" />
-		<field name="SERVER_UNREACHABLE" />
-		<field name="SOCKET_ERROR" />
-		<field name="TIME_OUT" />
-		<field name="TRANSACTION_TERMINTED" />
-	</class>
-	<class name="android/net/sip/SipException" since="9">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="android/net/sip/SipManager" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="close(Ljava/lang/String;)V" />
-		<method name="createSipSession(Landroid/net/sip/SipProfile;Landroid/net/sip/SipSession$Listener;)Landroid/net/sip/SipSession;" />
-		<method name="getCallId(Landroid/content/Intent;)Ljava/lang/String;" />
-		<method name="getOfferSessionDescription(Landroid/content/Intent;)Ljava/lang/String;" />
-		<method name="getSessionFor(Landroid/content/Intent;)Landroid/net/sip/SipSession;" />
-		<method name="isApiSupported(Landroid/content/Context;)Z" />
-		<method name="isIncomingCallIntent(Landroid/content/Intent;)Z" />
-		<method name="isOpened(Ljava/lang/String;)Z" />
-		<method name="isRegistered(Ljava/lang/String;)Z" />
-		<method name="isSipWifiOnly(Landroid/content/Context;)Z" />
-		<method name="isVoipSupported(Landroid/content/Context;)Z" />
-		<method name="makeAudioCall(Landroid/net/sip/SipProfile;Landroid/net/sip/SipProfile;Landroid/net/sip/SipAudioCall$Listener;I)Landroid/net/sip/SipAudioCall;" />
-		<method name="makeAudioCall(Ljava/lang/String;Ljava/lang/String;Landroid/net/sip/SipAudioCall$Listener;I)Landroid/net/sip/SipAudioCall;" />
-		<method name="newInstance(Landroid/content/Context;)Landroid/net/sip/SipManager;" />
-		<method name="open(Landroid/net/sip/SipProfile;)V" />
-		<method name="open(Landroid/net/sip/SipProfile;Landroid/app/PendingIntent;Landroid/net/sip/SipRegistrationListener;)V" />
-		<method name="register(Landroid/net/sip/SipProfile;ILandroid/net/sip/SipRegistrationListener;)V" />
-		<method name="setRegistrationListener(Ljava/lang/String;Landroid/net/sip/SipRegistrationListener;)V" />
-		<method name="takeAudioCall(Landroid/content/Intent;Landroid/net/sip/SipAudioCall$Listener;)Landroid/net/sip/SipAudioCall;" />
-		<method name="unregister(Landroid/net/sip/SipProfile;Landroid/net/sip/SipRegistrationListener;)V" />
-		<field name="EXTRA_CALL_ID" />
-		<field name="EXTRA_OFFER_SD" />
-		<field name="INCOMING_CALL_RESULT_CODE" />
-	</class>
-	<class name="android/net/sip/SipProfile" since="9">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Cloneable" />
-		<method name="&lt;init>()V" />
-		<method name="getAuthUserName()Ljava/lang/String;" since="12" />
-		<method name="getAutoRegistration()Z" />
-		<method name="getDisplayName()Ljava/lang/String;" />
-		<method name="getPassword()Ljava/lang/String;" />
-		<method name="getPort()I" />
-		<method name="getProfileName()Ljava/lang/String;" />
-		<method name="getProtocol()Ljava/lang/String;" />
-		<method name="getProxyAddress()Ljava/lang/String;" />
-		<method name="getSendKeepAlive()Z" />
-		<method name="getSipDomain()Ljava/lang/String;" />
-		<method name="getUriString()Ljava/lang/String;" />
-		<method name="getUserName()Ljava/lang/String;" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/net/sip/SipProfile$Builder" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/net/sip/SipProfile;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="build()Landroid/net/sip/SipProfile;" />
-		<method name="setAuthUserName(Ljava/lang/String;)Landroid/net/sip/SipProfile$Builder;" since="12" />
-		<method name="setAutoRegistration(Z)Landroid/net/sip/SipProfile$Builder;" />
-		<method name="setDisplayName(Ljava/lang/String;)Landroid/net/sip/SipProfile$Builder;" />
-		<method name="setOutboundProxy(Ljava/lang/String;)Landroid/net/sip/SipProfile$Builder;" />
-		<method name="setPassword(Ljava/lang/String;)Landroid/net/sip/SipProfile$Builder;" />
-		<method name="setPort(I)Landroid/net/sip/SipProfile$Builder;" />
-		<method name="setProfileName(Ljava/lang/String;)Landroid/net/sip/SipProfile$Builder;" />
-		<method name="setProtocol(Ljava/lang/String;)Landroid/net/sip/SipProfile$Builder;" />
-		<method name="setSendKeepAlive(Z)Landroid/net/sip/SipProfile$Builder;" />
-	</class>
-	<class name="android/net/sip/SipRegistrationListener" since="9">
-		<extends name="java/lang/Object" />
-		<method name="onRegistering(Ljava/lang/String;)V" />
-		<method name="onRegistrationDone(Ljava/lang/String;J)V" />
-		<method name="onRegistrationFailed(Ljava/lang/String;ILjava/lang/String;)V" />
-	</class>
-	<class name="android/net/sip/SipSession" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="answerCall(Ljava/lang/String;I)V" />
-		<method name="changeCall(Ljava/lang/String;I)V" />
-		<method name="endCall()V" />
-		<method name="getCallId()Ljava/lang/String;" />
-		<method name="getLocalIp()Ljava/lang/String;" />
-		<method name="getLocalProfile()Landroid/net/sip/SipProfile;" />
-		<method name="getPeerProfile()Landroid/net/sip/SipProfile;" />
-		<method name="getState()I" />
-		<method name="isInCall()Z" />
-		<method name="makeCall(Landroid/net/sip/SipProfile;Ljava/lang/String;I)V" />
-		<method name="register(I)V" />
-		<method name="setListener(Landroid/net/sip/SipSession$Listener;)V" />
-		<method name="unregister()V" />
-	</class>
-	<class name="android/net/sip/SipSession$Listener" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="onCallBusy(Landroid/net/sip/SipSession;)V" />
-		<method name="onCallChangeFailed(Landroid/net/sip/SipSession;ILjava/lang/String;)V" />
-		<method name="onCallEnded(Landroid/net/sip/SipSession;)V" />
-		<method name="onCallEstablished(Landroid/net/sip/SipSession;Ljava/lang/String;)V" />
-		<method name="onCalling(Landroid/net/sip/SipSession;)V" />
-		<method name="onError(Landroid/net/sip/SipSession;ILjava/lang/String;)V" />
-		<method name="onRegistering(Landroid/net/sip/SipSession;)V" />
-		<method name="onRegistrationDone(Landroid/net/sip/SipSession;I)V" />
-		<method name="onRegistrationFailed(Landroid/net/sip/SipSession;ILjava/lang/String;)V" />
-		<method name="onRegistrationTimeout(Landroid/net/sip/SipSession;)V" />
-		<method name="onRinging(Landroid/net/sip/SipSession;Landroid/net/sip/SipProfile;Ljava/lang/String;)V" />
-		<method name="onRingingBack(Landroid/net/sip/SipSession;)V" />
-	</class>
-	<class name="android/net/sip/SipSession$State" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="toString(I)Ljava/lang/String;" />
-		<field name="DEREGISTERING" />
-		<field name="INCOMING_CALL" />
-		<field name="INCOMING_CALL_ANSWERING" />
-		<field name="IN_CALL" />
-		<field name="NOT_DEFINED" />
-		<field name="OUTGOING_CALL" />
-		<field name="OUTGOING_CALL_CANCELING" />
-		<field name="OUTGOING_CALL_RING_BACK" />
-		<field name="PINGING" />
-		<field name="READY_TO_CALL" />
-		<field name="REGISTERING" />
-	</class>
-	<class name="android/net/wifi/ScanResult" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<field name="BSSID" />
-		<field name="SSID" />
-		<field name="capabilities" />
-		<field name="frequency" />
-		<field name="level" />
-		<field name="timestamp" since="17" />
-	</class>
-	<class name="android/net/wifi/SupplicantState" since="1">
-		<extends name="java/lang/Enum" />
-		<implements name="android/os/Parcelable" />
-		<method name="isValidState(Landroid/net/wifi/SupplicantState;)Z" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/net/wifi/SupplicantState;" />
-		<method name="values()[Landroid/net/wifi/SupplicantState;" />
-		<field name="ASSOCIATED" />
-		<field name="ASSOCIATING" />
-		<field name="AUTHENTICATING" since="14" />
-		<field name="COMPLETED" />
-		<field name="DISCONNECTED" />
-		<field name="DORMANT" />
-		<field name="FOUR_WAY_HANDSHAKE" />
-		<field name="GROUP_HANDSHAKE" />
-		<field name="INACTIVE" />
-		<field name="INTERFACE_DISABLED" since="14" />
-		<field name="INVALID" />
-		<field name="SCANNING" />
-		<field name="UNINITIALIZED" />
-	</class>
-	<class name="android/net/wifi/WifiConfiguration" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<field name="BSSID" />
-		<field name="SSID" />
-		<field name="allowedAuthAlgorithms" />
-		<field name="allowedGroupCiphers" />
-		<field name="allowedKeyManagement" />
-		<field name="allowedPairwiseCiphers" />
-		<field name="allowedProtocols" />
-		<field name="enterpriseConfig" since="18" />
-		<field name="hiddenSSID" />
-		<field name="networkId" />
-		<field name="preSharedKey" />
-		<field name="priority" />
-		<field name="status" />
-		<field name="wepKeys" />
-		<field name="wepTxKeyIndex" />
-	</class>
-	<class name="android/net/wifi/WifiConfiguration$AuthAlgorithm" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="LEAP" />
-		<field name="OPEN" />
-		<field name="SHARED" />
-		<field name="strings" />
-		<field name="varName" />
-	</class>
-	<class name="android/net/wifi/WifiConfiguration$GroupCipher" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="CCMP" />
-		<field name="TKIP" />
-		<field name="WEP104" />
-		<field name="WEP40" />
-		<field name="strings" />
-		<field name="varName" />
-	</class>
-	<class name="android/net/wifi/WifiConfiguration$KeyMgmt" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="IEEE8021X" />
-		<field name="NONE" />
-		<field name="WPA_EAP" />
-		<field name="WPA_PSK" />
-		<field name="strings" />
-		<field name="varName" />
-	</class>
-	<class name="android/net/wifi/WifiConfiguration$PairwiseCipher" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="CCMP" />
-		<field name="NONE" />
-		<field name="TKIP" />
-		<field name="strings" />
-		<field name="varName" />
-	</class>
-	<class name="android/net/wifi/WifiConfiguration$Protocol" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="RSN" />
-		<field name="WPA" />
-		<field name="strings" />
-		<field name="varName" />
-	</class>
-	<class name="android/net/wifi/WifiConfiguration$Status" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="CURRENT" />
-		<field name="DISABLED" />
-		<field name="ENABLED" />
-		<field name="strings" />
-	</class>
-	<class name="android/net/wifi/WifiEnterpriseConfig" since="18">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/net/wifi/WifiEnterpriseConfig;)V" />
-		<method name="getAnonymousIdentity()Ljava/lang/String;" />
-		<method name="getCaCertificate()Ljava/security/cert/X509Certificate;" />
-		<method name="getClientCertificate()Ljava/security/cert/X509Certificate;" />
-		<method name="getEapMethod()I" />
-		<method name="getIdentity()Ljava/lang/String;" />
-		<method name="getPassword()Ljava/lang/String;" />
-		<method name="getPhase2Method()I" />
-		<method name="getSubjectMatch()Ljava/lang/String;" />
-		<method name="setAnonymousIdentity(Ljava/lang/String;)V" />
-		<method name="setCaCertificate(Ljava/security/cert/X509Certificate;)V" />
-		<method name="setClientKeyEntry(Ljava/security/PrivateKey;Ljava/security/cert/X509Certificate;)V" />
-		<method name="setEapMethod(I)V" />
-		<method name="setIdentity(Ljava/lang/String;)V" />
-		<method name="setPassword(Ljava/lang/String;)V" />
-		<method name="setPhase2Method(I)V" />
-		<method name="setSubjectMatch(Ljava/lang/String;)V" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/net/wifi/WifiEnterpriseConfig$Eap" since="18">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="AKA" since="21" />
-		<field name="NONE" />
-		<field name="PEAP" />
-		<field name="PWD" />
-		<field name="SIM" since="21" />
-		<field name="TLS" />
-		<field name="TTLS" />
-	</class>
-	<class name="android/net/wifi/WifiEnterpriseConfig$Phase2" since="18">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="GTC" />
-		<field name="MSCHAP" />
-		<field name="MSCHAPV2" />
-		<field name="NONE" />
-		<field name="PAP" />
-	</class>
-	<class name="android/net/wifi/WifiInfo" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getBSSID()Ljava/lang/String;" />
-		<method name="getDetailedStateOf(Landroid/net/wifi/SupplicantState;)Landroid/net/NetworkInfo$DetailedState;" />
-		<method name="getFrequency()I" since="21" />
-		<method name="getHiddenSSID()Z" />
-		<method name="getIpAddress()I" />
-		<method name="getLinkSpeed()I" />
-		<method name="getMacAddress()Ljava/lang/String;" />
-		<method name="getNetworkId()I" />
-		<method name="getRssi()I" />
-		<method name="getSSID()Ljava/lang/String;" />
-		<method name="getSupplicantState()Landroid/net/wifi/SupplicantState;" />
-		<field name="FREQUENCY_UNITS" since="21" />
-		<field name="LINK_SPEED_UNITS" />
-	</class>
-	<class name="android/net/wifi/WifiManager" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addNetwork(Landroid/net/wifi/WifiConfiguration;)I" />
-		<method name="calculateSignalLevel(II)I" />
-		<method name="compareSignalLevel(II)I" />
-		<method name="createMulticastLock(Ljava/lang/String;)Landroid/net/wifi/WifiManager$MulticastLock;" since="4" />
-		<method name="createWifiLock(ILjava/lang/String;)Landroid/net/wifi/WifiManager$WifiLock;" since="3" />
-		<method name="createWifiLock(Ljava/lang/String;)Landroid/net/wifi/WifiManager$WifiLock;" />
-		<method name="disableNetwork(I)Z" />
-		<method name="disconnect()Z" />
-		<method name="enableNetwork(IZ)Z" />
-		<method name="getConfiguredNetworks()Ljava/util/List;" />
-		<method name="getConnectionInfo()Landroid/net/wifi/WifiInfo;" />
-		<method name="getDhcpInfo()Landroid/net/DhcpInfo;" />
-		<method name="getScanResults()Ljava/util/List;" />
-		<method name="getWifiState()I" />
-		<method name="isScanAlwaysAvailable()Z" since="18" />
-		<method name="isWifiEnabled()Z" />
-		<method name="pingSupplicant()Z" />
-		<method name="reassociate()Z" />
-		<method name="reconnect()Z" />
-		<method name="removeNetwork(I)Z" />
-		<method name="saveConfiguration()Z" />
-		<method name="setTdlsEnabled(Ljava/net/InetAddress;Z)V" since="19" />
-		<method name="setTdlsEnabledWithMacAddress(Ljava/lang/String;Z)V" since="19" />
-		<method name="setWifiEnabled(Z)Z" />
-		<method name="startScan()Z" />
-		<method name="updateNetwork(Landroid/net/wifi/WifiConfiguration;)I" />
-		<field name="ACTION_PICK_WIFI_NETWORK" />
-		<field name="ACTION_REQUEST_SCAN_ALWAYS_AVAILABLE" since="18" />
-		<field name="ERROR_AUTHENTICATING" />
-		<field name="EXTRA_BSSID" />
-		<field name="EXTRA_NETWORK_INFO" />
-		<field name="EXTRA_NEW_RSSI" />
-		<field name="EXTRA_NEW_STATE" />
-		<field name="EXTRA_PREVIOUS_WIFI_STATE" />
-		<field name="EXTRA_SUPPLICANT_CONNECTED" />
-		<field name="EXTRA_SUPPLICANT_ERROR" />
-		<field name="EXTRA_WIFI_INFO" since="14" />
-		<field name="EXTRA_WIFI_STATE" />
-		<field name="NETWORK_IDS_CHANGED_ACTION" />
-		<field name="NETWORK_STATE_CHANGED_ACTION" />
-		<field name="RSSI_CHANGED_ACTION" />
-		<field name="SCAN_RESULTS_AVAILABLE_ACTION" />
-		<field name="SUPPLICANT_CONNECTION_CHANGE_ACTION" />
-		<field name="SUPPLICANT_STATE_CHANGED_ACTION" />
-		<field name="WIFI_MODE_FULL" since="3" />
-		<field name="WIFI_MODE_FULL_HIGH_PERF" since="12" />
-		<field name="WIFI_MODE_SCAN_ONLY" since="3" />
-		<field name="WIFI_STATE_CHANGED_ACTION" />
-		<field name="WIFI_STATE_DISABLED" />
-		<field name="WIFI_STATE_DISABLING" />
-		<field name="WIFI_STATE_ENABLED" />
-		<field name="WIFI_STATE_ENABLING" />
-		<field name="WIFI_STATE_UNKNOWN" />
-	</class>
-	<class name="android/net/wifi/WifiManager$MulticastLock" since="4">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/net/wifi/WifiManager;)V" />
-		<method name="acquire()V" />
-		<method name="isHeld()Z" />
-		<method name="release()V" />
-		<method name="setReferenceCounted(Z)V" />
-	</class>
-	<class name="android/net/wifi/WifiManager$WifiLock" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/net/wifi/WifiManager;)V" />
-		<method name="acquire()V" />
-		<method name="isHeld()Z" />
-		<method name="release()V" />
-		<method name="setReferenceCounted(Z)V" />
-		<method name="setWorkSource(Landroid/os/WorkSource;)V" since="9" />
-	</class>
-	<class name="android/net/wifi/WpsInfo" since="14">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/net/wifi/WpsInfo;)V" />
-		<field name="CREATOR" />
-		<field name="DISPLAY" />
-		<field name="INVALID" />
-		<field name="KEYPAD" />
-		<field name="LABEL" />
-		<field name="PBC" />
-		<field name="pin" />
-		<field name="setup" />
-	</class>
-	<class name="android/net/wifi/p2p/WifiP2pConfig" since="14">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/net/wifi/p2p/WifiP2pConfig;)V" />
-		<field name="CREATOR" />
-		<field name="deviceAddress" />
-		<field name="groupOwnerIntent" />
-		<field name="wps" />
-	</class>
-	<class name="android/net/wifi/p2p/WifiP2pDevice" since="14">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/net/wifi/p2p/WifiP2pDevice;)V" />
-		<method name="isGroupOwner()Z" />
-		<method name="isServiceDiscoveryCapable()Z" />
-		<method name="wpsDisplaySupported()Z" />
-		<method name="wpsKeypadSupported()Z" />
-		<method name="wpsPbcSupported()Z" />
-		<field name="AVAILABLE" />
-		<field name="CONNECTED" />
-		<field name="CREATOR" />
-		<field name="FAILED" />
-		<field name="INVITED" />
-		<field name="UNAVAILABLE" />
-		<field name="deviceAddress" />
-		<field name="deviceName" />
-		<field name="primaryDeviceType" />
-		<field name="secondaryDeviceType" />
-		<field name="status" />
-	</class>
-	<class name="android/net/wifi/p2p/WifiP2pDeviceList" since="14">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/net/wifi/p2p/WifiP2pDeviceList;)V" />
-		<method name="get(Ljava/lang/String;)Landroid/net/wifi/p2p/WifiP2pDevice;" since="18" />
-		<method name="getDeviceList()Ljava/util/Collection;" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/net/wifi/p2p/WifiP2pGroup" since="14">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/net/wifi/p2p/WifiP2pGroup;)V" />
-		<method name="getClientList()Ljava/util/Collection;" />
-		<method name="getInterface()Ljava/lang/String;" />
-		<method name="getNetworkName()Ljava/lang/String;" />
-		<method name="getOwner()Landroid/net/wifi/p2p/WifiP2pDevice;" />
-		<method name="getPassphrase()Ljava/lang/String;" />
-		<method name="isGroupOwner()Z" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/net/wifi/p2p/WifiP2pInfo" since="14">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/net/wifi/p2p/WifiP2pInfo;)V" />
-		<field name="CREATOR" />
-		<field name="groupFormed" />
-		<field name="groupOwnerAddress" />
-		<field name="isGroupOwner" />
-	</class>
-	<class name="android/net/wifi/p2p/WifiP2pManager" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addLocalService(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/nsd/WifiP2pServiceInfo;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V" since="16" />
-		<method name="addServiceRequest(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/nsd/WifiP2pServiceRequest;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V" since="16" />
-		<method name="cancelConnect(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V" />
-		<method name="clearLocalServices(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V" since="16" />
-		<method name="clearServiceRequests(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V" since="16" />
-		<method name="connect(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pConfig;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V" />
-		<method name="createGroup(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V" />
-		<method name="discoverPeers(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V" />
-		<method name="discoverServices(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V" since="16" />
-		<method name="initialize(Landroid/content/Context;Landroid/os/Looper;Landroid/net/wifi/p2p/WifiP2pManager$ChannelListener;)Landroid/net/wifi/p2p/WifiP2pManager$Channel;" />
-		<method name="removeGroup(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V" />
-		<method name="removeLocalService(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/nsd/WifiP2pServiceInfo;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V" since="16" />
-		<method name="removeServiceRequest(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/nsd/WifiP2pServiceRequest;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V" since="16" />
-		<method name="requestConnectionInfo(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$ConnectionInfoListener;)V" />
-		<method name="requestGroupInfo(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$GroupInfoListener;)V" />
-		<method name="requestPeers(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$PeerListListener;)V" />
-		<method name="setDnsSdResponseListeners(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$DnsSdServiceResponseListener;Landroid/net/wifi/p2p/WifiP2pManager$DnsSdTxtRecordListener;)V" since="16" />
-		<method name="setServiceResponseListener(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$ServiceResponseListener;)V" since="16" />
-		<method name="setUpnpServiceResponseListener(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$UpnpServiceResponseListener;)V" since="16" />
-		<method name="stopPeerDiscovery(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V" since="16" />
-		<field name="BUSY" />
-		<field name="ERROR" />
-		<field name="EXTRA_DISCOVERY_STATE" since="16" />
-		<field name="EXTRA_NETWORK_INFO" />
-		<field name="EXTRA_P2P_DEVICE_LIST" since="18" />
-		<field name="EXTRA_WIFI_P2P_DEVICE" />
-		<field name="EXTRA_WIFI_P2P_GROUP" since="18" />
-		<field name="EXTRA_WIFI_P2P_INFO" />
-		<field name="EXTRA_WIFI_STATE" />
-		<field name="NO_SERVICE_REQUESTS" since="16" />
-		<field name="P2P_UNSUPPORTED" />
-		<field name="WIFI_P2P_CONNECTION_CHANGED_ACTION" />
-		<field name="WIFI_P2P_DISCOVERY_CHANGED_ACTION" since="16" />
-		<field name="WIFI_P2P_DISCOVERY_STARTED" since="16" />
-		<field name="WIFI_P2P_DISCOVERY_STOPPED" since="16" />
-		<field name="WIFI_P2P_PEERS_CHANGED_ACTION" />
-		<field name="WIFI_P2P_STATE_CHANGED_ACTION" />
-		<field name="WIFI_P2P_STATE_DISABLED" />
-		<field name="WIFI_P2P_STATE_ENABLED" />
-		<field name="WIFI_P2P_THIS_DEVICE_CHANGED_ACTION" />
-	</class>
-	<class name="android/net/wifi/p2p/WifiP2pManager$ActionListener" since="14">
-		<extends name="java/lang/Object" />
-		<method name="onFailure(I)V" />
-		<method name="onSuccess()V" />
-	</class>
-	<class name="android/net/wifi/p2p/WifiP2pManager$Channel" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/net/wifi/p2p/WifiP2pManager$ChannelListener" since="14">
-		<extends name="java/lang/Object" />
-		<method name="onChannelDisconnected()V" />
-	</class>
-	<class name="android/net/wifi/p2p/WifiP2pManager$ConnectionInfoListener" since="14">
-		<extends name="java/lang/Object" />
-		<method name="onConnectionInfoAvailable(Landroid/net/wifi/p2p/WifiP2pInfo;)V" />
-	</class>
-	<class name="android/net/wifi/p2p/WifiP2pManager$DnsSdServiceResponseListener" since="16">
-		<extends name="java/lang/Object" />
-		<method name="onDnsSdServiceAvailable(Ljava/lang/String;Ljava/lang/String;Landroid/net/wifi/p2p/WifiP2pDevice;)V" />
-	</class>
-	<class name="android/net/wifi/p2p/WifiP2pManager$DnsSdTxtRecordListener" since="16">
-		<extends name="java/lang/Object" />
-		<method name="onDnsSdTxtRecordAvailable(Ljava/lang/String;Ljava/util/Map;Landroid/net/wifi/p2p/WifiP2pDevice;)V" />
-	</class>
-	<class name="android/net/wifi/p2p/WifiP2pManager$GroupInfoListener" since="14">
-		<extends name="java/lang/Object" />
-		<method name="onGroupInfoAvailable(Landroid/net/wifi/p2p/WifiP2pGroup;)V" />
-	</class>
-	<class name="android/net/wifi/p2p/WifiP2pManager$PeerListListener" since="14">
-		<extends name="java/lang/Object" />
-		<method name="onPeersAvailable(Landroid/net/wifi/p2p/WifiP2pDeviceList;)V" />
-	</class>
-	<class name="android/net/wifi/p2p/WifiP2pManager$ServiceResponseListener" since="16">
-		<extends name="java/lang/Object" />
-		<method name="onServiceAvailable(I[BLandroid/net/wifi/p2p/WifiP2pDevice;)V" />
-	</class>
-	<class name="android/net/wifi/p2p/WifiP2pManager$UpnpServiceResponseListener" since="16">
-		<extends name="java/lang/Object" />
-		<method name="onUpnpServiceAvailable(Ljava/util/List;Landroid/net/wifi/p2p/WifiP2pDevice;)V" />
-	</class>
-	<class name="android/net/wifi/p2p/nsd/WifiP2pDnsSdServiceInfo" since="16">
-		<extends name="android/net/wifi/p2p/nsd/WifiP2pServiceInfo" />
-		<method name="&lt;init>()V" />
-		<method name="newInstance(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceInfo;" />
-	</class>
-	<class name="android/net/wifi/p2p/nsd/WifiP2pDnsSdServiceRequest" since="16">
-		<extends name="android/net/wifi/p2p/nsd/WifiP2pServiceRequest" />
-		<method name="&lt;init>()V" />
-		<method name="newInstance()Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceRequest;" />
-		<method name="newInstance(Ljava/lang/String;)Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceRequest;" />
-		<method name="newInstance(Ljava/lang/String;Ljava/lang/String;)Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceRequest;" />
-	</class>
-	<class name="android/net/wifi/p2p/nsd/WifiP2pServiceInfo" since="16">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<field name="SERVICE_TYPE_ALL" />
-		<field name="SERVICE_TYPE_BONJOUR" />
-		<field name="SERVICE_TYPE_UPNP" />
-		<field name="SERVICE_TYPE_VENDOR_SPECIFIC" />
-	</class>
-	<class name="android/net/wifi/p2p/nsd/WifiP2pServiceRequest" since="16">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="newInstance(I)Landroid/net/wifi/p2p/nsd/WifiP2pServiceRequest;" />
-		<method name="newInstance(ILjava/lang/String;)Landroid/net/wifi/p2p/nsd/WifiP2pServiceRequest;" />
-	</class>
-	<class name="android/net/wifi/p2p/nsd/WifiP2pUpnpServiceInfo" since="16">
-		<extends name="android/net/wifi/p2p/nsd/WifiP2pServiceInfo" />
-		<method name="&lt;init>()V" />
-		<method name="newInstance(Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)Landroid/net/wifi/p2p/nsd/WifiP2pUpnpServiceInfo;" />
-	</class>
-	<class name="android/net/wifi/p2p/nsd/WifiP2pUpnpServiceRequest" since="16">
-		<extends name="android/net/wifi/p2p/nsd/WifiP2pServiceRequest" />
-		<method name="&lt;init>()V" />
-		<method name="newInstance()Landroid/net/wifi/p2p/nsd/WifiP2pUpnpServiceRequest;" />
-		<method name="newInstance(Ljava/lang/String;)Landroid/net/wifi/p2p/nsd/WifiP2pUpnpServiceRequest;" />
-	</class>
-	<class name="android/nfc/FormatException" since="9">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" since="16" />
-	</class>
-	<class name="android/nfc/NdefMessage" since="9">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(Landroid/nfc/NdefRecord;[Landroid/nfc/NdefRecord;)V" since="16" />
-		<method name="&lt;init>([B)V" />
-		<method name="&lt;init>([Landroid/nfc/NdefRecord;)V" />
-		<method name="getByteArrayLength()I" since="16" />
-		<method name="getRecords()[Landroid/nfc/NdefRecord;" />
-		<method name="toByteArray()[B" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/nfc/NdefRecord" since="9">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(S[B[B[B)V" />
-		<method name="&lt;init>([B)V" />
-		<method name="createApplicationRecord(Ljava/lang/String;)Landroid/nfc/NdefRecord;" since="14" />
-		<method name="createExternal(Ljava/lang/String;Ljava/lang/String;[B)Landroid/nfc/NdefRecord;" since="16" />
-		<method name="createMime(Ljava/lang/String;[B)Landroid/nfc/NdefRecord;" since="16" />
-		<method name="createTextRecord(Ljava/lang/String;Ljava/lang/String;)Landroid/nfc/NdefRecord;" since="21" />
-		<method name="createUri(Landroid/net/Uri;)Landroid/nfc/NdefRecord;" since="14" />
-		<method name="createUri(Ljava/lang/String;)Landroid/nfc/NdefRecord;" since="14" />
-		<method name="getId()[B" />
-		<method name="getPayload()[B" />
-		<method name="getTnf()S" />
-		<method name="getType()[B" />
-		<method name="toByteArray()[B" />
-		<method name="toMimeType()Ljava/lang/String;" since="16" />
-		<method name="toUri()Landroid/net/Uri;" since="16" />
-		<field name="CREATOR" />
-		<field name="RTD_ALTERNATIVE_CARRIER" />
-		<field name="RTD_HANDOVER_CARRIER" />
-		<field name="RTD_HANDOVER_REQUEST" />
-		<field name="RTD_HANDOVER_SELECT" />
-		<field name="RTD_SMART_POSTER" />
-		<field name="RTD_TEXT" />
-		<field name="RTD_URI" />
-		<field name="TNF_ABSOLUTE_URI" />
-		<field name="TNF_EMPTY" />
-		<field name="TNF_EXTERNAL_TYPE" />
-		<field name="TNF_MIME_MEDIA" />
-		<field name="TNF_UNCHANGED" />
-		<field name="TNF_UNKNOWN" />
-		<field name="TNF_WELL_KNOWN" />
-	</class>
-	<class name="android/nfc/NfcAdapter" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="disableForegroundDispatch(Landroid/app/Activity;)V" since="10" />
-		<method name="disableForegroundNdefPush(Landroid/app/Activity;)V" since="10" />
-		<method name="disableReaderMode(Landroid/app/Activity;)V" since="19" />
-		<method name="enableForegroundDispatch(Landroid/app/Activity;Landroid/app/PendingIntent;[Landroid/content/IntentFilter;[[Ljava/lang/String;)V" since="10" />
-		<method name="enableForegroundNdefPush(Landroid/app/Activity;Landroid/nfc/NdefMessage;)V" since="10" />
-		<method name="enableReaderMode(Landroid/app/Activity;Landroid/nfc/NfcAdapter$ReaderCallback;ILandroid/os/Bundle;)V" since="19" />
-		<method name="getDefaultAdapter()Landroid/nfc/NfcAdapter;" />
-		<method name="getDefaultAdapter(Landroid/content/Context;)Landroid/nfc/NfcAdapter;" since="10" />
-		<method name="invokeBeam(Landroid/app/Activity;)Z" since="21" />
-		<method name="isEnabled()Z" />
-		<method name="isNdefPushEnabled()Z" since="16" />
-		<method name="setBeamPushUris([Landroid/net/Uri;Landroid/app/Activity;)V" since="16" />
-		<method name="setBeamPushUrisCallback(Landroid/nfc/NfcAdapter$CreateBeamUrisCallback;Landroid/app/Activity;)V" since="16" />
-		<method name="setNdefPushMessage(Landroid/nfc/NdefMessage;Landroid/app/Activity;[Landroid/app/Activity;)V" since="14" />
-		<method name="setNdefPushMessageCallback(Landroid/nfc/NfcAdapter$CreateNdefMessageCallback;Landroid/app/Activity;[Landroid/app/Activity;)V" since="14" />
-		<method name="setOnNdefPushCompleteCallback(Landroid/nfc/NfcAdapter$OnNdefPushCompleteCallback;Landroid/app/Activity;[Landroid/app/Activity;)V" since="14" />
-		<field name="ACTION_ADAPTER_STATE_CHANGED" since="18" />
-		<field name="ACTION_NDEF_DISCOVERED" since="10" />
-		<field name="ACTION_TAG_DISCOVERED" />
-		<field name="ACTION_TECH_DISCOVERED" since="10" />
-		<field name="EXTRA_ADAPTER_STATE" since="18" />
-		<field name="EXTRA_ID" />
-		<field name="EXTRA_NDEF_MESSAGES" />
-		<field name="EXTRA_READER_PRESENCE_CHECK_DELAY" since="19" />
-		<field name="EXTRA_TAG" since="10" />
-		<field name="FLAG_READER_NFC_A" since="19" />
-		<field name="FLAG_READER_NFC_B" since="19" />
-		<field name="FLAG_READER_NFC_BARCODE" since="19" />
-		<field name="FLAG_READER_NFC_F" since="19" />
-		<field name="FLAG_READER_NFC_V" since="19" />
-		<field name="FLAG_READER_NO_PLATFORM_SOUNDS" since="19" />
-		<field name="FLAG_READER_SKIP_NDEF_CHECK" since="19" />
-		<field name="STATE_OFF" since="18" />
-		<field name="STATE_ON" since="18" />
-		<field name="STATE_TURNING_OFF" since="18" />
-		<field name="STATE_TURNING_ON" since="18" />
-	</class>
-	<class name="android/nfc/NfcAdapter$CreateBeamUrisCallback" since="16">
-		<extends name="java/lang/Object" />
-		<method name="createBeamUris(Landroid/nfc/NfcEvent;)[Landroid/net/Uri;" />
-	</class>
-	<class name="android/nfc/NfcAdapter$CreateNdefMessageCallback" since="14">
-		<extends name="java/lang/Object" />
-		<method name="createNdefMessage(Landroid/nfc/NfcEvent;)Landroid/nfc/NdefMessage;" />
-	</class>
-	<class name="android/nfc/NfcAdapter$OnNdefPushCompleteCallback" since="14">
-		<extends name="java/lang/Object" />
-		<method name="onNdefPushComplete(Landroid/nfc/NfcEvent;)V" />
-	</class>
-	<class name="android/nfc/NfcAdapter$ReaderCallback" since="19">
-		<extends name="java/lang/Object" />
-		<method name="onTagDiscovered(Landroid/nfc/Tag;)V" />
-	</class>
-	<class name="android/nfc/NfcEvent" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="nfcAdapter" />
-	</class>
-	<class name="android/nfc/NfcManager" since="10">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getDefaultAdapter()Landroid/nfc/NfcAdapter;" />
-	</class>
-	<class name="android/nfc/Tag" since="10">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getId()[B" />
-		<method name="getTechList()[Ljava/lang/String;" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/nfc/TagLostException" since="10">
-		<extends name="java/io/IOException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/nfc/cardemulation/CardEmulation" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="categoryAllowsForegroundPreference(Ljava/lang/String;)Z" since="21" />
-		<method name="getAidsForService(Landroid/content/ComponentName;Ljava/lang/String;)Ljava/util/List;" since="21" />
-		<method name="getInstance(Landroid/nfc/NfcAdapter;)Landroid/nfc/cardemulation/CardEmulation;" />
-		<method name="getSelectionModeForCategory(Ljava/lang/String;)I" />
-		<method name="isDefaultServiceForAid(Landroid/content/ComponentName;Ljava/lang/String;)Z" />
-		<method name="isDefaultServiceForCategory(Landroid/content/ComponentName;Ljava/lang/String;)Z" />
-		<method name="registerAidsForService(Landroid/content/ComponentName;Ljava/lang/String;Ljava/util/List;)Z" since="21" />
-		<method name="removeAidsForService(Landroid/content/ComponentName;Ljava/lang/String;)Z" since="21" />
-		<method name="setPreferredService(Landroid/app/Activity;Landroid/content/ComponentName;)Z" since="21" />
-		<method name="unsetPreferredService(Landroid/app/Activity;)Z" since="21" />
-		<field name="ACTION_CHANGE_DEFAULT" />
-		<field name="CATEGORY_OTHER" />
-		<field name="CATEGORY_PAYMENT" />
-		<field name="EXTRA_CATEGORY" />
-		<field name="EXTRA_SERVICE_COMPONENT" />
-		<field name="SELECTION_MODE_ALWAYS_ASK" />
-		<field name="SELECTION_MODE_ASK_IF_CONFLICT" />
-		<field name="SELECTION_MODE_PREFER_DEFAULT" />
-	</class>
-	<class name="android/nfc/cardemulation/HostApduService" since="19">
-		<extends name="android/app/Service" />
-		<method name="&lt;init>()V" />
-		<method name="notifyUnhandled()V" />
-		<method name="onDeactivated(I)V" />
-		<method name="processCommandApdu([BLandroid/os/Bundle;)[B" />
-		<method name="sendResponseApdu([B)V" />
-		<field name="DEACTIVATION_DESELECTED" />
-		<field name="DEACTIVATION_LINK_LOSS" />
-		<field name="SERVICE_INTERFACE" />
-		<field name="SERVICE_META_DATA" />
-	</class>
-	<class name="android/nfc/cardemulation/OffHostApduService" since="19">
-		<extends name="android/app/Service" />
-		<method name="&lt;init>()V" />
-		<field name="SERVICE_INTERFACE" />
-		<field name="SERVICE_META_DATA" />
-	</class>
-	<class name="android/nfc/tech/BasicTagTechnology" since="10">
-		<extends name="java/lang/Object" />
-		<implements name="android/nfc/tech/TagTechnology" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/nfc/tech/IsoDep" since="10">
-		<extends name="android/nfc/tech/BasicTagTechnology" />
-		<method name="&lt;init>()V" />
-		<method name="get(Landroid/nfc/Tag;)Landroid/nfc/tech/IsoDep;" />
-		<method name="getHiLayerResponse()[B" />
-		<method name="getHistoricalBytes()[B" />
-		<method name="getMaxTransceiveLength()I" since="14" />
-		<method name="getTimeout()I" since="14" />
-		<method name="isExtendedLengthApduSupported()Z" since="16" />
-		<method name="setTimeout(I)V" />
-		<method name="transceive([B)[B" />
-	</class>
-	<class name="android/nfc/tech/MifareClassic" since="10">
-		<extends name="android/nfc/tech/BasicTagTechnology" />
-		<method name="&lt;init>()V" />
-		<method name="authenticateSectorWithKeyA(I[B)Z" />
-		<method name="authenticateSectorWithKeyB(I[B)Z" />
-		<method name="blockToSector(I)I" />
-		<method name="decrement(II)V" />
-		<method name="get(Landroid/nfc/Tag;)Landroid/nfc/tech/MifareClassic;" />
-		<method name="getBlockCount()I" />
-		<method name="getBlockCountInSector(I)I" />
-		<method name="getMaxTransceiveLength()I" since="14" />
-		<method name="getSectorCount()I" />
-		<method name="getSize()I" />
-		<method name="getTimeout()I" since="14" />
-		<method name="getType()I" />
-		<method name="increment(II)V" />
-		<method name="readBlock(I)[B" />
-		<method name="restore(I)V" />
-		<method name="sectorToBlock(I)I" />
-		<method name="setTimeout(I)V" since="14" />
-		<method name="transceive([B)[B" />
-		<method name="transfer(I)V" />
-		<method name="writeBlock(I[B)V" />
-		<field name="BLOCK_SIZE" />
-		<field name="KEY_DEFAULT" />
-		<field name="KEY_MIFARE_APPLICATION_DIRECTORY" />
-		<field name="KEY_NFC_FORUM" />
-		<field name="SIZE_1K" />
-		<field name="SIZE_2K" />
-		<field name="SIZE_4K" />
-		<field name="SIZE_MINI" />
-		<field name="TYPE_CLASSIC" />
-		<field name="TYPE_PLUS" />
-		<field name="TYPE_PRO" />
-		<field name="TYPE_UNKNOWN" />
-	</class>
-	<class name="android/nfc/tech/MifareUltralight" since="10">
-		<extends name="android/nfc/tech/BasicTagTechnology" />
-		<method name="&lt;init>()V" />
-		<method name="get(Landroid/nfc/Tag;)Landroid/nfc/tech/MifareUltralight;" />
-		<method name="getMaxTransceiveLength()I" since="14" />
-		<method name="getTimeout()I" since="14" />
-		<method name="getType()I" />
-		<method name="readPages(I)[B" />
-		<method name="setTimeout(I)V" since="14" />
-		<method name="transceive([B)[B" />
-		<method name="writePage(I[B)V" />
-		<field name="PAGE_SIZE" />
-		<field name="TYPE_ULTRALIGHT" />
-		<field name="TYPE_ULTRALIGHT_C" />
-		<field name="TYPE_UNKNOWN" />
-	</class>
-	<class name="android/nfc/tech/Ndef" since="10">
-		<extends name="android/nfc/tech/BasicTagTechnology" />
-		<method name="&lt;init>()V" />
-		<method name="canMakeReadOnly()Z" />
-		<method name="get(Landroid/nfc/Tag;)Landroid/nfc/tech/Ndef;" />
-		<method name="getCachedNdefMessage()Landroid/nfc/NdefMessage;" />
-		<method name="getMaxSize()I" />
-		<method name="getNdefMessage()Landroid/nfc/NdefMessage;" />
-		<method name="getType()Ljava/lang/String;" />
-		<method name="isWritable()Z" />
-		<method name="makeReadOnly()Z" />
-		<method name="writeNdefMessage(Landroid/nfc/NdefMessage;)V" />
-		<field name="MIFARE_CLASSIC" />
-		<field name="NFC_FORUM_TYPE_1" />
-		<field name="NFC_FORUM_TYPE_2" />
-		<field name="NFC_FORUM_TYPE_3" />
-		<field name="NFC_FORUM_TYPE_4" />
-	</class>
-	<class name="android/nfc/tech/NdefFormatable" since="10">
-		<extends name="android/nfc/tech/BasicTagTechnology" />
-		<method name="&lt;init>()V" />
-		<method name="format(Landroid/nfc/NdefMessage;)V" />
-		<method name="formatReadOnly(Landroid/nfc/NdefMessage;)V" />
-		<method name="get(Landroid/nfc/Tag;)Landroid/nfc/tech/NdefFormatable;" />
-	</class>
-	<class name="android/nfc/tech/NfcA" since="10">
-		<extends name="android/nfc/tech/BasicTagTechnology" />
-		<method name="&lt;init>()V" />
-		<method name="get(Landroid/nfc/Tag;)Landroid/nfc/tech/NfcA;" />
-		<method name="getAtqa()[B" />
-		<method name="getMaxTransceiveLength()I" since="14" />
-		<method name="getSak()S" />
-		<method name="getTimeout()I" since="14" />
-		<method name="setTimeout(I)V" since="14" />
-		<method name="transceive([B)[B" />
-	</class>
-	<class name="android/nfc/tech/NfcB" since="10">
-		<extends name="android/nfc/tech/BasicTagTechnology" />
-		<method name="&lt;init>()V" />
-		<method name="get(Landroid/nfc/Tag;)Landroid/nfc/tech/NfcB;" />
-		<method name="getApplicationData()[B" />
-		<method name="getMaxTransceiveLength()I" since="14" />
-		<method name="getProtocolInfo()[B" />
-		<method name="transceive([B)[B" />
-	</class>
-	<class name="android/nfc/tech/NfcBarcode" since="17">
-		<extends name="android/nfc/tech/BasicTagTechnology" />
-		<method name="&lt;init>()V" />
-		<method name="get(Landroid/nfc/Tag;)Landroid/nfc/tech/NfcBarcode;" />
-		<method name="getBarcode()[B" />
-		<method name="getType()I" />
-		<field name="TYPE_KOVIO" />
-		<field name="TYPE_UNKNOWN" />
-	</class>
-	<class name="android/nfc/tech/NfcF" since="10">
-		<extends name="android/nfc/tech/BasicTagTechnology" />
-		<method name="&lt;init>()V" />
-		<method name="get(Landroid/nfc/Tag;)Landroid/nfc/tech/NfcF;" />
-		<method name="getManufacturer()[B" />
-		<method name="getMaxTransceiveLength()I" since="14" />
-		<method name="getSystemCode()[B" />
-		<method name="getTimeout()I" since="14" />
-		<method name="setTimeout(I)V" since="14" />
-		<method name="transceive([B)[B" />
-	</class>
-	<class name="android/nfc/tech/NfcV" since="10">
-		<extends name="android/nfc/tech/BasicTagTechnology" />
-		<method name="&lt;init>()V" />
-		<method name="get(Landroid/nfc/Tag;)Landroid/nfc/tech/NfcV;" />
-		<method name="getDsfId()B" />
-		<method name="getMaxTransceiveLength()I" since="14" />
-		<method name="getResponseFlags()B" />
-		<method name="transceive([B)[B" />
-	</class>
-	<class name="android/nfc/tech/TagTechnology" since="10">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Closeable" />
-		<method name="connect()V" />
-		<method name="getTag()Landroid/nfc/Tag;" />
-		<method name="isConnected()Z" />
-	</class>
-	<class name="android/opengl/EGL14" since="17">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="eglBindAPI(I)Z" />
-		<method name="eglBindTexImage(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLSurface;I)Z" />
-		<method name="eglChooseConfig(Landroid/opengl/EGLDisplay;[II[Landroid/opengl/EGLConfig;II[II)Z" />
-		<method name="eglCopyBuffers(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLSurface;I)Z" />
-		<method name="eglCreateContext(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLConfig;Landroid/opengl/EGLContext;[II)Landroid/opengl/EGLContext;" />
-		<method name="eglCreatePbufferFromClientBuffer(Landroid/opengl/EGLDisplay;IILandroid/opengl/EGLConfig;[II)Landroid/opengl/EGLSurface;" />
-		<method name="eglCreatePbufferSurface(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLConfig;[II)Landroid/opengl/EGLSurface;" />
-		<method name="eglCreatePixmapSurface(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLConfig;I[II)Landroid/opengl/EGLSurface;" />
-		<method name="eglCreateWindowSurface(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLConfig;Ljava/lang/Object;[II)Landroid/opengl/EGLSurface;" />
-		<method name="eglDestroyContext(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLContext;)Z" />
-		<method name="eglDestroySurface(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLSurface;)Z" />
-		<method name="eglGetConfigAttrib(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLConfig;I[II)Z" />
-		<method name="eglGetConfigs(Landroid/opengl/EGLDisplay;[Landroid/opengl/EGLConfig;II[II)Z" />
-		<method name="eglGetCurrentContext()Landroid/opengl/EGLContext;" />
-		<method name="eglGetCurrentDisplay()Landroid/opengl/EGLDisplay;" />
-		<method name="eglGetCurrentSurface(I)Landroid/opengl/EGLSurface;" />
-		<method name="eglGetDisplay(I)Landroid/opengl/EGLDisplay;" />
-		<method name="eglGetError()I" />
-		<method name="eglInitialize(Landroid/opengl/EGLDisplay;[II[II)Z" />
-		<method name="eglMakeCurrent(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLSurface;Landroid/opengl/EGLSurface;Landroid/opengl/EGLContext;)Z" />
-		<method name="eglQueryAPI()I" />
-		<method name="eglQueryContext(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLContext;I[II)Z" />
-		<method name="eglQueryString(Landroid/opengl/EGLDisplay;I)Ljava/lang/String;" />
-		<method name="eglQuerySurface(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLSurface;I[II)Z" />
-		<method name="eglReleaseTexImage(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLSurface;I)Z" />
-		<method name="eglReleaseThread()Z" />
-		<method name="eglSurfaceAttrib(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLSurface;II)Z" />
-		<method name="eglSwapBuffers(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLSurface;)Z" />
-		<method name="eglSwapInterval(Landroid/opengl/EGLDisplay;I)Z" />
-		<method name="eglTerminate(Landroid/opengl/EGLDisplay;)Z" />
-		<method name="eglWaitClient()Z" />
-		<method name="eglWaitGL()Z" />
-		<method name="eglWaitNative(I)Z" />
-		<field name="EGL_ALPHA_MASK_SIZE" />
-		<field name="EGL_ALPHA_SIZE" />
-		<field name="EGL_BACK_BUFFER" />
-		<field name="EGL_BAD_ACCESS" />
-		<field name="EGL_BAD_ALLOC" />
-		<field name="EGL_BAD_ATTRIBUTE" />
-		<field name="EGL_BAD_CONFIG" />
-		<field name="EGL_BAD_CONTEXT" />
-		<field name="EGL_BAD_CURRENT_SURFACE" />
-		<field name="EGL_BAD_DISPLAY" />
-		<field name="EGL_BAD_MATCH" />
-		<field name="EGL_BAD_NATIVE_PIXMAP" />
-		<field name="EGL_BAD_NATIVE_WINDOW" />
-		<field name="EGL_BAD_PARAMETER" />
-		<field name="EGL_BAD_SURFACE" />
-		<field name="EGL_BIND_TO_TEXTURE_RGB" />
-		<field name="EGL_BIND_TO_TEXTURE_RGBA" />
-		<field name="EGL_BLUE_SIZE" />
-		<field name="EGL_BUFFER_DESTROYED" />
-		<field name="EGL_BUFFER_PRESERVED" />
-		<field name="EGL_BUFFER_SIZE" />
-		<field name="EGL_CLIENT_APIS" />
-		<field name="EGL_COLOR_BUFFER_TYPE" />
-		<field name="EGL_CONFIG_CAVEAT" />
-		<field name="EGL_CONFIG_ID" />
-		<field name="EGL_CONFORMANT" />
-		<field name="EGL_CONTEXT_CLIENT_TYPE" />
-		<field name="EGL_CONTEXT_CLIENT_VERSION" />
-		<field name="EGL_CONTEXT_LOST" />
-		<field name="EGL_CORE_NATIVE_ENGINE" />
-		<field name="EGL_DEFAULT_DISPLAY" />
-		<field name="EGL_DEPTH_SIZE" />
-		<field name="EGL_DISPLAY_SCALING" />
-		<field name="EGL_DRAW" />
-		<field name="EGL_EXTENSIONS" />
-		<field name="EGL_FALSE" />
-		<field name="EGL_GREEN_SIZE" />
-		<field name="EGL_HEIGHT" />
-		<field name="EGL_HORIZONTAL_RESOLUTION" />
-		<field name="EGL_LARGEST_PBUFFER" />
-		<field name="EGL_LEVEL" />
-		<field name="EGL_LUMINANCE_BUFFER" />
-		<field name="EGL_LUMINANCE_SIZE" />
-		<field name="EGL_MATCH_NATIVE_PIXMAP" />
-		<field name="EGL_MAX_PBUFFER_HEIGHT" />
-		<field name="EGL_MAX_PBUFFER_PIXELS" />
-		<field name="EGL_MAX_PBUFFER_WIDTH" />
-		<field name="EGL_MAX_SWAP_INTERVAL" />
-		<field name="EGL_MIN_SWAP_INTERVAL" />
-		<field name="EGL_MIPMAP_LEVEL" />
-		<field name="EGL_MIPMAP_TEXTURE" />
-		<field name="EGL_MULTISAMPLE_RESOLVE" />
-		<field name="EGL_MULTISAMPLE_RESOLVE_BOX" />
-		<field name="EGL_MULTISAMPLE_RESOLVE_BOX_BIT" />
-		<field name="EGL_MULTISAMPLE_RESOLVE_DEFAULT" />
-		<field name="EGL_NATIVE_RENDERABLE" />
-		<field name="EGL_NATIVE_VISUAL_ID" />
-		<field name="EGL_NATIVE_VISUAL_TYPE" />
-		<field name="EGL_NONE" />
-		<field name="EGL_NON_CONFORMANT_CONFIG" />
-		<field name="EGL_NOT_INITIALIZED" />
-		<field name="EGL_NO_CONTEXT" />
-		<field name="EGL_NO_DISPLAY" />
-		<field name="EGL_NO_SURFACE" />
-		<field name="EGL_NO_TEXTURE" />
-		<field name="EGL_OPENGL_API" />
-		<field name="EGL_OPENGL_BIT" />
-		<field name="EGL_OPENGL_ES2_BIT" />
-		<field name="EGL_OPENGL_ES_API" />
-		<field name="EGL_OPENGL_ES_BIT" />
-		<field name="EGL_OPENVG_API" />
-		<field name="EGL_OPENVG_BIT" />
-		<field name="EGL_OPENVG_IMAGE" />
-		<field name="EGL_PBUFFER_BIT" />
-		<field name="EGL_PIXEL_ASPECT_RATIO" />
-		<field name="EGL_PIXMAP_BIT" />
-		<field name="EGL_READ" />
-		<field name="EGL_RED_SIZE" />
-		<field name="EGL_RENDERABLE_TYPE" />
-		<field name="EGL_RENDER_BUFFER" />
-		<field name="EGL_RGB_BUFFER" />
-		<field name="EGL_SAMPLES" />
-		<field name="EGL_SAMPLE_BUFFERS" />
-		<field name="EGL_SINGLE_BUFFER" />
-		<field name="EGL_SLOW_CONFIG" />
-		<field name="EGL_STENCIL_SIZE" />
-		<field name="EGL_SUCCESS" />
-		<field name="EGL_SURFACE_TYPE" />
-		<field name="EGL_SWAP_BEHAVIOR" />
-		<field name="EGL_SWAP_BEHAVIOR_PRESERVED_BIT" />
-		<field name="EGL_TEXTURE_2D" />
-		<field name="EGL_TEXTURE_FORMAT" />
-		<field name="EGL_TEXTURE_RGB" />
-		<field name="EGL_TEXTURE_RGBA" />
-		<field name="EGL_TEXTURE_TARGET" />
-		<field name="EGL_TRANSPARENT_BLUE_VALUE" />
-		<field name="EGL_TRANSPARENT_GREEN_VALUE" />
-		<field name="EGL_TRANSPARENT_RED_VALUE" />
-		<field name="EGL_TRANSPARENT_RGB" />
-		<field name="EGL_TRANSPARENT_TYPE" />
-		<field name="EGL_TRUE" />
-		<field name="EGL_VENDOR" />
-		<field name="EGL_VERSION" />
-		<field name="EGL_VERTICAL_RESOLUTION" />
-		<field name="EGL_VG_ALPHA_FORMAT" />
-		<field name="EGL_VG_ALPHA_FORMAT_NONPRE" />
-		<field name="EGL_VG_ALPHA_FORMAT_PRE" />
-		<field name="EGL_VG_ALPHA_FORMAT_PRE_BIT" />
-		<field name="EGL_VG_COLORSPACE" />
-		<field name="EGL_VG_COLORSPACE_LINEAR" />
-		<field name="EGL_VG_COLORSPACE_LINEAR_BIT" />
-		<field name="EGL_VG_COLORSPACE_sRGB" />
-		<field name="EGL_WIDTH" />
-		<field name="EGL_WINDOW_BIT" />
-	</class>
-	<class name="android/opengl/EGLConfig" since="17">
-		<extends name="android/opengl/EGLObjectHandle" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/opengl/EGLContext" since="17">
-		<extends name="android/opengl/EGLObjectHandle" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/opengl/EGLDisplay" since="17">
-		<extends name="android/opengl/EGLObjectHandle" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/opengl/EGLExt" since="18">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="eglPresentationTimeANDROID(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLSurface;J)Z" />
-		<field name="EGL_CONTEXT_FLAGS_KHR" />
-		<field name="EGL_CONTEXT_MAJOR_VERSION_KHR" />
-		<field name="EGL_CONTEXT_MINOR_VERSION_KHR" />
-		<field name="EGL_OPENGL_ES3_BIT_KHR" />
-	</class>
-	<class name="android/opengl/EGLObjectHandle" since="17">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(J)V" since="21" />
-		<method name="getHandle()I" />
-		<method name="getNativeHandle()J" since="21" />
-	</class>
-	<class name="android/opengl/EGLSurface" since="17">
-		<extends name="android/opengl/EGLObjectHandle" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/opengl/ETC1" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="decodeBlock(Ljava/nio/Buffer;Ljava/nio/Buffer;)V" />
-		<method name="decodeImage(Ljava/nio/Buffer;Ljava/nio/Buffer;IIII)V" />
-		<method name="encodeBlock(Ljava/nio/Buffer;ILjava/nio/Buffer;)V" />
-		<method name="encodeImage(Ljava/nio/Buffer;IIIILjava/nio/Buffer;)V" />
-		<method name="formatHeader(Ljava/nio/Buffer;II)V" />
-		<method name="getEncodedDataSize(II)I" />
-		<method name="getHeight(Ljava/nio/Buffer;)I" />
-		<method name="getWidth(Ljava/nio/Buffer;)I" />
-		<method name="isValid(Ljava/nio/Buffer;)Z" />
-		<field name="DECODED_BLOCK_SIZE" />
-		<field name="ENCODED_BLOCK_SIZE" />
-		<field name="ETC1_RGB8_OES" />
-		<field name="ETC_PKM_HEADER_SIZE" />
-	</class>
-	<class name="android/opengl/ETC1Util" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="compressTexture(Ljava/nio/Buffer;IIII)Landroid/opengl/ETC1Util$ETC1Texture;" />
-		<method name="createTexture(Ljava/io/InputStream;)Landroid/opengl/ETC1Util$ETC1Texture;" />
-		<method name="isETC1Supported()Z" />
-		<method name="loadTexture(IIIIILandroid/opengl/ETC1Util$ETC1Texture;)V" />
-		<method name="loadTexture(IIIIILjava/io/InputStream;)V" />
-		<method name="writeTexture(Landroid/opengl/ETC1Util$ETC1Texture;Ljava/io/OutputStream;)V" />
-	</class>
-	<class name="android/opengl/ETC1Util$ETC1Texture" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(IILjava/nio/ByteBuffer;)V" />
-		<method name="getData()Ljava/nio/ByteBuffer;" />
-		<method name="getHeight()I" />
-		<method name="getWidth()I" />
-	</class>
-	<class name="android/opengl/GLDebugHelper" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="wrap(Ljavax/microedition/khronos/egl/EGL;ILjava/io/Writer;)Ljavax/microedition/khronos/egl/EGL;" />
-		<method name="wrap(Ljavax/microedition/khronos/opengles/GL;ILjava/io/Writer;)Ljavax/microedition/khronos/opengles/GL;" />
-		<field name="CONFIG_CHECK_GL_ERROR" />
-		<field name="CONFIG_CHECK_THREAD" />
-		<field name="CONFIG_LOG_ARGUMENT_NAMES" />
-		<field name="ERROR_WRONG_THREAD" />
-	</class>
-	<class name="android/opengl/GLES10" since="4">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="glActiveTexture(I)V" />
-		<method name="glAlphaFunc(IF)V" />
-		<method name="glAlphaFuncx(II)V" />
-		<method name="glBindTexture(II)V" />
-		<method name="glBlendFunc(II)V" />
-		<method name="glClear(I)V" />
-		<method name="glClearColor(FFFF)V" />
-		<method name="glClearColorx(IIII)V" />
-		<method name="glClearDepthf(F)V" />
-		<method name="glClearDepthx(I)V" />
-		<method name="glClearStencil(I)V" />
-		<method name="glClientActiveTexture(I)V" />
-		<method name="glColor4f(FFFF)V" />
-		<method name="glColor4x(IIII)V" />
-		<method name="glColorMask(ZZZZ)V" />
-		<method name="glColorPointer(IIILjava/nio/Buffer;)V" />
-		<method name="glCompressedTexImage2D(IIIIIIILjava/nio/Buffer;)V" />
-		<method name="glCompressedTexSubImage2D(IIIIIIIILjava/nio/Buffer;)V" />
-		<method name="glCopyTexImage2D(IIIIIIII)V" />
-		<method name="glCopyTexSubImage2D(IIIIIIII)V" />
-		<method name="glCullFace(I)V" />
-		<method name="glDeleteTextures(ILjava/nio/IntBuffer;)V" />
-		<method name="glDeleteTextures(I[II)V" />
-		<method name="glDepthFunc(I)V" />
-		<method name="glDepthMask(Z)V" />
-		<method name="glDepthRangef(FF)V" />
-		<method name="glDepthRangex(II)V" />
-		<method name="glDisable(I)V" />
-		<method name="glDisableClientState(I)V" />
-		<method name="glDrawArrays(III)V" />
-		<method name="glDrawElements(IIILjava/nio/Buffer;)V" />
-		<method name="glEnable(I)V" />
-		<method name="glEnableClientState(I)V" />
-		<method name="glFinish()V" />
-		<method name="glFlush()V" />
-		<method name="glFogf(IF)V" />
-		<method name="glFogfv(ILjava/nio/FloatBuffer;)V" />
-		<method name="glFogfv(I[FI)V" />
-		<method name="glFogx(II)V" />
-		<method name="glFogxv(ILjava/nio/IntBuffer;)V" />
-		<method name="glFogxv(I[II)V" />
-		<method name="glFrontFace(I)V" />
-		<method name="glFrustumf(FFFFFF)V" />
-		<method name="glFrustumx(IIIIII)V" />
-		<method name="glGenTextures(ILjava/nio/IntBuffer;)V" />
-		<method name="glGenTextures(I[II)V" />
-		<method name="glGetError()I" />
-		<method name="glGetIntegerv(ILjava/nio/IntBuffer;)V" />
-		<method name="glGetIntegerv(I[II)V" />
-		<method name="glGetString(I)Ljava/lang/String;" />
-		<method name="glHint(II)V" />
-		<method name="glLightModelf(IF)V" />
-		<method name="glLightModelfv(ILjava/nio/FloatBuffer;)V" />
-		<method name="glLightModelfv(I[FI)V" />
-		<method name="glLightModelx(II)V" />
-		<method name="glLightModelxv(ILjava/nio/IntBuffer;)V" />
-		<method name="glLightModelxv(I[II)V" />
-		<method name="glLightf(IIF)V" />
-		<method name="glLightfv(IILjava/nio/FloatBuffer;)V" />
-		<method name="glLightfv(II[FI)V" />
-		<method name="glLightx(III)V" />
-		<method name="glLightxv(IILjava/nio/IntBuffer;)V" />
-		<method name="glLightxv(II[II)V" />
-		<method name="glLineWidth(F)V" />
-		<method name="glLineWidthx(I)V" />
-		<method name="glLoadIdentity()V" />
-		<method name="glLoadMatrixf(Ljava/nio/FloatBuffer;)V" />
-		<method name="glLoadMatrixf([FI)V" />
-		<method name="glLoadMatrixx(Ljava/nio/IntBuffer;)V" />
-		<method name="glLoadMatrixx([II)V" />
-		<method name="glLogicOp(I)V" />
-		<method name="glMaterialf(IIF)V" />
-		<method name="glMaterialfv(IILjava/nio/FloatBuffer;)V" />
-		<method name="glMaterialfv(II[FI)V" />
-		<method name="glMaterialx(III)V" />
-		<method name="glMaterialxv(IILjava/nio/IntBuffer;)V" />
-		<method name="glMaterialxv(II[II)V" />
-		<method name="glMatrixMode(I)V" />
-		<method name="glMultMatrixf(Ljava/nio/FloatBuffer;)V" />
-		<method name="glMultMatrixf([FI)V" />
-		<method name="glMultMatrixx(Ljava/nio/IntBuffer;)V" />
-		<method name="glMultMatrixx([II)V" />
-		<method name="glMultiTexCoord4f(IFFFF)V" />
-		<method name="glMultiTexCoord4x(IIIII)V" />
-		<method name="glNormal3f(FFF)V" />
-		<method name="glNormal3x(III)V" />
-		<method name="glNormalPointer(IILjava/nio/Buffer;)V" />
-		<method name="glOrthof(FFFFFF)V" />
-		<method name="glOrthox(IIIIII)V" />
-		<method name="glPixelStorei(II)V" />
-		<method name="glPointSize(F)V" />
-		<method name="glPointSizex(I)V" />
-		<method name="glPolygonOffset(FF)V" />
-		<method name="glPolygonOffsetx(II)V" />
-		<method name="glPopMatrix()V" />
-		<method name="glPushMatrix()V" />
-		<method name="glReadPixels(IIIIIILjava/nio/Buffer;)V" />
-		<method name="glRotatef(FFFF)V" />
-		<method name="glRotatex(IIII)V" />
-		<method name="glSampleCoverage(FZ)V" />
-		<method name="glSampleCoveragex(IZ)V" />
-		<method name="glScalef(FFF)V" />
-		<method name="glScalex(III)V" />
-		<method name="glScissor(IIII)V" />
-		<method name="glShadeModel(I)V" />
-		<method name="glStencilFunc(III)V" />
-		<method name="glStencilMask(I)V" />
-		<method name="glStencilOp(III)V" />
-		<method name="glTexCoordPointer(IIILjava/nio/Buffer;)V" />
-		<method name="glTexEnvf(IIF)V" />
-		<method name="glTexEnvfv(IILjava/nio/FloatBuffer;)V" />
-		<method name="glTexEnvfv(II[FI)V" />
-		<method name="glTexEnvx(III)V" />
-		<method name="glTexEnvxv(IILjava/nio/IntBuffer;)V" />
-		<method name="glTexEnvxv(II[II)V" />
-		<method name="glTexImage2D(IIIIIIIILjava/nio/Buffer;)V" />
-		<method name="glTexParameterf(IIF)V" />
-		<method name="glTexParameterx(III)V" />
-		<method name="glTexSubImage2D(IIIIIIIILjava/nio/Buffer;)V" />
-		<method name="glTranslatef(FFF)V" />
-		<method name="glTranslatex(III)V" />
-		<method name="glVertexPointer(IIILjava/nio/Buffer;)V" />
-		<method name="glViewport(IIII)V" />
-		<field name="GL_ADD" />
-		<field name="GL_ALIASED_LINE_WIDTH_RANGE" />
-		<field name="GL_ALIASED_POINT_SIZE_RANGE" />
-		<field name="GL_ALPHA" />
-		<field name="GL_ALPHA_BITS" />
-		<field name="GL_ALPHA_TEST" />
-		<field name="GL_ALWAYS" />
-		<field name="GL_AMBIENT" />
-		<field name="GL_AMBIENT_AND_DIFFUSE" />
-		<field name="GL_AND" />
-		<field name="GL_AND_INVERTED" />
-		<field name="GL_AND_REVERSE" />
-		<field name="GL_BACK" />
-		<field name="GL_BLEND" />
-		<field name="GL_BLUE_BITS" />
-		<field name="GL_BYTE" />
-		<field name="GL_CCW" />
-		<field name="GL_CLAMP_TO_EDGE" />
-		<field name="GL_CLEAR" />
-		<field name="GL_COLOR_ARRAY" />
-		<field name="GL_COLOR_BUFFER_BIT" />
-		<field name="GL_COLOR_LOGIC_OP" />
-		<field name="GL_COLOR_MATERIAL" />
-		<field name="GL_COMPRESSED_TEXTURE_FORMATS" />
-		<field name="GL_CONSTANT_ATTENUATION" />
-		<field name="GL_COPY" />
-		<field name="GL_COPY_INVERTED" />
-		<field name="GL_CULL_FACE" />
-		<field name="GL_CW" />
-		<field name="GL_DECAL" />
-		<field name="GL_DECR" />
-		<field name="GL_DEPTH_BITS" />
-		<field name="GL_DEPTH_BUFFER_BIT" />
-		<field name="GL_DEPTH_TEST" />
-		<field name="GL_DIFFUSE" />
-		<field name="GL_DITHER" />
-		<field name="GL_DONT_CARE" />
-		<field name="GL_DST_ALPHA" />
-		<field name="GL_DST_COLOR" />
-		<field name="GL_EMISSION" />
-		<field name="GL_EQUAL" />
-		<field name="GL_EQUIV" />
-		<field name="GL_EXP" />
-		<field name="GL_EXP2" />
-		<field name="GL_EXTENSIONS" />
-		<field name="GL_FALSE" />
-		<field name="GL_FASTEST" />
-		<field name="GL_FIXED" />
-		<field name="GL_FLAT" />
-		<field name="GL_FLOAT" />
-		<field name="GL_FOG" />
-		<field name="GL_FOG_COLOR" />
-		<field name="GL_FOG_DENSITY" />
-		<field name="GL_FOG_END" />
-		<field name="GL_FOG_HINT" />
-		<field name="GL_FOG_MODE" />
-		<field name="GL_FOG_START" />
-		<field name="GL_FRONT" />
-		<field name="GL_FRONT_AND_BACK" />
-		<field name="GL_GEQUAL" />
-		<field name="GL_GREATER" />
-		<field name="GL_GREEN_BITS" />
-		<field name="GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES" />
-		<field name="GL_IMPLEMENTATION_COLOR_READ_TYPE_OES" />
-		<field name="GL_INCR" />
-		<field name="GL_INVALID_ENUM" />
-		<field name="GL_INVALID_OPERATION" />
-		<field name="GL_INVALID_VALUE" />
-		<field name="GL_INVERT" />
-		<field name="GL_KEEP" />
-		<field name="GL_LEQUAL" />
-		<field name="GL_LESS" />
-		<field name="GL_LIGHT0" />
-		<field name="GL_LIGHT1" />
-		<field name="GL_LIGHT2" />
-		<field name="GL_LIGHT3" />
-		<field name="GL_LIGHT4" />
-		<field name="GL_LIGHT5" />
-		<field name="GL_LIGHT6" />
-		<field name="GL_LIGHT7" />
-		<field name="GL_LIGHTING" />
-		<field name="GL_LIGHT_MODEL_AMBIENT" />
-		<field name="GL_LIGHT_MODEL_TWO_SIDE" />
-		<field name="GL_LINEAR" />
-		<field name="GL_LINEAR_ATTENUATION" />
-		<field name="GL_LINEAR_MIPMAP_LINEAR" />
-		<field name="GL_LINEAR_MIPMAP_NEAREST" />
-		<field name="GL_LINES" />
-		<field name="GL_LINE_LOOP" />
-		<field name="GL_LINE_SMOOTH" />
-		<field name="GL_LINE_SMOOTH_HINT" />
-		<field name="GL_LINE_STRIP" />
-		<field name="GL_LUMINANCE" />
-		<field name="GL_LUMINANCE_ALPHA" />
-		<field name="GL_MAX_ELEMENTS_INDICES" />
-		<field name="GL_MAX_ELEMENTS_VERTICES" />
-		<field name="GL_MAX_LIGHTS" />
-		<field name="GL_MAX_MODELVIEW_STACK_DEPTH" />
-		<field name="GL_MAX_PROJECTION_STACK_DEPTH" />
-		<field name="GL_MAX_TEXTURE_SIZE" />
-		<field name="GL_MAX_TEXTURE_STACK_DEPTH" />
-		<field name="GL_MAX_TEXTURE_UNITS" />
-		<field name="GL_MAX_VIEWPORT_DIMS" />
-		<field name="GL_MODELVIEW" />
-		<field name="GL_MODULATE" />
-		<field name="GL_MULTISAMPLE" />
-		<field name="GL_NAND" />
-		<field name="GL_NEAREST" />
-		<field name="GL_NEAREST_MIPMAP_LINEAR" />
-		<field name="GL_NEAREST_MIPMAP_NEAREST" />
-		<field name="GL_NEVER" />
-		<field name="GL_NICEST" />
-		<field name="GL_NOOP" />
-		<field name="GL_NOR" />
-		<field name="GL_NORMALIZE" />
-		<field name="GL_NORMAL_ARRAY" />
-		<field name="GL_NOTEQUAL" />
-		<field name="GL_NO_ERROR" />
-		<field name="GL_NUM_COMPRESSED_TEXTURE_FORMATS" />
-		<field name="GL_ONE" />
-		<field name="GL_ONE_MINUS_DST_ALPHA" />
-		<field name="GL_ONE_MINUS_DST_COLOR" />
-		<field name="GL_ONE_MINUS_SRC_ALPHA" />
-		<field name="GL_ONE_MINUS_SRC_COLOR" />
-		<field name="GL_OR" />
-		<field name="GL_OR_INVERTED" />
-		<field name="GL_OR_REVERSE" />
-		<field name="GL_OUT_OF_MEMORY" />
-		<field name="GL_PACK_ALIGNMENT" />
-		<field name="GL_PALETTE4_R5_G6_B5_OES" />
-		<field name="GL_PALETTE4_RGB5_A1_OES" />
-		<field name="GL_PALETTE4_RGB8_OES" />
-		<field name="GL_PALETTE4_RGBA4_OES" />
-		<field name="GL_PALETTE4_RGBA8_OES" />
-		<field name="GL_PALETTE8_R5_G6_B5_OES" />
-		<field name="GL_PALETTE8_RGB5_A1_OES" />
-		<field name="GL_PALETTE8_RGB8_OES" />
-		<field name="GL_PALETTE8_RGBA4_OES" />
-		<field name="GL_PALETTE8_RGBA8_OES" />
-		<field name="GL_PERSPECTIVE_CORRECTION_HINT" />
-		<field name="GL_POINTS" />
-		<field name="GL_POINT_FADE_THRESHOLD_SIZE" />
-		<field name="GL_POINT_SIZE" />
-		<field name="GL_POINT_SMOOTH" />
-		<field name="GL_POINT_SMOOTH_HINT" />
-		<field name="GL_POLYGON_OFFSET_FILL" />
-		<field name="GL_POLYGON_SMOOTH_HINT" />
-		<field name="GL_POSITION" />
-		<field name="GL_PROJECTION" />
-		<field name="GL_QUADRATIC_ATTENUATION" />
-		<field name="GL_RED_BITS" />
-		<field name="GL_RENDERER" />
-		<field name="GL_REPEAT" />
-		<field name="GL_REPLACE" />
-		<field name="GL_RESCALE_NORMAL" />
-		<field name="GL_RGB" />
-		<field name="GL_RGBA" />
-		<field name="GL_SAMPLE_ALPHA_TO_COVERAGE" />
-		<field name="GL_SAMPLE_ALPHA_TO_ONE" />
-		<field name="GL_SAMPLE_COVERAGE" />
-		<field name="GL_SCISSOR_TEST" />
-		<field name="GL_SET" />
-		<field name="GL_SHININESS" />
-		<field name="GL_SHORT" />
-		<field name="GL_SMOOTH" />
-		<field name="GL_SMOOTH_LINE_WIDTH_RANGE" />
-		<field name="GL_SMOOTH_POINT_SIZE_RANGE" />
-		<field name="GL_SPECULAR" />
-		<field name="GL_SPOT_CUTOFF" />
-		<field name="GL_SPOT_DIRECTION" />
-		<field name="GL_SPOT_EXPONENT" />
-		<field name="GL_SRC_ALPHA" />
-		<field name="GL_SRC_ALPHA_SATURATE" />
-		<field name="GL_SRC_COLOR" />
-		<field name="GL_STACK_OVERFLOW" />
-		<field name="GL_STACK_UNDERFLOW" />
-		<field name="GL_STENCIL_BITS" />
-		<field name="GL_STENCIL_BUFFER_BIT" />
-		<field name="GL_STENCIL_TEST" />
-		<field name="GL_SUBPIXEL_BITS" />
-		<field name="GL_TEXTURE" />
-		<field name="GL_TEXTURE0" />
-		<field name="GL_TEXTURE1" />
-		<field name="GL_TEXTURE10" />
-		<field name="GL_TEXTURE11" />
-		<field name="GL_TEXTURE12" />
-		<field name="GL_TEXTURE13" />
-		<field name="GL_TEXTURE14" />
-		<field name="GL_TEXTURE15" />
-		<field name="GL_TEXTURE16" />
-		<field name="GL_TEXTURE17" />
-		<field name="GL_TEXTURE18" />
-		<field name="GL_TEXTURE19" />
-		<field name="GL_TEXTURE2" />
-		<field name="GL_TEXTURE20" />
-		<field name="GL_TEXTURE21" />
-		<field name="GL_TEXTURE22" />
-		<field name="GL_TEXTURE23" />
-		<field name="GL_TEXTURE24" />
-		<field name="GL_TEXTURE25" />
-		<field name="GL_TEXTURE26" />
-		<field name="GL_TEXTURE27" />
-		<field name="GL_TEXTURE28" />
-		<field name="GL_TEXTURE29" />
-		<field name="GL_TEXTURE3" />
-		<field name="GL_TEXTURE30" />
-		<field name="GL_TEXTURE31" />
-		<field name="GL_TEXTURE4" />
-		<field name="GL_TEXTURE5" />
-		<field name="GL_TEXTURE6" />
-		<field name="GL_TEXTURE7" />
-		<field name="GL_TEXTURE8" />
-		<field name="GL_TEXTURE9" />
-		<field name="GL_TEXTURE_2D" />
-		<field name="GL_TEXTURE_COORD_ARRAY" />
-		<field name="GL_TEXTURE_ENV" />
-		<field name="GL_TEXTURE_ENV_COLOR" />
-		<field name="GL_TEXTURE_ENV_MODE" />
-		<field name="GL_TEXTURE_MAG_FILTER" />
-		<field name="GL_TEXTURE_MIN_FILTER" />
-		<field name="GL_TEXTURE_WRAP_S" />
-		<field name="GL_TEXTURE_WRAP_T" />
-		<field name="GL_TRIANGLES" />
-		<field name="GL_TRIANGLE_FAN" />
-		<field name="GL_TRIANGLE_STRIP" />
-		<field name="GL_TRUE" />
-		<field name="GL_UNPACK_ALIGNMENT" />
-		<field name="GL_UNSIGNED_BYTE" />
-		<field name="GL_UNSIGNED_SHORT" />
-		<field name="GL_UNSIGNED_SHORT_4_4_4_4" />
-		<field name="GL_UNSIGNED_SHORT_5_5_5_1" />
-		<field name="GL_UNSIGNED_SHORT_5_6_5" />
-		<field name="GL_VENDOR" />
-		<field name="GL_VERSION" />
-		<field name="GL_VERTEX_ARRAY" />
-		<field name="GL_XOR" />
-		<field name="GL_ZERO" />
-	</class>
-	<class name="android/opengl/GLES10Ext" since="4">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="glQueryMatrixxOES(Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;)I" />
-		<method name="glQueryMatrixxOES([II[II)I" />
-	</class>
-	<class name="android/opengl/GLES11" since="4">
-		<extends name="android/opengl/GLES10" />
-		<method name="&lt;init>()V" />
-		<method name="glBindBuffer(II)V" />
-		<method name="glBufferData(IILjava/nio/Buffer;I)V" />
-		<method name="glBufferSubData(IIILjava/nio/Buffer;)V" />
-		<method name="glClipPlanef(ILjava/nio/FloatBuffer;)V" />
-		<method name="glClipPlanef(I[FI)V" />
-		<method name="glClipPlanex(ILjava/nio/IntBuffer;)V" />
-		<method name="glClipPlanex(I[II)V" />
-		<method name="glColor4ub(BBBB)V" />
-		<method name="glColorPointer(IIII)V" />
-		<method name="glDeleteBuffers(ILjava/nio/IntBuffer;)V" />
-		<method name="glDeleteBuffers(I[II)V" />
-		<method name="glDrawElements(IIII)V" />
-		<method name="glGenBuffers(ILjava/nio/IntBuffer;)V" />
-		<method name="glGenBuffers(I[II)V" />
-		<method name="glGetBooleanv(ILjava/nio/IntBuffer;)V" />
-		<method name="glGetBooleanv(I[ZI)V" />
-		<method name="glGetBufferParameteriv(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetBufferParameteriv(II[II)V" />
-		<method name="glGetClipPlanef(ILjava/nio/FloatBuffer;)V" />
-		<method name="glGetClipPlanef(I[FI)V" />
-		<method name="glGetClipPlanex(ILjava/nio/IntBuffer;)V" />
-		<method name="glGetClipPlanex(I[II)V" />
-		<method name="glGetFixedv(ILjava/nio/IntBuffer;)V" />
-		<method name="glGetFixedv(I[II)V" />
-		<method name="glGetFloatv(ILjava/nio/FloatBuffer;)V" />
-		<method name="glGetFloatv(I[FI)V" />
-		<method name="glGetLightfv(IILjava/nio/FloatBuffer;)V" />
-		<method name="glGetLightfv(II[FI)V" />
-		<method name="glGetLightxv(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetLightxv(II[II)V" />
-		<method name="glGetMaterialfv(IILjava/nio/FloatBuffer;)V" />
-		<method name="glGetMaterialfv(II[FI)V" />
-		<method name="glGetMaterialxv(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetMaterialxv(II[II)V" />
-		<method name="glGetTexEnvfv(IILjava/nio/FloatBuffer;)V" />
-		<method name="glGetTexEnvfv(II[FI)V" />
-		<method name="glGetTexEnviv(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetTexEnviv(II[II)V" />
-		<method name="glGetTexEnvxv(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetTexEnvxv(II[II)V" />
-		<method name="glGetTexParameterfv(IILjava/nio/FloatBuffer;)V" />
-		<method name="glGetTexParameterfv(II[FI)V" />
-		<method name="glGetTexParameteriv(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetTexParameteriv(II[II)V" />
-		<method name="glGetTexParameterxv(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetTexParameterxv(II[II)V" />
-		<method name="glIsBuffer(I)Z" />
-		<method name="glIsEnabled(I)Z" />
-		<method name="glIsTexture(I)Z" />
-		<method name="glNormalPointer(III)V" />
-		<method name="glPointParameterf(IF)V" />
-		<method name="glPointParameterfv(ILjava/nio/FloatBuffer;)V" />
-		<method name="glPointParameterfv(I[FI)V" />
-		<method name="glPointParameterx(II)V" />
-		<method name="glPointParameterxv(ILjava/nio/IntBuffer;)V" />
-		<method name="glPointParameterxv(I[II)V" />
-		<method name="glPointSizePointerOES(IILjava/nio/Buffer;)V" />
-		<method name="glTexCoordPointer(IIII)V" />
-		<method name="glTexEnvi(III)V" />
-		<method name="glTexEnviv(IILjava/nio/IntBuffer;)V" />
-		<method name="glTexEnviv(II[II)V" />
-		<method name="glTexParameterfv(IILjava/nio/FloatBuffer;)V" />
-		<method name="glTexParameterfv(II[FI)V" />
-		<method name="glTexParameteri(III)V" />
-		<method name="glTexParameteriv(IILjava/nio/IntBuffer;)V" />
-		<method name="glTexParameteriv(II[II)V" />
-		<method name="glTexParameterxv(IILjava/nio/IntBuffer;)V" />
-		<method name="glTexParameterxv(II[II)V" />
-		<method name="glVertexPointer(IIII)V" />
-		<field name="GL_ACTIVE_TEXTURE" />
-		<field name="GL_ADD_SIGNED" />
-		<field name="GL_ALPHA_SCALE" />
-		<field name="GL_ALPHA_TEST_FUNC" />
-		<field name="GL_ALPHA_TEST_REF" />
-		<field name="GL_ARRAY_BUFFER" />
-		<field name="GL_ARRAY_BUFFER_BINDING" />
-		<field name="GL_BLEND_DST" />
-		<field name="GL_BLEND_SRC" />
-		<field name="GL_BUFFER_ACCESS" />
-		<field name="GL_BUFFER_SIZE" />
-		<field name="GL_BUFFER_USAGE" />
-		<field name="GL_CLIENT_ACTIVE_TEXTURE" />
-		<field name="GL_CLIP_PLANE0" />
-		<field name="GL_CLIP_PLANE1" />
-		<field name="GL_CLIP_PLANE2" />
-		<field name="GL_CLIP_PLANE3" />
-		<field name="GL_CLIP_PLANE4" />
-		<field name="GL_CLIP_PLANE5" />
-		<field name="GL_COLOR_ARRAY_BUFFER_BINDING" />
-		<field name="GL_COLOR_ARRAY_POINTER" />
-		<field name="GL_COLOR_ARRAY_SIZE" />
-		<field name="GL_COLOR_ARRAY_STRIDE" />
-		<field name="GL_COLOR_ARRAY_TYPE" />
-		<field name="GL_COLOR_CLEAR_VALUE" />
-		<field name="GL_COLOR_WRITEMASK" />
-		<field name="GL_COMBINE" />
-		<field name="GL_COMBINE_ALPHA" />
-		<field name="GL_COMBINE_RGB" />
-		<field name="GL_CONSTANT" />
-		<field name="GL_COORD_REPLACE_OES" />
-		<field name="GL_CULL_FACE_MODE" />
-		<field name="GL_CURRENT_COLOR" />
-		<field name="GL_CURRENT_NORMAL" />
-		<field name="GL_CURRENT_TEXTURE_COORDS" />
-		<field name="GL_DEPTH_CLEAR_VALUE" />
-		<field name="GL_DEPTH_FUNC" />
-		<field name="GL_DEPTH_RANGE" />
-		<field name="GL_DEPTH_WRITEMASK" />
-		<field name="GL_DOT3_RGB" />
-		<field name="GL_DOT3_RGBA" />
-		<field name="GL_DYNAMIC_DRAW" />
-		<field name="GL_ELEMENT_ARRAY_BUFFER" />
-		<field name="GL_ELEMENT_ARRAY_BUFFER_BINDING" />
-		<field name="GL_FRONT_FACE" />
-		<field name="GL_GENERATE_MIPMAP" />
-		<field name="GL_GENERATE_MIPMAP_HINT" />
-		<field name="GL_INTERPOLATE" />
-		<field name="GL_LINE_WIDTH" />
-		<field name="GL_LOGIC_OP_MODE" />
-		<field name="GL_MATRIX_MODE" />
-		<field name="GL_MAX_CLIP_PLANES" />
-		<field name="GL_MODELVIEW_MATRIX" />
-		<field name="GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES" />
-		<field name="GL_MODELVIEW_STACK_DEPTH" />
-		<field name="GL_NORMAL_ARRAY_BUFFER_BINDING" />
-		<field name="GL_NORMAL_ARRAY_POINTER" />
-		<field name="GL_NORMAL_ARRAY_STRIDE" />
-		<field name="GL_NORMAL_ARRAY_TYPE" />
-		<field name="GL_OPERAND0_ALPHA" />
-		<field name="GL_OPERAND0_RGB" />
-		<field name="GL_OPERAND1_ALPHA" />
-		<field name="GL_OPERAND1_RGB" />
-		<field name="GL_OPERAND2_ALPHA" />
-		<field name="GL_OPERAND2_RGB" />
-		<field name="GL_POINT_DISTANCE_ATTENUATION" />
-		<field name="GL_POINT_FADE_THRESHOLD_SIZE" />
-		<field name="GL_POINT_SIZE" />
-		<field name="GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES" />
-		<field name="GL_POINT_SIZE_ARRAY_OES" />
-		<field name="GL_POINT_SIZE_ARRAY_POINTER_OES" />
-		<field name="GL_POINT_SIZE_ARRAY_STRIDE_OES" />
-		<field name="GL_POINT_SIZE_ARRAY_TYPE_OES" />
-		<field name="GL_POINT_SIZE_MAX" />
-		<field name="GL_POINT_SIZE_MIN" />
-		<field name="GL_POINT_SPRITE_OES" />
-		<field name="GL_POLYGON_OFFSET_FACTOR" />
-		<field name="GL_POLYGON_OFFSET_UNITS" />
-		<field name="GL_PREVIOUS" />
-		<field name="GL_PRIMARY_COLOR" />
-		<field name="GL_PROJECTION_MATRIX" />
-		<field name="GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES" />
-		<field name="GL_PROJECTION_STACK_DEPTH" />
-		<field name="GL_RGB_SCALE" />
-		<field name="GL_SAMPLES" />
-		<field name="GL_SAMPLE_BUFFERS" />
-		<field name="GL_SAMPLE_COVERAGE_INVERT" />
-		<field name="GL_SAMPLE_COVERAGE_VALUE" />
-		<field name="GL_SCISSOR_BOX" />
-		<field name="GL_SHADE_MODEL" />
-		<field name="GL_SRC0_ALPHA" />
-		<field name="GL_SRC0_RGB" />
-		<field name="GL_SRC1_ALPHA" />
-		<field name="GL_SRC1_RGB" />
-		<field name="GL_SRC2_ALPHA" />
-		<field name="GL_SRC2_RGB" />
-		<field name="GL_STATIC_DRAW" />
-		<field name="GL_STENCIL_CLEAR_VALUE" />
-		<field name="GL_STENCIL_FAIL" />
-		<field name="GL_STENCIL_FUNC" />
-		<field name="GL_STENCIL_PASS_DEPTH_FAIL" />
-		<field name="GL_STENCIL_PASS_DEPTH_PASS" />
-		<field name="GL_STENCIL_REF" />
-		<field name="GL_STENCIL_VALUE_MASK" />
-		<field name="GL_STENCIL_WRITEMASK" />
-		<field name="GL_SUBTRACT" />
-		<field name="GL_TEXTURE_BINDING_2D" />
-		<field name="GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING" />
-		<field name="GL_TEXTURE_COORD_ARRAY_POINTER" />
-		<field name="GL_TEXTURE_COORD_ARRAY_SIZE" />
-		<field name="GL_TEXTURE_COORD_ARRAY_STRIDE" />
-		<field name="GL_TEXTURE_COORD_ARRAY_TYPE" />
-		<field name="GL_TEXTURE_MATRIX" />
-		<field name="GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES" />
-		<field name="GL_TEXTURE_STACK_DEPTH" />
-		<field name="GL_VERTEX_ARRAY_BUFFER_BINDING" />
-		<field name="GL_VERTEX_ARRAY_POINTER" />
-		<field name="GL_VERTEX_ARRAY_SIZE" />
-		<field name="GL_VERTEX_ARRAY_STRIDE" />
-		<field name="GL_VERTEX_ARRAY_TYPE" />
-		<field name="GL_VIEWPORT" />
-		<field name="GL_WRITE_ONLY" />
-	</class>
-	<class name="android/opengl/GLES11Ext" since="4">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="glAlphaFuncxOES(II)V" />
-		<method name="glBindFramebufferOES(II)V" />
-		<method name="glBindRenderbufferOES(II)V" />
-		<method name="glBlendEquationOES(I)V" />
-		<method name="glBlendEquationSeparateOES(II)V" />
-		<method name="glBlendFuncSeparateOES(IIII)V" />
-		<method name="glCheckFramebufferStatusOES(I)I" />
-		<method name="glClearColorxOES(IIII)V" />
-		<method name="glClearDepthfOES(F)V" />
-		<method name="glClearDepthxOES(I)V" />
-		<method name="glClipPlanefOES(ILjava/nio/FloatBuffer;)V" />
-		<method name="glClipPlanefOES(I[FI)V" />
-		<method name="glClipPlanexOES(ILjava/nio/IntBuffer;)V" />
-		<method name="glClipPlanexOES(I[II)V" />
-		<method name="glColor4xOES(IIII)V" />
-		<method name="glCurrentPaletteMatrixOES(I)V" />
-		<method name="glDeleteFramebuffersOES(ILjava/nio/IntBuffer;)V" />
-		<method name="glDeleteFramebuffersOES(I[II)V" />
-		<method name="glDeleteRenderbuffersOES(ILjava/nio/IntBuffer;)V" />
-		<method name="glDeleteRenderbuffersOES(I[II)V" />
-		<method name="glDepthRangefOES(FF)V" />
-		<method name="glDepthRangexOES(II)V" />
-		<method name="glDrawTexfOES(FFFFF)V" />
-		<method name="glDrawTexfvOES(Ljava/nio/FloatBuffer;)V" />
-		<method name="glDrawTexfvOES([FI)V" />
-		<method name="glDrawTexiOES(IIIII)V" />
-		<method name="glDrawTexivOES(Ljava/nio/IntBuffer;)V" />
-		<method name="glDrawTexivOES([II)V" />
-		<method name="glDrawTexsOES(SSSSS)V" />
-		<method name="glDrawTexsvOES(Ljava/nio/ShortBuffer;)V" />
-		<method name="glDrawTexsvOES([SI)V" />
-		<method name="glDrawTexxOES(IIIII)V" />
-		<method name="glDrawTexxvOES(Ljava/nio/IntBuffer;)V" />
-		<method name="glDrawTexxvOES([II)V" />
-		<method name="glEGLImageTargetRenderbufferStorageOES(ILjava/nio/Buffer;)V" />
-		<method name="glEGLImageTargetTexture2DOES(ILjava/nio/Buffer;)V" />
-		<method name="glFogxOES(II)V" />
-		<method name="glFogxvOES(ILjava/nio/IntBuffer;)V" />
-		<method name="glFogxvOES(I[II)V" />
-		<method name="glFramebufferRenderbufferOES(IIII)V" />
-		<method name="glFramebufferTexture2DOES(IIIII)V" />
-		<method name="glFrustumfOES(FFFFFF)V" />
-		<method name="glFrustumxOES(IIIIII)V" />
-		<method name="glGenFramebuffersOES(ILjava/nio/IntBuffer;)V" />
-		<method name="glGenFramebuffersOES(I[II)V" />
-		<method name="glGenRenderbuffersOES(ILjava/nio/IntBuffer;)V" />
-		<method name="glGenRenderbuffersOES(I[II)V" />
-		<method name="glGenerateMipmapOES(I)V" />
-		<method name="glGetClipPlanefOES(ILjava/nio/FloatBuffer;)V" />
-		<method name="glGetClipPlanefOES(I[FI)V" />
-		<method name="glGetClipPlanexOES(ILjava/nio/IntBuffer;)V" />
-		<method name="glGetClipPlanexOES(I[II)V" />
-		<method name="glGetFixedvOES(ILjava/nio/IntBuffer;)V" />
-		<method name="glGetFixedvOES(I[II)V" />
-		<method name="glGetFramebufferAttachmentParameterivOES(IIILjava/nio/IntBuffer;)V" />
-		<method name="glGetFramebufferAttachmentParameterivOES(III[II)V" />
-		<method name="glGetLightxvOES(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetLightxvOES(II[II)V" />
-		<method name="glGetMaterialxvOES(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetMaterialxvOES(II[II)V" />
-		<method name="glGetRenderbufferParameterivOES(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetRenderbufferParameterivOES(II[II)V" />
-		<method name="glGetTexEnvxvOES(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetTexEnvxvOES(II[II)V" />
-		<method name="glGetTexGenfvOES(IILjava/nio/FloatBuffer;)V" />
-		<method name="glGetTexGenfvOES(II[FI)V" />
-		<method name="glGetTexGenivOES(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetTexGenivOES(II[II)V" />
-		<method name="glGetTexGenxvOES(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetTexGenxvOES(II[II)V" />
-		<method name="glGetTexParameterxvOES(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetTexParameterxvOES(II[II)V" />
-		<method name="glIsFramebufferOES(I)Z" />
-		<method name="glIsRenderbufferOES(I)Z" />
-		<method name="glLightModelxOES(II)V" />
-		<method name="glLightModelxvOES(ILjava/nio/IntBuffer;)V" />
-		<method name="glLightModelxvOES(I[II)V" />
-		<method name="glLightxOES(III)V" />
-		<method name="glLightxvOES(IILjava/nio/IntBuffer;)V" />
-		<method name="glLightxvOES(II[II)V" />
-		<method name="glLineWidthxOES(I)V" />
-		<method name="glLoadMatrixxOES(Ljava/nio/IntBuffer;)V" />
-		<method name="glLoadMatrixxOES([II)V" />
-		<method name="glLoadPaletteFromModelViewMatrixOES()V" />
-		<method name="glMaterialxOES(III)V" />
-		<method name="glMaterialxvOES(IILjava/nio/IntBuffer;)V" />
-		<method name="glMaterialxvOES(II[II)V" />
-		<method name="glMatrixIndexPointerOES(IIILjava/nio/Buffer;)V" />
-		<method name="glMultMatrixxOES(Ljava/nio/IntBuffer;)V" />
-		<method name="glMultMatrixxOES([II)V" />
-		<method name="glMultiTexCoord4xOES(IIIII)V" />
-		<method name="glNormal3xOES(III)V" />
-		<method name="glOrthofOES(FFFFFF)V" />
-		<method name="glOrthoxOES(IIIIII)V" />
-		<method name="glPointParameterxOES(II)V" />
-		<method name="glPointParameterxvOES(ILjava/nio/IntBuffer;)V" />
-		<method name="glPointParameterxvOES(I[II)V" />
-		<method name="glPointSizexOES(I)V" />
-		<method name="glPolygonOffsetxOES(II)V" />
-		<method name="glRenderbufferStorageOES(IIII)V" />
-		<method name="glRotatexOES(IIII)V" />
-		<method name="glSampleCoveragexOES(IZ)V" />
-		<method name="glScalexOES(III)V" />
-		<method name="glTexEnvxOES(III)V" />
-		<method name="glTexEnvxvOES(IILjava/nio/IntBuffer;)V" />
-		<method name="glTexEnvxvOES(II[II)V" />
-		<method name="glTexGenfOES(IIF)V" />
-		<method name="glTexGenfvOES(IILjava/nio/FloatBuffer;)V" />
-		<method name="glTexGenfvOES(II[FI)V" />
-		<method name="glTexGeniOES(III)V" />
-		<method name="glTexGenivOES(IILjava/nio/IntBuffer;)V" />
-		<method name="glTexGenivOES(II[II)V" />
-		<method name="glTexGenxOES(III)V" />
-		<method name="glTexGenxvOES(IILjava/nio/IntBuffer;)V" />
-		<method name="glTexGenxvOES(II[II)V" />
-		<method name="glTexParameterxOES(III)V" />
-		<method name="glTexParameterxvOES(IILjava/nio/IntBuffer;)V" />
-		<method name="glTexParameterxvOES(II[II)V" />
-		<method name="glTranslatexOES(III)V" />
-		<method name="glWeightPointerOES(IIILjava/nio/Buffer;)V" />
-		<field name="GL_3DC_XY_AMD" />
-		<field name="GL_3DC_X_AMD" />
-		<field name="GL_ATC_RGBA_EXPLICIT_ALPHA_AMD" />
-		<field name="GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD" />
-		<field name="GL_ATC_RGB_AMD" />
-		<field name="GL_BGRA" />
-		<field name="GL_BLEND_DST_ALPHA_OES" />
-		<field name="GL_BLEND_DST_RGB_OES" />
-		<field name="GL_BLEND_EQUATION_ALPHA_OES" />
-		<field name="GL_BLEND_EQUATION_OES" />
-		<field name="GL_BLEND_EQUATION_RGB_OES" />
-		<field name="GL_BLEND_SRC_ALPHA_OES" />
-		<field name="GL_BLEND_SRC_RGB_OES" />
-		<field name="GL_BUFFER_ACCESS_OES" />
-		<field name="GL_BUFFER_MAPPED_OES" />
-		<field name="GL_BUFFER_MAP_POINTER_OES" />
-		<field name="GL_COLOR_ATTACHMENT0_OES" />
-		<field name="GL_CURRENT_PALETTE_MATRIX_OES" />
-		<field name="GL_DECR_WRAP_OES" />
-		<field name="GL_DEPTH24_STENCIL8_OES" />
-		<field name="GL_DEPTH_ATTACHMENT_OES" />
-		<field name="GL_DEPTH_COMPONENT16_OES" />
-		<field name="GL_DEPTH_COMPONENT24_OES" />
-		<field name="GL_DEPTH_COMPONENT32_OES" />
-		<field name="GL_DEPTH_STENCIL_OES" />
-		<field name="GL_ETC1_RGB8_OES" />
-		<field name="GL_FIXED_OES" />
-		<field name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES" />
-		<field name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES" />
-		<field name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES" />
-		<field name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES" />
-		<field name="GL_FRAMEBUFFER_BINDING_OES" />
-		<field name="GL_FRAMEBUFFER_COMPLETE_OES" />
-		<field name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES" />
-		<field name="GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES" />
-		<field name="GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES" />
-		<field name="GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES" />
-		<field name="GL_FRAMEBUFFER_OES" />
-		<field name="GL_FRAMEBUFFER_UNSUPPORTED_OES" />
-		<field name="GL_FUNC_ADD_OES" />
-		<field name="GL_FUNC_REVERSE_SUBTRACT_OES" />
-		<field name="GL_FUNC_SUBTRACT_OES" />
-		<field name="GL_INCR_WRAP_OES" />
-		<field name="GL_INVALID_FRAMEBUFFER_OPERATION_OES" />
-		<field name="GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES" />
-		<field name="GL_MATRIX_INDEX_ARRAY_OES" />
-		<field name="GL_MATRIX_INDEX_ARRAY_POINTER_OES" />
-		<field name="GL_MATRIX_INDEX_ARRAY_SIZE_OES" />
-		<field name="GL_MATRIX_INDEX_ARRAY_STRIDE_OES" />
-		<field name="GL_MATRIX_INDEX_ARRAY_TYPE_OES" />
-		<field name="GL_MATRIX_PALETTE_OES" />
-		<field name="GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES" />
-		<field name="GL_MAX_PALETTE_MATRICES_OES" />
-		<field name="GL_MAX_RENDERBUFFER_SIZE_OES" />
-		<field name="GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT" />
-		<field name="GL_MAX_VERTEX_UNITS_OES" />
-		<field name="GL_MIRRORED_REPEAT_OES" />
-		<field name="GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES" />
-		<field name="GL_NONE_OES" />
-		<field name="GL_NORMAL_MAP_OES" />
-		<field name="GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES" />
-		<field name="GL_REFLECTION_MAP_OES" />
-		<field name="GL_RENDERBUFFER_ALPHA_SIZE_OES" />
-		<field name="GL_RENDERBUFFER_BINDING_OES" />
-		<field name="GL_RENDERBUFFER_BLUE_SIZE_OES" />
-		<field name="GL_RENDERBUFFER_DEPTH_SIZE_OES" />
-		<field name="GL_RENDERBUFFER_GREEN_SIZE_OES" />
-		<field name="GL_RENDERBUFFER_HEIGHT_OES" />
-		<field name="GL_RENDERBUFFER_INTERNAL_FORMAT_OES" />
-		<field name="GL_RENDERBUFFER_OES" />
-		<field name="GL_RENDERBUFFER_RED_SIZE_OES" />
-		<field name="GL_RENDERBUFFER_STENCIL_SIZE_OES" />
-		<field name="GL_RENDERBUFFER_WIDTH_OES" />
-		<field name="GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES" since="15" />
-		<field name="GL_RGB565_OES" />
-		<field name="GL_RGB5_A1_OES" />
-		<field name="GL_RGB8_OES" />
-		<field name="GL_RGBA4_OES" />
-		<field name="GL_RGBA8_OES" />
-		<field name="GL_SAMPLER_EXTERNAL_OES" since="15" />
-		<field name="GL_STENCIL_ATTACHMENT_OES" />
-		<field name="GL_STENCIL_INDEX1_OES" />
-		<field name="GL_STENCIL_INDEX4_OES" />
-		<field name="GL_STENCIL_INDEX8_OES" />
-		<field name="GL_TEXTURE_BINDING_CUBE_MAP_OES" />
-		<field name="GL_TEXTURE_BINDING_EXTERNAL_OES" since="15" />
-		<field name="GL_TEXTURE_CROP_RECT_OES" />
-		<field name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES" />
-		<field name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES" />
-		<field name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES" />
-		<field name="GL_TEXTURE_CUBE_MAP_OES" />
-		<field name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES" />
-		<field name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES" />
-		<field name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES" />
-		<field name="GL_TEXTURE_EXTERNAL_OES" since="15" />
-		<field name="GL_TEXTURE_GEN_MODE_OES" />
-		<field name="GL_TEXTURE_GEN_STR_OES" />
-		<field name="GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES" />
-		<field name="GL_TEXTURE_MAX_ANISOTROPY_EXT" />
-		<field name="GL_UNSIGNED_INT_24_8_OES" />
-		<field name="GL_WEIGHT_ARRAY_BUFFER_BINDING_OES" />
-		<field name="GL_WEIGHT_ARRAY_OES" />
-		<field name="GL_WEIGHT_ARRAY_POINTER_OES" />
-		<field name="GL_WEIGHT_ARRAY_SIZE_OES" />
-		<field name="GL_WEIGHT_ARRAY_STRIDE_OES" />
-		<field name="GL_WEIGHT_ARRAY_TYPE_OES" />
-		<field name="GL_WRITE_ONLY_OES" />
-	</class>
-	<class name="android/opengl/GLES20" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="glActiveTexture(I)V" />
-		<method name="glAttachShader(II)V" />
-		<method name="glBindAttribLocation(IILjava/lang/String;)V" />
-		<method name="glBindBuffer(II)V" />
-		<method name="glBindFramebuffer(II)V" />
-		<method name="glBindRenderbuffer(II)V" />
-		<method name="glBindTexture(II)V" />
-		<method name="glBlendColor(FFFF)V" />
-		<method name="glBlendEquation(I)V" />
-		<method name="glBlendEquationSeparate(II)V" />
-		<method name="glBlendFunc(II)V" />
-		<method name="glBlendFuncSeparate(IIII)V" />
-		<method name="glBufferData(IILjava/nio/Buffer;I)V" />
-		<method name="glBufferSubData(IIILjava/nio/Buffer;)V" />
-		<method name="glCheckFramebufferStatus(I)I" />
-		<method name="glClear(I)V" />
-		<method name="glClearColor(FFFF)V" />
-		<method name="glClearDepthf(F)V" />
-		<method name="glClearStencil(I)V" />
-		<method name="glColorMask(ZZZZ)V" />
-		<method name="glCompileShader(I)V" />
-		<method name="glCompressedTexImage2D(IIIIIIILjava/nio/Buffer;)V" />
-		<method name="glCompressedTexSubImage2D(IIIIIIIILjava/nio/Buffer;)V" />
-		<method name="glCopyTexImage2D(IIIIIIII)V" />
-		<method name="glCopyTexSubImage2D(IIIIIIII)V" />
-		<method name="glCreateProgram()I" />
-		<method name="glCreateShader(I)I" />
-		<method name="glCullFace(I)V" />
-		<method name="glDeleteBuffers(ILjava/nio/IntBuffer;)V" />
-		<method name="glDeleteBuffers(I[II)V" />
-		<method name="glDeleteFramebuffers(ILjava/nio/IntBuffer;)V" />
-		<method name="glDeleteFramebuffers(I[II)V" />
-		<method name="glDeleteProgram(I)V" />
-		<method name="glDeleteRenderbuffers(ILjava/nio/IntBuffer;)V" />
-		<method name="glDeleteRenderbuffers(I[II)V" />
-		<method name="glDeleteShader(I)V" />
-		<method name="glDeleteTextures(ILjava/nio/IntBuffer;)V" />
-		<method name="glDeleteTextures(I[II)V" />
-		<method name="glDepthFunc(I)V" />
-		<method name="glDepthMask(Z)V" />
-		<method name="glDepthRangef(FF)V" />
-		<method name="glDetachShader(II)V" />
-		<method name="glDisable(I)V" />
-		<method name="glDisableVertexAttribArray(I)V" />
-		<method name="glDrawArrays(III)V" />
-		<method name="glDrawElements(IIII)V" since="9" />
-		<method name="glDrawElements(IIILjava/nio/Buffer;)V" />
-		<method name="glEnable(I)V" />
-		<method name="glEnableVertexAttribArray(I)V" />
-		<method name="glFinish()V" />
-		<method name="glFlush()V" />
-		<method name="glFramebufferRenderbuffer(IIII)V" />
-		<method name="glFramebufferTexture2D(IIIII)V" />
-		<method name="glFrontFace(I)V" />
-		<method name="glGenBuffers(ILjava/nio/IntBuffer;)V" />
-		<method name="glGenBuffers(I[II)V" />
-		<method name="glGenFramebuffers(ILjava/nio/IntBuffer;)V" />
-		<method name="glGenFramebuffers(I[II)V" />
-		<method name="glGenRenderbuffers(ILjava/nio/IntBuffer;)V" />
-		<method name="glGenRenderbuffers(I[II)V" />
-		<method name="glGenTextures(ILjava/nio/IntBuffer;)V" />
-		<method name="glGenTextures(I[II)V" />
-		<method name="glGenerateMipmap(I)V" />
-		<method name="glGetActiveAttrib(IIILjava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;B)V" />
-		<method name="glGetActiveAttrib(III[II[II[II[BI)V" />
-		<method name="glGetActiveAttrib(IILjava/nio/IntBuffer;Ljava/nio/IntBuffer;)Ljava/lang/String;" since="17" />
-		<method name="glGetActiveAttrib(II[II[II)Ljava/lang/String;" since="17" />
-		<method name="glGetActiveUniform(IIILjava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;B)V" />
-		<method name="glGetActiveUniform(III[II[II[II[BI)V" />
-		<method name="glGetActiveUniform(IILjava/nio/IntBuffer;Ljava/nio/IntBuffer;)Ljava/lang/String;" since="17" />
-		<method name="glGetActiveUniform(II[II[II)Ljava/lang/String;" since="17" />
-		<method name="glGetAttachedShaders(IILjava/nio/IntBuffer;Ljava/nio/IntBuffer;)V" />
-		<method name="glGetAttachedShaders(II[II[II)V" />
-		<method name="glGetAttribLocation(ILjava/lang/String;)I" />
-		<method name="glGetBooleanv(ILjava/nio/IntBuffer;)V" />
-		<method name="glGetBooleanv(I[ZI)V" />
-		<method name="glGetBufferParameteriv(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetBufferParameteriv(II[II)V" />
-		<method name="glGetError()I" />
-		<method name="glGetFloatv(ILjava/nio/FloatBuffer;)V" />
-		<method name="glGetFloatv(I[FI)V" />
-		<method name="glGetFramebufferAttachmentParameteriv(IIILjava/nio/IntBuffer;)V" />
-		<method name="glGetFramebufferAttachmentParameteriv(III[II)V" />
-		<method name="glGetIntegerv(ILjava/nio/IntBuffer;)V" />
-		<method name="glGetIntegerv(I[II)V" />
-		<method name="glGetProgramInfoLog(I)Ljava/lang/String;" />
-		<method name="glGetProgramiv(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetProgramiv(II[II)V" />
-		<method name="glGetRenderbufferParameteriv(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetRenderbufferParameteriv(II[II)V" />
-		<method name="glGetShaderInfoLog(I)Ljava/lang/String;" />
-		<method name="glGetShaderPrecisionFormat(IILjava/nio/IntBuffer;Ljava/nio/IntBuffer;)V" />
-		<method name="glGetShaderPrecisionFormat(II[II[II)V" />
-		<method name="glGetShaderSource(I)Ljava/lang/String;" since="17" />
-		<method name="glGetShaderSource(IILjava/nio/IntBuffer;B)V" />
-		<method name="glGetShaderSource(II[II[BI)V" />
-		<method name="glGetShaderiv(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetShaderiv(II[II)V" />
-		<method name="glGetString(I)Ljava/lang/String;" />
-		<method name="glGetTexParameterfv(IILjava/nio/FloatBuffer;)V" />
-		<method name="glGetTexParameterfv(II[FI)V" />
-		<method name="glGetTexParameteriv(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetTexParameteriv(II[II)V" />
-		<method name="glGetUniformLocation(ILjava/lang/String;)I" />
-		<method name="glGetUniformfv(IILjava/nio/FloatBuffer;)V" />
-		<method name="glGetUniformfv(II[FI)V" />
-		<method name="glGetUniformiv(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetUniformiv(II[II)V" />
-		<method name="glGetVertexAttribfv(IILjava/nio/FloatBuffer;)V" />
-		<method name="glGetVertexAttribfv(II[FI)V" />
-		<method name="glGetVertexAttribiv(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetVertexAttribiv(II[II)V" />
-		<method name="glHint(II)V" />
-		<method name="glIsBuffer(I)Z" />
-		<method name="glIsEnabled(I)Z" />
-		<method name="glIsFramebuffer(I)Z" />
-		<method name="glIsProgram(I)Z" />
-		<method name="glIsRenderbuffer(I)Z" />
-		<method name="glIsShader(I)Z" />
-		<method name="glIsTexture(I)Z" />
-		<method name="glLineWidth(F)V" />
-		<method name="glLinkProgram(I)V" />
-		<method name="glPixelStorei(II)V" />
-		<method name="glPolygonOffset(FF)V" />
-		<method name="glReadPixels(IIIIIILjava/nio/Buffer;)V" />
-		<method name="glReleaseShaderCompiler()V" />
-		<method name="glRenderbufferStorage(IIII)V" />
-		<method name="glSampleCoverage(FZ)V" />
-		<method name="glScissor(IIII)V" />
-		<method name="glShaderBinary(ILjava/nio/IntBuffer;ILjava/nio/Buffer;I)V" />
-		<method name="glShaderBinary(I[IIILjava/nio/Buffer;I)V" />
-		<method name="glShaderSource(ILjava/lang/String;)V" />
-		<method name="glStencilFunc(III)V" />
-		<method name="glStencilFuncSeparate(IIII)V" />
-		<method name="glStencilMask(I)V" />
-		<method name="glStencilMaskSeparate(II)V" />
-		<method name="glStencilOp(III)V" />
-		<method name="glStencilOpSeparate(IIII)V" />
-		<method name="glTexImage2D(IIIIIIIILjava/nio/Buffer;)V" />
-		<method name="glTexParameterf(IIF)V" />
-		<method name="glTexParameterfv(IILjava/nio/FloatBuffer;)V" />
-		<method name="glTexParameterfv(II[FI)V" />
-		<method name="glTexParameteri(III)V" />
-		<method name="glTexParameteriv(IILjava/nio/IntBuffer;)V" />
-		<method name="glTexParameteriv(II[II)V" />
-		<method name="glTexSubImage2D(IIIIIIIILjava/nio/Buffer;)V" />
-		<method name="glUniform1f(IF)V" />
-		<method name="glUniform1fv(IILjava/nio/FloatBuffer;)V" />
-		<method name="glUniform1fv(II[FI)V" />
-		<method name="glUniform1i(II)V" />
-		<method name="glUniform1iv(IILjava/nio/IntBuffer;)V" />
-		<method name="glUniform1iv(II[II)V" />
-		<method name="glUniform2f(IFF)V" />
-		<method name="glUniform2fv(IILjava/nio/FloatBuffer;)V" />
-		<method name="glUniform2fv(II[FI)V" />
-		<method name="glUniform2i(III)V" />
-		<method name="glUniform2iv(IILjava/nio/IntBuffer;)V" />
-		<method name="glUniform2iv(II[II)V" />
-		<method name="glUniform3f(IFFF)V" />
-		<method name="glUniform3fv(IILjava/nio/FloatBuffer;)V" />
-		<method name="glUniform3fv(II[FI)V" />
-		<method name="glUniform3i(IIII)V" />
-		<method name="glUniform3iv(IILjava/nio/IntBuffer;)V" />
-		<method name="glUniform3iv(II[II)V" />
-		<method name="glUniform4f(IFFFF)V" />
-		<method name="glUniform4fv(IILjava/nio/FloatBuffer;)V" />
-		<method name="glUniform4fv(II[FI)V" />
-		<method name="glUniform4i(IIIII)V" />
-		<method name="glUniform4iv(IILjava/nio/IntBuffer;)V" />
-		<method name="glUniform4iv(II[II)V" />
-		<method name="glUniformMatrix2fv(IIZLjava/nio/FloatBuffer;)V" />
-		<method name="glUniformMatrix2fv(IIZ[FI)V" />
-		<method name="glUniformMatrix3fv(IIZLjava/nio/FloatBuffer;)V" />
-		<method name="glUniformMatrix3fv(IIZ[FI)V" />
-		<method name="glUniformMatrix4fv(IIZLjava/nio/FloatBuffer;)V" />
-		<method name="glUniformMatrix4fv(IIZ[FI)V" />
-		<method name="glUseProgram(I)V" />
-		<method name="glValidateProgram(I)V" />
-		<method name="glVertexAttrib1f(IF)V" />
-		<method name="glVertexAttrib1fv(ILjava/nio/FloatBuffer;)V" />
-		<method name="glVertexAttrib1fv(I[FI)V" />
-		<method name="glVertexAttrib2f(IFF)V" />
-		<method name="glVertexAttrib2fv(ILjava/nio/FloatBuffer;)V" />
-		<method name="glVertexAttrib2fv(I[FI)V" />
-		<method name="glVertexAttrib3f(IFFF)V" />
-		<method name="glVertexAttrib3fv(ILjava/nio/FloatBuffer;)V" />
-		<method name="glVertexAttrib3fv(I[FI)V" />
-		<method name="glVertexAttrib4f(IFFFF)V" />
-		<method name="glVertexAttrib4fv(ILjava/nio/FloatBuffer;)V" />
-		<method name="glVertexAttrib4fv(I[FI)V" />
-		<method name="glVertexAttribPointer(IIIZII)V" since="9" />
-		<method name="glVertexAttribPointer(IIIZILjava/nio/Buffer;)V" />
-		<method name="glViewport(IIII)V" />
-		<field name="GL_ACTIVE_ATTRIBUTES" />
-		<field name="GL_ACTIVE_ATTRIBUTE_MAX_LENGTH" />
-		<field name="GL_ACTIVE_TEXTURE" />
-		<field name="GL_ACTIVE_UNIFORMS" />
-		<field name="GL_ACTIVE_UNIFORM_MAX_LENGTH" />
-		<field name="GL_ALIASED_LINE_WIDTH_RANGE" />
-		<field name="GL_ALIASED_POINT_SIZE_RANGE" />
-		<field name="GL_ALPHA" />
-		<field name="GL_ALPHA_BITS" />
-		<field name="GL_ALWAYS" />
-		<field name="GL_ARRAY_BUFFER" />
-		<field name="GL_ARRAY_BUFFER_BINDING" />
-		<field name="GL_ATTACHED_SHADERS" />
-		<field name="GL_BACK" />
-		<field name="GL_BLEND" />
-		<field name="GL_BLEND_COLOR" />
-		<field name="GL_BLEND_DST_ALPHA" />
-		<field name="GL_BLEND_DST_RGB" />
-		<field name="GL_BLEND_EQUATION" />
-		<field name="GL_BLEND_EQUATION_ALPHA" />
-		<field name="GL_BLEND_EQUATION_RGB" />
-		<field name="GL_BLEND_SRC_ALPHA" />
-		<field name="GL_BLEND_SRC_RGB" />
-		<field name="GL_BLUE_BITS" />
-		<field name="GL_BOOL" />
-		<field name="GL_BOOL_VEC2" />
-		<field name="GL_BOOL_VEC3" />
-		<field name="GL_BOOL_VEC4" />
-		<field name="GL_BUFFER_SIZE" />
-		<field name="GL_BUFFER_USAGE" />
-		<field name="GL_BYTE" />
-		<field name="GL_CCW" />
-		<field name="GL_CLAMP_TO_EDGE" />
-		<field name="GL_COLOR_ATTACHMENT0" />
-		<field name="GL_COLOR_BUFFER_BIT" />
-		<field name="GL_COLOR_CLEAR_VALUE" />
-		<field name="GL_COLOR_WRITEMASK" />
-		<field name="GL_COMPILE_STATUS" />
-		<field name="GL_COMPRESSED_TEXTURE_FORMATS" />
-		<field name="GL_CONSTANT_ALPHA" />
-		<field name="GL_CONSTANT_COLOR" />
-		<field name="GL_CULL_FACE" />
-		<field name="GL_CULL_FACE_MODE" />
-		<field name="GL_CURRENT_PROGRAM" />
-		<field name="GL_CURRENT_VERTEX_ATTRIB" />
-		<field name="GL_CW" />
-		<field name="GL_DECR" />
-		<field name="GL_DECR_WRAP" />
-		<field name="GL_DELETE_STATUS" />
-		<field name="GL_DEPTH_ATTACHMENT" />
-		<field name="GL_DEPTH_BITS" />
-		<field name="GL_DEPTH_BUFFER_BIT" />
-		<field name="GL_DEPTH_CLEAR_VALUE" />
-		<field name="GL_DEPTH_COMPONENT" />
-		<field name="GL_DEPTH_COMPONENT16" />
-		<field name="GL_DEPTH_FUNC" />
-		<field name="GL_DEPTH_RANGE" />
-		<field name="GL_DEPTH_TEST" />
-		<field name="GL_DEPTH_WRITEMASK" />
-		<field name="GL_DITHER" />
-		<field name="GL_DONT_CARE" />
-		<field name="GL_DST_ALPHA" />
-		<field name="GL_DST_COLOR" />
-		<field name="GL_DYNAMIC_DRAW" />
-		<field name="GL_ELEMENT_ARRAY_BUFFER" />
-		<field name="GL_ELEMENT_ARRAY_BUFFER_BINDING" />
-		<field name="GL_EQUAL" />
-		<field name="GL_EXTENSIONS" />
-		<field name="GL_FALSE" />
-		<field name="GL_FASTEST" />
-		<field name="GL_FIXED" />
-		<field name="GL_FLOAT" />
-		<field name="GL_FLOAT_MAT2" />
-		<field name="GL_FLOAT_MAT3" />
-		<field name="GL_FLOAT_MAT4" />
-		<field name="GL_FLOAT_VEC2" />
-		<field name="GL_FLOAT_VEC3" />
-		<field name="GL_FLOAT_VEC4" />
-		<field name="GL_FRAGMENT_SHADER" />
-		<field name="GL_FRAMEBUFFER" />
-		<field name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME" />
-		<field name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE" />
-		<field name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE" />
-		<field name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL" />
-		<field name="GL_FRAMEBUFFER_BINDING" />
-		<field name="GL_FRAMEBUFFER_COMPLETE" />
-		<field name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT" />
-		<field name="GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS" />
-		<field name="GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT" />
-		<field name="GL_FRAMEBUFFER_UNSUPPORTED" />
-		<field name="GL_FRONT" />
-		<field name="GL_FRONT_AND_BACK" />
-		<field name="GL_FRONT_FACE" />
-		<field name="GL_FUNC_ADD" />
-		<field name="GL_FUNC_REVERSE_SUBTRACT" />
-		<field name="GL_FUNC_SUBTRACT" />
-		<field name="GL_GENERATE_MIPMAP_HINT" />
-		<field name="GL_GEQUAL" />
-		<field name="GL_GREATER" />
-		<field name="GL_GREEN_BITS" />
-		<field name="GL_HIGH_FLOAT" />
-		<field name="GL_HIGH_INT" />
-		<field name="GL_IMPLEMENTATION_COLOR_READ_FORMAT" />
-		<field name="GL_IMPLEMENTATION_COLOR_READ_TYPE" />
-		<field name="GL_INCR" />
-		<field name="GL_INCR_WRAP" />
-		<field name="GL_INFO_LOG_LENGTH" />
-		<field name="GL_INT" />
-		<field name="GL_INT_VEC2" />
-		<field name="GL_INT_VEC3" />
-		<field name="GL_INT_VEC4" />
-		<field name="GL_INVALID_ENUM" />
-		<field name="GL_INVALID_FRAMEBUFFER_OPERATION" />
-		<field name="GL_INVALID_OPERATION" />
-		<field name="GL_INVALID_VALUE" />
-		<field name="GL_INVERT" />
-		<field name="GL_KEEP" />
-		<field name="GL_LEQUAL" />
-		<field name="GL_LESS" />
-		<field name="GL_LINEAR" />
-		<field name="GL_LINEAR_MIPMAP_LINEAR" />
-		<field name="GL_LINEAR_MIPMAP_NEAREST" />
-		<field name="GL_LINES" />
-		<field name="GL_LINE_LOOP" />
-		<field name="GL_LINE_STRIP" />
-		<field name="GL_LINE_WIDTH" />
-		<field name="GL_LINK_STATUS" />
-		<field name="GL_LOW_FLOAT" />
-		<field name="GL_LOW_INT" />
-		<field name="GL_LUMINANCE" />
-		<field name="GL_LUMINANCE_ALPHA" />
-		<field name="GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS" />
-		<field name="GL_MAX_CUBE_MAP_TEXTURE_SIZE" />
-		<field name="GL_MAX_FRAGMENT_UNIFORM_VECTORS" />
-		<field name="GL_MAX_RENDERBUFFER_SIZE" />
-		<field name="GL_MAX_TEXTURE_IMAGE_UNITS" />
-		<field name="GL_MAX_TEXTURE_SIZE" />
-		<field name="GL_MAX_VARYING_VECTORS" />
-		<field name="GL_MAX_VERTEX_ATTRIBS" />
-		<field name="GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS" />
-		<field name="GL_MAX_VERTEX_UNIFORM_VECTORS" />
-		<field name="GL_MAX_VIEWPORT_DIMS" />
-		<field name="GL_MEDIUM_FLOAT" />
-		<field name="GL_MEDIUM_INT" />
-		<field name="GL_MIRRORED_REPEAT" />
-		<field name="GL_NEAREST" />
-		<field name="GL_NEAREST_MIPMAP_LINEAR" />
-		<field name="GL_NEAREST_MIPMAP_NEAREST" />
-		<field name="GL_NEVER" />
-		<field name="GL_NICEST" />
-		<field name="GL_NONE" />
-		<field name="GL_NOTEQUAL" />
-		<field name="GL_NO_ERROR" />
-		<field name="GL_NUM_COMPRESSED_TEXTURE_FORMATS" />
-		<field name="GL_NUM_SHADER_BINARY_FORMATS" />
-		<field name="GL_ONE" />
-		<field name="GL_ONE_MINUS_CONSTANT_ALPHA" />
-		<field name="GL_ONE_MINUS_CONSTANT_COLOR" />
-		<field name="GL_ONE_MINUS_DST_ALPHA" />
-		<field name="GL_ONE_MINUS_DST_COLOR" />
-		<field name="GL_ONE_MINUS_SRC_ALPHA" />
-		<field name="GL_ONE_MINUS_SRC_COLOR" />
-		<field name="GL_OUT_OF_MEMORY" />
-		<field name="GL_PACK_ALIGNMENT" />
-		<field name="GL_POINTS" />
-		<field name="GL_POLYGON_OFFSET_FACTOR" />
-		<field name="GL_POLYGON_OFFSET_FILL" />
-		<field name="GL_POLYGON_OFFSET_UNITS" />
-		<field name="GL_RED_BITS" />
-		<field name="GL_RENDERBUFFER" />
-		<field name="GL_RENDERBUFFER_ALPHA_SIZE" />
-		<field name="GL_RENDERBUFFER_BINDING" />
-		<field name="GL_RENDERBUFFER_BLUE_SIZE" />
-		<field name="GL_RENDERBUFFER_DEPTH_SIZE" />
-		<field name="GL_RENDERBUFFER_GREEN_SIZE" />
-		<field name="GL_RENDERBUFFER_HEIGHT" />
-		<field name="GL_RENDERBUFFER_INTERNAL_FORMAT" />
-		<field name="GL_RENDERBUFFER_RED_SIZE" />
-		<field name="GL_RENDERBUFFER_STENCIL_SIZE" />
-		<field name="GL_RENDERBUFFER_WIDTH" />
-		<field name="GL_RENDERER" />
-		<field name="GL_REPEAT" />
-		<field name="GL_REPLACE" />
-		<field name="GL_RGB" />
-		<field name="GL_RGB565" />
-		<field name="GL_RGB5_A1" />
-		<field name="GL_RGBA" />
-		<field name="GL_RGBA4" />
-		<field name="GL_SAMPLER_2D" />
-		<field name="GL_SAMPLER_CUBE" />
-		<field name="GL_SAMPLES" />
-		<field name="GL_SAMPLE_ALPHA_TO_COVERAGE" />
-		<field name="GL_SAMPLE_BUFFERS" />
-		<field name="GL_SAMPLE_COVERAGE" />
-		<field name="GL_SAMPLE_COVERAGE_INVERT" />
-		<field name="GL_SAMPLE_COVERAGE_VALUE" />
-		<field name="GL_SCISSOR_BOX" />
-		<field name="GL_SCISSOR_TEST" />
-		<field name="GL_SHADER_BINARY_FORMATS" />
-		<field name="GL_SHADER_COMPILER" />
-		<field name="GL_SHADER_SOURCE_LENGTH" />
-		<field name="GL_SHADER_TYPE" />
-		<field name="GL_SHADING_LANGUAGE_VERSION" />
-		<field name="GL_SHORT" />
-		<field name="GL_SRC_ALPHA" />
-		<field name="GL_SRC_ALPHA_SATURATE" />
-		<field name="GL_SRC_COLOR" />
-		<field name="GL_STATIC_DRAW" />
-		<field name="GL_STENCIL_ATTACHMENT" />
-		<field name="GL_STENCIL_BACK_FAIL" />
-		<field name="GL_STENCIL_BACK_FUNC" />
-		<field name="GL_STENCIL_BACK_PASS_DEPTH_FAIL" />
-		<field name="GL_STENCIL_BACK_PASS_DEPTH_PASS" />
-		<field name="GL_STENCIL_BACK_REF" />
-		<field name="GL_STENCIL_BACK_VALUE_MASK" />
-		<field name="GL_STENCIL_BACK_WRITEMASK" />
-		<field name="GL_STENCIL_BITS" />
-		<field name="GL_STENCIL_BUFFER_BIT" />
-		<field name="GL_STENCIL_CLEAR_VALUE" />
-		<field name="GL_STENCIL_FAIL" />
-		<field name="GL_STENCIL_FUNC" />
-		<field name="GL_STENCIL_INDEX" />
-		<field name="GL_STENCIL_INDEX8" />
-		<field name="GL_STENCIL_PASS_DEPTH_FAIL" />
-		<field name="GL_STENCIL_PASS_DEPTH_PASS" />
-		<field name="GL_STENCIL_REF" />
-		<field name="GL_STENCIL_TEST" />
-		<field name="GL_STENCIL_VALUE_MASK" />
-		<field name="GL_STENCIL_WRITEMASK" />
-		<field name="GL_STREAM_DRAW" />
-		<field name="GL_SUBPIXEL_BITS" />
-		<field name="GL_TEXTURE" />
-		<field name="GL_TEXTURE0" />
-		<field name="GL_TEXTURE1" />
-		<field name="GL_TEXTURE10" />
-		<field name="GL_TEXTURE11" />
-		<field name="GL_TEXTURE12" />
-		<field name="GL_TEXTURE13" />
-		<field name="GL_TEXTURE14" />
-		<field name="GL_TEXTURE15" />
-		<field name="GL_TEXTURE16" />
-		<field name="GL_TEXTURE17" />
-		<field name="GL_TEXTURE18" />
-		<field name="GL_TEXTURE19" />
-		<field name="GL_TEXTURE2" />
-		<field name="GL_TEXTURE20" />
-		<field name="GL_TEXTURE21" />
-		<field name="GL_TEXTURE22" />
-		<field name="GL_TEXTURE23" />
-		<field name="GL_TEXTURE24" />
-		<field name="GL_TEXTURE25" />
-		<field name="GL_TEXTURE26" />
-		<field name="GL_TEXTURE27" />
-		<field name="GL_TEXTURE28" />
-		<field name="GL_TEXTURE29" />
-		<field name="GL_TEXTURE3" />
-		<field name="GL_TEXTURE30" />
-		<field name="GL_TEXTURE31" />
-		<field name="GL_TEXTURE4" />
-		<field name="GL_TEXTURE5" />
-		<field name="GL_TEXTURE6" />
-		<field name="GL_TEXTURE7" />
-		<field name="GL_TEXTURE8" />
-		<field name="GL_TEXTURE9" />
-		<field name="GL_TEXTURE_2D" />
-		<field name="GL_TEXTURE_BINDING_2D" />
-		<field name="GL_TEXTURE_BINDING_CUBE_MAP" />
-		<field name="GL_TEXTURE_CUBE_MAP" />
-		<field name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X" />
-		<field name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y" />
-		<field name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z" />
-		<field name="GL_TEXTURE_CUBE_MAP_POSITIVE_X" />
-		<field name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y" />
-		<field name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z" />
-		<field name="GL_TEXTURE_MAG_FILTER" />
-		<field name="GL_TEXTURE_MIN_FILTER" />
-		<field name="GL_TEXTURE_WRAP_S" />
-		<field name="GL_TEXTURE_WRAP_T" />
-		<field name="GL_TRIANGLES" />
-		<field name="GL_TRIANGLE_FAN" />
-		<field name="GL_TRIANGLE_STRIP" />
-		<field name="GL_TRUE" />
-		<field name="GL_UNPACK_ALIGNMENT" />
-		<field name="GL_UNSIGNED_BYTE" />
-		<field name="GL_UNSIGNED_INT" />
-		<field name="GL_UNSIGNED_SHORT" />
-		<field name="GL_UNSIGNED_SHORT_4_4_4_4" />
-		<field name="GL_UNSIGNED_SHORT_5_5_5_1" />
-		<field name="GL_UNSIGNED_SHORT_5_6_5" />
-		<field name="GL_VALIDATE_STATUS" />
-		<field name="GL_VENDOR" />
-		<field name="GL_VERSION" />
-		<field name="GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING" />
-		<field name="GL_VERTEX_ATTRIB_ARRAY_ENABLED" />
-		<field name="GL_VERTEX_ATTRIB_ARRAY_NORMALIZED" />
-		<field name="GL_VERTEX_ATTRIB_ARRAY_POINTER" />
-		<field name="GL_VERTEX_ATTRIB_ARRAY_SIZE" />
-		<field name="GL_VERTEX_ATTRIB_ARRAY_STRIDE" />
-		<field name="GL_VERTEX_ATTRIB_ARRAY_TYPE" />
-		<field name="GL_VERTEX_SHADER" />
-		<field name="GL_VIEWPORT" />
-		<field name="GL_ZERO" />
-	</class>
-	<class name="android/opengl/GLES30" since="18">
-		<extends name="android/opengl/GLES20" />
-		<method name="&lt;init>()V" />
-		<method name="glBeginQuery(II)V" />
-		<method name="glBeginTransformFeedback(I)V" />
-		<method name="glBindBufferBase(III)V" />
-		<method name="glBindBufferRange(IIIII)V" />
-		<method name="glBindSampler(II)V" />
-		<method name="glBindTransformFeedback(II)V" />
-		<method name="glBindVertexArray(I)V" />
-		<method name="glBlitFramebuffer(IIIIIIIIII)V" />
-		<method name="glClearBufferfi(IIFI)V" />
-		<method name="glClearBufferfv(IILjava/nio/FloatBuffer;)V" />
-		<method name="glClearBufferfv(II[FI)V" />
-		<method name="glClearBufferiv(IILjava/nio/IntBuffer;)V" />
-		<method name="glClearBufferiv(II[II)V" />
-		<method name="glClearBufferuiv(IILjava/nio/IntBuffer;)V" />
-		<method name="glClearBufferuiv(II[II)V" />
-		<method name="glClientWaitSync(JIJ)I" />
-		<method name="glCompressedTexImage3D(IIIIIIIII)V" />
-		<method name="glCompressedTexImage3D(IIIIIIIILjava/nio/Buffer;)V" />
-		<method name="glCompressedTexSubImage3D(IIIIIIIIIII)V" />
-		<method name="glCompressedTexSubImage3D(IIIIIIIIIILjava/nio/Buffer;)V" />
-		<method name="glCopyBufferSubData(IIIII)V" />
-		<method name="glCopyTexSubImage3D(IIIIIIIII)V" />
-		<method name="glDeleteQueries(ILjava/nio/IntBuffer;)V" />
-		<method name="glDeleteQueries(I[II)V" />
-		<method name="glDeleteSamplers(ILjava/nio/IntBuffer;)V" />
-		<method name="glDeleteSamplers(I[II)V" />
-		<method name="glDeleteSync(J)V" />
-		<method name="glDeleteTransformFeedbacks(ILjava/nio/IntBuffer;)V" />
-		<method name="glDeleteTransformFeedbacks(I[II)V" />
-		<method name="glDeleteVertexArrays(ILjava/nio/IntBuffer;)V" />
-		<method name="glDeleteVertexArrays(I[II)V" />
-		<method name="glDrawArraysInstanced(IIII)V" />
-		<method name="glDrawBuffers(ILjava/nio/IntBuffer;)V" />
-		<method name="glDrawBuffers(I[II)V" />
-		<method name="glDrawElementsInstanced(IIIII)V" />
-		<method name="glDrawElementsInstanced(IIILjava/nio/Buffer;I)V" />
-		<method name="glDrawRangeElements(IIIIII)V" />
-		<method name="glDrawRangeElements(IIIIILjava/nio/Buffer;)V" />
-		<method name="glEndQuery(I)V" />
-		<method name="glEndTransformFeedback()V" />
-		<method name="glFenceSync(II)J" />
-		<method name="glFlushMappedBufferRange(III)V" />
-		<method name="glFramebufferTextureLayer(IIIII)V" />
-		<method name="glGenQueries(ILjava/nio/IntBuffer;)V" />
-		<method name="glGenQueries(I[II)V" />
-		<method name="glGenSamplers(ILjava/nio/IntBuffer;)V" />
-		<method name="glGenSamplers(I[II)V" />
-		<method name="glGenTransformFeedbacks(ILjava/nio/IntBuffer;)V" />
-		<method name="glGenTransformFeedbacks(I[II)V" />
-		<method name="glGenVertexArrays(ILjava/nio/IntBuffer;)V" />
-		<method name="glGenVertexArrays(I[II)V" />
-		<method name="glGetActiveUniformBlockName(II)Ljava/lang/String;" />
-		<method name="glGetActiveUniformBlockName(III[II[BI)V" />
-		<method name="glGetActiveUniformBlockName(IILjava/nio/Buffer;Ljava/nio/Buffer;)V" />
-		<method name="glGetActiveUniformBlockiv(IIILjava/nio/IntBuffer;)V" />
-		<method name="glGetActiveUniformBlockiv(III[II)V" />
-		<method name="glGetActiveUniformsiv(IILjava/nio/IntBuffer;ILjava/nio/IntBuffer;)V" />
-		<method name="glGetActiveUniformsiv(II[III[II)V" />
-		<method name="glGetBufferParameteri64v(IILjava/nio/LongBuffer;)V" />
-		<method name="glGetBufferParameteri64v(II[JI)V" />
-		<method name="glGetBufferPointerv(II)Ljava/nio/Buffer;" />
-		<method name="glGetFragDataLocation(ILjava/lang/String;)I" />
-		<method name="glGetInteger64i_v(IILjava/nio/LongBuffer;)V" />
-		<method name="glGetInteger64i_v(II[JI)V" />
-		<method name="glGetInteger64v(ILjava/nio/LongBuffer;)V" />
-		<method name="glGetInteger64v(I[JI)V" />
-		<method name="glGetIntegeri_v(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetIntegeri_v(II[II)V" />
-		<method name="glGetInternalformativ(IIIILjava/nio/IntBuffer;)V" />
-		<method name="glGetInternalformativ(IIII[II)V" />
-		<method name="glGetProgramBinary(IILjava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/Buffer;)V" />
-		<method name="glGetProgramBinary(II[II[IILjava/nio/Buffer;)V" />
-		<method name="glGetQueryObjectuiv(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetQueryObjectuiv(II[II)V" />
-		<method name="glGetQueryiv(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetQueryiv(II[II)V" />
-		<method name="glGetSamplerParameterfv(IILjava/nio/FloatBuffer;)V" />
-		<method name="glGetSamplerParameterfv(II[FI)V" />
-		<method name="glGetSamplerParameteriv(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetSamplerParameteriv(II[II)V" />
-		<method name="glGetStringi(II)Ljava/lang/String;" />
-		<method name="glGetSynciv(JIILjava/nio/IntBuffer;Ljava/nio/IntBuffer;)V" />
-		<method name="glGetSynciv(JII[II[II)V" />
-		<method name="glGetTransformFeedbackVarying(IIILjava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;B)V" />
-		<method name="glGetTransformFeedbackVarying(III[II[II[II[BI)V" />
-		<method name="glGetTransformFeedbackVarying(IILjava/nio/IntBuffer;Ljava/nio/IntBuffer;)Ljava/lang/String;" />
-		<method name="glGetTransformFeedbackVarying(II[II[II)Ljava/lang/String;" />
-		<method name="glGetUniformBlockIndex(ILjava/lang/String;)I" />
-		<method name="glGetUniformIndices(I[Ljava/lang/String;Ljava/nio/IntBuffer;)V" />
-		<method name="glGetUniformIndices(I[Ljava/lang/String;[II)V" />
-		<method name="glGetUniformuiv(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetUniformuiv(II[II)V" />
-		<method name="glGetVertexAttribIiv(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetVertexAttribIiv(II[II)V" />
-		<method name="glGetVertexAttribIuiv(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetVertexAttribIuiv(II[II)V" />
-		<method name="glInvalidateFramebuffer(IILjava/nio/IntBuffer;)V" />
-		<method name="glInvalidateFramebuffer(II[II)V" />
-		<method name="glInvalidateSubFramebuffer(IILjava/nio/IntBuffer;IIII)V" />
-		<method name="glInvalidateSubFramebuffer(II[IIIIII)V" />
-		<method name="glIsQuery(I)Z" />
-		<method name="glIsSampler(I)Z" />
-		<method name="glIsSync(J)Z" />
-		<method name="glIsTransformFeedback(I)Z" />
-		<method name="glIsVertexArray(I)Z" />
-		<method name="glMapBufferRange(IIII)Ljava/nio/Buffer;" />
-		<method name="glPauseTransformFeedback()V" />
-		<method name="glProgramBinary(IILjava/nio/Buffer;I)V" />
-		<method name="glProgramParameteri(III)V" />
-		<method name="glReadBuffer(I)V" />
-		<method name="glRenderbufferStorageMultisample(IIIII)V" />
-		<method name="glResumeTransformFeedback()V" />
-		<method name="glSamplerParameterf(IIF)V" />
-		<method name="glSamplerParameterfv(IILjava/nio/FloatBuffer;)V" />
-		<method name="glSamplerParameterfv(II[FI)V" />
-		<method name="glSamplerParameteri(III)V" />
-		<method name="glSamplerParameteriv(IILjava/nio/IntBuffer;)V" />
-		<method name="glSamplerParameteriv(II[II)V" />
-		<method name="glTexImage3D(IIIIIIIIII)V" />
-		<method name="glTexImage3D(IIIIIIIIILjava/nio/Buffer;)V" />
-		<method name="glTexStorage2D(IIIII)V" />
-		<method name="glTexStorage3D(IIIIII)V" />
-		<method name="glTexSubImage3D(IIIIIIIIIII)V" />
-		<method name="glTexSubImage3D(IIIIIIIIIILjava/nio/Buffer;)V" />
-		<method name="glTransformFeedbackVaryings(I[Ljava/lang/String;I)V" />
-		<method name="glUniform1ui(II)V" />
-		<method name="glUniform1uiv(IILjava/nio/IntBuffer;)V" />
-		<method name="glUniform1uiv(II[II)V" />
-		<method name="glUniform2ui(III)V" />
-		<method name="glUniform2uiv(IILjava/nio/IntBuffer;)V" />
-		<method name="glUniform2uiv(II[II)V" />
-		<method name="glUniform3ui(IIII)V" />
-		<method name="glUniform3uiv(IILjava/nio/IntBuffer;)V" />
-		<method name="glUniform3uiv(II[II)V" />
-		<method name="glUniform4ui(IIIII)V" />
-		<method name="glUniform4uiv(IILjava/nio/IntBuffer;)V" />
-		<method name="glUniform4uiv(II[II)V" />
-		<method name="glUniformBlockBinding(III)V" />
-		<method name="glUniformMatrix2x3fv(IIZLjava/nio/FloatBuffer;)V" />
-		<method name="glUniformMatrix2x3fv(IIZ[FI)V" />
-		<method name="glUniformMatrix2x4fv(IIZLjava/nio/FloatBuffer;)V" />
-		<method name="glUniformMatrix2x4fv(IIZ[FI)V" />
-		<method name="glUniformMatrix3x2fv(IIZLjava/nio/FloatBuffer;)V" />
-		<method name="glUniformMatrix3x2fv(IIZ[FI)V" />
-		<method name="glUniformMatrix3x4fv(IIZLjava/nio/FloatBuffer;)V" />
-		<method name="glUniformMatrix3x4fv(IIZ[FI)V" />
-		<method name="glUniformMatrix4x2fv(IIZLjava/nio/FloatBuffer;)V" />
-		<method name="glUniformMatrix4x2fv(IIZ[FI)V" />
-		<method name="glUniformMatrix4x3fv(IIZLjava/nio/FloatBuffer;)V" />
-		<method name="glUniformMatrix4x3fv(IIZ[FI)V" />
-		<method name="glUnmapBuffer(I)Z" />
-		<method name="glVertexAttribDivisor(II)V" />
-		<method name="glVertexAttribI4i(IIIII)V" />
-		<method name="glVertexAttribI4iv(ILjava/nio/IntBuffer;)V" />
-		<method name="glVertexAttribI4iv(I[II)V" />
-		<method name="glVertexAttribI4ui(IIIII)V" />
-		<method name="glVertexAttribI4uiv(ILjava/nio/IntBuffer;)V" />
-		<method name="glVertexAttribI4uiv(I[II)V" />
-		<method name="glVertexAttribIPointer(IIIII)V" />
-		<method name="glVertexAttribIPointer(IIIILjava/nio/Buffer;)V" />
-		<method name="glWaitSync(JIJ)V" />
-		<field name="GL_ACTIVE_UNIFORM_BLOCKS" />
-		<field name="GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH" />
-		<field name="GL_ALREADY_SIGNALED" />
-		<field name="GL_ANY_SAMPLES_PASSED" />
-		<field name="GL_ANY_SAMPLES_PASSED_CONSERVATIVE" />
-		<field name="GL_BLUE" />
-		<field name="GL_BUFFER_ACCESS_FLAGS" />
-		<field name="GL_BUFFER_MAPPED" />
-		<field name="GL_BUFFER_MAP_LENGTH" />
-		<field name="GL_BUFFER_MAP_OFFSET" />
-		<field name="GL_BUFFER_MAP_POINTER" />
-		<field name="GL_COLOR" />
-		<field name="GL_COLOR_ATTACHMENT1" />
-		<field name="GL_COLOR_ATTACHMENT10" />
-		<field name="GL_COLOR_ATTACHMENT11" />
-		<field name="GL_COLOR_ATTACHMENT12" />
-		<field name="GL_COLOR_ATTACHMENT13" />
-		<field name="GL_COLOR_ATTACHMENT14" />
-		<field name="GL_COLOR_ATTACHMENT15" />
-		<field name="GL_COLOR_ATTACHMENT2" />
-		<field name="GL_COLOR_ATTACHMENT3" />
-		<field name="GL_COLOR_ATTACHMENT4" />
-		<field name="GL_COLOR_ATTACHMENT5" />
-		<field name="GL_COLOR_ATTACHMENT6" />
-		<field name="GL_COLOR_ATTACHMENT7" />
-		<field name="GL_COLOR_ATTACHMENT8" />
-		<field name="GL_COLOR_ATTACHMENT9" />
-		<field name="GL_COMPARE_REF_TO_TEXTURE" />
-		<field name="GL_COMPRESSED_R11_EAC" />
-		<field name="GL_COMPRESSED_RG11_EAC" />
-		<field name="GL_COMPRESSED_RGB8_ETC2" />
-		<field name="GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2" />
-		<field name="GL_COMPRESSED_RGBA8_ETC2_EAC" />
-		<field name="GL_COMPRESSED_SIGNED_R11_EAC" />
-		<field name="GL_COMPRESSED_SIGNED_RG11_EAC" />
-		<field name="GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC" />
-		<field name="GL_COMPRESSED_SRGB8_ETC2" />
-		<field name="GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2" />
-		<field name="GL_CONDITION_SATISFIED" />
-		<field name="GL_COPY_READ_BUFFER" />
-		<field name="GL_COPY_READ_BUFFER_BINDING" />
-		<field name="GL_COPY_WRITE_BUFFER" />
-		<field name="GL_COPY_WRITE_BUFFER_BINDING" />
-		<field name="GL_CURRENT_QUERY" />
-		<field name="GL_DEPTH" />
-		<field name="GL_DEPTH24_STENCIL8" />
-		<field name="GL_DEPTH32F_STENCIL8" />
-		<field name="GL_DEPTH_COMPONENT24" />
-		<field name="GL_DEPTH_COMPONENT32F" />
-		<field name="GL_DEPTH_STENCIL" />
-		<field name="GL_DEPTH_STENCIL_ATTACHMENT" />
-		<field name="GL_DRAW_BUFFER0" />
-		<field name="GL_DRAW_BUFFER1" />
-		<field name="GL_DRAW_BUFFER10" />
-		<field name="GL_DRAW_BUFFER11" />
-		<field name="GL_DRAW_BUFFER12" />
-		<field name="GL_DRAW_BUFFER13" />
-		<field name="GL_DRAW_BUFFER14" />
-		<field name="GL_DRAW_BUFFER15" />
-		<field name="GL_DRAW_BUFFER2" />
-		<field name="GL_DRAW_BUFFER3" />
-		<field name="GL_DRAW_BUFFER4" />
-		<field name="GL_DRAW_BUFFER5" />
-		<field name="GL_DRAW_BUFFER6" />
-		<field name="GL_DRAW_BUFFER7" />
-		<field name="GL_DRAW_BUFFER8" />
-		<field name="GL_DRAW_BUFFER9" />
-		<field name="GL_DRAW_FRAMEBUFFER" />
-		<field name="GL_DRAW_FRAMEBUFFER_BINDING" />
-		<field name="GL_DYNAMIC_COPY" />
-		<field name="GL_DYNAMIC_READ" />
-		<field name="GL_FLOAT_32_UNSIGNED_INT_24_8_REV" />
-		<field name="GL_FLOAT_MAT2x3" />
-		<field name="GL_FLOAT_MAT2x4" />
-		<field name="GL_FLOAT_MAT3x2" />
-		<field name="GL_FLOAT_MAT3x4" />
-		<field name="GL_FLOAT_MAT4x2" />
-		<field name="GL_FLOAT_MAT4x3" />
-		<field name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT" />
-		<field name="GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE" />
-		<field name="GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE" />
-		<field name="GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING" />
-		<field name="GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE" />
-		<field name="GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE" />
-		<field name="GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE" />
-		<field name="GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE" />
-		<field name="GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE" />
-		<field name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER" />
-		<field name="GL_FRAMEBUFFER_DEFAULT" />
-		<field name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE" />
-		<field name="GL_FRAMEBUFFER_UNDEFINED" />
-		<field name="GL_GREEN" />
-		<field name="GL_HALF_FLOAT" />
-		<field name="GL_INTERLEAVED_ATTRIBS" />
-		<field name="GL_INT_2_10_10_10_REV" />
-		<field name="GL_INT_SAMPLER_2D" />
-		<field name="GL_INT_SAMPLER_2D_ARRAY" />
-		<field name="GL_INT_SAMPLER_3D" />
-		<field name="GL_INT_SAMPLER_CUBE" />
-		<field name="GL_INVALID_INDEX" />
-		<field name="GL_MAJOR_VERSION" />
-		<field name="GL_MAP_FLUSH_EXPLICIT_BIT" />
-		<field name="GL_MAP_INVALIDATE_BUFFER_BIT" />
-		<field name="GL_MAP_INVALIDATE_RANGE_BIT" />
-		<field name="GL_MAP_READ_BIT" />
-		<field name="GL_MAP_UNSYNCHRONIZED_BIT" />
-		<field name="GL_MAP_WRITE_BIT" />
-		<field name="GL_MAX" />
-		<field name="GL_MAX_3D_TEXTURE_SIZE" />
-		<field name="GL_MAX_ARRAY_TEXTURE_LAYERS" />
-		<field name="GL_MAX_COLOR_ATTACHMENTS" />
-		<field name="GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS" />
-		<field name="GL_MAX_COMBINED_UNIFORM_BLOCKS" />
-		<field name="GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS" />
-		<field name="GL_MAX_DRAW_BUFFERS" />
-		<field name="GL_MAX_ELEMENTS_INDICES" />
-		<field name="GL_MAX_ELEMENTS_VERTICES" />
-		<field name="GL_MAX_ELEMENT_INDEX" />
-		<field name="GL_MAX_FRAGMENT_INPUT_COMPONENTS" />
-		<field name="GL_MAX_FRAGMENT_UNIFORM_BLOCKS" />
-		<field name="GL_MAX_FRAGMENT_UNIFORM_COMPONENTS" />
-		<field name="GL_MAX_PROGRAM_TEXEL_OFFSET" />
-		<field name="GL_MAX_SAMPLES" />
-		<field name="GL_MAX_SERVER_WAIT_TIMEOUT" />
-		<field name="GL_MAX_TEXTURE_LOD_BIAS" />
-		<field name="GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS" />
-		<field name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS" />
-		<field name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS" />
-		<field name="GL_MAX_UNIFORM_BLOCK_SIZE" />
-		<field name="GL_MAX_UNIFORM_BUFFER_BINDINGS" />
-		<field name="GL_MAX_VARYING_COMPONENTS" />
-		<field name="GL_MAX_VERTEX_OUTPUT_COMPONENTS" />
-		<field name="GL_MAX_VERTEX_UNIFORM_BLOCKS" />
-		<field name="GL_MAX_VERTEX_UNIFORM_COMPONENTS" />
-		<field name="GL_MIN" />
-		<field name="GL_MINOR_VERSION" />
-		<field name="GL_MIN_PROGRAM_TEXEL_OFFSET" />
-		<field name="GL_NUM_EXTENSIONS" />
-		<field name="GL_NUM_PROGRAM_BINARY_FORMATS" />
-		<field name="GL_NUM_SAMPLE_COUNTS" />
-		<field name="GL_OBJECT_TYPE" />
-		<field name="GL_PACK_ROW_LENGTH" />
-		<field name="GL_PACK_SKIP_PIXELS" />
-		<field name="GL_PACK_SKIP_ROWS" />
-		<field name="GL_PIXEL_PACK_BUFFER" />
-		<field name="GL_PIXEL_PACK_BUFFER_BINDING" />
-		<field name="GL_PIXEL_UNPACK_BUFFER" />
-		<field name="GL_PIXEL_UNPACK_BUFFER_BINDING" />
-		<field name="GL_PRIMITIVE_RESTART_FIXED_INDEX" />
-		<field name="GL_PROGRAM_BINARY_FORMATS" />
-		<field name="GL_PROGRAM_BINARY_LENGTH" />
-		<field name="GL_PROGRAM_BINARY_RETRIEVABLE_HINT" />
-		<field name="GL_QUERY_RESULT" />
-		<field name="GL_QUERY_RESULT_AVAILABLE" />
-		<field name="GL_R11F_G11F_B10F" />
-		<field name="GL_R16F" />
-		<field name="GL_R16I" />
-		<field name="GL_R16UI" />
-		<field name="GL_R32F" />
-		<field name="GL_R32I" />
-		<field name="GL_R32UI" />
-		<field name="GL_R8" />
-		<field name="GL_R8I" />
-		<field name="GL_R8UI" />
-		<field name="GL_R8_SNORM" />
-		<field name="GL_RASTERIZER_DISCARD" />
-		<field name="GL_READ_BUFFER" />
-		<field name="GL_READ_FRAMEBUFFER" />
-		<field name="GL_READ_FRAMEBUFFER_BINDING" />
-		<field name="GL_RED" />
-		<field name="GL_RED_INTEGER" />
-		<field name="GL_RENDERBUFFER_SAMPLES" />
-		<field name="GL_RG" />
-		<field name="GL_RG16F" />
-		<field name="GL_RG16I" />
-		<field name="GL_RG16UI" />
-		<field name="GL_RG32F" />
-		<field name="GL_RG32I" />
-		<field name="GL_RG32UI" />
-		<field name="GL_RG8" />
-		<field name="GL_RG8I" />
-		<field name="GL_RG8UI" />
-		<field name="GL_RG8_SNORM" />
-		<field name="GL_RGB10_A2" />
-		<field name="GL_RGB10_A2UI" />
-		<field name="GL_RGB16F" />
-		<field name="GL_RGB16I" />
-		<field name="GL_RGB16UI" />
-		<field name="GL_RGB32F" />
-		<field name="GL_RGB32I" />
-		<field name="GL_RGB32UI" />
-		<field name="GL_RGB8" />
-		<field name="GL_RGB8I" />
-		<field name="GL_RGB8UI" />
-		<field name="GL_RGB8_SNORM" />
-		<field name="GL_RGB9_E5" />
-		<field name="GL_RGBA16F" />
-		<field name="GL_RGBA16I" />
-		<field name="GL_RGBA16UI" />
-		<field name="GL_RGBA32F" />
-		<field name="GL_RGBA32I" />
-		<field name="GL_RGBA32UI" />
-		<field name="GL_RGBA8" />
-		<field name="GL_RGBA8I" />
-		<field name="GL_RGBA8UI" />
-		<field name="GL_RGBA8_SNORM" />
-		<field name="GL_RGBA_INTEGER" />
-		<field name="GL_RGB_INTEGER" />
-		<field name="GL_RG_INTEGER" />
-		<field name="GL_SAMPLER_2D_ARRAY" />
-		<field name="GL_SAMPLER_2D_ARRAY_SHADOW" />
-		<field name="GL_SAMPLER_2D_SHADOW" />
-		<field name="GL_SAMPLER_3D" />
-		<field name="GL_SAMPLER_BINDING" />
-		<field name="GL_SAMPLER_CUBE_SHADOW" />
-		<field name="GL_SEPARATE_ATTRIBS" />
-		<field name="GL_SIGNALED" />
-		<field name="GL_SIGNED_NORMALIZED" />
-		<field name="GL_SRGB" />
-		<field name="GL_SRGB8" />
-		<field name="GL_SRGB8_ALPHA8" />
-		<field name="GL_STATIC_COPY" />
-		<field name="GL_STATIC_READ" />
-		<field name="GL_STENCIL" />
-		<field name="GL_STREAM_COPY" />
-		<field name="GL_STREAM_READ" />
-		<field name="GL_SYNC_CONDITION" />
-		<field name="GL_SYNC_FENCE" />
-		<field name="GL_SYNC_FLAGS" />
-		<field name="GL_SYNC_FLUSH_COMMANDS_BIT" />
-		<field name="GL_SYNC_GPU_COMMANDS_COMPLETE" />
-		<field name="GL_SYNC_STATUS" />
-		<field name="GL_TEXTURE_2D_ARRAY" />
-		<field name="GL_TEXTURE_3D" />
-		<field name="GL_TEXTURE_BASE_LEVEL" />
-		<field name="GL_TEXTURE_BINDING_2D_ARRAY" />
-		<field name="GL_TEXTURE_BINDING_3D" />
-		<field name="GL_TEXTURE_COMPARE_FUNC" />
-		<field name="GL_TEXTURE_COMPARE_MODE" />
-		<field name="GL_TEXTURE_IMMUTABLE_FORMAT" />
-		<field name="GL_TEXTURE_IMMUTABLE_LEVELS" />
-		<field name="GL_TEXTURE_MAX_LEVEL" />
-		<field name="GL_TEXTURE_MAX_LOD" />
-		<field name="GL_TEXTURE_MIN_LOD" />
-		<field name="GL_TEXTURE_SWIZZLE_A" />
-		<field name="GL_TEXTURE_SWIZZLE_B" />
-		<field name="GL_TEXTURE_SWIZZLE_G" />
-		<field name="GL_TEXTURE_SWIZZLE_R" />
-		<field name="GL_TEXTURE_WRAP_R" />
-		<field name="GL_TIMEOUT_EXPIRED" />
-		<field name="GL_TIMEOUT_IGNORED" />
-		<field name="GL_TRANSFORM_FEEDBACK" />
-		<field name="GL_TRANSFORM_FEEDBACK_ACTIVE" />
-		<field name="GL_TRANSFORM_FEEDBACK_BINDING" />
-		<field name="GL_TRANSFORM_FEEDBACK_BUFFER" />
-		<field name="GL_TRANSFORM_FEEDBACK_BUFFER_BINDING" />
-		<field name="GL_TRANSFORM_FEEDBACK_BUFFER_MODE" />
-		<field name="GL_TRANSFORM_FEEDBACK_BUFFER_SIZE" />
-		<field name="GL_TRANSFORM_FEEDBACK_BUFFER_START" />
-		<field name="GL_TRANSFORM_FEEDBACK_PAUSED" />
-		<field name="GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN" />
-		<field name="GL_TRANSFORM_FEEDBACK_VARYINGS" />
-		<field name="GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH" />
-		<field name="GL_UNIFORM_ARRAY_STRIDE" />
-		<field name="GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS" />
-		<field name="GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES" />
-		<field name="GL_UNIFORM_BLOCK_BINDING" />
-		<field name="GL_UNIFORM_BLOCK_DATA_SIZE" />
-		<field name="GL_UNIFORM_BLOCK_INDEX" />
-		<field name="GL_UNIFORM_BLOCK_NAME_LENGTH" />
-		<field name="GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER" />
-		<field name="GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER" />
-		<field name="GL_UNIFORM_BUFFER" />
-		<field name="GL_UNIFORM_BUFFER_BINDING" />
-		<field name="GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT" />
-		<field name="GL_UNIFORM_BUFFER_SIZE" />
-		<field name="GL_UNIFORM_BUFFER_START" />
-		<field name="GL_UNIFORM_IS_ROW_MAJOR" />
-		<field name="GL_UNIFORM_MATRIX_STRIDE" />
-		<field name="GL_UNIFORM_NAME_LENGTH" />
-		<field name="GL_UNIFORM_OFFSET" />
-		<field name="GL_UNIFORM_SIZE" />
-		<field name="GL_UNIFORM_TYPE" />
-		<field name="GL_UNPACK_IMAGE_HEIGHT" />
-		<field name="GL_UNPACK_ROW_LENGTH" />
-		<field name="GL_UNPACK_SKIP_IMAGES" />
-		<field name="GL_UNPACK_SKIP_PIXELS" />
-		<field name="GL_UNPACK_SKIP_ROWS" />
-		<field name="GL_UNSIGNALED" />
-		<field name="GL_UNSIGNED_INT_10F_11F_11F_REV" />
-		<field name="GL_UNSIGNED_INT_24_8" />
-		<field name="GL_UNSIGNED_INT_2_10_10_10_REV" />
-		<field name="GL_UNSIGNED_INT_5_9_9_9_REV" />
-		<field name="GL_UNSIGNED_INT_SAMPLER_2D" />
-		<field name="GL_UNSIGNED_INT_SAMPLER_2D_ARRAY" />
-		<field name="GL_UNSIGNED_INT_SAMPLER_3D" />
-		<field name="GL_UNSIGNED_INT_SAMPLER_CUBE" />
-		<field name="GL_UNSIGNED_INT_VEC2" />
-		<field name="GL_UNSIGNED_INT_VEC3" />
-		<field name="GL_UNSIGNED_INT_VEC4" />
-		<field name="GL_UNSIGNED_NORMALIZED" />
-		<field name="GL_VERTEX_ARRAY_BINDING" />
-		<field name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR" />
-		<field name="GL_VERTEX_ATTRIB_ARRAY_INTEGER" />
-		<field name="GL_WAIT_FAILED" />
-	</class>
-	<class name="android/opengl/GLES31" since="21">
-		<extends name="android/opengl/GLES30" />
-		<method name="&lt;init>()V" />
-		<method name="glActiveShaderProgram(II)V" />
-		<method name="glBindImageTexture(IIIZIII)V" />
-		<method name="glBindProgramPipeline(I)V" />
-		<method name="glBindVertexBuffer(IIJI)V" />
-		<method name="glCreateShaderProgramv(I[Ljava/lang/String;)I" />
-		<method name="glDeleteProgramPipelines(ILjava/nio/IntBuffer;)V" />
-		<method name="glDeleteProgramPipelines(I[II)V" />
-		<method name="glDispatchCompute(III)V" />
-		<method name="glDispatchComputeIndirect(J)V" />
-		<method name="glDrawArraysIndirect(IJ)V" />
-		<method name="glDrawElementsIndirect(IIJ)V" />
-		<method name="glFramebufferParameteri(III)V" />
-		<method name="glGenProgramPipelines(ILjava/nio/IntBuffer;)V" />
-		<method name="glGenProgramPipelines(I[II)V" />
-		<method name="glGetBooleani_v(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetBooleani_v(II[ZI)V" />
-		<method name="glGetFramebufferParameteriv(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetFramebufferParameteriv(II[II)V" />
-		<method name="glGetMultisamplefv(IILjava/nio/FloatBuffer;)V" />
-		<method name="glGetMultisamplefv(II[FI)V" />
-		<method name="glGetProgramInterfaceiv(IIILjava/nio/IntBuffer;)V" />
-		<method name="glGetProgramInterfaceiv(III[II)V" />
-		<method name="glGetProgramPipelineInfoLog(I)Ljava/lang/String;" />
-		<method name="glGetProgramPipelineiv(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetProgramPipelineiv(II[II)V" />
-		<method name="glGetProgramResourceIndex(IILjava/lang/String;)I" />
-		<method name="glGetProgramResourceLocation(IILjava/lang/String;)I" />
-		<method name="glGetProgramResourceName(III)Ljava/lang/String;" />
-		<method name="glGetProgramResourceiv(IIIILjava/nio/IntBuffer;ILjava/nio/IntBuffer;Ljava/nio/IntBuffer;)V" />
-		<method name="glGetProgramResourceiv(IIII[III[II[II)V" />
-		<method name="glGetTexLevelParameterfv(IIILjava/nio/FloatBuffer;)V" />
-		<method name="glGetTexLevelParameterfv(III[FI)V" />
-		<method name="glGetTexLevelParameteriv(IIILjava/nio/IntBuffer;)V" />
-		<method name="glGetTexLevelParameteriv(III[II)V" />
-		<method name="glIsProgramPipeline(I)Z" />
-		<method name="glMemoryBarrier(I)V" />
-		<method name="glMemoryBarrierByRegion(I)V" />
-		<method name="glProgramUniform1f(IIF)V" />
-		<method name="glProgramUniform1fv(IIILjava/nio/FloatBuffer;)V" />
-		<method name="glProgramUniform1fv(III[FI)V" />
-		<method name="glProgramUniform1i(III)V" />
-		<method name="glProgramUniform1iv(IIILjava/nio/IntBuffer;)V" />
-		<method name="glProgramUniform1iv(III[II)V" />
-		<method name="glProgramUniform1ui(III)V" />
-		<method name="glProgramUniform1uiv(IIILjava/nio/IntBuffer;)V" />
-		<method name="glProgramUniform1uiv(III[II)V" />
-		<method name="glProgramUniform2f(IIFF)V" />
-		<method name="glProgramUniform2fv(IIILjava/nio/FloatBuffer;)V" />
-		<method name="glProgramUniform2fv(III[FI)V" />
-		<method name="glProgramUniform2i(IIII)V" />
-		<method name="glProgramUniform2iv(IIILjava/nio/IntBuffer;)V" />
-		<method name="glProgramUniform2iv(III[II)V" />
-		<method name="glProgramUniform2ui(IIII)V" />
-		<method name="glProgramUniform2uiv(IIILjava/nio/IntBuffer;)V" />
-		<method name="glProgramUniform2uiv(III[II)V" />
-		<method name="glProgramUniform3f(IIFFF)V" />
-		<method name="glProgramUniform3fv(IIILjava/nio/FloatBuffer;)V" />
-		<method name="glProgramUniform3fv(III[FI)V" />
-		<method name="glProgramUniform3i(IIIII)V" />
-		<method name="glProgramUniform3iv(IIILjava/nio/IntBuffer;)V" />
-		<method name="glProgramUniform3iv(III[II)V" />
-		<method name="glProgramUniform3ui(IIIII)V" />
-		<method name="glProgramUniform3uiv(IIILjava/nio/IntBuffer;)V" />
-		<method name="glProgramUniform3uiv(III[II)V" />
-		<method name="glProgramUniform4f(IIFFFF)V" />
-		<method name="glProgramUniform4fv(IIILjava/nio/FloatBuffer;)V" />
-		<method name="glProgramUniform4fv(III[FI)V" />
-		<method name="glProgramUniform4i(IIIIII)V" />
-		<method name="glProgramUniform4iv(IIILjava/nio/IntBuffer;)V" />
-		<method name="glProgramUniform4iv(III[II)V" />
-		<method name="glProgramUniform4ui(IIIIII)V" />
-		<method name="glProgramUniform4uiv(IIILjava/nio/IntBuffer;)V" />
-		<method name="glProgramUniform4uiv(III[II)V" />
-		<method name="glProgramUniformMatrix2fv(IIIZLjava/nio/FloatBuffer;)V" />
-		<method name="glProgramUniformMatrix2fv(IIIZ[FI)V" />
-		<method name="glProgramUniformMatrix2x3fv(IIIZLjava/nio/FloatBuffer;)V" />
-		<method name="glProgramUniformMatrix2x3fv(IIIZ[FI)V" />
-		<method name="glProgramUniformMatrix2x4fv(IIIZLjava/nio/FloatBuffer;)V" />
-		<method name="glProgramUniformMatrix2x4fv(IIIZ[FI)V" />
-		<method name="glProgramUniformMatrix3fv(IIIZLjava/nio/FloatBuffer;)V" />
-		<method name="glProgramUniformMatrix3fv(IIIZ[FI)V" />
-		<method name="glProgramUniformMatrix3x2fv(IIIZLjava/nio/FloatBuffer;)V" />
-		<method name="glProgramUniformMatrix3x2fv(IIIZ[FI)V" />
-		<method name="glProgramUniformMatrix3x4fv(IIIZLjava/nio/FloatBuffer;)V" />
-		<method name="glProgramUniformMatrix3x4fv(IIIZ[FI)V" />
-		<method name="glProgramUniformMatrix4fv(IIIZLjava/nio/FloatBuffer;)V" />
-		<method name="glProgramUniformMatrix4fv(IIIZ[FI)V" />
-		<method name="glProgramUniformMatrix4x2fv(IIIZLjava/nio/FloatBuffer;)V" />
-		<method name="glProgramUniformMatrix4x2fv(IIIZ[FI)V" />
-		<method name="glProgramUniformMatrix4x3fv(IIIZLjava/nio/FloatBuffer;)V" />
-		<method name="glProgramUniformMatrix4x3fv(IIIZ[FI)V" />
-		<method name="glSampleMaski(II)V" />
-		<method name="glTexStorage2DMultisample(IIIIIZ)V" />
-		<method name="glUseProgramStages(III)V" />
-		<method name="glValidateProgramPipeline(I)V" />
-		<method name="glVertexAttribBinding(II)V" />
-		<method name="glVertexAttribFormat(IIIZI)V" />
-		<method name="glVertexAttribIFormat(IIII)V" />
-		<method name="glVertexBindingDivisor(II)V" />
-		<field name="GL_ACTIVE_ATOMIC_COUNTER_BUFFERS" />
-		<field name="GL_ACTIVE_PROGRAM" />
-		<field name="GL_ACTIVE_RESOURCES" />
-		<field name="GL_ACTIVE_VARIABLES" />
-		<field name="GL_ALL_SHADER_BITS" />
-		<field name="GL_ARRAY_SIZE" />
-		<field name="GL_ARRAY_STRIDE" />
-		<field name="GL_ATOMIC_COUNTER_BARRIER_BIT" />
-		<field name="GL_ATOMIC_COUNTER_BUFFER" />
-		<field name="GL_ATOMIC_COUNTER_BUFFER_BINDING" />
-		<field name="GL_ATOMIC_COUNTER_BUFFER_INDEX" />
-		<field name="GL_ATOMIC_COUNTER_BUFFER_SIZE" />
-		<field name="GL_ATOMIC_COUNTER_BUFFER_START" />
-		<field name="GL_BLOCK_INDEX" />
-		<field name="GL_BUFFER_BINDING" />
-		<field name="GL_BUFFER_DATA_SIZE" />
-		<field name="GL_BUFFER_UPDATE_BARRIER_BIT" />
-		<field name="GL_BUFFER_VARIABLE" />
-		<field name="GL_COMMAND_BARRIER_BIT" />
-		<field name="GL_COMPUTE_SHADER" />
-		<field name="GL_COMPUTE_SHADER_BIT" />
-		<field name="GL_COMPUTE_WORK_GROUP_SIZE" />
-		<field name="GL_DEPTH_STENCIL_TEXTURE_MODE" />
-		<field name="GL_DISPATCH_INDIRECT_BUFFER" />
-		<field name="GL_DISPATCH_INDIRECT_BUFFER_BINDING" />
-		<field name="GL_DRAW_INDIRECT_BUFFER" />
-		<field name="GL_DRAW_INDIRECT_BUFFER_BINDING" />
-		<field name="GL_FRAGMENT_SHADER_BIT" />
-		<field name="GL_FRAMEBUFFER_BARRIER_BIT" />
-		<field name="GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS" />
-		<field name="GL_FRAMEBUFFER_DEFAULT_HEIGHT" />
-		<field name="GL_FRAMEBUFFER_DEFAULT_SAMPLES" />
-		<field name="GL_FRAMEBUFFER_DEFAULT_WIDTH" />
-		<field name="GL_IMAGE_2D" />
-		<field name="GL_IMAGE_2D_ARRAY" />
-		<field name="GL_IMAGE_3D" />
-		<field name="GL_IMAGE_BINDING_ACCESS" />
-		<field name="GL_IMAGE_BINDING_FORMAT" />
-		<field name="GL_IMAGE_BINDING_LAYER" />
-		<field name="GL_IMAGE_BINDING_LAYERED" />
-		<field name="GL_IMAGE_BINDING_LEVEL" />
-		<field name="GL_IMAGE_BINDING_NAME" />
-		<field name="GL_IMAGE_CUBE" />
-		<field name="GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS" />
-		<field name="GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE" />
-		<field name="GL_IMAGE_FORMAT_COMPATIBILITY_TYPE" />
-		<field name="GL_INT_IMAGE_2D" />
-		<field name="GL_INT_IMAGE_2D_ARRAY" />
-		<field name="GL_INT_IMAGE_3D" />
-		<field name="GL_INT_IMAGE_CUBE" />
-		<field name="GL_INT_SAMPLER_2D_MULTISAMPLE" />
-		<field name="GL_IS_ROW_MAJOR" />
-		<field name="GL_LOCATION" />
-		<field name="GL_MATRIX_STRIDE" />
-		<field name="GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS" />
-		<field name="GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE" />
-		<field name="GL_MAX_COLOR_TEXTURE_SAMPLES" />
-		<field name="GL_MAX_COMBINED_ATOMIC_COUNTERS" />
-		<field name="GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS" />
-		<field name="GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS" />
-		<field name="GL_MAX_COMBINED_IMAGE_UNIFORMS" />
-		<field name="GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES" />
-		<field name="GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS" />
-		<field name="GL_MAX_COMPUTE_ATOMIC_COUNTERS" />
-		<field name="GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS" />
-		<field name="GL_MAX_COMPUTE_IMAGE_UNIFORMS" />
-		<field name="GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS" />
-		<field name="GL_MAX_COMPUTE_SHARED_MEMORY_SIZE" />
-		<field name="GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS" />
-		<field name="GL_MAX_COMPUTE_UNIFORM_BLOCKS" />
-		<field name="GL_MAX_COMPUTE_UNIFORM_COMPONENTS" />
-		<field name="GL_MAX_COMPUTE_WORK_GROUP_COUNT" />
-		<field name="GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS" />
-		<field name="GL_MAX_COMPUTE_WORK_GROUP_SIZE" />
-		<field name="GL_MAX_DEPTH_TEXTURE_SAMPLES" />
-		<field name="GL_MAX_FRAGMENT_ATOMIC_COUNTERS" />
-		<field name="GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS" />
-		<field name="GL_MAX_FRAGMENT_IMAGE_UNIFORMS" />
-		<field name="GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS" />
-		<field name="GL_MAX_FRAMEBUFFER_HEIGHT" />
-		<field name="GL_MAX_FRAMEBUFFER_SAMPLES" />
-		<field name="GL_MAX_FRAMEBUFFER_WIDTH" />
-		<field name="GL_MAX_IMAGE_UNITS" />
-		<field name="GL_MAX_INTEGER_SAMPLES" />
-		<field name="GL_MAX_NAME_LENGTH" />
-		<field name="GL_MAX_NUM_ACTIVE_VARIABLES" />
-		<field name="GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET" />
-		<field name="GL_MAX_SAMPLE_MASK_WORDS" />
-		<field name="GL_MAX_SHADER_STORAGE_BLOCK_SIZE" />
-		<field name="GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS" />
-		<field name="GL_MAX_UNIFORM_LOCATIONS" />
-		<field name="GL_MAX_VERTEX_ATOMIC_COUNTERS" />
-		<field name="GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS" />
-		<field name="GL_MAX_VERTEX_ATTRIB_BINDINGS" />
-		<field name="GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET" />
-		<field name="GL_MAX_VERTEX_ATTRIB_STRIDE" />
-		<field name="GL_MAX_VERTEX_IMAGE_UNIFORMS" />
-		<field name="GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS" />
-		<field name="GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET" />
-		<field name="GL_NAME_LENGTH" />
-		<field name="GL_NUM_ACTIVE_VARIABLES" />
-		<field name="GL_OFFSET" />
-		<field name="GL_PIXEL_BUFFER_BARRIER_BIT" />
-		<field name="GL_PROGRAM_INPUT" />
-		<field name="GL_PROGRAM_OUTPUT" />
-		<field name="GL_PROGRAM_PIPELINE_BINDING" />
-		<field name="GL_PROGRAM_SEPARABLE" />
-		<field name="GL_READ_ONLY" />
-		<field name="GL_READ_WRITE" />
-		<field name="GL_REFERENCED_BY_COMPUTE_SHADER" />
-		<field name="GL_REFERENCED_BY_FRAGMENT_SHADER" />
-		<field name="GL_REFERENCED_BY_VERTEX_SHADER" />
-		<field name="GL_SAMPLER_2D_MULTISAMPLE" />
-		<field name="GL_SAMPLE_MASK" />
-		<field name="GL_SAMPLE_MASK_VALUE" />
-		<field name="GL_SAMPLE_POSITION" />
-		<field name="GL_SHADER_STORAGE_BARRIER_BIT" />
-		<field name="GL_SHADER_STORAGE_BLOCK" />
-		<field name="GL_SHADER_STORAGE_BUFFER" />
-		<field name="GL_SHADER_STORAGE_BUFFER_BINDING" />
-		<field name="GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT" />
-		<field name="GL_SHADER_STORAGE_BUFFER_SIZE" />
-		<field name="GL_SHADER_STORAGE_BUFFER_START" />
-		<field name="GL_STENCIL_INDEX" />
-		<field name="GL_TEXTURE_2D_MULTISAMPLE" />
-		<field name="GL_TEXTURE_ALPHA_SIZE" />
-		<field name="GL_TEXTURE_ALPHA_TYPE" />
-		<field name="GL_TEXTURE_BINDING_2D_MULTISAMPLE" />
-		<field name="GL_TEXTURE_BLUE_SIZE" />
-		<field name="GL_TEXTURE_BLUE_TYPE" />
-		<field name="GL_TEXTURE_COMPRESSED" />
-		<field name="GL_TEXTURE_DEPTH" />
-		<field name="GL_TEXTURE_DEPTH_SIZE" />
-		<field name="GL_TEXTURE_DEPTH_TYPE" />
-		<field name="GL_TEXTURE_FETCH_BARRIER_BIT" />
-		<field name="GL_TEXTURE_FIXED_SAMPLE_LOCATIONS" />
-		<field name="GL_TEXTURE_GREEN_SIZE" />
-		<field name="GL_TEXTURE_GREEN_TYPE" />
-		<field name="GL_TEXTURE_HEIGHT" />
-		<field name="GL_TEXTURE_INTERNAL_FORMAT" />
-		<field name="GL_TEXTURE_RED_SIZE" />
-		<field name="GL_TEXTURE_RED_TYPE" />
-		<field name="GL_TEXTURE_SAMPLES" />
-		<field name="GL_TEXTURE_SHARED_SIZE" />
-		<field name="GL_TEXTURE_STENCIL_SIZE" />
-		<field name="GL_TEXTURE_UPDATE_BARRIER_BIT" />
-		<field name="GL_TEXTURE_WIDTH" />
-		<field name="GL_TOP_LEVEL_ARRAY_SIZE" />
-		<field name="GL_TOP_LEVEL_ARRAY_STRIDE" />
-		<field name="GL_TRANSFORM_FEEDBACK_BARRIER_BIT" />
-		<field name="GL_TRANSFORM_FEEDBACK_VARYING" />
-		<field name="GL_TYPE" />
-		<field name="GL_UNIFORM" />
-		<field name="GL_UNIFORM_BARRIER_BIT" />
-		<field name="GL_UNIFORM_BLOCK" />
-		<field name="GL_UNSIGNED_INT_ATOMIC_COUNTER" />
-		<field name="GL_UNSIGNED_INT_IMAGE_2D" />
-		<field name="GL_UNSIGNED_INT_IMAGE_2D_ARRAY" />
-		<field name="GL_UNSIGNED_INT_IMAGE_3D" />
-		<field name="GL_UNSIGNED_INT_IMAGE_CUBE" />
-		<field name="GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE" />
-		<field name="GL_VERTEX_ATTRIB_BINDING" />
-		<field name="GL_VERTEX_ATTRIB_RELATIVE_OFFSET" />
-		<field name="GL_VERTEX_BINDING_BUFFER" />
-		<field name="GL_VERTEX_BINDING_DIVISOR" />
-		<field name="GL_VERTEX_BINDING_OFFSET" />
-		<field name="GL_VERTEX_BINDING_STRIDE" />
-		<field name="GL_VERTEX_SHADER_BIT" />
-		<field name="GL_WRITE_ONLY" />
-	</class>
-	<class name="android/opengl/GLES31Ext" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="glBlendBarrierKHR()V" />
-		<method name="glBlendEquationSeparateiEXT(III)V" />
-		<method name="glBlendEquationiEXT(II)V" />
-		<method name="glBlendFuncSeparateiEXT(IIIII)V" />
-		<method name="glBlendFunciEXT(III)V" />
-		<method name="glColorMaskiEXT(IZZZZ)V" />
-		<method name="glCopyImageSubDataEXT(IIIIIIIIIIIIIII)V" />
-		<method name="glDebugMessageCallbackKHR(Landroid/opengl/GLES31Ext$DebugProcKHR;)V" />
-		<method name="glDebugMessageControlKHR(IIIILjava/nio/IntBuffer;Z)V" />
-		<method name="glDebugMessageControlKHR(IIII[IIZ)V" />
-		<method name="glDebugMessageInsertKHR(IIIILjava/lang/String;)V" />
-		<method name="glDisableiEXT(II)V" />
-		<method name="glEnableiEXT(II)V" />
-		<method name="glFramebufferTextureEXT(IIII)V" />
-		<method name="glGetDebugMessageCallbackKHR()Landroid/opengl/GLES31Ext$DebugProcKHR;" />
-		<method name="glGetDebugMessageLogKHR(II[II[II[II[II[II[BI)I" />
-		<method name="glGetDebugMessageLogKHR(ILjava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;)[Ljava/lang/String;" />
-		<method name="glGetDebugMessageLogKHR(ILjava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/ByteBuffer;)I" />
-		<method name="glGetDebugMessageLogKHR(I[II[II[II[II)[Ljava/lang/String;" />
-		<method name="glGetObjectLabelKHR(II)Ljava/lang/String;" />
-		<method name="glGetObjectPtrLabelKHR(J)Ljava/lang/String;" />
-		<method name="glGetSamplerParameterIivEXT(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetSamplerParameterIivEXT(II[II)V" />
-		<method name="glGetSamplerParameterIuivEXT(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetSamplerParameterIuivEXT(II[II)V" />
-		<method name="glGetTexParameterIivEXT(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetTexParameterIivEXT(II[II)V" />
-		<method name="glGetTexParameterIuivEXT(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetTexParameterIuivEXT(II[II)V" />
-		<method name="glIsEnablediEXT(II)Z" />
-		<method name="glMinSampleShadingOES(F)V" />
-		<method name="glObjectLabelKHR(IIILjava/lang/String;)V" />
-		<method name="glObjectPtrLabelKHR(JLjava/lang/String;)V" />
-		<method name="glPatchParameteriEXT(II)V" />
-		<method name="glPopDebugGroupKHR()V" />
-		<method name="glPrimitiveBoundingBoxEXT(FFFFFFFF)V" />
-		<method name="glPushDebugGroupKHR(IIILjava/lang/String;)V" />
-		<method name="glSamplerParameterIivEXT(IILjava/nio/IntBuffer;)V" />
-		<method name="glSamplerParameterIivEXT(II[II)V" />
-		<method name="glSamplerParameterIuivEXT(IILjava/nio/IntBuffer;)V" />
-		<method name="glSamplerParameterIuivEXT(II[II)V" />
-		<method name="glTexBufferEXT(III)V" />
-		<method name="glTexBufferRangeEXT(IIIII)V" />
-		<method name="glTexParameterIivEXT(IILjava/nio/IntBuffer;)V" />
-		<method name="glTexParameterIivEXT(II[II)V" />
-		<method name="glTexParameterIuivEXT(IILjava/nio/IntBuffer;)V" />
-		<method name="glTexParameterIuivEXT(II[II)V" />
-		<method name="glTexStorage3DMultisampleOES(IIIIIIZ)V" />
-		<field name="GL_BLEND_ADVANCED_COHERENT_KHR" />
-		<field name="GL_BUFFER_KHR" />
-		<field name="GL_CLAMP_TO_BORDER_EXT" />
-		<field name="GL_COLORBURN_KHR" />
-		<field name="GL_COLORDODGE_KHR" />
-		<field name="GL_COMPRESSED_RGBA_ASTC_10x10_KHR" />
-		<field name="GL_COMPRESSED_RGBA_ASTC_10x5_KHR" />
-		<field name="GL_COMPRESSED_RGBA_ASTC_10x6_KHR" />
-		<field name="GL_COMPRESSED_RGBA_ASTC_10x8_KHR" />
-		<field name="GL_COMPRESSED_RGBA_ASTC_12x10_KHR" />
-		<field name="GL_COMPRESSED_RGBA_ASTC_12x12_KHR" />
-		<field name="GL_COMPRESSED_RGBA_ASTC_4x4_KHR" />
-		<field name="GL_COMPRESSED_RGBA_ASTC_5x4_KHR" />
-		<field name="GL_COMPRESSED_RGBA_ASTC_5x5_KHR" />
-		<field name="GL_COMPRESSED_RGBA_ASTC_6x5_KHR" />
-		<field name="GL_COMPRESSED_RGBA_ASTC_6x6_KHR" />
-		<field name="GL_COMPRESSED_RGBA_ASTC_8x5_KHR" />
-		<field name="GL_COMPRESSED_RGBA_ASTC_8x6_KHR" />
-		<field name="GL_COMPRESSED_RGBA_ASTC_8x8_KHR" />
-		<field name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR" />
-		<field name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR" />
-		<field name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR" />
-		<field name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR" />
-		<field name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR" />
-		<field name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR" />
-		<field name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR" />
-		<field name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR" />
-		<field name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR" />
-		<field name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR" />
-		<field name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR" />
-		<field name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR" />
-		<field name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR" />
-		<field name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR" />
-		<field name="GL_CONTEXT_FLAG_DEBUG_BIT_KHR" />
-		<field name="GL_DARKEN_KHR" />
-		<field name="GL_DEBUG_CALLBACK_FUNCTION_KHR" />
-		<field name="GL_DEBUG_CALLBACK_USER_PARAM_KHR" />
-		<field name="GL_DEBUG_GROUP_STACK_DEPTH_KHR" />
-		<field name="GL_DEBUG_LOGGED_MESSAGES_KHR" />
-		<field name="GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR" />
-		<field name="GL_DEBUG_OUTPUT_KHR" />
-		<field name="GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR" />
-		<field name="GL_DEBUG_SEVERITY_HIGH_KHR" />
-		<field name="GL_DEBUG_SEVERITY_LOW_KHR" />
-		<field name="GL_DEBUG_SEVERITY_MEDIUM_KHR" />
-		<field name="GL_DEBUG_SEVERITY_NOTIFICATION_KHR" />
-		<field name="GL_DEBUG_SOURCE_API_KHR" />
-		<field name="GL_DEBUG_SOURCE_APPLICATION_KHR" />
-		<field name="GL_DEBUG_SOURCE_OTHER_KHR" />
-		<field name="GL_DEBUG_SOURCE_SHADER_COMPILER_KHR" />
-		<field name="GL_DEBUG_SOURCE_THIRD_PARTY_KHR" />
-		<field name="GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR" />
-		<field name="GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR" />
-		<field name="GL_DEBUG_TYPE_ERROR_KHR" />
-		<field name="GL_DEBUG_TYPE_MARKER_KHR" />
-		<field name="GL_DEBUG_TYPE_OTHER_KHR" />
-		<field name="GL_DEBUG_TYPE_PERFORMANCE_KHR" />
-		<field name="GL_DEBUG_TYPE_POP_GROUP_KHR" />
-		<field name="GL_DEBUG_TYPE_PORTABILITY_KHR" />
-		<field name="GL_DEBUG_TYPE_PUSH_GROUP_KHR" />
-		<field name="GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR" />
-		<field name="GL_DECODE_EXT" />
-		<field name="GL_DIFFERENCE_KHR" />
-		<field name="GL_EXCLUSION_KHR" />
-		<field name="GL_FIRST_VERTEX_CONVENTION_EXT" />
-		<field name="GL_FRACTIONAL_EVEN_EXT" />
-		<field name="GL_FRACTIONAL_ODD_EXT" />
-		<field name="GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES" />
-		<field name="GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT" />
-		<field name="GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT" />
-		<field name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT" />
-		<field name="GL_GEOMETRY_LINKED_INPUT_TYPE_EXT" />
-		<field name="GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT" />
-		<field name="GL_GEOMETRY_LINKED_VERTICES_OUT_EXT" />
-		<field name="GL_GEOMETRY_SHADER_BIT_EXT" />
-		<field name="GL_GEOMETRY_SHADER_EXT" />
-		<field name="GL_GEOMETRY_SHADER_INVOCATIONS_EXT" />
-		<field name="GL_HARDLIGHT_KHR" />
-		<field name="GL_HSL_COLOR_KHR" />
-		<field name="GL_HSL_HUE_KHR" />
-		<field name="GL_HSL_LUMINOSITY_KHR" />
-		<field name="GL_HSL_SATURATION_KHR" />
-		<field name="GL_IMAGE_BUFFER_EXT" />
-		<field name="GL_IMAGE_CUBE_MAP_ARRAY_EXT" />
-		<field name="GL_INT_IMAGE_BUFFER_EXT" />
-		<field name="GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT" />
-		<field name="GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES" />
-		<field name="GL_INT_SAMPLER_BUFFER_EXT" />
-		<field name="GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT" />
-		<field name="GL_ISOLINES_EXT" />
-		<field name="GL_IS_PER_PATCH_EXT" />
-		<field name="GL_LAST_VERTEX_CONVENTION_EXT" />
-		<field name="GL_LAYER_PROVOKING_VERTEX_EXT" />
-		<field name="GL_LIGHTEN_KHR" />
-		<field name="GL_LINES_ADJACENCY_EXT" />
-		<field name="GL_LINE_STRIP_ADJACENCY_EXT" />
-		<field name="GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT" />
-		<field name="GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT" />
-		<field name="GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT" />
-		<field name="GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR" />
-		<field name="GL_MAX_DEBUG_LOGGED_MESSAGES_KHR" />
-		<field name="GL_MAX_DEBUG_MESSAGE_LENGTH_KHR" />
-		<field name="GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES" />
-		<field name="GL_MAX_FRAMEBUFFER_LAYERS_EXT" />
-		<field name="GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT" />
-		<field name="GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT" />
-		<field name="GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT" />
-		<field name="GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT" />
-		<field name="GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT" />
-		<field name="GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT" />
-		<field name="GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT" />
-		<field name="GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT" />
-		<field name="GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT" />
-		<field name="GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT" />
-		<field name="GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT" />
-		<field name="GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT" />
-		<field name="GL_MAX_LABEL_LENGTH_KHR" />
-		<field name="GL_MAX_PATCH_VERTICES_EXT" />
-		<field name="GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT" />
-		<field name="GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT" />
-		<field name="GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT" />
-		<field name="GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT" />
-		<field name="GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT" />
-		<field name="GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT" />
-		<field name="GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT" />
-		<field name="GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT" />
-		<field name="GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT" />
-		<field name="GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT" />
-		<field name="GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT" />
-		<field name="GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT" />
-		<field name="GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT" />
-		<field name="GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT" />
-		<field name="GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT" />
-		<field name="GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT" />
-		<field name="GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT" />
-		<field name="GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT" />
-		<field name="GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT" />
-		<field name="GL_MAX_TESS_GEN_LEVEL_EXT" />
-		<field name="GL_MAX_TESS_PATCH_COMPONENTS_EXT" />
-		<field name="GL_MAX_TEXTURE_BUFFER_SIZE_EXT" />
-		<field name="GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES" />
-		<field name="GL_MIN_SAMPLE_SHADING_VALUE_OES" />
-		<field name="GL_MULTIPLY_KHR" />
-		<field name="GL_OVERLAY_KHR" />
-		<field name="GL_PATCHES_EXT" />
-		<field name="GL_PATCH_VERTICES_EXT" />
-		<field name="GL_PRIMITIVES_GENERATED_EXT" />
-		<field name="GL_PRIMITIVE_BOUNDING_BOX_EXT" />
-		<field name="GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED" />
-		<field name="GL_PROGRAM_KHR" />
-		<field name="GL_QUADS_EXT" />
-		<field name="GL_QUERY_KHR" />
-		<field name="GL_REFERENCED_BY_GEOMETRY_SHADER_EXT" />
-		<field name="GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT" />
-		<field name="GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT" />
-		<field name="GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES" />
-		<field name="GL_SAMPLER_BUFFER_EXT" />
-		<field name="GL_SAMPLER_CUBE_MAP_ARRAY_EXT" />
-		<field name="GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT" />
-		<field name="GL_SAMPLER_KHR" />
-		<field name="GL_SAMPLE_SHADING_OES" />
-		<field name="GL_SCREEN_KHR" />
-		<field name="GL_SHADER_KHR" />
-		<field name="GL_SKIP_DECODE_EXT" />
-		<field name="GL_SOFTLIGHT_KHR" />
-		<field name="GL_STACK_OVERFLOW_KHR" />
-		<field name="GL_STACK_UNDERFLOW_KHR" />
-		<field name="GL_STENCIL_INDEX8_OES" />
-		<field name="GL_STENCIL_INDEX_OES" />
-		<field name="GL_TESS_CONTROL_OUTPUT_VERTICES_EXT" />
-		<field name="GL_TESS_CONTROL_SHADER_BIT_EXT" />
-		<field name="GL_TESS_CONTROL_SHADER_EXT" />
-		<field name="GL_TESS_EVALUATION_SHADER_BIT_EXT" />
-		<field name="GL_TESS_EVALUATION_SHADER_EXT" />
-		<field name="GL_TESS_GEN_MODE_EXT" />
-		<field name="GL_TESS_GEN_POINT_MODE_EXT" />
-		<field name="GL_TESS_GEN_SPACING_EXT" />
-		<field name="GL_TESS_GEN_VERTEX_ORDER_EXT" />
-		<field name="GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES" />
-		<field name="GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES" />
-		<field name="GL_TEXTURE_BINDING_BUFFER_EXT" />
-		<field name="GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT" />
-		<field name="GL_TEXTURE_BORDER_COLOR_EXT" />
-		<field name="GL_TEXTURE_BUFFER_BINDING_EXT" />
-		<field name="GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT" />
-		<field name="GL_TEXTURE_BUFFER_EXT" />
-		<field name="GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT" />
-		<field name="GL_TEXTURE_BUFFER_OFFSET_EXT" />
-		<field name="GL_TEXTURE_BUFFER_SIZE_EXT" />
-		<field name="GL_TEXTURE_CUBE_MAP_ARRAY_EXT" />
-		<field name="GL_TEXTURE_SRGB_DECODE_EXT" />
-		<field name="GL_TRIANGLES_ADJACENCY_EXT" />
-		<field name="GL_TRIANGLE_STRIP_ADJACENCY_EXT" />
-		<field name="GL_UNDEFINED_VERTEX_EXT" />
-		<field name="GL_UNSIGNED_INT_IMAGE_BUFFER_EXT" />
-		<field name="GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT" />
-		<field name="GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES" />
-		<field name="GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT" />
-		<field name="GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT" />
-		<field name="GL_VERTEX_ARRAY_KHR" />
-	</class>
-	<class name="android/opengl/GLES31Ext$DebugProcKHR" since="21">
-		<extends name="java/lang/Object" />
-		<method name="onMessage(IIIILjava/lang/String;)V" />
-	</class>
-	<class name="android/opengl/GLException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(ILjava/lang/String;)V" />
-	</class>
-	<class name="android/opengl/GLSurfaceView" since="3">
-		<extends name="android/view/SurfaceView" />
-		<implements name="android/view/SurfaceHolder$Callback" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="getDebugFlags()I" />
-		<method name="getPreserveEGLContextOnPause()Z" since="11" />
-		<method name="getRenderMode()I" />
-		<method name="onPause()V" />
-		<method name="onResume()V" />
-		<method name="queueEvent(Ljava/lang/Runnable;)V" />
-		<method name="requestRender()V" />
-		<method name="setDebugFlags(I)V" />
-		<method name="setEGLConfigChooser(IIIIII)V" />
-		<method name="setEGLConfigChooser(Landroid/opengl/GLSurfaceView$EGLConfigChooser;)V" />
-		<method name="setEGLConfigChooser(Z)V" />
-		<method name="setEGLContextClientVersion(I)V" since="8" />
-		<method name="setEGLContextFactory(Landroid/opengl/GLSurfaceView$EGLContextFactory;)V" since="5" />
-		<method name="setEGLWindowSurfaceFactory(Landroid/opengl/GLSurfaceView$EGLWindowSurfaceFactory;)V" since="5" />
-		<method name="setGLWrapper(Landroid/opengl/GLSurfaceView$GLWrapper;)V" />
-		<method name="setPreserveEGLContextOnPause(Z)V" since="11" />
-		<method name="setRenderMode(I)V" />
-		<method name="setRenderer(Landroid/opengl/GLSurfaceView$Renderer;)V" />
-		<field name="DEBUG_CHECK_GL_ERROR" />
-		<field name="DEBUG_LOG_GL_CALLS" />
-		<field name="RENDERMODE_CONTINUOUSLY" />
-		<field name="RENDERMODE_WHEN_DIRTY" />
-	</class>
-	<class name="android/opengl/GLSurfaceView$EGLConfigChooser" since="3">
-		<extends name="java/lang/Object" />
-		<method name="chooseConfig(Ljavax/microedition/khronos/egl/EGL10;Ljavax/microedition/khronos/egl/EGLDisplay;)Ljavax/microedition/khronos/egl/EGLConfig;" />
-	</class>
-	<class name="android/opengl/GLSurfaceView$EGLContextFactory" since="5">
-		<extends name="java/lang/Object" />
-		<method name="createContext(Ljavax/microedition/khronos/egl/EGL10;Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;)Ljavax/microedition/khronos/egl/EGLContext;" />
-		<method name="destroyContext(Ljavax/microedition/khronos/egl/EGL10;Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLContext;)V" />
-	</class>
-	<class name="android/opengl/GLSurfaceView$EGLWindowSurfaceFactory" since="5">
-		<extends name="java/lang/Object" />
-		<method name="createWindowSurface(Ljavax/microedition/khronos/egl/EGL10;Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;Ljava/lang/Object;)Ljavax/microedition/khronos/egl/EGLSurface;" />
-		<method name="destroySurface(Ljavax/microedition/khronos/egl/EGL10;Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLSurface;)V" />
-	</class>
-	<class name="android/opengl/GLSurfaceView$GLWrapper" since="3">
-		<extends name="java/lang/Object" />
-		<method name="wrap(Ljavax/microedition/khronos/opengles/GL;)Ljavax/microedition/khronos/opengles/GL;" />
-	</class>
-	<class name="android/opengl/GLSurfaceView$Renderer" since="3">
-		<extends name="java/lang/Object" />
-		<method name="onDrawFrame(Ljavax/microedition/khronos/opengles/GL10;)V" />
-		<method name="onSurfaceChanged(Ljavax/microedition/khronos/opengles/GL10;II)V" />
-		<method name="onSurfaceCreated(Ljavax/microedition/khronos/opengles/GL10;Ljavax/microedition/khronos/egl/EGLConfig;)V" />
-	</class>
-	<class name="android/opengl/GLU" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="gluErrorString(I)Ljava/lang/String;" />
-		<method name="gluLookAt(Ljavax/microedition/khronos/opengles/GL10;FFFFFFFFF)V" />
-		<method name="gluOrtho2D(Ljavax/microedition/khronos/opengles/GL10;FFFF)V" />
-		<method name="gluPerspective(Ljavax/microedition/khronos/opengles/GL10;FFFF)V" />
-		<method name="gluProject(FFF[FI[FI[II[FI)I" />
-		<method name="gluUnProject(FFF[FI[FI[II[FI)I" />
-	</class>
-	<class name="android/opengl/GLUtils" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getEGLErrorString(I)Ljava/lang/String;" since="14" />
-		<method name="getInternalFormat(Landroid/graphics/Bitmap;)I" />
-		<method name="getType(Landroid/graphics/Bitmap;)I" />
-		<method name="texImage2D(IIILandroid/graphics/Bitmap;I)V" />
-		<method name="texImage2D(IIILandroid/graphics/Bitmap;II)V" />
-		<method name="texImage2D(IILandroid/graphics/Bitmap;I)V" />
-		<method name="texSubImage2D(IIIILandroid/graphics/Bitmap;)V" />
-		<method name="texSubImage2D(IIIILandroid/graphics/Bitmap;II)V" />
-	</class>
-	<class name="android/opengl/Matrix" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="frustumM([FIFFFFFF)V" />
-		<method name="invertM([FI[FI)Z" />
-		<method name="length(FFF)F" />
-		<method name="multiplyMM([FI[FI[FI)V" />
-		<method name="multiplyMV([FI[FI[FI)V" />
-		<method name="orthoM([FIFFFFFF)V" />
-		<method name="perspectiveM([FIFFFF)V" since="14" />
-		<method name="rotateM([FIFFFF)V" />
-		<method name="rotateM([FI[FIFFFF)V" />
-		<method name="scaleM([FIFFF)V" />
-		<method name="scaleM([FI[FIFFF)V" />
-		<method name="setIdentityM([FI)V" />
-		<method name="setLookAtM([FIFFFFFFFFF)V" since="8" />
-		<method name="setRotateEulerM([FIFFF)V" />
-		<method name="setRotateM([FIFFFF)V" />
-		<method name="translateM([FIFFF)V" />
-		<method name="translateM([FI[FIFFF)V" />
-		<method name="transposeM([FI[FI)V" />
-	</class>
-	<class name="android/opengl/Visibility" since="3">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="computeBoundingSphere([FII[FI)V" />
-		<method name="frustumCullSpheres([FI[FII[III)I" />
-		<method name="visibilityTest([FI[FI[CII)I" />
-	</class>
-	<class name="android/os/AsyncTask" since="3">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="cancel(Z)Z" />
-		<method name="doInBackground([Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="execute(Ljava/lang/Runnable;)V" since="11" />
-		<method name="execute([Ljava/lang/Object;)Landroid/os/AsyncTask;" />
-		<method name="executeOnExecutor(Ljava/util/concurrent/Executor;[Ljava/lang/Object;)Landroid/os/AsyncTask;" since="11" />
-		<method name="get()Ljava/lang/Object;" />
-		<method name="get(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;" />
-		<method name="getStatus()Landroid/os/AsyncTask$Status;" />
-		<method name="isCancelled()Z" />
-		<method name="onCancelled()V" />
-		<method name="onCancelled(Ljava/lang/Object;)V" since="11" />
-		<method name="onPostExecute(Ljava/lang/Object;)V" />
-		<method name="onPreExecute()V" />
-		<method name="onProgressUpdate([Ljava/lang/Object;)V" />
-		<method name="publishProgress([Ljava/lang/Object;)V" />
-		<field name="SERIAL_EXECUTOR" since="11" />
-		<field name="THREAD_POOL_EXECUTOR" since="11" />
-	</class>
-	<class name="android/os/AsyncTask$Status" since="3">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/os/AsyncTask$Status;" />
-		<method name="values()[Landroid/os/AsyncTask$Status;" />
-		<field name="FINISHED" />
-		<field name="PENDING" />
-		<field name="RUNNING" />
-	</class>
-	<class name="android/os/BadParcelableException" since="1">
-		<extends name="android/util/AndroidRuntimeException" />
-		<method name="&lt;init>(Ljava/lang/Exception;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/os/BaseBundle" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="clear()V" />
-		<method name="containsKey(Ljava/lang/String;)Z" />
-		<method name="get(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="getDouble(Ljava/lang/String;)D" />
-		<method name="getDouble(Ljava/lang/String;D)D" />
-		<method name="getDoubleArray(Ljava/lang/String;)[D" />
-		<method name="getInt(Ljava/lang/String;)I" />
-		<method name="getInt(Ljava/lang/String;I)I" />
-		<method name="getIntArray(Ljava/lang/String;)[I" />
-		<method name="getLong(Ljava/lang/String;)J" />
-		<method name="getLong(Ljava/lang/String;J)J" />
-		<method name="getLongArray(Ljava/lang/String;)[J" />
-		<method name="getString(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getStringArray(Ljava/lang/String;)[Ljava/lang/String;" />
-		<method name="isEmpty()Z" />
-		<method name="keySet()Ljava/util/Set;" />
-		<method name="putAll(Landroid/os/PersistableBundle;)V" />
-		<method name="putDouble(Ljava/lang/String;D)V" />
-		<method name="putDoubleArray(Ljava/lang/String;[D)V" />
-		<method name="putInt(Ljava/lang/String;I)V" />
-		<method name="putIntArray(Ljava/lang/String;[I)V" />
-		<method name="putLong(Ljava/lang/String;J)V" />
-		<method name="putLongArray(Ljava/lang/String;[J)V" />
-		<method name="putString(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="putStringArray(Ljava/lang/String;[Ljava/lang/String;)V" />
-		<method name="remove(Ljava/lang/String;)V" />
-		<method name="size()I" />
-	</class>
-	<class name="android/os/BatteryManager" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getIntProperty(I)I" since="21" />
-		<method name="getLongProperty(I)J" since="21" />
-		<field name="BATTERY_HEALTH_COLD" since="11" />
-		<field name="BATTERY_HEALTH_DEAD" />
-		<field name="BATTERY_HEALTH_GOOD" />
-		<field name="BATTERY_HEALTH_OVERHEAT" />
-		<field name="BATTERY_HEALTH_OVER_VOLTAGE" />
-		<field name="BATTERY_HEALTH_UNKNOWN" />
-		<field name="BATTERY_HEALTH_UNSPECIFIED_FAILURE" />
-		<field name="BATTERY_PLUGGED_AC" />
-		<field name="BATTERY_PLUGGED_USB" />
-		<field name="BATTERY_PLUGGED_WIRELESS" since="17" />
-		<field name="BATTERY_PROPERTY_CAPACITY" since="21" />
-		<field name="BATTERY_PROPERTY_CHARGE_COUNTER" since="21" />
-		<field name="BATTERY_PROPERTY_CURRENT_AVERAGE" since="21" />
-		<field name="BATTERY_PROPERTY_CURRENT_NOW" since="21" />
-		<field name="BATTERY_PROPERTY_ENERGY_COUNTER" since="21" />
-		<field name="BATTERY_STATUS_CHARGING" />
-		<field name="BATTERY_STATUS_DISCHARGING" />
-		<field name="BATTERY_STATUS_FULL" />
-		<field name="BATTERY_STATUS_NOT_CHARGING" />
-		<field name="BATTERY_STATUS_UNKNOWN" />
-		<field name="EXTRA_HEALTH" since="5" />
-		<field name="EXTRA_ICON_SMALL" since="5" />
-		<field name="EXTRA_LEVEL" since="5" />
-		<field name="EXTRA_PLUGGED" since="5" />
-		<field name="EXTRA_PRESENT" since="5" />
-		<field name="EXTRA_SCALE" since="5" />
-		<field name="EXTRA_STATUS" since="5" />
-		<field name="EXTRA_TECHNOLOGY" since="5" />
-		<field name="EXTRA_TEMPERATURE" since="5" />
-		<field name="EXTRA_VOLTAGE" since="5" />
-	</class>
-	<class name="android/os/Binder" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/IBinder" />
-		<method name="&lt;init>()V" />
-		<method name="attachInterface(Landroid/os/IInterface;Ljava/lang/String;)V" />
-		<method name="clearCallingIdentity()J" />
-		<method name="dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V" />
-		<method name="flushPendingCommands()V" />
-		<method name="getCallingPid()I" />
-		<method name="getCallingUid()I" />
-		<method name="getCallingUserHandle()Landroid/os/UserHandle;" since="17" />
-		<method name="joinThreadPool()V" />
-		<method name="onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z" />
-		<method name="restoreCallingIdentity(J)V" />
-	</class>
-	<class name="android/os/Build" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getRadioVersion()Ljava/lang/String;" since="14" />
-		<field name="BOARD" />
-		<field name="BOOTLOADER" since="8" />
-		<field name="BRAND" />
-		<field name="CPU_ABI" since="4" />
-		<field name="CPU_ABI2" since="8" />
-		<field name="DEVICE" />
-		<field name="DISPLAY" since="3" />
-		<field name="FINGERPRINT" />
-		<field name="HARDWARE" since="8" />
-		<field name="HOST" />
-		<field name="ID" />
-		<field name="MANUFACTURER" since="4" />
-		<field name="MODEL" />
-		<field name="PRODUCT" />
-		<field name="RADIO" since="8" />
-		<field name="SERIAL" since="9" />
-		<field name="TAGS" />
-		<field name="TIME" />
-		<field name="TYPE" />
-		<field name="UNKNOWN" since="8" />
-		<field name="USER" />
-	</class>
-	<class name="android/os/Build$VERSION" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="CODENAME" since="4" />
-		<field name="INCREMENTAL" />
-		<field name="RELEASE" />
-		<field name="SDK" />
-		<field name="SDK_INT" since="4" />
-	</class>
-	<class name="android/os/Build$VERSION_CODES" since="4">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="BASE" />
-		<field name="BASE_1_1" />
-		<field name="CUPCAKE" />
-		<field name="CUR_DEVELOPMENT" />
-		<field name="DONUT" />
-		<field name="ECLAIR" since="5" />
-		<field name="ECLAIR_0_1" since="6" />
-		<field name="ECLAIR_MR1" since="7" />
-		<field name="FROYO" since="8" />
-		<field name="GINGERBREAD" since="9" />
-		<field name="GINGERBREAD_MR1" since="10" />
-		<field name="HONEYCOMB" since="11" />
-		<field name="HONEYCOMB_MR1" since="12" />
-		<field name="HONEYCOMB_MR2" since="13" />
-		<field name="ICE_CREAM_SANDWICH" since="14" />
-		<field name="ICE_CREAM_SANDWICH_MR1" since="15" />
-		<field name="JELLY_BEAN" since="16" />
-		<field name="JELLY_BEAN_MR1" since="17" />
-		<field name="JELLY_BEAN_MR2" since="18" />
-		<field name="KITKAT" since="19" />
-		<field name="KITKAT_WATCH" since="20" />
-		<field name="L" since="21" />
-	</class>
-	<class name="android/os/Bundle" since="1">
-		<extends name="android/os/BaseBundle" since="21" />
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<implements name="java/lang/Cloneable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(Landroid/os/Bundle;)V" />
-		<method name="&lt;init>(Landroid/os/PersistableBundle;)V" since="21" />
-		<method name="&lt;init>(Ljava/lang/ClassLoader;)V" />
-		<method name="clear()V" />
-		<method name="containsKey(Ljava/lang/String;)Z" />
-		<method name="get(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="getBinder(Ljava/lang/String;)Landroid/os/IBinder;" since="18" />
-		<method name="getBoolean(Ljava/lang/String;)Z" />
-		<method name="getBoolean(Ljava/lang/String;Z)Z" />
-		<method name="getBooleanArray(Ljava/lang/String;)[Z" />
-		<method name="getBundle(Ljava/lang/String;)Landroid/os/Bundle;" />
-		<method name="getByte(Ljava/lang/String;)B" />
-		<method name="getByte(Ljava/lang/String;B)Ljava/lang/Byte;" />
-		<method name="getByteArray(Ljava/lang/String;)[B" />
-		<method name="getChar(Ljava/lang/String;)C" />
-		<method name="getChar(Ljava/lang/String;C)C" />
-		<method name="getCharArray(Ljava/lang/String;)[C" />
-		<method name="getCharSequence(Ljava/lang/String;)Ljava/lang/CharSequence;" />
-		<method name="getCharSequence(Ljava/lang/String;Ljava/lang/CharSequence;)Ljava/lang/CharSequence;" since="12" />
-		<method name="getCharSequenceArray(Ljava/lang/String;)[Ljava/lang/CharSequence;" since="8" />
-		<method name="getCharSequenceArrayList(Ljava/lang/String;)Ljava/util/ArrayList;" since="8" />
-		<method name="getClassLoader()Ljava/lang/ClassLoader;" since="11" />
-		<method name="getDouble(Ljava/lang/String;)D" />
-		<method name="getDouble(Ljava/lang/String;D)D" />
-		<method name="getDoubleArray(Ljava/lang/String;)[D" />
-		<method name="getFloat(Ljava/lang/String;)F" />
-		<method name="getFloat(Ljava/lang/String;F)F" />
-		<method name="getFloatArray(Ljava/lang/String;)[F" />
-		<method name="getInt(Ljava/lang/String;)I" />
-		<method name="getInt(Ljava/lang/String;I)I" />
-		<method name="getIntArray(Ljava/lang/String;)[I" />
-		<method name="getIntegerArrayList(Ljava/lang/String;)Ljava/util/ArrayList;" />
-		<method name="getLong(Ljava/lang/String;)J" />
-		<method name="getLong(Ljava/lang/String;J)J" />
-		<method name="getLongArray(Ljava/lang/String;)[J" />
-		<method name="getParcelable(Ljava/lang/String;)Landroid/os/Parcelable;" />
-		<method name="getParcelableArray(Ljava/lang/String;)[Landroid/os/Parcelable;" />
-		<method name="getParcelableArrayList(Ljava/lang/String;)Ljava/util/ArrayList;" />
-		<method name="getSerializable(Ljava/lang/String;)Ljava/io/Serializable;" />
-		<method name="getShort(Ljava/lang/String;)S" />
-		<method name="getShort(Ljava/lang/String;S)S" />
-		<method name="getShortArray(Ljava/lang/String;)[S" />
-		<method name="getSparseParcelableArray(Ljava/lang/String;)Landroid/util/SparseArray;" />
-		<method name="getString(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" since="12" />
-		<method name="getStringArray(Ljava/lang/String;)[Ljava/lang/String;" />
-		<method name="getStringArrayList(Ljava/lang/String;)Ljava/util/ArrayList;" />
-		<method name="hasFileDescriptors()Z" />
-		<method name="isEmpty()Z" />
-		<method name="keySet()Ljava/util/Set;" />
-		<method name="putAll(Landroid/os/Bundle;)V" />
-		<method name="putBinder(Ljava/lang/String;Landroid/os/IBinder;)V" since="18" />
-		<method name="putBoolean(Ljava/lang/String;Z)V" />
-		<method name="putBooleanArray(Ljava/lang/String;[Z)V" />
-		<method name="putBundle(Ljava/lang/String;Landroid/os/Bundle;)V" />
-		<method name="putByte(Ljava/lang/String;B)V" />
-		<method name="putByteArray(Ljava/lang/String;[B)V" />
-		<method name="putChar(Ljava/lang/String;C)V" />
-		<method name="putCharArray(Ljava/lang/String;[C)V" />
-		<method name="putCharSequence(Ljava/lang/String;Ljava/lang/CharSequence;)V" />
-		<method name="putCharSequenceArray(Ljava/lang/String;[Ljava/lang/CharSequence;)V" since="8" />
-		<method name="putCharSequenceArrayList(Ljava/lang/String;Ljava/util/ArrayList;)V" since="8" />
-		<method name="putDouble(Ljava/lang/String;D)V" />
-		<method name="putDoubleArray(Ljava/lang/String;[D)V" />
-		<method name="putFloat(Ljava/lang/String;F)V" />
-		<method name="putFloatArray(Ljava/lang/String;[F)V" />
-		<method name="putInt(Ljava/lang/String;I)V" />
-		<method name="putIntArray(Ljava/lang/String;[I)V" />
-		<method name="putIntegerArrayList(Ljava/lang/String;Ljava/util/ArrayList;)V" />
-		<method name="putLong(Ljava/lang/String;J)V" />
-		<method name="putLongArray(Ljava/lang/String;[J)V" />
-		<method name="putParcelable(Ljava/lang/String;Landroid/os/Parcelable;)V" />
-		<method name="putParcelableArray(Ljava/lang/String;[Landroid/os/Parcelable;)V" />
-		<method name="putParcelableArrayList(Ljava/lang/String;Ljava/util/ArrayList;)V" />
-		<method name="putSerializable(Ljava/lang/String;Ljava/io/Serializable;)V" />
-		<method name="putShort(Ljava/lang/String;S)V" />
-		<method name="putShortArray(Ljava/lang/String;[S)V" />
-		<method name="putSparseParcelableArray(Ljava/lang/String;Landroid/util/SparseArray;)V" />
-		<method name="putString(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="putStringArray(Ljava/lang/String;[Ljava/lang/String;)V" />
-		<method name="putStringArrayList(Ljava/lang/String;Ljava/util/ArrayList;)V" />
-		<method name="readFromParcel(Landroid/os/Parcel;)V" />
-		<method name="remove(Ljava/lang/String;)V" />
-		<method name="setClassLoader(Ljava/lang/ClassLoader;)V" />
-		<method name="size()I" />
-		<field name="CREATOR" />
-		<field name="EMPTY" />
-	</class>
-	<class name="android/os/CancellationSignal" since="16">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="cancel()V" />
-		<method name="isCanceled()Z" />
-		<method name="setOnCancelListener(Landroid/os/CancellationSignal$OnCancelListener;)V" />
-		<method name="throwIfCanceled()V" />
-	</class>
-	<class name="android/os/CancellationSignal$OnCancelListener" since="16">
-		<extends name="java/lang/Object" />
-		<method name="onCancel()V" />
-	</class>
-	<class name="android/os/ConditionVariable" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Z)V" />
-		<method name="block()V" />
-		<method name="block(J)Z" />
-		<method name="close()V" />
-		<method name="open()V" />
-	</class>
-	<class name="android/os/CountDownTimer" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(JJ)V" />
-		<method name="cancel()V" />
-		<method name="onFinish()V" />
-		<method name="onTick(J)V" />
-		<method name="start()Landroid/os/CountDownTimer;" />
-	</class>
-	<class name="android/os/DeadObjectException" since="1">
-		<extends name="android/os/RemoteException" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/os/Debug" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="changeDebugPort(I)V" />
-		<method name="dumpHprofData(Ljava/lang/String;)V" since="3" />
-		<method name="dumpService(Ljava/lang/String;Ljava/io/FileDescriptor;[Ljava/lang/String;)Z" since="8" />
-		<method name="enableEmulatorTraceOutput()V" />
-		<method name="getBinderDeathObjectCount()I" />
-		<method name="getBinderLocalObjectCount()I" />
-		<method name="getBinderProxyObjectCount()I" />
-		<method name="getBinderReceivedTransactions()I" />
-		<method name="getBinderSentTransactions()I" />
-		<method name="getGlobalAllocCount()I" />
-		<method name="getGlobalAllocSize()I" />
-		<method name="getGlobalClassInitCount()I" since="8" />
-		<method name="getGlobalClassInitTime()I" since="8" />
-		<method name="getGlobalExternalAllocCount()I" />
-		<method name="getGlobalExternalAllocSize()I" />
-		<method name="getGlobalExternalFreedCount()I" />
-		<method name="getGlobalExternalFreedSize()I" />
-		<method name="getGlobalFreedCount()I" />
-		<method name="getGlobalFreedSize()I" />
-		<method name="getGlobalGcInvocationCount()I" />
-		<method name="getLoadedClassCount()I" />
-		<method name="getMemoryInfo(Landroid/os/Debug$MemoryInfo;)V" />
-		<method name="getNativeHeapAllocatedSize()J" />
-		<method name="getNativeHeapFreeSize()J" />
-		<method name="getNativeHeapSize()J" />
-		<method name="getPss()J" since="14" />
-		<method name="getThreadAllocCount()I" />
-		<method name="getThreadAllocSize()I" />
-		<method name="getThreadExternalAllocCount()I" />
-		<method name="getThreadExternalAllocSize()I" />
-		<method name="getThreadGcInvocationCount()I" />
-		<method name="isDebuggerConnected()Z" />
-		<method name="printLoadedClasses(I)V" />
-		<method name="resetAllCounts()V" />
-		<method name="resetGlobalAllocCount()V" />
-		<method name="resetGlobalAllocSize()V" />
-		<method name="resetGlobalClassInitCount()V" since="8" />
-		<method name="resetGlobalClassInitTime()V" since="8" />
-		<method name="resetGlobalExternalAllocCount()V" />
-		<method name="resetGlobalExternalAllocSize()V" />
-		<method name="resetGlobalExternalFreedCount()V" />
-		<method name="resetGlobalExternalFreedSize()V" />
-		<method name="resetGlobalFreedCount()V" />
-		<method name="resetGlobalFreedSize()V" />
-		<method name="resetGlobalGcInvocationCount()V" />
-		<method name="resetThreadAllocCount()V" />
-		<method name="resetThreadAllocSize()V" />
-		<method name="resetThreadExternalAllocCount()V" />
-		<method name="resetThreadExternalAllocSize()V" />
-		<method name="resetThreadGcInvocationCount()V" />
-		<method name="setAllocationLimit(I)I" />
-		<method name="setGlobalAllocationLimit(I)I" />
-		<method name="startAllocCounting()V" />
-		<method name="startMethodTracing()V" />
-		<method name="startMethodTracing(Ljava/lang/String;)V" />
-		<method name="startMethodTracing(Ljava/lang/String;I)V" />
-		<method name="startMethodTracing(Ljava/lang/String;II)V" />
-		<method name="startMethodTracingSampling(Ljava/lang/String;II)V" since="21" />
-		<method name="startNativeTracing()V" />
-		<method name="stopAllocCounting()V" />
-		<method name="stopMethodTracing()V" />
-		<method name="stopNativeTracing()V" />
-		<method name="threadCpuTimeNanos()J" />
-		<method name="waitForDebugger()V" />
-		<method name="waitingForDebugger()Z" />
-		<field name="SHOW_CLASSLOADER" />
-		<field name="SHOW_FULL_DETAIL" />
-		<field name="SHOW_INITIALIZED" />
-		<field name="TRACE_COUNT_ALLOCS" />
-	</class>
-	<class name="android/os/Debug$InstructionCount" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="collect()Z" />
-		<method name="globalMethodInvocations()I" />
-		<method name="globalTotal()I" />
-		<method name="resetAndStart()Z" />
-	</class>
-	<class name="android/os/Debug$MemoryInfo" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" since="5" />
-		<method name="&lt;init>()V" />
-		<method name="getOtherLabel(I)Ljava/lang/String;" since="14" />
-		<method name="getOtherPrivateDirty(I)I" since="14" />
-		<method name="getOtherPss(I)I" since="14" />
-		<method name="getOtherSharedDirty(I)I" since="14" />
-		<method name="getTotalPrivateClean()I" since="19" />
-		<method name="getTotalPrivateDirty()I" since="5" />
-		<method name="getTotalPss()I" since="5" />
-		<method name="getTotalSharedClean()I" since="19" />
-		<method name="getTotalSharedDirty()I" since="5" />
-		<method name="getTotalSwappablePss()I" since="19" />
-		<method name="readFromParcel(Landroid/os/Parcel;)V" since="5" />
-		<field name="CREATOR" since="5" />
-		<field name="dalvikPrivateDirty" />
-		<field name="dalvikPss" />
-		<field name="dalvikSharedDirty" />
-		<field name="nativePrivateDirty" />
-		<field name="nativePss" />
-		<field name="nativeSharedDirty" />
-		<field name="otherPrivateDirty" />
-		<field name="otherPss" />
-		<field name="otherSharedDirty" />
-	</class>
-	<class name="android/os/DropBoxManager" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addData(Ljava/lang/String;[BI)V" />
-		<method name="addFile(Ljava/lang/String;Ljava/io/File;I)V" />
-		<method name="addText(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="getNextEntry(Ljava/lang/String;J)Landroid/os/DropBoxManager$Entry;" />
-		<method name="isTagEnabled(Ljava/lang/String;)Z" />
-		<field name="ACTION_DROPBOX_ENTRY_ADDED" since="11" />
-		<field name="EXTRA_TAG" since="11" />
-		<field name="EXTRA_TIME" since="11" />
-		<field name="IS_EMPTY" />
-		<field name="IS_GZIPPED" />
-		<field name="IS_TEXT" />
-	</class>
-	<class name="android/os/DropBoxManager$Entry" since="8">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<implements name="java/io/Closeable" since="9" />
-		<method name="&lt;init>(Ljava/lang/String;J)V" />
-		<method name="&lt;init>(Ljava/lang/String;JLandroid/os/ParcelFileDescriptor;I)V" />
-		<method name="&lt;init>(Ljava/lang/String;JLjava/io/File;I)V" />
-		<method name="&lt;init>(Ljava/lang/String;JLjava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;J[BI)V" />
-		<method name="close()V" />
-		<method name="getFlags()I" />
-		<method name="getInputStream()Ljava/io/InputStream;" />
-		<method name="getTag()Ljava/lang/String;" />
-		<method name="getText(I)Ljava/lang/String;" />
-		<method name="getTimeMillis()J" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/os/Environment" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getDataDirectory()Ljava/io/File;" />
-		<method name="getDownloadCacheDirectory()Ljava/io/File;" />
-		<method name="getExternalStorageDirectory()Ljava/io/File;" />
-		<method name="getExternalStoragePublicDirectory(Ljava/lang/String;)Ljava/io/File;" since="8" />
-		<method name="getExternalStorageState()Ljava/lang/String;" />
-		<method name="getExternalStorageState(Ljava/io/File;)Ljava/lang/String;" since="21" />
-		<method name="getRootDirectory()Ljava/io/File;" />
-		<method name="getStorageState(Ljava/io/File;)Ljava/lang/String;" since="19" />
-		<method name="isExternalStorageEmulated()Z" since="11" />
-		<method name="isExternalStorageEmulated(Ljava/io/File;)Z" since="21" />
-		<method name="isExternalStorageRemovable()Z" since="9" />
-		<method name="isExternalStorageRemovable(Ljava/io/File;)Z" since="21" />
-		<field name="DIRECTORY_ALARMS" since="8" />
-		<field name="DIRECTORY_DCIM" since="8" />
-		<field name="DIRECTORY_DOCUMENTS" since="19" />
-		<field name="DIRECTORY_DOWNLOADS" since="8" />
-		<field name="DIRECTORY_MOVIES" since="8" />
-		<field name="DIRECTORY_MUSIC" since="8" />
-		<field name="DIRECTORY_NOTIFICATIONS" since="8" />
-		<field name="DIRECTORY_PICTURES" since="8" />
-		<field name="DIRECTORY_PODCASTS" since="8" />
-		<field name="DIRECTORY_RINGTONES" since="8" />
-		<field name="MEDIA_BAD_REMOVAL" />
-		<field name="MEDIA_CHECKING" since="3" />
-		<field name="MEDIA_MOUNTED" />
-		<field name="MEDIA_MOUNTED_READ_ONLY" />
-		<field name="MEDIA_NOFS" since="3" />
-		<field name="MEDIA_REMOVED" />
-		<field name="MEDIA_SHARED" />
-		<field name="MEDIA_UNKNOWN" since="19" />
-		<field name="MEDIA_UNMOUNTABLE" />
-		<field name="MEDIA_UNMOUNTED" />
-	</class>
-	<class name="android/os/FileObserver" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;I)V" />
-		<method name="onEvent(ILjava/lang/String;)V" />
-		<method name="startWatching()V" />
-		<method name="stopWatching()V" />
-		<field name="ACCESS" />
-		<field name="ALL_EVENTS" />
-		<field name="ATTRIB" />
-		<field name="CLOSE_NOWRITE" />
-		<field name="CLOSE_WRITE" />
-		<field name="CREATE" />
-		<field name="DELETE" />
-		<field name="DELETE_SELF" />
-		<field name="MODIFY" />
-		<field name="MOVED_FROM" />
-		<field name="MOVED_TO" />
-		<field name="MOVE_SELF" />
-		<field name="OPEN" />
-	</class>
-	<class name="android/os/Handler" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/os/Handler$Callback;)V" since="3" />
-		<method name="&lt;init>(Landroid/os/Looper;)V" />
-		<method name="&lt;init>(Landroid/os/Looper;Landroid/os/Handler$Callback;)V" since="3" />
-		<method name="dispatchMessage(Landroid/os/Message;)V" />
-		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" />
-		<method name="getLooper()Landroid/os/Looper;" />
-		<method name="getMessageName(Landroid/os/Message;)Ljava/lang/String;" since="14" />
-		<method name="handleMessage(Landroid/os/Message;)V" />
-		<method name="hasMessages(I)Z" />
-		<method name="hasMessages(ILjava/lang/Object;)Z" />
-		<method name="obtainMessage()Landroid/os/Message;" />
-		<method name="obtainMessage(I)Landroid/os/Message;" />
-		<method name="obtainMessage(III)Landroid/os/Message;" />
-		<method name="obtainMessage(IIILjava/lang/Object;)Landroid/os/Message;" />
-		<method name="obtainMessage(ILjava/lang/Object;)Landroid/os/Message;" />
-		<method name="post(Ljava/lang/Runnable;)Z" />
-		<method name="postAtFrontOfQueue(Ljava/lang/Runnable;)Z" />
-		<method name="postAtTime(Ljava/lang/Runnable;J)Z" />
-		<method name="postAtTime(Ljava/lang/Runnable;Ljava/lang/Object;J)Z" />
-		<method name="postDelayed(Ljava/lang/Runnable;J)Z" />
-		<method name="removeCallbacks(Ljava/lang/Runnable;)V" />
-		<method name="removeCallbacks(Ljava/lang/Runnable;Ljava/lang/Object;)V" />
-		<method name="removeCallbacksAndMessages(Ljava/lang/Object;)V" />
-		<method name="removeMessages(I)V" />
-		<method name="removeMessages(ILjava/lang/Object;)V" />
-		<method name="sendEmptyMessage(I)Z" />
-		<method name="sendEmptyMessageAtTime(IJ)Z" />
-		<method name="sendEmptyMessageDelayed(IJ)Z" />
-		<method name="sendMessage(Landroid/os/Message;)Z" />
-		<method name="sendMessageAtFrontOfQueue(Landroid/os/Message;)Z" />
-		<method name="sendMessageAtTime(Landroid/os/Message;J)Z" />
-		<method name="sendMessageDelayed(Landroid/os/Message;J)Z" />
-	</class>
-	<class name="android/os/Handler$Callback" since="3">
-		<extends name="java/lang/Object" />
-		<method name="handleMessage(Landroid/os/Message;)Z" />
-	</class>
-	<class name="android/os/HandlerThread" since="1">
-		<extends name="java/lang/Thread" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;I)V" />
-		<method name="getLooper()Landroid/os/Looper;" />
-		<method name="getThreadId()I" />
-		<method name="onLooperPrepared()V" />
-		<method name="quit()Z" since="5" />
-		<method name="quitSafely()Z" since="18" />
-	</class>
-	<class name="android/os/IBinder" since="1">
-		<extends name="java/lang/Object" />
-		<method name="dump(Ljava/io/FileDescriptor;[Ljava/lang/String;)V" since="3" />
-		<method name="dumpAsync(Ljava/io/FileDescriptor;[Ljava/lang/String;)V" since="13" />
-		<method name="getInterfaceDescriptor()Ljava/lang/String;" />
-		<method name="isBinderAlive()Z" />
-		<method name="linkToDeath(Landroid/os/IBinder$DeathRecipient;I)V" />
-		<method name="pingBinder()Z" />
-		<method name="queryLocalInterface(Ljava/lang/String;)Landroid/os/IInterface;" />
-		<method name="transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z" />
-		<method name="unlinkToDeath(Landroid/os/IBinder$DeathRecipient;I)Z" />
-		<field name="DUMP_TRANSACTION" />
-		<field name="FIRST_CALL_TRANSACTION" />
-		<field name="FLAG_ONEWAY" />
-		<field name="INTERFACE_TRANSACTION" />
-		<field name="LAST_CALL_TRANSACTION" />
-		<field name="LIKE_TRANSACTION" since="15" />
-		<field name="PING_TRANSACTION" />
-		<field name="TWEET_TRANSACTION" since="13" />
-	</class>
-	<class name="android/os/IBinder$DeathRecipient" since="1">
-		<extends name="java/lang/Object" />
-		<method name="binderDied()V" />
-	</class>
-	<class name="android/os/IInterface" since="1">
-		<extends name="java/lang/Object" />
-		<method name="asBinder()Landroid/os/IBinder;" />
-	</class>
-	<class name="android/os/Looper" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" />
-		<method name="getMainLooper()Landroid/os/Looper;" />
-		<method name="getThread()Ljava/lang/Thread;" since="3" />
-		<method name="loop()V" />
-		<method name="myLooper()Landroid/os/Looper;" />
-		<method name="myQueue()Landroid/os/MessageQueue;" />
-		<method name="prepare()V" />
-		<method name="prepareMainLooper()V" />
-		<method name="quit()V" />
-		<method name="quitSafely()V" since="18" />
-		<method name="setMessageLogging(Landroid/util/Printer;)V" />
-	</class>
-	<class name="android/os/MemoryFile" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;I)V" />
-		<method name="allowPurging(Z)Z" />
-		<method name="close()V" />
-		<method name="getInputStream()Ljava/io/InputStream;" />
-		<method name="getOutputStream()Ljava/io/OutputStream;" />
-		<method name="isPurgingAllowed()Z" />
-		<method name="length()I" />
-		<method name="readBytes([BIII)I" />
-		<method name="writeBytes([BIII)V" />
-	</class>
-	<class name="android/os/Message" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="copyFrom(Landroid/os/Message;)V" />
-		<method name="getCallback()Ljava/lang/Runnable;" />
-		<method name="getData()Landroid/os/Bundle;" />
-		<method name="getTarget()Landroid/os/Handler;" />
-		<method name="getWhen()J" />
-		<method name="obtain()Landroid/os/Message;" />
-		<method name="obtain(Landroid/os/Handler;)Landroid/os/Message;" />
-		<method name="obtain(Landroid/os/Handler;I)Landroid/os/Message;" />
-		<method name="obtain(Landroid/os/Handler;III)Landroid/os/Message;" />
-		<method name="obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;" />
-		<method name="obtain(Landroid/os/Handler;ILjava/lang/Object;)Landroid/os/Message;" />
-		<method name="obtain(Landroid/os/Handler;Ljava/lang/Runnable;)Landroid/os/Message;" />
-		<method name="obtain(Landroid/os/Message;)Landroid/os/Message;" />
-		<method name="peekData()Landroid/os/Bundle;" />
-		<method name="recycle()V" />
-		<method name="sendToTarget()V" />
-		<method name="setData(Landroid/os/Bundle;)V" />
-		<method name="setTarget(Landroid/os/Handler;)V" />
-		<field name="CREATOR" />
-		<field name="arg1" />
-		<field name="arg2" />
-		<field name="obj" />
-		<field name="replyTo" />
-		<field name="what" />
-	</class>
-	<class name="android/os/MessageQueue" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addIdleHandler(Landroid/os/MessageQueue$IdleHandler;)V" />
-		<method name="removeIdleHandler(Landroid/os/MessageQueue$IdleHandler;)V" />
-	</class>
-	<class name="android/os/MessageQueue$IdleHandler" since="1">
-		<extends name="java/lang/Object" />
-		<method name="queueIdle()Z" />
-	</class>
-	<class name="android/os/Messenger" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(Landroid/os/Handler;)V" />
-		<method name="&lt;init>(Landroid/os/IBinder;)V" />
-		<method name="getBinder()Landroid/os/IBinder;" />
-		<method name="readMessengerOrNullFromParcel(Landroid/os/Parcel;)Landroid/os/Messenger;" />
-		<method name="send(Landroid/os/Message;)V" />
-		<method name="writeMessengerOrNullToParcel(Landroid/os/Messenger;Landroid/os/Parcel;)V" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/os/NetworkOnMainThreadException" since="11">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/os/OperationCanceledException" since="16">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/os/Parcel" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="appendFrom(Landroid/os/Parcel;II)V" />
-		<method name="createBinderArray()[Landroid/os/IBinder;" />
-		<method name="createBinderArrayList()Ljava/util/ArrayList;" />
-		<method name="createBooleanArray()[Z" />
-		<method name="createByteArray()[B" />
-		<method name="createCharArray()[C" />
-		<method name="createDoubleArray()[D" />
-		<method name="createFloatArray()[F" />
-		<method name="createIntArray()[I" />
-		<method name="createLongArray()[J" />
-		<method name="createStringArray()[Ljava/lang/String;" />
-		<method name="createStringArrayList()Ljava/util/ArrayList;" />
-		<method name="createTypedArray(Landroid/os/Parcelable$Creator;)[Ljava/lang/Object;" />
-		<method name="createTypedArrayList(Landroid/os/Parcelable$Creator;)Ljava/util/ArrayList;" />
-		<method name="dataAvail()I" />
-		<method name="dataCapacity()I" />
-		<method name="dataPosition()I" />
-		<method name="dataSize()I" />
-		<method name="enforceInterface(Ljava/lang/String;)V" />
-		<method name="hasFileDescriptors()Z" />
-		<method name="marshall()[B" />
-		<method name="obtain()Landroid/os/Parcel;" />
-		<method name="obtain(I)Landroid/os/Parcel;" />
-		<method name="readArray(Ljava/lang/ClassLoader;)[Ljava/lang/Object;" />
-		<method name="readArrayList(Ljava/lang/ClassLoader;)Ljava/util/ArrayList;" />
-		<method name="readBinderArray([Landroid/os/IBinder;)V" />
-		<method name="readBinderList(Ljava/util/List;)V" />
-		<method name="readBooleanArray([Z)V" />
-		<method name="readBundle()Landroid/os/Bundle;" />
-		<method name="readBundle(Ljava/lang/ClassLoader;)Landroid/os/Bundle;" />
-		<method name="readByte()B" />
-		<method name="readByteArray([B)V" />
-		<method name="readCharArray([C)V" />
-		<method name="readDouble()D" />
-		<method name="readDoubleArray([D)V" />
-		<method name="readException()V" />
-		<method name="readException(ILjava/lang/String;)V" />
-		<method name="readFileDescriptor()Landroid/os/ParcelFileDescriptor;" />
-		<method name="readFloat()F" />
-		<method name="readFloatArray([F)V" />
-		<method name="readHashMap(Ljava/lang/ClassLoader;)Ljava/util/HashMap;" />
-		<method name="readInt()I" />
-		<method name="readIntArray([I)V" />
-		<method name="readList(Ljava/util/List;Ljava/lang/ClassLoader;)V" />
-		<method name="readLong()J" />
-		<method name="readLongArray([J)V" />
-		<method name="readMap(Ljava/util/Map;Ljava/lang/ClassLoader;)V" />
-		<method name="readParcelable(Ljava/lang/ClassLoader;)Landroid/os/Parcelable;" />
-		<method name="readParcelableArray(Ljava/lang/ClassLoader;)[Landroid/os/Parcelable;" />
-		<method name="readPersistableBundle()Landroid/os/PersistableBundle;" since="21" />
-		<method name="readPersistableBundle(Ljava/lang/ClassLoader;)Landroid/os/PersistableBundle;" since="21" />
-		<method name="readSerializable()Ljava/io/Serializable;" />
-		<method name="readSparseArray(Ljava/lang/ClassLoader;)Landroid/util/SparseArray;" />
-		<method name="readSparseBooleanArray()Landroid/util/SparseBooleanArray;" />
-		<method name="readString()Ljava/lang/String;" />
-		<method name="readStringArray([Ljava/lang/String;)V" />
-		<method name="readStringList(Ljava/util/List;)V" />
-		<method name="readStrongBinder()Landroid/os/IBinder;" />
-		<method name="readTypedArray([Ljava/lang/Object;Landroid/os/Parcelable$Creator;)V" />
-		<method name="readTypedList(Ljava/util/List;Landroid/os/Parcelable$Creator;)V" />
-		<method name="readValue(Ljava/lang/ClassLoader;)Ljava/lang/Object;" />
-		<method name="recycle()V" />
-		<method name="setDataCapacity(I)V" />
-		<method name="setDataPosition(I)V" />
-		<method name="setDataSize(I)V" />
-		<method name="unmarshall([BII)V" />
-		<method name="writeArray([Ljava/lang/Object;)V" />
-		<method name="writeBinderArray([Landroid/os/IBinder;)V" />
-		<method name="writeBinderList(Ljava/util/List;)V" />
-		<method name="writeBooleanArray([Z)V" />
-		<method name="writeBundle(Landroid/os/Bundle;)V" />
-		<method name="writeByte(B)V" />
-		<method name="writeByteArray([B)V" />
-		<method name="writeByteArray([BII)V" />
-		<method name="writeCharArray([C)V" />
-		<method name="writeDouble(D)V" />
-		<method name="writeDoubleArray([D)V" />
-		<method name="writeException(Ljava/lang/Exception;)V" />
-		<method name="writeFileDescriptor(Ljava/io/FileDescriptor;)V" />
-		<method name="writeFloat(F)V" />
-		<method name="writeFloatArray([F)V" />
-		<method name="writeInt(I)V" />
-		<method name="writeIntArray([I)V" />
-		<method name="writeInterfaceToken(Ljava/lang/String;)V" />
-		<method name="writeList(Ljava/util/List;)V" />
-		<method name="writeLong(J)V" />
-		<method name="writeLongArray([J)V" />
-		<method name="writeMap(Ljava/util/Map;)V" />
-		<method name="writeNoException()V" />
-		<method name="writeParcelable(Landroid/os/Parcelable;I)V" />
-		<method name="writeParcelableArray([Landroid/os/Parcelable;I)V" />
-		<method name="writePersistableBundle(Landroid/os/PersistableBundle;)V" since="21" />
-		<method name="writeSerializable(Ljava/io/Serializable;)V" />
-		<method name="writeSparseArray(Landroid/util/SparseArray;)V" />
-		<method name="writeSparseBooleanArray(Landroid/util/SparseBooleanArray;)V" />
-		<method name="writeString(Ljava/lang/String;)V" />
-		<method name="writeStringArray([Ljava/lang/String;)V" />
-		<method name="writeStringList(Ljava/util/List;)V" />
-		<method name="writeStrongBinder(Landroid/os/IBinder;)V" />
-		<method name="writeStrongInterface(Landroid/os/IInterface;)V" />
-		<method name="writeTypedArray([Landroid/os/Parcelable;I)V" />
-		<method name="writeTypedList(Ljava/util/List;)V" />
-		<method name="writeValue(Ljava/lang/Object;)V" />
-		<field name="STRING_CREATOR" />
-	</class>
-	<class name="android/os/ParcelFileDescriptor" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<implements name="java/io/Closeable" since="16" />
-		<method name="&lt;init>(Landroid/os/ParcelFileDescriptor;)V" />
-		<method name="adoptFd(I)Landroid/os/ParcelFileDescriptor;" since="13" />
-		<method name="canDetectErrors()Z" since="19" />
-		<method name="checkError()V" since="19" />
-		<method name="close()V" />
-		<method name="closeWithError(Ljava/lang/String;)V" since="19" />
-		<method name="createPipe()[Landroid/os/ParcelFileDescriptor;" since="9" />
-		<method name="createReliablePipe()[Landroid/os/ParcelFileDescriptor;" since="19" />
-		<method name="createReliableSocketPair()[Landroid/os/ParcelFileDescriptor;" since="19" />
-		<method name="createSocketPair()[Landroid/os/ParcelFileDescriptor;" since="19" />
-		<method name="detachFd()I" since="12" />
-		<method name="dup()Landroid/os/ParcelFileDescriptor;" since="14" />
-		<method name="dup(Ljava/io/FileDescriptor;)Landroid/os/ParcelFileDescriptor;" since="13" />
-		<method name="fromDatagramSocket(Ljava/net/DatagramSocket;)Landroid/os/ParcelFileDescriptor;" since="14" />
-		<method name="fromFd(I)Landroid/os/ParcelFileDescriptor;" since="13" />
-		<method name="fromSocket(Ljava/net/Socket;)Landroid/os/ParcelFileDescriptor;" />
-		<method name="getFd()I" since="12" />
-		<method name="getFileDescriptor()Ljava/io/FileDescriptor;" />
-		<method name="getStatSize()J" since="3" />
-		<method name="open(Ljava/io/File;I)Landroid/os/ParcelFileDescriptor;" />
-		<method name="open(Ljava/io/File;ILandroid/os/Handler;Landroid/os/ParcelFileDescriptor$OnCloseListener;)Landroid/os/ParcelFileDescriptor;" since="19" />
-		<method name="parseMode(Ljava/lang/String;)I" since="19" />
-		<field name="CREATOR" />
-		<field name="MODE_APPEND" since="3" />
-		<field name="MODE_CREATE" />
-		<field name="MODE_READ_ONLY" />
-		<field name="MODE_READ_WRITE" />
-		<field name="MODE_TRUNCATE" />
-		<field name="MODE_WORLD_READABLE" />
-		<field name="MODE_WORLD_WRITEABLE" />
-		<field name="MODE_WRITE_ONLY" />
-	</class>
-	<class name="android/os/ParcelFileDescriptor$AutoCloseInputStream" since="1">
-		<extends name="java/io/FileInputStream" />
-		<method name="&lt;init>(Landroid/os/ParcelFileDescriptor;)V" />
-	</class>
-	<class name="android/os/ParcelFileDescriptor$AutoCloseOutputStream" since="1">
-		<extends name="java/io/FileOutputStream" />
-		<method name="&lt;init>(Landroid/os/ParcelFileDescriptor;)V" />
-	</class>
-	<class name="android/os/ParcelFileDescriptor$FileDescriptorDetachedException" since="19">
-		<extends name="java/io/IOException" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/os/ParcelFileDescriptor$OnCloseListener" since="19">
-		<extends name="java/lang/Object" />
-		<method name="onClose(Ljava/io/IOException;)V" />
-	</class>
-	<class name="android/os/ParcelFormatException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/os/ParcelUuid" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(Ljava/util/UUID;)V" />
-		<method name="fromString(Ljava/lang/String;)Landroid/os/ParcelUuid;" />
-		<method name="getUuid()Ljava/util/UUID;" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/os/Parcelable" since="1">
-		<extends name="java/lang/Object" />
-		<method name="describeContents()I" />
-		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
-		<field name="CONTENTS_FILE_DESCRIPTOR" />
-		<field name="PARCELABLE_WRITE_RETURN_VALUE" />
-	</class>
-	<class name="android/os/Parcelable$ClassLoaderCreator" since="13">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable$Creator" />
-		<method name="createFromParcel(Landroid/os/Parcel;Ljava/lang/ClassLoader;)Ljava/lang/Object;" />
-	</class>
-	<class name="android/os/Parcelable$Creator" since="1">
-		<extends name="java/lang/Object" />
-		<method name="createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;" />
-		<method name="newArray(I)[Ljava/lang/Object;" />
-	</class>
-	<class name="android/os/PatternMatcher" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" />
-		<method name="&lt;init>(Ljava/lang/String;I)V" />
-		<method name="getPath()Ljava/lang/String;" />
-		<method name="getType()I" />
-		<method name="match(Ljava/lang/String;)Z" />
-		<field name="CREATOR" />
-		<field name="PATTERN_LITERAL" />
-		<field name="PATTERN_PREFIX" />
-		<field name="PATTERN_SIMPLE_GLOB" />
-	</class>
-	<class name="android/os/PersistableBundle" since="21">
-		<extends name="android/os/BaseBundle" />
-		<implements name="android/os/Parcelable" />
-		<implements name="java/lang/Cloneable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(Landroid/os/PersistableBundle;)V" />
-		<method name="getPersistableBundle(Ljava/lang/String;)Landroid/os/PersistableBundle;" />
-		<method name="putPersistableBundle(Ljava/lang/String;Landroid/os/PersistableBundle;)V" />
-		<field name="CREATOR" />
-		<field name="EMPTY" />
-	</class>
-	<class name="android/os/PowerManager" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="goToSleep(J)V" />
-		<method name="isInteractive()Z" since="20" />
-		<method name="isPowerSaveMode()Z" since="21" />
-		<method name="isScreenOn()Z" since="7" />
-		<method name="newWakeLock(ILjava/lang/String;)Landroid/os/PowerManager$WakeLock;" />
-		<method name="reboot(Ljava/lang/String;)V" since="8" />
-		<method name="userActivity(JZ)V" />
-		<method name="wakeUp(J)V" since="17" />
-		<field name="ACQUIRE_CAUSES_WAKEUP" />
-		<field name="ACTION_POWER_SAVE_MODE_CHANGED" since="21" />
-		<field name="FULL_WAKE_LOCK" />
-		<field name="ON_AFTER_RELEASE" />
-		<field name="PARTIAL_WAKE_LOCK" />
-		<field name="REBOOT_RECOVERY" since="21" />
-		<field name="SCREEN_BRIGHT_WAKE_LOCK" />
-		<field name="SCREEN_DIM_WAKE_LOCK" />
-	</class>
-	<class name="android/os/PowerManager$WakeLock" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/os/PowerManager;)V" />
-		<method name="acquire()V" />
-		<method name="acquire(J)V" />
-		<method name="isHeld()Z" />
-		<method name="release()V" />
-		<method name="setReferenceCounted(Z)V" />
-		<method name="setWorkSource(Landroid/os/WorkSource;)V" since="9" />
-	</class>
-	<class name="android/os/Process" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getElapsedCpuTime()J" />
-		<method name="getGidForName(Ljava/lang/String;)I" />
-		<method name="getThreadPriority(I)I" />
-		<method name="getUidForName(Ljava/lang/String;)I" />
-		<method name="killProcess(I)V" />
-		<method name="myPid()I" />
-		<method name="myTid()I" />
-		<method name="myUid()I" since="2" />
-		<method name="myUserHandle()Landroid/os/UserHandle;" since="17" />
-		<method name="sendSignal(II)V" />
-		<method name="setThreadPriority(I)V" />
-		<method name="setThreadPriority(II)V" />
-		<method name="supportsProcesses()Z" />
-		<field name="BLUETOOTH_GID" />
-		<field name="FIRST_APPLICATION_UID" />
-		<field name="LAST_APPLICATION_UID" />
-		<field name="PHONE_UID" />
-		<field name="SIGNAL_KILL" />
-		<field name="SIGNAL_QUIT" />
-		<field name="SIGNAL_USR1" />
-		<field name="SYSTEM_UID" />
-		<field name="THREAD_PRIORITY_AUDIO" />
-		<field name="THREAD_PRIORITY_BACKGROUND" />
-		<field name="THREAD_PRIORITY_DEFAULT" />
-		<field name="THREAD_PRIORITY_DISPLAY" />
-		<field name="THREAD_PRIORITY_FOREGROUND" />
-		<field name="THREAD_PRIORITY_LESS_FAVORABLE" />
-		<field name="THREAD_PRIORITY_LOWEST" />
-		<field name="THREAD_PRIORITY_MORE_FAVORABLE" />
-		<field name="THREAD_PRIORITY_URGENT_AUDIO" />
-		<field name="THREAD_PRIORITY_URGENT_DISPLAY" />
-	</class>
-	<class name="android/os/RecoverySystem" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="installPackage(Landroid/content/Context;Ljava/io/File;)V" />
-		<method name="rebootWipeCache(Landroid/content/Context;)V" since="14" />
-		<method name="rebootWipeUserData(Landroid/content/Context;)V" />
-		<method name="verifyPackage(Ljava/io/File;Landroid/os/RecoverySystem$ProgressListener;Ljava/io/File;)V" />
-	</class>
-	<class name="android/os/RecoverySystem$ProgressListener" since="8">
-		<extends name="java/lang/Object" />
-		<method name="onProgress(I)V" />
-	</class>
-	<class name="android/os/RemoteCallbackList" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="beginBroadcast()I" />
-		<method name="finishBroadcast()V" />
-		<method name="getBroadcastCookie(I)Ljava/lang/Object;" since="4" />
-		<method name="getBroadcastItem(I)Landroid/os/IInterface;" />
-		<method name="getRegisteredCallbackCount()I" since="17" />
-		<method name="kill()V" />
-		<method name="onCallbackDied(Landroid/os/IInterface;)V" />
-		<method name="onCallbackDied(Landroid/os/IInterface;Ljava/lang/Object;)V" since="4" />
-		<method name="register(Landroid/os/IInterface;)Z" />
-		<method name="register(Landroid/os/IInterface;Ljava/lang/Object;)Z" since="4" />
-		<method name="unregister(Landroid/os/IInterface;)Z" />
-	</class>
-	<class name="android/os/RemoteException" since="1">
-		<extends name="android/util/AndroidException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" since="15" />
-	</class>
-	<class name="android/os/ResultReceiver" since="3">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(Landroid/os/Handler;)V" />
-		<method name="onReceiveResult(ILandroid/os/Bundle;)V" />
-		<method name="send(ILandroid/os/Bundle;)V" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/os/StatFs" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="getAvailableBlocks()I" />
-		<method name="getAvailableBlocksLong()J" since="18" />
-		<method name="getAvailableBytes()J" since="18" />
-		<method name="getBlockCount()I" />
-		<method name="getBlockCountLong()J" since="18" />
-		<method name="getBlockSize()I" />
-		<method name="getBlockSizeLong()J" since="18" />
-		<method name="getFreeBlocks()I" />
-		<method name="getFreeBlocksLong()J" since="18" />
-		<method name="getFreeBytes()J" since="18" />
-		<method name="getTotalBytes()J" since="18" />
-		<method name="restat(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/os/StrictMode" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="allowThreadDiskReads()Landroid/os/StrictMode$ThreadPolicy;" />
-		<method name="allowThreadDiskWrites()Landroid/os/StrictMode$ThreadPolicy;" />
-		<method name="enableDefaults()V" />
-		<method name="getThreadPolicy()Landroid/os/StrictMode$ThreadPolicy;" />
-		<method name="getVmPolicy()Landroid/os/StrictMode$VmPolicy;" />
-		<method name="noteSlowCall(Ljava/lang/String;)V" since="11" />
-		<method name="setThreadPolicy(Landroid/os/StrictMode$ThreadPolicy;)V" />
-		<method name="setVmPolicy(Landroid/os/StrictMode$VmPolicy;)V" />
-	</class>
-	<class name="android/os/StrictMode$ThreadPolicy" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="LAX" />
-	</class>
-	<class name="android/os/StrictMode$ThreadPolicy$Builder" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/os/StrictMode$ThreadPolicy;)V" />
-		<method name="build()Landroid/os/StrictMode$ThreadPolicy;" />
-		<method name="detectAll()Landroid/os/StrictMode$ThreadPolicy$Builder;" />
-		<method name="detectCustomSlowCalls()Landroid/os/StrictMode$ThreadPolicy$Builder;" since="11" />
-		<method name="detectDiskReads()Landroid/os/StrictMode$ThreadPolicy$Builder;" />
-		<method name="detectDiskWrites()Landroid/os/StrictMode$ThreadPolicy$Builder;" />
-		<method name="detectNetwork()Landroid/os/StrictMode$ThreadPolicy$Builder;" />
-		<method name="penaltyDeath()Landroid/os/StrictMode$ThreadPolicy$Builder;" />
-		<method name="penaltyDeathOnNetwork()Landroid/os/StrictMode$ThreadPolicy$Builder;" since="11" />
-		<method name="penaltyDialog()Landroid/os/StrictMode$ThreadPolicy$Builder;" />
-		<method name="penaltyDropBox()Landroid/os/StrictMode$ThreadPolicy$Builder;" />
-		<method name="penaltyFlashScreen()Landroid/os/StrictMode$ThreadPolicy$Builder;" since="11" />
-		<method name="penaltyLog()Landroid/os/StrictMode$ThreadPolicy$Builder;" />
-		<method name="permitAll()Landroid/os/StrictMode$ThreadPolicy$Builder;" />
-		<method name="permitCustomSlowCalls()Landroid/os/StrictMode$ThreadPolicy$Builder;" since="11" />
-		<method name="permitDiskReads()Landroid/os/StrictMode$ThreadPolicy$Builder;" />
-		<method name="permitDiskWrites()Landroid/os/StrictMode$ThreadPolicy$Builder;" />
-		<method name="permitNetwork()Landroid/os/StrictMode$ThreadPolicy$Builder;" />
-	</class>
-	<class name="android/os/StrictMode$VmPolicy" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="LAX" />
-	</class>
-	<class name="android/os/StrictMode$VmPolicy$Builder" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/os/StrictMode$VmPolicy;)V" since="11" />
-		<method name="build()Landroid/os/StrictMode$VmPolicy;" />
-		<method name="detectActivityLeaks()Landroid/os/StrictMode$VmPolicy$Builder;" since="11" />
-		<method name="detectAll()Landroid/os/StrictMode$VmPolicy$Builder;" />
-		<method name="detectFileUriExposure()Landroid/os/StrictMode$VmPolicy$Builder;" since="18" />
-		<method name="detectLeakedClosableObjects()Landroid/os/StrictMode$VmPolicy$Builder;" since="11" />
-		<method name="detectLeakedRegistrationObjects()Landroid/os/StrictMode$VmPolicy$Builder;" since="16" />
-		<method name="detectLeakedSqlLiteObjects()Landroid/os/StrictMode$VmPolicy$Builder;" />
-		<method name="penaltyDeath()Landroid/os/StrictMode$VmPolicy$Builder;" />
-		<method name="penaltyDropBox()Landroid/os/StrictMode$VmPolicy$Builder;" />
-		<method name="penaltyLog()Landroid/os/StrictMode$VmPolicy$Builder;" />
-		<method name="setClassInstanceLimit(Ljava/lang/Class;I)Landroid/os/StrictMode$VmPolicy$Builder;" since="11" />
-	</class>
-	<class name="android/os/SystemClock" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="currentThreadTimeMillis()J" />
-		<method name="elapsedRealtime()J" />
-		<method name="elapsedRealtimeNanos()J" since="17" />
-		<method name="setCurrentTimeMillis(J)Z" />
-		<method name="sleep(J)V" />
-		<method name="uptimeMillis()J" />
-	</class>
-	<class name="android/os/TokenWatcher" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/os/Handler;Ljava/lang/String;)V" />
-		<method name="acquire(Landroid/os/IBinder;Ljava/lang/String;)V" />
-		<method name="acquired()V" />
-		<method name="cleanup(Landroid/os/IBinder;Z)V" />
-		<method name="dump()V" />
-		<method name="dump(Ljava/io/PrintWriter;)V" since="16" />
-		<method name="isAcquired()Z" />
-		<method name="release(Landroid/os/IBinder;)V" />
-		<method name="released()V" />
-	</class>
-	<class name="android/os/Trace" since="18">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="beginSection(Ljava/lang/String;)V" />
-		<method name="endSection()V" />
-	</class>
-	<class name="android/os/TransactionTooLargeException" since="15">
-		<extends name="android/os/RemoteException" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/os/UserHandle" since="17">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" />
-		<method name="readFromParcel(Landroid/os/Parcel;)Landroid/os/UserHandle;" />
-		<method name="writeToParcel(Landroid/os/UserHandle;Landroid/os/Parcel;)V" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/os/UserManager" since="17">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getApplicationRestrictions(Ljava/lang/String;)Landroid/os/Bundle;" since="18" />
-		<method name="getBadgedDrawableForUser(Landroid/graphics/drawable/Drawable;Landroid/os/UserHandle;)Landroid/graphics/drawable/Drawable;" since="21" />
-		<method name="getSerialNumberForUser(Landroid/os/UserHandle;)J" />
-		<method name="getUserCount()I" />
-		<method name="getUserForSerialNumber(J)Landroid/os/UserHandle;" />
-		<method name="getUserName()Ljava/lang/String;" />
-		<method name="getUserProfiles()Ljava/util/List;" since="21" />
-		<method name="getUserRestrictions()Landroid/os/Bundle;" since="18" />
-		<method name="getUserRestrictions(Landroid/os/UserHandle;)Landroid/os/Bundle;" since="18" />
-		<method name="isUserAGoat()Z" />
-		<method name="isUserRunning(Landroid/os/UserHandle;)Z" />
-		<method name="isUserRunningOrStopping(Landroid/os/UserHandle;)Z" />
-		<method name="setRestrictionsChallenge(Ljava/lang/String;)Z" since="19" />
-		<method name="setUserRestriction(Ljava/lang/String;Z)V" since="18" />
-		<method name="setUserRestrictions(Landroid/os/Bundle;)V" since="18" />
-		<method name="setUserRestrictions(Landroid/os/Bundle;Landroid/os/UserHandle;)V" since="18" />
-		<field name="DISALLOW_ADD_USER" since="21" />
-		<field name="DISALLOW_ADJUST_VOLUME" since="21" />
-		<field name="DISALLOW_CONFIG_APPS" since="21" />
-		<field name="DISALLOW_CONFIG_BLUETOOTH" since="18" />
-		<field name="DISALLOW_CONFIG_CELL_BROADCASTS" since="21" />
-		<field name="DISALLOW_CONFIG_CREDENTIALS" since="18" />
-		<field name="DISALLOW_CONFIG_MOBILE_NETWORKS" since="21" />
-		<field name="DISALLOW_CONFIG_TETHERING" since="21" />
-		<field name="DISALLOW_CONFIG_VPN" since="21" />
-		<field name="DISALLOW_CONFIG_WIFI" since="18" />
-		<field name="DISALLOW_DEBUGGING_FEATURES" since="21" />
-		<field name="DISALLOW_FACTORY_RESET" since="21" />
-		<field name="DISALLOW_INSTALL_APPS" since="18" />
-		<field name="DISALLOW_INSTALL_UNKNOWN_SOURCES" since="18" />
-		<field name="DISALLOW_MODIFY_ACCOUNTS" since="18" />
-		<field name="DISALLOW_MOUNT_PHYSICAL_MEDIA" since="21" />
-		<field name="DISALLOW_REMOVE_USER" since="18" />
-		<field name="DISALLOW_SHARE_LOCATION" since="18" />
-		<field name="DISALLOW_TELEPHONY" since="21" />
-		<field name="DISALLOW_UNINSTALL_APPS" since="18" />
-		<field name="DISALLOW_UNMUTE_MICROPHONE" since="21" />
-		<field name="DISALLOW_USB_FILE_TRANSFER" since="18" />
-		<field name="ENSURE_VERIFY_APPS" since="21" />
-	</class>
-	<class name="android/os/Vibrator" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="cancel()V" />
-		<method name="hasVibrator()Z" since="11" />
-		<method name="vibrate(J)V" />
-		<method name="vibrate([JI)V" />
-	</class>
-	<class name="android/os/WorkSource" since="9">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/os/WorkSource;)V" />
-		<method name="add(Landroid/os/WorkSource;)Z" />
-		<method name="clear()V" />
-		<method name="diff(Landroid/os/WorkSource;)Z" />
-		<method name="remove(Landroid/os/WorkSource;)Z" />
-		<method name="set(Landroid/os/WorkSource;)V" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/os/storage/OnObbStateChangeListener" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="onObbStateChange(Ljava/lang/String;I)V" />
-		<field name="ERROR_ALREADY_MOUNTED" />
-		<field name="ERROR_COULD_NOT_MOUNT" />
-		<field name="ERROR_COULD_NOT_UNMOUNT" />
-		<field name="ERROR_INTERNAL" />
-		<field name="ERROR_NOT_MOUNTED" />
-		<field name="ERROR_PERMISSION_DENIED" />
-		<field name="MOUNTED" />
-		<field name="UNMOUNTED" />
-	</class>
-	<class name="android/os/storage/StorageManager" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getMountedObbPath(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="isObbMounted(Ljava/lang/String;)Z" />
-		<method name="mountObb(Ljava/lang/String;Ljava/lang/String;Landroid/os/storage/OnObbStateChangeListener;)Z" />
-		<method name="unmountObb(Ljava/lang/String;ZLandroid/os/storage/OnObbStateChangeListener;)Z" />
-	</class>
-	<class name="android/preference/CheckBoxPreference" since="1">
-		<extends name="android/preference/Preference" />
-		<extends name="android/preference/TwoStatePreference" since="14" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="getDisableDependentsState()Z" />
-		<method name="getSummaryOff()Ljava/lang/CharSequence;" />
-		<method name="getSummaryOn()Ljava/lang/CharSequence;" />
-		<method name="isChecked()Z" />
-		<method name="setChecked(Z)V" />
-		<method name="setDisableDependentsState(Z)V" />
-		<method name="setSummaryOff(I)V" />
-		<method name="setSummaryOff(Ljava/lang/CharSequence;)V" />
-		<method name="setSummaryOn(I)V" />
-		<method name="setSummaryOn(Ljava/lang/CharSequence;)V" />
-	</class>
-	<class name="android/preference/DialogPreference" since="1">
-		<extends name="android/preference/Preference" />
-		<implements name="android/content/DialogInterface$OnClickListener" />
-		<implements name="android/content/DialogInterface$OnDismissListener" />
-		<implements name="android/preference/PreferenceManager$OnActivityDestroyListener" />
-		<method name="&lt;init>(Landroid/content/Context;)V" since="21" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="getDialog()Landroid/app/Dialog;" since="3" />
-		<method name="getDialogIcon()Landroid/graphics/drawable/Drawable;" />
-		<method name="getDialogLayoutResource()I" />
-		<method name="getDialogMessage()Ljava/lang/CharSequence;" />
-		<method name="getDialogTitle()Ljava/lang/CharSequence;" />
-		<method name="getNegativeButtonText()Ljava/lang/CharSequence;" />
-		<method name="getPositiveButtonText()Ljava/lang/CharSequence;" />
-		<method name="onBindDialogView(Landroid/view/View;)V" />
-		<method name="onCreateDialogView()Landroid/view/View;" />
-		<method name="onDialogClosed(Z)V" />
-		<method name="onPrepareDialogBuilder(Landroid/app/AlertDialog$Builder;)V" />
-		<method name="setDialogIcon(I)V" />
-		<method name="setDialogIcon(Landroid/graphics/drawable/Drawable;)V" />
-		<method name="setDialogLayoutResource(I)V" />
-		<method name="setDialogMessage(I)V" />
-		<method name="setDialogMessage(Ljava/lang/CharSequence;)V" />
-		<method name="setDialogTitle(I)V" />
-		<method name="setDialogTitle(Ljava/lang/CharSequence;)V" />
-		<method name="setNegativeButtonText(I)V" />
-		<method name="setNegativeButtonText(Ljava/lang/CharSequence;)V" />
-		<method name="setPositiveButtonText(I)V" />
-		<method name="setPositiveButtonText(Ljava/lang/CharSequence;)V" />
-		<method name="showDialog(Landroid/os/Bundle;)V" />
-	</class>
-	<class name="android/preference/EditTextPreference" since="1">
-		<extends name="android/preference/DialogPreference" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="getEditText()Landroid/widget/EditText;" />
-		<method name="getText()Ljava/lang/String;" />
-		<method name="onAddEditTextToDialogView(Landroid/view/View;Landroid/widget/EditText;)V" />
-		<method name="setText(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/preference/ListPreference" since="1">
-		<extends name="android/preference/DialogPreference" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" since="21" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="findIndexOfValue(Ljava/lang/String;)I" />
-		<method name="getEntries()[Ljava/lang/CharSequence;" />
-		<method name="getEntry()Ljava/lang/CharSequence;" />
-		<method name="getEntryValues()[Ljava/lang/CharSequence;" />
-		<method name="getValue()Ljava/lang/String;" />
-		<method name="setEntries(I)V" />
-		<method name="setEntries([Ljava/lang/CharSequence;)V" />
-		<method name="setEntryValues(I)V" />
-		<method name="setEntryValues([Ljava/lang/CharSequence;)V" />
-		<method name="setValue(Ljava/lang/String;)V" />
-		<method name="setValueIndex(I)V" />
-	</class>
-	<class name="android/preference/MultiSelectListPreference" since="11">
-		<extends name="android/preference/DialogPreference" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" since="21" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="findIndexOfValue(Ljava/lang/String;)I" />
-		<method name="getEntries()[Ljava/lang/CharSequence;" />
-		<method name="getEntryValues()[Ljava/lang/CharSequence;" />
-		<method name="getValues()Ljava/util/Set;" />
-		<method name="setEntries(I)V" />
-		<method name="setEntries([Ljava/lang/CharSequence;)V" />
-		<method name="setEntryValues(I)V" />
-		<method name="setEntryValues([Ljava/lang/CharSequence;)V" />
-		<method name="setValues(Ljava/util/Set;)V" />
-	</class>
-	<class name="android/preference/Preference" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Comparable" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="callChangeListener(Ljava/lang/Object;)Z" />
-		<method name="compareTo(Landroid/preference/Preference;)I" />
-		<method name="findPreferenceInHierarchy(Ljava/lang/String;)Landroid/preference/Preference;" />
-		<method name="getContext()Landroid/content/Context;" />
-		<method name="getDependency()Ljava/lang/String;" />
-		<method name="getEditor()Landroid/content/SharedPreferences$Editor;" />
-		<method name="getExtras()Landroid/os/Bundle;" since="11" />
-		<method name="getFragment()Ljava/lang/String;" since="11" />
-		<method name="getIcon()Landroid/graphics/drawable/Drawable;" since="11" />
-		<method name="getIntent()Landroid/content/Intent;" />
-		<method name="getKey()Ljava/lang/String;" />
-		<method name="getLayoutResource()I" />
-		<method name="getOnPreferenceChangeListener()Landroid/preference/Preference$OnPreferenceChangeListener;" />
-		<method name="getOnPreferenceClickListener()Landroid/preference/Preference$OnPreferenceClickListener;" />
-		<method name="getOrder()I" />
-		<method name="getPersistedBoolean(Z)Z" />
-		<method name="getPersistedFloat(F)F" />
-		<method name="getPersistedInt(I)I" />
-		<method name="getPersistedLong(J)J" />
-		<method name="getPersistedString(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getPreferenceManager()Landroid/preference/PreferenceManager;" />
-		<method name="getSharedPreferences()Landroid/content/SharedPreferences;" />
-		<method name="getShouldDisableView()Z" />
-		<method name="getSummary()Ljava/lang/CharSequence;" />
-		<method name="getTitle()Ljava/lang/CharSequence;" />
-		<method name="getTitleRes()I" since="14" />
-		<method name="getView(Landroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View;" />
-		<method name="getWidgetLayoutResource()I" />
-		<method name="hasKey()Z" />
-		<method name="isEnabled()Z" />
-		<method name="isPersistent()Z" />
-		<method name="isSelectable()Z" />
-		<method name="notifyChanged()V" />
-		<method name="notifyDependencyChange(Z)V" />
-		<method name="notifyHierarchyChanged()V" />
-		<method name="onAttachedToActivity()V" />
-		<method name="onAttachedToHierarchy(Landroid/preference/PreferenceManager;)V" />
-		<method name="onBindView(Landroid/view/View;)V" />
-		<method name="onClick()V" />
-		<method name="onCreateView(Landroid/view/ViewGroup;)Landroid/view/View;" />
-		<method name="onDependencyChanged(Landroid/preference/Preference;Z)V" />
-		<method name="onGetDefaultValue(Landroid/content/res/TypedArray;I)Ljava/lang/Object;" />
-		<method name="onParentChanged(Landroid/preference/Preference;Z)V" since="19" />
-		<method name="onPrepareForRemoval()V" />
-		<method name="onRestoreInstanceState(Landroid/os/Parcelable;)V" />
-		<method name="onSaveInstanceState()Landroid/os/Parcelable;" />
-		<method name="onSetInitialValue(ZLjava/lang/Object;)V" />
-		<method name="peekExtras()Landroid/os/Bundle;" since="11" />
-		<method name="persistBoolean(Z)Z" />
-		<method name="persistFloat(F)Z" />
-		<method name="persistInt(I)Z" />
-		<method name="persistLong(J)Z" />
-		<method name="persistString(Ljava/lang/String;)Z" />
-		<method name="restoreHierarchyState(Landroid/os/Bundle;)V" />
-		<method name="saveHierarchyState(Landroid/os/Bundle;)V" />
-		<method name="setDefaultValue(Ljava/lang/Object;)V" />
-		<method name="setDependency(Ljava/lang/String;)V" />
-		<method name="setEnabled(Z)V" />
-		<method name="setFragment(Ljava/lang/String;)V" since="11" />
-		<method name="setIcon(I)V" since="11" />
-		<method name="setIcon(Landroid/graphics/drawable/Drawable;)V" since="11" />
-		<method name="setIntent(Landroid/content/Intent;)V" />
-		<method name="setKey(Ljava/lang/String;)V" />
-		<method name="setLayoutResource(I)V" />
-		<method name="setOnPreferenceChangeListener(Landroid/preference/Preference$OnPreferenceChangeListener;)V" />
-		<method name="setOnPreferenceClickListener(Landroid/preference/Preference$OnPreferenceClickListener;)V" />
-		<method name="setOrder(I)V" />
-		<method name="setPersistent(Z)V" />
-		<method name="setSelectable(Z)V" />
-		<method name="setShouldDisableView(Z)V" />
-		<method name="setSummary(I)V" />
-		<method name="setSummary(Ljava/lang/CharSequence;)V" />
-		<method name="setTitle(I)V" />
-		<method name="setTitle(Ljava/lang/CharSequence;)V" />
-		<method name="setWidgetLayoutResource(I)V" />
-		<method name="shouldCommit()Z" />
-		<method name="shouldDisableDependents()Z" />
-		<method name="shouldPersist()Z" />
-		<field name="DEFAULT_ORDER" />
-	</class>
-	<class name="android/preference/Preference$BaseSavedState" since="1">
-		<extends name="android/view/AbsSavedState" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" />
-		<method name="&lt;init>(Landroid/os/Parcelable;)V" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/preference/Preference$OnPreferenceChangeListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onPreferenceChange(Landroid/preference/Preference;Ljava/lang/Object;)Z" />
-	</class>
-	<class name="android/preference/Preference$OnPreferenceClickListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onPreferenceClick(Landroid/preference/Preference;)Z" />
-	</class>
-	<class name="android/preference/PreferenceActivity" since="1">
-		<extends name="android/app/ListActivity" />
-		<implements name="android/preference/PreferenceFragment$OnPreferenceStartFragmentCallback" since="11" />
-		<method name="&lt;init>()V" />
-		<method name="addPreferencesFromIntent(Landroid/content/Intent;)V" />
-		<method name="addPreferencesFromResource(I)V" />
-		<method name="findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;" />
-		<method name="finishPreferencePanel(Landroid/app/Fragment;ILandroid/content/Intent;)V" since="11" />
-		<method name="getPreferenceManager()Landroid/preference/PreferenceManager;" />
-		<method name="getPreferenceScreen()Landroid/preference/PreferenceScreen;" />
-		<method name="hasHeaders()Z" since="11" />
-		<method name="invalidateHeaders()V" since="11" />
-		<method name="isMultiPane()Z" since="11" />
-		<method name="isValidFragment(Ljava/lang/String;)Z" since="19" />
-		<method name="loadHeadersFromResource(ILjava/util/List;)V" since="11" />
-		<method name="onBuildHeaders(Ljava/util/List;)V" since="11" />
-		<method name="onBuildStartFragmentIntent(Ljava/lang/String;Landroid/os/Bundle;II)Landroid/content/Intent;" since="14" />
-		<method name="onGetInitialHeader()Landroid/preference/PreferenceActivity$Header;" since="11" />
-		<method name="onGetNewHeader()Landroid/preference/PreferenceActivity$Header;" since="11" />
-		<method name="onHeaderClick(Landroid/preference/PreferenceActivity$Header;I)V" since="11" />
-		<method name="onIsHidingHeaders()Z" since="11" />
-		<method name="onIsMultiPane()Z" since="11" />
-		<method name="onPreferenceTreeClick(Landroid/preference/PreferenceScreen;Landroid/preference/Preference;)Z" />
-		<method name="setListFooter(Landroid/view/View;)V" since="11" />
-		<method name="setParentTitle(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/view/View$OnClickListener;)V" since="11" />
-		<method name="setPreferenceScreen(Landroid/preference/PreferenceScreen;)V" />
-		<method name="showBreadCrumbs(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)V" since="11" />
-		<method name="startPreferenceFragment(Landroid/app/Fragment;Z)V" since="11" />
-		<method name="startPreferencePanel(Ljava/lang/String;Landroid/os/Bundle;ILjava/lang/CharSequence;Landroid/app/Fragment;I)V" since="11" />
-		<method name="startWithFragment(Ljava/lang/String;Landroid/os/Bundle;Landroid/app/Fragment;I)V" since="11" />
-		<method name="startWithFragment(Ljava/lang/String;Landroid/os/Bundle;Landroid/app/Fragment;III)V" since="14" />
-		<method name="switchToHeader(Landroid/preference/PreferenceActivity$Header;)V" since="11" />
-		<method name="switchToHeader(Ljava/lang/String;Landroid/os/Bundle;)V" since="11" />
-		<field name="EXTRA_NO_HEADERS" since="11" />
-		<field name="EXTRA_SHOW_FRAGMENT" since="11" />
-		<field name="EXTRA_SHOW_FRAGMENT_ARGUMENTS" since="11" />
-		<field name="EXTRA_SHOW_FRAGMENT_SHORT_TITLE" since="14" />
-		<field name="EXTRA_SHOW_FRAGMENT_TITLE" since="14" />
-		<field name="HEADER_ID_UNDEFINED" since="11" />
-	</class>
-	<class name="android/preference/PreferenceActivity$Header" since="11">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getBreadCrumbShortTitle(Landroid/content/res/Resources;)Ljava/lang/CharSequence;" />
-		<method name="getBreadCrumbTitle(Landroid/content/res/Resources;)Ljava/lang/CharSequence;" />
-		<method name="getSummary(Landroid/content/res/Resources;)Ljava/lang/CharSequence;" />
-		<method name="getTitle(Landroid/content/res/Resources;)Ljava/lang/CharSequence;" />
-		<method name="readFromParcel(Landroid/os/Parcel;)V" />
-		<field name="CREATOR" />
-		<field name="breadCrumbShortTitle" />
-		<field name="breadCrumbShortTitleRes" />
-		<field name="breadCrumbTitle" />
-		<field name="breadCrumbTitleRes" />
-		<field name="extras" />
-		<field name="fragment" />
-		<field name="fragmentArguments" />
-		<field name="iconRes" />
-		<field name="id" />
-		<field name="intent" />
-		<field name="summary" />
-		<field name="summaryRes" />
-		<field name="title" />
-		<field name="titleRes" />
-	</class>
-	<class name="android/preference/PreferenceCategory" since="1">
-		<extends name="android/preference/PreferenceGroup" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-	</class>
-	<class name="android/preference/PreferenceFragment" since="11">
-		<extends name="android/app/Fragment" />
-		<method name="&lt;init>()V" />
-		<method name="addPreferencesFromIntent(Landroid/content/Intent;)V" />
-		<method name="addPreferencesFromResource(I)V" />
-		<method name="findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;" />
-		<method name="getPreferenceManager()Landroid/preference/PreferenceManager;" />
-		<method name="getPreferenceScreen()Landroid/preference/PreferenceScreen;" />
-		<method name="onPreferenceTreeClick(Landroid/preference/PreferenceScreen;Landroid/preference/Preference;)Z" />
-		<method name="setPreferenceScreen(Landroid/preference/PreferenceScreen;)V" />
-	</class>
-	<class name="android/preference/PreferenceFragment$OnPreferenceStartFragmentCallback" since="11">
-		<extends name="java/lang/Object" />
-		<method name="onPreferenceStartFragment(Landroid/preference/PreferenceFragment;Landroid/preference/Preference;)Z" />
-	</class>
-	<class name="android/preference/PreferenceGroup" since="1">
-		<extends name="android/preference/Preference" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="addItemFromInflater(Landroid/preference/Preference;)V" />
-		<method name="addPreference(Landroid/preference/Preference;)Z" />
-		<method name="dispatchRestoreInstanceState(Landroid/os/Bundle;)V" />
-		<method name="dispatchSaveInstanceState(Landroid/os/Bundle;)V" />
-		<method name="findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;" />
-		<method name="getPreference(I)Landroid/preference/Preference;" />
-		<method name="getPreferenceCount()I" />
-		<method name="isOnSameScreenAsChildren()Z" />
-		<method name="isOrderingAsAdded()Z" />
-		<method name="onPrepareAddPreference(Landroid/preference/Preference;)Z" />
-		<method name="removeAll()V" />
-		<method name="removePreference(Landroid/preference/Preference;)Z" />
-		<method name="setOrderingAsAdded(Z)V" />
-	</class>
-	<class name="android/preference/PreferenceManager" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="createPreferenceScreen(Landroid/content/Context;)Landroid/preference/PreferenceScreen;" />
-		<method name="findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;" />
-		<method name="getDefaultSharedPreferences(Landroid/content/Context;)Landroid/content/SharedPreferences;" />
-		<method name="getSharedPreferences()Landroid/content/SharedPreferences;" />
-		<method name="getSharedPreferencesMode()I" />
-		<method name="getSharedPreferencesName()Ljava/lang/String;" />
-		<method name="setDefaultValues(Landroid/content/Context;IZ)V" />
-		<method name="setDefaultValues(Landroid/content/Context;Ljava/lang/String;IIZ)V" />
-		<method name="setSharedPreferencesMode(I)V" />
-		<method name="setSharedPreferencesName(Ljava/lang/String;)V" />
-		<field name="KEY_HAS_SET_DEFAULT_VALUES" />
-		<field name="METADATA_KEY_PREFERENCES" />
-	</class>
-	<class name="android/preference/PreferenceManager$OnActivityDestroyListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onActivityDestroy()V" />
-	</class>
-	<class name="android/preference/PreferenceManager$OnActivityResultListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onActivityResult(IILandroid/content/Intent;)Z" />
-	</class>
-	<class name="android/preference/PreferenceManager$OnActivityStopListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onActivityStop()V" />
-	</class>
-	<class name="android/preference/PreferenceScreen" since="1">
-		<extends name="android/preference/PreferenceGroup" />
-		<implements name="android/content/DialogInterface$OnDismissListener" />
-		<implements name="android/widget/AdapterView$OnItemClickListener" />
-		<method name="&lt;init>()V" />
-		<method name="bind(Landroid/widget/ListView;)V" />
-		<method name="getDialog()Landroid/app/Dialog;" />
-		<method name="getRootAdapter()Landroid/widget/ListAdapter;" />
-		<method name="onCreateRootAdapter()Landroid/widget/ListAdapter;" />
-	</class>
-	<class name="android/preference/RingtonePreference" since="1">
-		<extends name="android/preference/Preference" />
-		<implements name="android/preference/PreferenceManager$OnActivityResultListener" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="getRingtoneType()I" />
-		<method name="getShowDefault()Z" />
-		<method name="getShowSilent()Z" />
-		<method name="onPrepareRingtonePickerIntent(Landroid/content/Intent;)V" />
-		<method name="onRestoreRingtone()Landroid/net/Uri;" />
-		<method name="onSaveRingtone(Landroid/net/Uri;)V" />
-		<method name="setRingtoneType(I)V" />
-		<method name="setShowDefault(Z)V" />
-		<method name="setShowSilent(Z)V" />
-	</class>
-	<class name="android/preference/SwitchPreference" since="14">
-		<extends name="android/preference/TwoStatePreference" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="getSwitchTextOff()Ljava/lang/CharSequence;" />
-		<method name="getSwitchTextOn()Ljava/lang/CharSequence;" />
-		<method name="setSwitchTextOff(I)V" />
-		<method name="setSwitchTextOff(Ljava/lang/CharSequence;)V" />
-		<method name="setSwitchTextOn(I)V" />
-		<method name="setSwitchTextOn(Ljava/lang/CharSequence;)V" />
-	</class>
-	<class name="android/preference/TwoStatePreference" since="14">
-		<extends name="android/preference/Preference" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="getDisableDependentsState()Z" />
-		<method name="getSummaryOff()Ljava/lang/CharSequence;" />
-		<method name="getSummaryOn()Ljava/lang/CharSequence;" />
-		<method name="isChecked()Z" />
-		<method name="setChecked(Z)V" />
-		<method name="setDisableDependentsState(Z)V" />
-		<method name="setSummaryOff(I)V" />
-		<method name="setSummaryOff(Ljava/lang/CharSequence;)V" />
-		<method name="setSummaryOn(I)V" />
-		<method name="setSummaryOn(Ljava/lang/CharSequence;)V" />
-	</class>
-	<class name="android/print/PageRange" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(II)V" />
-		<method name="getEnd()I" />
-		<method name="getStart()I" />
-		<field name="ALL_PAGES" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/print/PrintAttributes" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getColorMode()I" />
-		<method name="getMediaSize()Landroid/print/PrintAttributes$MediaSize;" />
-		<method name="getMinMargins()Landroid/print/PrintAttributes$Margins;" />
-		<method name="getResolution()Landroid/print/PrintAttributes$Resolution;" />
-		<field name="COLOR_MODE_COLOR" />
-		<field name="COLOR_MODE_MONOCHROME" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/print/PrintAttributes$Builder" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="build()Landroid/print/PrintAttributes;" />
-		<method name="setColorMode(I)Landroid/print/PrintAttributes$Builder;" />
-		<method name="setMediaSize(Landroid/print/PrintAttributes$MediaSize;)Landroid/print/PrintAttributes$Builder;" />
-		<method name="setMinMargins(Landroid/print/PrintAttributes$Margins;)Landroid/print/PrintAttributes$Builder;" />
-		<method name="setResolution(Landroid/print/PrintAttributes$Resolution;)Landroid/print/PrintAttributes$Builder;" />
-	</class>
-	<class name="android/print/PrintAttributes$Margins" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(IIII)V" />
-		<method name="getBottomMils()I" />
-		<method name="getLeftMils()I" />
-		<method name="getRightMils()I" />
-		<method name="getTopMils()I" />
-		<field name="NO_MARGINS" />
-	</class>
-	<class name="android/print/PrintAttributes$MediaSize" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;II)V" />
-		<method name="asLandscape()Landroid/print/PrintAttributes$MediaSize;" />
-		<method name="asPortrait()Landroid/print/PrintAttributes$MediaSize;" />
-		<method name="getHeightMils()I" />
-		<method name="getId()Ljava/lang/String;" />
-		<method name="getLabel(Landroid/content/pm/PackageManager;)Ljava/lang/String;" />
-		<method name="getWidthMils()I" />
-		<method name="isPortrait()Z" />
-		<field name="ISO_A0" />
-		<field name="ISO_A1" />
-		<field name="ISO_A10" />
-		<field name="ISO_A2" />
-		<field name="ISO_A3" />
-		<field name="ISO_A4" />
-		<field name="ISO_A5" />
-		<field name="ISO_A6" />
-		<field name="ISO_A7" />
-		<field name="ISO_A8" />
-		<field name="ISO_A9" />
-		<field name="ISO_B0" />
-		<field name="ISO_B1" />
-		<field name="ISO_B10" />
-		<field name="ISO_B2" />
-		<field name="ISO_B3" />
-		<field name="ISO_B4" />
-		<field name="ISO_B5" />
-		<field name="ISO_B6" />
-		<field name="ISO_B7" />
-		<field name="ISO_B8" />
-		<field name="ISO_B9" />
-		<field name="ISO_C0" />
-		<field name="ISO_C1" />
-		<field name="ISO_C10" />
-		<field name="ISO_C2" />
-		<field name="ISO_C3" />
-		<field name="ISO_C4" />
-		<field name="ISO_C5" />
-		<field name="ISO_C6" />
-		<field name="ISO_C7" />
-		<field name="ISO_C8" />
-		<field name="ISO_C9" />
-		<field name="JIS_B0" />
-		<field name="JIS_B1" />
-		<field name="JIS_B10" />
-		<field name="JIS_B2" />
-		<field name="JIS_B3" />
-		<field name="JIS_B4" />
-		<field name="JIS_B5" />
-		<field name="JIS_B6" />
-		<field name="JIS_B7" />
-		<field name="JIS_B8" />
-		<field name="JIS_B9" />
-		<field name="JIS_EXEC" />
-		<field name="JPN_CHOU2" />
-		<field name="JPN_CHOU3" />
-		<field name="JPN_CHOU4" />
-		<field name="JPN_HAGAKI" />
-		<field name="JPN_KAHU" />
-		<field name="JPN_KAKU2" />
-		<field name="JPN_OUFUKU" />
-		<field name="JPN_YOU4" />
-		<field name="NA_FOOLSCAP" />
-		<field name="NA_GOVT_LETTER" />
-		<field name="NA_INDEX_3X5" />
-		<field name="NA_INDEX_4X6" />
-		<field name="NA_INDEX_5X8" />
-		<field name="NA_JUNIOR_LEGAL" />
-		<field name="NA_LEDGER" />
-		<field name="NA_LEGAL" />
-		<field name="NA_LETTER" />
-		<field name="NA_MONARCH" />
-		<field name="NA_QUARTO" />
-		<field name="NA_TABLOID" />
-		<field name="OM_DAI_PA_KAI" />
-		<field name="OM_JUURO_KU_KAI" />
-		<field name="OM_PA_KAI" />
-		<field name="PRC_1" />
-		<field name="PRC_10" />
-		<field name="PRC_16K" />
-		<field name="PRC_2" />
-		<field name="PRC_3" />
-		<field name="PRC_4" />
-		<field name="PRC_5" />
-		<field name="PRC_6" />
-		<field name="PRC_7" />
-		<field name="PRC_8" />
-		<field name="PRC_9" />
-		<field name="ROC_16K" />
-		<field name="ROC_8K" />
-		<field name="UNKNOWN_LANDSCAPE" />
-		<field name="UNKNOWN_PORTRAIT" />
-	</class>
-	<class name="android/print/PrintAttributes$Resolution" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;II)V" />
-		<method name="getHorizontalDpi()I" />
-		<method name="getId()Ljava/lang/String;" />
-		<method name="getLabel()Ljava/lang/String;" />
-		<method name="getVerticalDpi()I" />
-	</class>
-	<class name="android/print/PrintDocumentAdapter" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="onFinish()V" />
-		<method name="onLayout(Landroid/print/PrintAttributes;Landroid/print/PrintAttributes;Landroid/os/CancellationSignal;Landroid/print/PrintDocumentAdapter$LayoutResultCallback;Landroid/os/Bundle;)V" />
-		<method name="onStart()V" />
-		<method name="onWrite([Landroid/print/PageRange;Landroid/os/ParcelFileDescriptor;Landroid/os/CancellationSignal;Landroid/print/PrintDocumentAdapter$WriteResultCallback;)V" />
-		<field name="EXTRA_PRINT_PREVIEW" />
-	</class>
-	<class name="android/print/PrintDocumentAdapter$LayoutResultCallback" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="onLayoutCancelled()V" />
-		<method name="onLayoutFailed(Ljava/lang/CharSequence;)V" />
-		<method name="onLayoutFinished(Landroid/print/PrintDocumentInfo;Z)V" />
-	</class>
-	<class name="android/print/PrintDocumentAdapter$WriteResultCallback" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="onWriteCancelled()V" />
-		<method name="onWriteFailed(Ljava/lang/CharSequence;)V" />
-		<method name="onWriteFinished([Landroid/print/PageRange;)V" />
-	</class>
-	<class name="android/print/PrintDocumentInfo" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getContentType()I" />
-		<method name="getDataSize()J" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getPageCount()I" />
-		<field name="CONTENT_TYPE_DOCUMENT" />
-		<field name="CONTENT_TYPE_PHOTO" />
-		<field name="CONTENT_TYPE_UNKNOWN" />
-		<field name="CREATOR" />
-		<field name="PAGE_COUNT_UNKNOWN" />
-	</class>
-	<class name="android/print/PrintDocumentInfo$Builder" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="build()Landroid/print/PrintDocumentInfo;" />
-		<method name="setContentType(I)Landroid/print/PrintDocumentInfo$Builder;" />
-		<method name="setPageCount(I)Landroid/print/PrintDocumentInfo$Builder;" />
-	</class>
-	<class name="android/print/PrintJob" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="cancel()V" />
-		<method name="getId()Landroid/print/PrintJobId;" />
-		<method name="getInfo()Landroid/print/PrintJobInfo;" />
-		<method name="isBlocked()Z" />
-		<method name="isCancelled()Z" />
-		<method name="isCompleted()Z" />
-		<method name="isFailed()Z" />
-		<method name="isQueued()Z" />
-		<method name="isStarted()Z" />
-		<method name="restart()V" />
-	</class>
-	<class name="android/print/PrintJobId" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/print/PrintJobInfo" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getAttributes()Landroid/print/PrintAttributes;" />
-		<method name="getCopies()I" />
-		<method name="getCreationTime()J" />
-		<method name="getId()Landroid/print/PrintJobId;" />
-		<method name="getLabel()Ljava/lang/String;" />
-		<method name="getPages()[Landroid/print/PageRange;" />
-		<method name="getPrinterId()Landroid/print/PrinterId;" />
-		<method name="getState()I" />
-		<field name="CREATOR" />
-		<field name="STATE_BLOCKED" />
-		<field name="STATE_CANCELED" />
-		<field name="STATE_COMPLETED" />
-		<field name="STATE_CREATED" />
-		<field name="STATE_FAILED" />
-		<field name="STATE_QUEUED" />
-		<field name="STATE_STARTED" />
-	</class>
-	<class name="android/print/PrintJobInfo$Builder" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/print/PrintJobInfo;)V" />
-		<method name="build()Landroid/print/PrintJobInfo;" />
-		<method name="putAdvancedOption(Ljava/lang/String;I)V" />
-		<method name="putAdvancedOption(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="setAttributes(Landroid/print/PrintAttributes;)V" />
-		<method name="setCopies(I)V" />
-		<method name="setPages([Landroid/print/PageRange;)V" />
-	</class>
-	<class name="android/print/PrintManager" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getPrintJobs()Ljava/util/List;" />
-		<method name="print(Ljava/lang/String;Landroid/print/PrintDocumentAdapter;Landroid/print/PrintAttributes;)Landroid/print/PrintJob;" />
-	</class>
-	<class name="android/print/PrinterCapabilitiesInfo" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getColorModes()I" />
-		<method name="getDefaults()Landroid/print/PrintAttributes;" />
-		<method name="getMediaSizes()Ljava/util/List;" />
-		<method name="getMinMargins()Landroid/print/PrintAttributes$Margins;" />
-		<method name="getResolutions()Ljava/util/List;" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/print/PrinterCapabilitiesInfo$Builder" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/print/PrinterId;)V" />
-		<method name="addMediaSize(Landroid/print/PrintAttributes$MediaSize;Z)Landroid/print/PrinterCapabilitiesInfo$Builder;" />
-		<method name="addResolution(Landroid/print/PrintAttributes$Resolution;Z)Landroid/print/PrinterCapabilitiesInfo$Builder;" />
-		<method name="build()Landroid/print/PrinterCapabilitiesInfo;" />
-		<method name="setColorModes(II)Landroid/print/PrinterCapabilitiesInfo$Builder;" />
-		<method name="setMinMargins(Landroid/print/PrintAttributes$Margins;)Landroid/print/PrinterCapabilitiesInfo$Builder;" />
-	</class>
-	<class name="android/print/PrinterId" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getLocalId()Ljava/lang/String;" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/print/PrinterInfo" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getCapabilities()Landroid/print/PrinterCapabilitiesInfo;" />
-		<method name="getDescription()Ljava/lang/String;" />
-		<method name="getId()Landroid/print/PrinterId;" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getStatus()I" />
-		<field name="CREATOR" />
-		<field name="STATUS_BUSY" />
-		<field name="STATUS_IDLE" />
-		<field name="STATUS_UNAVAILABLE" />
-	</class>
-	<class name="android/print/PrinterInfo$Builder" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/print/PrinterId;Ljava/lang/String;I)V" />
-		<method name="&lt;init>(Landroid/print/PrinterInfo;)V" />
-		<method name="build()Landroid/print/PrinterInfo;" />
-		<method name="setCapabilities(Landroid/print/PrinterCapabilitiesInfo;)Landroid/print/PrinterInfo$Builder;" />
-		<method name="setDescription(Ljava/lang/String;)Landroid/print/PrinterInfo$Builder;" />
-		<method name="setName(Ljava/lang/String;)Landroid/print/PrinterInfo$Builder;" />
-		<method name="setStatus(I)Landroid/print/PrinterInfo$Builder;" />
-	</class>
-	<class name="android/print/pdf/PrintedPdfDocument" since="19">
-		<extends name="android/graphics/pdf/PdfDocument" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/print/PrintAttributes;)V" />
-		<method name="getPageContentRect()Landroid/graphics/Rect;" />
-		<method name="getPageHeight()I" />
-		<method name="getPageWidth()I" />
-		<method name="startPage(I)Landroid/graphics/pdf/PdfDocument$Page;" />
-	</class>
-	<class name="android/printservice/PrintDocument" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getData()Landroid/os/ParcelFileDescriptor;" />
-		<method name="getInfo()Landroid/print/PrintDocumentInfo;" />
-	</class>
-	<class name="android/printservice/PrintJob" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="block(Ljava/lang/String;)Z" />
-		<method name="cancel()Z" />
-		<method name="complete()Z" />
-		<method name="fail(Ljava/lang/String;)Z" />
-		<method name="getAdvancedIntOption(Ljava/lang/String;)I" />
-		<method name="getAdvancedStringOption(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getDocument()Landroid/printservice/PrintDocument;" />
-		<method name="getId()Landroid/print/PrintJobId;" />
-		<method name="getInfo()Landroid/print/PrintJobInfo;" />
-		<method name="getTag()Ljava/lang/String;" />
-		<method name="hasAdvancedOption(Ljava/lang/String;)Z" />
-		<method name="isBlocked()Z" />
-		<method name="isCancelled()Z" />
-		<method name="isCompleted()Z" />
-		<method name="isFailed()Z" />
-		<method name="isQueued()Z" />
-		<method name="isStarted()Z" />
-		<method name="setTag(Ljava/lang/String;)Z" />
-		<method name="start()Z" />
-	</class>
-	<class name="android/printservice/PrintService" since="19">
-		<extends name="android/app/Service" />
-		<method name="&lt;init>()V" />
-		<method name="generatePrinterId(Ljava/lang/String;)Landroid/print/PrinterId;" />
-		<method name="getActivePrintJobs()Ljava/util/List;" />
-		<method name="onConnected()V" />
-		<method name="onCreatePrinterDiscoverySession()Landroid/printservice/PrinterDiscoverySession;" />
-		<method name="onDisconnected()V" />
-		<method name="onPrintJobQueued(Landroid/printservice/PrintJob;)V" />
-		<method name="onRequestCancelPrintJob(Landroid/printservice/PrintJob;)V" />
-		<field name="EXTRA_PRINT_JOB_INFO" />
-		<field name="SERVICE_INTERFACE" />
-		<field name="SERVICE_META_DATA" />
-	</class>
-	<class name="android/printservice/PrinterDiscoverySession" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addPrinters(Ljava/util/List;)V" />
-		<method name="getPrinters()Ljava/util/List;" />
-		<method name="getTrackedPrinters()Ljava/util/List;" />
-		<method name="isDestroyed()Z" />
-		<method name="isPrinterDiscoveryStarted()Z" />
-		<method name="onDestroy()V" />
-		<method name="onStartPrinterDiscovery(Ljava/util/List;)V" />
-		<method name="onStartPrinterStateTracking(Landroid/print/PrinterId;)V" />
-		<method name="onStopPrinterDiscovery()V" />
-		<method name="onStopPrinterStateTracking(Landroid/print/PrinterId;)V" />
-		<method name="onValidatePrinters(Ljava/util/List;)V" />
-		<method name="removePrinters(Ljava/util/List;)V" />
-	</class>
-	<class name="android/provider/AlarmClock" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="ACTION_SET_ALARM" />
-		<field name="ACTION_SET_TIMER" since="19" />
-		<field name="ACTION_SHOW_ALARMS" since="19" />
-		<field name="EXTRA_DAYS" since="19" />
-		<field name="EXTRA_HOUR" />
-		<field name="EXTRA_LENGTH" since="19" />
-		<field name="EXTRA_MESSAGE" />
-		<field name="EXTRA_MINUTES" />
-		<field name="EXTRA_RINGTONE" since="19" />
-		<field name="EXTRA_SKIP_UI" since="11" />
-		<field name="EXTRA_VIBRATE" since="19" />
-		<field name="VALUE_RINGTONE_SILENT" since="19" />
-	</class>
-	<class name="android/provider/BaseColumns" since="1">
-		<extends name="java/lang/Object" />
-		<field name="_COUNT" />
-		<field name="_ID" />
-	</class>
-	<class name="android/provider/Browser" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addSearchUrl(Landroid/content/ContentResolver;Ljava/lang/String;)V" />
-		<method name="canClearHistory(Landroid/content/ContentResolver;)Z" />
-		<method name="clearHistory(Landroid/content/ContentResolver;)V" />
-		<method name="clearSearches(Landroid/content/ContentResolver;)V" />
-		<method name="deleteFromHistory(Landroid/content/ContentResolver;Ljava/lang/String;)V" />
-		<method name="deleteHistoryTimeFrame(Landroid/content/ContentResolver;JJ)V" />
-		<method name="getAllBookmarks(Landroid/content/ContentResolver;)Landroid/database/Cursor;" />
-		<method name="getAllVisitedUrls(Landroid/content/ContentResolver;)Landroid/database/Cursor;" />
-		<method name="requestAllIcons(Landroid/content/ContentResolver;Ljava/lang/String;Landroid/webkit/WebIconDatabase$IconListener;)V" />
-		<method name="saveBookmark(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="sendString(Landroid/content/Context;Ljava/lang/String;)V" />
-		<method name="truncateHistory(Landroid/content/ContentResolver;)V" />
-		<method name="updateVisitedHistory(Landroid/content/ContentResolver;Ljava/lang/String;Z)V" />
-		<field name="BOOKMARKS_URI" />
-		<field name="EXTRA_APPLICATION_ID" since="3" />
-		<field name="EXTRA_CREATE_NEW_TAB" since="12" />
-		<field name="EXTRA_HEADERS" since="8" />
-		<field name="HISTORY_PROJECTION" />
-		<field name="HISTORY_PROJECTION_BOOKMARK_INDEX" />
-		<field name="HISTORY_PROJECTION_DATE_INDEX" />
-		<field name="HISTORY_PROJECTION_FAVICON_INDEX" />
-		<field name="HISTORY_PROJECTION_ID_INDEX" />
-		<field name="HISTORY_PROJECTION_TITLE_INDEX" />
-		<field name="HISTORY_PROJECTION_URL_INDEX" />
-		<field name="HISTORY_PROJECTION_VISITS_INDEX" />
-		<field name="INITIAL_ZOOM_LEVEL" />
-		<field name="SEARCHES_PROJECTION" />
-		<field name="SEARCHES_PROJECTION_DATE_INDEX" />
-		<field name="SEARCHES_PROJECTION_SEARCH_INDEX" />
-		<field name="SEARCHES_URI" />
-		<field name="TRUNCATE_HISTORY_PROJECTION" />
-		<field name="TRUNCATE_HISTORY_PROJECTION_ID_INDEX" />
-		<field name="TRUNCATE_N_OLDEST" />
-	</class>
-	<class name="android/provider/Browser$BookmarkColumns" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<method name="&lt;init>()V" />
-		<field name="BOOKMARK" />
-		<field name="CREATED" />
-		<field name="DATE" />
-		<field name="FAVICON" />
-		<field name="TITLE" />
-		<field name="URL" />
-		<field name="VISITS" />
-	</class>
-	<class name="android/provider/Browser$SearchColumns" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<method name="&lt;init>()V" />
-		<field name="DATE" />
-		<field name="SEARCH" />
-		<field name="URL" />
-	</class>
-	<class name="android/provider/CalendarContract" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="ACCOUNT_TYPE_LOCAL" />
-		<field name="ACTION_EVENT_REMINDER" />
-		<field name="ACTION_HANDLE_CUSTOM_EVENT" since="16" />
-		<field name="AUTHORITY" />
-		<field name="CALLER_IS_SYNCADAPTER" />
-		<field name="CONTENT_URI" />
-		<field name="EXTRA_CUSTOM_APP_URI" since="16" />
-		<field name="EXTRA_EVENT_ALL_DAY" />
-		<field name="EXTRA_EVENT_BEGIN_TIME" />
-		<field name="EXTRA_EVENT_END_TIME" />
-	</class>
-	<class name="android/provider/CalendarContract$Attendees" since="14">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/CalendarContract$AttendeesColumns" />
-		<implements name="android/provider/CalendarContract$EventsColumns" />
-		<method name="&lt;init>()V" />
-		<method name="query(Landroid/content/ContentResolver;J[Ljava/lang/String;)Landroid/database/Cursor;" />
-		<field name="CONTENT_URI" />
-	</class>
-	<class name="android/provider/CalendarContract$AttendeesColumns" since="14">
-		<extends name="java/lang/Object" />
-		<field name="ATTENDEE_EMAIL" />
-		<field name="ATTENDEE_IDENTITY" since="16" />
-		<field name="ATTENDEE_ID_NAMESPACE" since="16" />
-		<field name="ATTENDEE_NAME" />
-		<field name="ATTENDEE_RELATIONSHIP" />
-		<field name="ATTENDEE_STATUS" />
-		<field name="ATTENDEE_STATUS_ACCEPTED" />
-		<field name="ATTENDEE_STATUS_DECLINED" />
-		<field name="ATTENDEE_STATUS_INVITED" />
-		<field name="ATTENDEE_STATUS_NONE" />
-		<field name="ATTENDEE_STATUS_TENTATIVE" />
-		<field name="ATTENDEE_TYPE" />
-		<field name="EVENT_ID" />
-		<field name="RELATIONSHIP_ATTENDEE" />
-		<field name="RELATIONSHIP_NONE" />
-		<field name="RELATIONSHIP_ORGANIZER" />
-		<field name="RELATIONSHIP_PERFORMER" />
-		<field name="RELATIONSHIP_SPEAKER" />
-		<field name="TYPE_NONE" />
-		<field name="TYPE_OPTIONAL" />
-		<field name="TYPE_REQUIRED" />
-		<field name="TYPE_RESOURCE" since="15" />
-	</class>
-	<class name="android/provider/CalendarContract$CalendarAlerts" since="14">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/CalendarContract$CalendarAlertsColumns" />
-		<implements name="android/provider/CalendarContract$CalendarColumns" />
-		<implements name="android/provider/CalendarContract$EventsColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_URI" />
-		<field name="CONTENT_URI_BY_INSTANCE" />
-	</class>
-	<class name="android/provider/CalendarContract$CalendarAlertsColumns" since="14">
-		<extends name="java/lang/Object" />
-		<field name="ALARM_TIME" />
-		<field name="BEGIN" />
-		<field name="CREATION_TIME" />
-		<field name="DEFAULT_SORT_ORDER" />
-		<field name="END" />
-		<field name="EVENT_ID" />
-		<field name="MINUTES" />
-		<field name="NOTIFY_TIME" />
-		<field name="RECEIVED_TIME" />
-		<field name="STATE" />
-		<field name="STATE_DISMISSED" />
-		<field name="STATE_FIRED" />
-		<field name="STATE_SCHEDULED" />
-	</class>
-	<class name="android/provider/CalendarContract$CalendarCache" since="14">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/CalendarContract$CalendarCacheColumns" />
-		<method name="&lt;init>()V" />
-		<field name="KEY_TIMEZONE_INSTANCES" />
-		<field name="KEY_TIMEZONE_INSTANCES_PREVIOUS" />
-		<field name="KEY_TIMEZONE_TYPE" />
-		<field name="TIMEZONE_TYPE_AUTO" />
-		<field name="TIMEZONE_TYPE_HOME" />
-		<field name="URI" />
-	</class>
-	<class name="android/provider/CalendarContract$CalendarCacheColumns" since="14">
-		<extends name="java/lang/Object" />
-		<field name="KEY" />
-		<field name="VALUE" />
-	</class>
-	<class name="android/provider/CalendarContract$CalendarColumns" since="14">
-		<extends name="java/lang/Object" />
-		<field name="ALLOWED_ATTENDEE_TYPES" since="15" />
-		<field name="ALLOWED_AVAILABILITY" since="15" />
-		<field name="ALLOWED_REMINDERS" />
-		<field name="CALENDAR_ACCESS_LEVEL" />
-		<field name="CALENDAR_COLOR" />
-		<field name="CALENDAR_COLOR_KEY" since="15" />
-		<field name="CALENDAR_DISPLAY_NAME" />
-		<field name="CALENDAR_TIME_ZONE" />
-		<field name="CAL_ACCESS_CONTRIBUTOR" />
-		<field name="CAL_ACCESS_EDITOR" />
-		<field name="CAL_ACCESS_FREEBUSY" />
-		<field name="CAL_ACCESS_NONE" />
-		<field name="CAL_ACCESS_OVERRIDE" />
-		<field name="CAL_ACCESS_OWNER" />
-		<field name="CAL_ACCESS_READ" />
-		<field name="CAL_ACCESS_RESPOND" />
-		<field name="CAL_ACCESS_ROOT" />
-		<field name="CAN_MODIFY_TIME_ZONE" />
-		<field name="CAN_ORGANIZER_RESPOND" />
-		<field name="IS_PRIMARY" since="17" />
-		<field name="MAX_REMINDERS" />
-		<field name="OWNER_ACCOUNT" />
-		<field name="SYNC_EVENTS" />
-		<field name="VISIBLE" />
-	</class>
-	<class name="android/provider/CalendarContract$CalendarEntity" since="14">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/CalendarContract$CalendarColumns" />
-		<implements name="android/provider/CalendarContract$SyncColumns" />
-		<method name="&lt;init>()V" />
-		<method name="newEntityIterator(Landroid/database/Cursor;)Landroid/content/EntityIterator;" />
-		<field name="CONTENT_URI" />
-	</class>
-	<class name="android/provider/CalendarContract$CalendarSyncColumns" since="14">
-		<extends name="java/lang/Object" />
-		<field name="CAL_SYNC1" />
-		<field name="CAL_SYNC10" />
-		<field name="CAL_SYNC2" />
-		<field name="CAL_SYNC3" />
-		<field name="CAL_SYNC4" />
-		<field name="CAL_SYNC5" />
-		<field name="CAL_SYNC6" />
-		<field name="CAL_SYNC7" />
-		<field name="CAL_SYNC8" />
-		<field name="CAL_SYNC9" />
-	</class>
-	<class name="android/provider/CalendarContract$Calendars" since="14">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/CalendarContract$CalendarColumns" />
-		<implements name="android/provider/CalendarContract$SyncColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CALENDAR_LOCATION" />
-		<field name="CONTENT_URI" />
-		<field name="DEFAULT_SORT_ORDER" />
-		<field name="NAME" />
-	</class>
-	<class name="android/provider/CalendarContract$Colors" since="15">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/CalendarContract$ColorsColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_URI" />
-	</class>
-	<class name="android/provider/CalendarContract$ColorsColumns" since="15">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/SyncStateContract$Columns" />
-		<field name="COLOR" />
-		<field name="COLOR_KEY" />
-		<field name="COLOR_TYPE" />
-		<field name="TYPE_CALENDAR" />
-		<field name="TYPE_EVENT" />
-	</class>
-	<class name="android/provider/CalendarContract$EventDays" since="14">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/CalendarContract$EventDaysColumns" />
-		<method name="&lt;init>()V" />
-		<method name="query(Landroid/content/ContentResolver;II[Ljava/lang/String;)Landroid/database/Cursor;" />
-		<field name="CONTENT_URI" />
-	</class>
-	<class name="android/provider/CalendarContract$EventDaysColumns" since="14">
-		<extends name="java/lang/Object" />
-		<field name="ENDDAY" />
-		<field name="STARTDAY" />
-	</class>
-	<class name="android/provider/CalendarContract$Events" since="14">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/CalendarContract$CalendarColumns" />
-		<implements name="android/provider/CalendarContract$EventsColumns" />
-		<implements name="android/provider/CalendarContract$SyncColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_EXCEPTION_URI" />
-		<field name="CONTENT_URI" />
-	</class>
-	<class name="android/provider/CalendarContract$EventsColumns" since="14">
-		<extends name="java/lang/Object" />
-		<field name="ACCESS_CONFIDENTIAL" />
-		<field name="ACCESS_DEFAULT" />
-		<field name="ACCESS_LEVEL" />
-		<field name="ACCESS_PRIVATE" />
-		<field name="ACCESS_PUBLIC" />
-		<field name="ALL_DAY" />
-		<field name="AVAILABILITY" />
-		<field name="AVAILABILITY_BUSY" />
-		<field name="AVAILABILITY_FREE" />
-		<field name="AVAILABILITY_TENTATIVE" since="15" />
-		<field name="CALENDAR_ID" />
-		<field name="CAN_INVITE_OTHERS" />
-		<field name="CUSTOM_APP_PACKAGE" since="16" />
-		<field name="CUSTOM_APP_URI" since="16" />
-		<field name="DESCRIPTION" />
-		<field name="DISPLAY_COLOR" since="16" />
-		<field name="DTEND" />
-		<field name="DTSTART" />
-		<field name="DURATION" />
-		<field name="EVENT_COLOR" />
-		<field name="EVENT_COLOR_KEY" since="15" />
-		<field name="EVENT_END_TIMEZONE" />
-		<field name="EVENT_LOCATION" />
-		<field name="EVENT_TIMEZONE" />
-		<field name="EXDATE" />
-		<field name="EXRULE" />
-		<field name="GUESTS_CAN_INVITE_OTHERS" />
-		<field name="GUESTS_CAN_MODIFY" />
-		<field name="GUESTS_CAN_SEE_GUESTS" />
-		<field name="HAS_ALARM" />
-		<field name="HAS_ATTENDEE_DATA" />
-		<field name="HAS_EXTENDED_PROPERTIES" />
-		<field name="IS_ORGANIZER" since="17" />
-		<field name="LAST_DATE" />
-		<field name="LAST_SYNCED" />
-		<field name="ORGANIZER" />
-		<field name="ORIGINAL_ALL_DAY" />
-		<field name="ORIGINAL_ID" />
-		<field name="ORIGINAL_INSTANCE_TIME" />
-		<field name="ORIGINAL_SYNC_ID" />
-		<field name="RDATE" />
-		<field name="RRULE" />
-		<field name="SELF_ATTENDEE_STATUS" />
-		<field name="STATUS" />
-		<field name="STATUS_CANCELED" />
-		<field name="STATUS_CONFIRMED" />
-		<field name="STATUS_TENTATIVE" />
-		<field name="SYNC_DATA1" />
-		<field name="SYNC_DATA10" />
-		<field name="SYNC_DATA2" />
-		<field name="SYNC_DATA3" />
-		<field name="SYNC_DATA4" />
-		<field name="SYNC_DATA5" />
-		<field name="SYNC_DATA6" />
-		<field name="SYNC_DATA7" />
-		<field name="SYNC_DATA8" />
-		<field name="SYNC_DATA9" />
-		<field name="TITLE" />
-		<field name="UID_2445" since="17" />
-	</class>
-	<class name="android/provider/CalendarContract$EventsEntity" since="14">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/CalendarContract$EventsColumns" />
-		<implements name="android/provider/CalendarContract$SyncColumns" />
-		<method name="&lt;init>()V" />
-		<method name="newEntityIterator(Landroid/database/Cursor;Landroid/content/ContentProviderClient;)Landroid/content/EntityIterator;" />
-		<method name="newEntityIterator(Landroid/database/Cursor;Landroid/content/ContentResolver;)Landroid/content/EntityIterator;" />
-		<field name="CONTENT_URI" />
-	</class>
-	<class name="android/provider/CalendarContract$ExtendedProperties" since="14">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/CalendarContract$EventsColumns" />
-		<implements name="android/provider/CalendarContract$ExtendedPropertiesColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_URI" />
-	</class>
-	<class name="android/provider/CalendarContract$ExtendedPropertiesColumns" since="14">
-		<extends name="java/lang/Object" />
-		<field name="EVENT_ID" />
-		<field name="NAME" />
-		<field name="VALUE" />
-	</class>
-	<class name="android/provider/CalendarContract$Instances" since="14">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/CalendarContract$CalendarColumns" />
-		<implements name="android/provider/CalendarContract$EventsColumns" />
-		<method name="&lt;init>()V" />
-		<method name="query(Landroid/content/ContentResolver;[Ljava/lang/String;JJ)Landroid/database/Cursor;" />
-		<method name="query(Landroid/content/ContentResolver;[Ljava/lang/String;JJLjava/lang/String;)Landroid/database/Cursor;" />
-		<field name="BEGIN" />
-		<field name="CONTENT_BY_DAY_URI" />
-		<field name="CONTENT_SEARCH_BY_DAY_URI" />
-		<field name="CONTENT_SEARCH_URI" />
-		<field name="CONTENT_URI" />
-		<field name="END" />
-		<field name="END_DAY" />
-		<field name="END_MINUTE" />
-		<field name="EVENT_ID" />
-		<field name="START_DAY" />
-		<field name="START_MINUTE" />
-	</class>
-	<class name="android/provider/CalendarContract$Reminders" since="14">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/CalendarContract$EventsColumns" />
-		<implements name="android/provider/CalendarContract$RemindersColumns" />
-		<method name="&lt;init>()V" />
-		<method name="query(Landroid/content/ContentResolver;J[Ljava/lang/String;)Landroid/database/Cursor;" />
-		<field name="CONTENT_URI" />
-	</class>
-	<class name="android/provider/CalendarContract$RemindersColumns" since="14">
-		<extends name="java/lang/Object" />
-		<field name="EVENT_ID" />
-		<field name="METHOD" />
-		<field name="METHOD_ALARM" since="16" />
-		<field name="METHOD_ALERT" />
-		<field name="METHOD_DEFAULT" />
-		<field name="METHOD_EMAIL" />
-		<field name="METHOD_SMS" />
-		<field name="MINUTES" />
-		<field name="MINUTES_DEFAULT" />
-	</class>
-	<class name="android/provider/CalendarContract$SyncColumns" since="14">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/CalendarContract$CalendarSyncColumns" />
-		<field name="ACCOUNT_NAME" />
-		<field name="ACCOUNT_TYPE" />
-		<field name="CAN_PARTIALLY_UPDATE" />
-		<field name="DELETED" />
-		<field name="DIRTY" />
-		<field name="MUTATORS" since="18" />
-		<field name="_SYNC_ID" />
-	</class>
-	<class name="android/provider/CalendarContract$SyncState" since="14">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/SyncStateContract$Columns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_URI" />
-	</class>
-	<class name="android/provider/CallLog" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="AUTHORITY" />
-		<field name="CONTENT_URI" />
-	</class>
-	<class name="android/provider/CallLog$Calls" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<method name="&lt;init>()V" />
-		<method name="getLastOutgoingCall(Landroid/content/Context;)Ljava/lang/String;" since="8" />
-		<field name="CACHED_FORMATTED_NUMBER" since="21" />
-		<field name="CACHED_LOOKUP_URI" since="21" />
-		<field name="CACHED_MATCHED_NUMBER" since="21" />
-		<field name="CACHED_NAME" />
-		<field name="CACHED_NORMALIZED_NUMBER" since="21" />
-		<field name="CACHED_NUMBER_LABEL" />
-		<field name="CACHED_NUMBER_TYPE" />
-		<field name="CACHED_PHOTO_ID" since="21" />
-		<field name="CONTENT_FILTER_URI" />
-		<field name="CONTENT_ITEM_TYPE" />
-		<field name="CONTENT_TYPE" />
-		<field name="CONTENT_URI" />
-		<field name="CONTENT_URI_WITH_VOICEMAIL" since="21" />
-		<field name="COUNTRY_ISO" since="21" />
-		<field name="DATE" />
-		<field name="DEFAULT_SORT_ORDER" />
-		<field name="DURATION" />
-		<field name="GEOCODED_LOCATION" since="21" />
-		<field name="INCOMING_TYPE" />
-		<field name="IS_READ" since="14" />
-		<field name="LIMIT_PARAM_KEY" since="17" />
-		<field name="MISSED_TYPE" />
-		<field name="NEW" />
-		<field name="NUMBER" />
-		<field name="NUMBER_PRESENTATION" since="19" />
-		<field name="OFFSET_PARAM_KEY" since="17" />
-		<field name="OUTGOING_TYPE" />
-		<field name="PRESENTATION_ALLOWED" since="19" />
-		<field name="PRESENTATION_PAYPHONE" since="19" />
-		<field name="PRESENTATION_RESTRICTED" since="19" />
-		<field name="PRESENTATION_UNKNOWN" since="19" />
-		<field name="TYPE" />
-		<field name="VOICEMAIL_TYPE" since="21" />
-		<field name="VOICEMAIL_URI" since="21" />
-	</class>
-	<class name="android/provider/Contacts" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="AUTHORITY" />
-		<field name="CONTENT_URI" />
-		<field name="KIND_EMAIL" />
-		<field name="KIND_IM" />
-		<field name="KIND_ORGANIZATION" />
-		<field name="KIND_PHONE" />
-		<field name="KIND_POSTAL" />
-	</class>
-	<class name="android/provider/Contacts$ContactMethods" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/Contacts$ContactMethodsColumns" />
-		<implements name="android/provider/Contacts$PeopleColumns" />
-		<method name="&lt;init>()V" />
-		<method name="addPostalLocation(Landroid/content/Context;JDD)V" />
-		<method name="decodeImProtocol(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="encodeCustomImProtocol(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="encodePredefinedImProtocol(I)Ljava/lang/String;" />
-		<method name="getDisplayLabel(Landroid/content/Context;IILjava/lang/CharSequence;)Ljava/lang/CharSequence;" />
-		<field name="CONTENT_EMAIL_ITEM_TYPE" />
-		<field name="CONTENT_EMAIL_TYPE" />
-		<field name="CONTENT_EMAIL_URI" />
-		<field name="CONTENT_IM_ITEM_TYPE" />
-		<field name="CONTENT_POSTAL_ITEM_TYPE" />
-		<field name="CONTENT_POSTAL_TYPE" />
-		<field name="CONTENT_TYPE" />
-		<field name="CONTENT_URI" />
-		<field name="DEFAULT_SORT_ORDER" />
-		<field name="PERSON_ID" />
-		<field name="POSTAL_LOCATION_LATITUDE" />
-		<field name="POSTAL_LOCATION_LONGITUDE" />
-		<field name="PROTOCOL_AIM" />
-		<field name="PROTOCOL_GOOGLE_TALK" />
-		<field name="PROTOCOL_ICQ" />
-		<field name="PROTOCOL_JABBER" />
-		<field name="PROTOCOL_MSN" />
-		<field name="PROTOCOL_QQ" />
-		<field name="PROTOCOL_SKYPE" />
-		<field name="PROTOCOL_YAHOO" />
-	</class>
-	<class name="android/provider/Contacts$ContactMethodsColumns" since="1">
-		<extends name="java/lang/Object" />
-		<field name="AUX_DATA" />
-		<field name="DATA" />
-		<field name="ISPRIMARY" />
-		<field name="KIND" />
-		<field name="LABEL" />
-		<field name="TYPE" />
-		<field name="TYPE_CUSTOM" />
-		<field name="TYPE_HOME" />
-		<field name="TYPE_OTHER" />
-		<field name="TYPE_WORK" />
-	</class>
-	<class name="android/provider/Contacts$Extensions" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/Contacts$ExtensionsColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_ITEM_TYPE" />
-		<field name="CONTENT_TYPE" />
-		<field name="CONTENT_URI" />
-		<field name="DEFAULT_SORT_ORDER" />
-		<field name="PERSON_ID" />
-	</class>
-	<class name="android/provider/Contacts$ExtensionsColumns" since="1">
-		<extends name="java/lang/Object" />
-		<field name="NAME" />
-		<field name="VALUE" />
-	</class>
-	<class name="android/provider/Contacts$GroupMembership" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/Contacts$GroupsColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_DIRECTORY" />
-		<field name="CONTENT_ITEM_TYPE" />
-		<field name="CONTENT_TYPE" />
-		<field name="CONTENT_URI" />
-		<field name="DEFAULT_SORT_ORDER" />
-		<field name="GROUP_ID" />
-		<field name="GROUP_SYNC_ACCOUNT" />
-		<field name="GROUP_SYNC_ACCOUNT_TYPE" since="5" />
-		<field name="GROUP_SYNC_ID" />
-		<field name="PERSON_ID" />
-		<field name="RAW_CONTENT_URI" />
-	</class>
-	<class name="android/provider/Contacts$Groups" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/Contacts$GroupsColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_ITEM_TYPE" />
-		<field name="CONTENT_TYPE" />
-		<field name="CONTENT_URI" />
-		<field name="DEFAULT_SORT_ORDER" />
-		<field name="DELETED_CONTENT_URI" />
-		<field name="GROUP_ANDROID_STARRED" />
-		<field name="GROUP_MY_CONTACTS" />
-	</class>
-	<class name="android/provider/Contacts$GroupsColumns" since="1">
-		<extends name="java/lang/Object" />
-		<field name="NAME" />
-		<field name="NOTES" />
-		<field name="SHOULD_SYNC" />
-		<field name="SYSTEM_ID" />
-	</class>
-	<class name="android/provider/Contacts$Intents" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="ATTACH_IMAGE" />
-		<field name="EXTRA_CREATE_DESCRIPTION" since="3" />
-		<field name="EXTRA_FORCE_CREATE" since="3" />
-		<field name="SEARCH_SUGGESTION_CLICKED" />
-		<field name="SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED" />
-		<field name="SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED" />
-		<field name="SHOW_OR_CREATE_CONTACT" since="3" />
-	</class>
-	<class name="android/provider/Contacts$Intents$Insert" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="ACTION" />
-		<field name="COMPANY" />
-		<field name="EMAIL" />
-		<field name="EMAIL_ISPRIMARY" />
-		<field name="EMAIL_TYPE" />
-		<field name="FULL_MODE" />
-		<field name="IM_HANDLE" />
-		<field name="IM_ISPRIMARY" />
-		<field name="IM_PROTOCOL" />
-		<field name="JOB_TITLE" />
-		<field name="NAME" />
-		<field name="NOTES" />
-		<field name="PHONE" />
-		<field name="PHONETIC_NAME" since="3" />
-		<field name="PHONE_ISPRIMARY" />
-		<field name="PHONE_TYPE" />
-		<field name="POSTAL" />
-		<field name="POSTAL_ISPRIMARY" />
-		<field name="POSTAL_TYPE" />
-		<field name="SECONDARY_EMAIL" since="3" />
-		<field name="SECONDARY_EMAIL_TYPE" since="3" />
-		<field name="SECONDARY_PHONE" since="3" />
-		<field name="SECONDARY_PHONE_TYPE" since="3" />
-		<field name="TERTIARY_EMAIL" since="3" />
-		<field name="TERTIARY_EMAIL_TYPE" since="3" />
-		<field name="TERTIARY_PHONE" since="3" />
-		<field name="TERTIARY_PHONE_TYPE" since="3" />
-	</class>
-	<class name="android/provider/Contacts$Intents$UI" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="FILTER_CONTACTS_ACTION" />
-		<field name="FILTER_TEXT_EXTRA_KEY" />
-		<field name="GROUP_NAME_EXTRA_KEY" />
-		<field name="LIST_ALL_CONTACTS_ACTION" />
-		<field name="LIST_CONTACTS_WITH_PHONES_ACTION" />
-		<field name="LIST_DEFAULT" />
-		<field name="LIST_FREQUENT_ACTION" />
-		<field name="LIST_GROUP_ACTION" />
-		<field name="LIST_STARRED_ACTION" />
-		<field name="LIST_STREQUENT_ACTION" />
-		<field name="TITLE_EXTRA_KEY" />
-	</class>
-	<class name="android/provider/Contacts$OrganizationColumns" since="1">
-		<extends name="java/lang/Object" />
-		<field name="COMPANY" />
-		<field name="ISPRIMARY" />
-		<field name="LABEL" />
-		<field name="PERSON_ID" />
-		<field name="TITLE" />
-		<field name="TYPE" />
-		<field name="TYPE_CUSTOM" />
-		<field name="TYPE_OTHER" />
-		<field name="TYPE_WORK" />
-	</class>
-	<class name="android/provider/Contacts$Organizations" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/Contacts$OrganizationColumns" />
-		<method name="&lt;init>()V" />
-		<method name="getDisplayLabel(Landroid/content/Context;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;" />
-		<field name="CONTENT_DIRECTORY" />
-		<field name="CONTENT_URI" />
-		<field name="DEFAULT_SORT_ORDER" />
-	</class>
-	<class name="android/provider/Contacts$People" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/Contacts$PeopleColumns" />
-		<implements name="android/provider/Contacts$PhonesColumns" />
-		<implements name="android/provider/Contacts$PresenceColumns" />
-		<method name="&lt;init>()V" />
-		<method name="addToGroup(Landroid/content/ContentResolver;JJ)Landroid/net/Uri;" />
-		<method name="addToGroup(Landroid/content/ContentResolver;JLjava/lang/String;)Landroid/net/Uri;" />
-		<method name="addToMyContactsGroup(Landroid/content/ContentResolver;J)Landroid/net/Uri;" />
-		<method name="createPersonInMyContactsGroup(Landroid/content/ContentResolver;Landroid/content/ContentValues;)Landroid/net/Uri;" />
-		<method name="loadContactPhoto(Landroid/content/Context;Landroid/net/Uri;ILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;" />
-		<method name="markAsContacted(Landroid/content/ContentResolver;J)V" />
-		<method name="openContactPhotoInputStream(Landroid/content/ContentResolver;Landroid/net/Uri;)Ljava/io/InputStream;" />
-		<method name="queryGroups(Landroid/content/ContentResolver;J)Landroid/database/Cursor;" />
-		<method name="setPhotoData(Landroid/content/ContentResolver;Landroid/net/Uri;[B)V" />
-		<field name="CONTENT_FILTER_URI" />
-		<field name="CONTENT_ITEM_TYPE" />
-		<field name="CONTENT_TYPE" />
-		<field name="CONTENT_URI" />
-		<field name="DEFAULT_SORT_ORDER" />
-		<field name="DELETED_CONTENT_URI" />
-		<field name="PRIMARY_EMAIL_ID" />
-		<field name="PRIMARY_ORGANIZATION_ID" />
-		<field name="PRIMARY_PHONE_ID" />
-	</class>
-	<class name="android/provider/Contacts$People$ContactMethods" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/Contacts$ContactMethodsColumns" />
-		<implements name="android/provider/Contacts$PeopleColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_DIRECTORY" />
-		<field name="DEFAULT_SORT_ORDER" />
-	</class>
-	<class name="android/provider/Contacts$People$Extensions" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/Contacts$ExtensionsColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_DIRECTORY" />
-		<field name="DEFAULT_SORT_ORDER" />
-		<field name="PERSON_ID" />
-	</class>
-	<class name="android/provider/Contacts$People$Phones" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/Contacts$PeopleColumns" />
-		<implements name="android/provider/Contacts$PhonesColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_DIRECTORY" />
-		<field name="DEFAULT_SORT_ORDER" />
-	</class>
-	<class name="android/provider/Contacts$PeopleColumns" since="1">
-		<extends name="java/lang/Object" />
-		<field name="CUSTOM_RINGTONE" />
-		<field name="DISPLAY_NAME" />
-		<field name="LAST_TIME_CONTACTED" />
-		<field name="NAME" />
-		<field name="NOTES" />
-		<field name="PHONETIC_NAME" since="3" />
-		<field name="PHOTO_VERSION" />
-		<field name="SEND_TO_VOICEMAIL" />
-		<field name="STARRED" />
-		<field name="TIMES_CONTACTED" />
-	</class>
-	<class name="android/provider/Contacts$Phones" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/Contacts$PeopleColumns" />
-		<implements name="android/provider/Contacts$PhonesColumns" />
-		<method name="&lt;init>()V" />
-		<method name="getDisplayLabel(Landroid/content/Context;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;" />
-		<method name="getDisplayLabel(Landroid/content/Context;ILjava/lang/CharSequence;[Ljava/lang/CharSequence;)Ljava/lang/CharSequence;" />
-		<field name="CONTENT_FILTER_URL" />
-		<field name="CONTENT_ITEM_TYPE" />
-		<field name="CONTENT_TYPE" />
-		<field name="CONTENT_URI" />
-		<field name="DEFAULT_SORT_ORDER" />
-		<field name="PERSON_ID" />
-	</class>
-	<class name="android/provider/Contacts$PhonesColumns" since="1">
-		<extends name="java/lang/Object" />
-		<field name="ISPRIMARY" />
-		<field name="LABEL" />
-		<field name="NUMBER" />
-		<field name="NUMBER_KEY" />
-		<field name="TYPE" />
-		<field name="TYPE_CUSTOM" />
-		<field name="TYPE_FAX_HOME" />
-		<field name="TYPE_FAX_WORK" />
-		<field name="TYPE_HOME" />
-		<field name="TYPE_MOBILE" />
-		<field name="TYPE_OTHER" />
-		<field name="TYPE_PAGER" />
-		<field name="TYPE_WORK" />
-	</class>
-	<class name="android/provider/Contacts$Photos" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/Contacts$PhotosColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_DIRECTORY" />
-		<field name="CONTENT_URI" />
-		<field name="DEFAULT_SORT_ORDER" />
-	</class>
-	<class name="android/provider/Contacts$PhotosColumns" since="1">
-		<extends name="java/lang/Object" />
-		<field name="DATA" />
-		<field name="DOWNLOAD_REQUIRED" />
-		<field name="EXISTS_ON_SERVER" />
-		<field name="LOCAL_VERSION" />
-		<field name="PERSON_ID" />
-		<field name="SYNC_ERROR" />
-	</class>
-	<class name="android/provider/Contacts$PresenceColumns" since="1">
-		<extends name="java/lang/Object" />
-		<field name="AVAILABLE" since="8" />
-		<field name="AWAY" since="8" />
-		<field name="DO_NOT_DISTURB" since="8" />
-		<field name="IDLE" since="8" />
-		<field name="IM_ACCOUNT" />
-		<field name="IM_HANDLE" />
-		<field name="IM_PROTOCOL" />
-		<field name="INVISIBLE" since="8" />
-		<field name="OFFLINE" since="8" />
-		<field name="PRESENCE_CUSTOM_STATUS" since="8" />
-		<field name="PRESENCE_STATUS" since="8" />
-		<field name="PRIORITY" since="8" />
-	</class>
-	<class name="android/provider/Contacts$Settings" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/Contacts$SettingsColumns" />
-		<method name="&lt;init>()V" />
-		<method name="getSetting(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="setSetting(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<field name="CONTENT_DIRECTORY" />
-		<field name="CONTENT_URI" />
-		<field name="DEFAULT_SORT_ORDER" />
-		<field name="SYNC_EVERYTHING" />
-	</class>
-	<class name="android/provider/Contacts$SettingsColumns" since="1">
-		<extends name="java/lang/Object" />
-		<field name="KEY" />
-		<field name="VALUE" />
-		<field name="_SYNC_ACCOUNT" />
-		<field name="_SYNC_ACCOUNT_TYPE" since="5" />
-	</class>
-	<class name="android/provider/ContactsContract" since="5">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="isProfileId(J)Z" since="14" />
-		<field name="AUTHORITY" />
-		<field name="AUTHORITY_URI" />
-		<field name="CALLER_IS_SYNCADAPTER" />
-		<field name="DIRECTORY_PARAM_KEY" since="11" />
-		<field name="LIMIT_PARAM_KEY" since="11" />
-		<field name="PRIMARY_ACCOUNT_NAME" since="14" />
-		<field name="PRIMARY_ACCOUNT_TYPE" since="14" />
-		<field name="REMOVE_DUPLICATE_ENTRIES" since="21" />
-		<field name="STREQUENT_PHONE_ONLY" since="21" />
-	</class>
-	<class name="android/provider/ContactsContract$AggregationExceptions" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_ITEM_TYPE" />
-		<field name="CONTENT_TYPE" />
-		<field name="CONTENT_URI" />
-		<field name="RAW_CONTACT_ID1" />
-		<field name="RAW_CONTACT_ID2" />
-		<field name="TYPE" />
-		<field name="TYPE_AUTOMATIC" />
-		<field name="TYPE_KEEP_SEPARATE" />
-		<field name="TYPE_KEEP_TOGETHER" />
-	</class>
-	<class name="android/provider/ContactsContract$BaseSyncColumns" since="5">
-		<extends name="java/lang/Object" />
-		<field name="SYNC1" />
-		<field name="SYNC2" />
-		<field name="SYNC3" />
-		<field name="SYNC4" />
-	</class>
-	<class name="android/provider/ContactsContract$CommonDataKinds" since="5">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/provider/ContactsContract$CommonDataKinds$BaseTypes" since="5">
-		<extends name="java/lang/Object" />
-		<field name="TYPE_CUSTOM" />
-	</class>
-	<class name="android/provider/ContactsContract$CommonDataKinds$Callable" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/ContactsContract$CommonDataKinds$CommonColumns" />
-		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_FILTER_URI" />
-		<field name="CONTENT_URI" />
-	</class>
-	<class name="android/provider/ContactsContract$CommonDataKinds$CommonColumns" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/ContactsContract$CommonDataKinds$BaseTypes" />
-		<field name="DATA" />
-		<field name="LABEL" />
-		<field name="TYPE" />
-	</class>
-	<class name="android/provider/ContactsContract$CommonDataKinds$Contactables" since="18">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/ContactsContract$CommonDataKinds$CommonColumns" />
-		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_FILTER_URI" />
-		<field name="CONTENT_URI" />
-		<field name="VISIBLE_CONTACTS_ONLY" />
-	</class>
-	<class name="android/provider/ContactsContract$CommonDataKinds$Email" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/ContactsContract$CommonDataKinds$CommonColumns" />
-		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" />
-		<method name="&lt;init>()V" />
-		<method name="getTypeLabel(Landroid/content/res/Resources;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;" />
-		<method name="getTypeLabelResource(I)I" />
-		<field name="ADDRESS" since="11" />
-		<field name="CONTENT_FILTER_URI" />
-		<field name="CONTENT_ITEM_TYPE" />
-		<field name="CONTENT_LOOKUP_URI" />
-		<field name="CONTENT_TYPE" />
-		<field name="CONTENT_URI" />
-		<field name="DISPLAY_NAME" />
-		<field name="TYPE_HOME" />
-		<field name="TYPE_MOBILE" />
-		<field name="TYPE_OTHER" />
-		<field name="TYPE_WORK" />
-	</class>
-	<class name="android/provider/ContactsContract$CommonDataKinds$Event" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/ContactsContract$CommonDataKinds$CommonColumns" />
-		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" />
-		<method name="&lt;init>()V" />
-		<method name="getTypeResource(Ljava/lang/Integer;)I" />
-		<field name="CONTENT_ITEM_TYPE" />
-		<field name="START_DATE" />
-		<field name="TYPE_ANNIVERSARY" />
-		<field name="TYPE_BIRTHDAY" />
-		<field name="TYPE_OTHER" />
-	</class>
-	<class name="android/provider/ContactsContract$CommonDataKinds$GroupMembership" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_ITEM_TYPE" />
-		<field name="GROUP_ROW_ID" />
-		<field name="GROUP_SOURCE_ID" />
-	</class>
-	<class name="android/provider/ContactsContract$CommonDataKinds$Identity" since="14">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_ITEM_TYPE" />
-		<field name="IDENTITY" />
-		<field name="NAMESPACE" />
-	</class>
-	<class name="android/provider/ContactsContract$CommonDataKinds$Im" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/ContactsContract$CommonDataKinds$CommonColumns" />
-		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" />
-		<method name="&lt;init>()V" />
-		<method name="getProtocolLabel(Landroid/content/res/Resources;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;" />
-		<method name="getProtocolLabelResource(I)I" />
-		<method name="getTypeLabel(Landroid/content/res/Resources;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;" />
-		<method name="getTypeLabelResource(I)I" />
-		<field name="CONTENT_ITEM_TYPE" />
-		<field name="CUSTOM_PROTOCOL" />
-		<field name="PROTOCOL" />
-		<field name="PROTOCOL_AIM" />
-		<field name="PROTOCOL_CUSTOM" />
-		<field name="PROTOCOL_GOOGLE_TALK" />
-		<field name="PROTOCOL_ICQ" />
-		<field name="PROTOCOL_JABBER" />
-		<field name="PROTOCOL_MSN" />
-		<field name="PROTOCOL_NETMEETING" />
-		<field name="PROTOCOL_QQ" />
-		<field name="PROTOCOL_SKYPE" />
-		<field name="PROTOCOL_YAHOO" />
-		<field name="TYPE_HOME" />
-		<field name="TYPE_OTHER" />
-		<field name="TYPE_WORK" />
-	</class>
-	<class name="android/provider/ContactsContract$CommonDataKinds$Nickname" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/ContactsContract$CommonDataKinds$CommonColumns" />
-		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_ITEM_TYPE" />
-		<field name="NAME" />
-		<field name="TYPE_DEFAULT" />
-		<field name="TYPE_INITIALS" />
-		<field name="TYPE_MAIDEN_NAME" since="9" />
-		<field name="TYPE_MAINDEN_NAME" />
-		<field name="TYPE_OTHER_NAME" />
-		<field name="TYPE_SHORT_NAME" />
-	</class>
-	<class name="android/provider/ContactsContract$CommonDataKinds$Note" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_ITEM_TYPE" />
-		<field name="NOTE" />
-	</class>
-	<class name="android/provider/ContactsContract$CommonDataKinds$Organization" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/ContactsContract$CommonDataKinds$CommonColumns" />
-		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" />
-		<method name="&lt;init>()V" />
-		<method name="getTypeLabel(Landroid/content/res/Resources;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;" />
-		<method name="getTypeLabelResource(I)I" />
-		<field name="COMPANY" />
-		<field name="CONTENT_ITEM_TYPE" />
-		<field name="DEPARTMENT" />
-		<field name="JOB_DESCRIPTION" />
-		<field name="OFFICE_LOCATION" />
-		<field name="PHONETIC_NAME" />
-		<field name="SYMBOL" />
-		<field name="TITLE" />
-		<field name="TYPE_OTHER" />
-		<field name="TYPE_WORK" />
-	</class>
-	<class name="android/provider/ContactsContract$CommonDataKinds$Phone" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/ContactsContract$CommonDataKinds$CommonColumns" />
-		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" />
-		<method name="&lt;init>()V" />
-		<method name="getTypeLabel(Landroid/content/res/Resources;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;" />
-		<method name="getTypeLabelResource(I)I" />
-		<field name="CONTENT_FILTER_URI" />
-		<field name="CONTENT_ITEM_TYPE" />
-		<field name="CONTENT_TYPE" />
-		<field name="CONTENT_URI" />
-		<field name="NORMALIZED_NUMBER" since="16" />
-		<field name="NUMBER" />
-		<field name="SEARCH_DISPLAY_NAME_KEY" since="16" />
-		<field name="SEARCH_PHONE_NUMBER_KEY" since="16" />
-		<field name="TYPE_ASSISTANT" />
-		<field name="TYPE_CALLBACK" />
-		<field name="TYPE_CAR" />
-		<field name="TYPE_COMPANY_MAIN" />
-		<field name="TYPE_FAX_HOME" />
-		<field name="TYPE_FAX_WORK" />
-		<field name="TYPE_HOME" />
-		<field name="TYPE_ISDN" />
-		<field name="TYPE_MAIN" />
-		<field name="TYPE_MMS" />
-		<field name="TYPE_MOBILE" />
-		<field name="TYPE_OTHER" />
-		<field name="TYPE_OTHER_FAX" />
-		<field name="TYPE_PAGER" />
-		<field name="TYPE_RADIO" />
-		<field name="TYPE_TELEX" />
-		<field name="TYPE_TTY_TDD" />
-		<field name="TYPE_WORK" />
-		<field name="TYPE_WORK_MOBILE" />
-		<field name="TYPE_WORK_PAGER" />
-	</class>
-	<class name="android/provider/ContactsContract$CommonDataKinds$Photo" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_ITEM_TYPE" />
-		<field name="PHOTO" />
-		<field name="PHOTO_FILE_ID" since="14" />
-	</class>
-	<class name="android/provider/ContactsContract$CommonDataKinds$Relation" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/ContactsContract$CommonDataKinds$CommonColumns" />
-		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" />
-		<method name="&lt;init>()V" />
-		<method name="getTypeLabel(Landroid/content/res/Resources;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;" since="11" />
-		<method name="getTypeLabelResource(I)I" since="11" />
-		<field name="CONTENT_ITEM_TYPE" />
-		<field name="NAME" />
-		<field name="TYPE_ASSISTANT" />
-		<field name="TYPE_BROTHER" />
-		<field name="TYPE_CHILD" />
-		<field name="TYPE_DOMESTIC_PARTNER" />
-		<field name="TYPE_FATHER" />
-		<field name="TYPE_FRIEND" />
-		<field name="TYPE_MANAGER" />
-		<field name="TYPE_MOTHER" />
-		<field name="TYPE_PARENT" />
-		<field name="TYPE_PARTNER" />
-		<field name="TYPE_REFERRED_BY" />
-		<field name="TYPE_RELATIVE" />
-		<field name="TYPE_SISTER" />
-		<field name="TYPE_SPOUSE" />
-	</class>
-	<class name="android/provider/ContactsContract$CommonDataKinds$SipAddress" since="9">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/ContactsContract$CommonDataKinds$CommonColumns" />
-		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" />
-		<method name="&lt;init>()V" />
-		<method name="getTypeLabel(Landroid/content/res/Resources;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;" />
-		<method name="getTypeLabelResource(I)I" />
-		<field name="CONTENT_ITEM_TYPE" />
-		<field name="SIP_ADDRESS" />
-		<field name="TYPE_HOME" />
-		<field name="TYPE_OTHER" />
-		<field name="TYPE_WORK" />
-	</class>
-	<class name="android/provider/ContactsContract$CommonDataKinds$StructuredName" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_ITEM_TYPE" />
-		<field name="DISPLAY_NAME" />
-		<field name="FAMILY_NAME" />
-		<field name="FULL_NAME_STYLE" since="21" />
-		<field name="GIVEN_NAME" />
-		<field name="MIDDLE_NAME" />
-		<field name="PHONETIC_FAMILY_NAME" />
-		<field name="PHONETIC_GIVEN_NAME" />
-		<field name="PHONETIC_MIDDLE_NAME" />
-		<field name="PREFIX" />
-		<field name="SUFFIX" />
-	</class>
-	<class name="android/provider/ContactsContract$CommonDataKinds$StructuredPostal" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/ContactsContract$CommonDataKinds$CommonColumns" />
-		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" />
-		<method name="&lt;init>()V" />
-		<method name="getTypeLabel(Landroid/content/res/Resources;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;" />
-		<method name="getTypeLabelResource(I)I" />
-		<field name="CITY" />
-		<field name="CONTENT_ITEM_TYPE" />
-		<field name="CONTENT_TYPE" />
-		<field name="CONTENT_URI" />
-		<field name="COUNTRY" />
-		<field name="FORMATTED_ADDRESS" />
-		<field name="NEIGHBORHOOD" />
-		<field name="POBOX" />
-		<field name="POSTCODE" />
-		<field name="REGION" />
-		<field name="STREET" />
-		<field name="TYPE_HOME" />
-		<field name="TYPE_OTHER" />
-		<field name="TYPE_WORK" />
-	</class>
-	<class name="android/provider/ContactsContract$CommonDataKinds$Website" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/ContactsContract$CommonDataKinds$CommonColumns" />
-		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_ITEM_TYPE" />
-		<field name="TYPE_BLOG" />
-		<field name="TYPE_FTP" />
-		<field name="TYPE_HOME" />
-		<field name="TYPE_HOMEPAGE" />
-		<field name="TYPE_OTHER" />
-		<field name="TYPE_PROFILE" />
-		<field name="TYPE_WORK" />
-		<field name="URL" />
-	</class>
-	<class name="android/provider/ContactsContract$ContactNameColumns" since="11">
-		<extends name="java/lang/Object" />
-		<field name="DISPLAY_NAME_ALTERNATIVE" />
-		<field name="DISPLAY_NAME_PRIMARY" />
-		<field name="DISPLAY_NAME_SOURCE" />
-		<field name="PHONETIC_NAME" />
-		<field name="PHONETIC_NAME_STYLE" />
-		<field name="SORT_KEY_ALTERNATIVE" />
-		<field name="SORT_KEY_PRIMARY" />
-	</class>
-	<class name="android/provider/ContactsContract$ContactOptionsColumns" since="5">
-		<extends name="java/lang/Object" />
-		<field name="CUSTOM_RINGTONE" />
-		<field name="LAST_TIME_CONTACTED" />
-		<field name="SEND_TO_VOICEMAIL" />
-		<field name="STARRED" />
-		<field name="TIMES_CONTACTED" />
-	</class>
-	<class name="android/provider/ContactsContract$ContactStatusColumns" since="5">
-		<extends name="java/lang/Object" />
-		<field name="CONTACT_CHAT_CAPABILITY" since="11" />
-		<field name="CONTACT_PRESENCE" />
-		<field name="CONTACT_STATUS" />
-		<field name="CONTACT_STATUS_ICON" />
-		<field name="CONTACT_STATUS_LABEL" />
-		<field name="CONTACT_STATUS_RES_PACKAGE" />
-		<field name="CONTACT_STATUS_TIMESTAMP" />
-	</class>
-	<class name="android/provider/ContactsContract$Contacts" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/ContactsContract$ContactNameColumns" since="11" />
-		<implements name="android/provider/ContactsContract$ContactOptionsColumns" />
-		<implements name="android/provider/ContactsContract$ContactStatusColumns" />
-		<implements name="android/provider/ContactsContract$ContactsColumns" />
-		<method name="&lt;init>()V" />
-		<method name="getLookupUri(JLjava/lang/String;)Landroid/net/Uri;" />
-		<method name="getLookupUri(Landroid/content/ContentResolver;Landroid/net/Uri;)Landroid/net/Uri;" />
-		<method name="lookupContact(Landroid/content/ContentResolver;Landroid/net/Uri;)Landroid/net/Uri;" />
-		<method name="markAsContacted(Landroid/content/ContentResolver;J)V" />
-		<method name="openContactPhotoInputStream(Landroid/content/ContentResolver;Landroid/net/Uri;)Ljava/io/InputStream;" />
-		<method name="openContactPhotoInputStream(Landroid/content/ContentResolver;Landroid/net/Uri;Z)Ljava/io/InputStream;" since="14" />
-		<field name="CONTENT_FILTER_URI" />
-		<field name="CONTENT_GROUP_URI" />
-		<field name="CONTENT_ITEM_TYPE" />
-		<field name="CONTENT_LOOKUP_URI" />
-		<field name="CONTENT_MULTI_VCARD_URI" since="21" />
-		<field name="CONTENT_STREQUENT_FILTER_URI" />
-		<field name="CONTENT_STREQUENT_URI" />
-		<field name="CONTENT_TYPE" />
-		<field name="CONTENT_URI" />
-		<field name="CONTENT_VCARD_TYPE" />
-		<field name="CONTENT_VCARD_URI" />
-	</class>
-	<class name="android/provider/ContactsContract$Contacts$AggregationSuggestions" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/ContactsContract$ContactOptionsColumns" since="11" />
-		<implements name="android/provider/ContactsContract$ContactStatusColumns" since="11" />
-		<implements name="android/provider/ContactsContract$ContactsColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_DIRECTORY" />
-	</class>
-	<class name="android/provider/ContactsContract$Contacts$Data" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/ContactsContract$DataColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_DIRECTORY" />
-	</class>
-	<class name="android/provider/ContactsContract$Contacts$Entity" since="11">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/ContactsContract$BaseSyncColumns" />
-		<implements name="android/provider/ContactsContract$ContactNameColumns" />
-		<implements name="android/provider/ContactsContract$ContactOptionsColumns" />
-		<implements name="android/provider/ContactsContract$ContactStatusColumns" />
-		<implements name="android/provider/ContactsContract$ContactsColumns" />
-		<implements name="android/provider/ContactsContract$DataColumns" />
-		<implements name="android/provider/ContactsContract$RawContactsColumns" />
-		<implements name="android/provider/ContactsContract$StatusColumns" />
-		<implements name="android/provider/ContactsContract$SyncColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_DIRECTORY" />
-		<field name="DATA_ID" />
-		<field name="RAW_CONTACT_ID" />
-	</class>
-	<class name="android/provider/ContactsContract$Contacts$Photo" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/ContactsContract$DataColumns" />
-		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" since="11" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_DIRECTORY" />
-		<field name="DISPLAY_PHOTO" since="14" />
-		<field name="PHOTO" since="11" />
-		<field name="PHOTO_FILE_ID" since="14" />
-	</class>
-	<class name="android/provider/ContactsContract$Contacts$StreamItems" since="15">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/ContactsContract$StreamItemsColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_DIRECTORY" />
-	</class>
-	<class name="android/provider/ContactsContract$ContactsColumns" since="5">
-		<extends name="java/lang/Object" />
-		<field name="CONTACT_LAST_UPDATED_TIMESTAMP" since="18" />
-		<field name="DISPLAY_NAME" />
-		<field name="HAS_PHONE_NUMBER" />
-		<field name="IN_DEFAULT_DIRECTORY" since="21" />
-		<field name="IN_VISIBLE_GROUP" />
-		<field name="IS_USER_PROFILE" since="14" />
-		<field name="LOOKUP_KEY" />
-		<field name="PHOTO_FILE_ID" since="14" />
-		<field name="PHOTO_ID" />
-		<field name="PHOTO_THUMBNAIL_URI" since="11" />
-		<field name="PHOTO_URI" since="11" />
-	</class>
-	<class name="android/provider/ContactsContract$Data" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" />
-		<method name="&lt;init>()V" />
-		<method name="getContactLookupUri(Landroid/content/ContentResolver;Landroid/net/Uri;)Landroid/net/Uri;" />
-		<field name="CONTENT_TYPE" />
-		<field name="CONTENT_URI" />
-		<field name="VISIBLE_CONTACTS_ONLY" since="18" />
-	</class>
-	<class name="android/provider/ContactsContract$DataColumns" since="5">
-		<extends name="java/lang/Object" />
-		<field name="DATA1" />
-		<field name="DATA10" />
-		<field name="DATA11" />
-		<field name="DATA12" />
-		<field name="DATA13" />
-		<field name="DATA14" />
-		<field name="DATA15" />
-		<field name="DATA2" />
-		<field name="DATA3" />
-		<field name="DATA4" />
-		<field name="DATA5" />
-		<field name="DATA6" />
-		<field name="DATA7" />
-		<field name="DATA8" />
-		<field name="DATA9" />
-		<field name="DATA_VERSION" />
-		<field name="IS_PRIMARY" />
-		<field name="IS_READ_ONLY" since="11" />
-		<field name="IS_SUPER_PRIMARY" />
-		<field name="MIMETYPE" />
-		<field name="RAW_CONTACT_ID" />
-		<field name="SYNC1" />
-		<field name="SYNC2" />
-		<field name="SYNC3" />
-		<field name="SYNC4" />
-	</class>
-	<class name="android/provider/ContactsContract$DataColumnsWithJoins" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/ContactsContract$ContactNameColumns" since="11" />
-		<implements name="android/provider/ContactsContract$ContactOptionsColumns" />
-		<implements name="android/provider/ContactsContract$ContactStatusColumns" />
-		<implements name="android/provider/ContactsContract$ContactsColumns" />
-		<implements name="android/provider/ContactsContract$DataColumns" />
-		<implements name="android/provider/ContactsContract$DataUsageStatColumns" since="18" />
-		<implements name="android/provider/ContactsContract$RawContactsColumns" />
-		<implements name="android/provider/ContactsContract$StatusColumns" />
-	</class>
-	<class name="android/provider/ContactsContract$DataUsageFeedback" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="DELETE_USAGE_URI" since="16" />
-		<field name="FEEDBACK_URI" />
-		<field name="USAGE_TYPE" />
-		<field name="USAGE_TYPE_CALL" />
-		<field name="USAGE_TYPE_LONG_TEXT" />
-		<field name="USAGE_TYPE_SHORT_TEXT" />
-	</class>
-	<class name="android/provider/ContactsContract$DataUsageStatColumns" since="18">
-		<extends name="java/lang/Object" />
-		<field name="LAST_TIME_USED" />
-		<field name="TIMES_USED" />
-	</class>
-	<class name="android/provider/ContactsContract$DeletedContacts" since="18">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/ContactsContract$DeletedContactsColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_URI" />
-		<field name="DAYS_KEPT_MILLISECONDS" />
-	</class>
-	<class name="android/provider/ContactsContract$DeletedContactsColumns" since="18">
-		<extends name="java/lang/Object" />
-		<field name="CONTACT_DELETED_TIMESTAMP" />
-		<field name="CONTACT_ID" />
-	</class>
-	<class name="android/provider/ContactsContract$Directory" since="11">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<method name="&lt;init>()V" />
-		<method name="notifyDirectoryChange(Landroid/content/ContentResolver;)V" />
-		<field name="ACCOUNT_NAME" />
-		<field name="ACCOUNT_TYPE" />
-		<field name="CONTENT_ITEM_TYPE" />
-		<field name="CONTENT_TYPE" />
-		<field name="CONTENT_URI" />
-		<field name="DEFAULT" />
-		<field name="DIRECTORY_AUTHORITY" />
-		<field name="DISPLAY_NAME" />
-		<field name="EXPORT_SUPPORT" />
-		<field name="EXPORT_SUPPORT_ANY_ACCOUNT" />
-		<field name="EXPORT_SUPPORT_NONE" />
-		<field name="EXPORT_SUPPORT_SAME_ACCOUNT_ONLY" />
-		<field name="LOCAL_INVISIBLE" />
-		<field name="PACKAGE_NAME" />
-		<field name="PHOTO_SUPPORT" />
-		<field name="PHOTO_SUPPORT_FULL" />
-		<field name="PHOTO_SUPPORT_FULL_SIZE_ONLY" />
-		<field name="PHOTO_SUPPORT_NONE" />
-		<field name="PHOTO_SUPPORT_THUMBNAIL_ONLY" />
-		<field name="SHORTCUT_SUPPORT" />
-		<field name="SHORTCUT_SUPPORT_DATA_ITEMS_ONLY" />
-		<field name="SHORTCUT_SUPPORT_FULL" />
-		<field name="SHORTCUT_SUPPORT_NONE" />
-		<field name="TYPE_RESOURCE_ID" />
-	</class>
-	<class name="android/provider/ContactsContract$DisplayNameSources" since="11">
-		<extends name="java/lang/Object" />
-		<field name="EMAIL" />
-		<field name="NICKNAME" />
-		<field name="ORGANIZATION" />
-		<field name="PHONE" />
-		<field name="STRUCTURED_NAME" />
-		<field name="UNDEFINED" />
-	</class>
-	<class name="android/provider/ContactsContract$DisplayPhoto" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_MAX_DIMENSIONS_URI" />
-		<field name="CONTENT_URI" />
-		<field name="DISPLAY_MAX_DIM" />
-		<field name="THUMBNAIL_MAX_DIM" />
-	</class>
-	<class name="android/provider/ContactsContract$FullNameStyle" since="11">
-		<extends name="java/lang/Object" />
-		<field name="CHINESE" />
-		<field name="CJK" />
-		<field name="JAPANESE" />
-		<field name="KOREAN" />
-		<field name="UNDEFINED" />
-		<field name="WESTERN" />
-	</class>
-	<class name="android/provider/ContactsContract$Groups" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/ContactsContract$GroupsColumns" />
-		<implements name="android/provider/ContactsContract$SyncColumns" />
-		<method name="&lt;init>()V" />
-		<method name="newEntityIterator(Landroid/database/Cursor;)Landroid/content/EntityIterator;" since="8" />
-		<field name="CONTENT_ITEM_TYPE" />
-		<field name="CONTENT_SUMMARY_URI" />
-		<field name="CONTENT_TYPE" />
-		<field name="CONTENT_URI" />
-	</class>
-	<class name="android/provider/ContactsContract$GroupsColumns" since="5">
-		<extends name="java/lang/Object" />
-		<field name="AUTO_ADD" since="11" />
-		<field name="DATA_SET" since="14" />
-		<field name="DELETED" />
-		<field name="FAVORITES" since="11" />
-		<field name="GROUP_IS_READ_ONLY" since="11" />
-		<field name="GROUP_VISIBLE" />
-		<field name="NOTES" />
-		<field name="SHOULD_SYNC" />
-		<field name="SUMMARY_COUNT" />
-		<field name="SUMMARY_WITH_PHONES" />
-		<field name="SYSTEM_ID" />
-		<field name="TITLE" />
-	</class>
-	<class name="android/provider/ContactsContract$Intents" since="5">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="ATTACH_IMAGE" />
-		<field name="CONTACTS_DATABASE_CREATED" since="18" />
-		<field name="EXTRA_CREATE_DESCRIPTION" />
-		<field name="EXTRA_FORCE_CREATE" />
-		<field name="INVITE_CONTACT" since="14" />
-		<field name="SEARCH_SUGGESTION_CLICKED" />
-		<field name="SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED" />
-		<field name="SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED" />
-		<field name="SHOW_OR_CREATE_CONTACT" />
-	</class>
-	<class name="android/provider/ContactsContract$Intents$Insert" since="5">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="ACTION" />
-		<field name="COMPANY" />
-		<field name="DATA" since="11" />
-		<field name="EMAIL" />
-		<field name="EMAIL_ISPRIMARY" />
-		<field name="EMAIL_TYPE" />
-		<field name="FULL_MODE" />
-		<field name="IM_HANDLE" />
-		<field name="IM_ISPRIMARY" />
-		<field name="IM_PROTOCOL" />
-		<field name="JOB_TITLE" />
-		<field name="NAME" />
-		<field name="NOTES" />
-		<field name="PHONE" />
-		<field name="PHONETIC_NAME" />
-		<field name="PHONE_ISPRIMARY" />
-		<field name="PHONE_TYPE" />
-		<field name="POSTAL" />
-		<field name="POSTAL_ISPRIMARY" />
-		<field name="POSTAL_TYPE" />
-		<field name="SECONDARY_EMAIL" />
-		<field name="SECONDARY_EMAIL_TYPE" />
-		<field name="SECONDARY_PHONE" />
-		<field name="SECONDARY_PHONE_TYPE" />
-		<field name="TERTIARY_EMAIL" />
-		<field name="TERTIARY_EMAIL_TYPE" />
-		<field name="TERTIARY_PHONE" />
-		<field name="TERTIARY_PHONE_TYPE" />
-	</class>
-	<class name="android/provider/ContactsContract$PhoneLookup" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/ContactsContract$ContactOptionsColumns" />
-		<implements name="android/provider/ContactsContract$ContactsColumns" />
-		<implements name="android/provider/ContactsContract$PhoneLookupColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_FILTER_URI" />
-		<field name="QUERY_PARAMETER_SIP_ADDRESS" since="21" />
-	</class>
-	<class name="android/provider/ContactsContract$PhoneLookupColumns" since="5">
-		<extends name="java/lang/Object" />
-		<field name="LABEL" />
-		<field name="NORMALIZED_NUMBER" since="16" />
-		<field name="NUMBER" />
-		<field name="TYPE" />
-	</class>
-	<class name="android/provider/ContactsContract$PhoneticNameStyle" since="11">
-		<extends name="java/lang/Object" />
-		<field name="JAPANESE" />
-		<field name="KOREAN" />
-		<field name="PINYIN" />
-		<field name="UNDEFINED" />
-	</class>
-	<class name="android/provider/ContactsContract$Preferences" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="DISPLAY_ORDER" />
-		<field name="DISPLAY_ORDER_ALTERNATIVE" />
-		<field name="DISPLAY_ORDER_PRIMARY" />
-		<field name="SORT_ORDER" />
-		<field name="SORT_ORDER_ALTERNATIVE" />
-		<field name="SORT_ORDER_PRIMARY" />
-	</class>
-	<class name="android/provider/ContactsContract$Presence" since="5">
-		<extends name="android/provider/ContactsContract$StatusUpdates" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/provider/ContactsContract$PresenceColumns" since="5">
-		<extends name="java/lang/Object" />
-		<field name="CUSTOM_PROTOCOL" />
-		<field name="DATA_ID" />
-		<field name="IM_ACCOUNT" />
-		<field name="IM_HANDLE" />
-		<field name="PROTOCOL" />
-	</class>
-	<class name="android/provider/ContactsContract$Profile" since="14">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/ContactsContract$ContactNameColumns" />
-		<implements name="android/provider/ContactsContract$ContactOptionsColumns" />
-		<implements name="android/provider/ContactsContract$ContactStatusColumns" />
-		<implements name="android/provider/ContactsContract$ContactsColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_RAW_CONTACTS_URI" />
-		<field name="CONTENT_URI" />
-		<field name="CONTENT_VCARD_URI" />
-		<field name="MIN_ID" />
-	</class>
-	<class name="android/provider/ContactsContract$ProfileSyncState" since="14">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/SyncStateContract$Columns" />
-		<method name="&lt;init>()V" />
-		<method name="get(Landroid/content/ContentProviderClient;Landroid/accounts/Account;)[B" />
-		<method name="getWithUri(Landroid/content/ContentProviderClient;Landroid/accounts/Account;)Landroid/util/Pair;" />
-		<method name="newSetOperation(Landroid/accounts/Account;[B)Landroid/content/ContentProviderOperation;" />
-		<method name="set(Landroid/content/ContentProviderClient;Landroid/accounts/Account;[B)V" />
-		<field name="CONTENT_DIRECTORY" />
-		<field name="CONTENT_URI" />
-	</class>
-	<class name="android/provider/ContactsContract$QuickContact" since="5">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="showQuickContact(Landroid/content/Context;Landroid/graphics/Rect;Landroid/net/Uri;I[Ljava/lang/String;)V" />
-		<method name="showQuickContact(Landroid/content/Context;Landroid/view/View;Landroid/net/Uri;I[Ljava/lang/String;)V" />
-		<field name="MODE_LARGE" />
-		<field name="MODE_MEDIUM" />
-		<field name="MODE_SMALL" />
-	</class>
-	<class name="android/provider/ContactsContract$RawContacts" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/ContactsContract$ContactNameColumns" since="11" />
-		<implements name="android/provider/ContactsContract$ContactOptionsColumns" />
-		<implements name="android/provider/ContactsContract$RawContactsColumns" />
-		<implements name="android/provider/ContactsContract$SyncColumns" />
-		<method name="&lt;init>()V" />
-		<method name="getContactLookupUri(Landroid/content/ContentResolver;Landroid/net/Uri;)Landroid/net/Uri;" />
-		<method name="newEntityIterator(Landroid/database/Cursor;)Landroid/content/EntityIterator;" since="8" />
-		<field name="AGGREGATION_MODE_DEFAULT" />
-		<field name="AGGREGATION_MODE_DISABLED" />
-		<field name="AGGREGATION_MODE_IMMEDIATE" />
-		<field name="AGGREGATION_MODE_SUSPENDED" />
-		<field name="CONTENT_ITEM_TYPE" />
-		<field name="CONTENT_TYPE" />
-		<field name="CONTENT_URI" />
-	</class>
-	<class name="android/provider/ContactsContract$RawContacts$Data" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/ContactsContract$DataColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_DIRECTORY" />
-	</class>
-	<class name="android/provider/ContactsContract$RawContacts$DisplayPhoto" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_DIRECTORY" />
-	</class>
-	<class name="android/provider/ContactsContract$RawContacts$Entity" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/ContactsContract$DataColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_DIRECTORY" />
-		<field name="DATA_ID" />
-	</class>
-	<class name="android/provider/ContactsContract$RawContacts$StreamItems" since="15">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/ContactsContract$StreamItemsColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_DIRECTORY" />
-	</class>
-	<class name="android/provider/ContactsContract$RawContactsColumns" since="5">
-		<extends name="java/lang/Object" />
-		<field name="AGGREGATION_MODE" />
-		<field name="CONTACT_ID" />
-		<field name="DATA_SET" since="14" />
-		<field name="DELETED" />
-		<field name="RAW_CONTACT_IS_READ_ONLY" since="11" />
-		<field name="RAW_CONTACT_IS_USER_PROFILE" since="14" />
-	</class>
-	<class name="android/provider/ContactsContract$RawContactsEntity" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/ContactsContract$DataColumns" />
-		<implements name="android/provider/ContactsContract$RawContactsColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_TYPE" />
-		<field name="CONTENT_URI" />
-		<field name="DATA_ID" />
-		<field name="PROFILE_CONTENT_URI" since="14" />
-	</class>
-	<class name="android/provider/ContactsContract$Settings" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/ContactsContract$SettingsColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_ITEM_TYPE" />
-		<field name="CONTENT_TYPE" />
-		<field name="CONTENT_URI" />
-	</class>
-	<class name="android/provider/ContactsContract$SettingsColumns" since="5">
-		<extends name="java/lang/Object" />
-		<field name="ACCOUNT_NAME" />
-		<field name="ACCOUNT_TYPE" />
-		<field name="ANY_UNSYNCED" />
-		<field name="DATA_SET" since="14" />
-		<field name="SHOULD_SYNC" />
-		<field name="UNGROUPED_COUNT" />
-		<field name="UNGROUPED_VISIBLE" />
-		<field name="UNGROUPED_WITH_PHONES" />
-	</class>
-	<class name="android/provider/ContactsContract$StatusColumns" since="5">
-		<extends name="java/lang/Object" />
-		<field name="AVAILABLE" since="8" />
-		<field name="AWAY" since="8" />
-		<field name="CAPABILITY_HAS_CAMERA" since="11" />
-		<field name="CAPABILITY_HAS_VIDEO" since="11" />
-		<field name="CAPABILITY_HAS_VOICE" since="11" />
-		<field name="CHAT_CAPABILITY" since="11" />
-		<field name="DO_NOT_DISTURB" since="8" />
-		<field name="IDLE" since="8" />
-		<field name="INVISIBLE" since="8" />
-		<field name="OFFLINE" since="8" />
-		<field name="PRESENCE" />
-		<field name="PRESENCE_CUSTOM_STATUS" since="8" />
-		<field name="PRESENCE_STATUS" since="8" />
-		<field name="STATUS" />
-		<field name="STATUS_ICON" />
-		<field name="STATUS_LABEL" />
-		<field name="STATUS_RES_PACKAGE" />
-		<field name="STATUS_TIMESTAMP" />
-	</class>
-	<class name="android/provider/ContactsContract$StatusUpdates" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/ContactsContract$PresenceColumns" />
-		<implements name="android/provider/ContactsContract$StatusColumns" />
-		<method name="&lt;init>()V" />
-		<method name="getPresenceIconResourceId(I)I" />
-		<method name="getPresencePrecedence(I)I" />
-		<field name="CONTENT_ITEM_TYPE" />
-		<field name="CONTENT_TYPE" />
-		<field name="CONTENT_URI" />
-		<field name="PROFILE_CONTENT_URI" since="14" />
-	</class>
-	<class name="android/provider/ContactsContract$StreamItemPhotos" since="15">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/ContactsContract$StreamItemPhotosColumns" />
-		<method name="&lt;init>()V" />
-		<field name="PHOTO" />
-	</class>
-	<class name="android/provider/ContactsContract$StreamItemPhotosColumns" since="15">
-		<extends name="java/lang/Object" />
-		<field name="PHOTO_FILE_ID" />
-		<field name="PHOTO_URI" />
-		<field name="SORT_INDEX" />
-		<field name="STREAM_ITEM_ID" />
-		<field name="SYNC1" />
-		<field name="SYNC2" />
-		<field name="SYNC3" />
-		<field name="SYNC4" />
-	</class>
-	<class name="android/provider/ContactsContract$StreamItems" since="15">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/ContactsContract$StreamItemsColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_ITEM_TYPE" />
-		<field name="CONTENT_LIMIT_URI" />
-		<field name="CONTENT_PHOTO_URI" />
-		<field name="CONTENT_TYPE" />
-		<field name="CONTENT_URI" />
-		<field name="MAX_ITEMS" />
-	</class>
-	<class name="android/provider/ContactsContract$StreamItems$StreamItemPhotos" since="15">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/ContactsContract$StreamItemPhotosColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_DIRECTORY" />
-		<field name="CONTENT_ITEM_TYPE" />
-		<field name="CONTENT_TYPE" />
-	</class>
-	<class name="android/provider/ContactsContract$StreamItemsColumns" since="15">
-		<extends name="java/lang/Object" />
-		<field name="ACCOUNT_NAME" />
-		<field name="ACCOUNT_TYPE" />
-		<field name="COMMENTS" />
-		<field name="CONTACT_ID" />
-		<field name="CONTACT_LOOKUP_KEY" />
-		<field name="DATA_SET" />
-		<field name="RAW_CONTACT_ID" />
-		<field name="RAW_CONTACT_SOURCE_ID" />
-		<field name="RES_ICON" />
-		<field name="RES_LABEL" />
-		<field name="RES_PACKAGE" />
-		<field name="SYNC1" />
-		<field name="SYNC2" />
-		<field name="SYNC3" />
-		<field name="SYNC4" />
-		<field name="TEXT" />
-		<field name="TIMESTAMP" />
-	</class>
-	<class name="android/provider/ContactsContract$SyncColumns" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/ContactsContract$BaseSyncColumns" />
-		<field name="ACCOUNT_NAME" />
-		<field name="ACCOUNT_TYPE" />
-		<field name="DIRTY" />
-		<field name="SOURCE_ID" />
-		<field name="VERSION" />
-	</class>
-	<class name="android/provider/ContactsContract$SyncState" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/SyncStateContract$Columns" />
-		<method name="&lt;init>()V" />
-		<method name="get(Landroid/content/ContentProviderClient;Landroid/accounts/Account;)[B" />
-		<method name="getWithUri(Landroid/content/ContentProviderClient;Landroid/accounts/Account;)Landroid/util/Pair;" />
-		<method name="newSetOperation(Landroid/accounts/Account;[B)Landroid/content/ContentProviderOperation;" />
-		<method name="set(Landroid/content/ContentProviderClient;Landroid/accounts/Account;[B)V" />
-		<field name="CONTENT_DIRECTORY" />
-		<field name="CONTENT_URI" />
-	</class>
-	<class name="android/provider/DocumentsContract" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="buildChildDocumentsUri(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri;" />
-		<method name="buildChildDocumentsUriUsingTree(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;" since="21" />
-		<method name="buildDocumentUri(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri;" />
-		<method name="buildDocumentUriUsingTree(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;" since="21" />
-		<method name="buildRecentDocumentsUri(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri;" />
-		<method name="buildRootUri(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri;" />
-		<method name="buildRootsUri(Ljava/lang/String;)Landroid/net/Uri;" />
-		<method name="buildSearchDocumentsUri(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri;" />
-		<method name="buildTreeDocumentUri(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri;" since="21" />
-		<method name="createDocument(Landroid/content/ContentResolver;Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri;" since="21" />
-		<method name="deleteDocument(Landroid/content/ContentResolver;Landroid/net/Uri;)Z" />
-		<method name="getDocumentId(Landroid/net/Uri;)Ljava/lang/String;" />
-		<method name="getDocumentThumbnail(Landroid/content/ContentResolver;Landroid/net/Uri;Landroid/graphics/Point;Landroid/os/CancellationSignal;)Landroid/graphics/Bitmap;" />
-		<method name="getRootId(Landroid/net/Uri;)Ljava/lang/String;" />
-		<method name="getSearchDocumentsQuery(Landroid/net/Uri;)Ljava/lang/String;" />
-		<method name="getTreeDocumentId(Landroid/net/Uri;)Ljava/lang/String;" since="21" />
-		<method name="isDocumentUri(Landroid/content/Context;Landroid/net/Uri;)Z" />
-		<method name="renameDocument(Landroid/content/ContentResolver;Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;" since="21" />
-		<field name="EXTRA_ERROR" />
-		<field name="EXTRA_INFO" />
-		<field name="EXTRA_LOADING" />
-		<field name="PROVIDER_INTERFACE" />
-	</class>
-	<class name="android/provider/DocumentsContract$Document" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="COLUMN_DISPLAY_NAME" />
-		<field name="COLUMN_DOCUMENT_ID" />
-		<field name="COLUMN_FLAGS" />
-		<field name="COLUMN_ICON" />
-		<field name="COLUMN_LAST_MODIFIED" />
-		<field name="COLUMN_MIME_TYPE" />
-		<field name="COLUMN_SIZE" />
-		<field name="COLUMN_SUMMARY" />
-		<field name="FLAG_DIR_PREFERS_GRID" />
-		<field name="FLAG_DIR_PREFERS_LAST_MODIFIED" />
-		<field name="FLAG_DIR_SUPPORTS_CREATE" />
-		<field name="FLAG_SUPPORTS_DELETE" />
-		<field name="FLAG_SUPPORTS_RENAME" since="21" />
-		<field name="FLAG_SUPPORTS_THUMBNAIL" />
-		<field name="FLAG_SUPPORTS_WRITE" />
-		<field name="MIME_TYPE_DIR" />
-	</class>
-	<class name="android/provider/DocumentsContract$Root" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="COLUMN_AVAILABLE_BYTES" />
-		<field name="COLUMN_DOCUMENT_ID" />
-		<field name="COLUMN_FLAGS" />
-		<field name="COLUMN_ICON" />
-		<field name="COLUMN_MIME_TYPES" />
-		<field name="COLUMN_ROOT_ID" />
-		<field name="COLUMN_SUMMARY" />
-		<field name="COLUMN_TITLE" />
-		<field name="FLAG_LOCAL_ONLY" />
-		<field name="FLAG_SUPPORTS_CREATE" />
-		<field name="FLAG_SUPPORTS_IS_CHILD" since="21" />
-		<field name="FLAG_SUPPORTS_RECENTS" />
-		<field name="FLAG_SUPPORTS_SEARCH" />
-	</class>
-	<class name="android/provider/DocumentsProvider" since="19">
-		<extends name="android/content/ContentProvider" />
-		<method name="&lt;init>()V" />
-		<method name="createDocument(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="deleteDocument(Ljava/lang/String;)V" />
-		<method name="getDocumentType(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="isChildDocument(Ljava/lang/String;Ljava/lang/String;)Z" since="21" />
-		<method name="openDocument(Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/os/ParcelFileDescriptor;" />
-		<method name="openDocumentThumbnail(Ljava/lang/String;Landroid/graphics/Point;Landroid/os/CancellationSignal;)Landroid/content/res/AssetFileDescriptor;" />
-		<method name="queryChildDocuments(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;" />
-		<method name="queryDocument(Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor;" />
-		<method name="queryRecentDocuments(Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor;" />
-		<method name="queryRoots([Ljava/lang/String;)Landroid/database/Cursor;" />
-		<method name="querySearchDocuments(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor;" />
-		<method name="renameDocument(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" since="21" />
-		<method name="revokeDocumentPermission(Ljava/lang/String;)V" since="21" />
-	</class>
-	<class name="android/provider/LiveFolders" since="3">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<method name="&lt;init>()V" />
-		<field name="ACTION_CREATE_LIVE_FOLDER" />
-		<field name="DESCRIPTION" />
-		<field name="DISPLAY_MODE_GRID" />
-		<field name="DISPLAY_MODE_LIST" />
-		<field name="EXTRA_LIVE_FOLDER_BASE_INTENT" />
-		<field name="EXTRA_LIVE_FOLDER_DISPLAY_MODE" />
-		<field name="EXTRA_LIVE_FOLDER_ICON" />
-		<field name="EXTRA_LIVE_FOLDER_NAME" />
-		<field name="ICON_BITMAP" />
-		<field name="ICON_PACKAGE" />
-		<field name="ICON_RESOURCE" />
-		<field name="INTENT" />
-		<field name="NAME" />
-	</class>
-	<class name="android/provider/MediaStore" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getMediaScannerUri()Landroid/net/Uri;" />
-		<method name="getVersion(Landroid/content/Context;)Ljava/lang/String;" since="12" />
-		<field name="ACTION_IMAGE_CAPTURE" since="3" />
-		<field name="ACTION_IMAGE_CAPTURE_SECURE" since="17" />
-		<field name="ACTION_VIDEO_CAPTURE" since="3" />
-		<field name="AUTHORITY" />
-		<field name="EXTRA_DURATION_LIMIT" since="8" />
-		<field name="EXTRA_FINISH_ON_COMPLETION" since="3" />
-		<field name="EXTRA_FULL_SCREEN" since="8" />
-		<field name="EXTRA_MEDIA_ALBUM" since="3" />
-		<field name="EXTRA_MEDIA_ARTIST" since="3" />
-		<field name="EXTRA_MEDIA_FOCUS" since="3" />
-		<field name="EXTRA_MEDIA_GENRE" since="21" />
-		<field name="EXTRA_MEDIA_PLAYLIST" since="21" />
-		<field name="EXTRA_MEDIA_RADIO_CHANNEL" since="21" />
-		<field name="EXTRA_MEDIA_TITLE" since="3" />
-		<field name="EXTRA_OUTPUT" since="3" />
-		<field name="EXTRA_SCREEN_ORIENTATION" since="3" />
-		<field name="EXTRA_SHOW_ACTION_ICONS" since="8" />
-		<field name="EXTRA_SIZE_LIMIT" since="8" />
-		<field name="EXTRA_VIDEO_QUALITY" since="3" />
-		<field name="INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH" since="9" />
-		<field name="INTENT_ACTION_MEDIA_SEARCH" since="3" />
-		<field name="INTENT_ACTION_MUSIC_PLAYER" since="8" />
-		<field name="INTENT_ACTION_STILL_IMAGE_CAMERA" since="3" />
-		<field name="INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE" since="17" />
-		<field name="INTENT_ACTION_TEXT_OPEN_FROM_SEARCH" since="17" />
-		<field name="INTENT_ACTION_VIDEO_CAMERA" since="3" />
-		<field name="INTENT_ACTION_VIDEO_PLAY_FROM_SEARCH" since="17" />
-		<field name="MEDIA_IGNORE_FILENAME" since="9" />
-		<field name="MEDIA_SCANNER_VOLUME" />
-		<field name="UNKNOWN_STRING" since="8" />
-	</class>
-	<class name="android/provider/MediaStore$Audio" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="keyFor(Ljava/lang/String;)Ljava/lang/String;" />
-	</class>
-	<class name="android/provider/MediaStore$Audio$AlbumColumns" since="1">
-		<extends name="java/lang/Object" />
-		<field name="ALBUM" />
-		<field name="ALBUM_ART" />
-		<field name="ALBUM_ID" />
-		<field name="ALBUM_KEY" />
-		<field name="ARTIST" />
-		<field name="FIRST_YEAR" />
-		<field name="LAST_YEAR" />
-		<field name="NUMBER_OF_SONGS" />
-		<field name="NUMBER_OF_SONGS_FOR_ARTIST" since="3" />
-	</class>
-	<class name="android/provider/MediaStore$Audio$Albums" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/MediaStore$Audio$AlbumColumns" />
-		<method name="&lt;init>()V" />
-		<method name="getContentUri(Ljava/lang/String;)Landroid/net/Uri;" />
-		<field name="CONTENT_TYPE" />
-		<field name="DEFAULT_SORT_ORDER" />
-		<field name="ENTRY_CONTENT_TYPE" />
-		<field name="EXTERNAL_CONTENT_URI" />
-		<field name="INTERNAL_CONTENT_URI" />
-	</class>
-	<class name="android/provider/MediaStore$Audio$ArtistColumns" since="1">
-		<extends name="java/lang/Object" />
-		<field name="ARTIST" />
-		<field name="ARTIST_KEY" />
-		<field name="NUMBER_OF_ALBUMS" />
-		<field name="NUMBER_OF_TRACKS" />
-	</class>
-	<class name="android/provider/MediaStore$Audio$Artists" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/MediaStore$Audio$ArtistColumns" />
-		<method name="&lt;init>()V" />
-		<method name="getContentUri(Ljava/lang/String;)Landroid/net/Uri;" />
-		<field name="CONTENT_TYPE" />
-		<field name="DEFAULT_SORT_ORDER" />
-		<field name="ENTRY_CONTENT_TYPE" />
-		<field name="EXTERNAL_CONTENT_URI" />
-		<field name="INTERNAL_CONTENT_URI" />
-	</class>
-	<class name="android/provider/MediaStore$Audio$Artists$Albums" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/MediaStore$Audio$AlbumColumns" />
-		<method name="&lt;init>()V" />
-		<method name="getContentUri(Ljava/lang/String;J)Landroid/net/Uri;" />
-	</class>
-	<class name="android/provider/MediaStore$Audio$AudioColumns" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/MediaStore$MediaColumns" />
-		<field name="ALBUM" />
-		<field name="ALBUM_ART" />
-		<field name="ALBUM_ID" />
-		<field name="ALBUM_KEY" />
-		<field name="ARTIST" />
-		<field name="ARTIST_ID" />
-		<field name="ARTIST_KEY" />
-		<field name="BOOKMARK" since="8" />
-		<field name="COMPOSER" />
-		<field name="DURATION" />
-		<field name="IS_ALARM" />
-		<field name="IS_MUSIC" />
-		<field name="IS_NOTIFICATION" />
-		<field name="IS_PODCAST" since="8" />
-		<field name="IS_RINGTONE" />
-		<field name="TITLE_KEY" />
-		<field name="TRACK" />
-		<field name="YEAR" />
-	</class>
-	<class name="android/provider/MediaStore$Audio$Genres" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/MediaStore$Audio$GenresColumns" />
-		<method name="&lt;init>()V" />
-		<method name="getContentUri(Ljava/lang/String;)Landroid/net/Uri;" />
-		<method name="getContentUriForAudioId(Ljava/lang/String;I)Landroid/net/Uri;" since="11" />
-		<field name="CONTENT_TYPE" />
-		<field name="DEFAULT_SORT_ORDER" />
-		<field name="ENTRY_CONTENT_TYPE" />
-		<field name="EXTERNAL_CONTENT_URI" />
-		<field name="INTERNAL_CONTENT_URI" />
-	</class>
-	<class name="android/provider/MediaStore$Audio$Genres$Members" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/MediaStore$Audio$AudioColumns" />
-		<method name="&lt;init>()V" />
-		<method name="getContentUri(Ljava/lang/String;J)Landroid/net/Uri;" />
-		<field name="AUDIO_ID" />
-		<field name="CONTENT_DIRECTORY" />
-		<field name="DEFAULT_SORT_ORDER" />
-		<field name="GENRE_ID" />
-	</class>
-	<class name="android/provider/MediaStore$Audio$GenresColumns" since="1">
-		<extends name="java/lang/Object" />
-		<field name="NAME" />
-	</class>
-	<class name="android/provider/MediaStore$Audio$Media" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/MediaStore$Audio$AudioColumns" />
-		<method name="&lt;init>()V" />
-		<method name="getContentUri(Ljava/lang/String;)Landroid/net/Uri;" />
-		<method name="getContentUriForPath(Ljava/lang/String;)Landroid/net/Uri;" />
-		<field name="CONTENT_TYPE" />
-		<field name="DEFAULT_SORT_ORDER" />
-		<field name="ENTRY_CONTENT_TYPE" since="21" />
-		<field name="EXTERNAL_CONTENT_URI" />
-		<field name="EXTRA_MAX_BYTES" since="3" />
-		<field name="INTERNAL_CONTENT_URI" />
-		<field name="RECORD_SOUND_ACTION" />
-	</class>
-	<class name="android/provider/MediaStore$Audio$Playlists" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/MediaStore$Audio$PlaylistsColumns" />
-		<method name="&lt;init>()V" />
-		<method name="getContentUri(Ljava/lang/String;)Landroid/net/Uri;" />
-		<field name="CONTENT_TYPE" />
-		<field name="DEFAULT_SORT_ORDER" />
-		<field name="ENTRY_CONTENT_TYPE" />
-		<field name="EXTERNAL_CONTENT_URI" />
-		<field name="INTERNAL_CONTENT_URI" />
-	</class>
-	<class name="android/provider/MediaStore$Audio$Playlists$Members" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/MediaStore$Audio$AudioColumns" />
-		<method name="&lt;init>()V" />
-		<method name="getContentUri(Ljava/lang/String;J)Landroid/net/Uri;" />
-		<method name="moveItem(Landroid/content/ContentResolver;JII)Z" since="8" />
-		<field name="AUDIO_ID" />
-		<field name="CONTENT_DIRECTORY" />
-		<field name="DEFAULT_SORT_ORDER" />
-		<field name="PLAYLIST_ID" />
-		<field name="PLAY_ORDER" />
-		<field name="_ID" />
-	</class>
-	<class name="android/provider/MediaStore$Audio$PlaylistsColumns" since="1">
-		<extends name="java/lang/Object" />
-		<field name="DATA" />
-		<field name="DATE_ADDED" />
-		<field name="DATE_MODIFIED" />
-		<field name="NAME" />
-	</class>
-	<class name="android/provider/MediaStore$Audio$Radio" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="ENTRY_CONTENT_TYPE" />
-	</class>
-	<class name="android/provider/MediaStore$Files" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getContentUri(Ljava/lang/String;)Landroid/net/Uri;" />
-		<method name="getContentUri(Ljava/lang/String;J)Landroid/net/Uri;" />
-	</class>
-	<class name="android/provider/MediaStore$Files$FileColumns" since="11">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/MediaStore$MediaColumns" />
-		<field name="MEDIA_TYPE" />
-		<field name="MEDIA_TYPE_AUDIO" />
-		<field name="MEDIA_TYPE_IMAGE" />
-		<field name="MEDIA_TYPE_NONE" />
-		<field name="MEDIA_TYPE_PLAYLIST" />
-		<field name="MEDIA_TYPE_VIDEO" />
-		<field name="MIME_TYPE" />
-		<field name="PARENT" />
-		<field name="TITLE" />
-	</class>
-	<class name="android/provider/MediaStore$Images" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/provider/MediaStore$Images$ImageColumns" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/MediaStore$MediaColumns" />
-		<field name="BUCKET_DISPLAY_NAME" />
-		<field name="BUCKET_ID" />
-		<field name="DATE_TAKEN" />
-		<field name="DESCRIPTION" />
-		<field name="IS_PRIVATE" />
-		<field name="LATITUDE" />
-		<field name="LONGITUDE" />
-		<field name="MINI_THUMB_MAGIC" />
-		<field name="ORIENTATION" />
-		<field name="PICASA_ID" />
-	</class>
-	<class name="android/provider/MediaStore$Images$Media" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/MediaStore$Images$ImageColumns" />
-		<method name="&lt;init>()V" />
-		<method name="getBitmap(Landroid/content/ContentResolver;Landroid/net/Uri;)Landroid/graphics/Bitmap;" />
-		<method name="getContentUri(Ljava/lang/String;)Landroid/net/Uri;" />
-		<method name="insertImage(Landroid/content/ContentResolver;Landroid/graphics/Bitmap;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="insertImage(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="query(Landroid/content/ContentResolver;Landroid/net/Uri;[Ljava/lang/String;)Landroid/database/Cursor;" />
-		<method name="query(Landroid/content/ContentResolver;Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;" />
-		<method name="query(Landroid/content/ContentResolver;Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;" />
-		<field name="CONTENT_TYPE" />
-		<field name="DEFAULT_SORT_ORDER" />
-		<field name="EXTERNAL_CONTENT_URI" />
-		<field name="INTERNAL_CONTENT_URI" />
-	</class>
-	<class name="android/provider/MediaStore$Images$Thumbnails" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<method name="&lt;init>()V" />
-		<method name="cancelThumbnailRequest(Landroid/content/ContentResolver;J)V" since="5" />
-		<method name="cancelThumbnailRequest(Landroid/content/ContentResolver;JJ)V" since="8" />
-		<method name="getContentUri(Ljava/lang/String;)Landroid/net/Uri;" />
-		<method name="getThumbnail(Landroid/content/ContentResolver;JILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;" since="5" />
-		<method name="getThumbnail(Landroid/content/ContentResolver;JJILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;" since="8" />
-		<method name="query(Landroid/content/ContentResolver;Landroid/net/Uri;[Ljava/lang/String;)Landroid/database/Cursor;" />
-		<method name="queryMiniThumbnail(Landroid/content/ContentResolver;JI[Ljava/lang/String;)Landroid/database/Cursor;" />
-		<method name="queryMiniThumbnails(Landroid/content/ContentResolver;Landroid/net/Uri;I[Ljava/lang/String;)Landroid/database/Cursor;" />
-		<field name="DATA" />
-		<field name="DEFAULT_SORT_ORDER" />
-		<field name="EXTERNAL_CONTENT_URI" />
-		<field name="FULL_SCREEN_KIND" />
-		<field name="HEIGHT" />
-		<field name="IMAGE_ID" />
-		<field name="INTERNAL_CONTENT_URI" />
-		<field name="KIND" />
-		<field name="MICRO_KIND" />
-		<field name="MINI_KIND" />
-		<field name="THUMB_DATA" since="5" />
-		<field name="WIDTH" />
-	</class>
-	<class name="android/provider/MediaStore$MediaColumns" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<field name="DATA" />
-		<field name="DATE_ADDED" />
-		<field name="DATE_MODIFIED" />
-		<field name="DISPLAY_NAME" />
-		<field name="HEIGHT" since="16" />
-		<field name="MIME_TYPE" />
-		<field name="SIZE" />
-		<field name="TITLE" />
-		<field name="WIDTH" since="16" />
-	</class>
-	<class name="android/provider/MediaStore$Video" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="query(Landroid/content/ContentResolver;Landroid/net/Uri;[Ljava/lang/String;)Landroid/database/Cursor;" />
-		<field name="DEFAULT_SORT_ORDER" />
-	</class>
-	<class name="android/provider/MediaStore$Video$Media" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/MediaStore$Video$VideoColumns" />
-		<method name="&lt;init>()V" />
-		<method name="getContentUri(Ljava/lang/String;)Landroid/net/Uri;" />
-		<field name="CONTENT_TYPE" />
-		<field name="DEFAULT_SORT_ORDER" />
-		<field name="EXTERNAL_CONTENT_URI" />
-		<field name="INTERNAL_CONTENT_URI" />
-	</class>
-	<class name="android/provider/MediaStore$Video$Thumbnails" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<method name="&lt;init>()V" />
-		<method name="cancelThumbnailRequest(Landroid/content/ContentResolver;J)V" />
-		<method name="cancelThumbnailRequest(Landroid/content/ContentResolver;JJ)V" since="8" />
-		<method name="getContentUri(Ljava/lang/String;)Landroid/net/Uri;" />
-		<method name="getThumbnail(Landroid/content/ContentResolver;JILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;" />
-		<method name="getThumbnail(Landroid/content/ContentResolver;JJILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;" since="8" />
-		<field name="DATA" />
-		<field name="DEFAULT_SORT_ORDER" />
-		<field name="EXTERNAL_CONTENT_URI" />
-		<field name="FULL_SCREEN_KIND" />
-		<field name="HEIGHT" />
-		<field name="INTERNAL_CONTENT_URI" />
-		<field name="KIND" />
-		<field name="MICRO_KIND" />
-		<field name="MINI_KIND" />
-		<field name="VIDEO_ID" />
-		<field name="WIDTH" />
-	</class>
-	<class name="android/provider/MediaStore$Video$VideoColumns" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/MediaStore$MediaColumns" />
-		<field name="ALBUM" />
-		<field name="ARTIST" />
-		<field name="BOOKMARK" since="3" />
-		<field name="BUCKET_DISPLAY_NAME" since="3" />
-		<field name="BUCKET_ID" since="3" />
-		<field name="CATEGORY" />
-		<field name="DATE_TAKEN" />
-		<field name="DESCRIPTION" />
-		<field name="DURATION" />
-		<field name="IS_PRIVATE" />
-		<field name="LANGUAGE" />
-		<field name="LATITUDE" />
-		<field name="LONGITUDE" />
-		<field name="MINI_THUMB_MAGIC" />
-		<field name="RESOLUTION" />
-		<field name="TAGS" />
-	</class>
-	<class name="android/provider/OpenableColumns" since="1">
-		<extends name="java/lang/Object" />
-		<field name="DISPLAY_NAME" />
-		<field name="SIZE" />
-	</class>
-	<class name="android/provider/SearchRecentSuggestions" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Context;Ljava/lang/String;I)V" />
-		<method name="clearHistory()V" />
-		<method name="saveRecentQuery(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="truncateHistory(Landroid/content/ContentResolver;I)V" />
-		<field name="QUERIES_PROJECTION_1LINE" />
-		<field name="QUERIES_PROJECTION_2LINE" />
-		<field name="QUERIES_PROJECTION_DATE_INDEX" />
-		<field name="QUERIES_PROJECTION_DISPLAY1_INDEX" />
-		<field name="QUERIES_PROJECTION_DISPLAY2_INDEX" />
-		<field name="QUERIES_PROJECTION_QUERY_INDEX" />
-	</class>
-	<class name="android/provider/Settings" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="ACTION_ACCESSIBILITY_SETTINGS" since="5" />
-		<field name="ACTION_ADD_ACCOUNT" since="8" />
-		<field name="ACTION_AIRPLANE_MODE_SETTINGS" since="3" />
-		<field name="ACTION_APN_SETTINGS" />
-		<field name="ACTION_APPLICATION_DETAILS_SETTINGS" since="9" />
-		<field name="ACTION_APPLICATION_DEVELOPMENT_SETTINGS" since="3" />
-		<field name="ACTION_APPLICATION_SETTINGS" />
-		<field name="ACTION_BLUETOOTH_SETTINGS" />
-		<field name="ACTION_CAPTIONING_SETTINGS" since="19" />
-		<field name="ACTION_DATA_ROAMING_SETTINGS" since="3" />
-		<field name="ACTION_DATE_SETTINGS" />
-		<field name="ACTION_DEVICE_INFO_SETTINGS" since="8" />
-		<field name="ACTION_DISPLAY_SETTINGS" />
-		<field name="ACTION_DREAM_SETTINGS" since="18" />
-		<field name="ACTION_INPUT_METHOD_SETTINGS" since="3" />
-		<field name="ACTION_INPUT_METHOD_SUBTYPE_SETTINGS" since="11" />
-		<field name="ACTION_INTERNAL_STORAGE_SETTINGS" since="3" />
-		<field name="ACTION_LOCALE_SETTINGS" />
-		<field name="ACTION_LOCATION_SOURCE_SETTINGS" />
-		<field name="ACTION_MANAGE_ALL_APPLICATIONS_SETTINGS" since="9" />
-		<field name="ACTION_MANAGE_APPLICATIONS_SETTINGS" since="3" />
-		<field name="ACTION_MEMORY_CARD_SETTINGS" since="3" />
-		<field name="ACTION_NETWORK_OPERATOR_SETTINGS" since="3" />
-		<field name="ACTION_NFCSHARING_SETTINGS" since="14" />
-		<field name="ACTION_NFC_PAYMENT_SETTINGS" since="19" />
-		<field name="ACTION_NFC_SETTINGS" since="16" />
-		<field name="ACTION_PRINT_SETTINGS" since="19" />
-		<field name="ACTION_PRIVACY_SETTINGS" since="5" />
-		<field name="ACTION_QUICK_LAUNCH_SETTINGS" since="3" />
-		<field name="ACTION_SEARCH_SETTINGS" since="8" />
-		<field name="ACTION_SECURITY_SETTINGS" />
-		<field name="ACTION_SETTINGS" />
-		<field name="ACTION_SOUND_SETTINGS" />
-		<field name="ACTION_SYNC_SETTINGS" since="3" />
-		<field name="ACTION_USER_DICTIONARY_SETTINGS" since="3" />
-		<field name="ACTION_WIFI_IP_SETTINGS" since="3" />
-		<field name="ACTION_WIFI_SETTINGS" />
-		<field name="ACTION_WIRELESS_SETTINGS" />
-		<field name="AUTHORITY" />
-		<field name="EXTRA_ACCOUNT_TYPES" since="18" />
-		<field name="EXTRA_AUTHORITIES" since="8" />
-		<field name="EXTRA_INPUT_METHOD_ID" since="11" />
-	</class>
-	<class name="android/provider/Settings$Global" since="17">
-		<extends name="android/provider/Settings$NameValueTable" />
-		<method name="&lt;init>()V" />
-		<method name="getFloat(Landroid/content/ContentResolver;Ljava/lang/String;)F" />
-		<method name="getFloat(Landroid/content/ContentResolver;Ljava/lang/String;F)F" />
-		<method name="getInt(Landroid/content/ContentResolver;Ljava/lang/String;)I" />
-		<method name="getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I" />
-		<method name="getLong(Landroid/content/ContentResolver;Ljava/lang/String;)J" />
-		<method name="getLong(Landroid/content/ContentResolver;Ljava/lang/String;J)J" />
-		<method name="getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getUriFor(Ljava/lang/String;)Landroid/net/Uri;" />
-		<method name="putFloat(Landroid/content/ContentResolver;Ljava/lang/String;F)Z" />
-		<method name="putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z" />
-		<method name="putLong(Landroid/content/ContentResolver;Ljava/lang/String;J)Z" />
-		<method name="putString(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;)Z" />
-		<field name="ADB_ENABLED" />
-		<field name="AIRPLANE_MODE_ON" />
-		<field name="AIRPLANE_MODE_RADIOS" />
-		<field name="ALWAYS_FINISH_ACTIVITIES" />
-		<field name="ANIMATOR_DURATION_SCALE" />
-		<field name="AUTO_TIME" />
-		<field name="AUTO_TIME_ZONE" />
-		<field name="BLUETOOTH_ON" />
-		<field name="CONTENT_URI" />
-		<field name="DATA_ROAMING" />
-		<field name="DEBUG_APP" />
-		<field name="DEVELOPMENT_SETTINGS_ENABLED" />
-		<field name="DEVICE_PROVISIONED" />
-		<field name="HTTP_PROXY" />
-		<field name="INSTALL_NON_MARKET_APPS" />
-		<field name="MODE_RINGER" />
-		<field name="NETWORK_PREFERENCE" />
-		<field name="RADIO_BLUETOOTH" />
-		<field name="RADIO_CELL" />
-		<field name="RADIO_NFC" />
-		<field name="RADIO_WIFI" />
-		<field name="SHOW_PROCESSES" />
-		<field name="STAY_ON_WHILE_PLUGGED_IN" />
-		<field name="SYS_PROP_SETTING_VERSION" />
-		<field name="TRANSITION_ANIMATION_SCALE" />
-		<field name="USB_MASS_STORAGE_ENABLED" />
-		<field name="USE_GOOGLE_MAIL" />
-		<field name="WAIT_FOR_DEBUGGER" />
-		<field name="WIFI_MAX_DHCP_RETRY_COUNT" />
-		<field name="WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS" />
-		<field name="WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON" />
-		<field name="WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY" />
-		<field name="WIFI_NUM_OPEN_NETWORKS_KEPT" />
-		<field name="WIFI_ON" />
-		<field name="WIFI_SLEEP_POLICY" />
-		<field name="WIFI_SLEEP_POLICY_DEFAULT" />
-		<field name="WIFI_SLEEP_POLICY_NEVER" />
-		<field name="WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED" />
-		<field name="WIFI_WATCHDOG_ON" />
-		<field name="WINDOW_ANIMATION_SCALE" />
-	</class>
-	<class name="android/provider/Settings$NameValueTable" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<method name="&lt;init>()V" />
-		<method name="getUriFor(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;" />
-		<method name="putString(Landroid/content/ContentResolver;Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;)Z" />
-		<field name="NAME" />
-		<field name="VALUE" />
-	</class>
-	<class name="android/provider/Settings$Secure" since="3">
-		<extends name="android/provider/Settings$NameValueTable" />
-		<method name="&lt;init>()V" />
-		<method name="getFloat(Landroid/content/ContentResolver;Ljava/lang/String;)F" />
-		<method name="getFloat(Landroid/content/ContentResolver;Ljava/lang/String;F)F" />
-		<method name="getInt(Landroid/content/ContentResolver;Ljava/lang/String;)I" />
-		<method name="getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I" />
-		<method name="getLong(Landroid/content/ContentResolver;Ljava/lang/String;)J" />
-		<method name="getLong(Landroid/content/ContentResolver;Ljava/lang/String;J)J" />
-		<method name="getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getUriFor(Ljava/lang/String;)Landroid/net/Uri;" />
-		<method name="isLocationProviderEnabled(Landroid/content/ContentResolver;Ljava/lang/String;)Z" since="8" />
-		<method name="putFloat(Landroid/content/ContentResolver;Ljava/lang/String;F)Z" />
-		<method name="putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z" />
-		<method name="putLong(Landroid/content/ContentResolver;Ljava/lang/String;J)Z" />
-		<method name="putString(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;)Z" />
-		<method name="setLocationProviderEnabled(Landroid/content/ContentResolver;Ljava/lang/String;Z)V" since="8" />
-		<field name="ACCESSIBILITY_DISPLAY_INVERSION_ENABLED" since="21" />
-		<field name="ACCESSIBILITY_ENABLED" since="4" />
-		<field name="ACCESSIBILITY_SPEAK_PASSWORD" since="15" />
-		<field name="ADB_ENABLED" />
-		<field name="ALLOWED_GEOLOCATION_ORIGINS" since="8" />
-		<field name="ALLOW_MOCK_LOCATION" />
-		<field name="ANDROID_ID" />
-		<field name="BACKGROUND_DATA" />
-		<field name="BLUETOOTH_ON" />
-		<field name="CONTENT_URI" />
-		<field name="DATA_ROAMING" />
-		<field name="DEFAULT_INPUT_METHOD" />
-		<field name="DEVELOPMENT_SETTINGS_ENABLED" since="16" />
-		<field name="DEVICE_PROVISIONED" />
-		<field name="ENABLED_ACCESSIBILITY_SERVICES" since="4" />
-		<field name="ENABLED_INPUT_METHODS" />
-		<field name="HTTP_PROXY" />
-		<field name="INPUT_METHOD_SELECTOR_VISIBILITY" since="11" />
-		<field name="INSTALL_NON_MARKET_APPS" />
-		<field name="LOCATION_MODE" since="19" />
-		<field name="LOCATION_MODE_BATTERY_SAVING" since="19" />
-		<field name="LOCATION_MODE_HIGH_ACCURACY" since="19" />
-		<field name="LOCATION_MODE_OFF" since="19" />
-		<field name="LOCATION_MODE_SENSORS_ONLY" since="19" />
-		<field name="LOCATION_PROVIDERS_ALLOWED" />
-		<field name="LOCK_PATTERN_ENABLED" since="8" />
-		<field name="LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED" since="8" />
-		<field name="LOCK_PATTERN_VISIBLE" since="8" />
-		<field name="LOGGING_ID" />
-		<field name="NETWORK_PREFERENCE" />
-		<field name="PARENTAL_CONTROL_ENABLED" />
-		<field name="PARENTAL_CONTROL_LAST_UPDATE" />
-		<field name="PARENTAL_CONTROL_REDIRECT_URL" />
-		<field name="SELECTED_INPUT_METHOD_SUBTYPE" since="11" />
-		<field name="SETTINGS_CLASSNAME" />
-		<field name="SYS_PROP_SETTING_VERSION" />
-		<field name="TOUCH_EXPLORATION_ENABLED" since="14" />
-		<field name="TTS_DEFAULT_COUNTRY" since="4" />
-		<field name="TTS_DEFAULT_LANG" since="4" />
-		<field name="TTS_DEFAULT_PITCH" since="4" />
-		<field name="TTS_DEFAULT_RATE" since="4" />
-		<field name="TTS_DEFAULT_SYNTH" since="4" />
-		<field name="TTS_DEFAULT_VARIANT" since="4" />
-		<field name="TTS_ENABLED_PLUGINS" since="8" />
-		<field name="TTS_USE_DEFAULTS" since="4" />
-		<field name="USB_MASS_STORAGE_ENABLED" />
-		<field name="USE_GOOGLE_MAIL" />
-		<field name="WIFI_MAX_DHCP_RETRY_COUNT" />
-		<field name="WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS" />
-		<field name="WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON" />
-		<field name="WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY" />
-		<field name="WIFI_NUM_OPEN_NETWORKS_KEPT" />
-		<field name="WIFI_ON" />
-		<field name="WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE" />
-		<field name="WIFI_WATCHDOG_AP_COUNT" />
-		<field name="WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS" />
-		<field name="WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED" />
-		<field name="WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS" />
-		<field name="WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT" />
-		<field name="WIFI_WATCHDOG_MAX_AP_CHECKS" />
-		<field name="WIFI_WATCHDOG_ON" />
-		<field name="WIFI_WATCHDOG_PING_COUNT" />
-		<field name="WIFI_WATCHDOG_PING_DELAY_MS" />
-		<field name="WIFI_WATCHDOG_PING_TIMEOUT_MS" />
-		<field name="WIFI_WATCHDOG_WATCH_LIST" />
-	</class>
-	<class name="android/provider/Settings$SettingNotFoundException" since="1">
-		<extends name="android/util/AndroidException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/provider/Settings$System" since="1">
-		<extends name="android/provider/Settings$NameValueTable" />
-		<method name="&lt;init>()V" />
-		<method name="getConfiguration(Landroid/content/ContentResolver;Landroid/content/res/Configuration;)V" />
-		<method name="getFloat(Landroid/content/ContentResolver;Ljava/lang/String;)F" />
-		<method name="getFloat(Landroid/content/ContentResolver;Ljava/lang/String;F)F" />
-		<method name="getInt(Landroid/content/ContentResolver;Ljava/lang/String;)I" />
-		<method name="getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I" />
-		<method name="getLong(Landroid/content/ContentResolver;Ljava/lang/String;)J" since="3" />
-		<method name="getLong(Landroid/content/ContentResolver;Ljava/lang/String;J)J" since="3" />
-		<method name="getShowGTalkServiceStatus(Landroid/content/ContentResolver;)Z" />
-		<method name="getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getUriFor(Ljava/lang/String;)Landroid/net/Uri;" />
-		<method name="putConfiguration(Landroid/content/ContentResolver;Landroid/content/res/Configuration;)Z" />
-		<method name="putFloat(Landroid/content/ContentResolver;Ljava/lang/String;F)Z" />
-		<method name="putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z" />
-		<method name="putLong(Landroid/content/ContentResolver;Ljava/lang/String;J)Z" since="3" />
-		<method name="putString(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;)Z" />
-		<method name="setShowGTalkServiceStatus(Landroid/content/ContentResolver;Z)V" />
-		<field name="ACCELEROMETER_ROTATION" since="3" />
-		<field name="ADB_ENABLED" />
-		<field name="AIRPLANE_MODE_ON" />
-		<field name="AIRPLANE_MODE_RADIOS" />
-		<field name="ALARM_ALERT" since="5" />
-		<field name="ALWAYS_FINISH_ACTIVITIES" />
-		<field name="ANDROID_ID" />
-		<field name="ANIMATOR_DURATION_SCALE" since="16" />
-		<field name="APPEND_FOR_LAST_AUDIBLE" />
-		<field name="AUTO_TIME" />
-		<field name="AUTO_TIME_ZONE" since="11" />
-		<field name="BLUETOOTH_DISCOVERABILITY" />
-		<field name="BLUETOOTH_DISCOVERABILITY_TIMEOUT" />
-		<field name="BLUETOOTH_ON" />
-		<field name="CONTENT_URI" />
-		<field name="DATA_ROAMING" />
-		<field name="DATE_FORMAT" />
-		<field name="DEBUG_APP" />
-		<field name="DEFAULT_ALARM_ALERT_URI" since="5" />
-		<field name="DEFAULT_NOTIFICATION_URI" />
-		<field name="DEFAULT_RINGTONE_URI" />
-		<field name="DEVICE_PROVISIONED" />
-		<field name="DIM_SCREEN" />
-		<field name="DTMF_TONE_WHEN_DIALING" />
-		<field name="END_BUTTON_BEHAVIOR" />
-		<field name="FONT_SCALE" />
-		<field name="HAPTIC_FEEDBACK_ENABLED" since="3" />
-		<field name="HTTP_PROXY" />
-		<field name="INSTALL_NON_MARKET_APPS" />
-		<field name="LOCATION_PROVIDERS_ALLOWED" />
-		<field name="LOCK_PATTERN_ENABLED" />
-		<field name="LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED" since="3" />
-		<field name="LOCK_PATTERN_VISIBLE" />
-		<field name="LOGGING_ID" />
-		<field name="MODE_RINGER" />
-		<field name="MODE_RINGER_STREAMS_AFFECTED" />
-		<field name="MUTE_STREAMS_AFFECTED" />
-		<field name="NETWORK_PREFERENCE" />
-		<field name="NEXT_ALARM_FORMATTED" />
-		<field name="NOTIFICATION_SOUND" />
-		<field name="PARENTAL_CONTROL_ENABLED" />
-		<field name="PARENTAL_CONTROL_LAST_UPDATE" />
-		<field name="PARENTAL_CONTROL_REDIRECT_URL" />
-		<field name="RADIO_BLUETOOTH" />
-		<field name="RADIO_CELL" />
-		<field name="RADIO_NFC" since="14" />
-		<field name="RADIO_WIFI" />
-		<field name="RINGTONE" />
-		<field name="SCREEN_BRIGHTNESS" />
-		<field name="SCREEN_BRIGHTNESS_MODE" since="8" />
-		<field name="SCREEN_BRIGHTNESS_MODE_AUTOMATIC" since="8" />
-		<field name="SCREEN_BRIGHTNESS_MODE_MANUAL" since="8" />
-		<field name="SCREEN_OFF_TIMEOUT" />
-		<field name="SETTINGS_CLASSNAME" />
-		<field name="SETUP_WIZARD_HAS_RUN" />
-		<field name="SHOW_GTALK_SERVICE_STATUS" />
-		<field name="SHOW_PROCESSES" />
-		<field name="SHOW_WEB_SUGGESTIONS" since="4" />
-		<field name="SOUND_EFFECTS_ENABLED" />
-		<field name="STAY_ON_WHILE_PLUGGED_IN" />
-		<field name="SYS_PROP_SETTING_VERSION" />
-		<field name="TEXT_AUTO_CAPS" />
-		<field name="TEXT_AUTO_PUNCTUATE" />
-		<field name="TEXT_AUTO_REPLACE" />
-		<field name="TEXT_SHOW_PASSWORD" />
-		<field name="TIME_12_24" />
-		<field name="TRANSITION_ANIMATION_SCALE" />
-		<field name="USB_MASS_STORAGE_ENABLED" />
-		<field name="USER_ROTATION" since="11" />
-		<field name="USE_GOOGLE_MAIL" />
-		<field name="VIBRATE_ON" />
-		<field name="VOLUME_ALARM" />
-		<field name="VOLUME_BLUETOOTH_SCO" since="8" />
-		<field name="VOLUME_MUSIC" />
-		<field name="VOLUME_NOTIFICATION" since="3" />
-		<field name="VOLUME_RING" />
-		<field name="VOLUME_SETTINGS" />
-		<field name="VOLUME_SYSTEM" />
-		<field name="VOLUME_VOICE" />
-		<field name="WAIT_FOR_DEBUGGER" />
-		<field name="WALLPAPER_ACTIVITY" />
-		<field name="WIFI_MAX_DHCP_RETRY_COUNT" since="3" />
-		<field name="WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS" since="3" />
-		<field name="WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON" />
-		<field name="WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY" />
-		<field name="WIFI_NUM_OPEN_NETWORKS_KEPT" />
-		<field name="WIFI_ON" />
-		<field name="WIFI_SLEEP_POLICY" since="3" />
-		<field name="WIFI_SLEEP_POLICY_DEFAULT" since="3" />
-		<field name="WIFI_SLEEP_POLICY_NEVER" since="3" />
-		<field name="WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED" since="3" />
-		<field name="WIFI_STATIC_DNS1" />
-		<field name="WIFI_STATIC_DNS2" />
-		<field name="WIFI_STATIC_GATEWAY" />
-		<field name="WIFI_STATIC_IP" />
-		<field name="WIFI_STATIC_NETMASK" />
-		<field name="WIFI_USE_STATIC_IP" />
-		<field name="WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE" />
-		<field name="WIFI_WATCHDOG_AP_COUNT" />
-		<field name="WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS" />
-		<field name="WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED" />
-		<field name="WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS" />
-		<field name="WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT" />
-		<field name="WIFI_WATCHDOG_MAX_AP_CHECKS" />
-		<field name="WIFI_WATCHDOG_ON" />
-		<field name="WIFI_WATCHDOG_PING_COUNT" />
-		<field name="WIFI_WATCHDOG_PING_DELAY_MS" />
-		<field name="WIFI_WATCHDOG_PING_TIMEOUT_MS" />
-		<field name="WINDOW_ANIMATION_SCALE" />
-	</class>
-	<class name="android/provider/SyncStateContract" since="5">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/provider/SyncStateContract$Columns" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<field name="ACCOUNT_NAME" />
-		<field name="ACCOUNT_TYPE" />
-		<field name="DATA" />
-	</class>
-	<class name="android/provider/SyncStateContract$Constants" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/SyncStateContract$Columns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_DIRECTORY" />
-	</class>
-	<class name="android/provider/SyncStateContract$Helpers" since="5">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="get(Landroid/content/ContentProviderClient;Landroid/net/Uri;Landroid/accounts/Account;)[B" />
-		<method name="getWithUri(Landroid/content/ContentProviderClient;Landroid/net/Uri;Landroid/accounts/Account;)Landroid/util/Pair;" />
-		<method name="insert(Landroid/content/ContentProviderClient;Landroid/net/Uri;Landroid/accounts/Account;[B)Landroid/net/Uri;" />
-		<method name="newSetOperation(Landroid/net/Uri;Landroid/accounts/Account;[B)Landroid/content/ContentProviderOperation;" />
-		<method name="newUpdateOperation(Landroid/net/Uri;[B)Landroid/content/ContentProviderOperation;" />
-		<method name="set(Landroid/content/ContentProviderClient;Landroid/net/Uri;Landroid/accounts/Account;[B)V" />
-		<method name="update(Landroid/content/ContentProviderClient;Landroid/net/Uri;[B)V" />
-	</class>
-	<class name="android/provider/Telephony" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/provider/Telephony$BaseMmsColumns" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<field name="CONTENT_CLASS" />
-		<field name="CONTENT_LOCATION" />
-		<field name="CONTENT_TYPE" />
-		<field name="DATE" />
-		<field name="DATE_SENT" />
-		<field name="DELIVERY_REPORT" />
-		<field name="DELIVERY_TIME" />
-		<field name="EXPIRY" />
-		<field name="LOCKED" />
-		<field name="MESSAGE_BOX" />
-		<field name="MESSAGE_BOX_ALL" />
-		<field name="MESSAGE_BOX_DRAFTS" />
-		<field name="MESSAGE_BOX_INBOX" />
-		<field name="MESSAGE_BOX_OUTBOX" />
-		<field name="MESSAGE_BOX_SENT" />
-		<field name="MESSAGE_CLASS" />
-		<field name="MESSAGE_ID" />
-		<field name="MESSAGE_SIZE" />
-		<field name="MESSAGE_TYPE" />
-		<field name="MMS_VERSION" />
-		<field name="PRIORITY" />
-		<field name="READ" />
-		<field name="READ_REPORT" />
-		<field name="READ_STATUS" />
-		<field name="REPORT_ALLOWED" />
-		<field name="RESPONSE_STATUS" />
-		<field name="RESPONSE_TEXT" />
-		<field name="RETRIEVE_STATUS" />
-		<field name="RETRIEVE_TEXT" />
-		<field name="RETRIEVE_TEXT_CHARSET" />
-		<field name="SEEN" />
-		<field name="STATUS" />
-		<field name="SUBJECT" />
-		<field name="SUBJECT_CHARSET" />
-		<field name="TEXT_ONLY" />
-		<field name="THREAD_ID" />
-		<field name="TRANSACTION_ID" />
-	</class>
-	<class name="android/provider/Telephony$CanonicalAddressesColumns" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<field name="ADDRESS" />
-	</class>
-	<class name="android/provider/Telephony$Carriers" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<method name="&lt;init>()V" />
-		<field name="APN" />
-		<field name="AUTH_TYPE" />
-		<field name="BEARER" />
-		<field name="CARRIER_ENABLED" />
-		<field name="CONTENT_URI" />
-		<field name="CURRENT" />
-		<field name="DEFAULT_SORT_ORDER" />
-		<field name="MCC" />
-		<field name="MMSC" />
-		<field name="MMSPORT" />
-		<field name="MMSPROXY" />
-		<field name="MNC" />
-		<field name="MVNO_MATCH_DATA" />
-		<field name="MVNO_TYPE" />
-		<field name="NAME" />
-		<field name="NUMERIC" />
-		<field name="PASSWORD" />
-		<field name="PORT" />
-		<field name="PROTOCOL" />
-		<field name="PROXY" />
-		<field name="ROAMING_PROTOCOL" />
-		<field name="SERVER" />
-		<field name="TYPE" />
-		<field name="USER" />
-	</class>
-	<class name="android/provider/Telephony$Mms" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/Telephony$BaseMmsColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_URI" />
-		<field name="DEFAULT_SORT_ORDER" />
-		<field name="REPORT_REQUEST_URI" />
-		<field name="REPORT_STATUS_URI" />
-	</class>
-	<class name="android/provider/Telephony$Mms$Addr" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<method name="&lt;init>()V" />
-		<field name="ADDRESS" />
-		<field name="CHARSET" />
-		<field name="CONTACT_ID" />
-		<field name="MSG_ID" />
-		<field name="TYPE" />
-	</class>
-	<class name="android/provider/Telephony$Mms$Draft" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/Telephony$BaseMmsColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_URI" />
-		<field name="DEFAULT_SORT_ORDER" />
-	</class>
-	<class name="android/provider/Telephony$Mms$Inbox" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/Telephony$BaseMmsColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_URI" />
-		<field name="DEFAULT_SORT_ORDER" />
-	</class>
-	<class name="android/provider/Telephony$Mms$Intents" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_CHANGED_ACTION" />
-		<field name="DELETED_CONTENTS" />
-	</class>
-	<class name="android/provider/Telephony$Mms$Outbox" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/Telephony$BaseMmsColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_URI" />
-		<field name="DEFAULT_SORT_ORDER" />
-	</class>
-	<class name="android/provider/Telephony$Mms$Part" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CHARSET" />
-		<field name="CONTENT_DISPOSITION" />
-		<field name="CONTENT_ID" />
-		<field name="CONTENT_LOCATION" />
-		<field name="CONTENT_TYPE" />
-		<field name="CT_START" />
-		<field name="CT_TYPE" />
-		<field name="FILENAME" />
-		<field name="MSG_ID" />
-		<field name="NAME" />
-		<field name="SEQ" />
-		<field name="TEXT" />
-		<field name="_DATA" />
-	</class>
-	<class name="android/provider/Telephony$Mms$Rate" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_URI" />
-		<field name="SENT_TIME" />
-	</class>
-	<class name="android/provider/Telephony$Mms$Sent" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/Telephony$BaseMmsColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_URI" />
-		<field name="DEFAULT_SORT_ORDER" />
-	</class>
-	<class name="android/provider/Telephony$MmsSms" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_CONVERSATIONS_URI" />
-		<field name="CONTENT_DRAFT_URI" />
-		<field name="CONTENT_FILTER_BYPHONE_URI" />
-		<field name="CONTENT_LOCKED_URI" />
-		<field name="CONTENT_UNDELIVERED_URI" />
-		<field name="CONTENT_URI" />
-		<field name="ERR_TYPE_GENERIC" />
-		<field name="ERR_TYPE_GENERIC_PERMANENT" />
-		<field name="ERR_TYPE_MMS_PROTO_PERMANENT" />
-		<field name="ERR_TYPE_MMS_PROTO_TRANSIENT" />
-		<field name="ERR_TYPE_SMS_PROTO_PERMANENT" />
-		<field name="ERR_TYPE_SMS_PROTO_TRANSIENT" />
-		<field name="ERR_TYPE_TRANSPORT_FAILURE" />
-		<field name="MMS_PROTO" />
-		<field name="NO_ERROR" />
-		<field name="SEARCH_URI" />
-		<field name="SMS_PROTO" />
-		<field name="TYPE_DISCRIMINATOR_COLUMN" />
-	</class>
-	<class name="android/provider/Telephony$MmsSms$PendingMessages" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_URI" />
-		<field name="DUE_TIME" />
-		<field name="ERROR_CODE" />
-		<field name="ERROR_TYPE" />
-		<field name="LAST_TRY" />
-		<field name="MSG_ID" />
-		<field name="MSG_TYPE" />
-		<field name="PROTO_TYPE" />
-		<field name="RETRY_INDEX" />
-	</class>
-	<class name="android/provider/Telephony$Sms" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/Telephony$TextBasedSmsColumns" />
-		<method name="&lt;init>()V" />
-		<method name="getDefaultSmsPackage(Landroid/content/Context;)Ljava/lang/String;" />
-		<field name="CONTENT_URI" />
-		<field name="DEFAULT_SORT_ORDER" />
-	</class>
-	<class name="android/provider/Telephony$Sms$Conversations" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/Telephony$TextBasedSmsColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_URI" />
-		<field name="DEFAULT_SORT_ORDER" />
-		<field name="MESSAGE_COUNT" />
-		<field name="SNIPPET" />
-	</class>
-	<class name="android/provider/Telephony$Sms$Draft" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/Telephony$TextBasedSmsColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_URI" />
-		<field name="DEFAULT_SORT_ORDER" />
-	</class>
-	<class name="android/provider/Telephony$Sms$Inbox" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/Telephony$TextBasedSmsColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_URI" />
-		<field name="DEFAULT_SORT_ORDER" />
-	</class>
-	<class name="android/provider/Telephony$Sms$Intents" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getMessagesFromIntent(Landroid/content/Intent;)[Landroid/telephony/SmsMessage;" />
-		<field name="ACTION_CHANGE_DEFAULT" />
-		<field name="DATA_SMS_RECEIVED_ACTION" />
-		<field name="EXTRA_PACKAGE_NAME" />
-		<field name="RESULT_SMS_DUPLICATED" />
-		<field name="RESULT_SMS_GENERIC_ERROR" />
-		<field name="RESULT_SMS_HANDLED" />
-		<field name="RESULT_SMS_OUT_OF_MEMORY" />
-		<field name="RESULT_SMS_UNSUPPORTED" />
-		<field name="SIM_FULL_ACTION" />
-		<field name="SMS_CB_RECEIVED_ACTION" />
-		<field name="SMS_DELIVER_ACTION" />
-		<field name="SMS_EMERGENCY_CB_RECEIVED_ACTION" />
-		<field name="SMS_RECEIVED_ACTION" />
-		<field name="SMS_REJECTED_ACTION" />
-		<field name="SMS_SERVICE_CATEGORY_PROGRAM_DATA_RECEIVED_ACTION" />
-		<field name="WAP_PUSH_DELIVER_ACTION" />
-		<field name="WAP_PUSH_RECEIVED_ACTION" />
-	</class>
-	<class name="android/provider/Telephony$Sms$Outbox" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/Telephony$TextBasedSmsColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_URI" />
-		<field name="DEFAULT_SORT_ORDER" />
-	</class>
-	<class name="android/provider/Telephony$Sms$Sent" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/Telephony$TextBasedSmsColumns" />
-		<method name="&lt;init>()V" />
-		<field name="CONTENT_URI" />
-		<field name="DEFAULT_SORT_ORDER" />
-	</class>
-	<class name="android/provider/Telephony$TextBasedSmsColumns" since="19">
-		<extends name="java/lang/Object" />
-		<field name="ADDRESS" />
-		<field name="BODY" />
-		<field name="DATE" />
-		<field name="DATE_SENT" />
-		<field name="ERROR_CODE" />
-		<field name="LOCKED" />
-		<field name="MESSAGE_TYPE_ALL" />
-		<field name="MESSAGE_TYPE_DRAFT" />
-		<field name="MESSAGE_TYPE_FAILED" />
-		<field name="MESSAGE_TYPE_INBOX" />
-		<field name="MESSAGE_TYPE_OUTBOX" />
-		<field name="MESSAGE_TYPE_QUEUED" />
-		<field name="MESSAGE_TYPE_SENT" />
-		<field name="PERSON" />
-		<field name="PROTOCOL" />
-		<field name="READ" />
-		<field name="REPLY_PATH_PRESENT" />
-		<field name="SEEN" />
-		<field name="SERVICE_CENTER" />
-		<field name="STATUS" />
-		<field name="STATUS_COMPLETE" />
-		<field name="STATUS_FAILED" />
-		<field name="STATUS_NONE" />
-		<field name="STATUS_PENDING" />
-		<field name="SUBJECT" />
-		<field name="THREAD_ID" />
-		<field name="TYPE" />
-	</class>
-	<class name="android/provider/Telephony$Threads" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/Telephony$ThreadsColumns" />
-		<method name="&lt;init>()V" />
-		<field name="BROADCAST_THREAD" />
-		<field name="COMMON_THREAD" />
-		<field name="CONTENT_URI" />
-		<field name="OBSOLETE_THREADS_URI" />
-	</class>
-	<class name="android/provider/Telephony$ThreadsColumns" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<field name="DATE" />
-		<field name="ERROR" />
-		<field name="HAS_ATTACHMENT" />
-		<field name="MESSAGE_COUNT" />
-		<field name="READ" />
-		<field name="RECIPIENT_IDS" />
-		<field name="SNIPPET" />
-		<field name="SNIPPET_CHARSET" />
-		<field name="TYPE" />
-	</class>
-	<class name="android/provider/UserDictionary" since="3">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="AUTHORITY" />
-		<field name="CONTENT_URI" />
-	</class>
-	<class name="android/provider/UserDictionary$Words" since="3">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<method name="&lt;init>()V" />
-		<method name="addWord(Landroid/content/Context;Ljava/lang/String;II)V" />
-		<method name="addWord(Landroid/content/Context;Ljava/lang/String;ILjava/lang/String;Ljava/util/Locale;)V" since="16" />
-		<field name="APP_ID" />
-		<field name="CONTENT_ITEM_TYPE" />
-		<field name="CONTENT_TYPE" />
-		<field name="CONTENT_URI" />
-		<field name="DEFAULT_SORT_ORDER" />
-		<field name="FREQUENCY" />
-		<field name="LOCALE" />
-		<field name="LOCALE_TYPE_ALL" />
-		<field name="LOCALE_TYPE_CURRENT" />
-		<field name="SHORTCUT" since="16" />
-		<field name="WORD" />
-		<field name="_ID" />
-	</class>
-	<class name="android/provider/VoicemailContract" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="ACTION_FETCH_VOICEMAIL" />
-		<field name="ACTION_NEW_VOICEMAIL" />
-		<field name="AUTHORITY" />
-		<field name="EXTRA_SELF_CHANGE" />
-		<field name="PARAM_KEY_SOURCE_PACKAGE" />
-	</class>
-	<class name="android/provider/VoicemailContract$Status" since="14">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<method name="&lt;init>()V" />
-		<method name="buildSourceUri(Ljava/lang/String;)Landroid/net/Uri;" />
-		<field name="CONFIGURATION_STATE" />
-		<field name="CONFIGURATION_STATE_CAN_BE_CONFIGURED" />
-		<field name="CONFIGURATION_STATE_NOT_CONFIGURED" />
-		<field name="CONFIGURATION_STATE_OK" />
-		<field name="CONTENT_URI" />
-		<field name="DATA_CHANNEL_STATE" />
-		<field name="DATA_CHANNEL_STATE_NO_CONNECTION" />
-		<field name="DATA_CHANNEL_STATE_OK" />
-		<field name="DIR_TYPE" />
-		<field name="ITEM_TYPE" />
-		<field name="NOTIFICATION_CHANNEL_STATE" />
-		<field name="NOTIFICATION_CHANNEL_STATE_MESSAGE_WAITING" />
-		<field name="NOTIFICATION_CHANNEL_STATE_NO_CONNECTION" />
-		<field name="NOTIFICATION_CHANNEL_STATE_OK" />
-		<field name="SETTINGS_URI" />
-		<field name="SOURCE_PACKAGE" />
-		<field name="VOICEMAIL_ACCESS_URI" />
-	</class>
-	<class name="android/provider/VoicemailContract$Voicemails" since="14">
-		<extends name="java/lang/Object" />
-		<implements name="android/provider/BaseColumns" />
-		<implements name="android/provider/OpenableColumns" />
-		<method name="&lt;init>()V" />
-		<method name="buildSourceUri(Ljava/lang/String;)Landroid/net/Uri;" />
-		<field name="CONTENT_URI" />
-		<field name="DATE" />
-		<field name="DIR_TYPE" />
-		<field name="DURATION" />
-		<field name="HAS_CONTENT" />
-		<field name="IS_READ" />
-		<field name="ITEM_TYPE" />
-		<field name="MIME_TYPE" />
-		<field name="NUMBER" />
-		<field name="SOURCE_DATA" />
-		<field name="SOURCE_PACKAGE" />
-	</class>
-	<class name="android/renderscript/Allocation" since="11">
-		<extends name="android/renderscript/BaseObj" />
-		<method name="&lt;init>()V" />
-		<method name="copy1DRangeFrom(IILandroid/renderscript/Allocation;I)V" since="14" />
-		<method name="copy1DRangeFrom(IILjava/lang/Object;)V" since="21" />
-		<method name="copy1DRangeFrom(II[B)V" />
-		<method name="copy1DRangeFrom(II[F)V" />
-		<method name="copy1DRangeFrom(II[I)V" />
-		<method name="copy1DRangeFrom(II[S)V" />
-		<method name="copy1DRangeFromUnchecked(IILjava/lang/Object;)V" since="21" />
-		<method name="copy1DRangeFromUnchecked(II[B)V" />
-		<method name="copy1DRangeFromUnchecked(II[F)V" />
-		<method name="copy1DRangeFromUnchecked(II[I)V" />
-		<method name="copy1DRangeFromUnchecked(II[S)V" />
-		<method name="copy2DRangeFrom(IIIILandroid/renderscript/Allocation;II)V" since="14" />
-		<method name="copy2DRangeFrom(IIIILjava/lang/Object;)V" since="21" />
-		<method name="copy2DRangeFrom(IIII[B)V" />
-		<method name="copy2DRangeFrom(IIII[F)V" />
-		<method name="copy2DRangeFrom(IIII[I)V" />
-		<method name="copy2DRangeFrom(IIII[S)V" />
-		<method name="copy2DRangeFrom(IILandroid/graphics/Bitmap;)V" />
-		<method name="copyFrom(Landroid/graphics/Bitmap;)V" />
-		<method name="copyFrom(Landroid/renderscript/Allocation;)V" since="18" />
-		<method name="copyFrom(Ljava/lang/Object;)V" since="21" />
-		<method name="copyFrom([B)V" />
-		<method name="copyFrom([F)V" />
-		<method name="copyFrom([I)V" />
-		<method name="copyFrom([Landroid/renderscript/BaseObj;)V" />
-		<method name="copyFrom([S)V" />
-		<method name="copyFromUnchecked(Ljava/lang/Object;)V" since="21" />
-		<method name="copyFromUnchecked([B)V" />
-		<method name="copyFromUnchecked([F)V" />
-		<method name="copyFromUnchecked([I)V" />
-		<method name="copyFromUnchecked([S)V" />
-		<method name="copyTo(Landroid/graphics/Bitmap;)V" />
-		<method name="copyTo(Ljava/lang/Object;)V" since="21" />
-		<method name="copyTo([B)V" />
-		<method name="copyTo([F)V" />
-		<method name="copyTo([I)V" />
-		<method name="copyTo([S)V" />
-		<method name="createCubemapFromBitmap(Landroid/renderscript/RenderScript;Landroid/graphics/Bitmap;)Landroid/renderscript/Allocation;" />
-		<method name="createCubemapFromBitmap(Landroid/renderscript/RenderScript;Landroid/graphics/Bitmap;Landroid/renderscript/Allocation$MipmapControl;I)Landroid/renderscript/Allocation;" />
-		<method name="createCubemapFromCubeFaces(Landroid/renderscript/RenderScript;Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;)Landroid/renderscript/Allocation;" />
-		<method name="createCubemapFromCubeFaces(Landroid/renderscript/RenderScript;Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;Landroid/renderscript/Allocation$MipmapControl;I)Landroid/renderscript/Allocation;" />
-		<method name="createFromBitmap(Landroid/renderscript/RenderScript;Landroid/graphics/Bitmap;)Landroid/renderscript/Allocation;" />
-		<method name="createFromBitmap(Landroid/renderscript/RenderScript;Landroid/graphics/Bitmap;Landroid/renderscript/Allocation$MipmapControl;I)Landroid/renderscript/Allocation;" />
-		<method name="createFromBitmapResource(Landroid/renderscript/RenderScript;Landroid/content/res/Resources;I)Landroid/renderscript/Allocation;" />
-		<method name="createFromBitmapResource(Landroid/renderscript/RenderScript;Landroid/content/res/Resources;ILandroid/renderscript/Allocation$MipmapControl;I)Landroid/renderscript/Allocation;" />
-		<method name="createFromString(Landroid/renderscript/RenderScript;Ljava/lang/String;I)Landroid/renderscript/Allocation;" />
-		<method name="createSized(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;I)Landroid/renderscript/Allocation;" />
-		<method name="createSized(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;II)Landroid/renderscript/Allocation;" />
-		<method name="createTyped(Landroid/renderscript/RenderScript;Landroid/renderscript/Type;)Landroid/renderscript/Allocation;" />
-		<method name="createTyped(Landroid/renderscript/RenderScript;Landroid/renderscript/Type;I)Landroid/renderscript/Allocation;" />
-		<method name="createTyped(Landroid/renderscript/RenderScript;Landroid/renderscript/Type;Landroid/renderscript/Allocation$MipmapControl;I)Landroid/renderscript/Allocation;" />
-		<method name="generateMipmaps()V" />
-		<method name="getBytesSize()I" since="16" />
-		<method name="getElement()Landroid/renderscript/Element;" since="16" />
-		<method name="getSurface()Landroid/view/Surface;" since="16" />
-		<method name="getType()Landroid/renderscript/Type;" />
-		<method name="getUsage()I" since="16" />
-		<method name="ioReceive()V" since="16" />
-		<method name="ioSend()V" since="16" />
-		<method name="resize(I)V" />
-		<method name="setFromFieldPacker(IILandroid/renderscript/FieldPacker;)V" />
-		<method name="setFromFieldPacker(ILandroid/renderscript/FieldPacker;)V" />
-		<method name="setOnBufferAvailableListener(Landroid/renderscript/Allocation$OnBufferAvailableListener;)V" since="19" />
-		<method name="setSurface(Landroid/view/Surface;)V" since="16" />
-		<method name="syncAll(I)V" />
-		<field name="USAGE_GRAPHICS_CONSTANTS" />
-		<field name="USAGE_GRAPHICS_RENDER_TARGET" since="14" />
-		<field name="USAGE_GRAPHICS_TEXTURE" />
-		<field name="USAGE_GRAPHICS_VERTEX" />
-		<field name="USAGE_IO_INPUT" since="16" />
-		<field name="USAGE_IO_OUTPUT" since="16" />
-		<field name="USAGE_SCRIPT" />
-		<field name="USAGE_SHARED" since="18" />
-	</class>
-	<class name="android/renderscript/Allocation$MipmapControl" since="11">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/renderscript/Allocation$MipmapControl;" />
-		<method name="values()[Landroid/renderscript/Allocation$MipmapControl;" />
-		<field name="MIPMAP_FULL" />
-		<field name="MIPMAP_NONE" />
-		<field name="MIPMAP_ON_SYNC_TO_TEXTURE" />
-	</class>
-	<class name="android/renderscript/Allocation$OnBufferAvailableListener" since="19">
-		<extends name="java/lang/Object" />
-		<method name="onBufferAvailable(Landroid/renderscript/Allocation;)V" />
-	</class>
-	<class name="android/renderscript/AllocationAdapter" since="11">
-		<extends name="android/renderscript/Allocation" />
-		<method name="&lt;init>()V" />
-		<method name="create1D(Landroid/renderscript/RenderScript;Landroid/renderscript/Allocation;)Landroid/renderscript/AllocationAdapter;" since="14" />
-		<method name="create2D(Landroid/renderscript/RenderScript;Landroid/renderscript/Allocation;)Landroid/renderscript/AllocationAdapter;" />
-		<method name="readData([F)V" />
-		<method name="readData([I)V" />
-		<method name="setFace(Landroid/renderscript/Type$CubemapFace;)V" />
-		<method name="setLOD(I)V" />
-		<method name="setY(I)V" />
-		<method name="setZ(I)V" />
-		<method name="subData(ILandroid/renderscript/FieldPacker;)V" />
-		<method name="subData1D(II[B)V" />
-		<method name="subData1D(II[F)V" />
-		<method name="subData1D(II[I)V" />
-		<method name="subData1D(II[S)V" />
-		<method name="subData2D(IIII[F)V" />
-		<method name="subData2D(IIII[I)V" />
-		<method name="subElementData(IILandroid/renderscript/FieldPacker;)V" />
-	</class>
-	<class name="android/renderscript/BaseObj" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="destroy()V" />
-		<method name="getName()Ljava/lang/String;" since="14" />
-		<method name="setName(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/renderscript/Byte2" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(BB)V" since="14" />
-		<field name="x" />
-		<field name="y" />
-	</class>
-	<class name="android/renderscript/Byte3" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(BBB)V" since="14" />
-		<field name="x" />
-		<field name="y" />
-		<field name="z" />
-	</class>
-	<class name="android/renderscript/Byte4" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(BBBB)V" since="14" />
-		<field name="w" />
-		<field name="x" />
-		<field name="y" />
-		<field name="z" />
-	</class>
-	<class name="android/renderscript/Double2" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(DD)V" />
-		<field name="x" />
-		<field name="y" />
-	</class>
-	<class name="android/renderscript/Double3" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(DDD)V" />
-		<field name="x" />
-		<field name="y" />
-		<field name="z" />
-	</class>
-	<class name="android/renderscript/Double4" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(DDDD)V" />
-		<field name="w" />
-		<field name="x" />
-		<field name="y" />
-		<field name="z" />
-	</class>
-	<class name="android/renderscript/Element" since="11">
-		<extends name="android/renderscript/BaseObj" />
-		<method name="&lt;init>()V" />
-		<method name="ALLOCATION(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="A_8(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="BOOLEAN(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="ELEMENT(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="F32(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="F32_2(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="F32_3(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="F32_4(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="F64(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="F64_2(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
-		<method name="F64_3(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
-		<method name="F64_4(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
-		<method name="FONT(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="16" />
-		<method name="I16(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="I16_2(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
-		<method name="I16_3(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
-		<method name="I16_4(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
-		<method name="I32(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="I32_2(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
-		<method name="I32_3(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
-		<method name="I32_4(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
-		<method name="I64(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="I64_2(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
-		<method name="I64_3(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
-		<method name="I64_4(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
-		<method name="I8(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="I8_2(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
-		<method name="I8_3(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
-		<method name="I8_4(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
-		<method name="MATRIX4X4(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="MATRIX_2X2(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="MATRIX_3X3(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="MATRIX_4X4(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="MESH(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="PROGRAM_FRAGMENT(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="PROGRAM_RASTER(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="PROGRAM_STORE(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="PROGRAM_VERTEX(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="RGBA_4444(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="RGBA_5551(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="RGBA_8888(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="RGB_565(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="RGB_888(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="SAMPLER(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="SCRIPT(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="TYPE(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="U16(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="U16_2(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
-		<method name="U16_3(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
-		<method name="U16_4(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
-		<method name="U32(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="U32_2(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
-		<method name="U32_3(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
-		<method name="U32_4(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
-		<method name="U64(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="U64_2(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
-		<method name="U64_3(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
-		<method name="U64_4(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
-		<method name="U8(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="U8_2(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
-		<method name="U8_3(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
-		<method name="U8_4(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
-		<method name="YUV(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="19" />
-		<method name="createPixel(Landroid/renderscript/RenderScript;Landroid/renderscript/Element$DataType;Landroid/renderscript/Element$DataKind;)Landroid/renderscript/Element;" />
-		<method name="createVector(Landroid/renderscript/RenderScript;Landroid/renderscript/Element$DataType;I)Landroid/renderscript/Element;" />
-		<method name="getBytesSize()I" since="16" />
-		<method name="getDataKind()Landroid/renderscript/Element$DataKind;" since="16" />
-		<method name="getDataType()Landroid/renderscript/Element$DataType;" since="16" />
-		<method name="getSubElement(I)Landroid/renderscript/Element;" since="16" />
-		<method name="getSubElementArraySize(I)I" since="16" />
-		<method name="getSubElementCount()I" since="16" />
-		<method name="getSubElementName(I)Ljava/lang/String;" since="16" />
-		<method name="getSubElementOffsetBytes(I)I" since="16" />
-		<method name="getVectorSize()I" since="16" />
-		<method name="isCompatible(Landroid/renderscript/Element;)Z" since="14" />
-		<method name="isComplex()Z" />
-	</class>
-	<class name="android/renderscript/Element$Builder" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/renderscript/RenderScript;)V" />
-		<method name="add(Landroid/renderscript/Element;Ljava/lang/String;)Landroid/renderscript/Element$Builder;" />
-		<method name="add(Landroid/renderscript/Element;Ljava/lang/String;I)Landroid/renderscript/Element$Builder;" />
-		<method name="create()Landroid/renderscript/Element;" />
-	</class>
-	<class name="android/renderscript/Element$DataKind" since="11">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/renderscript/Element$DataKind;" />
-		<method name="values()[Landroid/renderscript/Element$DataKind;" />
-		<field name="PIXEL_A" />
-		<field name="PIXEL_DEPTH" since="14" />
-		<field name="PIXEL_L" />
-		<field name="PIXEL_LA" />
-		<field name="PIXEL_RGB" />
-		<field name="PIXEL_RGBA" />
-		<field name="PIXEL_YUV" since="18" />
-		<field name="USER" />
-	</class>
-	<class name="android/renderscript/Element$DataType" since="11">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/renderscript/Element$DataType;" />
-		<method name="values()[Landroid/renderscript/Element$DataType;" />
-		<field name="BOOLEAN" />
-		<field name="FLOAT_32" />
-		<field name="FLOAT_64" />
-		<field name="MATRIX_2X2" />
-		<field name="MATRIX_3X3" />
-		<field name="MATRIX_4X4" />
-		<field name="NONE" since="16" />
-		<field name="RS_ALLOCATION" />
-		<field name="RS_ELEMENT" />
-		<field name="RS_FONT" since="16" />
-		<field name="RS_MESH" />
-		<field name="RS_PROGRAM_FRAGMENT" />
-		<field name="RS_PROGRAM_RASTER" />
-		<field name="RS_PROGRAM_STORE" />
-		<field name="RS_PROGRAM_VERTEX" />
-		<field name="RS_SAMPLER" />
-		<field name="RS_SCRIPT" />
-		<field name="RS_TYPE" />
-		<field name="SIGNED_16" />
-		<field name="SIGNED_32" />
-		<field name="SIGNED_64" />
-		<field name="SIGNED_8" />
-		<field name="UNSIGNED_16" />
-		<field name="UNSIGNED_32" />
-		<field name="UNSIGNED_4_4_4_4" />
-		<field name="UNSIGNED_5_5_5_1" />
-		<field name="UNSIGNED_5_6_5" />
-		<field name="UNSIGNED_64" />
-		<field name="UNSIGNED_8" />
-	</class>
-	<class name="android/renderscript/FieldPacker" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>([B)V" since="18" />
-		<method name="addBoolean(Z)V" />
-		<method name="addF32(F)V" />
-		<method name="addF32(Landroid/renderscript/Float2;)V" />
-		<method name="addF32(Landroid/renderscript/Float3;)V" />
-		<method name="addF32(Landroid/renderscript/Float4;)V" />
-		<method name="addF64(D)V" />
-		<method name="addF64(Landroid/renderscript/Double2;)V" since="14" />
-		<method name="addF64(Landroid/renderscript/Double3;)V" since="14" />
-		<method name="addF64(Landroid/renderscript/Double4;)V" since="14" />
-		<method name="addI16(Landroid/renderscript/Short2;)V" />
-		<method name="addI16(Landroid/renderscript/Short3;)V" />
-		<method name="addI16(Landroid/renderscript/Short4;)V" />
-		<method name="addI16(S)V" />
-		<method name="addI32(I)V" />
-		<method name="addI32(Landroid/renderscript/Int2;)V" />
-		<method name="addI32(Landroid/renderscript/Int3;)V" />
-		<method name="addI32(Landroid/renderscript/Int4;)V" />
-		<method name="addI64(J)V" />
-		<method name="addI64(Landroid/renderscript/Long2;)V" since="14" />
-		<method name="addI64(Landroid/renderscript/Long3;)V" since="14" />
-		<method name="addI64(Landroid/renderscript/Long4;)V" since="14" />
-		<method name="addI8(B)V" />
-		<method name="addI8(Landroid/renderscript/Byte2;)V" />
-		<method name="addI8(Landroid/renderscript/Byte3;)V" />
-		<method name="addI8(Landroid/renderscript/Byte4;)V" />
-		<method name="addMatrix(Landroid/renderscript/Matrix2f;)V" />
-		<method name="addMatrix(Landroid/renderscript/Matrix3f;)V" />
-		<method name="addMatrix(Landroid/renderscript/Matrix4f;)V" />
-		<method name="addObj(Landroid/renderscript/BaseObj;)V" />
-		<method name="addU16(I)V" />
-		<method name="addU16(Landroid/renderscript/Int2;)V" />
-		<method name="addU16(Landroid/renderscript/Int3;)V" />
-		<method name="addU16(Landroid/renderscript/Int4;)V" />
-		<method name="addU32(J)V" />
-		<method name="addU32(Landroid/renderscript/Long2;)V" />
-		<method name="addU32(Landroid/renderscript/Long3;)V" />
-		<method name="addU32(Landroid/renderscript/Long4;)V" />
-		<method name="addU64(J)V" />
-		<method name="addU64(Landroid/renderscript/Long2;)V" since="14" />
-		<method name="addU64(Landroid/renderscript/Long3;)V" since="14" />
-		<method name="addU64(Landroid/renderscript/Long4;)V" since="14" />
-		<method name="addU8(Landroid/renderscript/Short2;)V" />
-		<method name="addU8(Landroid/renderscript/Short3;)V" />
-		<method name="addU8(Landroid/renderscript/Short4;)V" />
-		<method name="addU8(S)V" />
-		<method name="align(I)V" />
-		<method name="getData()[B" />
-		<method name="reset()V" />
-		<method name="reset(I)V" />
-		<method name="skip(I)V" />
-		<method name="subBoolean()Z" since="18" />
-		<method name="subByte2()Landroid/renderscript/Byte2;" since="18" />
-		<method name="subByte3()Landroid/renderscript/Byte3;" since="18" />
-		<method name="subByte4()Landroid/renderscript/Byte4;" since="18" />
-		<method name="subDouble2()Landroid/renderscript/Double2;" since="18" />
-		<method name="subDouble3()Landroid/renderscript/Double3;" since="18" />
-		<method name="subDouble4()Landroid/renderscript/Double4;" since="18" />
-		<method name="subF32()F" since="18" />
-		<method name="subF64()D" since="18" />
-		<method name="subFloat2()Landroid/renderscript/Float2;" since="18" />
-		<method name="subFloat3()Landroid/renderscript/Float3;" since="18" />
-		<method name="subFloat4()Landroid/renderscript/Float4;" since="18" />
-		<method name="subI16()S" since="18" />
-		<method name="subI32()I" since="18" />
-		<method name="subI64()J" since="18" />
-		<method name="subI8()B" since="18" />
-		<method name="subInt2()Landroid/renderscript/Int2;" since="18" />
-		<method name="subInt3()Landroid/renderscript/Int3;" since="18" />
-		<method name="subInt4()Landroid/renderscript/Int4;" since="18" />
-		<method name="subLong2()Landroid/renderscript/Long2;" since="18" />
-		<method name="subLong3()Landroid/renderscript/Long3;" since="18" />
-		<method name="subLong4()Landroid/renderscript/Long4;" since="18" />
-		<method name="subMatrix2f()Landroid/renderscript/Matrix2f;" since="18" />
-		<method name="subMatrix3f()Landroid/renderscript/Matrix3f;" since="18" />
-		<method name="subMatrix4f()Landroid/renderscript/Matrix4f;" since="18" />
-		<method name="subShort2()Landroid/renderscript/Short2;" since="18" />
-		<method name="subShort3()Landroid/renderscript/Short3;" since="18" />
-		<method name="subShort4()Landroid/renderscript/Short4;" since="18" />
-		<method name="subalign(I)V" since="18" />
-	</class>
-	<class name="android/renderscript/FileA3D" since="11">
-		<extends name="android/renderscript/BaseObj" />
-		<method name="&lt;init>()V" />
-		<method name="createFromAsset(Landroid/renderscript/RenderScript;Landroid/content/res/AssetManager;Ljava/lang/String;)Landroid/renderscript/FileA3D;" />
-		<method name="createFromFile(Landroid/renderscript/RenderScript;Ljava/io/File;)Landroid/renderscript/FileA3D;" />
-		<method name="createFromFile(Landroid/renderscript/RenderScript;Ljava/lang/String;)Landroid/renderscript/FileA3D;" />
-		<method name="createFromResource(Landroid/renderscript/RenderScript;Landroid/content/res/Resources;I)Landroid/renderscript/FileA3D;" />
-		<method name="getIndexEntry(I)Landroid/renderscript/FileA3D$IndexEntry;" />
-		<method name="getIndexEntryCount()I" />
-	</class>
-	<class name="android/renderscript/FileA3D$EntryType" since="11">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/renderscript/FileA3D$EntryType;" />
-		<method name="values()[Landroid/renderscript/FileA3D$EntryType;" />
-		<field name="MESH" />
-		<field name="UNKNOWN" />
-	</class>
-	<class name="android/renderscript/FileA3D$IndexEntry" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getEntryType()Landroid/renderscript/FileA3D$EntryType;" />
-		<method name="getMesh()Landroid/renderscript/Mesh;" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getObject()Landroid/renderscript/BaseObj;" />
-	</class>
-	<class name="android/renderscript/Float2" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(FF)V" />
-		<field name="x" />
-		<field name="y" />
-	</class>
-	<class name="android/renderscript/Float3" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(FFF)V" />
-		<field name="x" />
-		<field name="y" />
-		<field name="z" />
-	</class>
-	<class name="android/renderscript/Float4" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(FFFF)V" />
-		<field name="w" />
-		<field name="x" />
-		<field name="y" />
-		<field name="z" />
-	</class>
-	<class name="android/renderscript/Font" since="11">
-		<extends name="android/renderscript/BaseObj" />
-		<method name="&lt;init>()V" />
-		<method name="create(Landroid/renderscript/RenderScript;Landroid/content/res/Resources;Ljava/lang/String;Landroid/renderscript/Font$Style;F)Landroid/renderscript/Font;" />
-		<method name="createFromAsset(Landroid/renderscript/RenderScript;Landroid/content/res/Resources;Ljava/lang/String;F)Landroid/renderscript/Font;" />
-		<method name="createFromFile(Landroid/renderscript/RenderScript;Landroid/content/res/Resources;Ljava/io/File;F)Landroid/renderscript/Font;" />
-		<method name="createFromFile(Landroid/renderscript/RenderScript;Landroid/content/res/Resources;Ljava/lang/String;F)Landroid/renderscript/Font;" />
-		<method name="createFromResource(Landroid/renderscript/RenderScript;Landroid/content/res/Resources;IF)Landroid/renderscript/Font;" />
-	</class>
-	<class name="android/renderscript/Font$Style" since="11">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/renderscript/Font$Style;" />
-		<method name="values()[Landroid/renderscript/Font$Style;" />
-		<field name="BOLD" />
-		<field name="BOLD_ITALIC" />
-		<field name="ITALIC" />
-		<field name="NORMAL" />
-	</class>
-	<class name="android/renderscript/Int2" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(II)V" since="14" />
-		<field name="x" />
-		<field name="y" />
-	</class>
-	<class name="android/renderscript/Int3" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(III)V" since="14" />
-		<field name="x" />
-		<field name="y" />
-		<field name="z" />
-	</class>
-	<class name="android/renderscript/Int4" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(IIII)V" since="14" />
-		<field name="w" />
-		<field name="x" />
-		<field name="y" />
-		<field name="z" />
-	</class>
-	<class name="android/renderscript/Long2" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(JJ)V" since="14" />
-		<field name="x" />
-		<field name="y" />
-	</class>
-	<class name="android/renderscript/Long3" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(JJJ)V" since="14" />
-		<field name="x" />
-		<field name="y" />
-		<field name="z" />
-	</class>
-	<class name="android/renderscript/Long4" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(JJJJ)V" since="14" />
-		<field name="w" />
-		<field name="x" />
-		<field name="y" />
-		<field name="z" />
-	</class>
-	<class name="android/renderscript/Matrix2f" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>([F)V" />
-		<method name="get(II)F" />
-		<method name="getArray()[F" />
-		<method name="load(Landroid/renderscript/Matrix2f;)V" />
-		<method name="loadIdentity()V" />
-		<method name="loadMultiply(Landroid/renderscript/Matrix2f;Landroid/renderscript/Matrix2f;)V" />
-		<method name="loadRotate(F)V" />
-		<method name="loadScale(FF)V" />
-		<method name="multiply(Landroid/renderscript/Matrix2f;)V" />
-		<method name="rotate(F)V" />
-		<method name="scale(FF)V" />
-		<method name="set(IIF)V" />
-		<method name="transpose()V" />
-	</class>
-	<class name="android/renderscript/Matrix3f" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>([F)V" />
-		<method name="get(II)F" />
-		<method name="getArray()[F" />
-		<method name="load(Landroid/renderscript/Matrix3f;)V" />
-		<method name="loadIdentity()V" />
-		<method name="loadMultiply(Landroid/renderscript/Matrix3f;Landroid/renderscript/Matrix3f;)V" />
-		<method name="loadRotate(F)V" />
-		<method name="loadRotate(FFFF)V" />
-		<method name="loadScale(FF)V" />
-		<method name="loadScale(FFF)V" />
-		<method name="loadTranslate(FF)V" />
-		<method name="multiply(Landroid/renderscript/Matrix3f;)V" />
-		<method name="rotate(F)V" />
-		<method name="rotate(FFFF)V" />
-		<method name="scale(FF)V" />
-		<method name="scale(FFF)V" />
-		<method name="set(IIF)V" />
-		<method name="translate(FF)V" />
-		<method name="transpose()V" />
-	</class>
-	<class name="android/renderscript/Matrix4f" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>([F)V" />
-		<method name="get(II)F" />
-		<method name="getArray()[F" />
-		<method name="inverse()Z" />
-		<method name="inverseTranspose()Z" />
-		<method name="load(Landroid/renderscript/Matrix4f;)V" />
-		<method name="loadFrustum(FFFFFF)V" />
-		<method name="loadIdentity()V" />
-		<method name="loadMultiply(Landroid/renderscript/Matrix4f;Landroid/renderscript/Matrix4f;)V" />
-		<method name="loadOrtho(FFFFFF)V" />
-		<method name="loadOrthoWindow(II)V" />
-		<method name="loadPerspective(FFFF)V" />
-		<method name="loadProjectionNormalized(II)V" />
-		<method name="loadRotate(FFFF)V" />
-		<method name="loadScale(FFF)V" />
-		<method name="loadTranslate(FFF)V" />
-		<method name="multiply(Landroid/renderscript/Matrix4f;)V" />
-		<method name="rotate(FFFF)V" />
-		<method name="scale(FFF)V" />
-		<method name="set(IIF)V" />
-		<method name="translate(FFF)V" />
-		<method name="transpose()V" />
-	</class>
-	<class name="android/renderscript/Mesh" since="11">
-		<extends name="android/renderscript/BaseObj" />
-		<method name="&lt;init>()V" />
-		<method name="getIndexSetAllocation(I)Landroid/renderscript/Allocation;" />
-		<method name="getPrimitive(I)Landroid/renderscript/Mesh$Primitive;" />
-		<method name="getPrimitiveCount()I" />
-		<method name="getVertexAllocation(I)Landroid/renderscript/Allocation;" />
-		<method name="getVertexAllocationCount()I" />
-	</class>
-	<class name="android/renderscript/Mesh$AllocationBuilder" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/renderscript/RenderScript;)V" />
-		<method name="addIndexSetAllocation(Landroid/renderscript/Allocation;Landroid/renderscript/Mesh$Primitive;)Landroid/renderscript/Mesh$AllocationBuilder;" />
-		<method name="addIndexSetType(Landroid/renderscript/Mesh$Primitive;)Landroid/renderscript/Mesh$AllocationBuilder;" />
-		<method name="addVertexAllocation(Landroid/renderscript/Allocation;)Landroid/renderscript/Mesh$AllocationBuilder;" />
-		<method name="create()Landroid/renderscript/Mesh;" />
-		<method name="getCurrentIndexSetIndex()I" />
-		<method name="getCurrentVertexTypeIndex()I" />
-	</class>
-	<class name="android/renderscript/Mesh$Builder" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/renderscript/RenderScript;I)V" />
-		<method name="addIndexSetType(Landroid/renderscript/Element;ILandroid/renderscript/Mesh$Primitive;)Landroid/renderscript/Mesh$Builder;" />
-		<method name="addIndexSetType(Landroid/renderscript/Mesh$Primitive;)Landroid/renderscript/Mesh$Builder;" />
-		<method name="addIndexSetType(Landroid/renderscript/Type;Landroid/renderscript/Mesh$Primitive;)Landroid/renderscript/Mesh$Builder;" />
-		<method name="addVertexType(Landroid/renderscript/Element;I)Landroid/renderscript/Mesh$Builder;" />
-		<method name="addVertexType(Landroid/renderscript/Type;)Landroid/renderscript/Mesh$Builder;" />
-		<method name="create()Landroid/renderscript/Mesh;" />
-		<method name="getCurrentIndexSetIndex()I" />
-		<method name="getCurrentVertexTypeIndex()I" />
-	</class>
-	<class name="android/renderscript/Mesh$Primitive" since="11">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/renderscript/Mesh$Primitive;" />
-		<method name="values()[Landroid/renderscript/Mesh$Primitive;" />
-		<field name="LINE" />
-		<field name="LINE_STRIP" />
-		<field name="POINT" />
-		<field name="TRIANGLE" />
-		<field name="TRIANGLE_FAN" />
-		<field name="TRIANGLE_STRIP" />
-	</class>
-	<class name="android/renderscript/Mesh$TriangleMeshBuilder" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/renderscript/RenderScript;II)V" />
-		<method name="addTriangle(III)Landroid/renderscript/Mesh$TriangleMeshBuilder;" />
-		<method name="addVertex(FF)Landroid/renderscript/Mesh$TriangleMeshBuilder;" />
-		<method name="addVertex(FFF)Landroid/renderscript/Mesh$TriangleMeshBuilder;" />
-		<method name="create(Z)Landroid/renderscript/Mesh;" />
-		<method name="setColor(FFFF)Landroid/renderscript/Mesh$TriangleMeshBuilder;" />
-		<method name="setNormal(FFF)Landroid/renderscript/Mesh$TriangleMeshBuilder;" />
-		<method name="setTexture(FF)Landroid/renderscript/Mesh$TriangleMeshBuilder;" />
-		<field name="COLOR" />
-		<field name="NORMAL" />
-		<field name="TEXTURE_0" />
-	</class>
-	<class name="android/renderscript/Program" since="11">
-		<extends name="android/renderscript/BaseObj" />
-		<method name="&lt;init>()V" />
-		<method name="bindConstants(Landroid/renderscript/Allocation;I)V" />
-		<method name="bindSampler(Landroid/renderscript/Sampler;I)V" />
-		<method name="bindTexture(Landroid/renderscript/Allocation;I)V" />
-		<method name="getConstant(I)Landroid/renderscript/Type;" since="16" />
-		<method name="getConstantCount()I" since="16" />
-		<method name="getTextureCount()I" since="16" />
-		<method name="getTextureName(I)Ljava/lang/String;" since="16" />
-		<method name="getTextureType(I)Landroid/renderscript/Program$TextureType;" since="16" />
-	</class>
-	<class name="android/renderscript/Program$BaseProgramBuilder" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/renderscript/RenderScript;)V" />
-		<method name="addConstant(Landroid/renderscript/Type;)Landroid/renderscript/Program$BaseProgramBuilder;" />
-		<method name="addTexture(Landroid/renderscript/Program$TextureType;)Landroid/renderscript/Program$BaseProgramBuilder;" />
-		<method name="addTexture(Landroid/renderscript/Program$TextureType;Ljava/lang/String;)Landroid/renderscript/Program$BaseProgramBuilder;" since="16" />
-		<method name="getCurrentConstantIndex()I" />
-		<method name="getCurrentTextureIndex()I" />
-		<method name="initProgram(Landroid/renderscript/Program;)V" />
-		<method name="setShader(Landroid/content/res/Resources;I)Landroid/renderscript/Program$BaseProgramBuilder;" />
-		<method name="setShader(Ljava/lang/String;)Landroid/renderscript/Program$BaseProgramBuilder;" />
-	</class>
-	<class name="android/renderscript/Program$TextureType" since="11">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/renderscript/Program$TextureType;" />
-		<method name="values()[Landroid/renderscript/Program$TextureType;" />
-		<field name="TEXTURE_2D" />
-		<field name="TEXTURE_CUBE" />
-	</class>
-	<class name="android/renderscript/ProgramFragment" since="11">
-		<extends name="android/renderscript/Program" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/renderscript/ProgramFragment$Builder" since="11">
-		<extends name="android/renderscript/Program$BaseProgramBuilder" />
-		<method name="&lt;init>(Landroid/renderscript/RenderScript;)V" />
-		<method name="create()Landroid/renderscript/ProgramFragment;" />
-	</class>
-	<class name="android/renderscript/ProgramFragmentFixedFunction" since="11">
-		<extends name="android/renderscript/ProgramFragment" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/renderscript/ProgramFragmentFixedFunction$Builder" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/renderscript/RenderScript;)V" />
-		<method name="create()Landroid/renderscript/ProgramFragmentFixedFunction;" />
-		<method name="setPointSpriteTexCoordinateReplacement(Z)Landroid/renderscript/ProgramFragmentFixedFunction$Builder;" />
-		<method name="setTexture(Landroid/renderscript/ProgramFragmentFixedFunction$Builder$EnvMode;Landroid/renderscript/ProgramFragmentFixedFunction$Builder$Format;I)Landroid/renderscript/ProgramFragmentFixedFunction$Builder;" />
-		<method name="setVaryingColor(Z)Landroid/renderscript/ProgramFragmentFixedFunction$Builder;" />
-		<field name="MAX_TEXTURE" />
-	</class>
-	<class name="android/renderscript/ProgramFragmentFixedFunction$Builder$EnvMode" since="11">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/renderscript/ProgramFragmentFixedFunction$Builder$EnvMode;" />
-		<method name="values()[Landroid/renderscript/ProgramFragmentFixedFunction$Builder$EnvMode;" />
-		<field name="DECAL" />
-		<field name="MODULATE" />
-		<field name="REPLACE" />
-	</class>
-	<class name="android/renderscript/ProgramFragmentFixedFunction$Builder$Format" since="11">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/renderscript/ProgramFragmentFixedFunction$Builder$Format;" />
-		<method name="values()[Landroid/renderscript/ProgramFragmentFixedFunction$Builder$Format;" />
-		<field name="ALPHA" />
-		<field name="LUMINANCE_ALPHA" />
-		<field name="RGB" />
-		<field name="RGBA" />
-	</class>
-	<class name="android/renderscript/ProgramRaster" since="11">
-		<extends name="android/renderscript/BaseObj" />
-		<method name="&lt;init>()V" />
-		<method name="CULL_BACK(Landroid/renderscript/RenderScript;)Landroid/renderscript/ProgramRaster;" />
-		<method name="CULL_FRONT(Landroid/renderscript/RenderScript;)Landroid/renderscript/ProgramRaster;" />
-		<method name="CULL_NONE(Landroid/renderscript/RenderScript;)Landroid/renderscript/ProgramRaster;" />
-		<method name="getCullMode()Landroid/renderscript/ProgramRaster$CullMode;" since="16" />
-		<method name="isPointSpriteEnabled()Z" since="16" />
-	</class>
-	<class name="android/renderscript/ProgramRaster$Builder" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/renderscript/RenderScript;)V" />
-		<method name="create()Landroid/renderscript/ProgramRaster;" />
-		<method name="setCullMode(Landroid/renderscript/ProgramRaster$CullMode;)Landroid/renderscript/ProgramRaster$Builder;" />
-		<method name="setPointSpriteEnabled(Z)Landroid/renderscript/ProgramRaster$Builder;" />
-	</class>
-	<class name="android/renderscript/ProgramRaster$CullMode" since="11">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/renderscript/ProgramRaster$CullMode;" />
-		<method name="values()[Landroid/renderscript/ProgramRaster$CullMode;" />
-		<field name="BACK" />
-		<field name="FRONT" />
-		<field name="NONE" />
-	</class>
-	<class name="android/renderscript/ProgramStore" since="11">
-		<extends name="android/renderscript/BaseObj" />
-		<method name="&lt;init>()V" />
-		<method name="BLEND_ALPHA_DEPTH_NONE(Landroid/renderscript/RenderScript;)Landroid/renderscript/ProgramStore;" />
-		<method name="BLEND_ALPHA_DEPTH_TEST(Landroid/renderscript/RenderScript;)Landroid/renderscript/ProgramStore;" />
-		<method name="BLEND_NONE_DEPTH_NONE(Landroid/renderscript/RenderScript;)Landroid/renderscript/ProgramStore;" />
-		<method name="BLEND_NONE_DEPTH_TEST(Landroid/renderscript/RenderScript;)Landroid/renderscript/ProgramStore;" />
-		<method name="getBlendDstFunc()Landroid/renderscript/ProgramStore$BlendDstFunc;" since="16" />
-		<method name="getBlendSrcFunc()Landroid/renderscript/ProgramStore$BlendSrcFunc;" since="16" />
-		<method name="getDepthFunc()Landroid/renderscript/ProgramStore$DepthFunc;" since="16" />
-		<method name="isColorMaskAlphaEnabled()Z" since="16" />
-		<method name="isColorMaskBlueEnabled()Z" since="16" />
-		<method name="isColorMaskGreenEnabled()Z" since="16" />
-		<method name="isColorMaskRedEnabled()Z" since="16" />
-		<method name="isDepthMaskEnabled()Z" since="16" />
-		<method name="isDitherEnabled()Z" since="16" />
-	</class>
-	<class name="android/renderscript/ProgramStore$BlendDstFunc" since="11">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/renderscript/ProgramStore$BlendDstFunc;" />
-		<method name="values()[Landroid/renderscript/ProgramStore$BlendDstFunc;" />
-		<field name="DST_ALPHA" />
-		<field name="ONE" />
-		<field name="ONE_MINUS_DST_ALPHA" />
-		<field name="ONE_MINUS_SRC_ALPHA" />
-		<field name="ONE_MINUS_SRC_COLOR" />
-		<field name="SRC_ALPHA" />
-		<field name="SRC_COLOR" />
-		<field name="ZERO" />
-	</class>
-	<class name="android/renderscript/ProgramStore$BlendSrcFunc" since="11">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/renderscript/ProgramStore$BlendSrcFunc;" />
-		<method name="values()[Landroid/renderscript/ProgramStore$BlendSrcFunc;" />
-		<field name="DST_ALPHA" />
-		<field name="DST_COLOR" />
-		<field name="ONE" />
-		<field name="ONE_MINUS_DST_ALPHA" />
-		<field name="ONE_MINUS_DST_COLOR" />
-		<field name="ONE_MINUS_SRC_ALPHA" />
-		<field name="SRC_ALPHA" />
-		<field name="SRC_ALPHA_SATURATE" />
-		<field name="ZERO" />
-	</class>
-	<class name="android/renderscript/ProgramStore$Builder" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/renderscript/RenderScript;)V" />
-		<method name="create()Landroid/renderscript/ProgramStore;" />
-		<method name="setBlendFunc(Landroid/renderscript/ProgramStore$BlendSrcFunc;Landroid/renderscript/ProgramStore$BlendDstFunc;)Landroid/renderscript/ProgramStore$Builder;" />
-		<method name="setColorMaskEnabled(ZZZZ)Landroid/renderscript/ProgramStore$Builder;" />
-		<method name="setDepthFunc(Landroid/renderscript/ProgramStore$DepthFunc;)Landroid/renderscript/ProgramStore$Builder;" />
-		<method name="setDepthMaskEnabled(Z)Landroid/renderscript/ProgramStore$Builder;" />
-		<method name="setDitherEnabled(Z)Landroid/renderscript/ProgramStore$Builder;" />
-	</class>
-	<class name="android/renderscript/ProgramStore$DepthFunc" since="11">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/renderscript/ProgramStore$DepthFunc;" />
-		<method name="values()[Landroid/renderscript/ProgramStore$DepthFunc;" />
-		<field name="ALWAYS" />
-		<field name="EQUAL" />
-		<field name="GREATER" />
-		<field name="GREATER_OR_EQUAL" />
-		<field name="LESS" />
-		<field name="LESS_OR_EQUAL" />
-		<field name="NOT_EQUAL" />
-	</class>
-	<class name="android/renderscript/ProgramVertex" since="11">
-		<extends name="android/renderscript/Program" />
-		<method name="&lt;init>()V" />
-		<method name="getInput(I)Landroid/renderscript/Element;" since="16" />
-		<method name="getInputCount()I" since="16" />
-	</class>
-	<class name="android/renderscript/ProgramVertex$Builder" since="11">
-		<extends name="android/renderscript/Program$BaseProgramBuilder" />
-		<method name="&lt;init>(Landroid/renderscript/RenderScript;)V" />
-		<method name="addInput(Landroid/renderscript/Element;)Landroid/renderscript/ProgramVertex$Builder;" />
-		<method name="create()Landroid/renderscript/ProgramVertex;" />
-	</class>
-	<class name="android/renderscript/ProgramVertexFixedFunction" since="11">
-		<extends name="android/renderscript/ProgramVertex" />
-		<method name="&lt;init>()V" />
-		<method name="bindConstants(Landroid/renderscript/ProgramVertexFixedFunction$Constants;)V" />
-	</class>
-	<class name="android/renderscript/ProgramVertexFixedFunction$Builder" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/renderscript/RenderScript;)V" />
-		<method name="create()Landroid/renderscript/ProgramVertexFixedFunction;" />
-		<method name="setTextureMatrixEnable(Z)Landroid/renderscript/ProgramVertexFixedFunction$Builder;" />
-	</class>
-	<class name="android/renderscript/ProgramVertexFixedFunction$Constants" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/renderscript/RenderScript;)V" />
-		<method name="destroy()V" />
-		<method name="setModelview(Landroid/renderscript/Matrix4f;)V" />
-		<method name="setProjection(Landroid/renderscript/Matrix4f;)V" />
-		<method name="setTexture(Landroid/renderscript/Matrix4f;)V" />
-	</class>
-	<class name="android/renderscript/RSDriverException" since="11">
-		<extends name="android/renderscript/RSRuntimeException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/renderscript/RSIllegalArgumentException" since="11">
-		<extends name="android/renderscript/RSRuntimeException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/renderscript/RSInvalidStateException" since="11">
-		<extends name="android/renderscript/RSRuntimeException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/renderscript/RSRuntimeException" since="11">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/renderscript/RSSurfaceView" since="11">
-		<extends name="android/view/SurfaceView" />
-		<implements name="android/view/SurfaceHolder$Callback" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="createRenderScriptGL(Landroid/renderscript/RenderScriptGL$SurfaceConfig;)Landroid/renderscript/RenderScriptGL;" />
-		<method name="destroyRenderScriptGL()V" />
-		<method name="getRenderScriptGL()Landroid/renderscript/RenderScriptGL;" />
-		<method name="pause()V" />
-		<method name="resume()V" />
-		<method name="setRenderScriptGL(Landroid/renderscript/RenderScriptGL;)V" />
-	</class>
-	<class name="android/renderscript/RSTextureView" since="14">
-		<extends name="android/view/TextureView" />
-		<implements name="android/view/TextureView$SurfaceTextureListener" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="createRenderScriptGL(Landroid/renderscript/RenderScriptGL$SurfaceConfig;)Landroid/renderscript/RenderScriptGL;" />
-		<method name="destroyRenderScriptGL()V" />
-		<method name="getRenderScriptGL()Landroid/renderscript/RenderScriptGL;" />
-		<method name="pause()V" />
-		<method name="resume()V" />
-		<method name="setRenderScriptGL(Landroid/renderscript/RenderScriptGL;)V" />
-	</class>
-	<class name="android/renderscript/RenderScript" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="contextDump()V" />
-		<method name="create(Landroid/content/Context;)Landroid/renderscript/RenderScript;" />
-		<method name="create(Landroid/content/Context;Landroid/renderscript/RenderScript$ContextType;)Landroid/renderscript/RenderScript;" since="18" />
-		<method name="create(Landroid/content/Context;Landroid/renderscript/RenderScript$ContextType;I)Landroid/renderscript/RenderScript;" since="21" />
-		<method name="destroy()V" />
-		<method name="finish()V" />
-		<method name="getApplicationContext()Landroid/content/Context;" />
-		<method name="getErrorHandler()Landroid/renderscript/RenderScript$RSErrorHandler;" />
-		<method name="getMessageHandler()Landroid/renderscript/RenderScript$RSMessageHandler;" />
-		<method name="sendMessage(I[I)V" since="18" />
-		<method name="setErrorHandler(Landroid/renderscript/RenderScript$RSErrorHandler;)V" />
-		<method name="setMessageHandler(Landroid/renderscript/RenderScript$RSMessageHandler;)V" />
-		<method name="setPriority(Landroid/renderscript/RenderScript$Priority;)V" />
-		<field name="CREATE_FLAG_LOW_LATENCY" since="21" />
-		<field name="CREATE_FLAG_LOW_POWER" since="21" />
-		<field name="CREATE_FLAG_NONE" since="21" />
-	</class>
-	<class name="android/renderscript/RenderScript$ContextType" since="18">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/renderscript/RenderScript$ContextType;" />
-		<method name="values()[Landroid/renderscript/RenderScript$ContextType;" />
-		<field name="DEBUG" />
-		<field name="NORMAL" />
-		<field name="PROFILE" />
-	</class>
-	<class name="android/renderscript/RenderScript$Priority" since="11">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/renderscript/RenderScript$Priority;" />
-		<method name="values()[Landroid/renderscript/RenderScript$Priority;" />
-		<field name="LOW" />
-		<field name="NORMAL" />
-	</class>
-	<class name="android/renderscript/RenderScript$RSErrorHandler" since="11">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Runnable" />
-		<method name="&lt;init>()V" />
-		<field name="mErrorMessage" />
-		<field name="mErrorNum" />
-	</class>
-	<class name="android/renderscript/RenderScript$RSMessageHandler" since="11">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Runnable" />
-		<method name="&lt;init>()V" />
-		<field name="mData" />
-		<field name="mID" />
-		<field name="mLength" />
-	</class>
-	<class name="android/renderscript/RenderScriptGL" since="11">
-		<extends name="android/renderscript/RenderScript" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/renderscript/RenderScriptGL$SurfaceConfig;)V" />
-		<method name="bindProgramFragment(Landroid/renderscript/ProgramFragment;)V" />
-		<method name="bindProgramRaster(Landroid/renderscript/ProgramRaster;)V" />
-		<method name="bindProgramStore(Landroid/renderscript/ProgramStore;)V" />
-		<method name="bindProgramVertex(Landroid/renderscript/ProgramVertex;)V" />
-		<method name="bindRootScript(Landroid/renderscript/Script;)V" />
-		<method name="getHeight()I" />
-		<method name="getWidth()I" />
-		<method name="pause()V" />
-		<method name="resume()V" />
-		<method name="setSurface(Landroid/view/SurfaceHolder;II)V" />
-		<method name="setSurfaceTexture(Landroid/graphics/SurfaceTexture;II)V" since="14" />
-	</class>
-	<class name="android/renderscript/RenderScriptGL$SurfaceConfig" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/renderscript/RenderScriptGL$SurfaceConfig;)V" />
-		<method name="setAlpha(II)V" />
-		<method name="setColor(II)V" />
-		<method name="setDepth(II)V" />
-		<method name="setSamples(IIF)V" />
-	</class>
-	<class name="android/renderscript/Sampler" since="11">
-		<extends name="android/renderscript/BaseObj" />
-		<method name="&lt;init>()V" />
-		<method name="CLAMP_LINEAR(Landroid/renderscript/RenderScript;)Landroid/renderscript/Sampler;" />
-		<method name="CLAMP_LINEAR_MIP_LINEAR(Landroid/renderscript/RenderScript;)Landroid/renderscript/Sampler;" />
-		<method name="CLAMP_NEAREST(Landroid/renderscript/RenderScript;)Landroid/renderscript/Sampler;" />
-		<method name="MIRRORED_REPEAT_LINEAR(Landroid/renderscript/RenderScript;)Landroid/renderscript/Sampler;" since="18" />
-		<method name="MIRRORED_REPEAT_LINEAR_MIP_LINEAR(Landroid/renderscript/RenderScript;)Landroid/renderscript/Sampler;" since="18" />
-		<method name="MIRRORED_REPEAT_NEAREST(Landroid/renderscript/RenderScript;)Landroid/renderscript/Sampler;" since="18" />
-		<method name="WRAP_LINEAR(Landroid/renderscript/RenderScript;)Landroid/renderscript/Sampler;" />
-		<method name="WRAP_LINEAR_MIP_LINEAR(Landroid/renderscript/RenderScript;)Landroid/renderscript/Sampler;" />
-		<method name="WRAP_NEAREST(Landroid/renderscript/RenderScript;)Landroid/renderscript/Sampler;" />
-		<method name="getAnisotropy()F" since="16" />
-		<method name="getMagnification()Landroid/renderscript/Sampler$Value;" since="16" />
-		<method name="getMinification()Landroid/renderscript/Sampler$Value;" since="16" />
-		<method name="getWrapS()Landroid/renderscript/Sampler$Value;" since="16" />
-		<method name="getWrapT()Landroid/renderscript/Sampler$Value;" since="16" />
-	</class>
-	<class name="android/renderscript/Sampler$Builder" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/renderscript/RenderScript;)V" />
-		<method name="create()Landroid/renderscript/Sampler;" />
-		<method name="setAnisotropy(F)V" />
-		<method name="setMagnification(Landroid/renderscript/Sampler$Value;)V" />
-		<method name="setMinification(Landroid/renderscript/Sampler$Value;)V" />
-		<method name="setWrapS(Landroid/renderscript/Sampler$Value;)V" />
-		<method name="setWrapT(Landroid/renderscript/Sampler$Value;)V" />
-	</class>
-	<class name="android/renderscript/Sampler$Value" since="11">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/renderscript/Sampler$Value;" />
-		<method name="values()[Landroid/renderscript/Sampler$Value;" />
-		<field name="CLAMP" />
-		<field name="LINEAR" />
-		<field name="LINEAR_MIP_LINEAR" />
-		<field name="LINEAR_MIP_NEAREST" />
-		<field name="MIRRORED_REPEAT" since="18" />
-		<field name="NEAREST" />
-		<field name="WRAP" />
-	</class>
-	<class name="android/renderscript/Script" since="11">
-		<extends name="android/renderscript/BaseObj" />
-		<method name="&lt;init>()V" />
-		<method name="bindAllocation(Landroid/renderscript/Allocation;I)V" />
-		<method name="createFieldID(ILandroid/renderscript/Element;)Landroid/renderscript/Script$FieldID;" since="17" />
-		<method name="createKernelID(IILandroid/renderscript/Element;Landroid/renderscript/Element;)Landroid/renderscript/Script$KernelID;" since="17" />
-		<method name="forEach(ILandroid/renderscript/Allocation;Landroid/renderscript/Allocation;Landroid/renderscript/FieldPacker;)V" since="14" />
-		<method name="forEach(ILandroid/renderscript/Allocation;Landroid/renderscript/Allocation;Landroid/renderscript/FieldPacker;Landroid/renderscript/Script$LaunchOptions;)V" since="18" />
-		<method name="getVarB(I)Z" since="18" />
-		<method name="getVarD(I)D" since="18" />
-		<method name="getVarF(I)F" since="18" />
-		<method name="getVarI(I)I" since="18" />
-		<method name="getVarJ(I)J" since="18" />
-		<method name="getVarV(ILandroid/renderscript/FieldPacker;)V" since="18" />
-		<method name="invoke(I)V" />
-		<method name="invoke(ILandroid/renderscript/FieldPacker;)V" />
-		<method name="setTimeZone(Ljava/lang/String;)V" />
-		<method name="setVar(ID)V" />
-		<method name="setVar(IF)V" />
-		<method name="setVar(II)V" />
-		<method name="setVar(IJ)V" />
-		<method name="setVar(ILandroid/renderscript/BaseObj;)V" />
-		<method name="setVar(ILandroid/renderscript/FieldPacker;)V" />
-		<method name="setVar(ILandroid/renderscript/FieldPacker;Landroid/renderscript/Element;[I)V" since="16" />
-		<method name="setVar(IZ)V" />
-	</class>
-	<class name="android/renderscript/Script$Builder" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/renderscript/Script$FieldBase" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getAllocation()Landroid/renderscript/Allocation;" />
-		<method name="getElement()Landroid/renderscript/Element;" />
-		<method name="getType()Landroid/renderscript/Type;" />
-		<method name="init(Landroid/renderscript/RenderScript;I)V" />
-		<method name="init(Landroid/renderscript/RenderScript;II)V" />
-		<method name="updateAllocation()V" />
-		<field name="mAllocation" />
-		<field name="mElement" />
-	</class>
-	<class name="android/renderscript/Script$FieldID" since="17">
-		<extends name="android/renderscript/BaseObj" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/renderscript/Script$KernelID" since="17">
-		<extends name="android/renderscript/BaseObj" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/renderscript/Script$LaunchOptions" since="18">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getXEnd()I" />
-		<method name="getXStart()I" />
-		<method name="getYEnd()I" />
-		<method name="getYStart()I" />
-		<method name="getZEnd()I" />
-		<method name="getZStart()I" />
-		<method name="setX(II)Landroid/renderscript/Script$LaunchOptions;" />
-		<method name="setY(II)Landroid/renderscript/Script$LaunchOptions;" />
-		<method name="setZ(II)Landroid/renderscript/Script$LaunchOptions;" />
-	</class>
-	<class name="android/renderscript/ScriptC" since="11">
-		<extends name="android/renderscript/Script" />
-		<method name="&lt;init>(ILandroid/renderscript/RenderScript;)V" />
-		<method name="&lt;init>(Landroid/renderscript/RenderScript;Landroid/content/res/Resources;I)V" />
-	</class>
-	<class name="android/renderscript/ScriptGroup" since="17">
-		<extends name="android/renderscript/BaseObj" />
-		<method name="&lt;init>()V" />
-		<method name="execute()V" />
-		<method name="setInput(Landroid/renderscript/Script$KernelID;Landroid/renderscript/Allocation;)V" />
-		<method name="setOutput(Landroid/renderscript/Script$KernelID;Landroid/renderscript/Allocation;)V" />
-	</class>
-	<class name="android/renderscript/ScriptGroup$Builder" since="17">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/renderscript/RenderScript;)V" />
-		<method name="addConnection(Landroid/renderscript/Type;Landroid/renderscript/Script$KernelID;Landroid/renderscript/Script$FieldID;)Landroid/renderscript/ScriptGroup$Builder;" />
-		<method name="addConnection(Landroid/renderscript/Type;Landroid/renderscript/Script$KernelID;Landroid/renderscript/Script$KernelID;)Landroid/renderscript/ScriptGroup$Builder;" />
-		<method name="addKernel(Landroid/renderscript/Script$KernelID;)Landroid/renderscript/ScriptGroup$Builder;" />
-		<method name="create()Landroid/renderscript/ScriptGroup;" />
-	</class>
-	<class name="android/renderscript/ScriptIntrinsic" since="17">
-		<extends name="android/renderscript/Script" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/renderscript/ScriptIntrinsic3DLUT" since="18">
-		<extends name="android/renderscript/ScriptIntrinsic" />
-		<method name="&lt;init>()V" />
-		<method name="create(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;)Landroid/renderscript/ScriptIntrinsic3DLUT;" />
-		<method name="forEach(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;)V" />
-		<method name="forEach(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V" since="21" />
-		<method name="getKernelID()Landroid/renderscript/Script$KernelID;" />
-		<method name="setLUT(Landroid/renderscript/Allocation;)V" />
-	</class>
-	<class name="android/renderscript/ScriptIntrinsicBlend" since="17">
-		<extends name="android/renderscript/ScriptIntrinsic" />
-		<method name="&lt;init>()V" />
-		<method name="create(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;)Landroid/renderscript/ScriptIntrinsicBlend;" />
-		<method name="forEachAdd(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;)V" />
-		<method name="forEachAdd(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V" since="21" />
-		<method name="forEachClear(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;)V" />
-		<method name="forEachClear(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V" since="21" />
-		<method name="forEachDst(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;)V" />
-		<method name="forEachDst(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V" since="21" />
-		<method name="forEachDstAtop(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;)V" />
-		<method name="forEachDstAtop(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V" since="21" />
-		<method name="forEachDstIn(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;)V" />
-		<method name="forEachDstIn(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V" since="21" />
-		<method name="forEachDstOut(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;)V" />
-		<method name="forEachDstOut(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V" since="21" />
-		<method name="forEachDstOver(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;)V" />
-		<method name="forEachDstOver(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V" since="21" />
-		<method name="forEachMultiply(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;)V" />
-		<method name="forEachMultiply(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V" since="21" />
-		<method name="forEachSrc(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;)V" />
-		<method name="forEachSrc(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V" since="21" />
-		<method name="forEachSrcAtop(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;)V" />
-		<method name="forEachSrcAtop(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V" since="21" />
-		<method name="forEachSrcIn(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;)V" />
-		<method name="forEachSrcIn(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V" since="21" />
-		<method name="forEachSrcOut(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;)V" />
-		<method name="forEachSrcOut(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V" since="21" />
-		<method name="forEachSrcOver(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;)V" />
-		<method name="forEachSrcOver(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V" since="21" />
-		<method name="forEachSubtract(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;)V" />
-		<method name="forEachSubtract(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V" since="21" />
-		<method name="forEachXor(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;)V" />
-		<method name="forEachXor(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V" since="21" />
-		<method name="getKernelIDAdd()Landroid/renderscript/Script$KernelID;" />
-		<method name="getKernelIDClear()Landroid/renderscript/Script$KernelID;" />
-		<method name="getKernelIDDst()Landroid/renderscript/Script$KernelID;" />
-		<method name="getKernelIDDstAtop()Landroid/renderscript/Script$KernelID;" />
-		<method name="getKernelIDDstIn()Landroid/renderscript/Script$KernelID;" />
-		<method name="getKernelIDDstOut()Landroid/renderscript/Script$KernelID;" />
-		<method name="getKernelIDDstOver()Landroid/renderscript/Script$KernelID;" />
-		<method name="getKernelIDMultiply()Landroid/renderscript/Script$KernelID;" />
-		<method name="getKernelIDSrc()Landroid/renderscript/Script$KernelID;" />
-		<method name="getKernelIDSrcAtop()Landroid/renderscript/Script$KernelID;" />
-		<method name="getKernelIDSrcIn()Landroid/renderscript/Script$KernelID;" />
-		<method name="getKernelIDSrcOut()Landroid/renderscript/Script$KernelID;" />
-		<method name="getKernelIDSrcOver()Landroid/renderscript/Script$KernelID;" />
-		<method name="getKernelIDSubtract()Landroid/renderscript/Script$KernelID;" />
-		<method name="getKernelIDXor()Landroid/renderscript/Script$KernelID;" />
-	</class>
-	<class name="android/renderscript/ScriptIntrinsicBlur" since="17">
-		<extends name="android/renderscript/ScriptIntrinsic" />
-		<method name="&lt;init>()V" />
-		<method name="create(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;)Landroid/renderscript/ScriptIntrinsicBlur;" />
-		<method name="forEach(Landroid/renderscript/Allocation;)V" />
-		<method name="forEach(Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V" since="21" />
-		<method name="getFieldID_Input()Landroid/renderscript/Script$FieldID;" />
-		<method name="getKernelID()Landroid/renderscript/Script$KernelID;" />
-		<method name="setInput(Landroid/renderscript/Allocation;)V" />
-		<method name="setRadius(F)V" />
-	</class>
-	<class name="android/renderscript/ScriptIntrinsicColorMatrix" since="17">
-		<extends name="android/renderscript/ScriptIntrinsic" />
-		<method name="&lt;init>()V" />
-		<method name="create(Landroid/renderscript/RenderScript;)Landroid/renderscript/ScriptIntrinsicColorMatrix;" since="19" />
-		<method name="create(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;)Landroid/renderscript/ScriptIntrinsicColorMatrix;" />
-		<method name="forEach(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;)V" />
-		<method name="forEach(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V" since="21" />
-		<method name="getKernelID()Landroid/renderscript/Script$KernelID;" />
-		<method name="setAdd(FFFF)V" since="19" />
-		<method name="setAdd(Landroid/renderscript/Float4;)V" since="19" />
-		<method name="setColorMatrix(Landroid/renderscript/Matrix3f;)V" />
-		<method name="setColorMatrix(Landroid/renderscript/Matrix4f;)V" />
-		<method name="setGreyscale()V" />
-		<method name="setRGBtoYUV()V" />
-		<method name="setYUVtoRGB()V" />
-	</class>
-	<class name="android/renderscript/ScriptIntrinsicConvolve3x3" since="17">
-		<extends name="android/renderscript/ScriptIntrinsic" />
-		<method name="&lt;init>()V" />
-		<method name="create(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;)Landroid/renderscript/ScriptIntrinsicConvolve3x3;" />
-		<method name="forEach(Landroid/renderscript/Allocation;)V" />
-		<method name="forEach(Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V" since="21" />
-		<method name="getFieldID_Input()Landroid/renderscript/Script$FieldID;" />
-		<method name="getKernelID()Landroid/renderscript/Script$KernelID;" />
-		<method name="setCoefficients([F)V" />
-		<method name="setInput(Landroid/renderscript/Allocation;)V" />
-	</class>
-	<class name="android/renderscript/ScriptIntrinsicConvolve5x5" since="17">
-		<extends name="android/renderscript/ScriptIntrinsic" />
-		<method name="&lt;init>()V" />
-		<method name="create(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;)Landroid/renderscript/ScriptIntrinsicConvolve5x5;" />
-		<method name="forEach(Landroid/renderscript/Allocation;)V" />
-		<method name="forEach(Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V" since="21" />
-		<method name="getFieldID_Input()Landroid/renderscript/Script$FieldID;" />
-		<method name="getKernelID()Landroid/renderscript/Script$KernelID;" />
-		<method name="setCoefficients([F)V" />
-		<method name="setInput(Landroid/renderscript/Allocation;)V" />
-	</class>
-	<class name="android/renderscript/ScriptIntrinsicHistogram" since="19">
-		<extends name="android/renderscript/ScriptIntrinsic" />
-		<method name="&lt;init>()V" />
-		<method name="create(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;)Landroid/renderscript/ScriptIntrinsicHistogram;" />
-		<method name="forEach(Landroid/renderscript/Allocation;)V" />
-		<method name="forEach(Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V" since="21" />
-		<method name="forEach_Dot(Landroid/renderscript/Allocation;)V" />
-		<method name="forEach_Dot(Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V" since="21" />
-		<method name="getFieldID_Input()Landroid/renderscript/Script$FieldID;" />
-		<method name="getKernelID_Separate()Landroid/renderscript/Script$KernelID;" />
-		<method name="setDotCoefficients(FFFF)V" />
-		<method name="setOutput(Landroid/renderscript/Allocation;)V" />
-	</class>
-	<class name="android/renderscript/ScriptIntrinsicLUT" since="17">
-		<extends name="android/renderscript/ScriptIntrinsic" />
-		<method name="&lt;init>()V" />
-		<method name="create(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;)Landroid/renderscript/ScriptIntrinsicLUT;" />
-		<method name="forEach(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;)V" />
-		<method name="forEach(Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V" since="21" />
-		<method name="getKernelID()Landroid/renderscript/Script$KernelID;" />
-		<method name="setAlpha(II)V" />
-		<method name="setBlue(II)V" />
-		<method name="setGreen(II)V" />
-		<method name="setRed(II)V" />
-	</class>
-	<class name="android/renderscript/ScriptIntrinsicResize" since="20">
-		<extends name="android/renderscript/ScriptIntrinsic" />
-		<method name="&lt;init>()V" />
-		<method name="create(Landroid/renderscript/RenderScript;)Landroid/renderscript/ScriptIntrinsicResize;" />
-		<method name="forEach_bicubic(Landroid/renderscript/Allocation;)V" />
-		<method name="forEach_bicubic(Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V" />
-		<method name="getFieldID_Input()Landroid/renderscript/Script$FieldID;" />
-		<method name="getKernelID_bicubic()Landroid/renderscript/Script$KernelID;" />
-		<method name="setInput(Landroid/renderscript/Allocation;)V" />
-	</class>
-	<class name="android/renderscript/ScriptIntrinsicYuvToRGB" since="17">
-		<extends name="android/renderscript/ScriptIntrinsic" />
-		<method name="&lt;init>()V" />
-		<method name="create(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;)Landroid/renderscript/ScriptIntrinsicYuvToRGB;" />
-		<method name="forEach(Landroid/renderscript/Allocation;)V" />
-		<method name="getFieldID_Input()Landroid/renderscript/Script$FieldID;" />
-		<method name="getKernelID()Landroid/renderscript/Script$KernelID;" />
-		<method name="setInput(Landroid/renderscript/Allocation;)V" />
-	</class>
-	<class name="android/renderscript/Short2" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(SS)V" since="14" />
-		<field name="x" />
-		<field name="y" />
-	</class>
-	<class name="android/renderscript/Short3" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(SSS)V" since="14" />
-		<field name="x" />
-		<field name="y" />
-		<field name="z" />
-	</class>
-	<class name="android/renderscript/Short4" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(SSSS)V" since="14" />
-		<field name="w" />
-		<field name="x" />
-		<field name="y" />
-		<field name="z" />
-	</class>
-	<class name="android/renderscript/Type" since="11">
-		<extends name="android/renderscript/BaseObj" />
-		<method name="&lt;init>()V" />
-		<method name="createX(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;I)Landroid/renderscript/Type;" since="21" />
-		<method name="createXY(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;II)Landroid/renderscript/Type;" since="21" />
-		<method name="createXYZ(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;III)Landroid/renderscript/Type;" since="21" />
-		<method name="getCount()I" />
-		<method name="getElement()Landroid/renderscript/Element;" />
-		<method name="getX()I" />
-		<method name="getY()I" />
-		<method name="getYuv()I" since="18" />
-		<method name="getZ()I" />
-		<method name="hasFaces()Z" />
-		<method name="hasMipmaps()Z" />
-	</class>
-	<class name="android/renderscript/Type$Builder" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;)V" />
-		<method name="create()Landroid/renderscript/Type;" />
-		<method name="setFaces(Z)Landroid/renderscript/Type$Builder;" />
-		<method name="setMipmaps(Z)Landroid/renderscript/Type$Builder;" />
-		<method name="setX(I)Landroid/renderscript/Type$Builder;" />
-		<method name="setY(I)Landroid/renderscript/Type$Builder;" />
-		<method name="setYuvFormat(I)Landroid/renderscript/Type$Builder;" since="18" />
-		<method name="setZ(I)Landroid/renderscript/Type$Builder;" since="18" />
-	</class>
-	<class name="android/renderscript/Type$CubemapFace" since="11">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/renderscript/Type$CubemapFace;" />
-		<method name="values()[Landroid/renderscript/Type$CubemapFace;" />
-		<field name="NEGATIVE_X" />
-		<field name="NEGATIVE_Y" />
-		<field name="NEGATIVE_Z" />
-		<field name="POSITIVE_X" since="14" />
-		<field name="POSITIVE_Y" since="14" />
-		<field name="POSITIVE_Z" since="14" />
-		<field name="POSITVE_X" />
-		<field name="POSITVE_Y" />
-		<field name="POSITVE_Z" />
-	</class>
-	<class name="android/sax/Element" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getChild(Ljava/lang/String;)Landroid/sax/Element;" />
-		<method name="getChild(Ljava/lang/String;Ljava/lang/String;)Landroid/sax/Element;" />
-		<method name="requireChild(Ljava/lang/String;)Landroid/sax/Element;" />
-		<method name="requireChild(Ljava/lang/String;Ljava/lang/String;)Landroid/sax/Element;" />
-		<method name="setElementListener(Landroid/sax/ElementListener;)V" />
-		<method name="setEndElementListener(Landroid/sax/EndElementListener;)V" />
-		<method name="setEndTextElementListener(Landroid/sax/EndTextElementListener;)V" />
-		<method name="setStartElementListener(Landroid/sax/StartElementListener;)V" />
-		<method name="setTextElementListener(Landroid/sax/TextElementListener;)V" />
-	</class>
-	<class name="android/sax/ElementListener" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/sax/EndElementListener" />
-		<implements name="android/sax/StartElementListener" />
-	</class>
-	<class name="android/sax/EndElementListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="end()V" />
-	</class>
-	<class name="android/sax/EndTextElementListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="end(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/sax/RootElement" since="1">
-		<extends name="android/sax/Element" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="getContentHandler()Lorg/xml/sax/ContentHandler;" />
-	</class>
-	<class name="android/sax/StartElementListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="start(Lorg/xml/sax/Attributes;)V" />
-	</class>
-	<class name="android/sax/TextElementListener" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/sax/EndTextElementListener" />
-		<implements name="android/sax/StartElementListener" />
-	</class>
-	<class name="android/security/KeyChain" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="choosePrivateKeyAlias(Landroid/app/Activity;Landroid/security/KeyChainAliasCallback;[Ljava/lang/String;[Ljava/security/Principal;Ljava/lang/String;ILjava/lang/String;)V" />
-		<method name="createInstallIntent()Landroid/content/Intent;" />
-		<method name="getCertificateChain(Landroid/content/Context;Ljava/lang/String;)[Ljava/security/cert/X509Certificate;" />
-		<method name="getPrivateKey(Landroid/content/Context;Ljava/lang/String;)Ljava/security/PrivateKey;" />
-		<method name="isBoundKeyAlgorithm(Ljava/lang/String;)Z" since="18" />
-		<method name="isKeyAlgorithmSupported(Ljava/lang/String;)Z" since="18" />
-		<field name="ACTION_STORAGE_CHANGED" since="16" />
-		<field name="EXTRA_CERTIFICATE" />
-		<field name="EXTRA_NAME" />
-		<field name="EXTRA_PKCS12" />
-	</class>
-	<class name="android/security/KeyChainAliasCallback" since="14">
-		<extends name="java/lang/Object" />
-		<method name="alias(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/security/KeyChainException" since="14">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="android/security/KeyPairGeneratorSpec" since="18">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/spec/AlgorithmParameterSpec" />
-		<method name="&lt;init>()V" />
-		<method name="getAlgorithmParameterSpec()Ljava/security/spec/AlgorithmParameterSpec;" since="19" />
-		<method name="getContext()Landroid/content/Context;" />
-		<method name="getEndDate()Ljava/util/Date;" />
-		<method name="getKeySize()I" since="19" />
-		<method name="getKeyType()Ljava/lang/String;" since="19" />
-		<method name="getKeystoreAlias()Ljava/lang/String;" />
-		<method name="getSerialNumber()Ljava/math/BigInteger;" />
-		<method name="getStartDate()Ljava/util/Date;" />
-		<method name="getSubjectDN()Ljavax/security/auth/x500/X500Principal;" />
-		<method name="isEncryptionRequired()Z" />
-	</class>
-	<class name="android/security/KeyPairGeneratorSpec$Builder" since="18">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="build()Landroid/security/KeyPairGeneratorSpec;" />
-		<method name="setAlgorithmParameterSpec(Ljava/security/spec/AlgorithmParameterSpec;)Landroid/security/KeyPairGeneratorSpec$Builder;" since="19" />
-		<method name="setAlias(Ljava/lang/String;)Landroid/security/KeyPairGeneratorSpec$Builder;" />
-		<method name="setEncryptionRequired()Landroid/security/KeyPairGeneratorSpec$Builder;" />
-		<method name="setEndDate(Ljava/util/Date;)Landroid/security/KeyPairGeneratorSpec$Builder;" />
-		<method name="setKeySize(I)Landroid/security/KeyPairGeneratorSpec$Builder;" since="19" />
-		<method name="setKeyType(Ljava/lang/String;)Landroid/security/KeyPairGeneratorSpec$Builder;" since="19" />
-		<method name="setSerialNumber(Ljava/math/BigInteger;)Landroid/security/KeyPairGeneratorSpec$Builder;" />
-		<method name="setStartDate(Ljava/util/Date;)Landroid/security/KeyPairGeneratorSpec$Builder;" />
-		<method name="setSubject(Ljavax/security/auth/x500/X500Principal;)Landroid/security/KeyPairGeneratorSpec$Builder;" />
-	</class>
-	<class name="android/security/KeyStoreParameter" since="18">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/KeyStore$ProtectionParameter" />
-		<method name="&lt;init>()V" />
-		<method name="isEncryptionRequired()Z" />
-	</class>
-	<class name="android/security/KeyStoreParameter$Builder" since="18">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="build()Landroid/security/KeyStoreParameter;" />
-		<method name="setEncryptionRequired(Z)Landroid/security/KeyStoreParameter$Builder;" />
-	</class>
-	<class name="android/service/dreams/DreamService" since="17">
-		<extends name="android/app/Service" />
-		<implements name="android/view/Window$Callback" />
-		<method name="&lt;init>()V" />
-		<method name="addContentView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V" />
-		<method name="findViewById(I)Landroid/view/View;" />
-		<method name="finish()V" />
-		<method name="getWindow()Landroid/view/Window;" />
-		<method name="getWindowManager()Landroid/view/WindowManager;" />
-		<method name="isFullscreen()Z" />
-		<method name="isInteractive()Z" />
-		<method name="isScreenBright()Z" />
-		<method name="onDreamingStarted()V" />
-		<method name="onDreamingStopped()V" />
-		<method name="setContentView(I)V" />
-		<method name="setContentView(Landroid/view/View;)V" />
-		<method name="setContentView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V" />
-		<method name="setFullscreen(Z)V" />
-		<method name="setInteractive(Z)V" />
-		<method name="setScreenBright(Z)V" />
-		<field name="DREAM_META_DATA" />
-		<field name="SERVICE_INTERFACE" />
-	</class>
-	<class name="android/service/notification/NotificationListenerService" since="18">
-		<extends name="android/app/Service" />
-		<method name="&lt;init>()V" />
-		<method name="cancelAllNotifications()V" />
-		<method name="cancelNotification(Ljava/lang/String;)V" since="21" />
-		<method name="cancelNotification(Ljava/lang/String;Ljava/lang/String;I)V" />
-		<method name="cancelNotifications([Ljava/lang/String;)V" since="21" />
-		<method name="getActiveNotifications()[Landroid/service/notification/StatusBarNotification;" />
-		<method name="getCurrentRanking()Landroid/service/notification/NotificationListenerService$RankingMap;" since="21" />
-		<method name="onListenerConnected()V" since="21" />
-		<method name="onNotificationPosted(Landroid/service/notification/StatusBarNotification;)V" />
-		<method name="onNotificationPosted(Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationListenerService$RankingMap;)V" since="21" />
-		<method name="onNotificationRankingUpdate(Landroid/service/notification/NotificationListenerService$RankingMap;)V" since="21" />
-		<method name="onNotificationRemoved(Landroid/service/notification/StatusBarNotification;)V" />
-		<method name="onNotificationRemoved(Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationListenerService$RankingMap;)V" since="21" />
-		<field name="SERVICE_INTERFACE" />
-	</class>
-	<class name="android/service/notification/NotificationListenerService$Ranking" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getKey()Ljava/lang/String;" />
-		<method name="getRank()I" />
-		<method name="isAmbient()Z" />
-		<method name="isInterceptedByDoNotDisturb()Z" />
-	</class>
-	<class name="android/service/notification/NotificationListenerService$RankingMap" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getOrderedKeys()[Ljava/lang/String;" />
-		<method name="getRanking(Ljava/lang/String;)Landroid/service/notification/NotificationListenerService$Ranking;" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/service/notification/StatusBarNotification" since="18">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;IIILandroid/app/Notification;Landroid/os/UserHandle;J)V" />
-		<method name="clone()Landroid/service/notification/StatusBarNotification;" />
-		<method name="getId()I" />
-		<method name="getKey()Ljava/lang/String;" since="20" />
-		<method name="getNotification()Landroid/app/Notification;" />
-		<method name="getPackageName()Ljava/lang/String;" />
-		<method name="getPostTime()J" />
-		<method name="getTag()Ljava/lang/String;" />
-		<method name="getUser()Landroid/os/UserHandle;" since="21" />
-		<method name="getUserId()I" />
-		<method name="isClearable()Z" />
-		<method name="isOngoing()Z" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/service/textservice/SpellCheckerService" since="14">
-		<extends name="android/app/Service" />
-		<method name="&lt;init>()V" />
-		<method name="createSession()Landroid/service/textservice/SpellCheckerService$Session;" />
-		<field name="SERVICE_INTERFACE" />
-	</class>
-	<class name="android/service/textservice/SpellCheckerService$Session" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getBundle()Landroid/os/Bundle;" />
-		<method name="getLocale()Ljava/lang/String;" />
-		<method name="onCancel()V" />
-		<method name="onClose()V" since="15" />
-		<method name="onCreate()V" />
-		<method name="onGetSentenceSuggestionsMultiple([Landroid/view/textservice/TextInfo;I)[Landroid/view/textservice/SentenceSuggestionsInfo;" since="16" />
-		<method name="onGetSuggestions(Landroid/view/textservice/TextInfo;I)Landroid/view/textservice/SuggestionsInfo;" />
-		<method name="onGetSuggestionsMultiple([Landroid/view/textservice/TextInfo;IZ)[Landroid/view/textservice/SuggestionsInfo;" />
-	</class>
-	<class name="android/service/voice/VoiceInteractionService" since="21">
-		<extends name="android/app/Service" />
-		<method name="&lt;init>()V" />
-		<method name="startSession(Landroid/os/Bundle;)V" />
-		<field name="SERVICE_INTERFACE" />
-		<field name="SERVICE_META_DATA" />
-	</class>
-	<class name="android/service/voice/VoiceInteractionSession" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="android/view/KeyEvent$Callback" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/os/Handler;)V" />
-		<method name="finish()V" />
-		<method name="getLayoutInflater()Landroid/view/LayoutInflater;" />
-		<method name="getWindow()Landroid/app/Dialog;" />
-		<method name="hideWindow()V" />
-		<method name="onAbortVoice(Landroid/service/voice/VoiceInteractionSession$Caller;Landroid/service/voice/VoiceInteractionSession$Request;Ljava/lang/CharSequence;Landroid/os/Bundle;)V" />
-		<method name="onBackPressed()V" />
-		<method name="onCancel(Landroid/service/voice/VoiceInteractionSession$Request;)V" />
-		<method name="onCloseSystemDialogs()V" />
-		<method name="onCommand(Landroid/service/voice/VoiceInteractionSession$Caller;Landroid/service/voice/VoiceInteractionSession$Request;Ljava/lang/String;Landroid/os/Bundle;)V" />
-		<method name="onComputeInsets(Landroid/service/voice/VoiceInteractionSession$Insets;)V" />
-		<method name="onConfirm(Landroid/service/voice/VoiceInteractionSession$Caller;Landroid/service/voice/VoiceInteractionSession$Request;Ljava/lang/CharSequence;Landroid/os/Bundle;)V" />
-		<method name="onCreate(Landroid/os/Bundle;)V" />
-		<method name="onCreateContentView()Landroid/view/View;" />
-		<method name="onDestroy()V" />
-		<method name="onGetSupportedCommands(Landroid/service/voice/VoiceInteractionSession$Caller;[Ljava/lang/String;)[Z" />
-		<method name="onTaskFinished(Landroid/content/Intent;I)V" />
-		<method name="onTaskStarted(Landroid/content/Intent;I)V" />
-		<method name="setContentView(Landroid/view/View;)V" />
-		<method name="setTheme(I)V" />
-		<method name="showWindow()V" />
-		<method name="startVoiceActivity(Landroid/content/Intent;)V" />
-	</class>
-	<class name="android/service/voice/VoiceInteractionSession$Caller" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/service/voice/VoiceInteractionSession$Insets" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="TOUCHABLE_INSETS_CONTENT" />
-		<field name="TOUCHABLE_INSETS_FRAME" />
-		<field name="TOUCHABLE_INSETS_REGION" />
-		<field name="contentInsets" />
-		<field name="touchableInsets" />
-		<field name="touchableRegion" />
-	</class>
-	<class name="android/service/voice/VoiceInteractionSession$Request" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="sendAbortVoiceResult(Landroid/os/Bundle;)V" />
-		<method name="sendCancelResult()V" />
-		<method name="sendCommandResult(ZLandroid/os/Bundle;)V" />
-		<method name="sendConfirmResult(ZLandroid/os/Bundle;)V" />
-	</class>
-	<class name="android/service/voice/VoiceInteractionSessionService" since="21">
-		<extends name="android/app/Service" />
-		<method name="&lt;init>()V" />
-		<method name="onNewSession(Landroid/os/Bundle;)Landroid/service/voice/VoiceInteractionSession;" />
-	</class>
-	<class name="android/service/wallpaper/WallpaperService" since="7">
-		<extends name="android/app/Service" />
-		<method name="&lt;init>()V" />
-		<method name="onCreateEngine()Landroid/service/wallpaper/WallpaperService$Engine;" />
-		<field name="SERVICE_INTERFACE" />
-		<field name="SERVICE_META_DATA" />
-	</class>
-	<class name="android/service/wallpaper/WallpaperService$Engine" since="7">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/service/wallpaper/WallpaperService;)V" />
-		<method name="dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V" since="14" />
-		<method name="getDesiredMinimumHeight()I" />
-		<method name="getDesiredMinimumWidth()I" />
-		<method name="getSurfaceHolder()Landroid/view/SurfaceHolder;" />
-		<method name="isPreview()Z" />
-		<method name="isVisible()Z" />
-		<method name="onCommand(Ljava/lang/String;IIILandroid/os/Bundle;Z)Landroid/os/Bundle;" />
-		<method name="onCreate(Landroid/view/SurfaceHolder;)V" />
-		<method name="onDesiredSizeChanged(II)V" />
-		<method name="onDestroy()V" />
-		<method name="onOffsetsChanged(FFFFII)V" />
-		<method name="onSurfaceChanged(Landroid/view/SurfaceHolder;III)V" />
-		<method name="onSurfaceCreated(Landroid/view/SurfaceHolder;)V" />
-		<method name="onSurfaceDestroyed(Landroid/view/SurfaceHolder;)V" />
-		<method name="onSurfaceRedrawNeeded(Landroid/view/SurfaceHolder;)V" since="9" />
-		<method name="onTouchEvent(Landroid/view/MotionEvent;)V" />
-		<method name="onVisibilityChanged(Z)V" />
-		<method name="setOffsetNotificationsEnabled(Z)V" since="15" />
-		<method name="setTouchEventsEnabled(Z)V" />
-	</class>
-	<class name="android/speech/RecognitionListener" since="8">
-		<extends name="java/lang/Object" />
-		<method name="onBeginningOfSpeech()V" />
-		<method name="onBufferReceived([B)V" />
-		<method name="onEndOfSpeech()V" />
-		<method name="onError(I)V" />
-		<method name="onEvent(ILandroid/os/Bundle;)V" />
-		<method name="onPartialResults(Landroid/os/Bundle;)V" />
-		<method name="onReadyForSpeech(Landroid/os/Bundle;)V" />
-		<method name="onResults(Landroid/os/Bundle;)V" />
-		<method name="onRmsChanged(F)V" />
-	</class>
-	<class name="android/speech/RecognitionService" since="8">
-		<extends name="android/app/Service" />
-		<method name="&lt;init>()V" />
-		<method name="onCancel(Landroid/speech/RecognitionService$Callback;)V" />
-		<method name="onStartListening(Landroid/content/Intent;Landroid/speech/RecognitionService$Callback;)V" />
-		<method name="onStopListening(Landroid/speech/RecognitionService$Callback;)V" />
-		<field name="SERVICE_INTERFACE" />
-		<field name="SERVICE_META_DATA" />
-	</class>
-	<class name="android/speech/RecognitionService$Callback" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/speech/RecognitionService;)V" />
-		<method name="beginningOfSpeech()V" />
-		<method name="bufferReceived([B)V" />
-		<method name="endOfSpeech()V" />
-		<method name="error(I)V" />
-		<method name="partialResults(Landroid/os/Bundle;)V" />
-		<method name="readyForSpeech(Landroid/os/Bundle;)V" />
-		<method name="results(Landroid/os/Bundle;)V" />
-		<method name="rmsChanged(F)V" />
-	</class>
-	<class name="android/speech/RecognizerIntent" since="3">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getVoiceDetailsIntent(Landroid/content/Context;)Landroid/content/Intent;" since="8" />
-		<field name="ACTION_GET_LANGUAGE_DETAILS" since="8" />
-		<field name="ACTION_RECOGNIZE_SPEECH" />
-		<field name="ACTION_VOICE_SEARCH_HANDS_FREE" since="16" />
-		<field name="ACTION_WEB_SEARCH" />
-		<field name="DETAILS_META_DATA" since="8" />
-		<field name="EXTRA_CALLING_PACKAGE" since="8" />
-		<field name="EXTRA_CONFIDENCE_SCORES" since="14" />
-		<field name="EXTRA_LANGUAGE" />
-		<field name="EXTRA_LANGUAGE_MODEL" />
-		<field name="EXTRA_LANGUAGE_PREFERENCE" since="8" />
-		<field name="EXTRA_MAX_RESULTS" />
-		<field name="EXTRA_ONLY_RETURN_LANGUAGE_PREFERENCE" since="8" />
-		<field name="EXTRA_ORIGIN" since="14" />
-		<field name="EXTRA_PARTIAL_RESULTS" since="8" />
-		<field name="EXTRA_PROMPT" />
-		<field name="EXTRA_RESULTS" />
-		<field name="EXTRA_RESULTS_PENDINGINTENT" />
-		<field name="EXTRA_RESULTS_PENDINGINTENT_BUNDLE" />
-		<field name="EXTRA_SECURE" since="16" />
-		<field name="EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS" since="8" />
-		<field name="EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS" since="8" />
-		<field name="EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS" since="8" />
-		<field name="EXTRA_SUPPORTED_LANGUAGES" since="8" />
-		<field name="EXTRA_WEB_SEARCH_ONLY" since="11" />
-		<field name="LANGUAGE_MODEL_FREE_FORM" />
-		<field name="LANGUAGE_MODEL_WEB_SEARCH" />
-		<field name="RESULT_AUDIO_ERROR" />
-		<field name="RESULT_CLIENT_ERROR" />
-		<field name="RESULT_NETWORK_ERROR" />
-		<field name="RESULT_NO_MATCH" />
-		<field name="RESULT_SERVER_ERROR" />
-	</class>
-	<class name="android/speech/RecognizerResultsIntent" since="10">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="ACTION_VOICE_SEARCH_RESULTS" />
-		<field name="EXTRA_VOICE_SEARCH_RESULT_HTML" />
-		<field name="EXTRA_VOICE_SEARCH_RESULT_HTML_BASE_URLS" />
-		<field name="EXTRA_VOICE_SEARCH_RESULT_HTTP_HEADERS" />
-		<field name="EXTRA_VOICE_SEARCH_RESULT_STRINGS" />
-		<field name="EXTRA_VOICE_SEARCH_RESULT_URLS" />
-		<field name="URI_SCHEME_INLINE" />
-	</class>
-	<class name="android/speech/SpeechRecognizer" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="cancel()V" />
-		<method name="createSpeechRecognizer(Landroid/content/Context;)Landroid/speech/SpeechRecognizer;" />
-		<method name="createSpeechRecognizer(Landroid/content/Context;Landroid/content/ComponentName;)Landroid/speech/SpeechRecognizer;" />
-		<method name="destroy()V" />
-		<method name="isRecognitionAvailable(Landroid/content/Context;)Z" />
-		<method name="setRecognitionListener(Landroid/speech/RecognitionListener;)V" />
-		<method name="startListening(Landroid/content/Intent;)V" />
-		<method name="stopListening()V" />
-		<field name="CONFIDENCE_SCORES" since="14" />
-		<field name="ERROR_AUDIO" />
-		<field name="ERROR_CLIENT" />
-		<field name="ERROR_INSUFFICIENT_PERMISSIONS" />
-		<field name="ERROR_NETWORK" />
-		<field name="ERROR_NETWORK_TIMEOUT" />
-		<field name="ERROR_NO_MATCH" />
-		<field name="ERROR_RECOGNIZER_BUSY" />
-		<field name="ERROR_SERVER" />
-		<field name="ERROR_SPEECH_TIMEOUT" />
-		<field name="RESULTS_RECOGNITION" />
-	</class>
-	<class name="android/speech/tts/SynthesisCallback" since="14">
-		<extends name="java/lang/Object" />
-		<method name="audioAvailable([BII)I" />
-		<method name="done()I" />
-		<method name="error()V" />
-		<method name="getMaxBufferSize()I" />
-		<method name="start(III)I" />
-	</class>
-	<class name="android/speech/tts/SynthesisRequest" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;Landroid/os/Bundle;)V" />
-		<method name="getCallerUid()I" since="19" />
-		<method name="getCountry()Ljava/lang/String;" />
-		<method name="getLanguage()Ljava/lang/String;" />
-		<method name="getParams()Landroid/os/Bundle;" />
-		<method name="getPitch()I" />
-		<method name="getSpeechRate()I" />
-		<method name="getText()Ljava/lang/String;" />
-		<method name="getVariant()Ljava/lang/String;" />
-	</class>
-	<class name="android/speech/tts/TextToSpeech" since="4">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/speech/tts/TextToSpeech$OnInitListener;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/speech/tts/TextToSpeech$OnInitListener;Ljava/lang/String;)V" since="14" />
-		<method name="addEarcon(Ljava/lang/String;Ljava/lang/String;)I" />
-		<method name="addEarcon(Ljava/lang/String;Ljava/lang/String;I)I" />
-		<method name="addSpeech(Ljava/lang/String;Ljava/lang/String;)I" />
-		<method name="addSpeech(Ljava/lang/String;Ljava/lang/String;I)I" />
-		<method name="areDefaultsEnforced()Z" since="8" />
-		<method name="getDefaultEngine()Ljava/lang/String;" since="8" />
-		<method name="getDefaultLanguage()Ljava/util/Locale;" since="18" />
-		<method name="getEngines()Ljava/util/List;" since="14" />
-		<method name="getFeatures(Ljava/util/Locale;)Ljava/util/Set;" since="15" />
-		<method name="getLanguage()Ljava/util/Locale;" />
-		<method name="getMaxSpeechInputLength()I" since="18" />
-		<method name="isLanguageAvailable(Ljava/util/Locale;)I" />
-		<method name="isSpeaking()Z" />
-		<method name="playEarcon(Ljava/lang/String;ILjava/util/HashMap;)I" />
-		<method name="playSilence(JILjava/util/HashMap;)I" />
-		<method name="setEngineByPackageName(Ljava/lang/String;)I" since="8" />
-		<method name="setLanguage(Ljava/util/Locale;)I" />
-		<method name="setOnUtteranceCompletedListener(Landroid/speech/tts/TextToSpeech$OnUtteranceCompletedListener;)I" />
-		<method name="setOnUtteranceProgressListener(Landroid/speech/tts/UtteranceProgressListener;)I" since="15" />
-		<method name="setPitch(F)I" />
-		<method name="setSpeechRate(F)I" />
-		<method name="shutdown()V" />
-		<method name="speak(Ljava/lang/String;ILjava/util/HashMap;)I" />
-		<method name="stop()I" />
-		<method name="synthesizeToFile(Ljava/lang/String;Ljava/util/HashMap;Ljava/lang/String;)I" />
-		<field name="ACTION_TTS_QUEUE_PROCESSING_COMPLETED" />
-		<field name="ERROR" />
-		<field name="LANG_AVAILABLE" />
-		<field name="LANG_COUNTRY_AVAILABLE" />
-		<field name="LANG_COUNTRY_VAR_AVAILABLE" />
-		<field name="LANG_MISSING_DATA" />
-		<field name="LANG_NOT_SUPPORTED" />
-		<field name="QUEUE_ADD" />
-		<field name="QUEUE_FLUSH" />
-		<field name="SUCCESS" />
-	</class>
-	<class name="android/speech/tts/TextToSpeech$Engine" since="4">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/speech/tts/TextToSpeech;)V" />
-		<field name="ACTION_CHECK_TTS_DATA" />
-		<field name="ACTION_GET_SAMPLE_TEXT" since="18" />
-		<field name="ACTION_INSTALL_TTS_DATA" />
-		<field name="ACTION_TTS_DATA_INSTALLED" />
-		<field name="CHECK_VOICE_DATA_BAD_DATA" />
-		<field name="CHECK_VOICE_DATA_FAIL" />
-		<field name="CHECK_VOICE_DATA_MISSING_DATA" />
-		<field name="CHECK_VOICE_DATA_MISSING_VOLUME" />
-		<field name="CHECK_VOICE_DATA_PASS" />
-		<field name="DEFAULT_STREAM" />
-		<field name="EXTRA_AVAILABLE_VOICES" since="8" />
-		<field name="EXTRA_CHECK_VOICE_DATA_FOR" since="8" />
-		<field name="EXTRA_SAMPLE_TEXT" since="18" />
-		<field name="EXTRA_TTS_DATA_INSTALLED" />
-		<field name="EXTRA_UNAVAILABLE_VOICES" since="8" />
-		<field name="EXTRA_VOICE_DATA_FILES" />
-		<field name="EXTRA_VOICE_DATA_FILES_INFO" />
-		<field name="EXTRA_VOICE_DATA_ROOT_DIRECTORY" />
-		<field name="INTENT_ACTION_TTS_SERVICE" since="14" />
-		<field name="KEY_FEATURE_EMBEDDED_SYNTHESIS" since="15" />
-		<field name="KEY_FEATURE_NETWORK_SYNTHESIS" since="15" />
-		<field name="KEY_PARAM_PAN" since="11" />
-		<field name="KEY_PARAM_STREAM" />
-		<field name="KEY_PARAM_UTTERANCE_ID" />
-		<field name="KEY_PARAM_VOLUME" since="11" />
-		<field name="SERVICE_META_DATA" since="14" />
-	</class>
-	<class name="android/speech/tts/TextToSpeech$EngineInfo" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="icon" />
-		<field name="label" />
-		<field name="name" />
-	</class>
-	<class name="android/speech/tts/TextToSpeech$OnInitListener" since="4">
-		<extends name="java/lang/Object" />
-		<method name="onInit(I)V" />
-	</class>
-	<class name="android/speech/tts/TextToSpeech$OnUtteranceCompletedListener" since="4">
-		<extends name="java/lang/Object" />
-		<method name="onUtteranceCompleted(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/speech/tts/TextToSpeechService" since="14">
-		<extends name="android/app/Service" />
-		<method name="&lt;init>()V" />
-		<method name="onGetFeaturesForLanguage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/Set;" since="15" />
-		<method name="onGetLanguage()[Ljava/lang/String;" />
-		<method name="onIsLanguageAvailable(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I" />
-		<method name="onLoadLanguage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I" />
-		<method name="onStop()V" />
-		<method name="onSynthesizeText(Landroid/speech/tts/SynthesisRequest;Landroid/speech/tts/SynthesisCallback;)V" />
-	</class>
-	<class name="android/speech/tts/UtteranceProgressListener" since="15">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="onDone(Ljava/lang/String;)V" />
-		<method name="onError(Ljava/lang/String;)V" />
-		<method name="onStart(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/system/ErrnoException" since="21">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>(Ljava/lang/String;I)V" />
-		<method name="&lt;init>(Ljava/lang/String;ILjava/lang/Throwable;)V" />
-		<field name="errno" />
-	</class>
-	<class name="android/system/Os" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="accept(Ljava/io/FileDescriptor;Ljava/net/InetSocketAddress;)Ljava/io/FileDescriptor;" />
-		<method name="access(Ljava/lang/String;I)Z" />
-		<method name="bind(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V" />
-		<method name="chmod(Ljava/lang/String;I)V" />
-		<method name="chown(Ljava/lang/String;II)V" />
-		<method name="close(Ljava/io/FileDescriptor;)V" />
-		<method name="connect(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V" />
-		<method name="dup(Ljava/io/FileDescriptor;)Ljava/io/FileDescriptor;" />
-		<method name="dup2(Ljava/io/FileDescriptor;I)Ljava/io/FileDescriptor;" />
-		<method name="environ()[Ljava/lang/String;" />
-		<method name="execv(Ljava/lang/String;[Ljava/lang/String;)V" />
-		<method name="execve(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)V" />
-		<method name="fchmod(Ljava/io/FileDescriptor;I)V" />
-		<method name="fchown(Ljava/io/FileDescriptor;II)V" />
-		<method name="fdatasync(Ljava/io/FileDescriptor;)V" />
-		<method name="fstat(Ljava/io/FileDescriptor;)Landroid/system/StructStat;" />
-		<method name="fstatvfs(Ljava/io/FileDescriptor;)Landroid/system/StructStatVfs;" />
-		<method name="fsync(Ljava/io/FileDescriptor;)V" />
-		<method name="ftruncate(Ljava/io/FileDescriptor;J)V" />
-		<method name="gai_strerror(I)Ljava/lang/String;" />
-		<method name="getegid()I" />
-		<method name="getenv(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="geteuid()I" />
-		<method name="getgid()I" />
-		<method name="getpeername(Ljava/io/FileDescriptor;)Ljava/net/SocketAddress;" />
-		<method name="getpid()I" />
-		<method name="getppid()I" />
-		<method name="getsockname(Ljava/io/FileDescriptor;)Ljava/net/SocketAddress;" />
-		<method name="gettid()I" />
-		<method name="getuid()I" />
-		<method name="if_indextoname(I)Ljava/lang/String;" />
-		<method name="inet_pton(ILjava/lang/String;)Ljava/net/InetAddress;" />
-		<method name="isatty(Ljava/io/FileDescriptor;)Z" />
-		<method name="kill(II)V" />
-		<method name="lchown(Ljava/lang/String;II)V" />
-		<method name="link(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="listen(Ljava/io/FileDescriptor;I)V" />
-		<method name="lseek(Ljava/io/FileDescriptor;JI)J" />
-		<method name="lstat(Ljava/lang/String;)Landroid/system/StructStat;" />
-		<method name="mincore(JJ[B)V" />
-		<method name="mkdir(Ljava/lang/String;I)V" />
-		<method name="mkfifo(Ljava/lang/String;I)V" />
-		<method name="mlock(JJ)V" />
-		<method name="mmap(JJIILjava/io/FileDescriptor;J)J" />
-		<method name="msync(JJI)V" />
-		<method name="munlock(JJ)V" />
-		<method name="munmap(JJ)V" />
-		<method name="open(Ljava/lang/String;II)Ljava/io/FileDescriptor;" />
-		<method name="pipe()[Ljava/io/FileDescriptor;" />
-		<method name="poll([Landroid/system/StructPollfd;I)I" />
-		<method name="posix_fallocate(Ljava/io/FileDescriptor;JJ)V" />
-		<method name="prctl(IJJJJ)I" />
-		<method name="pread(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;J)I" />
-		<method name="pread(Ljava/io/FileDescriptor;[BIIJ)I" />
-		<method name="pwrite(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;J)I" />
-		<method name="pwrite(Ljava/io/FileDescriptor;[BIIJ)I" />
-		<method name="read(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;)I" />
-		<method name="read(Ljava/io/FileDescriptor;[BII)I" />
-		<method name="readlink(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="readv(Ljava/io/FileDescriptor;[Ljava/lang/Object;[I[I)I" />
-		<method name="recvfrom(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;ILjava/net/InetSocketAddress;)I" />
-		<method name="recvfrom(Ljava/io/FileDescriptor;[BIIILjava/net/InetSocketAddress;)I" />
-		<method name="remove(Ljava/lang/String;)V" />
-		<method name="rename(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="sendfile(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Landroid/util/MutableLong;J)J" />
-		<method name="sendto(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;ILjava/net/InetAddress;I)I" />
-		<method name="sendto(Ljava/io/FileDescriptor;[BIIILjava/net/InetAddress;I)I" />
-		<method name="setegid(I)V" />
-		<method name="setenv(Ljava/lang/String;Ljava/lang/String;Z)V" />
-		<method name="seteuid(I)V" />
-		<method name="setgid(I)V" />
-		<method name="setsid()I" />
-		<method name="setuid(I)V" />
-		<method name="shutdown(Ljava/io/FileDescriptor;I)V" />
-		<method name="socket(III)Ljava/io/FileDescriptor;" />
-		<method name="socketpair(IIILjava/io/FileDescriptor;Ljava/io/FileDescriptor;)V" />
-		<method name="stat(Ljava/lang/String;)Landroid/system/StructStat;" />
-		<method name="statvfs(Ljava/lang/String;)Landroid/system/StructStatVfs;" />
-		<method name="strerror(I)Ljava/lang/String;" />
-		<method name="strsignal(I)Ljava/lang/String;" />
-		<method name="symlink(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="sysconf(I)J" />
-		<method name="tcdrain(Ljava/io/FileDescriptor;)V" />
-		<method name="tcsendbreak(Ljava/io/FileDescriptor;I)V" />
-		<method name="umask(I)I" />
-		<method name="uname()Landroid/system/StructUtsname;" />
-		<method name="unsetenv(Ljava/lang/String;)V" />
-		<method name="waitpid(ILandroid/util/MutableInt;I)I" />
-		<method name="write(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;)I" />
-		<method name="write(Ljava/io/FileDescriptor;[BII)I" />
-		<method name="writev(Ljava/io/FileDescriptor;[Ljava/lang/Object;[I[I)I" />
-	</class>
-	<class name="android/system/OsConstants" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="S_ISBLK(I)Z" />
-		<method name="S_ISCHR(I)Z" />
-		<method name="S_ISDIR(I)Z" />
-		<method name="S_ISFIFO(I)Z" />
-		<method name="S_ISLNK(I)Z" />
-		<method name="S_ISREG(I)Z" />
-		<method name="S_ISSOCK(I)Z" />
-		<method name="WCOREDUMP(I)Z" />
-		<method name="WEXITSTATUS(I)I" />
-		<method name="WIFEXITED(I)Z" />
-		<method name="WIFSIGNALED(I)Z" />
-		<method name="WIFSTOPPED(I)Z" />
-		<method name="WSTOPSIG(I)I" />
-		<method name="WTERMSIG(I)I" />
-		<method name="errnoName(I)Ljava/lang/String;" />
-		<method name="gaiName(I)Ljava/lang/String;" />
-		<field name="AF_INET" />
-		<field name="AF_INET6" />
-		<field name="AF_UNIX" />
-		<field name="AF_UNSPEC" />
-		<field name="AI_ADDRCONFIG" />
-		<field name="AI_ALL" />
-		<field name="AI_CANONNAME" />
-		<field name="AI_NUMERICHOST" />
-		<field name="AI_NUMERICSERV" />
-		<field name="AI_PASSIVE" />
-		<field name="AI_V4MAPPED" />
-		<field name="CAP_AUDIT_CONTROL" />
-		<field name="CAP_AUDIT_WRITE" />
-		<field name="CAP_BLOCK_SUSPEND" />
-		<field name="CAP_CHOWN" />
-		<field name="CAP_DAC_OVERRIDE" />
-		<field name="CAP_DAC_READ_SEARCH" />
-		<field name="CAP_FOWNER" />
-		<field name="CAP_FSETID" />
-		<field name="CAP_IPC_LOCK" />
-		<field name="CAP_IPC_OWNER" />
-		<field name="CAP_KILL" />
-		<field name="CAP_LAST_CAP" />
-		<field name="CAP_LEASE" />
-		<field name="CAP_LINUX_IMMUTABLE" />
-		<field name="CAP_MAC_ADMIN" />
-		<field name="CAP_MAC_OVERRIDE" />
-		<field name="CAP_MKNOD" />
-		<field name="CAP_NET_ADMIN" />
-		<field name="CAP_NET_BIND_SERVICE" />
-		<field name="CAP_NET_BROADCAST" />
-		<field name="CAP_NET_RAW" />
-		<field name="CAP_SETFCAP" />
-		<field name="CAP_SETGID" />
-		<field name="CAP_SETPCAP" />
-		<field name="CAP_SETUID" />
-		<field name="CAP_SYSLOG" />
-		<field name="CAP_SYS_ADMIN" />
-		<field name="CAP_SYS_BOOT" />
-		<field name="CAP_SYS_CHROOT" />
-		<field name="CAP_SYS_MODULE" />
-		<field name="CAP_SYS_NICE" />
-		<field name="CAP_SYS_PACCT" />
-		<field name="CAP_SYS_PTRACE" />
-		<field name="CAP_SYS_RAWIO" />
-		<field name="CAP_SYS_RESOURCE" />
-		<field name="CAP_SYS_TIME" />
-		<field name="CAP_SYS_TTY_CONFIG" />
-		<field name="CAP_WAKE_ALARM" />
-		<field name="E2BIG" />
-		<field name="EACCES" />
-		<field name="EADDRINUSE" />
-		<field name="EADDRNOTAVAIL" />
-		<field name="EAFNOSUPPORT" />
-		<field name="EAGAIN" />
-		<field name="EAI_AGAIN" />
-		<field name="EAI_BADFLAGS" />
-		<field name="EAI_FAIL" />
-		<field name="EAI_FAMILY" />
-		<field name="EAI_MEMORY" />
-		<field name="EAI_NODATA" />
-		<field name="EAI_NONAME" />
-		<field name="EAI_OVERFLOW" />
-		<field name="EAI_SERVICE" />
-		<field name="EAI_SOCKTYPE" />
-		<field name="EAI_SYSTEM" />
-		<field name="EALREADY" />
-		<field name="EBADF" />
-		<field name="EBADMSG" />
-		<field name="EBUSY" />
-		<field name="ECANCELED" />
-		<field name="ECHILD" />
-		<field name="ECONNABORTED" />
-		<field name="ECONNREFUSED" />
-		<field name="ECONNRESET" />
-		<field name="EDEADLK" />
-		<field name="EDESTADDRREQ" />
-		<field name="EDOM" />
-		<field name="EDQUOT" />
-		<field name="EEXIST" />
-		<field name="EFAULT" />
-		<field name="EFBIG" />
-		<field name="EHOSTUNREACH" />
-		<field name="EIDRM" />
-		<field name="EILSEQ" />
-		<field name="EINPROGRESS" />
-		<field name="EINTR" />
-		<field name="EINVAL" />
-		<field name="EIO" />
-		<field name="EISCONN" />
-		<field name="EISDIR" />
-		<field name="ELOOP" />
-		<field name="EMFILE" />
-		<field name="EMLINK" />
-		<field name="EMSGSIZE" />
-		<field name="EMULTIHOP" />
-		<field name="ENAMETOOLONG" />
-		<field name="ENETDOWN" />
-		<field name="ENETRESET" />
-		<field name="ENETUNREACH" />
-		<field name="ENFILE" />
-		<field name="ENOBUFS" />
-		<field name="ENODATA" />
-		<field name="ENODEV" />
-		<field name="ENOENT" />
-		<field name="ENOEXEC" />
-		<field name="ENOLCK" />
-		<field name="ENOLINK" />
-		<field name="ENOMEM" />
-		<field name="ENOMSG" />
-		<field name="ENOPROTOOPT" />
-		<field name="ENOSPC" />
-		<field name="ENOSR" />
-		<field name="ENOSTR" />
-		<field name="ENOSYS" />
-		<field name="ENOTCONN" />
-		<field name="ENOTDIR" />
-		<field name="ENOTEMPTY" />
-		<field name="ENOTSOCK" />
-		<field name="ENOTSUP" />
-		<field name="ENOTTY" />
-		<field name="ENXIO" />
-		<field name="EOPNOTSUPP" />
-		<field name="EOVERFLOW" />
-		<field name="EPERM" />
-		<field name="EPIPE" />
-		<field name="EPROTO" />
-		<field name="EPROTONOSUPPORT" />
-		<field name="EPROTOTYPE" />
-		<field name="ERANGE" />
-		<field name="EROFS" />
-		<field name="ESPIPE" />
-		<field name="ESRCH" />
-		<field name="ESTALE" />
-		<field name="ETIME" />
-		<field name="ETIMEDOUT" />
-		<field name="ETXTBSY" />
-		<field name="EXDEV" />
-		<field name="EXIT_FAILURE" />
-		<field name="EXIT_SUCCESS" />
-		<field name="FD_CLOEXEC" />
-		<field name="FIONREAD" />
-		<field name="F_DUPFD" />
-		<field name="F_GETFD" />
-		<field name="F_GETFL" />
-		<field name="F_GETLK" />
-		<field name="F_GETLK64" />
-		<field name="F_GETOWN" />
-		<field name="F_OK" />
-		<field name="F_RDLCK" />
-		<field name="F_SETFD" />
-		<field name="F_SETFL" />
-		<field name="F_SETLK" />
-		<field name="F_SETLK64" />
-		<field name="F_SETLKW" />
-		<field name="F_SETLKW64" />
-		<field name="F_SETOWN" />
-		<field name="F_UNLCK" />
-		<field name="F_WRLCK" />
-		<field name="IFA_F_DADFAILED" />
-		<field name="IFA_F_DEPRECATED" />
-		<field name="IFA_F_HOMEADDRESS" />
-		<field name="IFA_F_NODAD" />
-		<field name="IFA_F_OPTIMISTIC" />
-		<field name="IFA_F_PERMANENT" />
-		<field name="IFA_F_SECONDARY" />
-		<field name="IFA_F_TEMPORARY" />
-		<field name="IFA_F_TENTATIVE" />
-		<field name="IFF_ALLMULTI" />
-		<field name="IFF_AUTOMEDIA" />
-		<field name="IFF_BROADCAST" />
-		<field name="IFF_DEBUG" />
-		<field name="IFF_DYNAMIC" />
-		<field name="IFF_LOOPBACK" />
-		<field name="IFF_MASTER" />
-		<field name="IFF_MULTICAST" />
-		<field name="IFF_NOARP" />
-		<field name="IFF_NOTRAILERS" />
-		<field name="IFF_POINTOPOINT" />
-		<field name="IFF_PORTSEL" />
-		<field name="IFF_PROMISC" />
-		<field name="IFF_RUNNING" />
-		<field name="IFF_SLAVE" />
-		<field name="IFF_UP" />
-		<field name="IPPROTO_ICMP" />
-		<field name="IPPROTO_ICMPV6" />
-		<field name="IPPROTO_IP" />
-		<field name="IPPROTO_IPV6" />
-		<field name="IPPROTO_RAW" />
-		<field name="IPPROTO_TCP" />
-		<field name="IPPROTO_UDP" />
-		<field name="IPV6_CHECKSUM" />
-		<field name="IPV6_MULTICAST_HOPS" />
-		<field name="IPV6_MULTICAST_IF" />
-		<field name="IPV6_MULTICAST_LOOP" />
-		<field name="IPV6_RECVDSTOPTS" />
-		<field name="IPV6_RECVHOPLIMIT" />
-		<field name="IPV6_RECVHOPOPTS" />
-		<field name="IPV6_RECVPKTINFO" />
-		<field name="IPV6_RECVRTHDR" />
-		<field name="IPV6_RECVTCLASS" />
-		<field name="IPV6_TCLASS" />
-		<field name="IPV6_UNICAST_HOPS" />
-		<field name="IPV6_V6ONLY" />
-		<field name="IP_MULTICAST_IF" />
-		<field name="IP_MULTICAST_LOOP" />
-		<field name="IP_MULTICAST_TTL" />
-		<field name="IP_TOS" />
-		<field name="IP_TTL" />
-		<field name="MAP_FIXED" />
-		<field name="MAP_PRIVATE" />
-		<field name="MAP_SHARED" />
-		<field name="MCAST_BLOCK_SOURCE" />
-		<field name="MCAST_JOIN_GROUP" />
-		<field name="MCAST_JOIN_SOURCE_GROUP" />
-		<field name="MCAST_LEAVE_GROUP" />
-		<field name="MCAST_LEAVE_SOURCE_GROUP" />
-		<field name="MCAST_UNBLOCK_SOURCE" />
-		<field name="MCL_CURRENT" />
-		<field name="MCL_FUTURE" />
-		<field name="MSG_CTRUNC" />
-		<field name="MSG_DONTROUTE" />
-		<field name="MSG_EOR" />
-		<field name="MSG_OOB" />
-		<field name="MSG_PEEK" />
-		<field name="MSG_TRUNC" />
-		<field name="MSG_WAITALL" />
-		<field name="MS_ASYNC" />
-		<field name="MS_INVALIDATE" />
-		<field name="MS_SYNC" />
-		<field name="NI_DGRAM" />
-		<field name="NI_NAMEREQD" />
-		<field name="NI_NOFQDN" />
-		<field name="NI_NUMERICHOST" />
-		<field name="NI_NUMERICSERV" />
-		<field name="O_ACCMODE" />
-		<field name="O_APPEND" />
-		<field name="O_CREAT" />
-		<field name="O_EXCL" />
-		<field name="O_NOCTTY" />
-		<field name="O_NOFOLLOW" />
-		<field name="O_NONBLOCK" />
-		<field name="O_RDONLY" />
-		<field name="O_RDWR" />
-		<field name="O_SYNC" />
-		<field name="O_TRUNC" />
-		<field name="O_WRONLY" />
-		<field name="POLLERR" />
-		<field name="POLLHUP" />
-		<field name="POLLIN" />
-		<field name="POLLNVAL" />
-		<field name="POLLOUT" />
-		<field name="POLLPRI" />
-		<field name="POLLRDBAND" />
-		<field name="POLLRDNORM" />
-		<field name="POLLWRBAND" />
-		<field name="POLLWRNORM" />
-		<field name="PROT_EXEC" />
-		<field name="PROT_NONE" />
-		<field name="PROT_READ" />
-		<field name="PROT_WRITE" />
-		<field name="PR_SET_NO_NEW_PRIVS" />
-		<field name="RT_SCOPE_HOST" />
-		<field name="RT_SCOPE_LINK" />
-		<field name="RT_SCOPE_NOWHERE" />
-		<field name="RT_SCOPE_SITE" />
-		<field name="RT_SCOPE_UNIVERSE" />
-		<field name="R_OK" />
-		<field name="SEEK_CUR" />
-		<field name="SEEK_END" />
-		<field name="SEEK_SET" />
-		<field name="SHUT_RD" />
-		<field name="SHUT_RDWR" />
-		<field name="SHUT_WR" />
-		<field name="SIGABRT" />
-		<field name="SIGALRM" />
-		<field name="SIGBUS" />
-		<field name="SIGCHLD" />
-		<field name="SIGCONT" />
-		<field name="SIGFPE" />
-		<field name="SIGHUP" />
-		<field name="SIGILL" />
-		<field name="SIGINT" />
-		<field name="SIGIO" />
-		<field name="SIGKILL" />
-		<field name="SIGPIPE" />
-		<field name="SIGPROF" />
-		<field name="SIGPWR" />
-		<field name="SIGQUIT" />
-		<field name="SIGRTMAX" />
-		<field name="SIGRTMIN" />
-		<field name="SIGSEGV" />
-		<field name="SIGSTKFLT" />
-		<field name="SIGSTOP" />
-		<field name="SIGSYS" />
-		<field name="SIGTERM" />
-		<field name="SIGTRAP" />
-		<field name="SIGTSTP" />
-		<field name="SIGTTIN" />
-		<field name="SIGTTOU" />
-		<field name="SIGURG" />
-		<field name="SIGUSR1" />
-		<field name="SIGUSR2" />
-		<field name="SIGVTALRM" />
-		<field name="SIGWINCH" />
-		<field name="SIGXCPU" />
-		<field name="SIGXFSZ" />
-		<field name="SIOCGIFADDR" />
-		<field name="SIOCGIFBRDADDR" />
-		<field name="SIOCGIFDSTADDR" />
-		<field name="SIOCGIFNETMASK" />
-		<field name="SOCK_DGRAM" />
-		<field name="SOCK_RAW" />
-		<field name="SOCK_SEQPACKET" />
-		<field name="SOCK_STREAM" />
-		<field name="SOL_SOCKET" />
-		<field name="SO_BINDTODEVICE" />
-		<field name="SO_BROADCAST" />
-		<field name="SO_DEBUG" />
-		<field name="SO_DONTROUTE" />
-		<field name="SO_ERROR" />
-		<field name="SO_KEEPALIVE" />
-		<field name="SO_LINGER" />
-		<field name="SO_OOBINLINE" />
-		<field name="SO_PASSCRED" />
-		<field name="SO_PEERCRED" />
-		<field name="SO_RCVBUF" />
-		<field name="SO_RCVLOWAT" />
-		<field name="SO_RCVTIMEO" />
-		<field name="SO_REUSEADDR" />
-		<field name="SO_SNDBUF" />
-		<field name="SO_SNDLOWAT" />
-		<field name="SO_SNDTIMEO" />
-		<field name="SO_TYPE" />
-		<field name="STDERR_FILENO" />
-		<field name="STDIN_FILENO" />
-		<field name="STDOUT_FILENO" />
-		<field name="S_IFBLK" />
-		<field name="S_IFCHR" />
-		<field name="S_IFDIR" />
-		<field name="S_IFIFO" />
-		<field name="S_IFLNK" />
-		<field name="S_IFMT" />
-		<field name="S_IFREG" />
-		<field name="S_IFSOCK" />
-		<field name="S_IRGRP" />
-		<field name="S_IROTH" />
-		<field name="S_IRUSR" />
-		<field name="S_IRWXG" />
-		<field name="S_IRWXO" />
-		<field name="S_IRWXU" />
-		<field name="S_ISGID" />
-		<field name="S_ISUID" />
-		<field name="S_ISVTX" />
-		<field name="S_IWGRP" />
-		<field name="S_IWOTH" />
-		<field name="S_IWUSR" />
-		<field name="S_IXGRP" />
-		<field name="S_IXOTH" />
-		<field name="S_IXUSR" />
-		<field name="TCP_NODELAY" />
-		<field name="WCONTINUED" />
-		<field name="WEXITED" />
-		<field name="WNOHANG" />
-		<field name="WNOWAIT" />
-		<field name="WSTOPPED" />
-		<field name="WUNTRACED" />
-		<field name="W_OK" />
-		<field name="X_OK" />
-		<field name="_SC_2_CHAR_TERM" />
-		<field name="_SC_2_C_BIND" />
-		<field name="_SC_2_C_DEV" />
-		<field name="_SC_2_C_VERSION" />
-		<field name="_SC_2_FORT_DEV" />
-		<field name="_SC_2_FORT_RUN" />
-		<field name="_SC_2_LOCALEDEF" />
-		<field name="_SC_2_SW_DEV" />
-		<field name="_SC_2_UPE" />
-		<field name="_SC_2_VERSION" />
-		<field name="_SC_AIO_LISTIO_MAX" />
-		<field name="_SC_AIO_MAX" />
-		<field name="_SC_AIO_PRIO_DELTA_MAX" />
-		<field name="_SC_ARG_MAX" />
-		<field name="_SC_ASYNCHRONOUS_IO" />
-		<field name="_SC_ATEXIT_MAX" />
-		<field name="_SC_AVPHYS_PAGES" />
-		<field name="_SC_BC_BASE_MAX" />
-		<field name="_SC_BC_DIM_MAX" />
-		<field name="_SC_BC_SCALE_MAX" />
-		<field name="_SC_BC_STRING_MAX" />
-		<field name="_SC_CHILD_MAX" />
-		<field name="_SC_CLK_TCK" />
-		<field name="_SC_COLL_WEIGHTS_MAX" />
-		<field name="_SC_DELAYTIMER_MAX" />
-		<field name="_SC_EXPR_NEST_MAX" />
-		<field name="_SC_FSYNC" />
-		<field name="_SC_GETGR_R_SIZE_MAX" />
-		<field name="_SC_GETPW_R_SIZE_MAX" />
-		<field name="_SC_IOV_MAX" />
-		<field name="_SC_JOB_CONTROL" />
-		<field name="_SC_LINE_MAX" />
-		<field name="_SC_LOGIN_NAME_MAX" />
-		<field name="_SC_MAPPED_FILES" />
-		<field name="_SC_MEMLOCK" />
-		<field name="_SC_MEMLOCK_RANGE" />
-		<field name="_SC_MEMORY_PROTECTION" />
-		<field name="_SC_MESSAGE_PASSING" />
-		<field name="_SC_MQ_OPEN_MAX" />
-		<field name="_SC_MQ_PRIO_MAX" />
-		<field name="_SC_NGROUPS_MAX" />
-		<field name="_SC_NPROCESSORS_CONF" />
-		<field name="_SC_NPROCESSORS_ONLN" />
-		<field name="_SC_OPEN_MAX" />
-		<field name="_SC_PAGESIZE" />
-		<field name="_SC_PAGE_SIZE" />
-		<field name="_SC_PASS_MAX" />
-		<field name="_SC_PHYS_PAGES" />
-		<field name="_SC_PRIORITIZED_IO" />
-		<field name="_SC_PRIORITY_SCHEDULING" />
-		<field name="_SC_REALTIME_SIGNALS" />
-		<field name="_SC_RE_DUP_MAX" />
-		<field name="_SC_RTSIG_MAX" />
-		<field name="_SC_SAVED_IDS" />
-		<field name="_SC_SEMAPHORES" />
-		<field name="_SC_SEM_NSEMS_MAX" />
-		<field name="_SC_SEM_VALUE_MAX" />
-		<field name="_SC_SHARED_MEMORY_OBJECTS" />
-		<field name="_SC_SIGQUEUE_MAX" />
-		<field name="_SC_STREAM_MAX" />
-		<field name="_SC_SYNCHRONIZED_IO" />
-		<field name="_SC_THREADS" />
-		<field name="_SC_THREAD_ATTR_STACKADDR" />
-		<field name="_SC_THREAD_ATTR_STACKSIZE" />
-		<field name="_SC_THREAD_DESTRUCTOR_ITERATIONS" />
-		<field name="_SC_THREAD_KEYS_MAX" />
-		<field name="_SC_THREAD_PRIORITY_SCHEDULING" />
-		<field name="_SC_THREAD_PRIO_INHERIT" />
-		<field name="_SC_THREAD_PRIO_PROTECT" />
-		<field name="_SC_THREAD_SAFE_FUNCTIONS" />
-		<field name="_SC_THREAD_STACK_MIN" />
-		<field name="_SC_THREAD_THREADS_MAX" />
-		<field name="_SC_TIMERS" />
-		<field name="_SC_TIMER_MAX" />
-		<field name="_SC_TTY_NAME_MAX" />
-		<field name="_SC_TZNAME_MAX" />
-		<field name="_SC_VERSION" />
-		<field name="_SC_XBS5_ILP32_OFF32" />
-		<field name="_SC_XBS5_ILP32_OFFBIG" />
-		<field name="_SC_XBS5_LP64_OFF64" />
-		<field name="_SC_XBS5_LPBIG_OFFBIG" />
-		<field name="_SC_XOPEN_CRYPT" />
-		<field name="_SC_XOPEN_ENH_I18N" />
-		<field name="_SC_XOPEN_LEGACY" />
-		<field name="_SC_XOPEN_REALTIME" />
-		<field name="_SC_XOPEN_REALTIME_THREADS" />
-		<field name="_SC_XOPEN_SHM" />
-		<field name="_SC_XOPEN_UNIX" />
-		<field name="_SC_XOPEN_VERSION" />
-		<field name="_SC_XOPEN_XCU_VERSION" />
-	</class>
-	<class name="android/system/StructPollfd" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="events" />
-		<field name="fd" />
-		<field name="revents" />
-		<field name="userData" />
-	</class>
-	<class name="android/system/StructStat" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(JJIJIIJJJJJJJ)V" />
-		<field name="st_atime" />
-		<field name="st_blksize" />
-		<field name="st_blocks" />
-		<field name="st_ctime" />
-		<field name="st_dev" />
-		<field name="st_gid" />
-		<field name="st_ino" />
-		<field name="st_mode" />
-		<field name="st_mtime" />
-		<field name="st_nlink" />
-		<field name="st_rdev" />
-		<field name="st_size" />
-		<field name="st_uid" />
-	</class>
-	<class name="android/system/StructStatVfs" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(JJJJJJJJJJJ)V" />
-		<field name="f_bavail" />
-		<field name="f_bfree" />
-		<field name="f_blocks" />
-		<field name="f_bsize" />
-		<field name="f_favail" />
-		<field name="f_ffree" />
-		<field name="f_files" />
-		<field name="f_flag" />
-		<field name="f_frsize" />
-		<field name="f_fsid" />
-		<field name="f_namemax" />
-	</class>
-	<class name="android/system/StructUtsname" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<field name="machine" />
-		<field name="nodename" />
-		<field name="release" />
-		<field name="sysname" />
-		<field name="version" />
-	</class>
-	<class name="android/telephony/CellIdentityCdma" since="17">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getBasestationId()I" />
-		<method name="getLatitude()I" />
-		<method name="getLongitude()I" />
-		<method name="getNetworkId()I" />
-		<method name="getSystemId()I" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/telephony/CellIdentityGsm" since="17">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getCid()I" />
-		<method name="getLac()I" />
-		<method name="getMcc()I" />
-		<method name="getMnc()I" />
-		<method name="getPsc()I" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/telephony/CellIdentityLte" since="17">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getCi()I" />
-		<method name="getMcc()I" />
-		<method name="getMnc()I" />
-		<method name="getPci()I" />
-		<method name="getTac()I" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/telephony/CellIdentityWcdma" since="18">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getCid()I" />
-		<method name="getLac()I" />
-		<method name="getMcc()I" />
-		<method name="getMnc()I" />
-		<method name="getPsc()I" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/telephony/CellInfo" since="17">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getTimeStamp()J" />
-		<method name="isRegistered()Z" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/telephony/CellInfoCdma" since="17">
-		<extends name="android/telephony/CellInfo" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getCellIdentity()Landroid/telephony/CellIdentityCdma;" />
-		<method name="getCellSignalStrength()Landroid/telephony/CellSignalStrengthCdma;" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/telephony/CellInfoGsm" since="17">
-		<extends name="android/telephony/CellInfo" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getCellIdentity()Landroid/telephony/CellIdentityGsm;" />
-		<method name="getCellSignalStrength()Landroid/telephony/CellSignalStrengthGsm;" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/telephony/CellInfoLte" since="17">
-		<extends name="android/telephony/CellInfo" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getCellIdentity()Landroid/telephony/CellIdentityLte;" />
-		<method name="getCellSignalStrength()Landroid/telephony/CellSignalStrengthLte;" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/telephony/CellInfoWcdma" since="18">
-		<extends name="android/telephony/CellInfo" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getCellIdentity()Landroid/telephony/CellIdentityWcdma;" />
-		<method name="getCellSignalStrength()Landroid/telephony/CellSignalStrengthWcdma;" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/telephony/CellLocation" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getEmpty()Landroid/telephony/CellLocation;" />
-		<method name="requestLocationUpdate()V" />
-	</class>
-	<class name="android/telephony/CellSignalStrength" since="17">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getAsuLevel()I" />
-		<method name="getDbm()I" />
-		<method name="getLevel()I" />
-	</class>
-	<class name="android/telephony/CellSignalStrengthCdma" since="17">
-		<extends name="android/telephony/CellSignalStrength" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getCdmaDbm()I" />
-		<method name="getCdmaEcio()I" />
-		<method name="getCdmaLevel()I" />
-		<method name="getEvdoDbm()I" />
-		<method name="getEvdoEcio()I" />
-		<method name="getEvdoLevel()I" />
-		<method name="getEvdoSnr()I" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/telephony/CellSignalStrengthGsm" since="17">
-		<extends name="android/telephony/CellSignalStrength" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/telephony/CellSignalStrengthLte" since="17">
-		<extends name="android/telephony/CellSignalStrength" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getTimingAdvance()I" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/telephony/CellSignalStrengthWcdma" since="18">
-		<extends name="android/telephony/CellSignalStrength" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/telephony/NeighboringCellInfo" since="3">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(II)V" />
-		<method name="&lt;init>(ILjava/lang/String;I)V" since="7" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" />
-		<method name="getCid()I" />
-		<method name="getLac()I" since="5" />
-		<method name="getNetworkType()I" since="5" />
-		<method name="getPsc()I" since="5" />
-		<method name="getRssi()I" />
-		<method name="setCid(I)V" />
-		<method name="setRssi(I)V" />
-		<field name="CREATOR" />
-		<field name="UNKNOWN_CID" />
-		<field name="UNKNOWN_RSSI" />
-	</class>
-	<class name="android/telephony/PhoneNumberFormattingTextWatcher" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/text/TextWatcher" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" since="21" />
-	</class>
-	<class name="android/telephony/PhoneNumberUtils" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="calledPartyBCDFragmentToString([BII)Ljava/lang/String;" />
-		<method name="calledPartyBCDToString([BII)Ljava/lang/String;" />
-		<method name="compare(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)Z" since="5" />
-		<method name="compare(Ljava/lang/String;Ljava/lang/String;)Z" />
-		<method name="convertKeypadLettersToDigits(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="extractNetworkPortion(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="extractPostDialPortion(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="formatJapaneseNumber(Landroid/text/Editable;)V" since="3" />
-		<method name="formatNanpNumber(Landroid/text/Editable;)V" />
-		<method name="formatNumber(Landroid/text/Editable;I)V" />
-		<method name="formatNumber(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="formatNumber(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" since="21" />
-		<method name="formatNumber(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" since="21" />
-		<method name="formatNumberToE164(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" since="21" />
-		<method name="getFormatTypeForLocale(Ljava/util/Locale;)I" />
-		<method name="getNumberFromIntent(Landroid/content/Intent;Landroid/content/Context;)Ljava/lang/String;" />
-		<method name="getStrippedReversed(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="is12Key(C)Z" />
-		<method name="isDialable(C)Z" />
-		<method name="isEmergencyNumber(Ljava/lang/String;)Z" />
-		<method name="isGlobalPhoneNumber(Ljava/lang/String;)Z" />
-		<method name="isISODigit(C)Z" />
-		<method name="isLocalEmergencyNumber(Landroid/content/Context;Ljava/lang/String;)Z" since="21" />
-		<method name="isNonSeparator(C)Z" />
-		<method name="isReallyDialable(C)Z" />
-		<method name="isStartsPostDial(C)Z" />
-		<method name="isVoiceMailNumber(Ljava/lang/String;)Z" since="21" />
-		<method name="isWellFormedSmsAddress(Ljava/lang/String;)Z" />
-		<method name="networkPortionToCalledPartyBCD(Ljava/lang/String;)[B" />
-		<method name="networkPortionToCalledPartyBCDWithLength(Ljava/lang/String;)[B" />
-		<method name="normalizeNumber(Ljava/lang/String;)Ljava/lang/String;" since="21" />
-		<method name="numberToCalledPartyBCD(Ljava/lang/String;)[B" />
-		<method name="replaceUnicodeDigits(Ljava/lang/String;)Ljava/lang/String;" since="21" />
-		<method name="stringFromStringAndTOA(Ljava/lang/String;I)Ljava/lang/String;" />
-		<method name="stripSeparators(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="toCallerIDMinMatch(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="toaFromString(Ljava/lang/String;)I" />
-		<field name="FORMAT_JAPAN" since="3" />
-		<field name="FORMAT_NANP" />
-		<field name="FORMAT_UNKNOWN" />
-		<field name="PAUSE" />
-		<field name="TOA_International" />
-		<field name="TOA_Unknown" />
-		<field name="WAIT" />
-		<field name="WILD" />
-	</class>
-	<class name="android/telephony/PhoneStateListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="onCallForwardingIndicatorChanged(Z)V" />
-		<method name="onCallStateChanged(ILjava/lang/String;)V" />
-		<method name="onCellInfoChanged(Ljava/util/List;)V" since="17" />
-		<method name="onCellLocationChanged(Landroid/telephony/CellLocation;)V" />
-		<method name="onDataActivity(I)V" />
-		<method name="onDataConnectionStateChanged(I)V" />
-		<method name="onDataConnectionStateChanged(II)V" since="7" />
-		<method name="onMessageWaitingIndicatorChanged(Z)V" />
-		<method name="onServiceStateChanged(Landroid/telephony/ServiceState;)V" />
-		<method name="onSignalStrengthChanged(I)V" />
-		<method name="onSignalStrengthsChanged(Landroid/telephony/SignalStrength;)V" since="7" />
-		<field name="LISTEN_CALL_FORWARDING_INDICATOR" />
-		<field name="LISTEN_CALL_STATE" />
-		<field name="LISTEN_CELL_INFO" since="17" />
-		<field name="LISTEN_CELL_LOCATION" />
-		<field name="LISTEN_DATA_ACTIVITY" />
-		<field name="LISTEN_DATA_CONNECTION_STATE" />
-		<field name="LISTEN_MESSAGE_WAITING_INDICATOR" />
-		<field name="LISTEN_NONE" />
-		<field name="LISTEN_SERVICE_STATE" />
-		<field name="LISTEN_SIGNAL_STRENGTH" />
-		<field name="LISTEN_SIGNAL_STRENGTHS" since="7" />
-	</class>
-	<class name="android/telephony/ServiceState" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" />
-		<method name="&lt;init>(Landroid/telephony/ServiceState;)V" />
-		<method name="copyFrom(Landroid/telephony/ServiceState;)V" />
-		<method name="getIsManualSelection()Z" />
-		<method name="getOperatorAlphaLong()Ljava/lang/String;" />
-		<method name="getOperatorAlphaShort()Ljava/lang/String;" />
-		<method name="getOperatorNumeric()Ljava/lang/String;" />
-		<method name="getRoaming()Z" />
-		<method name="getState()I" />
-		<method name="setIsManualSelection(Z)V" />
-		<method name="setOperatorName(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="setRoaming(Z)V" />
-		<method name="setState(I)V" />
-		<method name="setStateOff()V" />
-		<method name="setStateOutOfService()V" />
-		<field name="CREATOR" />
-		<field name="STATE_EMERGENCY_ONLY" />
-		<field name="STATE_IN_SERVICE" />
-		<field name="STATE_OUT_OF_SERVICE" />
-		<field name="STATE_POWER_OFF" />
-	</class>
-	<class name="android/telephony/SignalStrength" since="7">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getCdmaDbm()I" />
-		<method name="getCdmaEcio()I" />
-		<method name="getEvdoDbm()I" />
-		<method name="getEvdoEcio()I" />
-		<method name="getEvdoSnr()I" />
-		<method name="getGsmBitErrorRate()I" />
-		<method name="getGsmSignalStrength()I" />
-		<method name="isGsm()Z" />
-	</class>
-	<class name="android/telephony/SmsManager" since="4">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="divideMessage(Ljava/lang/String;)Ljava/util/ArrayList;" />
-		<method name="getDefault()Landroid/telephony/SmsManager;" />
-		<method name="sendDataMessage(Ljava/lang/String;Ljava/lang/String;S[BLandroid/app/PendingIntent;Landroid/app/PendingIntent;)V" />
-		<method name="sendMultipartTextMessage(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;)V" />
-		<method name="sendTextMessage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/PendingIntent;Landroid/app/PendingIntent;)V" />
-		<field name="RESULT_ERROR_GENERIC_FAILURE" />
-		<field name="RESULT_ERROR_NO_SERVICE" />
-		<field name="RESULT_ERROR_NULL_PDU" />
-		<field name="RESULT_ERROR_RADIO_OFF" />
-		<field name="STATUS_ON_ICC_FREE" />
-		<field name="STATUS_ON_ICC_READ" />
-		<field name="STATUS_ON_ICC_SENT" />
-		<field name="STATUS_ON_ICC_UNREAD" />
-		<field name="STATUS_ON_ICC_UNSENT" />
-	</class>
-	<class name="android/telephony/SmsMessage" since="4">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="calculateLength(Ljava/lang/CharSequence;Z)[I" />
-		<method name="calculateLength(Ljava/lang/String;Z)[I" />
-		<method name="createFromPdu([B)Landroid/telephony/SmsMessage;" />
-		<method name="getDisplayMessageBody()Ljava/lang/String;" />
-		<method name="getDisplayOriginatingAddress()Ljava/lang/String;" />
-		<method name="getEmailBody()Ljava/lang/String;" />
-		<method name="getEmailFrom()Ljava/lang/String;" />
-		<method name="getIndexOnIcc()I" />
-		<method name="getIndexOnSim()I" />
-		<method name="getMessageBody()Ljava/lang/String;" />
-		<method name="getMessageClass()Landroid/telephony/SmsMessage$MessageClass;" />
-		<method name="getOriginatingAddress()Ljava/lang/String;" />
-		<method name="getPdu()[B" />
-		<method name="getProtocolIdentifier()I" />
-		<method name="getPseudoSubject()Ljava/lang/String;" />
-		<method name="getServiceCenterAddress()Ljava/lang/String;" />
-		<method name="getStatus()I" />
-		<method name="getStatusOnIcc()I" />
-		<method name="getStatusOnSim()I" />
-		<method name="getSubmitPdu(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Landroid/telephony/SmsMessage$SubmitPdu;" />
-		<method name="getSubmitPdu(Ljava/lang/String;Ljava/lang/String;S[BZ)Landroid/telephony/SmsMessage$SubmitPdu;" />
-		<method name="getTPLayerLengthForPDU(Ljava/lang/String;)I" />
-		<method name="getTimestampMillis()J" />
-		<method name="getUserData()[B" />
-		<method name="isCphsMwiMessage()Z" />
-		<method name="isEmail()Z" />
-		<method name="isMWIClearMessage()Z" />
-		<method name="isMWISetMessage()Z" />
-		<method name="isMwiDontStore()Z" />
-		<method name="isReplace()Z" />
-		<method name="isReplyPathPresent()Z" />
-		<method name="isStatusReportMessage()Z" />
-		<field name="ENCODING_16BIT" />
-		<field name="ENCODING_7BIT" />
-		<field name="ENCODING_8BIT" />
-		<field name="ENCODING_UNKNOWN" />
-		<field name="MAX_USER_DATA_BYTES" />
-		<field name="MAX_USER_DATA_BYTES_WITH_HEADER" />
-		<field name="MAX_USER_DATA_SEPTETS" />
-		<field name="MAX_USER_DATA_SEPTETS_WITH_HEADER" />
-	</class>
-	<class name="android/telephony/SmsMessage$MessageClass" since="4">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/telephony/SmsMessage$MessageClass;" />
-		<method name="values()[Landroid/telephony/SmsMessage$MessageClass;" />
-		<field name="CLASS_0" />
-		<field name="CLASS_1" />
-		<field name="CLASS_2" />
-		<field name="CLASS_3" />
-		<field name="UNKNOWN" />
-	</class>
-	<class name="android/telephony/SmsMessage$SubmitPdu" since="4">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="encodedMessage" />
-		<field name="encodedScAddress" />
-	</class>
-	<class name="android/telephony/TelephonyManager" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getAllCellInfo()Ljava/util/List;" since="17" />
-		<method name="getCallState()I" />
-		<method name="getCellLocation()Landroid/telephony/CellLocation;" />
-		<method name="getDataActivity()I" />
-		<method name="getDataState()I" />
-		<method name="getDeviceId()Ljava/lang/String;" />
-		<method name="getDeviceSoftwareVersion()Ljava/lang/String;" />
-		<method name="getGroupIdLevel1()Ljava/lang/String;" since="18" />
-		<method name="getLine1Number()Ljava/lang/String;" />
-		<method name="getMmsUAProfUrl()Ljava/lang/String;" since="19" />
-		<method name="getMmsUserAgent()Ljava/lang/String;" since="19" />
-		<method name="getNeighboringCellInfo()Ljava/util/List;" since="3" />
-		<method name="getNetworkCountryIso()Ljava/lang/String;" />
-		<method name="getNetworkOperator()Ljava/lang/String;" />
-		<method name="getNetworkOperatorName()Ljava/lang/String;" />
-		<method name="getNetworkType()I" />
-		<method name="getPhoneType()I" />
-		<method name="getSimCountryIso()Ljava/lang/String;" />
-		<method name="getSimOperator()Ljava/lang/String;" />
-		<method name="getSimOperatorName()Ljava/lang/String;" />
-		<method name="getSimSerialNumber()Ljava/lang/String;" />
-		<method name="getSimState()I" />
-		<method name="getSubscriberId()Ljava/lang/String;" />
-		<method name="getVoiceMailAlphaTag()Ljava/lang/String;" />
-		<method name="getVoiceMailNumber()Ljava/lang/String;" />
-		<method name="hasIccCard()Z" since="5" />
-		<method name="isNetworkRoaming()Z" />
-		<method name="listen(Landroid/telephony/PhoneStateListener;I)V" />
-		<field name="ACTION_PHONE_STATE_CHANGED" since="3" />
-		<field name="ACTION_RESPOND_VIA_MESSAGE" since="18" />
-		<field name="CALL_STATE_IDLE" />
-		<field name="CALL_STATE_OFFHOOK" />
-		<field name="CALL_STATE_RINGING" />
-		<field name="DATA_ACTIVITY_DORMANT" since="4" />
-		<field name="DATA_ACTIVITY_IN" />
-		<field name="DATA_ACTIVITY_INOUT" />
-		<field name="DATA_ACTIVITY_NONE" />
-		<field name="DATA_ACTIVITY_OUT" />
-		<field name="DATA_CONNECTED" />
-		<field name="DATA_CONNECTING" />
-		<field name="DATA_DISCONNECTED" />
-		<field name="DATA_SUSPENDED" />
-		<field name="EXTRA_INCOMING_NUMBER" since="3" />
-		<field name="EXTRA_STATE" since="3" />
-		<field name="EXTRA_STATE_IDLE" since="3" />
-		<field name="EXTRA_STATE_OFFHOOK" since="3" />
-		<field name="EXTRA_STATE_RINGING" since="3" />
-		<field name="NETWORK_TYPE_1xRTT" since="4" />
-		<field name="NETWORK_TYPE_CDMA" since="4" />
-		<field name="NETWORK_TYPE_EDGE" />
-		<field name="NETWORK_TYPE_EHRPD" since="11" />
-		<field name="NETWORK_TYPE_EVDO_0" since="4" />
-		<field name="NETWORK_TYPE_EVDO_A" since="4" />
-		<field name="NETWORK_TYPE_EVDO_B" since="9" />
-		<field name="NETWORK_TYPE_GPRS" />
-		<field name="NETWORK_TYPE_HSDPA" since="5" />
-		<field name="NETWORK_TYPE_HSPA" since="5" />
-		<field name="NETWORK_TYPE_HSPAP" since="13" />
-		<field name="NETWORK_TYPE_HSUPA" since="5" />
-		<field name="NETWORK_TYPE_IDEN" since="8" />
-		<field name="NETWORK_TYPE_LTE" since="11" />
-		<field name="NETWORK_TYPE_UMTS" />
-		<field name="NETWORK_TYPE_UNKNOWN" />
-		<field name="PHONE_TYPE_CDMA" since="4" />
-		<field name="PHONE_TYPE_GSM" />
-		<field name="PHONE_TYPE_NONE" />
-		<field name="PHONE_TYPE_SIP" since="11" />
-		<field name="SIM_STATE_ABSENT" />
-		<field name="SIM_STATE_NETWORK_LOCKED" />
-		<field name="SIM_STATE_PIN_REQUIRED" />
-		<field name="SIM_STATE_PUK_REQUIRED" />
-		<field name="SIM_STATE_READY" />
-		<field name="SIM_STATE_UNKNOWN" />
-	</class>
-	<class name="android/telephony/cdma/CdmaCellLocation" since="5">
-		<extends name="android/telephony/CellLocation" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/os/Bundle;)V" />
-		<method name="convertQuartSecToDecDegrees(I)D" since="17" />
-		<method name="fillInNotifierBundle(Landroid/os/Bundle;)V" />
-		<method name="getBaseStationId()I" />
-		<method name="getBaseStationLatitude()I" />
-		<method name="getBaseStationLongitude()I" />
-		<method name="getNetworkId()I" />
-		<method name="getSystemId()I" />
-		<method name="setCellLocationData(III)V" />
-		<method name="setCellLocationData(IIIII)V" />
-		<method name="setStateInvalid()V" />
-	</class>
-	<class name="android/telephony/gsm/GsmCellLocation" since="1">
-		<extends name="android/telephony/CellLocation" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/os/Bundle;)V" />
-		<method name="fillInNotifierBundle(Landroid/os/Bundle;)V" />
-		<method name="getCid()I" />
-		<method name="getLac()I" />
-		<method name="getPsc()I" since="9" />
-		<method name="setLacAndCid(II)V" />
-		<method name="setStateInvalid()V" />
-	</class>
-	<class name="android/telephony/gsm/SmsManager" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="divideMessage(Ljava/lang/String;)Ljava/util/ArrayList;" />
-		<method name="getDefault()Landroid/telephony/gsm/SmsManager;" />
-		<method name="sendDataMessage(Ljava/lang/String;Ljava/lang/String;S[BLandroid/app/PendingIntent;Landroid/app/PendingIntent;)V" />
-		<method name="sendMultipartTextMessage(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;)V" />
-		<method name="sendTextMessage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/PendingIntent;Landroid/app/PendingIntent;)V" />
-		<field name="RESULT_ERROR_GENERIC_FAILURE" />
-		<field name="RESULT_ERROR_NO_SERVICE" />
-		<field name="RESULT_ERROR_NULL_PDU" />
-		<field name="RESULT_ERROR_RADIO_OFF" />
-		<field name="STATUS_ON_SIM_FREE" />
-		<field name="STATUS_ON_SIM_READ" />
-		<field name="STATUS_ON_SIM_SENT" />
-		<field name="STATUS_ON_SIM_UNREAD" />
-		<field name="STATUS_ON_SIM_UNSENT" />
-	</class>
-	<class name="android/telephony/gsm/SmsMessage" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="calculateLength(Ljava/lang/CharSequence;Z)[I" since="3" />
-		<method name="calculateLength(Ljava/lang/String;Z)[I" />
-		<method name="createFromPdu([B)Landroid/telephony/gsm/SmsMessage;" />
-		<method name="getDisplayMessageBody()Ljava/lang/String;" />
-		<method name="getDisplayOriginatingAddress()Ljava/lang/String;" />
-		<method name="getEmailBody()Ljava/lang/String;" />
-		<method name="getEmailFrom()Ljava/lang/String;" />
-		<method name="getIndexOnSim()I" />
-		<method name="getMessageBody()Ljava/lang/String;" />
-		<method name="getMessageClass()Landroid/telephony/gsm/SmsMessage$MessageClass;" />
-		<method name="getOriginatingAddress()Ljava/lang/String;" />
-		<method name="getPdu()[B" />
-		<method name="getProtocolIdentifier()I" />
-		<method name="getPseudoSubject()Ljava/lang/String;" />
-		<method name="getServiceCenterAddress()Ljava/lang/String;" />
-		<method name="getStatus()I" />
-		<method name="getStatusOnSim()I" />
-		<method name="getSubmitPdu(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Landroid/telephony/gsm/SmsMessage$SubmitPdu;" />
-		<method name="getSubmitPdu(Ljava/lang/String;Ljava/lang/String;S[BZ)Landroid/telephony/gsm/SmsMessage$SubmitPdu;" />
-		<method name="getTPLayerLengthForPDU(Ljava/lang/String;)I" />
-		<method name="getTimestampMillis()J" />
-		<method name="getUserData()[B" />
-		<method name="isCphsMwiMessage()Z" />
-		<method name="isEmail()Z" />
-		<method name="isMWIClearMessage()Z" />
-		<method name="isMWISetMessage()Z" />
-		<method name="isMwiDontStore()Z" />
-		<method name="isReplace()Z" />
-		<method name="isReplyPathPresent()Z" />
-		<method name="isStatusReportMessage()Z" />
-		<field name="ENCODING_16BIT" />
-		<field name="ENCODING_7BIT" />
-		<field name="ENCODING_8BIT" />
-		<field name="ENCODING_UNKNOWN" />
-		<field name="MAX_USER_DATA_BYTES" />
-		<field name="MAX_USER_DATA_SEPTETS" />
-		<field name="MAX_USER_DATA_SEPTETS_WITH_HEADER" />
-	</class>
-	<class name="android/telephony/gsm/SmsMessage$MessageClass" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/telephony/gsm/SmsMessage$MessageClass;" />
-		<method name="values()[Landroid/telephony/gsm/SmsMessage$MessageClass;" />
-		<field name="CLASS_0" />
-		<field name="CLASS_1" />
-		<field name="CLASS_2" />
-		<field name="CLASS_3" />
-		<field name="UNKNOWN" />
-	</class>
-	<class name="android/telephony/gsm/SmsMessage$SubmitPdu" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="encodedMessage" />
-		<field name="encodedScAddress" />
-	</class>
-	<class name="android/test/ActivityInstrumentationTestCase" since="1">
-		<extends name="android/test/ActivityTestCase" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Class;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Class;Z)V" />
-		<method name="testActivityTestCaseSetUpProperly()V" />
-	</class>
-	<class name="android/test/ActivityInstrumentationTestCase2" since="3">
-		<extends name="android/test/ActivityTestCase" />
-		<method name="&lt;init>(Ljava/lang/Class;)V" since="8" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Class;)V" />
-		<method name="setActivityInitialTouchMode(Z)V" />
-		<method name="setActivityIntent(Landroid/content/Intent;)V" />
-	</class>
-	<class name="android/test/ActivityTestCase" since="1">
-		<extends name="android/test/InstrumentationTestCase" />
-		<method name="&lt;init>()V" />
-		<method name="getActivity()Landroid/app/Activity;" />
-		<method name="scrubClass(Ljava/lang/Class;)V" />
-		<method name="setActivity(Landroid/app/Activity;)V" />
-	</class>
-	<class name="android/test/ActivityUnitTestCase" since="1">
-		<extends name="android/test/ActivityTestCase" />
-		<method name="&lt;init>(Ljava/lang/Class;)V" />
-		<method name="getFinishedActivityRequest()I" />
-		<method name="getRequestedOrientation()I" />
-		<method name="getStartedActivityIntent()Landroid/content/Intent;" />
-		<method name="getStartedActivityRequest()I" />
-		<method name="isFinishCalled()Z" />
-		<method name="setActivityContext(Landroid/content/Context;)V" />
-		<method name="setApplication(Landroid/app/Application;)V" />
-		<method name="startActivity(Landroid/content/Intent;Landroid/os/Bundle;Ljava/lang/Object;)Landroid/app/Activity;" />
-	</class>
-	<class name="android/test/AndroidTestCase" since="1">
-		<extends name="junit/framework/TestCase" />
-		<method name="&lt;init>()V" />
-		<method name="assertActivityRequiresPermission(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" since="4" />
-		<method name="assertReadingContentUriRequiresPermission(Landroid/net/Uri;Ljava/lang/String;)V" since="4" />
-		<method name="assertWritingContentUriRequiresPermission(Landroid/net/Uri;Ljava/lang/String;)V" since="4" />
-		<method name="getContext()Landroid/content/Context;" />
-		<method name="scrubClass(Ljava/lang/Class;)V" />
-		<method name="setContext(Landroid/content/Context;)V" />
-		<method name="testAndroidTestCaseSetupProperly()V" />
-		<field name="mContext" />
-	</class>
-	<class name="android/test/AndroidTestRunner" since="1">
-		<extends name="junit/runner/BaseTestRunner" />
-		<method name="&lt;init>()V" />
-		<method name="addTestListener(Ljunit/framework/TestListener;)V" />
-		<method name="clearTestListeners()V" />
-		<method name="createTestResult()Ljunit/framework/TestResult;" />
-		<method name="getTestCases()Ljava/util/List;" />
-		<method name="getTestClassName()Ljava/lang/String;" />
-		<method name="getTestResult()Ljunit/framework/TestResult;" />
-		<method name="runTest()V" />
-		<method name="runTest(Ljunit/framework/TestResult;)V" />
-		<method name="setContext(Landroid/content/Context;)V" />
-		<method name="setInstrumentaiton(Landroid/app/Instrumentation;)V" />
-		<method name="setInstrumentation(Landroid/app/Instrumentation;)V" since="5" />
-		<method name="setTest(Ljunit/framework/Test;)V" />
-		<method name="setTestClassName(Ljava/lang/String;Ljava/lang/String;)V" />
-	</class>
-	<class name="android/test/ApplicationTestCase" since="1">
-		<extends name="android/test/AndroidTestCase" />
-		<method name="&lt;init>(Ljava/lang/Class;)V" />
-		<method name="createApplication()V" />
-		<method name="getApplication()Landroid/app/Application;" />
-		<method name="getSystemContext()Landroid/content/Context;" />
-		<method name="terminateApplication()V" />
-		<method name="testApplicationTestCaseSetUpProperly()V" />
-	</class>
-	<class name="android/test/AssertionFailedError" since="1">
-		<extends name="java/lang/Error" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/test/ComparisonFailure" since="1">
-		<extends name="android/test/AssertionFailedError" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-	</class>
-	<class name="android/test/FlakyTest" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/annotation/Annotation" />
-		<method name="tolerance()I" />
-	</class>
-	<class name="android/test/InstrumentationTestCase" since="1">
-		<extends name="junit/framework/TestCase" />
-		<method name="&lt;init>()V" />
-		<method name="getInstrumentation()Landroid/app/Instrumentation;" />
-		<method name="injectInsrumentation(Landroid/app/Instrumentation;)V" />
-		<method name="injectInstrumentation(Landroid/app/Instrumentation;)V" since="5" />
-		<method name="launchActivity(Ljava/lang/String;Ljava/lang/Class;Landroid/os/Bundle;)Landroid/app/Activity;" />
-		<method name="launchActivityWithIntent(Ljava/lang/String;Ljava/lang/Class;Landroid/content/Intent;)Landroid/app/Activity;" since="3" />
-		<method name="runTestOnUiThread(Ljava/lang/Runnable;)V" since="3" />
-		<method name="sendKeys(Ljava/lang/String;)V" />
-		<method name="sendKeys([I)V" />
-		<method name="sendRepeatedKeys([I)V" />
-	</class>
-	<class name="android/test/InstrumentationTestRunner" since="1">
-		<extends name="android/app/Instrumentation" />
-		<implements name="android/test/TestSuiteProvider" />
-		<method name="&lt;init>()V" />
-		<method name="getAllTests()Ljunit/framework/TestSuite;" />
-		<method name="getAndroidTestRunner()Landroid/test/AndroidTestRunner;" />
-		<method name="getArguments()Landroid/os/Bundle;" since="18" />
-		<method name="getLoader()Ljava/lang/ClassLoader;" />
-		<field name="REPORT_KEY_NAME_CLASS" />
-		<field name="REPORT_KEY_NAME_TEST" />
-		<field name="REPORT_KEY_NUM_CURRENT" />
-		<field name="REPORT_KEY_NUM_TOTAL" />
-		<field name="REPORT_KEY_STACK" />
-		<field name="REPORT_VALUE_ID" />
-		<field name="REPORT_VALUE_RESULT_ERROR" />
-		<field name="REPORT_VALUE_RESULT_FAILURE" />
-		<field name="REPORT_VALUE_RESULT_OK" />
-		<field name="REPORT_VALUE_RESULT_START" />
-	</class>
-	<class name="android/test/InstrumentationTestSuite" since="1">
-		<extends name="junit/framework/TestSuite" />
-		<method name="&lt;init>(Landroid/app/Instrumentation;)V" />
-		<method name="&lt;init>(Ljava/lang/Class;Landroid/app/Instrumentation;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Landroid/app/Instrumentation;)V" />
-	</class>
-	<class name="android/test/IsolatedContext" since="1">
-		<extends name="android/content/ContextWrapper" />
-		<method name="&lt;init>(Landroid/content/ContentResolver;Landroid/content/Context;)V" />
-		<method name="getAndClearBroadcastIntents()Ljava/util/List;" />
-	</class>
-	<class name="android/test/LoaderTestCase" since="11">
-		<extends name="android/test/AndroidTestCase" />
-		<method name="&lt;init>()V" />
-		<method name="getLoaderResultSynchronously(Landroid/content/Loader;)Ljava/lang/Object;" />
-	</class>
-	<class name="android/test/MoreAsserts" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="assertAssignableFrom(Ljava/lang/Class;Ljava/lang/Class;)V" />
-		<method name="assertAssignableFrom(Ljava/lang/Class;Ljava/lang/Object;)V" />
-		<method name="assertContainsRegex(Ljava/lang/String;Ljava/lang/String;)Ljava/util/regex/MatchResult;" />
-		<method name="assertContainsRegex(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/regex/MatchResult;" />
-		<method name="assertContentsInAnyOrder(Ljava/lang/Iterable;[Ljava/lang/Object;)V" />
-		<method name="assertContentsInAnyOrder(Ljava/lang/String;Ljava/lang/Iterable;[Ljava/lang/Object;)V" />
-		<method name="assertContentsInOrder(Ljava/lang/Iterable;[Ljava/lang/Object;)V" />
-		<method name="assertContentsInOrder(Ljava/lang/String;Ljava/lang/Iterable;[Ljava/lang/Object;)V" />
-		<method name="assertEmpty(Ljava/lang/Iterable;)V" />
-		<method name="assertEmpty(Ljava/lang/String;Ljava/lang/Iterable;)V" />
-		<method name="assertEmpty(Ljava/lang/String;Ljava/util/Map;)V" />
-		<method name="assertEmpty(Ljava/util/Map;)V" />
-		<method name="assertEquals(Ljava/lang/String;Ljava/util/Set;Ljava/util/Set;)V" />
-		<method name="assertEquals(Ljava/lang/String;[B[B)V" />
-		<method name="assertEquals(Ljava/lang/String;[D[D)V" />
-		<method name="assertEquals(Ljava/lang/String;[I[I)V" />
-		<method name="assertEquals(Ljava/lang/String;[Ljava/lang/Object;[Ljava/lang/Object;)V" />
-		<method name="assertEquals(Ljava/util/Set;Ljava/util/Set;)V" />
-		<method name="assertEquals([B[B)V" />
-		<method name="assertEquals([D[D)V" />
-		<method name="assertEquals([I[I)V" />
-		<method name="assertEquals([Ljava/lang/Object;[Ljava/lang/Object;)V" />
-		<method name="assertMatchesRegex(Ljava/lang/String;Ljava/lang/String;)Ljava/util/regex/MatchResult;" />
-		<method name="assertMatchesRegex(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/regex/MatchResult;" />
-		<method name="assertNotContainsRegex(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="assertNotContainsRegex(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="assertNotEmpty(Ljava/lang/Iterable;)V" />
-		<method name="assertNotEmpty(Ljava/lang/String;Ljava/lang/Iterable;)V" />
-		<method name="assertNotEmpty(Ljava/lang/String;Ljava/util/Map;)V" />
-		<method name="assertNotEmpty(Ljava/util/Map;)V" />
-		<method name="assertNotEqual(Ljava/lang/Object;Ljava/lang/Object;)V" />
-		<method name="assertNotEqual(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V" />
-		<method name="assertNotMatchesRegex(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="assertNotMatchesRegex(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="checkEqualsAndHashCodeMethods(Ljava/lang/Object;Ljava/lang/Object;Z)V" />
-		<method name="checkEqualsAndHashCodeMethods(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Z)V" />
-	</class>
-	<class name="android/test/PerformanceTestCase" since="1">
-		<extends name="java/lang/Object" />
-		<method name="isPerformanceOnly()Z" />
-		<method name="startPerformance(Landroid/test/PerformanceTestCase$Intermediates;)I" />
-	</class>
-	<class name="android/test/PerformanceTestCase$Intermediates" since="1">
-		<extends name="java/lang/Object" />
-		<method name="addIntermediate(Ljava/lang/String;)V" />
-		<method name="addIntermediate(Ljava/lang/String;J)V" />
-		<method name="finishTiming(Z)V" />
-		<method name="setInternalIterations(I)V" />
-		<method name="startTiming(Z)V" />
-	</class>
-	<class name="android/test/ProviderTestCase" since="1">
-		<extends name="android/test/InstrumentationTestCase" />
-		<method name="&lt;init>(Ljava/lang/Class;Ljava/lang/String;)V" />
-		<method name="getMockContentResolver()Landroid/test/mock/MockContentResolver;" />
-		<method name="getMockContext()Landroid/test/IsolatedContext;" />
-		<method name="getProvider()Landroid/content/ContentProvider;" />
-		<method name="newResolverWithContentProviderFromSql(Landroid/content/Context;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)Landroid/content/ContentResolver;" />
-	</class>
-	<class name="android/test/ProviderTestCase2" since="3">
-		<extends name="android/test/AndroidTestCase" />
-		<method name="&lt;init>(Ljava/lang/Class;Ljava/lang/String;)V" />
-		<method name="getMockContentResolver()Landroid/test/mock/MockContentResolver;" />
-		<method name="getMockContext()Landroid/test/IsolatedContext;" />
-		<method name="getProvider()Landroid/content/ContentProvider;" />
-		<method name="newResolverWithContentProviderFromSql(Landroid/content/Context;Ljava/lang/String;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)Landroid/content/ContentResolver;" />
-	</class>
-	<class name="android/test/RenamingDelegatingContext" since="1">
-		<extends name="android/content/ContextWrapper" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/content/Context;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Ljava/lang/String;)V" />
-		<method name="getDatabasePrefix()Ljava/lang/String;" />
-		<method name="makeExistingFilesAndDbsAccessible()V" />
-		<method name="providerWithRenamedContext(Ljava/lang/Class;Landroid/content/Context;Ljava/lang/String;)Landroid/content/ContentProvider;" />
-		<method name="providerWithRenamedContext(Ljava/lang/Class;Landroid/content/Context;Ljava/lang/String;Z)Landroid/content/ContentProvider;" />
-	</class>
-	<class name="android/test/ServiceTestCase" since="1">
-		<extends name="android/test/AndroidTestCase" />
-		<method name="&lt;init>(Ljava/lang/Class;)V" />
-		<method name="bindService(Landroid/content/Intent;)Landroid/os/IBinder;" />
-		<method name="getApplication()Landroid/app/Application;" />
-		<method name="getService()Landroid/app/Service;" />
-		<method name="getSystemContext()Landroid/content/Context;" />
-		<method name="setApplication(Landroid/app/Application;)V" />
-		<method name="setupService()V" />
-		<method name="shutdownService()V" />
-		<method name="startService(Landroid/content/Intent;)V" />
-		<method name="testServiceTestCaseSetUpProperly()V" />
-	</class>
-	<class name="android/test/SingleLaunchActivityTestCase" since="1">
-		<extends name="android/test/InstrumentationTestCase" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Class;)V" />
-		<method name="getActivity()Landroid/app/Activity;" />
-		<method name="testActivityTestCaseSetUpProperly()V" />
-	</class>
-	<class name="android/test/SyncBaseInstrumentation" since="1">
-		<extends name="android/test/InstrumentationTestCase" />
-		<method name="&lt;init>()V" />
-		<method name="cancelSyncsandDisableAutoSync()V" />
-		<method name="syncProvider(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;)V" />
-	</class>
-	<class name="android/test/TestSuiteProvider" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getTestSuite()Ljunit/framework/TestSuite;" />
-	</class>
-	<class name="android/test/TouchUtils" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="clickView(Landroid/test/InstrumentationTestCase;Landroid/view/View;)V" />
-		<method name="drag(Landroid/test/ActivityInstrumentationTestCase;FFFFI)V" />
-		<method name="drag(Landroid/test/InstrumentationTestCase;FFFFI)V" since="3" />
-		<method name="dragQuarterScreenDown(Landroid/test/ActivityInstrumentationTestCase;)V" />
-		<method name="dragQuarterScreenDown(Landroid/test/InstrumentationTestCase;Landroid/app/Activity;)V" since="3" />
-		<method name="dragQuarterScreenUp(Landroid/test/ActivityInstrumentationTestCase;)V" />
-		<method name="dragQuarterScreenUp(Landroid/test/InstrumentationTestCase;Landroid/app/Activity;)V" since="3" />
-		<method name="dragViewBy(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;III)I" />
-		<method name="dragViewBy(Landroid/test/InstrumentationTestCase;Landroid/view/View;III)I" since="3" />
-		<method name="dragViewTo(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;III)I" />
-		<method name="dragViewTo(Landroid/test/InstrumentationTestCase;Landroid/view/View;III)I" since="3" />
-		<method name="dragViewToBottom(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;)V" />
-		<method name="dragViewToBottom(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;I)V" />
-		<method name="dragViewToBottom(Landroid/test/InstrumentationTestCase;Landroid/app/Activity;Landroid/view/View;)V" since="3" />
-		<method name="dragViewToBottom(Landroid/test/InstrumentationTestCase;Landroid/app/Activity;Landroid/view/View;I)V" since="3" />
-		<method name="dragViewToTop(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;)V" />
-		<method name="dragViewToTop(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;I)V" />
-		<method name="dragViewToTop(Landroid/test/InstrumentationTestCase;Landroid/view/View;)V" since="3" />
-		<method name="dragViewToTop(Landroid/test/InstrumentationTestCase;Landroid/view/View;I)V" since="3" />
-		<method name="dragViewToX(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;II)I" />
-		<method name="dragViewToX(Landroid/test/InstrumentationTestCase;Landroid/view/View;II)I" since="3" />
-		<method name="dragViewToY(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;II)I" />
-		<method name="dragViewToY(Landroid/test/InstrumentationTestCase;Landroid/view/View;II)I" since="3" />
-		<method name="longClickView(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;)V" />
-		<method name="longClickView(Landroid/test/InstrumentationTestCase;Landroid/view/View;)V" since="3" />
-		<method name="scrollToBottom(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/ViewGroup;)V" />
-		<method name="scrollToBottom(Landroid/test/InstrumentationTestCase;Landroid/app/Activity;Landroid/view/ViewGroup;)V" since="3" />
-		<method name="scrollToTop(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/ViewGroup;)V" />
-		<method name="scrollToTop(Landroid/test/InstrumentationTestCase;Landroid/app/Activity;Landroid/view/ViewGroup;)V" since="3" />
-		<method name="tapView(Landroid/test/InstrumentationTestCase;Landroid/view/View;)V" />
-		<method name="touchAndCancelView(Landroid/test/InstrumentationTestCase;Landroid/view/View;)V" />
-	</class>
-	<class name="android/test/UiThreadTest" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/annotation/Annotation" />
-	</class>
-	<class name="android/test/ViewAsserts" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="assertBaselineAligned(Landroid/view/View;Landroid/view/View;)V" />
-		<method name="assertBottomAligned(Landroid/view/View;Landroid/view/View;)V" />
-		<method name="assertBottomAligned(Landroid/view/View;Landroid/view/View;I)V" />
-		<method name="assertGroupContains(Landroid/view/ViewGroup;Landroid/view/View;)V" />
-		<method name="assertGroupIntegrity(Landroid/view/ViewGroup;)V" />
-		<method name="assertGroupNotContains(Landroid/view/ViewGroup;Landroid/view/View;)V" />
-		<method name="assertHasScreenCoordinates(Landroid/view/View;Landroid/view/View;II)V" />
-		<method name="assertHorizontalCenterAligned(Landroid/view/View;Landroid/view/View;)V" />
-		<method name="assertLeftAligned(Landroid/view/View;Landroid/view/View;)V" />
-		<method name="assertLeftAligned(Landroid/view/View;Landroid/view/View;I)V" />
-		<method name="assertOffScreenAbove(Landroid/view/View;Landroid/view/View;)V" />
-		<method name="assertOffScreenBelow(Landroid/view/View;Landroid/view/View;)V" />
-		<method name="assertOnScreen(Landroid/view/View;Landroid/view/View;)V" />
-		<method name="assertRightAligned(Landroid/view/View;Landroid/view/View;)V" />
-		<method name="assertRightAligned(Landroid/view/View;Landroid/view/View;I)V" />
-		<method name="assertTopAligned(Landroid/view/View;Landroid/view/View;)V" />
-		<method name="assertTopAligned(Landroid/view/View;Landroid/view/View;I)V" />
-		<method name="assertVerticalCenterAligned(Landroid/view/View;Landroid/view/View;)V" />
-	</class>
-	<class name="android/test/mock/MockApplication" since="1">
-		<extends name="android/app/Application" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/test/mock/MockContentProvider" since="8">
-		<extends name="android/content/ContentProvider" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;[Landroid/content/pm/PathPermission;)V" />
-	</class>
-	<class name="android/test/mock/MockContentResolver" since="1">
-		<extends name="android/content/ContentResolver" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/content/Context;)V" since="18" />
-		<method name="addProvider(Ljava/lang/String;Landroid/content/ContentProvider;)V" />
-	</class>
-	<class name="android/test/mock/MockContext" since="1">
-		<extends name="android/content/Context" />
-		<method name="&lt;init>()V" />
-		<method name="getPackageCodePath()Ljava/lang/String;" />
-		<method name="getPackageResourcePath()Ljava/lang/String;" />
-	</class>
-	<class name="android/test/mock/MockCursor" since="8">
-		<extends name="java/lang/Object" />
-		<implements name="android/database/Cursor" />
-		<method name="&lt;init>()V" />
-		<method name="abortUpdates()V" />
-		<method name="commitUpdates()Z" />
-		<method name="commitUpdates(Ljava/util/Map;)Z" />
-		<method name="deleteRow()Z" />
-		<method name="hasUpdates()Z" />
-		<method name="supportsUpdates()Z" />
-		<method name="updateBlob(I[B)Z" />
-		<method name="updateDouble(ID)Z" />
-		<method name="updateFloat(IF)Z" />
-		<method name="updateInt(II)Z" />
-		<method name="updateLong(IJ)Z" />
-		<method name="updateShort(IS)Z" />
-		<method name="updateString(ILjava/lang/String;)Z" />
-		<method name="updateToNull(I)Z" />
-	</class>
-	<class name="android/test/mock/MockDialogInterface" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/content/DialogInterface" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/test/mock/MockPackageManager" since="1">
-		<extends name="android/content/pm/PackageManager" />
-		<method name="&lt;init>()V" />
-		<method name="setPackageObbPath(Ljava/lang/String;Ljava/lang/String;)V" since="9" />
-	</class>
-	<class name="android/test/mock/MockResources" since="1">
-		<extends name="android/content/res/Resources" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/test/suitebuilder/TestMethod" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Class;)V" since="3" />
-		<method name="&lt;init>(Ljava/lang/reflect/Method;Ljava/lang/Class;)V" />
-		<method name="&lt;init>(Ljunit/framework/TestCase;)V" since="3" />
-		<method name="createTest()Ljunit/framework/TestCase;" />
-		<method name="getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;" />
-		<method name="getEnclosingClass()Ljava/lang/Class;" />
-		<method name="getEnclosingClassname()Ljava/lang/String;" />
-		<method name="getName()Ljava/lang/String;" />
-	</class>
-	<class name="android/test/suitebuilder/TestSuiteBuilder" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/Class;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/ClassLoader;)V" />
-		<method name="addRequirements(Ljava/util/List;)Landroid/test/suitebuilder/TestSuiteBuilder;" />
-		<method name="addRequirements([Lcom/android/internal/util/Predicate;)Landroid/test/suitebuilder/TestSuiteBuilder;" />
-		<method name="build()Ljunit/framework/TestSuite;" />
-		<method name="excludePackages([Ljava/lang/String;)Landroid/test/suitebuilder/TestSuiteBuilder;" />
-		<method name="getSuiteName()Ljava/lang/String;" />
-		<method name="includeAllPackagesUnderHere()Landroid/test/suitebuilder/TestSuiteBuilder;" />
-		<method name="includePackages([Ljava/lang/String;)Landroid/test/suitebuilder/TestSuiteBuilder;" />
-		<method name="named(Ljava/lang/String;)Landroid/test/suitebuilder/TestSuiteBuilder;" />
-	</class>
-	<class name="android/test/suitebuilder/TestSuiteBuilder$FailedToCreateTests" since="1">
-		<extends name="junit/framework/TestCase" />
-		<method name="&lt;init>(Ljava/lang/Exception;)V" />
-		<method name="testSuiteConstructionFailed()V" />
-	</class>
-	<class name="android/test/suitebuilder/annotation/LargeTest" since="2">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/annotation/Annotation" />
-	</class>
-	<class name="android/test/suitebuilder/annotation/MediumTest" since="2">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/annotation/Annotation" />
-	</class>
-	<class name="android/test/suitebuilder/annotation/SmallTest" since="2">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/annotation/Annotation" />
-	</class>
-	<class name="android/test/suitebuilder/annotation/Smoke" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/annotation/Annotation" />
-	</class>
-	<class name="android/test/suitebuilder/annotation/Suppress" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/annotation/Annotation" />
-	</class>
-	<class name="android/text/AlteredCharSequence" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/text/GetChars" />
-		<implements name="java/lang/CharSequence" />
-		<method name="&lt;init>()V" />
-		<method name="make(Ljava/lang/CharSequence;[CII)Landroid/text/AlteredCharSequence;" />
-	</class>
-	<class name="android/text/AndroidCharacter" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getDirectionalities([C[BI)V" />
-		<method name="getEastAsianWidth(C)I" since="8" />
-		<method name="getEastAsianWidths([CII[B)V" since="8" />
-		<method name="getMirror(C)C" />
-		<method name="mirror([CII)Z" />
-		<field name="EAST_ASIAN_WIDTH_AMBIGUOUS" since="8" />
-		<field name="EAST_ASIAN_WIDTH_FULL_WIDTH" since="8" />
-		<field name="EAST_ASIAN_WIDTH_HALF_WIDTH" since="8" />
-		<field name="EAST_ASIAN_WIDTH_NARROW" since="8" />
-		<field name="EAST_ASIAN_WIDTH_NEUTRAL" since="8" />
-		<field name="EAST_ASIAN_WIDTH_WIDE" since="8" />
-	</class>
-	<class name="android/text/Annotation" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/text/ParcelableSpan" since="3" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="getKey()Ljava/lang/String;" />
-		<method name="getValue()Ljava/lang/String;" />
-	</class>
-	<class name="android/text/AutoText" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="get(Ljava/lang/CharSequence;IILandroid/view/View;)Ljava/lang/String;" />
-		<method name="getSize(Landroid/view/View;)I" since="3" />
-	</class>
-	<class name="android/text/BidiFormatter" since="18">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getInstance()Landroid/text/BidiFormatter;" />
-		<method name="getInstance(Ljava/util/Locale;)Landroid/text/BidiFormatter;" />
-		<method name="getInstance(Z)Landroid/text/BidiFormatter;" />
-		<method name="getStereoReset()Z" />
-		<method name="isRtl(Ljava/lang/String;)Z" />
-		<method name="isRtlContext()Z" />
-		<method name="unicodeWrap(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="unicodeWrap(Ljava/lang/String;Landroid/text/TextDirectionHeuristic;)Ljava/lang/String;" />
-		<method name="unicodeWrap(Ljava/lang/String;Landroid/text/TextDirectionHeuristic;Z)Ljava/lang/String;" />
-		<method name="unicodeWrap(Ljava/lang/String;Z)Ljava/lang/String;" />
-	</class>
-	<class name="android/text/BidiFormatter$Builder" since="18">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/util/Locale;)V" />
-		<method name="&lt;init>(Z)V" />
-		<method name="build()Landroid/text/BidiFormatter;" />
-		<method name="setTextDirectionHeuristic(Landroid/text/TextDirectionHeuristic;)Landroid/text/BidiFormatter$Builder;" />
-		<method name="stereoReset(Z)Landroid/text/BidiFormatter$Builder;" />
-	</class>
-	<class name="android/text/BoringLayout" since="1">
-		<extends name="android/text/Layout" />
-		<implements name="android/text/TextUtils$EllipsizeCallback" />
-		<method name="&lt;init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFLandroid/text/BoringLayout$Metrics;Z)V" />
-		<method name="&lt;init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFLandroid/text/BoringLayout$Metrics;ZLandroid/text/TextUtils$TruncateAt;I)V" />
-		<method name="isBoring(Ljava/lang/CharSequence;Landroid/text/TextPaint;)Landroid/text/BoringLayout$Metrics;" />
-		<method name="isBoring(Ljava/lang/CharSequence;Landroid/text/TextPaint;Landroid/text/BoringLayout$Metrics;)Landroid/text/BoringLayout$Metrics;" />
-		<method name="make(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFLandroid/text/BoringLayout$Metrics;Z)Landroid/text/BoringLayout;" />
-		<method name="make(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFLandroid/text/BoringLayout$Metrics;ZLandroid/text/TextUtils$TruncateAt;I)Landroid/text/BoringLayout;" />
-		<method name="replaceOrMake(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFLandroid/text/BoringLayout$Metrics;Z)Landroid/text/BoringLayout;" />
-		<method name="replaceOrMake(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFLandroid/text/BoringLayout$Metrics;ZLandroid/text/TextUtils$TruncateAt;I)Landroid/text/BoringLayout;" />
-	</class>
-	<class name="android/text/BoringLayout$Metrics" since="1">
-		<extends name="android/graphics/Paint$FontMetricsInt" />
-		<method name="&lt;init>()V" />
-		<field name="width" />
-	</class>
-	<class name="android/text/ClipboardManager" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getText()Ljava/lang/CharSequence;" />
-		<method name="hasText()Z" />
-		<method name="setText(Ljava/lang/CharSequence;)V" />
-	</class>
-	<class name="android/text/DynamicLayout" since="1">
-		<extends name="android/text/Layout" />
-		<method name="&lt;init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZ)V" />
-		<method name="&lt;init>(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZ)V" />
-		<method name="&lt;init>(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZLandroid/text/TextUtils$TruncateAt;I)V" />
-	</class>
-	<class name="android/text/Editable" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/text/GetChars" />
-		<implements name="android/text/Spannable" />
-		<implements name="java/lang/Appendable" />
-		<implements name="java/lang/CharSequence" />
-		<method name="append(C)Landroid/text/Editable;" />
-		<method name="append(Ljava/lang/CharSequence;)Landroid/text/Editable;" />
-		<method name="append(Ljava/lang/CharSequence;II)Landroid/text/Editable;" />
-		<method name="clear()V" />
-		<method name="clearSpans()V" />
-		<method name="delete(II)Landroid/text/Editable;" />
-		<method name="getFilters()[Landroid/text/InputFilter;" />
-		<method name="insert(ILjava/lang/CharSequence;)Landroid/text/Editable;" />
-		<method name="insert(ILjava/lang/CharSequence;II)Landroid/text/Editable;" />
-		<method name="replace(IILjava/lang/CharSequence;)Landroid/text/Editable;" />
-		<method name="replace(IILjava/lang/CharSequence;II)Landroid/text/Editable;" />
-		<method name="setFilters([Landroid/text/InputFilter;)V" />
-	</class>
-	<class name="android/text/Editable$Factory" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getInstance()Landroid/text/Editable$Factory;" />
-		<method name="newEditable(Ljava/lang/CharSequence;)Landroid/text/Editable;" />
-	</class>
-	<class name="android/text/GetChars" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/CharSequence" />
-		<method name="getChars(II[CI)V" />
-	</class>
-	<class name="android/text/Html" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="escapeHtml(Ljava/lang/CharSequence;)Ljava/lang/String;" since="16" />
-		<method name="fromHtml(Ljava/lang/String;)Landroid/text/Spanned;" />
-		<method name="fromHtml(Ljava/lang/String;Landroid/text/Html$ImageGetter;Landroid/text/Html$TagHandler;)Landroid/text/Spanned;" />
-		<method name="toHtml(Landroid/text/Spanned;)Ljava/lang/String;" />
-	</class>
-	<class name="android/text/Html$ImageGetter" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getDrawable(Ljava/lang/String;)Landroid/graphics/drawable/Drawable;" />
-	</class>
-	<class name="android/text/Html$TagHandler" since="1">
-		<extends name="java/lang/Object" />
-		<method name="handleTag(ZLjava/lang/String;Landroid/text/Editable;Lorg/xml/sax/XMLReader;)V" />
-	</class>
-	<class name="android/text/InputFilter" since="1">
-		<extends name="java/lang/Object" />
-		<method name="filter(Ljava/lang/CharSequence;IILandroid/text/Spanned;II)Ljava/lang/CharSequence;" />
-	</class>
-	<class name="android/text/InputFilter$AllCaps" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/text/InputFilter" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/text/InputFilter$LengthFilter" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/text/InputFilter" />
-		<method name="&lt;init>(I)V" />
-	</class>
-	<class name="android/text/InputType" since="3">
-		<extends name="java/lang/Object" />
-		<field name="TYPE_CLASS_DATETIME" />
-		<field name="TYPE_CLASS_NUMBER" />
-		<field name="TYPE_CLASS_PHONE" />
-		<field name="TYPE_CLASS_TEXT" />
-		<field name="TYPE_DATETIME_VARIATION_DATE" />
-		<field name="TYPE_DATETIME_VARIATION_NORMAL" />
-		<field name="TYPE_DATETIME_VARIATION_TIME" />
-		<field name="TYPE_MASK_CLASS" />
-		<field name="TYPE_MASK_FLAGS" />
-		<field name="TYPE_MASK_VARIATION" />
-		<field name="TYPE_NULL" />
-		<field name="TYPE_NUMBER_FLAG_DECIMAL" />
-		<field name="TYPE_NUMBER_FLAG_SIGNED" />
-		<field name="TYPE_NUMBER_VARIATION_NORMAL" since="11" />
-		<field name="TYPE_NUMBER_VARIATION_PASSWORD" since="11" />
-		<field name="TYPE_TEXT_FLAG_AUTO_COMPLETE" />
-		<field name="TYPE_TEXT_FLAG_AUTO_CORRECT" />
-		<field name="TYPE_TEXT_FLAG_CAP_CHARACTERS" />
-		<field name="TYPE_TEXT_FLAG_CAP_SENTENCES" />
-		<field name="TYPE_TEXT_FLAG_CAP_WORDS" />
-		<field name="TYPE_TEXT_FLAG_IME_MULTI_LINE" />
-		<field name="TYPE_TEXT_FLAG_MULTI_LINE" />
-		<field name="TYPE_TEXT_FLAG_NO_SUGGESTIONS" since="5" />
-		<field name="TYPE_TEXT_VARIATION_EMAIL_ADDRESS" />
-		<field name="TYPE_TEXT_VARIATION_EMAIL_SUBJECT" />
-		<field name="TYPE_TEXT_VARIATION_FILTER" />
-		<field name="TYPE_TEXT_VARIATION_LONG_MESSAGE" />
-		<field name="TYPE_TEXT_VARIATION_NORMAL" />
-		<field name="TYPE_TEXT_VARIATION_PASSWORD" />
-		<field name="TYPE_TEXT_VARIATION_PERSON_NAME" />
-		<field name="TYPE_TEXT_VARIATION_PHONETIC" />
-		<field name="TYPE_TEXT_VARIATION_POSTAL_ADDRESS" />
-		<field name="TYPE_TEXT_VARIATION_SHORT_MESSAGE" />
-		<field name="TYPE_TEXT_VARIATION_URI" />
-		<field name="TYPE_TEXT_VARIATION_VISIBLE_PASSWORD" />
-		<field name="TYPE_TEXT_VARIATION_WEB_EDIT_TEXT" />
-		<field name="TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS" since="11" />
-		<field name="TYPE_TEXT_VARIATION_WEB_PASSWORD" since="11" />
-	</class>
-	<class name="android/text/Layout" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FF)V" />
-		<method name="draw(Landroid/graphics/Canvas;)V" />
-		<method name="draw(Landroid/graphics/Canvas;Landroid/graphics/Path;Landroid/graphics/Paint;I)V" />
-		<method name="getAlignment()Landroid/text/Layout$Alignment;" />
-		<method name="getBottomPadding()I" />
-		<method name="getCursorPath(ILandroid/graphics/Path;Ljava/lang/CharSequence;)V" />
-		<method name="getDesiredWidth(Ljava/lang/CharSequence;IILandroid/text/TextPaint;)F" />
-		<method name="getDesiredWidth(Ljava/lang/CharSequence;Landroid/text/TextPaint;)F" />
-		<method name="getEllipsisCount(I)I" />
-		<method name="getEllipsisStart(I)I" />
-		<method name="getEllipsizedWidth()I" />
-		<method name="getHeight()I" />
-		<method name="getLineAscent(I)I" />
-		<method name="getLineBaseline(I)I" />
-		<method name="getLineBottom(I)I" />
-		<method name="getLineBounds(ILandroid/graphics/Rect;)I" />
-		<method name="getLineContainsTab(I)Z" />
-		<method name="getLineCount()I" />
-		<method name="getLineDescent(I)I" />
-		<method name="getLineDirections(I)Landroid/text/Layout$Directions;" />
-		<method name="getLineEnd(I)I" />
-		<method name="getLineForOffset(I)I" />
-		<method name="getLineForVertical(I)I" />
-		<method name="getLineLeft(I)F" />
-		<method name="getLineMax(I)F" />
-		<method name="getLineRight(I)F" />
-		<method name="getLineStart(I)I" />
-		<method name="getLineTop(I)I" />
-		<method name="getLineVisibleEnd(I)I" />
-		<method name="getLineWidth(I)F" />
-		<method name="getOffsetForHorizontal(IF)I" />
-		<method name="getOffsetToLeftOf(I)I" />
-		<method name="getOffsetToRightOf(I)I" />
-		<method name="getPaint()Landroid/text/TextPaint;" />
-		<method name="getParagraphAlignment(I)Landroid/text/Layout$Alignment;" />
-		<method name="getParagraphDirection(I)I" />
-		<method name="getParagraphLeft(I)I" />
-		<method name="getParagraphRight(I)I" />
-		<method name="getPrimaryHorizontal(I)F" />
-		<method name="getSecondaryHorizontal(I)F" />
-		<method name="getSelectionPath(IILandroid/graphics/Path;)V" />
-		<method name="getSpacingAdd()F" />
-		<method name="getSpacingMultiplier()F" />
-		<method name="getText()Ljava/lang/CharSequence;" />
-		<method name="getTopPadding()I" />
-		<method name="getWidth()I" />
-		<method name="increaseWidthTo(I)V" />
-		<method name="isRtlCharAt(I)Z" since="14" />
-		<method name="isSpanned()Z" />
-		<field name="DIR_LEFT_TO_RIGHT" />
-		<field name="DIR_RIGHT_TO_LEFT" />
-	</class>
-	<class name="android/text/Layout$Alignment" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/text/Layout$Alignment;" />
-		<method name="values()[Landroid/text/Layout$Alignment;" />
-		<field name="ALIGN_CENTER" />
-		<field name="ALIGN_NORMAL" />
-		<field name="ALIGN_OPPOSITE" />
-	</class>
-	<class name="android/text/Layout$Directions" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/text/LoginFilter" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/text/InputFilter" />
-		<method name="&lt;init>()V" />
-		<method name="isAllowed(C)Z" />
-		<method name="onInvalidCharacter(C)V" />
-		<method name="onStart()V" />
-		<method name="onStop()V" />
-	</class>
-	<class name="android/text/LoginFilter$PasswordFilterGMail" since="1">
-		<extends name="android/text/LoginFilter" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Z)V" />
-	</class>
-	<class name="android/text/LoginFilter$UsernameFilterGMail" since="1">
-		<extends name="android/text/LoginFilter" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Z)V" />
-	</class>
-	<class name="android/text/LoginFilter$UsernameFilterGeneric" since="1">
-		<extends name="android/text/LoginFilter" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Z)V" />
-	</class>
-	<class name="android/text/NoCopySpan" since="3">
-		<extends name="java/lang/Object" />
-	</class>
-	<class name="android/text/NoCopySpan$Concrete" since="3">
-		<extends name="java/lang/Object" />
-		<implements name="android/text/NoCopySpan" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/text/ParcelableSpan" since="3">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="getSpanTypeId()I" />
-	</class>
-	<class name="android/text/Selection" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="extendDown(Landroid/text/Spannable;Landroid/text/Layout;)Z" />
-		<method name="extendLeft(Landroid/text/Spannable;Landroid/text/Layout;)Z" />
-		<method name="extendRight(Landroid/text/Spannable;Landroid/text/Layout;)Z" />
-		<method name="extendSelection(Landroid/text/Spannable;I)V" />
-		<method name="extendToLeftEdge(Landroid/text/Spannable;Landroid/text/Layout;)Z" />
-		<method name="extendToRightEdge(Landroid/text/Spannable;Landroid/text/Layout;)Z" />
-		<method name="extendUp(Landroid/text/Spannable;Landroid/text/Layout;)Z" />
-		<method name="getSelectionEnd(Ljava/lang/CharSequence;)I" />
-		<method name="getSelectionStart(Ljava/lang/CharSequence;)I" />
-		<method name="moveDown(Landroid/text/Spannable;Landroid/text/Layout;)Z" />
-		<method name="moveLeft(Landroid/text/Spannable;Landroid/text/Layout;)Z" />
-		<method name="moveRight(Landroid/text/Spannable;Landroid/text/Layout;)Z" />
-		<method name="moveToLeftEdge(Landroid/text/Spannable;Landroid/text/Layout;)Z" />
-		<method name="moveToRightEdge(Landroid/text/Spannable;Landroid/text/Layout;)Z" />
-		<method name="moveUp(Landroid/text/Spannable;Landroid/text/Layout;)Z" />
-		<method name="removeSelection(Landroid/text/Spannable;)V" />
-		<method name="selectAll(Landroid/text/Spannable;)V" />
-		<method name="setSelection(Landroid/text/Spannable;I)V" />
-		<method name="setSelection(Landroid/text/Spannable;II)V" />
-		<field name="SELECTION_END" />
-		<field name="SELECTION_START" />
-	</class>
-	<class name="android/text/SpanWatcher" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/text/NoCopySpan" since="3" />
-		<method name="onSpanAdded(Landroid/text/Spannable;Ljava/lang/Object;II)V" />
-		<method name="onSpanChanged(Landroid/text/Spannable;Ljava/lang/Object;IIII)V" />
-		<method name="onSpanRemoved(Landroid/text/Spannable;Ljava/lang/Object;II)V" />
-	</class>
-	<class name="android/text/Spannable" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/text/Spanned" />
-		<method name="removeSpan(Ljava/lang/Object;)V" />
-		<method name="setSpan(Ljava/lang/Object;III)V" />
-	</class>
-	<class name="android/text/Spannable$Factory" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getInstance()Landroid/text/Spannable$Factory;" />
-		<method name="newSpannable(Ljava/lang/CharSequence;)Landroid/text/Spannable;" />
-	</class>
-	<class name="android/text/SpannableString" since="1">
-		<extends name="android/text/SpannableStringInternal" />
-		<implements name="android/text/GetChars" />
-		<implements name="android/text/Spannable" />
-		<implements name="java/lang/CharSequence" />
-		<method name="&lt;init>(Ljava/lang/CharSequence;)V" />
-		<method name="valueOf(Ljava/lang/CharSequence;)Landroid/text/SpannableString;" />
-	</class>
-	<class name="android/text/SpannableStringBuilder" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/text/Editable" />
-		<implements name="android/text/GetChars" />
-		<implements name="android/text/Spannable" />
-		<implements name="java/lang/Appendable" />
-		<implements name="java/lang/CharSequence" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/CharSequence;)V" />
-		<method name="&lt;init>(Ljava/lang/CharSequence;II)V" />
-		<method name="append(C)Landroid/text/SpannableStringBuilder;" />
-		<method name="append(Ljava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;" />
-		<method name="append(Ljava/lang/CharSequence;II)Landroid/text/SpannableStringBuilder;" />
-		<method name="delete(II)Landroid/text/SpannableStringBuilder;" />
-		<method name="getTextRunCursor(IIIIILandroid/graphics/Paint;)I" since="11" />
-		<method name="insert(ILjava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;" />
-		<method name="insert(ILjava/lang/CharSequence;II)Landroid/text/SpannableStringBuilder;" />
-		<method name="replace(IILjava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;" />
-		<method name="replace(IILjava/lang/CharSequence;II)Landroid/text/SpannableStringBuilder;" />
-		<method name="valueOf(Ljava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;" />
-	</class>
-	<class name="android/text/SpannableStringInternal" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="charAt(I)C" />
-		<method name="getChars(II[CI)V" />
-		<method name="getSpanEnd(Ljava/lang/Object;)I" />
-		<method name="getSpanFlags(Ljava/lang/Object;)I" />
-		<method name="getSpanStart(Ljava/lang/Object;)I" />
-		<method name="getSpans(IILjava/lang/Class;)[Ljava/lang/Object;" />
-		<method name="length()I" />
-		<method name="nextSpanTransition(IILjava/lang/Class;)I" />
-	</class>
-	<class name="android/text/Spanned" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/CharSequence" />
-		<method name="getSpanEnd(Ljava/lang/Object;)I" />
-		<method name="getSpanFlags(Ljava/lang/Object;)I" />
-		<method name="getSpanStart(Ljava/lang/Object;)I" />
-		<method name="getSpans(IILjava/lang/Class;)[Ljava/lang/Object;" />
-		<method name="nextSpanTransition(IILjava/lang/Class;)I" />
-		<field name="SPAN_COMPOSING" since="3" />
-		<field name="SPAN_EXCLUSIVE_EXCLUSIVE" />
-		<field name="SPAN_EXCLUSIVE_INCLUSIVE" />
-		<field name="SPAN_INCLUSIVE_EXCLUSIVE" />
-		<field name="SPAN_INCLUSIVE_INCLUSIVE" />
-		<field name="SPAN_INTERMEDIATE" since="3" />
-		<field name="SPAN_MARK_MARK" />
-		<field name="SPAN_MARK_POINT" />
-		<field name="SPAN_PARAGRAPH" />
-		<field name="SPAN_POINT_MARK" />
-		<field name="SPAN_POINT_MARK_MASK" since="3" />
-		<field name="SPAN_POINT_POINT" />
-		<field name="SPAN_PRIORITY" />
-		<field name="SPAN_PRIORITY_SHIFT" />
-		<field name="SPAN_USER" />
-		<field name="SPAN_USER_SHIFT" />
-	</class>
-	<class name="android/text/SpannedString" since="1">
-		<extends name="android/text/SpannableStringInternal" />
-		<implements name="android/text/GetChars" />
-		<implements name="android/text/Spanned" />
-		<implements name="java/lang/CharSequence" />
-		<method name="&lt;init>(Ljava/lang/CharSequence;)V" />
-		<method name="valueOf(Ljava/lang/CharSequence;)Landroid/text/SpannedString;" />
-	</class>
-	<class name="android/text/StaticLayout" since="1">
-		<extends name="android/text/Layout" />
-		<method name="&lt;init>(Ljava/lang/CharSequence;IILandroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZ)V" />
-		<method name="&lt;init>(Ljava/lang/CharSequence;IILandroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZLandroid/text/TextUtils$TruncateAt;I)V" />
-		<method name="&lt;init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZ)V" />
-	</class>
-	<class name="android/text/TextDirectionHeuristic" since="18">
-		<extends name="java/lang/Object" />
-		<method name="isRtl(Ljava/lang/CharSequence;II)Z" />
-		<method name="isRtl([CII)Z" />
-	</class>
-	<class name="android/text/TextDirectionHeuristics" since="18">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="ANYRTL_LTR" />
-		<field name="FIRSTSTRONG_LTR" />
-		<field name="FIRSTSTRONG_RTL" />
-		<field name="LOCALE" />
-		<field name="LTR" />
-		<field name="RTL" />
-	</class>
-	<class name="android/text/TextPaint" since="1">
-		<extends name="android/graphics/Paint" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(Landroid/graphics/Paint;)V" />
-		<method name="set(Landroid/text/TextPaint;)V" />
-		<field name="baselineShift" />
-		<field name="bgColor" />
-		<field name="density" since="5" />
-		<field name="drawableState" />
-		<field name="linkColor" />
-	</class>
-	<class name="android/text/TextUtils" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="commaEllipsize(Ljava/lang/CharSequence;Landroid/text/TextPaint;FLjava/lang/String;Ljava/lang/String;)Ljava/lang/CharSequence;" />
-		<method name="concat([Ljava/lang/CharSequence;)Ljava/lang/CharSequence;" />
-		<method name="copySpansFrom(Landroid/text/Spanned;IILjava/lang/Class;Landroid/text/Spannable;I)V" />
-		<method name="dumpSpans(Ljava/lang/CharSequence;Landroid/util/Printer;Ljava/lang/String;)V" since="3" />
-		<method name="ellipsize(Ljava/lang/CharSequence;Landroid/text/TextPaint;FLandroid/text/TextUtils$TruncateAt;)Ljava/lang/CharSequence;" />
-		<method name="ellipsize(Ljava/lang/CharSequence;Landroid/text/TextPaint;FLandroid/text/TextUtils$TruncateAt;ZLandroid/text/TextUtils$EllipsizeCallback;)Ljava/lang/CharSequence;" />
-		<method name="equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z" />
-		<method name="expandTemplate(Ljava/lang/CharSequence;[Ljava/lang/CharSequence;)Ljava/lang/CharSequence;" />
-		<method name="getCapsMode(Ljava/lang/CharSequence;II)I" since="3" />
-		<method name="getChars(Ljava/lang/CharSequence;II[CI)V" />
-		<method name="getLayoutDirectionFromLocale(Ljava/util/Locale;)I" since="17" />
-		<method name="getOffsetAfter(Ljava/lang/CharSequence;I)I" />
-		<method name="getOffsetBefore(Ljava/lang/CharSequence;I)I" />
-		<method name="getReverse(Ljava/lang/CharSequence;II)Ljava/lang/CharSequence;" />
-		<method name="getTrimmedLength(Ljava/lang/CharSequence;)I" />
-		<method name="htmlEncode(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="indexOf(Ljava/lang/CharSequence;C)I" />
-		<method name="indexOf(Ljava/lang/CharSequence;CI)I" />
-		<method name="indexOf(Ljava/lang/CharSequence;CII)I" />
-		<method name="indexOf(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)I" />
-		<method name="indexOf(Ljava/lang/CharSequence;Ljava/lang/CharSequence;I)I" />
-		<method name="indexOf(Ljava/lang/CharSequence;Ljava/lang/CharSequence;II)I" />
-		<method name="isDigitsOnly(Ljava/lang/CharSequence;)Z" />
-		<method name="isEmpty(Ljava/lang/CharSequence;)Z" />
-		<method name="isGraphic(C)Z" />
-		<method name="isGraphic(Ljava/lang/CharSequence;)Z" />
-		<method name="join(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String;" />
-		<method name="join(Ljava/lang/CharSequence;[Ljava/lang/Object;)Ljava/lang/String;" />
-		<method name="lastIndexOf(Ljava/lang/CharSequence;C)I" />
-		<method name="lastIndexOf(Ljava/lang/CharSequence;CI)I" />
-		<method name="lastIndexOf(Ljava/lang/CharSequence;CII)I" />
-		<method name="regionMatches(Ljava/lang/CharSequence;ILjava/lang/CharSequence;II)Z" />
-		<method name="replace(Ljava/lang/CharSequence;[Ljava/lang/String;[Ljava/lang/CharSequence;)Ljava/lang/CharSequence;" />
-		<method name="split(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;" />
-		<method name="split(Ljava/lang/String;Ljava/util/regex/Pattern;)[Ljava/lang/String;" />
-		<method name="stringOrSpannedString(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;" />
-		<method name="substring(Ljava/lang/CharSequence;II)Ljava/lang/String;" />
-		<method name="writeToParcel(Ljava/lang/CharSequence;Landroid/os/Parcel;I)V" />
-		<field name="CAP_MODE_CHARACTERS" since="3" />
-		<field name="CAP_MODE_SENTENCES" since="3" />
-		<field name="CAP_MODE_WORDS" since="3" />
-		<field name="CHAR_SEQUENCE_CREATOR" />
-	</class>
-	<class name="android/text/TextUtils$EllipsizeCallback" since="1">
-		<extends name="java/lang/Object" />
-		<method name="ellipsized(II)V" />
-	</class>
-	<class name="android/text/TextUtils$SimpleStringSplitter" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/text/TextUtils$StringSplitter" />
-		<implements name="java/util/Iterator" />
-		<method name="&lt;init>(C)V" />
-		<method name="next()Ljava/lang/String;" />
-	</class>
-	<class name="android/text/TextUtils$StringSplitter" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Iterable" />
-		<method name="setString(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/text/TextUtils$TruncateAt" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/text/TextUtils$TruncateAt;" />
-		<method name="values()[Landroid/text/TextUtils$TruncateAt;" />
-		<field name="END" />
-		<field name="MARQUEE" since="2" />
-		<field name="MIDDLE" />
-		<field name="START" />
-	</class>
-	<class name="android/text/TextWatcher" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/text/NoCopySpan" since="3" />
-		<method name="afterTextChanged(Landroid/text/Editable;)V" />
-		<method name="beforeTextChanged(Ljava/lang/CharSequence;III)V" />
-		<method name="onTextChanged(Ljava/lang/CharSequence;III)V" />
-	</class>
-	<class name="android/text/format/DateFormat" since="3">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="format(Ljava/lang/CharSequence;J)Ljava/lang/CharSequence;" />
-		<method name="format(Ljava/lang/CharSequence;Ljava/util/Calendar;)Ljava/lang/CharSequence;" />
-		<method name="format(Ljava/lang/CharSequence;Ljava/util/Date;)Ljava/lang/CharSequence;" />
-		<method name="getBestDateTimePattern(Ljava/util/Locale;Ljava/lang/String;)Ljava/lang/String;" since="18" />
-		<method name="getDateFormat(Landroid/content/Context;)Ljava/text/DateFormat;" />
-		<method name="getDateFormatOrder(Landroid/content/Context;)[C" />
-		<method name="getLongDateFormat(Landroid/content/Context;)Ljava/text/DateFormat;" />
-		<method name="getMediumDateFormat(Landroid/content/Context;)Ljava/text/DateFormat;" />
-		<method name="getTimeFormat(Landroid/content/Context;)Ljava/text/DateFormat;" />
-		<method name="is24HourFormat(Landroid/content/Context;)Z" />
-		<field name="AM_PM" />
-		<field name="CAPITAL_AM_PM" />
-		<field name="DATE" />
-		<field name="DAY" />
-		<field name="HOUR" />
-		<field name="HOUR_OF_DAY" />
-		<field name="MINUTE" />
-		<field name="MONTH" />
-		<field name="QUOTE" />
-		<field name="SECONDS" />
-		<field name="STANDALONE_MONTH" since="17" />
-		<field name="TIME_ZONE" />
-		<field name="YEAR" />
-	</class>
-	<class name="android/text/format/DateUtils" since="3">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="formatDateRange(Landroid/content/Context;JJI)Ljava/lang/String;" />
-		<method name="formatDateRange(Landroid/content/Context;Ljava/util/Formatter;JJI)Ljava/util/Formatter;" since="5" />
-		<method name="formatDateRange(Landroid/content/Context;Ljava/util/Formatter;JJILjava/lang/String;)Ljava/util/Formatter;" since="9" />
-		<method name="formatDateTime(Landroid/content/Context;JI)Ljava/lang/String;" />
-		<method name="formatElapsedTime(J)Ljava/lang/String;" />
-		<method name="formatElapsedTime(Ljava/lang/StringBuilder;J)Ljava/lang/String;" />
-		<method name="formatSameDayTime(JJII)Ljava/lang/CharSequence;" />
-		<method name="getAMPMString(I)Ljava/lang/String;" />
-		<method name="getDayOfWeekString(II)Ljava/lang/String;" />
-		<method name="getMonthString(II)Ljava/lang/String;" />
-		<method name="getRelativeDateTimeString(Landroid/content/Context;JJJI)Ljava/lang/CharSequence;" />
-		<method name="getRelativeTimeSpanString(J)Ljava/lang/CharSequence;" />
-		<method name="getRelativeTimeSpanString(JJJ)Ljava/lang/CharSequence;" />
-		<method name="getRelativeTimeSpanString(JJJI)Ljava/lang/CharSequence;" />
-		<method name="getRelativeTimeSpanString(Landroid/content/Context;J)Ljava/lang/CharSequence;" />
-		<method name="getRelativeTimeSpanString(Landroid/content/Context;JZ)Ljava/lang/CharSequence;" />
-		<method name="isToday(J)Z" />
-		<field name="ABBREV_MONTH_FORMAT" />
-		<field name="ABBREV_WEEKDAY_FORMAT" />
-		<field name="DAY_IN_MILLIS" />
-		<field name="FORMAT_12HOUR" />
-		<field name="FORMAT_24HOUR" />
-		<field name="FORMAT_ABBREV_ALL" />
-		<field name="FORMAT_ABBREV_MONTH" />
-		<field name="FORMAT_ABBREV_RELATIVE" />
-		<field name="FORMAT_ABBREV_TIME" />
-		<field name="FORMAT_ABBREV_WEEKDAY" />
-		<field name="FORMAT_CAP_AMPM" />
-		<field name="FORMAT_CAP_MIDNIGHT" />
-		<field name="FORMAT_CAP_NOON" />
-		<field name="FORMAT_CAP_NOON_MIDNIGHT" />
-		<field name="FORMAT_NO_MIDNIGHT" />
-		<field name="FORMAT_NO_MONTH_DAY" />
-		<field name="FORMAT_NO_NOON" />
-		<field name="FORMAT_NO_NOON_MIDNIGHT" />
-		<field name="FORMAT_NO_YEAR" />
-		<field name="FORMAT_NUMERIC_DATE" />
-		<field name="FORMAT_SHOW_DATE" />
-		<field name="FORMAT_SHOW_TIME" />
-		<field name="FORMAT_SHOW_WEEKDAY" />
-		<field name="FORMAT_SHOW_YEAR" />
-		<field name="FORMAT_UTC" />
-		<field name="HOUR_IN_MILLIS" />
-		<field name="HOUR_MINUTE_24" />
-		<field name="LENGTH_LONG" />
-		<field name="LENGTH_MEDIUM" />
-		<field name="LENGTH_SHORT" />
-		<field name="LENGTH_SHORTER" />
-		<field name="LENGTH_SHORTEST" />
-		<field name="MINUTE_IN_MILLIS" />
-		<field name="MONTH_DAY_FORMAT" />
-		<field name="MONTH_FORMAT" />
-		<field name="NUMERIC_MONTH_FORMAT" />
-		<field name="SECOND_IN_MILLIS" />
-		<field name="WEEKDAY_FORMAT" />
-		<field name="WEEK_IN_MILLIS" />
-		<field name="YEAR_FORMAT" />
-		<field name="YEAR_FORMAT_TWO_DIGITS" />
-		<field name="YEAR_IN_MILLIS" />
-		<field name="sameMonthTable" />
-		<field name="sameYearTable" />
-	</class>
-	<class name="android/text/format/Formatter" since="3">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="formatFileSize(Landroid/content/Context;J)Ljava/lang/String;" />
-		<method name="formatIpAddress(I)Ljava/lang/String;" />
-		<method name="formatShortFileSize(Landroid/content/Context;J)Ljava/lang/String;" since="5" />
-	</class>
-	<class name="android/text/format/Time" since="3">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/text/format/Time;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="after(Landroid/text/format/Time;)Z" />
-		<method name="before(Landroid/text/format/Time;)Z" />
-		<method name="clear(Ljava/lang/String;)V" />
-		<method name="compare(Landroid/text/format/Time;Landroid/text/format/Time;)I" />
-		<method name="format(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="format2445()Ljava/lang/String;" />
-		<method name="format3339(Z)Ljava/lang/String;" />
-		<method name="getActualMaximum(I)I" />
-		<method name="getCurrentTimezone()Ljava/lang/String;" />
-		<method name="getJulianDay(JJ)I" />
-		<method name="getJulianMondayFromWeeksSinceEpoch(I)I" since="11" />
-		<method name="getWeekNumber()I" />
-		<method name="getWeeksSinceEpochFromJulianDay(II)I" since="11" />
-		<method name="isEpoch(Landroid/text/format/Time;)Z" />
-		<method name="normalize(Z)J" />
-		<method name="parse(Ljava/lang/String;)Z" />
-		<method name="parse3339(Ljava/lang/String;)Z" />
-		<method name="set(III)V" />
-		<method name="set(IIIIII)V" />
-		<method name="set(J)V" />
-		<method name="set(Landroid/text/format/Time;)V" />
-		<method name="setJulianDay(I)J" />
-		<method name="setToNow()V" />
-		<method name="switchTimezone(Ljava/lang/String;)V" />
-		<method name="toMillis(Z)J" />
-		<field name="EPOCH_JULIAN_DAY" />
-		<field name="FRIDAY" />
-		<field name="HOUR" />
-		<field name="MINUTE" />
-		<field name="MONDAY" />
-		<field name="MONDAY_BEFORE_JULIAN_EPOCH" since="11" />
-		<field name="MONTH" />
-		<field name="MONTH_DAY" />
-		<field name="SATURDAY" />
-		<field name="SECOND" />
-		<field name="SUNDAY" />
-		<field name="THURSDAY" />
-		<field name="TIMEZONE_UTC" />
-		<field name="TUESDAY" />
-		<field name="WEDNESDAY" />
-		<field name="WEEK_DAY" />
-		<field name="WEEK_NUM" />
-		<field name="YEAR" />
-		<field name="YEAR_DAY" />
-		<field name="allDay" />
-		<field name="gmtoff" />
-		<field name="hour" />
-		<field name="isDst" />
-		<field name="minute" />
-		<field name="month" />
-		<field name="monthDay" />
-		<field name="second" />
-		<field name="timezone" />
-		<field name="weekDay" />
-		<field name="year" />
-		<field name="yearDay" />
-	</class>
-	<class name="android/text/method/ArrowKeyMovementMethod" since="1">
-		<extends name="android/text/method/BaseMovementMethod" since="11" />
-		<extends name="java/lang/Object" />
-		<implements name="android/text/method/MovementMethod" />
-		<method name="&lt;init>()V" />
-		<method name="getInstance()Landroid/text/method/MovementMethod;" />
-	</class>
-	<class name="android/text/method/BaseKeyListener" since="1">
-		<extends name="android/text/method/MetaKeyKeyListener" />
-		<implements name="android/text/method/KeyListener" />
-		<method name="&lt;init>()V" />
-		<method name="backspace(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z" />
-		<method name="forwardDelete(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z" since="11" />
-	</class>
-	<class name="android/text/method/BaseMovementMethod" since="11">
-		<extends name="java/lang/Object" />
-		<implements name="android/text/method/MovementMethod" />
-		<method name="&lt;init>()V" />
-		<method name="bottom(Landroid/widget/TextView;Landroid/text/Spannable;)Z" />
-		<method name="down(Landroid/widget/TextView;Landroid/text/Spannable;)Z" />
-		<method name="end(Landroid/widget/TextView;Landroid/text/Spannable;)Z" />
-		<method name="getMovementMetaState(Landroid/text/Spannable;Landroid/view/KeyEvent;)I" />
-		<method name="handleMovementKey(Landroid/widget/TextView;Landroid/text/Spannable;IILandroid/view/KeyEvent;)Z" />
-		<method name="home(Landroid/widget/TextView;Landroid/text/Spannable;)Z" />
-		<method name="left(Landroid/widget/TextView;Landroid/text/Spannable;)Z" />
-		<method name="lineEnd(Landroid/widget/TextView;Landroid/text/Spannable;)Z" />
-		<method name="lineStart(Landroid/widget/TextView;Landroid/text/Spannable;)Z" />
-		<method name="pageDown(Landroid/widget/TextView;Landroid/text/Spannable;)Z" />
-		<method name="pageUp(Landroid/widget/TextView;Landroid/text/Spannable;)Z" />
-		<method name="right(Landroid/widget/TextView;Landroid/text/Spannable;)Z" />
-		<method name="top(Landroid/widget/TextView;Landroid/text/Spannable;)Z" />
-		<method name="up(Landroid/widget/TextView;Landroid/text/Spannable;)Z" />
-	</class>
-	<class name="android/text/method/CharacterPickerDialog" since="1">
-		<extends name="android/app/Dialog" />
-		<implements name="android/view/View$OnClickListener" />
-		<implements name="android/widget/AdapterView$OnItemClickListener" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/view/View;Landroid/text/Editable;Ljava/lang/String;Z)V" />
-	</class>
-	<class name="android/text/method/DateKeyListener" since="1">
-		<extends name="android/text/method/NumberKeyListener" />
-		<method name="&lt;init>()V" />
-		<method name="getInstance()Landroid/text/method/DateKeyListener;" />
-		<field name="CHARACTERS" />
-	</class>
-	<class name="android/text/method/DateTimeKeyListener" since="1">
-		<extends name="android/text/method/NumberKeyListener" />
-		<method name="&lt;init>()V" />
-		<method name="getInstance()Landroid/text/method/DateTimeKeyListener;" />
-		<field name="CHARACTERS" />
-	</class>
-	<class name="android/text/method/DialerKeyListener" since="1">
-		<extends name="android/text/method/NumberKeyListener" />
-		<method name="&lt;init>()V" />
-		<method name="getInstance()Landroid/text/method/DialerKeyListener;" />
-		<field name="CHARACTERS" />
-	</class>
-	<class name="android/text/method/DigitsKeyListener" since="1">
-		<extends name="android/text/method/NumberKeyListener" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(ZZ)V" />
-		<method name="getInstance()Landroid/text/method/DigitsKeyListener;" />
-		<method name="getInstance(Ljava/lang/String;)Landroid/text/method/DigitsKeyListener;" />
-		<method name="getInstance(ZZ)Landroid/text/method/DigitsKeyListener;" />
-	</class>
-	<class name="android/text/method/HideReturnsTransformationMethod" since="1">
-		<extends name="android/text/method/ReplacementTransformationMethod" />
-		<method name="&lt;init>()V" />
-		<method name="getInstance()Landroid/text/method/HideReturnsTransformationMethod;" />
-	</class>
-	<class name="android/text/method/KeyListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="clearMetaKeyState(Landroid/view/View;Landroid/text/Editable;I)V" since="3" />
-		<method name="getInputType()I" since="3" />
-		<method name="onKeyDown(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z" />
-		<method name="onKeyOther(Landroid/view/View;Landroid/text/Editable;Landroid/view/KeyEvent;)Z" since="3" />
-		<method name="onKeyUp(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z" />
-	</class>
-	<class name="android/text/method/LinkMovementMethod" since="1">
-		<extends name="android/text/method/ScrollingMovementMethod" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/text/method/MetaKeyKeyListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="adjustMetaAfterKeypress(J)J" since="3" />
-		<method name="adjustMetaAfterKeypress(Landroid/text/Spannable;)V" />
-		<method name="clearMetaKeyState(JI)J" since="3" />
-		<method name="clearMetaKeyState(Landroid/text/Editable;I)V" since="3" />
-		<method name="clearMetaKeyState(Landroid/view/View;Landroid/text/Editable;I)V" since="3" />
-		<method name="getMetaState(J)I" since="3" />
-		<method name="getMetaState(JI)I" since="3" />
-		<method name="getMetaState(Ljava/lang/CharSequence;)I" />
-		<method name="getMetaState(Ljava/lang/CharSequence;I)I" />
-		<method name="getMetaState(Ljava/lang/CharSequence;ILandroid/view/KeyEvent;)I" since="19" />
-		<method name="getMetaState(Ljava/lang/CharSequence;Landroid/view/KeyEvent;)I" since="19" />
-		<method name="handleKeyDown(JILandroid/view/KeyEvent;)J" since="3" />
-		<method name="handleKeyUp(JILandroid/view/KeyEvent;)J" since="3" />
-		<method name="isMetaTracker(Ljava/lang/CharSequence;Ljava/lang/Object;)Z" />
-		<method name="isSelectingMetaTracker(Ljava/lang/CharSequence;Ljava/lang/Object;)Z" since="3" />
-		<method name="onKeyDown(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z" />
-		<method name="onKeyUp(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z" />
-		<method name="resetLockedMeta(J)J" since="3" />
-		<method name="resetLockedMeta(Landroid/text/Spannable;)V" />
-		<method name="resetMetaState(Landroid/text/Spannable;)V" />
-		<field name="META_ALT_LOCKED" />
-		<field name="META_ALT_ON" />
-		<field name="META_CAP_LOCKED" />
-		<field name="META_SHIFT_ON" />
-		<field name="META_SYM_LOCKED" />
-		<field name="META_SYM_ON" />
-	</class>
-	<class name="android/text/method/MovementMethod" since="1">
-		<extends name="java/lang/Object" />
-		<method name="canSelectArbitrarily()Z" />
-		<method name="initialize(Landroid/widget/TextView;Landroid/text/Spannable;)V" />
-		<method name="onGenericMotionEvent(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/MotionEvent;)Z" since="12" />
-		<method name="onKeyDown(Landroid/widget/TextView;Landroid/text/Spannable;ILandroid/view/KeyEvent;)Z" />
-		<method name="onKeyOther(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/KeyEvent;)Z" since="3" />
-		<method name="onKeyUp(Landroid/widget/TextView;Landroid/text/Spannable;ILandroid/view/KeyEvent;)Z" />
-		<method name="onTakeFocus(Landroid/widget/TextView;Landroid/text/Spannable;I)V" />
-		<method name="onTouchEvent(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/MotionEvent;)Z" />
-		<method name="onTrackballEvent(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/MotionEvent;)Z" />
-	</class>
-	<class name="android/text/method/MultiTapKeyListener" since="1">
-		<extends name="android/text/method/BaseKeyListener" />
-		<implements name="android/text/SpanWatcher" />
-		<method name="&lt;init>(Landroid/text/method/TextKeyListener$Capitalize;Z)V" />
-		<method name="getInstance(ZLandroid/text/method/TextKeyListener$Capitalize;)Landroid/text/method/MultiTapKeyListener;" />
-	</class>
-	<class name="android/text/method/NumberKeyListener" since="1">
-		<extends name="android/text/method/BaseKeyListener" />
-		<implements name="android/text/InputFilter" />
-		<method name="&lt;init>()V" />
-		<method name="getAcceptedChars()[C" />
-		<method name="lookup(Landroid/view/KeyEvent;Landroid/text/Spannable;)I" />
-		<method name="ok([CC)Z" />
-	</class>
-	<class name="android/text/method/PasswordTransformationMethod" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/text/TextWatcher" />
-		<implements name="android/text/method/TransformationMethod" />
-		<method name="&lt;init>()V" />
-		<method name="getInstance()Landroid/text/method/PasswordTransformationMethod;" />
-	</class>
-	<class name="android/text/method/QwertyKeyListener" since="1">
-		<extends name="android/text/method/BaseKeyListener" />
-		<method name="&lt;init>(Landroid/text/method/TextKeyListener$Capitalize;Z)V" />
-		<method name="getInstance(ZLandroid/text/method/TextKeyListener$Capitalize;)Landroid/text/method/QwertyKeyListener;" />
-		<method name="getInstanceForFullKeyboard()Landroid/text/method/QwertyKeyListener;" since="11" />
-		<method name="markAsReplaced(Landroid/text/Spannable;IILjava/lang/String;)V" />
-	</class>
-	<class name="android/text/method/ReplacementTransformationMethod" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/text/method/TransformationMethod" />
-		<method name="&lt;init>()V" />
-		<method name="getOriginal()[C" />
-		<method name="getReplacement()[C" />
-	</class>
-	<class name="android/text/method/ScrollingMovementMethod" since="1">
-		<extends name="android/text/method/BaseMovementMethod" since="11" />
-		<extends name="java/lang/Object" />
-		<implements name="android/text/method/MovementMethod" />
-		<method name="&lt;init>()V" />
-		<method name="down(Landroid/widget/TextView;Landroid/text/Spannable;)Z" />
-		<method name="getInstance()Landroid/text/method/MovementMethod;" />
-		<method name="left(Landroid/widget/TextView;Landroid/text/Spannable;)Z" />
-		<method name="right(Landroid/widget/TextView;Landroid/text/Spannable;)Z" />
-		<method name="up(Landroid/widget/TextView;Landroid/text/Spannable;)Z" />
-	</class>
-	<class name="android/text/method/SingleLineTransformationMethod" since="1">
-		<extends name="android/text/method/ReplacementTransformationMethod" />
-		<method name="&lt;init>()V" />
-		<method name="getInstance()Landroid/text/method/SingleLineTransformationMethod;" />
-	</class>
-	<class name="android/text/method/TextKeyListener" since="1">
-		<extends name="android/text/method/BaseKeyListener" />
-		<implements name="android/text/SpanWatcher" />
-		<method name="&lt;init>(Landroid/text/method/TextKeyListener$Capitalize;Z)V" />
-		<method name="clear(Landroid/text/Editable;)V" />
-		<method name="getInstance()Landroid/text/method/TextKeyListener;" />
-		<method name="getInstance(ZLandroid/text/method/TextKeyListener$Capitalize;)Landroid/text/method/TextKeyListener;" />
-		<method name="release()V" />
-		<method name="shouldCap(Landroid/text/method/TextKeyListener$Capitalize;Ljava/lang/CharSequence;I)Z" />
-	</class>
-	<class name="android/text/method/TextKeyListener$Capitalize" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/text/method/TextKeyListener$Capitalize;" />
-		<method name="values()[Landroid/text/method/TextKeyListener$Capitalize;" />
-		<field name="CHARACTERS" />
-		<field name="NONE" />
-		<field name="SENTENCES" />
-		<field name="WORDS" />
-	</class>
-	<class name="android/text/method/TimeKeyListener" since="1">
-		<extends name="android/text/method/NumberKeyListener" />
-		<method name="&lt;init>()V" />
-		<method name="getInstance()Landroid/text/method/TimeKeyListener;" />
-		<field name="CHARACTERS" />
-	</class>
-	<class name="android/text/method/Touch" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getInitialScrollX(Landroid/widget/TextView;Landroid/text/Spannable;)I" since="3" />
-		<method name="getInitialScrollY(Landroid/widget/TextView;Landroid/text/Spannable;)I" since="3" />
-		<method name="onTouchEvent(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/MotionEvent;)Z" />
-		<method name="scrollTo(Landroid/widget/TextView;Landroid/text/Layout;II)V" />
-	</class>
-	<class name="android/text/method/TransformationMethod" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getTransformation(Ljava/lang/CharSequence;Landroid/view/View;)Ljava/lang/CharSequence;" />
-		<method name="onFocusChanged(Landroid/view/View;Ljava/lang/CharSequence;ZILandroid/graphics/Rect;)V" />
-	</class>
-	<class name="android/text/style/AbsoluteSizeSpan" since="1">
-		<extends name="android/text/style/MetricAffectingSpan" />
-		<implements name="android/text/ParcelableSpan" since="3" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(IZ)V" since="5" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
-		<method name="getDip()Z" since="5" />
-		<method name="getSize()I" />
-	</class>
-	<class name="android/text/style/AlignmentSpan" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/text/style/ParagraphStyle" />
-		<method name="getAlignment()Landroid/text/Layout$Alignment;" />
-	</class>
-	<class name="android/text/style/AlignmentSpan$Standard" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/text/ParcelableSpan" since="3" />
-		<implements name="android/text/style/AlignmentSpan" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
-		<method name="&lt;init>(Landroid/text/Layout$Alignment;)V" />
-	</class>
-	<class name="android/text/style/BackgroundColorSpan" since="1">
-		<extends name="android/text/style/CharacterStyle" />
-		<implements name="android/text/ParcelableSpan" since="3" />
-		<implements name="android/text/style/UpdateAppearance" since="3" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
-		<method name="getBackgroundColor()I" />
-	</class>
-	<class name="android/text/style/BulletSpan" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/text/ParcelableSpan" since="3" />
-		<implements name="android/text/style/LeadingMarginSpan" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(II)V" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
-		<field name="STANDARD_GAP_WIDTH" />
-	</class>
-	<class name="android/text/style/CharacterStyle" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getUnderlying()Landroid/text/style/CharacterStyle;" />
-		<method name="updateDrawState(Landroid/text/TextPaint;)V" />
-		<method name="wrap(Landroid/text/style/CharacterStyle;)Landroid/text/style/CharacterStyle;" />
-	</class>
-	<class name="android/text/style/ClickableSpan" since="1">
-		<extends name="android/text/style/CharacterStyle" />
-		<implements name="android/text/style/UpdateAppearance" since="3" />
-		<method name="&lt;init>()V" />
-		<method name="onClick(Landroid/view/View;)V" />
-	</class>
-	<class name="android/text/style/DrawableMarginSpan" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/text/style/LeadingMarginSpan" />
-		<implements name="android/text/style/LineHeightSpan" />
-		<method name="&lt;init>(Landroid/graphics/drawable/Drawable;)V" />
-		<method name="&lt;init>(Landroid/graphics/drawable/Drawable;I)V" />
-	</class>
-	<class name="android/text/style/DynamicDrawableSpan" since="1">
-		<extends name="android/text/style/ReplacementSpan" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" since="3" />
-		<method name="getDrawable()Landroid/graphics/drawable/Drawable;" />
-		<method name="getVerticalAlignment()I" since="3" />
-		<field name="ALIGN_BASELINE" since="3" />
-		<field name="ALIGN_BOTTOM" since="3" />
-		<field name="mVerticalAlignment" since="3" />
-	</class>
-	<class name="android/text/style/EasyEditSpan" since="14">
-		<extends name="java/lang/Object" />
-		<implements name="android/text/ParcelableSpan" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/app/PendingIntent;)V" since="18" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" since="18" />
-		<field name="EXTRA_TEXT_CHANGED_TYPE" since="18" />
-		<field name="TEXT_DELETED" since="18" />
-		<field name="TEXT_MODIFIED" since="18" />
-	</class>
-	<class name="android/text/style/ForegroundColorSpan" since="1">
-		<extends name="android/text/style/CharacterStyle" />
-		<implements name="android/text/ParcelableSpan" since="3" />
-		<implements name="android/text/style/UpdateAppearance" since="3" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
-		<method name="getForegroundColor()I" />
-	</class>
-	<class name="android/text/style/IconMarginSpan" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/text/style/LeadingMarginSpan" />
-		<implements name="android/text/style/LineHeightSpan" />
-		<method name="&lt;init>(Landroid/graphics/Bitmap;)V" />
-		<method name="&lt;init>(Landroid/graphics/Bitmap;I)V" />
-	</class>
-	<class name="android/text/style/ImageSpan" since="1">
-		<extends name="android/text/style/DynamicDrawableSpan" />
-		<method name="&lt;init>(Landroid/content/Context;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;II)V" since="3" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/graphics/Bitmap;)V" since="4" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/graphics/Bitmap;I)V" since="4" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/net/Uri;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/net/Uri;I)V" since="3" />
-		<method name="&lt;init>(Landroid/graphics/Bitmap;)V" />
-		<method name="&lt;init>(Landroid/graphics/Bitmap;I)V" since="3" />
-		<method name="&lt;init>(Landroid/graphics/drawable/Drawable;)V" />
-		<method name="&lt;init>(Landroid/graphics/drawable/Drawable;I)V" since="3" />
-		<method name="&lt;init>(Landroid/graphics/drawable/Drawable;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Landroid/graphics/drawable/Drawable;Ljava/lang/String;I)V" since="3" />
-		<method name="getSource()Ljava/lang/String;" />
-	</class>
-	<class name="android/text/style/LeadingMarginSpan" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/text/style/ParagraphStyle" />
-		<method name="drawLeadingMargin(Landroid/graphics/Canvas;Landroid/graphics/Paint;IIIIILjava/lang/CharSequence;IIZLandroid/text/Layout;)V" />
-		<method name="getLeadingMargin(Z)I" />
-	</class>
-	<class name="android/text/style/LeadingMarginSpan$LeadingMarginSpan2" since="8">
-		<extends name="java/lang/Object" />
-		<implements name="android/text/style/LeadingMarginSpan" />
-		<implements name="android/text/style/WrapTogetherSpan" />
-		<method name="getLeadingMarginLineCount()I" />
-	</class>
-	<class name="android/text/style/LeadingMarginSpan$Standard" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/text/ParcelableSpan" since="3" />
-		<implements name="android/text/style/LeadingMarginSpan" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(II)V" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
-	</class>
-	<class name="android/text/style/LineBackgroundSpan" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/text/style/ParagraphStyle" />
-		<method name="drawBackground(Landroid/graphics/Canvas;Landroid/graphics/Paint;IIIIILjava/lang/CharSequence;III)V" />
-	</class>
-	<class name="android/text/style/LineHeightSpan" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/text/style/ParagraphStyle" />
-		<implements name="android/text/style/WrapTogetherSpan" />
-		<method name="chooseHeight(Ljava/lang/CharSequence;IIIILandroid/graphics/Paint$FontMetricsInt;)V" />
-	</class>
-	<class name="android/text/style/LineHeightSpan$WithDensity" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="android/text/style/LineHeightSpan" />
-		<method name="chooseHeight(Ljava/lang/CharSequence;IIIILandroid/graphics/Paint$FontMetricsInt;Landroid/text/TextPaint;)V" />
-	</class>
-	<class name="android/text/style/LocaleSpan" since="17">
-		<extends name="android/text/style/MetricAffectingSpan" />
-		<implements name="android/text/ParcelableSpan" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" />
-		<method name="&lt;init>(Ljava/util/Locale;)V" />
-		<method name="getLocale()Ljava/util/Locale;" />
-	</class>
-	<class name="android/text/style/MaskFilterSpan" since="1">
-		<extends name="android/text/style/CharacterStyle" />
-		<implements name="android/text/style/UpdateAppearance" since="3" />
-		<method name="&lt;init>(Landroid/graphics/MaskFilter;)V" />
-		<method name="getMaskFilter()Landroid/graphics/MaskFilter;" />
-	</class>
-	<class name="android/text/style/MetricAffectingSpan" since="1">
-		<extends name="android/text/style/CharacterStyle" />
-		<implements name="android/text/style/UpdateLayout" />
-		<method name="&lt;init>()V" />
-		<method name="getUnderlying()Landroid/text/style/MetricAffectingSpan;" />
-		<method name="updateMeasureState(Landroid/text/TextPaint;)V" />
-	</class>
-	<class name="android/text/style/ParagraphStyle" since="1">
-		<extends name="java/lang/Object" />
-	</class>
-	<class name="android/text/style/QuoteSpan" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/text/ParcelableSpan" since="3" />
-		<implements name="android/text/style/LeadingMarginSpan" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
-		<method name="getColor()I" />
-	</class>
-	<class name="android/text/style/RasterizerSpan" since="1">
-		<extends name="android/text/style/CharacterStyle" />
-		<implements name="android/text/style/UpdateAppearance" since="3" />
-		<method name="&lt;init>(Landroid/graphics/Rasterizer;)V" />
-		<method name="getRasterizer()Landroid/graphics/Rasterizer;" />
-	</class>
-	<class name="android/text/style/RelativeSizeSpan" since="1">
-		<extends name="android/text/style/MetricAffectingSpan" />
-		<implements name="android/text/ParcelableSpan" since="3" />
-		<method name="&lt;init>(F)V" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
-		<method name="getSizeChange()F" />
-	</class>
-	<class name="android/text/style/ReplacementSpan" since="1">
-		<extends name="android/text/style/MetricAffectingSpan" />
-		<method name="&lt;init>()V" />
-		<method name="draw(Landroid/graphics/Canvas;Ljava/lang/CharSequence;IIFIIILandroid/graphics/Paint;)V" />
-		<method name="getSize(Landroid/graphics/Paint;Ljava/lang/CharSequence;IILandroid/graphics/Paint$FontMetricsInt;)I" />
-	</class>
-	<class name="android/text/style/ScaleXSpan" since="1">
-		<extends name="android/text/style/MetricAffectingSpan" />
-		<implements name="android/text/ParcelableSpan" since="3" />
-		<method name="&lt;init>(F)V" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
-		<method name="getScaleX()F" />
-	</class>
-	<class name="android/text/style/StrikethroughSpan" since="1">
-		<extends name="android/text/style/CharacterStyle" />
-		<implements name="android/text/ParcelableSpan" since="3" />
-		<implements name="android/text/style/UpdateAppearance" since="3" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
-	</class>
-	<class name="android/text/style/StyleSpan" since="1">
-		<extends name="android/text/style/MetricAffectingSpan" />
-		<implements name="android/text/ParcelableSpan" since="3" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
-		<method name="getStyle()I" />
-	</class>
-	<class name="android/text/style/SubscriptSpan" since="1">
-		<extends name="android/text/style/MetricAffectingSpan" />
-		<implements name="android/text/ParcelableSpan" since="3" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
-	</class>
-	<class name="android/text/style/SuggestionSpan" since="14">
-		<extends name="android/text/style/CharacterStyle" />
-		<implements name="android/text/ParcelableSpan" />
-		<method name="&lt;init>(Landroid/content/Context;Ljava/util/Locale;[Ljava/lang/String;ILjava/lang/Class;)V" />
-		<method name="&lt;init>(Landroid/content/Context;[Ljava/lang/String;I)V" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" />
-		<method name="&lt;init>(Ljava/util/Locale;[Ljava/lang/String;I)V" />
-		<method name="getFlags()I" />
-		<method name="getLocale()Ljava/lang/String;" />
-		<method name="getSuggestions()[Ljava/lang/String;" />
-		<method name="setFlags(I)V" />
-		<field name="ACTION_SUGGESTION_PICKED" />
-		<field name="CREATOR" />
-		<field name="FLAG_AUTO_CORRECTION" since="15" />
-		<field name="FLAG_EASY_CORRECT" />
-		<field name="FLAG_MISSPELLED" />
-		<field name="SUGGESTIONS_MAX_SIZE" />
-		<field name="SUGGESTION_SPAN_PICKED_AFTER" />
-		<field name="SUGGESTION_SPAN_PICKED_BEFORE" />
-		<field name="SUGGESTION_SPAN_PICKED_HASHCODE" />
-	</class>
-	<class name="android/text/style/SuperscriptSpan" since="1">
-		<extends name="android/text/style/MetricAffectingSpan" />
-		<implements name="android/text/ParcelableSpan" since="3" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
-	</class>
-	<class name="android/text/style/TabStopSpan" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/text/style/ParagraphStyle" />
-		<method name="getTabStop()I" />
-	</class>
-	<class name="android/text/style/TabStopSpan$Standard" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/text/style/TabStopSpan" />
-		<method name="&lt;init>(I)V" />
-	</class>
-	<class name="android/text/style/TextAppearanceSpan" since="1">
-		<extends name="android/text/style/MetricAffectingSpan" />
-		<implements name="android/text/ParcelableSpan" since="3" />
-		<method name="&lt;init>(Landroid/content/Context;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;II)V" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
-		<method name="&lt;init>(Ljava/lang/String;IILandroid/content/res/ColorStateList;Landroid/content/res/ColorStateList;)V" />
-		<method name="getFamily()Ljava/lang/String;" />
-		<method name="getLinkTextColor()Landroid/content/res/ColorStateList;" />
-		<method name="getTextColor()Landroid/content/res/ColorStateList;" />
-		<method name="getTextSize()I" />
-		<method name="getTextStyle()I" />
-	</class>
-	<class name="android/text/style/TypefaceSpan" since="1">
-		<extends name="android/text/style/MetricAffectingSpan" />
-		<implements name="android/text/ParcelableSpan" since="3" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="getFamily()Ljava/lang/String;" />
-	</class>
-	<class name="android/text/style/URLSpan" since="1">
-		<extends name="android/text/style/ClickableSpan" />
-		<implements name="android/text/ParcelableSpan" since="3" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="getURL()Ljava/lang/String;" />
-	</class>
-	<class name="android/text/style/UnderlineSpan" since="1">
-		<extends name="android/text/style/CharacterStyle" />
-		<implements name="android/text/ParcelableSpan" since="3" />
-		<implements name="android/text/style/UpdateAppearance" since="3" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
-	</class>
-	<class name="android/text/style/UpdateAppearance" since="3">
-		<extends name="java/lang/Object" />
-	</class>
-	<class name="android/text/style/UpdateLayout" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/text/style/UpdateAppearance" since="3" />
-	</class>
-	<class name="android/text/style/WrapTogetherSpan" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/text/style/ParagraphStyle" />
-	</class>
-	<class name="android/text/util/Linkify" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addLinks(Landroid/text/Spannable;I)Z" />
-		<method name="addLinks(Landroid/text/Spannable;Ljava/util/regex/Pattern;Ljava/lang/String;)Z" />
-		<method name="addLinks(Landroid/text/Spannable;Ljava/util/regex/Pattern;Ljava/lang/String;Landroid/text/util/Linkify$MatchFilter;Landroid/text/util/Linkify$TransformFilter;)Z" />
-		<method name="addLinks(Landroid/widget/TextView;I)Z" />
-		<method name="addLinks(Landroid/widget/TextView;Ljava/util/regex/Pattern;Ljava/lang/String;)V" />
-		<method name="addLinks(Landroid/widget/TextView;Ljava/util/regex/Pattern;Ljava/lang/String;Landroid/text/util/Linkify$MatchFilter;Landroid/text/util/Linkify$TransformFilter;)V" />
-		<field name="ALL" />
-		<field name="EMAIL_ADDRESSES" />
-		<field name="MAP_ADDRESSES" />
-		<field name="PHONE_NUMBERS" />
-		<field name="WEB_URLS" />
-		<field name="sPhoneNumberMatchFilter" />
-		<field name="sPhoneNumberTransformFilter" />
-		<field name="sUrlMatchFilter" />
-	</class>
-	<class name="android/text/util/Linkify$MatchFilter" since="1">
-		<extends name="java/lang/Object" />
-		<method name="acceptMatch(Ljava/lang/CharSequence;II)Z" />
-	</class>
-	<class name="android/text/util/Linkify$TransformFilter" since="1">
-		<extends name="java/lang/Object" />
-		<method name="transformUrl(Ljava/util/regex/Matcher;Ljava/lang/String;)Ljava/lang/String;" />
-	</class>
-	<class name="android/text/util/Rfc822Token" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="getAddress()Ljava/lang/String;" />
-		<method name="getComment()Ljava/lang/String;" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="quoteComment(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="quoteName(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="quoteNameIfNecessary(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="setAddress(Ljava/lang/String;)V" />
-		<method name="setComment(Ljava/lang/String;)V" />
-		<method name="setName(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/text/util/Rfc822Tokenizer" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/widget/MultiAutoCompleteTextView$Tokenizer" />
-		<method name="&lt;init>()V" />
-		<method name="tokenize(Ljava/lang/CharSequence;)[Landroid/text/util/Rfc822Token;" />
-		<method name="tokenize(Ljava/lang/CharSequence;Ljava/util/Collection;)V" since="8" />
-	</class>
-	<class name="android/transition/AutoTransition" since="19">
-		<extends name="android/transition/TransitionSet" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/transition/ChangeBounds" since="19">
-		<extends name="android/transition/Transition" />
-		<method name="&lt;init>()V" />
-		<method name="setReparent(Z)V" />
-		<method name="setResizeClip(Z)V" />
-	</class>
-	<class name="android/transition/ChangeClipBounds" since="21">
-		<extends name="android/transition/Transition" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/transition/ChangeTransform" since="21">
-		<extends name="android/transition/Transition" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/transition/CircularPropagation" since="21">
-		<extends name="android/transition/VisibilityPropagation" />
-		<method name="&lt;init>()V" />
-		<method name="setPropagationSpeed(F)V" />
-	</class>
-	<class name="android/transition/Explode" since="21">
-		<extends name="android/transition/Visibility" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/transition/Fade" since="19">
-		<extends name="android/transition/Visibility" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<field name="IN" />
-		<field name="OUT" />
-	</class>
-	<class name="android/transition/MoveImage" since="21">
-		<extends name="android/transition/Transition" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/transition/Scene" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/view/ViewGroup;)V" />
-		<method name="&lt;init>(Landroid/view/ViewGroup;Landroid/view/View;)V" since="21" />
-		<method name="&lt;init>(Landroid/view/ViewGroup;Landroid/view/ViewGroup;)V" />
-		<method name="enter()V" />
-		<method name="exit()V" />
-		<method name="getSceneForLayout(Landroid/view/ViewGroup;ILandroid/content/Context;)Landroid/transition/Scene;" />
-		<method name="getSceneRoot()Landroid/view/ViewGroup;" />
-		<method name="setEnterAction(Ljava/lang/Runnable;)V" />
-		<method name="setExitAction(Ljava/lang/Runnable;)V" />
-	</class>
-	<class name="android/transition/SidePropagation" since="21">
-		<extends name="android/transition/VisibilityPropagation" />
-		<method name="&lt;init>()V" />
-		<method name="setPropagationSpeed(F)V" />
-		<method name="setSide(I)V" />
-	</class>
-	<class name="android/transition/Slide" since="21">
-		<extends name="android/transition/Visibility" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="setSlideEdge(I)V" />
-	</class>
-	<class name="android/transition/Transition" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-		<method name="&lt;init>()V" />
-		<method name="addListener(Landroid/transition/Transition$TransitionListener;)Landroid/transition/Transition;" />
-		<method name="addTarget(I)Landroid/transition/Transition;" />
-		<method name="addTarget(Landroid/view/View;)Landroid/transition/Transition;" />
-		<method name="addTarget(Ljava/lang/Class;)Landroid/transition/Transition;" since="21" />
-		<method name="addTarget(Ljava/lang/String;)Landroid/transition/Transition;" since="21" />
-		<method name="canRemoveViews()Z" since="21" />
-		<method name="captureEndValues(Landroid/transition/TransitionValues;)V" />
-		<method name="captureStartValues(Landroid/transition/TransitionValues;)V" />
-		<method name="clone()Landroid/transition/Transition;" />
-		<method name="createAnimator(Landroid/view/ViewGroup;Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)Landroid/animation/Animator;" />
-		<method name="excludeChildren(IZ)Landroid/transition/Transition;" />
-		<method name="excludeChildren(Landroid/view/View;Z)Landroid/transition/Transition;" />
-		<method name="excludeChildren(Ljava/lang/Class;Z)Landroid/transition/Transition;" />
-		<method name="excludeTarget(IZ)Landroid/transition/Transition;" />
-		<method name="excludeTarget(Landroid/view/View;Z)Landroid/transition/Transition;" />
-		<method name="excludeTarget(Ljava/lang/Class;Z)Landroid/transition/Transition;" />
-		<method name="excludeTarget(Ljava/lang/String;Z)Landroid/transition/Transition;" since="21" />
-		<method name="getDuration()J" />
-		<method name="getEpicenter()Landroid/graphics/Rect;" since="21" />
-		<method name="getEpicenterCallback()Landroid/transition/Transition$EpicenterCallback;" since="21" />
-		<method name="getInterpolator()Landroid/animation/TimeInterpolator;" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getPropagation()Landroid/transition/TransitionPropagation;" since="21" />
-		<method name="getStartDelay()J" />
-		<method name="getTargetIds()Ljava/util/List;" />
-		<method name="getTargetTypes()Ljava/util/List;" since="21" />
-		<method name="getTargetViewNames()Ljava/util/List;" since="21" />
-		<method name="getTargets()Ljava/util/List;" />
-		<method name="getTransitionProperties()[Ljava/lang/String;" />
-		<method name="getTransitionValues(Landroid/view/View;Z)Landroid/transition/TransitionValues;" />
-		<method name="removeListener(Landroid/transition/Transition$TransitionListener;)Landroid/transition/Transition;" />
-		<method name="removeTarget(I)Landroid/transition/Transition;" />
-		<method name="removeTarget(Landroid/view/View;)Landroid/transition/Transition;" />
-		<method name="removeTarget(Ljava/lang/Class;)Landroid/transition/Transition;" since="21" />
-		<method name="removeTarget(Ljava/lang/String;)Landroid/transition/Transition;" since="21" />
-		<method name="setDuration(J)Landroid/transition/Transition;" />
-		<method name="setEpicenterCallback(Landroid/transition/Transition$EpicenterCallback;)V" since="21" />
-		<method name="setInterpolator(Landroid/animation/TimeInterpolator;)Landroid/transition/Transition;" />
-		<method name="setMatchOrder([I)V" since="21" />
-		<method name="setPropagation(Landroid/transition/TransitionPropagation;)V" since="21" />
-		<method name="setStartDelay(J)Landroid/transition/Transition;" />
-		<field name="MATCH_ID" since="21" />
-		<field name="MATCH_INSTANCE" since="21" />
-		<field name="MATCH_ITEM_ID" since="21" />
-		<field name="MATCH_VIEW_NAME" since="21" />
-	</class>
-	<class name="android/transition/Transition$EpicenterCallback" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="onGetEpicenter(Landroid/transition/Transition;)Landroid/graphics/Rect;" />
-	</class>
-	<class name="android/transition/Transition$TransitionListener" since="19">
-		<extends name="java/lang/Object" />
-		<method name="onTransitionCancel(Landroid/transition/Transition;)V" />
-		<method name="onTransitionEnd(Landroid/transition/Transition;)V" />
-		<method name="onTransitionPause(Landroid/transition/Transition;)V" />
-		<method name="onTransitionResume(Landroid/transition/Transition;)V" />
-		<method name="onTransitionStart(Landroid/transition/Transition;)V" />
-	</class>
-	<class name="android/transition/TransitionInflater" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="from(Landroid/content/Context;)Landroid/transition/TransitionInflater;" />
-		<method name="inflateTransition(I)Landroid/transition/Transition;" />
-		<method name="inflateTransitionManager(ILandroid/view/ViewGroup;)Landroid/transition/TransitionManager;" />
-	</class>
-	<class name="android/transition/TransitionManager" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="beginDelayedTransition(Landroid/view/ViewGroup;)V" />
-		<method name="beginDelayedTransition(Landroid/view/ViewGroup;Landroid/transition/Transition;)V" />
-		<method name="go(Landroid/transition/Scene;)V" />
-		<method name="go(Landroid/transition/Scene;Landroid/transition/Transition;)V" />
-		<method name="setTransition(Landroid/transition/Scene;Landroid/transition/Scene;Landroid/transition/Transition;)V" />
-		<method name="setTransition(Landroid/transition/Scene;Landroid/transition/Transition;)V" />
-		<method name="transitionTo(Landroid/transition/Scene;)V" />
-	</class>
-	<class name="android/transition/TransitionPropagation" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="captureValues(Landroid/transition/TransitionValues;)V" />
-		<method name="getPropagationProperties()[Ljava/lang/String;" />
-		<method name="getStartDelay(Landroid/view/ViewGroup;Landroid/transition/Transition;Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)J" />
-	</class>
-	<class name="android/transition/TransitionSet" since="19">
-		<extends name="android/transition/Transition" />
-		<method name="&lt;init>()V" />
-		<method name="addListener(Landroid/transition/Transition$TransitionListener;)Landroid/transition/TransitionSet;" />
-		<method name="addTarget(I)Landroid/transition/TransitionSet;" />
-		<method name="addTarget(Landroid/view/View;)Landroid/transition/TransitionSet;" />
-		<method name="addTransition(Landroid/transition/Transition;)Landroid/transition/TransitionSet;" />
-		<method name="clone()Landroid/transition/TransitionSet;" />
-		<method name="getOrdering()I" />
-		<method name="removeListener(Landroid/transition/Transition$TransitionListener;)Landroid/transition/TransitionSet;" />
-		<method name="removeTarget(I)Landroid/transition/TransitionSet;" />
-		<method name="removeTarget(Landroid/view/View;)Landroid/transition/TransitionSet;" />
-		<method name="removeTransition(Landroid/transition/Transition;)Landroid/transition/TransitionSet;" />
-		<method name="setDuration(J)Landroid/transition/TransitionSet;" />
-		<method name="setInterpolator(Landroid/animation/TimeInterpolator;)Landroid/transition/TransitionSet;" />
-		<method name="setOrdering(I)Landroid/transition/TransitionSet;" />
-		<method name="setStartDelay(J)Landroid/transition/TransitionSet;" />
-		<field name="ORDERING_SEQUENTIAL" />
-		<field name="ORDERING_TOGETHER" />
-	</class>
-	<class name="android/transition/TransitionValues" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="values" />
-		<field name="view" />
-	</class>
-	<class name="android/transition/Visibility" since="19">
-		<extends name="android/transition/Transition" />
-		<method name="&lt;init>()V" />
-		<method name="isVisible(Landroid/transition/TransitionValues;)Z" />
-		<method name="onAppear(Landroid/view/ViewGroup;Landroid/transition/TransitionValues;ILandroid/transition/TransitionValues;I)Landroid/animation/Animator;" />
-		<method name="onAppear(Landroid/view/ViewGroup;Landroid/view/View;Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)Landroid/animation/Animator;" since="21" />
-		<method name="onDisappear(Landroid/view/ViewGroup;Landroid/transition/TransitionValues;ILandroid/transition/TransitionValues;I)Landroid/animation/Animator;" />
-		<method name="onDisappear(Landroid/view/ViewGroup;Landroid/view/View;Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)Landroid/animation/Animator;" since="21" />
-	</class>
-	<class name="android/transition/VisibilityPropagation" since="21">
-		<extends name="android/transition/TransitionPropagation" />
-		<method name="&lt;init>()V" />
-		<method name="getViewVisibility(Landroid/transition/TransitionValues;)I" />
-		<method name="getViewX(Landroid/transition/TransitionValues;)I" />
-		<method name="getViewY(Landroid/transition/TransitionValues;)I" />
-	</class>
-	<class name="android/util/AndroidException" since="1">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/Exception;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" since="11" />
-	</class>
-	<class name="android/util/AndroidRuntimeException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/Exception;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" since="11" />
-	</class>
-	<class name="android/util/ArrayMap" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/Map" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(Landroid/util/ArrayMap;)V" />
-		<method name="containsAll(Ljava/util/Collection;)Z" />
-		<method name="ensureCapacity(I)V" />
-		<method name="keyAt(I)Ljava/lang/Object;" />
-		<method name="putAll(Landroid/util/ArrayMap;)V" />
-		<method name="removeAll(Ljava/util/Collection;)Z" />
-		<method name="removeAt(I)Ljava/lang/Object;" />
-		<method name="retainAll(Ljava/util/Collection;)Z" />
-		<method name="setValueAt(ILjava/lang/Object;)Ljava/lang/Object;" />
-		<method name="valueAt(I)Ljava/lang/Object;" />
-	</class>
-	<class name="android/util/AtomicFile" since="17">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/io/File;)V" />
-		<method name="delete()V" />
-		<method name="failWrite(Ljava/io/FileOutputStream;)V" />
-		<method name="finishWrite(Ljava/io/FileOutputStream;)V" />
-		<method name="getBaseFile()Ljava/io/File;" />
-		<method name="openRead()Ljava/io/FileInputStream;" />
-		<method name="readFully()[B" />
-		<method name="startWrite()Ljava/io/FileOutputStream;" />
-	</class>
-	<class name="android/util/AttributeSet" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getAttributeBooleanValue(IZ)Z" />
-		<method name="getAttributeBooleanValue(Ljava/lang/String;Ljava/lang/String;Z)Z" />
-		<method name="getAttributeCount()I" />
-		<method name="getAttributeFloatValue(IF)F" />
-		<method name="getAttributeFloatValue(Ljava/lang/String;Ljava/lang/String;F)F" />
-		<method name="getAttributeIntValue(II)I" />
-		<method name="getAttributeIntValue(Ljava/lang/String;Ljava/lang/String;I)I" />
-		<method name="getAttributeListValue(I[Ljava/lang/String;I)I" />
-		<method name="getAttributeListValue(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;I)I" />
-		<method name="getAttributeName(I)Ljava/lang/String;" />
-		<method name="getAttributeNameResource(I)I" />
-		<method name="getAttributeResourceValue(II)I" />
-		<method name="getAttributeResourceValue(Ljava/lang/String;Ljava/lang/String;I)I" />
-		<method name="getAttributeUnsignedIntValue(II)I" />
-		<method name="getAttributeUnsignedIntValue(Ljava/lang/String;Ljava/lang/String;I)I" />
-		<method name="getAttributeValue(I)Ljava/lang/String;" />
-		<method name="getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getClassAttribute()Ljava/lang/String;" />
-		<method name="getIdAttribute()Ljava/lang/String;" />
-		<method name="getIdAttributeResourceValue(I)I" />
-		<method name="getPositionDescription()Ljava/lang/String;" />
-		<method name="getStyleAttribute()I" />
-	</class>
-	<class name="android/util/Base64" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="decode(Ljava/lang/String;I)[B" />
-		<method name="decode([BI)[B" />
-		<method name="decode([BIII)[B" />
-		<method name="encode([BI)[B" />
-		<method name="encode([BIII)[B" />
-		<method name="encodeToString([BI)Ljava/lang/String;" />
-		<method name="encodeToString([BIII)Ljava/lang/String;" />
-		<field name="CRLF" />
-		<field name="DEFAULT" />
-		<field name="NO_CLOSE" />
-		<field name="NO_PADDING" />
-		<field name="NO_WRAP" />
-		<field name="URL_SAFE" />
-	</class>
-	<class name="android/util/Base64DataException" since="11">
-		<extends name="java/io/IOException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/util/Base64InputStream" since="8">
-		<extends name="java/io/FilterInputStream" />
-		<method name="&lt;init>(Ljava/io/InputStream;I)V" />
-	</class>
-	<class name="android/util/Base64OutputStream" since="8">
-		<extends name="java/io/FilterOutputStream" />
-		<method name="&lt;init>(Ljava/io/OutputStream;I)V" />
-	</class>
-	<class name="android/util/Config" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="DEBUG" />
-		<field name="LOGD" />
-		<field name="LOGV" />
-		<field name="PROFILE" />
-		<field name="RELEASE" />
-	</class>
-	<class name="android/util/DebugUtils" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="isObjectSelected(Ljava/lang/Object;)Z" />
-	</class>
-	<class name="android/util/DisplayMetrics" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="equals(Landroid/util/DisplayMetrics;)Z" since="17" />
-		<method name="setTo(Landroid/util/DisplayMetrics;)V" />
-		<method name="setToDefaults()V" />
-		<field name="DENSITY_400" since="19" />
-		<field name="DENSITY_DEFAULT" since="4" />
-		<field name="DENSITY_HIGH" since="4" />
-		<field name="DENSITY_LOW" since="4" />
-		<field name="DENSITY_MEDIUM" since="4" />
-		<field name="DENSITY_TV" since="13" />
-		<field name="DENSITY_XHIGH" since="9" />
-		<field name="DENSITY_XXHIGH" since="16" />
-		<field name="DENSITY_XXXHIGH" since="18" />
-		<field name="density" />
-		<field name="densityDpi" since="4" />
-		<field name="heightPixels" />
-		<field name="scaledDensity" />
-		<field name="widthPixels" />
-		<field name="xdpi" />
-		<field name="ydpi" />
-	</class>
-	<class name="android/util/EventLog" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getTagCode(Ljava/lang/String;)I" />
-		<method name="getTagName(I)Ljava/lang/String;" />
-		<method name="readEvents([ILjava/util/Collection;)V" />
-		<method name="writeEvent(II)I" />
-		<method name="writeEvent(IJ)I" />
-		<method name="writeEvent(ILjava/lang/String;)I" />
-		<method name="writeEvent(I[Ljava/lang/Object;)I" />
-	</class>
-	<class name="android/util/EventLog$Event" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getData()Ljava/lang/Object;" />
-		<method name="getProcessId()I" />
-		<method name="getTag()I" />
-		<method name="getThreadId()I" />
-		<method name="getTimeNanos()J" />
-	</class>
-	<class name="android/util/EventLogTags" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/io/BufferedReader;)V" />
-		<method name="get(I)Landroid/util/EventLogTags$Description;" />
-		<method name="get(Ljava/lang/String;)Landroid/util/EventLogTags$Description;" />
-	</class>
-	<class name="android/util/EventLogTags$Description" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="mName" />
-		<field name="mTag" />
-	</class>
-	<class name="android/util/FloatMath" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="ceil(F)F" />
-		<method name="cos(F)F" />
-		<method name="exp(F)F" since="17" />
-		<method name="floor(F)F" />
-		<method name="hypot(FF)F" since="17" />
-		<method name="pow(FF)F" since="17" />
-		<method name="sin(F)F" />
-		<method name="sqrt(F)F" />
-	</class>
-	<class name="android/util/JsonReader" since="11">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Closeable" />
-		<method name="&lt;init>(Ljava/io/Reader;)V" />
-		<method name="beginArray()V" />
-		<method name="beginObject()V" />
-		<method name="endArray()V" />
-		<method name="endObject()V" />
-		<method name="hasNext()Z" />
-		<method name="isLenient()Z" />
-		<method name="nextBoolean()Z" />
-		<method name="nextDouble()D" />
-		<method name="nextInt()I" />
-		<method name="nextLong()J" />
-		<method name="nextName()Ljava/lang/String;" />
-		<method name="nextNull()V" />
-		<method name="nextString()Ljava/lang/String;" />
-		<method name="peek()Landroid/util/JsonToken;" />
-		<method name="setLenient(Z)V" />
-		<method name="skipValue()V" />
-	</class>
-	<class name="android/util/JsonToken" since="11">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/util/JsonToken;" />
-		<method name="values()[Landroid/util/JsonToken;" />
-		<field name="BEGIN_ARRAY" />
-		<field name="BEGIN_OBJECT" />
-		<field name="BOOLEAN" />
-		<field name="END_ARRAY" />
-		<field name="END_DOCUMENT" />
-		<field name="END_OBJECT" />
-		<field name="NAME" />
-		<field name="NULL" />
-		<field name="NUMBER" />
-		<field name="STRING" />
-	</class>
-	<class name="android/util/JsonWriter" since="11">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Closeable" />
-		<method name="&lt;init>(Ljava/io/Writer;)V" />
-		<method name="beginArray()Landroid/util/JsonWriter;" />
-		<method name="beginObject()Landroid/util/JsonWriter;" />
-		<method name="endArray()Landroid/util/JsonWriter;" />
-		<method name="endObject()Landroid/util/JsonWriter;" />
-		<method name="flush()V" />
-		<method name="isLenient()Z" />
-		<method name="name(Ljava/lang/String;)Landroid/util/JsonWriter;" />
-		<method name="nullValue()Landroid/util/JsonWriter;" />
-		<method name="setIndent(Ljava/lang/String;)V" />
-		<method name="setLenient(Z)V" />
-		<method name="value(D)Landroid/util/JsonWriter;" />
-		<method name="value(J)Landroid/util/JsonWriter;" />
-		<method name="value(Ljava/lang/Number;)Landroid/util/JsonWriter;" />
-		<method name="value(Ljava/lang/String;)Landroid/util/JsonWriter;" />
-		<method name="value(Z)Landroid/util/JsonWriter;" />
-	</class>
-	<class name="android/util/LayoutDirection" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="INHERIT" />
-		<field name="LOCALE" />
-		<field name="LTR" />
-		<field name="RTL" />
-	</class>
-	<class name="android/util/Log" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="d(Ljava/lang/String;Ljava/lang/String;)I" />
-		<method name="d(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I" />
-		<method name="e(Ljava/lang/String;Ljava/lang/String;)I" />
-		<method name="e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I" />
-		<method name="getStackTraceString(Ljava/lang/Throwable;)Ljava/lang/String;" />
-		<method name="i(Ljava/lang/String;Ljava/lang/String;)I" />
-		<method name="i(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I" />
-		<method name="isLoggable(Ljava/lang/String;I)Z" />
-		<method name="println(ILjava/lang/String;Ljava/lang/String;)I" />
-		<method name="v(Ljava/lang/String;Ljava/lang/String;)I" />
-		<method name="v(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I" />
-		<method name="w(Ljava/lang/String;Ljava/lang/String;)I" />
-		<method name="w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I" />
-		<method name="w(Ljava/lang/String;Ljava/lang/Throwable;)I" />
-		<method name="wtf(Ljava/lang/String;Ljava/lang/String;)I" since="8" />
-		<method name="wtf(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I" since="8" />
-		<method name="wtf(Ljava/lang/String;Ljava/lang/Throwable;)I" since="8" />
-		<field name="ASSERT" />
-		<field name="DEBUG" />
-		<field name="ERROR" />
-		<field name="INFO" />
-		<field name="VERBOSE" />
-		<field name="WARN" />
-	</class>
-	<class name="android/util/LogPrinter" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/util/Printer" />
-		<method name="&lt;init>(ILjava/lang/String;)V" />
-	</class>
-	<class name="android/util/LongSparseArray" since="16">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="append(JLjava/lang/Object;)V" />
-		<method name="clear()V" />
-		<method name="clone()Landroid/util/LongSparseArray;" />
-		<method name="delete(J)V" />
-		<method name="get(J)Ljava/lang/Object;" />
-		<method name="get(JLjava/lang/Object;)Ljava/lang/Object;" />
-		<method name="indexOfKey(J)I" />
-		<method name="indexOfValue(Ljava/lang/Object;)I" />
-		<method name="keyAt(I)J" />
-		<method name="put(JLjava/lang/Object;)V" />
-		<method name="remove(J)V" />
-		<method name="removeAt(I)V" />
-		<method name="setValueAt(ILjava/lang/Object;)V" />
-		<method name="size()I" />
-		<method name="valueAt(I)Ljava/lang/Object;" />
-	</class>
-	<class name="android/util/LruCache" since="12">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(I)V" />
-		<method name="create(Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="createCount()I" />
-		<method name="entryRemoved(ZLjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V" />
-		<method name="evictAll()V" />
-		<method name="evictionCount()I" />
-		<method name="get(Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="hitCount()I" />
-		<method name="maxSize()I" />
-		<method name="missCount()I" />
-		<method name="put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="putCount()I" />
-		<method name="remove(Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="resize(I)V" since="21" />
-		<method name="size()I" />
-		<method name="sizeOf(Ljava/lang/Object;Ljava/lang/Object;)I" />
-		<method name="snapshot()Ljava/util/Map;" />
-		<method name="trimToSize(I)V" since="17" />
-	</class>
-	<class name="android/util/MalformedJsonException" since="11">
-		<extends name="java/io/IOException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/util/MonthDisplayHelper" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(II)V" />
-		<method name="&lt;init>(III)V" />
-		<method name="getColumnOf(I)I" />
-		<method name="getDayAt(II)I" />
-		<method name="getDigitsForRow(I)[I" />
-		<method name="getFirstDayOfMonth()I" />
-		<method name="getMonth()I" />
-		<method name="getNumberOfDaysInMonth()I" />
-		<method name="getOffset()I" />
-		<method name="getRowOf(I)I" />
-		<method name="getWeekStartDay()I" />
-		<method name="getYear()I" />
-		<method name="isWithinCurrentMonth(II)Z" />
-		<method name="nextMonth()V" />
-		<method name="previousMonth()V" />
-	</class>
-	<class name="android/util/MutableBoolean" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Z)V" />
-		<field name="value" />
-	</class>
-	<class name="android/util/MutableByte" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(B)V" />
-		<field name="value" />
-	</class>
-	<class name="android/util/MutableChar" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(C)V" />
-		<field name="value" />
-	</class>
-	<class name="android/util/MutableDouble" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(D)V" />
-		<field name="value" />
-	</class>
-	<class name="android/util/MutableFloat" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(F)V" />
-		<field name="value" />
-	</class>
-	<class name="android/util/MutableInt" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(I)V" />
-		<field name="value" />
-	</class>
-	<class name="android/util/MutableLong" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(J)V" />
-		<field name="value" />
-	</class>
-	<class name="android/util/MutableShort" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(S)V" />
-		<field name="value" />
-	</class>
-	<class name="android/util/NoSuchPropertyException" since="14">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/util/Pair" since="5">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/Object;Ljava/lang/Object;)V" />
-		<method name="create(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;" />
-		<field name="first" />
-		<field name="second" />
-	</class>
-	<class name="android/util/Patterns" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="concatGroups(Ljava/util/regex/Matcher;)Ljava/lang/String;" />
-		<method name="digitsAndPlusOnly(Ljava/util/regex/Matcher;)Ljava/lang/String;" />
-		<field name="DOMAIN_NAME" />
-		<field name="EMAIL_ADDRESS" />
-		<field name="GOOD_IRI_CHAR" />
-		<field name="IP_ADDRESS" />
-		<field name="PHONE" />
-		<field name="TOP_LEVEL_DOMAIN" />
-		<field name="TOP_LEVEL_DOMAIN_STR" />
-		<field name="TOP_LEVEL_DOMAIN_STR_FOR_WEB_URL" />
-		<field name="WEB_URL" />
-	</class>
-	<class name="android/util/PrintStreamPrinter" since="3">
-		<extends name="java/lang/Object" />
-		<implements name="android/util/Printer" />
-		<method name="&lt;init>(Ljava/io/PrintStream;)V" />
-	</class>
-	<class name="android/util/PrintWriterPrinter" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/util/Printer" />
-		<method name="&lt;init>(Ljava/io/PrintWriter;)V" />
-	</class>
-	<class name="android/util/Printer" since="1">
-		<extends name="java/lang/Object" />
-		<method name="println(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/util/Property" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/Class;Ljava/lang/String;)V" />
-		<method name="get(Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getType()Ljava/lang/Class;" />
-		<method name="isReadOnly()Z" />
-		<method name="of(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Landroid/util/Property;" />
-		<method name="set(Ljava/lang/Object;Ljava/lang/Object;)V" />
-	</class>
-	<class name="android/util/Range" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/Comparable;Ljava/lang/Comparable;)V" />
-		<method name="create(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;" />
-		<method name="getLower()Ljava/lang/Comparable;" />
-		<method name="getUpper()Ljava/lang/Comparable;" />
-		<method name="inRange(Ljava/lang/Comparable;)Z" />
-	</class>
-	<class name="android/util/Rational" since="21">
-		<extends name="java/lang/Number" />
-		<implements name="java/lang/Comparable" />
-		<method name="&lt;init>(II)V" />
-		<method name="compareTo(Landroid/util/Rational;)I" />
-		<method name="getDenominator()I" />
-		<method name="getNumerator()I" />
-		<method name="isFinite()Z" />
-		<method name="isInfinite()Z" />
-		<method name="isNaN()Z" />
-		<method name="isZero()Z" />
-		<field name="NEGATIVE_INFINITY" />
-		<field name="NaN" />
-		<field name="POSITIVE_INFINITY" />
-		<field name="ZERO" />
-	</class>
-	<class name="android/util/Size" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(II)V" />
-		<method name="getHeight()I" />
-		<method name="getWidth()I" />
-	</class>
-	<class name="android/util/SizeF" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(FF)V" />
-		<method name="getHeight()F" />
-		<method name="getWidth()F" />
-	</class>
-	<class name="android/util/SparseArray" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" since="14" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="append(ILjava/lang/Object;)V" />
-		<method name="clear()V" />
-		<method name="clone()Landroid/util/SparseArray;" since="14" />
-		<method name="delete(I)V" />
-		<method name="get(I)Ljava/lang/Object;" />
-		<method name="get(ILjava/lang/Object;)Ljava/lang/Object;" />
-		<method name="indexOfKey(I)I" />
-		<method name="indexOfValue(Ljava/lang/Object;)I" />
-		<method name="keyAt(I)I" />
-		<method name="put(ILjava/lang/Object;)V" />
-		<method name="remove(I)V" />
-		<method name="removeAt(I)V" since="11" />
-		<method name="removeAtRange(II)V" since="19" />
-		<method name="setValueAt(ILjava/lang/Object;)V" />
-		<method name="size()I" />
-		<method name="valueAt(I)Ljava/lang/Object;" />
-	</class>
-	<class name="android/util/SparseBooleanArray" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" since="14" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="append(IZ)V" />
-		<method name="clear()V" />
-		<method name="clone()Landroid/util/SparseBooleanArray;" since="14" />
-		<method name="delete(I)V" />
-		<method name="get(I)Z" />
-		<method name="get(IZ)Z" />
-		<method name="indexOfKey(I)I" />
-		<method name="indexOfValue(Z)I" />
-		<method name="keyAt(I)I" />
-		<method name="put(IZ)V" />
-		<method name="size()I" />
-		<method name="valueAt(I)Z" />
-	</class>
-	<class name="android/util/SparseIntArray" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" since="14" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="append(II)V" />
-		<method name="clear()V" />
-		<method name="clone()Landroid/util/SparseIntArray;" since="14" />
-		<method name="delete(I)V" />
-		<method name="get(I)I" />
-		<method name="get(II)I" />
-		<method name="indexOfKey(I)I" />
-		<method name="indexOfValue(I)I" />
-		<method name="keyAt(I)I" />
-		<method name="put(II)V" />
-		<method name="removeAt(I)V" since="3" />
-		<method name="size()I" />
-		<method name="valueAt(I)I" />
-	</class>
-	<class name="android/util/SparseLongArray" since="18">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="append(IJ)V" />
-		<method name="clear()V" />
-		<method name="clone()Landroid/util/SparseLongArray;" />
-		<method name="delete(I)V" />
-		<method name="get(I)J" />
-		<method name="get(IJ)J" />
-		<method name="indexOfKey(I)I" />
-		<method name="indexOfValue(J)I" />
-		<method name="keyAt(I)I" />
-		<method name="put(IJ)V" />
-		<method name="removeAt(I)V" />
-		<method name="size()I" />
-		<method name="valueAt(I)J" />
-	</class>
-	<class name="android/util/StateSet" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="dump([I)Ljava/lang/String;" />
-		<method name="isWildCard([I)Z" />
-		<method name="stateSetMatches([II)Z" />
-		<method name="stateSetMatches([I[I)Z" />
-		<method name="trimStateSet([II)[I" />
-		<field name="NOTHING" since="11" />
-		<field name="WILD_CARD" />
-	</class>
-	<class name="android/util/StringBuilderPrinter" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/util/Printer" />
-		<method name="&lt;init>(Ljava/lang/StringBuilder;)V" />
-	</class>
-	<class name="android/util/TimeFormatException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/util/TimeUtils" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getTimeZone(IZJLjava/lang/String;)Ljava/util/TimeZone;" />
-		<method name="getTimeZoneDatabaseVersion()Ljava/lang/String;" since="3" />
-	</class>
-	<class name="android/util/TimingLogger" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="addSplit(Ljava/lang/String;)V" />
-		<method name="dumpToLog()V" />
-		<method name="reset()V" />
-		<method name="reset(Ljava/lang/String;Ljava/lang/String;)V" />
-	</class>
-	<class name="android/util/TypedValue" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="applyDimension(IFLandroid/util/DisplayMetrics;)F" />
-		<method name="coerceToString()Ljava/lang/CharSequence;" />
-		<method name="coerceToString(II)Ljava/lang/String;" />
-		<method name="complexToDimension(ILandroid/util/DisplayMetrics;)F" />
-		<method name="complexToDimensionNoisy(ILandroid/util/DisplayMetrics;)F" />
-		<method name="complexToDimensionPixelOffset(ILandroid/util/DisplayMetrics;)I" />
-		<method name="complexToDimensionPixelSize(ILandroid/util/DisplayMetrics;)I" />
-		<method name="complexToFloat(I)F" />
-		<method name="complexToFraction(IFF)F" />
-		<method name="getDimension(Landroid/util/DisplayMetrics;)F" />
-		<method name="getFloat()F" />
-		<method name="getFraction(FF)F" />
-		<method name="setTo(Landroid/util/TypedValue;)V" />
-		<field name="COMPLEX_MANTISSA_MASK" />
-		<field name="COMPLEX_MANTISSA_SHIFT" />
-		<field name="COMPLEX_RADIX_0p23" />
-		<field name="COMPLEX_RADIX_16p7" />
-		<field name="COMPLEX_RADIX_23p0" />
-		<field name="COMPLEX_RADIX_8p15" />
-		<field name="COMPLEX_RADIX_MASK" />
-		<field name="COMPLEX_RADIX_SHIFT" />
-		<field name="COMPLEX_UNIT_DIP" />
-		<field name="COMPLEX_UNIT_FRACTION" />
-		<field name="COMPLEX_UNIT_FRACTION_PARENT" />
-		<field name="COMPLEX_UNIT_IN" />
-		<field name="COMPLEX_UNIT_MASK" />
-		<field name="COMPLEX_UNIT_MM" />
-		<field name="COMPLEX_UNIT_PT" />
-		<field name="COMPLEX_UNIT_PX" />
-		<field name="COMPLEX_UNIT_SHIFT" />
-		<field name="COMPLEX_UNIT_SP" />
-		<field name="DENSITY_DEFAULT" since="4" />
-		<field name="DENSITY_NONE" since="4" />
-		<field name="TYPE_ATTRIBUTE" />
-		<field name="TYPE_DIMENSION" />
-		<field name="TYPE_FIRST_COLOR_INT" />
-		<field name="TYPE_FIRST_INT" />
-		<field name="TYPE_FLOAT" />
-		<field name="TYPE_FRACTION" />
-		<field name="TYPE_INT_BOOLEAN" />
-		<field name="TYPE_INT_COLOR_ARGB4" />
-		<field name="TYPE_INT_COLOR_ARGB8" />
-		<field name="TYPE_INT_COLOR_RGB4" />
-		<field name="TYPE_INT_COLOR_RGB8" />
-		<field name="TYPE_INT_DEC" />
-		<field name="TYPE_INT_HEX" />
-		<field name="TYPE_LAST_COLOR_INT" />
-		<field name="TYPE_LAST_INT" />
-		<field name="TYPE_NULL" />
-		<field name="TYPE_REFERENCE" />
-		<field name="TYPE_STRING" />
-		<field name="assetCookie" />
-		<field name="changingConfigurations" />
-		<field name="data" />
-		<field name="density" since="4" />
-		<field name="resourceId" />
-		<field name="string" />
-		<field name="type" />
-	</class>
-	<class name="android/util/Xml" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="asAttributeSet(Lorg/xmlpull/v1/XmlPullParser;)Landroid/util/AttributeSet;" />
-		<method name="findEncodingByName(Ljava/lang/String;)Landroid/util/Xml$Encoding;" />
-		<method name="newPullParser()Lorg/xmlpull/v1/XmlPullParser;" />
-		<method name="newSerializer()Lorg/xmlpull/v1/XmlSerializer;" />
-		<method name="parse(Ljava/io/InputStream;Landroid/util/Xml$Encoding;Lorg/xml/sax/ContentHandler;)V" />
-		<method name="parse(Ljava/io/Reader;Lorg/xml/sax/ContentHandler;)V" />
-		<method name="parse(Ljava/lang/String;Lorg/xml/sax/ContentHandler;)V" />
-		<field name="FEATURE_RELAXED" />
-	</class>
-	<class name="android/util/Xml$Encoding" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/util/Xml$Encoding;" />
-		<method name="values()[Landroid/util/Xml$Encoding;" />
-		<field name="ISO_8859_1" />
-		<field name="US_ASCII" />
-		<field name="UTF_16" />
-		<field name="UTF_8" />
-	</class>
-	<class name="android/view/AbsSavedState" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" />
-		<method name="&lt;init>(Landroid/os/Parcelable;)V" />
-		<method name="getSuperState()Landroid/os/Parcelable;" />
-		<field name="CREATOR" />
-		<field name="EMPTY_STATE" />
-	</class>
-	<class name="android/view/ActionMode" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="finish()V" />
-		<method name="getCustomView()Landroid/view/View;" />
-		<method name="getMenu()Landroid/view/Menu;" />
-		<method name="getMenuInflater()Landroid/view/MenuInflater;" />
-		<method name="getSubtitle()Ljava/lang/CharSequence;" />
-		<method name="getTag()Ljava/lang/Object;" since="14" />
-		<method name="getTitle()Ljava/lang/CharSequence;" />
-		<method name="getTitleOptionalHint()Z" since="16" />
-		<method name="invalidate()V" />
-		<method name="isTitleOptional()Z" since="16" />
-		<method name="setCustomView(Landroid/view/View;)V" />
-		<method name="setSubtitle(I)V" />
-		<method name="setSubtitle(Ljava/lang/CharSequence;)V" />
-		<method name="setTag(Ljava/lang/Object;)V" since="14" />
-		<method name="setTitle(I)V" />
-		<method name="setTitle(Ljava/lang/CharSequence;)V" />
-		<method name="setTitleOptionalHint(Z)V" since="16" />
-	</class>
-	<class name="android/view/ActionMode$Callback" since="11">
-		<extends name="java/lang/Object" />
-		<method name="onActionItemClicked(Landroid/view/ActionMode;Landroid/view/MenuItem;)Z" />
-		<method name="onCreateActionMode(Landroid/view/ActionMode;Landroid/view/Menu;)Z" />
-		<method name="onDestroyActionMode(Landroid/view/ActionMode;)V" />
-		<method name="onPrepareActionMode(Landroid/view/ActionMode;Landroid/view/Menu;)Z" />
-	</class>
-	<class name="android/view/ActionProvider" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="hasSubMenu()Z" />
-		<method name="isVisible()Z" since="16" />
-		<method name="onCreateActionView()Landroid/view/View;" />
-		<method name="onCreateActionView(Landroid/view/MenuItem;)Landroid/view/View;" since="16" />
-		<method name="onPerformDefaultAction()Z" />
-		<method name="onPrepareSubMenu(Landroid/view/SubMenu;)V" />
-		<method name="overridesItemVisibility()Z" since="16" />
-		<method name="refreshVisibility()V" since="16" />
-		<method name="setVisibilityListener(Landroid/view/ActionProvider$VisibilityListener;)V" since="16" />
-	</class>
-	<class name="android/view/ActionProvider$VisibilityListener" since="16">
-		<extends name="java/lang/Object" />
-		<method name="onActionProviderVisibilityChanged(Z)V" />
-	</class>
-	<class name="android/view/Choreographer" since="16">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getInstance()Landroid/view/Choreographer;" />
-		<method name="postFrameCallback(Landroid/view/Choreographer$FrameCallback;)V" />
-		<method name="postFrameCallbackDelayed(Landroid/view/Choreographer$FrameCallback;J)V" />
-		<method name="removeFrameCallback(Landroid/view/Choreographer$FrameCallback;)V" />
-	</class>
-	<class name="android/view/Choreographer$FrameCallback" since="16">
-		<extends name="java/lang/Object" />
-		<method name="doFrame(J)V" />
-	</class>
-	<class name="android/view/CollapsibleActionView" since="14">
-		<extends name="java/lang/Object" />
-		<method name="onActionViewCollapsed()V" />
-		<method name="onActionViewExpanded()V" />
-	</class>
-	<class name="android/view/ContextMenu" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/view/Menu" />
-		<method name="clearHeader()V" />
-		<method name="setHeaderIcon(I)Landroid/view/ContextMenu;" />
-		<method name="setHeaderIcon(Landroid/graphics/drawable/Drawable;)Landroid/view/ContextMenu;" />
-		<method name="setHeaderTitle(I)Landroid/view/ContextMenu;" />
-		<method name="setHeaderTitle(Ljava/lang/CharSequence;)Landroid/view/ContextMenu;" />
-		<method name="setHeaderView(Landroid/view/View;)Landroid/view/ContextMenu;" />
-	</class>
-	<class name="android/view/ContextMenu$ContextMenuInfo" since="1">
-		<extends name="java/lang/Object" />
-	</class>
-	<class name="android/view/ContextThemeWrapper" since="1">
-		<extends name="android/content/ContextWrapper" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/content/Context;I)V" />
-		<method name="applyOverrideConfiguration(Landroid/content/res/Configuration;)V" since="17" />
-		<method name="onApplyThemeResource(Landroid/content/res/Resources$Theme;IZ)V" />
-	</class>
-	<class name="android/view/Display" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getCurrentSizeRange(Landroid/graphics/Point;Landroid/graphics/Point;)V" since="16" />
-		<method name="getDisplayId()I" />
-		<method name="getFlags()I" since="17" />
-		<method name="getHeight()I" />
-		<method name="getMetrics(Landroid/util/DisplayMetrics;)V" />
-		<method name="getName()Ljava/lang/String;" since="17" />
-		<method name="getOrientation()I" />
-		<method name="getPixelFormat()I" />
-		<method name="getRealMetrics(Landroid/util/DisplayMetrics;)V" since="17" />
-		<method name="getRealSize(Landroid/graphics/Point;)V" since="17" />
-		<method name="getRectSize(Landroid/graphics/Rect;)V" since="13" />
-		<method name="getRefreshRate()F" />
-		<method name="getRotation()I" since="8" />
-		<method name="getSize(Landroid/graphics/Point;)V" since="13" />
-		<method name="getState()I" since="20" />
-		<method name="getWidth()I" />
-		<method name="isValid()Z" since="17" />
-		<field name="DEFAULT_DISPLAY" />
-		<field name="FLAG_PRESENTATION" since="19" />
-		<field name="FLAG_PRIVATE" since="19" />
-		<field name="FLAG_SECURE" since="17" />
-		<field name="FLAG_SUPPORTS_PROTECTED_BUFFERS" since="17" />
-		<field name="STATE_DOZING" since="20" />
-		<field name="STATE_OFF" since="20" />
-		<field name="STATE_ON" since="20" />
-		<field name="STATE_UNKNOWN" since="20" />
-	</class>
-	<class name="android/view/DragEvent" since="11">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getAction()I" />
-		<method name="getClipData()Landroid/content/ClipData;" />
-		<method name="getClipDescription()Landroid/content/ClipDescription;" />
-		<method name="getLocalState()Ljava/lang/Object;" />
-		<method name="getResult()Z" />
-		<method name="getX()F" />
-		<method name="getY()F" />
-		<field name="ACTION_DRAG_ENDED" />
-		<field name="ACTION_DRAG_ENTERED" />
-		<field name="ACTION_DRAG_EXITED" />
-		<field name="ACTION_DRAG_LOCATION" />
-		<field name="ACTION_DRAG_STARTED" />
-		<field name="ACTION_DROP" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/view/FocusFinder" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="findNearestTouchable(Landroid/view/ViewGroup;III[I)Landroid/view/View;" />
-		<method name="findNextFocus(Landroid/view/ViewGroup;Landroid/view/View;I)Landroid/view/View;" />
-		<method name="findNextFocusFromRect(Landroid/view/ViewGroup;Landroid/graphics/Rect;I)Landroid/view/View;" />
-		<method name="getInstance()Landroid/view/FocusFinder;" />
-	</class>
-	<class name="android/view/FrameStats" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getEndTimeNano()J" />
-		<method name="getFrameCount()I" />
-		<method name="getFramePresentedTimeNano(I)J" />
-		<method name="getRefreshPeriodNano()J" />
-		<method name="getStartTimeNano()J" />
-		<field name="UNDEFINED_TIME_NANO" />
-		<field name="mFramesPresentedTimeNano" />
-		<field name="mRefreshPeriodNano" />
-	</class>
-	<class name="android/view/GestureDetector" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/view/GestureDetector$OnGestureListener;)V" since="3" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/view/GestureDetector$OnGestureListener;Landroid/os/Handler;)V" since="3" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/view/GestureDetector$OnGestureListener;Landroid/os/Handler;Z)V" since="8" />
-		<method name="&lt;init>(Landroid/view/GestureDetector$OnGestureListener;)V" />
-		<method name="&lt;init>(Landroid/view/GestureDetector$OnGestureListener;Landroid/os/Handler;)V" />
-		<method name="isLongpressEnabled()Z" />
-		<method name="onTouchEvent(Landroid/view/MotionEvent;)Z" />
-		<method name="setIsLongpressEnabled(Z)V" />
-		<method name="setOnDoubleTapListener(Landroid/view/GestureDetector$OnDoubleTapListener;)V" since="3" />
-	</class>
-	<class name="android/view/GestureDetector$OnDoubleTapListener" since="3">
-		<extends name="java/lang/Object" />
-		<method name="onDoubleTap(Landroid/view/MotionEvent;)Z" />
-		<method name="onDoubleTapEvent(Landroid/view/MotionEvent;)Z" />
-		<method name="onSingleTapConfirmed(Landroid/view/MotionEvent;)Z" />
-	</class>
-	<class name="android/view/GestureDetector$OnGestureListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onDown(Landroid/view/MotionEvent;)Z" />
-		<method name="onFling(Landroid/view/MotionEvent;Landroid/view/MotionEvent;FF)Z" />
-		<method name="onLongPress(Landroid/view/MotionEvent;)V" />
-		<method name="onScroll(Landroid/view/MotionEvent;Landroid/view/MotionEvent;FF)Z" />
-		<method name="onShowPress(Landroid/view/MotionEvent;)V" />
-		<method name="onSingleTapUp(Landroid/view/MotionEvent;)Z" />
-	</class>
-	<class name="android/view/GestureDetector$SimpleOnGestureListener" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/view/GestureDetector$OnDoubleTapListener" since="3" />
-		<implements name="android/view/GestureDetector$OnGestureListener" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/view/Gravity" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="apply(IIILandroid/graphics/Rect;IILandroid/graphics/Rect;)V" />
-		<method name="apply(IIILandroid/graphics/Rect;IILandroid/graphics/Rect;I)V" since="17" />
-		<method name="apply(IIILandroid/graphics/Rect;Landroid/graphics/Rect;)V" />
-		<method name="apply(IIILandroid/graphics/Rect;Landroid/graphics/Rect;I)V" since="17" />
-		<method name="applyDisplay(ILandroid/graphics/Rect;Landroid/graphics/Rect;)V" since="3" />
-		<method name="applyDisplay(ILandroid/graphics/Rect;Landroid/graphics/Rect;I)V" since="17" />
-		<method name="getAbsoluteGravity(II)I" since="14" />
-		<method name="isHorizontal(I)Z" />
-		<method name="isVertical(I)Z" />
-		<field name="AXIS_CLIP" since="3" />
-		<field name="AXIS_PULL_AFTER" />
-		<field name="AXIS_PULL_BEFORE" />
-		<field name="AXIS_SPECIFIED" />
-		<field name="AXIS_X_SHIFT" />
-		<field name="AXIS_Y_SHIFT" />
-		<field name="BOTTOM" />
-		<field name="CENTER" />
-		<field name="CENTER_HORIZONTAL" />
-		<field name="CENTER_VERTICAL" />
-		<field name="CLIP_HORIZONTAL" since="3" />
-		<field name="CLIP_VERTICAL" since="3" />
-		<field name="DISPLAY_CLIP_HORIZONTAL" since="3" />
-		<field name="DISPLAY_CLIP_VERTICAL" since="3" />
-		<field name="END" since="14" />
-		<field name="FILL" />
-		<field name="FILL_HORIZONTAL" />
-		<field name="FILL_VERTICAL" />
-		<field name="HORIZONTAL_GRAVITY_MASK" />
-		<field name="LEFT" />
-		<field name="NO_GRAVITY" />
-		<field name="RELATIVE_HORIZONTAL_GRAVITY_MASK" since="14" />
-		<field name="RELATIVE_LAYOUT_DIRECTION" since="14" />
-		<field name="RIGHT" />
-		<field name="START" since="14" />
-		<field name="TOP" />
-		<field name="VERTICAL_GRAVITY_MASK" />
-	</class>
-	<class name="android/view/HapticFeedbackConstants" since="3">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="CLOCK_TICK" since="21" />
-		<field name="FLAG_IGNORE_GLOBAL_SETTING" />
-		<field name="FLAG_IGNORE_VIEW_SETTING" />
-		<field name="KEYBOARD_TAP" since="8" />
-		<field name="LONG_PRESS" />
-		<field name="VIRTUAL_KEY" since="5" />
-	</class>
-	<class name="android/view/InflateException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="android/view/InputDevice" since="9">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getControllerNumber()I" since="19" />
-		<method name="getDescriptor()Ljava/lang/String;" since="16" />
-		<method name="getDevice(I)Landroid/view/InputDevice;" />
-		<method name="getDeviceIds()[I" />
-		<method name="getId()I" />
-		<method name="getKeyCharacterMap()Landroid/view/KeyCharacterMap;" />
-		<method name="getKeyboardType()I" />
-		<method name="getMotionRange(I)Landroid/view/InputDevice$MotionRange;" />
-		<method name="getMotionRange(II)Landroid/view/InputDevice$MotionRange;" since="12" />
-		<method name="getMotionRanges()Ljava/util/List;" since="12" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getProductId()I" since="19" />
-		<method name="getSources()I" />
-		<method name="getVendorId()I" since="19" />
-		<method name="getVibrator()Landroid/os/Vibrator;" since="16" />
-		<method name="hasKeys([I)[Z" since="19" />
-		<method name="isVirtual()Z" since="16" />
-		<method name="supportsSource(I)Z" since="21" />
-		<field name="CREATOR" />
-		<field name="KEYBOARD_TYPE_ALPHABETIC" />
-		<field name="KEYBOARD_TYPE_NONE" />
-		<field name="KEYBOARD_TYPE_NON_ALPHABETIC" />
-		<field name="MOTION_RANGE_ORIENTATION" />
-		<field name="MOTION_RANGE_PRESSURE" />
-		<field name="MOTION_RANGE_SIZE" />
-		<field name="MOTION_RANGE_TOOL_MAJOR" />
-		<field name="MOTION_RANGE_TOOL_MINOR" />
-		<field name="MOTION_RANGE_TOUCH_MAJOR" />
-		<field name="MOTION_RANGE_TOUCH_MINOR" />
-		<field name="MOTION_RANGE_X" />
-		<field name="MOTION_RANGE_Y" />
-		<field name="SOURCE_ANY" />
-		<field name="SOURCE_CLASS_BUTTON" />
-		<field name="SOURCE_CLASS_JOYSTICK" since="12" />
-		<field name="SOURCE_CLASS_MASK" />
-		<field name="SOURCE_CLASS_NONE" since="18" />
-		<field name="SOURCE_CLASS_POINTER" />
-		<field name="SOURCE_CLASS_POSITION" />
-		<field name="SOURCE_CLASS_TRACKBALL" />
-		<field name="SOURCE_DPAD" />
-		<field name="SOURCE_GAMEPAD" since="12" />
-		<field name="SOURCE_HDMI" since="21" />
-		<field name="SOURCE_JOYSTICK" since="12" />
-		<field name="SOURCE_KEYBOARD" />
-		<field name="SOURCE_MOUSE" />
-		<field name="SOURCE_STYLUS" since="14" />
-		<field name="SOURCE_TOUCHPAD" />
-		<field name="SOURCE_TOUCHSCREEN" />
-		<field name="SOURCE_TOUCH_NAVIGATION" since="18" />
-		<field name="SOURCE_TRACKBALL" />
-		<field name="SOURCE_UNKNOWN" />
-	</class>
-	<class name="android/view/InputDevice$MotionRange" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getAxis()I" since="12" />
-		<method name="getFlat()F" />
-		<method name="getFuzz()F" />
-		<method name="getMax()F" />
-		<method name="getMin()F" />
-		<method name="getRange()F" />
-		<method name="getResolution()F" since="18" />
-		<method name="getSource()I" since="12" />
-		<method name="isFromSource(I)Z" since="18" />
-	</class>
-	<class name="android/view/InputEvent" since="9">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getDevice()Landroid/view/InputDevice;" />
-		<method name="getDeviceId()I" />
-		<method name="getEventTime()J" since="16" />
-		<method name="getSource()I" />
-		<method name="isFromSource(I)Z" since="18" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/view/InputQueue" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/view/InputQueue$Callback" since="9">
-		<extends name="java/lang/Object" />
-		<method name="onInputQueueCreated(Landroid/view/InputQueue;)V" />
-		<method name="onInputQueueDestroyed(Landroid/view/InputQueue;)V" />
-	</class>
-	<class name="android/view/KeyCharacterMap" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" since="16" />
-		<method name="&lt;init>()V" />
-		<method name="deviceHasKey(I)Z" since="3" />
-		<method name="deviceHasKeys([I)[Z" since="3" />
-		<method name="get(II)I" />
-		<method name="getDeadChar(II)I" />
-		<method name="getDisplayLabel(I)C" />
-		<method name="getEvents([C)[Landroid/view/KeyEvent;" />
-		<method name="getKeyData(ILandroid/view/KeyCharacterMap$KeyData;)Z" />
-		<method name="getKeyboardType()I" />
-		<method name="getMatch(I[C)C" />
-		<method name="getMatch(I[CI)C" />
-		<method name="getModifierBehavior()I" since="11" />
-		<method name="getNumber(I)C" />
-		<method name="isPrintingKey(I)Z" />
-		<method name="load(I)Landroid/view/KeyCharacterMap;" />
-		<field name="ALPHA" />
-		<field name="BUILT_IN_KEYBOARD" />
-		<field name="COMBINING_ACCENT" />
-		<field name="COMBINING_ACCENT_MASK" />
-		<field name="CREATOR" since="16" />
-		<field name="FULL" since="11" />
-		<field name="HEX_INPUT" />
-		<field name="MODIFIER_BEHAVIOR_CHORDED" since="11" />
-		<field name="MODIFIER_BEHAVIOR_CHORDED_OR_TOGGLED" since="11" />
-		<field name="NUMERIC" />
-		<field name="PICKER_DIALOG_INPUT" />
-		<field name="PREDICTIVE" />
-		<field name="SPECIAL_FUNCTION" since="11" />
-		<field name="VIRTUAL_KEYBOARD" since="11" />
-	</class>
-	<class name="android/view/KeyCharacterMap$KeyData" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="META_LENGTH" />
-		<field name="displayLabel" />
-		<field name="meta" />
-		<field name="number" />
-	</class>
-	<class name="android/view/KeyCharacterMap$UnavailableException" since="11">
-		<extends name="android/util/AndroidRuntimeException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/view/KeyEvent" since="1">
-		<extends name="android/view/InputEvent" since="9" />
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(II)V" />
-		<method name="&lt;init>(JJIII)V" />
-		<method name="&lt;init>(JJIIII)V" />
-		<method name="&lt;init>(JJIIIIII)V" />
-		<method name="&lt;init>(JJIIIIIII)V" />
-		<method name="&lt;init>(JJIIIIIIII)V" since="9" />
-		<method name="&lt;init>(JLjava/lang/String;II)V" since="3" />
-		<method name="&lt;init>(Landroid/view/KeyEvent;)V" since="3" />
-		<method name="&lt;init>(Landroid/view/KeyEvent;JI)V" />
-		<method name="changeAction(Landroid/view/KeyEvent;I)Landroid/view/KeyEvent;" since="3" />
-		<method name="changeFlags(Landroid/view/KeyEvent;I)Landroid/view/KeyEvent;" since="3" />
-		<method name="changeTimeRepeat(Landroid/view/KeyEvent;JI)Landroid/view/KeyEvent;" since="3" />
-		<method name="changeTimeRepeat(Landroid/view/KeyEvent;JII)Landroid/view/KeyEvent;" since="5" />
-		<method name="dispatch(Landroid/view/KeyEvent$Callback;)Z" />
-		<method name="dispatch(Landroid/view/KeyEvent$Callback;Landroid/view/KeyEvent$DispatcherState;Ljava/lang/Object;)Z" since="5" />
-		<method name="getAction()I" />
-		<method name="getCharacters()Ljava/lang/String;" since="3" />
-		<method name="getDeadChar(II)I" />
-		<method name="getDeviceId()I" />
-		<method name="getDisplayLabel()C" />
-		<method name="getDownTime()J" />
-		<method name="getEventTime()J" />
-		<method name="getFlags()I" />
-		<method name="getKeyCharacterMap()Landroid/view/KeyCharacterMap;" since="11" />
-		<method name="getKeyCode()I" />
-		<method name="getKeyData(Landroid/view/KeyCharacterMap$KeyData;)Z" />
-		<method name="getMatch([C)C" />
-		<method name="getMatch([CI)C" />
-		<method name="getMaxKeyCode()I" since="3" />
-		<method name="getMetaState()I" />
-		<method name="getModifierMetaStateMask()I" since="11" />
-		<method name="getModifiers()I" since="13" />
-		<method name="getNumber()C" />
-		<method name="getRepeatCount()I" />
-		<method name="getScanCode()I" />
-		<method name="getUnicodeChar()I" />
-		<method name="getUnicodeChar(I)I" />
-		<method name="hasModifiers(I)Z" since="11" />
-		<method name="hasNoModifiers()Z" since="11" />
-		<method name="isAltPressed()Z" />
-		<method name="isCanceled()Z" since="5" />
-		<method name="isCapsLockOn()Z" since="11" />
-		<method name="isCtrlPressed()Z" since="11" />
-		<method name="isFunctionPressed()Z" since="11" />
-		<method name="isGamepadButton(I)Z" since="12" />
-		<method name="isLongPress()Z" since="5" />
-		<method name="isMetaPressed()Z" since="11" />
-		<method name="isModifierKey(I)Z" />
-		<method name="isNumLockOn()Z" since="11" />
-		<method name="isPrintingKey()Z" />
-		<method name="isScrollLockOn()Z" since="11" />
-		<method name="isShiftPressed()Z" />
-		<method name="isSymPressed()Z" />
-		<method name="isSystem()Z" />
-		<method name="isTracking()Z" since="5" />
-		<method name="keyCodeFromString(Ljava/lang/String;)I" since="12" />
-		<method name="keyCodeToString(I)Ljava/lang/String;" since="12" />
-		<method name="metaStateHasModifiers(II)Z" since="11" />
-		<method name="metaStateHasNoModifiers(I)Z" since="11" />
-		<method name="normalizeMetaState(I)I" since="11" />
-		<method name="setSource(I)V" since="12" />
-		<method name="startTracking()V" since="5" />
-		<field name="ACTION_DOWN" />
-		<field name="ACTION_MULTIPLE" />
-		<field name="ACTION_UP" />
-		<field name="CREATOR" />
-		<field name="FLAG_CANCELED" since="5" />
-		<field name="FLAG_CANCELED_LONG_PRESS" since="5" />
-		<field name="FLAG_EDITOR_ACTION" since="3" />
-		<field name="FLAG_FALLBACK" since="11" />
-		<field name="FLAG_FROM_SYSTEM" since="3" />
-		<field name="FLAG_KEEP_TOUCH_MODE" since="3" />
-		<field name="FLAG_LONG_PRESS" since="5" />
-		<field name="FLAG_SOFT_KEYBOARD" since="3" />
-		<field name="FLAG_TRACKING" since="5" />
-		<field name="FLAG_VIRTUAL_HARD_KEY" since="5" />
-		<field name="FLAG_WOKE_HERE" />
-		<field name="KEYCODE_0" />
-		<field name="KEYCODE_1" />
-		<field name="KEYCODE_11" since="21" />
-		<field name="KEYCODE_12" since="21" />
-		<field name="KEYCODE_2" />
-		<field name="KEYCODE_3" />
-		<field name="KEYCODE_3D_MODE" since="14" />
-		<field name="KEYCODE_4" />
-		<field name="KEYCODE_5" />
-		<field name="KEYCODE_6" />
-		<field name="KEYCODE_7" />
-		<field name="KEYCODE_8" />
-		<field name="KEYCODE_9" />
-		<field name="KEYCODE_A" />
-		<field name="KEYCODE_ALT_LEFT" />
-		<field name="KEYCODE_ALT_RIGHT" />
-		<field name="KEYCODE_APOSTROPHE" />
-		<field name="KEYCODE_APP_SWITCH" since="11" />
-		<field name="KEYCODE_ASSIST" since="16" />
-		<field name="KEYCODE_AT" />
-		<field name="KEYCODE_AVR_INPUT" since="11" />
-		<field name="KEYCODE_AVR_POWER" since="11" />
-		<field name="KEYCODE_B" />
-		<field name="KEYCODE_BACK" />
-		<field name="KEYCODE_BACKSLASH" />
-		<field name="KEYCODE_BOOKMARK" since="11" />
-		<field name="KEYCODE_BREAK" since="11" />
-		<field name="KEYCODE_BRIGHTNESS_DOWN" since="18" />
-		<field name="KEYCODE_BRIGHTNESS_UP" since="18" />
-		<field name="KEYCODE_BUTTON_1" since="12" />
-		<field name="KEYCODE_BUTTON_10" since="12" />
-		<field name="KEYCODE_BUTTON_11" since="12" />
-		<field name="KEYCODE_BUTTON_12" since="12" />
-		<field name="KEYCODE_BUTTON_13" since="12" />
-		<field name="KEYCODE_BUTTON_14" since="12" />
-		<field name="KEYCODE_BUTTON_15" since="12" />
-		<field name="KEYCODE_BUTTON_16" since="12" />
-		<field name="KEYCODE_BUTTON_2" since="12" />
-		<field name="KEYCODE_BUTTON_3" since="12" />
-		<field name="KEYCODE_BUTTON_4" since="12" />
-		<field name="KEYCODE_BUTTON_5" since="12" />
-		<field name="KEYCODE_BUTTON_6" since="12" />
-		<field name="KEYCODE_BUTTON_7" since="12" />
-		<field name="KEYCODE_BUTTON_8" since="12" />
-		<field name="KEYCODE_BUTTON_9" since="12" />
-		<field name="KEYCODE_BUTTON_A" since="9" />
-		<field name="KEYCODE_BUTTON_B" since="9" />
-		<field name="KEYCODE_BUTTON_C" since="9" />
-		<field name="KEYCODE_BUTTON_L1" since="9" />
-		<field name="KEYCODE_BUTTON_L2" since="9" />
-		<field name="KEYCODE_BUTTON_MODE" since="9" />
-		<field name="KEYCODE_BUTTON_R1" since="9" />
-		<field name="KEYCODE_BUTTON_R2" since="9" />
-		<field name="KEYCODE_BUTTON_SELECT" since="9" />
-		<field name="KEYCODE_BUTTON_START" since="9" />
-		<field name="KEYCODE_BUTTON_THUMBL" since="9" />
-		<field name="KEYCODE_BUTTON_THUMBR" since="9" />
-		<field name="KEYCODE_BUTTON_X" since="9" />
-		<field name="KEYCODE_BUTTON_Y" since="9" />
-		<field name="KEYCODE_BUTTON_Z" since="9" />
-		<field name="KEYCODE_C" />
-		<field name="KEYCODE_CALCULATOR" since="15" />
-		<field name="KEYCODE_CALENDAR" since="15" />
-		<field name="KEYCODE_CALL" />
-		<field name="KEYCODE_CAMERA" />
-		<field name="KEYCODE_CAPS_LOCK" since="11" />
-		<field name="KEYCODE_CAPTIONS" since="11" />
-		<field name="KEYCODE_CHANNEL_DOWN" since="11" />
-		<field name="KEYCODE_CHANNEL_UP" since="11" />
-		<field name="KEYCODE_CLEAR" />
-		<field name="KEYCODE_COMMA" />
-		<field name="KEYCODE_CONTACTS" since="15" />
-		<field name="KEYCODE_CTRL_LEFT" since="11" />
-		<field name="KEYCODE_CTRL_RIGHT" since="11" />
-		<field name="KEYCODE_D" />
-		<field name="KEYCODE_DEL" />
-		<field name="KEYCODE_DPAD_CENTER" />
-		<field name="KEYCODE_DPAD_DOWN" />
-		<field name="KEYCODE_DPAD_LEFT" />
-		<field name="KEYCODE_DPAD_RIGHT" />
-		<field name="KEYCODE_DPAD_UP" />
-		<field name="KEYCODE_DVR" since="11" />
-		<field name="KEYCODE_E" />
-		<field name="KEYCODE_EISU" since="16" />
-		<field name="KEYCODE_ENDCALL" />
-		<field name="KEYCODE_ENTER" />
-		<field name="KEYCODE_ENVELOPE" />
-		<field name="KEYCODE_EQUALS" />
-		<field name="KEYCODE_ESCAPE" since="11" />
-		<field name="KEYCODE_EXPLORER" />
-		<field name="KEYCODE_F" />
-		<field name="KEYCODE_F1" since="11" />
-		<field name="KEYCODE_F10" since="11" />
-		<field name="KEYCODE_F11" since="11" />
-		<field name="KEYCODE_F12" since="11" />
-		<field name="KEYCODE_F2" since="11" />
-		<field name="KEYCODE_F3" since="11" />
-		<field name="KEYCODE_F4" since="11" />
-		<field name="KEYCODE_F5" since="11" />
-		<field name="KEYCODE_F6" since="11" />
-		<field name="KEYCODE_F7" since="11" />
-		<field name="KEYCODE_F8" since="11" />
-		<field name="KEYCODE_F9" since="11" />
-		<field name="KEYCODE_FOCUS" />
-		<field name="KEYCODE_FORWARD" since="11" />
-		<field name="KEYCODE_FORWARD_DEL" since="11" />
-		<field name="KEYCODE_FUNCTION" since="11" />
-		<field name="KEYCODE_G" />
-		<field name="KEYCODE_GRAVE" />
-		<field name="KEYCODE_GUIDE" since="11" />
-		<field name="KEYCODE_H" />
-		<field name="KEYCODE_HEADSETHOOK" />
-		<field name="KEYCODE_HENKAN" since="16" />
-		<field name="KEYCODE_HOME" />
-		<field name="KEYCODE_I" />
-		<field name="KEYCODE_INFO" since="11" />
-		<field name="KEYCODE_INSERT" since="11" />
-		<field name="KEYCODE_J" />
-		<field name="KEYCODE_K" />
-		<field name="KEYCODE_KANA" since="16" />
-		<field name="KEYCODE_KATAKANA_HIRAGANA" since="16" />
-		<field name="KEYCODE_L" />
-		<field name="KEYCODE_LANGUAGE_SWITCH" since="14" />
-		<field name="KEYCODE_LAST_CHANNEL" since="21" />
-		<field name="KEYCODE_LEFT_BRACKET" />
-		<field name="KEYCODE_M" />
-		<field name="KEYCODE_MANNER_MODE" since="14" />
-		<field name="KEYCODE_MEDIA_AUDIO_TRACK" since="19" />
-		<field name="KEYCODE_MEDIA_CLOSE" since="11" />
-		<field name="KEYCODE_MEDIA_EJECT" since="11" />
-		<field name="KEYCODE_MEDIA_FAST_FORWARD" since="3" />
-		<field name="KEYCODE_MEDIA_NEXT" since="3" />
-		<field name="KEYCODE_MEDIA_PAUSE" since="11" />
-		<field name="KEYCODE_MEDIA_PLAY" since="11" />
-		<field name="KEYCODE_MEDIA_PLAY_PAUSE" since="3" />
-		<field name="KEYCODE_MEDIA_PREVIOUS" since="3" />
-		<field name="KEYCODE_MEDIA_RECORD" since="11" />
-		<field name="KEYCODE_MEDIA_REWIND" since="3" />
-		<field name="KEYCODE_MEDIA_STOP" since="3" />
-		<field name="KEYCODE_MEDIA_TOP_MENU" since="21" />
-		<field name="KEYCODE_MENU" />
-		<field name="KEYCODE_META_LEFT" since="11" />
-		<field name="KEYCODE_META_RIGHT" since="11" />
-		<field name="KEYCODE_MINUS" />
-		<field name="KEYCODE_MOVE_END" since="11" />
-		<field name="KEYCODE_MOVE_HOME" since="11" />
-		<field name="KEYCODE_MUHENKAN" since="16" />
-		<field name="KEYCODE_MUSIC" since="15" />
-		<field name="KEYCODE_MUTE" since="3" />
-		<field name="KEYCODE_N" />
-		<field name="KEYCODE_NOTIFICATION" />
-		<field name="KEYCODE_NUM" />
-		<field name="KEYCODE_NUMPAD_0" since="11" />
-		<field name="KEYCODE_NUMPAD_1" since="11" />
-		<field name="KEYCODE_NUMPAD_2" since="11" />
-		<field name="KEYCODE_NUMPAD_3" since="11" />
-		<field name="KEYCODE_NUMPAD_4" since="11" />
-		<field name="KEYCODE_NUMPAD_5" since="11" />
-		<field name="KEYCODE_NUMPAD_6" since="11" />
-		<field name="KEYCODE_NUMPAD_7" since="11" />
-		<field name="KEYCODE_NUMPAD_8" since="11" />
-		<field name="KEYCODE_NUMPAD_9" since="11" />
-		<field name="KEYCODE_NUMPAD_ADD" since="11" />
-		<field name="KEYCODE_NUMPAD_COMMA" since="11" />
-		<field name="KEYCODE_NUMPAD_DIVIDE" since="11" />
-		<field name="KEYCODE_NUMPAD_DOT" since="11" />
-		<field name="KEYCODE_NUMPAD_ENTER" since="11" />
-		<field name="KEYCODE_NUMPAD_EQUALS" since="11" />
-		<field name="KEYCODE_NUMPAD_LEFT_PAREN" since="11" />
-		<field name="KEYCODE_NUMPAD_MULTIPLY" since="11" />
-		<field name="KEYCODE_NUMPAD_RIGHT_PAREN" since="11" />
-		<field name="KEYCODE_NUMPAD_SUBTRACT" since="11" />
-		<field name="KEYCODE_NUM_LOCK" since="11" />
-		<field name="KEYCODE_O" />
-		<field name="KEYCODE_P" />
-		<field name="KEYCODE_PAGE_DOWN" since="9" />
-		<field name="KEYCODE_PAGE_UP" since="9" />
-		<field name="KEYCODE_PAIRING" since="21" />
-		<field name="KEYCODE_PERIOD" />
-		<field name="KEYCODE_PICTSYMBOLS" since="9" />
-		<field name="KEYCODE_PLUS" />
-		<field name="KEYCODE_POUND" />
-		<field name="KEYCODE_POWER" />
-		<field name="KEYCODE_PROG_BLUE" since="11" />
-		<field name="KEYCODE_PROG_GREEN" since="11" />
-		<field name="KEYCODE_PROG_RED" since="11" />
-		<field name="KEYCODE_PROG_YELLOW" since="11" />
-		<field name="KEYCODE_Q" />
-		<field name="KEYCODE_R" />
-		<field name="KEYCODE_RIGHT_BRACKET" />
-		<field name="KEYCODE_RO" since="16" />
-		<field name="KEYCODE_S" />
-		<field name="KEYCODE_SCROLL_LOCK" since="11" />
-		<field name="KEYCODE_SEARCH" />
-		<field name="KEYCODE_SEMICOLON" />
-		<field name="KEYCODE_SETTINGS" since="11" />
-		<field name="KEYCODE_SHIFT_LEFT" />
-		<field name="KEYCODE_SHIFT_RIGHT" />
-		<field name="KEYCODE_SLASH" />
-		<field name="KEYCODE_SLEEP" since="20" />
-		<field name="KEYCODE_SOFT_LEFT" />
-		<field name="KEYCODE_SOFT_RIGHT" />
-		<field name="KEYCODE_SPACE" />
-		<field name="KEYCODE_STAR" />
-		<field name="KEYCODE_STB_INPUT" since="11" />
-		<field name="KEYCODE_STB_POWER" since="11" />
-		<field name="KEYCODE_SWITCH_CHARSET" since="9" />
-		<field name="KEYCODE_SYM" />
-		<field name="KEYCODE_SYSRQ" since="11" />
-		<field name="KEYCODE_T" />
-		<field name="KEYCODE_TAB" />
-		<field name="KEYCODE_TV" since="11" />
-		<field name="KEYCODE_TV_DATA_SERVICE" since="21" />
-		<field name="KEYCODE_TV_INPUT" since="11" />
-		<field name="KEYCODE_TV_POWER" since="11" />
-		<field name="KEYCODE_U" />
-		<field name="KEYCODE_UNKNOWN" />
-		<field name="KEYCODE_V" />
-		<field name="KEYCODE_VOLUME_DOWN" />
-		<field name="KEYCODE_VOLUME_MUTE" since="11" />
-		<field name="KEYCODE_VOLUME_UP" />
-		<field name="KEYCODE_W" />
-		<field name="KEYCODE_WAKEUP" since="20" />
-		<field name="KEYCODE_WINDOW" since="11" />
-		<field name="KEYCODE_X" />
-		<field name="KEYCODE_Y" />
-		<field name="KEYCODE_YEN" since="16" />
-		<field name="KEYCODE_Z" />
-		<field name="KEYCODE_ZENKAKU_HANKAKU" since="16" />
-		<field name="KEYCODE_ZOOM_IN" since="11" />
-		<field name="KEYCODE_ZOOM_OUT" since="11" />
-		<field name="MAX_KEYCODE" />
-		<field name="META_ALT_LEFT_ON" />
-		<field name="META_ALT_MASK" since="11" />
-		<field name="META_ALT_ON" />
-		<field name="META_ALT_RIGHT_ON" />
-		<field name="META_CAPS_LOCK_ON" since="11" />
-		<field name="META_CTRL_LEFT_ON" since="11" />
-		<field name="META_CTRL_MASK" since="11" />
-		<field name="META_CTRL_ON" since="11" />
-		<field name="META_CTRL_RIGHT_ON" since="11" />
-		<field name="META_FUNCTION_ON" since="11" />
-		<field name="META_META_LEFT_ON" since="11" />
-		<field name="META_META_MASK" since="11" />
-		<field name="META_META_ON" since="11" />
-		<field name="META_META_RIGHT_ON" since="11" />
-		<field name="META_NUM_LOCK_ON" since="11" />
-		<field name="META_SCROLL_LOCK_ON" since="11" />
-		<field name="META_SHIFT_LEFT_ON" />
-		<field name="META_SHIFT_MASK" since="11" />
-		<field name="META_SHIFT_ON" />
-		<field name="META_SHIFT_RIGHT_ON" />
-		<field name="META_SYM_ON" />
-	</class>
-	<class name="android/view/KeyEvent$Callback" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onKeyDown(ILandroid/view/KeyEvent;)Z" />
-		<method name="onKeyLongPress(ILandroid/view/KeyEvent;)Z" since="5" />
-		<method name="onKeyMultiple(IILandroid/view/KeyEvent;)Z" />
-		<method name="onKeyUp(ILandroid/view/KeyEvent;)Z" />
-	</class>
-	<class name="android/view/KeyEvent$DispatcherState" since="5">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="handleUpEvent(Landroid/view/KeyEvent;)V" />
-		<method name="isTracking(Landroid/view/KeyEvent;)Z" />
-		<method name="performedLongPress(Landroid/view/KeyEvent;)V" />
-		<method name="reset()V" />
-		<method name="reset(Ljava/lang/Object;)V" />
-		<method name="startTracking(Landroid/view/KeyEvent;Ljava/lang/Object;)V" />
-	</class>
-	<class name="android/view/LayoutInflater" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/view/LayoutInflater;Landroid/content/Context;)V" />
-		<method name="cloneInContext(Landroid/content/Context;)Landroid/view/LayoutInflater;" />
-		<method name="createView(Ljava/lang/String;Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View;" />
-		<method name="from(Landroid/content/Context;)Landroid/view/LayoutInflater;" />
-		<method name="getContext()Landroid/content/Context;" />
-		<method name="getFactory()Landroid/view/LayoutInflater$Factory;" />
-		<method name="getFactory2()Landroid/view/LayoutInflater$Factory2;" since="11" />
-		<method name="getFilter()Landroid/view/LayoutInflater$Filter;" />
-		<method name="inflate(ILandroid/view/ViewGroup;)Landroid/view/View;" />
-		<method name="inflate(ILandroid/view/ViewGroup;Z)Landroid/view/View;" />
-		<method name="inflate(Lorg/xmlpull/v1/XmlPullParser;Landroid/view/ViewGroup;)Landroid/view/View;" />
-		<method name="inflate(Lorg/xmlpull/v1/XmlPullParser;Landroid/view/ViewGroup;Z)Landroid/view/View;" />
-		<method name="onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View;" since="11" />
-		<method name="onCreateView(Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View;" />
-		<method name="setFactory(Landroid/view/LayoutInflater$Factory;)V" />
-		<method name="setFactory2(Landroid/view/LayoutInflater$Factory2;)V" since="11" />
-		<method name="setFilter(Landroid/view/LayoutInflater$Filter;)V" />
-	</class>
-	<class name="android/view/LayoutInflater$Factory" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onCreateView(Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;" />
-	</class>
-	<class name="android/view/LayoutInflater$Factory2" since="11">
-		<extends name="java/lang/Object" />
-		<implements name="android/view/LayoutInflater$Factory" />
-		<method name="onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;" />
-	</class>
-	<class name="android/view/LayoutInflater$Filter" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onLoadClass(Ljava/lang/Class;)Z" />
-	</class>
-	<class name="android/view/Menu" since="1">
-		<extends name="java/lang/Object" />
-		<method name="add(I)Landroid/view/MenuItem;" />
-		<method name="add(IIII)Landroid/view/MenuItem;" />
-		<method name="add(IIILjava/lang/CharSequence;)Landroid/view/MenuItem;" />
-		<method name="add(Ljava/lang/CharSequence;)Landroid/view/MenuItem;" />
-		<method name="addIntentOptions(IIILandroid/content/ComponentName;[Landroid/content/Intent;Landroid/content/Intent;I[Landroid/view/MenuItem;)I" />
-		<method name="addSubMenu(I)Landroid/view/SubMenu;" />
-		<method name="addSubMenu(IIII)Landroid/view/SubMenu;" />
-		<method name="addSubMenu(IIILjava/lang/CharSequence;)Landroid/view/SubMenu;" />
-		<method name="addSubMenu(Ljava/lang/CharSequence;)Landroid/view/SubMenu;" />
-		<method name="clear()V" />
-		<method name="close()V" since="3" />
-		<method name="findItem(I)Landroid/view/MenuItem;" />
-		<method name="getItem(I)Landroid/view/MenuItem;" since="3" />
-		<method name="hasVisibleItems()Z" />
-		<method name="isShortcutKey(ILandroid/view/KeyEvent;)Z" />
-		<method name="performIdentifierAction(II)Z" />
-		<method name="performShortcut(ILandroid/view/KeyEvent;I)Z" />
-		<method name="removeGroup(I)V" />
-		<method name="removeItem(I)V" />
-		<method name="setGroupCheckable(IZZ)V" />
-		<method name="setGroupEnabled(IZ)V" />
-		<method name="setGroupVisible(IZ)V" />
-		<method name="setQwertyMode(Z)V" />
-		<method name="size()I" />
-		<field name="CATEGORY_ALTERNATIVE" />
-		<field name="CATEGORY_CONTAINER" />
-		<field name="CATEGORY_SECONDARY" />
-		<field name="CATEGORY_SYSTEM" />
-		<field name="FIRST" />
-		<field name="FLAG_ALWAYS_PERFORM_CLOSE" />
-		<field name="FLAG_APPEND_TO_GROUP" />
-		<field name="FLAG_PERFORM_NO_CLOSE" />
-		<field name="NONE" />
-	</class>
-	<class name="android/view/MenuInflater" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="inflate(ILandroid/view/Menu;)V" />
-	</class>
-	<class name="android/view/MenuItem" since="1">
-		<extends name="java/lang/Object" />
-		<method name="collapseActionView()Z" since="14" />
-		<method name="expandActionView()Z" since="14" />
-		<method name="getActionProvider()Landroid/view/ActionProvider;" since="14" />
-		<method name="getActionView()Landroid/view/View;" since="11" />
-		<method name="getAlphabeticShortcut()C" />
-		<method name="getGroupId()I" />
-		<method name="getIcon()Landroid/graphics/drawable/Drawable;" />
-		<method name="getIntent()Landroid/content/Intent;" />
-		<method name="getItemId()I" />
-		<method name="getMenuInfo()Landroid/view/ContextMenu$ContextMenuInfo;" />
-		<method name="getNumericShortcut()C" />
-		<method name="getOrder()I" />
-		<method name="getSubMenu()Landroid/view/SubMenu;" />
-		<method name="getTitle()Ljava/lang/CharSequence;" />
-		<method name="getTitleCondensed()Ljava/lang/CharSequence;" />
-		<method name="hasSubMenu()Z" />
-		<method name="isActionViewExpanded()Z" since="14" />
-		<method name="isCheckable()Z" />
-		<method name="isChecked()Z" />
-		<method name="isEnabled()Z" />
-		<method name="isVisible()Z" />
-		<method name="setActionProvider(Landroid/view/ActionProvider;)Landroid/view/MenuItem;" since="14" />
-		<method name="setActionView(I)Landroid/view/MenuItem;" since="11" />
-		<method name="setActionView(Landroid/view/View;)Landroid/view/MenuItem;" since="11" />
-		<method name="setAlphabeticShortcut(C)Landroid/view/MenuItem;" />
-		<method name="setCheckable(Z)Landroid/view/MenuItem;" />
-		<method name="setChecked(Z)Landroid/view/MenuItem;" />
-		<method name="setEnabled(Z)Landroid/view/MenuItem;" />
-		<method name="setIcon(I)Landroid/view/MenuItem;" />
-		<method name="setIcon(Landroid/graphics/drawable/Drawable;)Landroid/view/MenuItem;" />
-		<method name="setIntent(Landroid/content/Intent;)Landroid/view/MenuItem;" />
-		<method name="setNumericShortcut(C)Landroid/view/MenuItem;" />
-		<method name="setOnActionExpandListener(Landroid/view/MenuItem$OnActionExpandListener;)Landroid/view/MenuItem;" since="14" />
-		<method name="setOnMenuItemClickListener(Landroid/view/MenuItem$OnMenuItemClickListener;)Landroid/view/MenuItem;" />
-		<method name="setShortcut(CC)Landroid/view/MenuItem;" />
-		<method name="setShowAsAction(I)V" since="11" />
-		<method name="setShowAsActionFlags(I)Landroid/view/MenuItem;" since="14" />
-		<method name="setTitle(I)Landroid/view/MenuItem;" />
-		<method name="setTitle(Ljava/lang/CharSequence;)Landroid/view/MenuItem;" />
-		<method name="setTitleCondensed(Ljava/lang/CharSequence;)Landroid/view/MenuItem;" />
-		<method name="setVisible(Z)Landroid/view/MenuItem;" />
-		<field name="SHOW_AS_ACTION_ALWAYS" since="11" />
-		<field name="SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW" since="14" />
-		<field name="SHOW_AS_ACTION_IF_ROOM" since="11" />
-		<field name="SHOW_AS_ACTION_NEVER" since="11" />
-		<field name="SHOW_AS_ACTION_WITH_TEXT" since="11" />
-	</class>
-	<class name="android/view/MenuItem$OnActionExpandListener" since="14">
-		<extends name="java/lang/Object" />
-		<method name="onMenuItemActionCollapse(Landroid/view/MenuItem;)Z" />
-		<method name="onMenuItemActionExpand(Landroid/view/MenuItem;)Z" />
-	</class>
-	<class name="android/view/MenuItem$OnMenuItemClickListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onMenuItemClick(Landroid/view/MenuItem;)Z" />
-	</class>
-	<class name="android/view/MotionEvent" since="1">
-		<extends name="android/view/InputEvent" since="9" />
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="actionToString(I)Ljava/lang/String;" since="19" />
-		<method name="addBatch(JFFFFI)V" />
-		<method name="addBatch(J[Landroid/view/MotionEvent$PointerCoords;I)V" since="9" />
-		<method name="axisFromString(Ljava/lang/String;)I" since="12" />
-		<method name="axisToString(I)Ljava/lang/String;" since="12" />
-		<method name="findPointerIndex(I)I" since="5" />
-		<method name="getAction()I" />
-		<method name="getActionIndex()I" since="8" />
-		<method name="getActionMasked()I" since="8" />
-		<method name="getAxisValue(I)F" since="12" />
-		<method name="getAxisValue(II)F" since="12" />
-		<method name="getButtonState()I" since="14" />
-		<method name="getDeviceId()I" />
-		<method name="getDownTime()J" />
-		<method name="getEdgeFlags()I" />
-		<method name="getEventTime()J" />
-		<method name="getFlags()I" since="9" />
-		<method name="getHistoricalAxisValue(II)F" since="12" />
-		<method name="getHistoricalAxisValue(III)F" since="12" />
-		<method name="getHistoricalEventTime(I)J" />
-		<method name="getHistoricalOrientation(I)F" since="9" />
-		<method name="getHistoricalOrientation(II)F" since="9" />
-		<method name="getHistoricalPointerCoords(IILandroid/view/MotionEvent$PointerCoords;)V" since="9" />
-		<method name="getHistoricalPressure(I)F" />
-		<method name="getHistoricalPressure(II)F" since="5" />
-		<method name="getHistoricalSize(I)F" />
-		<method name="getHistoricalSize(II)F" since="5" />
-		<method name="getHistoricalToolMajor(I)F" since="9" />
-		<method name="getHistoricalToolMajor(II)F" since="9" />
-		<method name="getHistoricalToolMinor(I)F" since="9" />
-		<method name="getHistoricalToolMinor(II)F" since="9" />
-		<method name="getHistoricalTouchMajor(I)F" since="9" />
-		<method name="getHistoricalTouchMajor(II)F" since="9" />
-		<method name="getHistoricalTouchMinor(I)F" since="9" />
-		<method name="getHistoricalTouchMinor(II)F" since="9" />
-		<method name="getHistoricalX(I)F" />
-		<method name="getHistoricalX(II)F" since="5" />
-		<method name="getHistoricalY(I)F" />
-		<method name="getHistoricalY(II)F" since="5" />
-		<method name="getHistorySize()I" />
-		<method name="getMetaState()I" />
-		<method name="getOrientation()F" since="9" />
-		<method name="getOrientation(I)F" since="9" />
-		<method name="getPointerCoords(ILandroid/view/MotionEvent$PointerCoords;)V" since="9" />
-		<method name="getPointerCount()I" since="5" />
-		<method name="getPointerId(I)I" since="5" />
-		<method name="getPointerProperties(ILandroid/view/MotionEvent$PointerProperties;)V" since="14" />
-		<method name="getPressure()F" />
-		<method name="getPressure(I)F" since="5" />
-		<method name="getRawX()F" />
-		<method name="getRawY()F" />
-		<method name="getSize()F" />
-		<method name="getSize(I)F" since="5" />
-		<method name="getToolMajor()F" since="9" />
-		<method name="getToolMajor(I)F" since="9" />
-		<method name="getToolMinor()F" since="9" />
-		<method name="getToolMinor(I)F" since="9" />
-		<method name="getToolType(I)I" since="14" />
-		<method name="getTouchMajor()F" since="9" />
-		<method name="getTouchMajor(I)F" since="9" />
-		<method name="getTouchMinor()F" since="9" />
-		<method name="getTouchMinor(I)F" since="9" />
-		<method name="getX()F" />
-		<method name="getX(I)F" since="5" />
-		<method name="getXPrecision()F" />
-		<method name="getY()F" />
-		<method name="getY(I)F" since="5" />
-		<method name="getYPrecision()F" />
-		<method name="obtain(JJIFFFFIFFII)Landroid/view/MotionEvent;" />
-		<method name="obtain(JJIFFI)Landroid/view/MotionEvent;" />
-		<method name="obtain(JJIIFFFFIFFII)Landroid/view/MotionEvent;" since="5" />
-		<method name="obtain(JJII[I[Landroid/view/MotionEvent$PointerCoords;IFFIIII)Landroid/view/MotionEvent;" since="9" />
-		<method name="obtain(JJII[Landroid/view/MotionEvent$PointerProperties;[Landroid/view/MotionEvent$PointerCoords;IIFFIIII)Landroid/view/MotionEvent;" since="14" />
-		<method name="obtain(Landroid/view/MotionEvent;)Landroid/view/MotionEvent;" />
-		<method name="obtainNoHistory(Landroid/view/MotionEvent;)Landroid/view/MotionEvent;" since="5" />
-		<method name="offsetLocation(FF)V" />
-		<method name="recycle()V" />
-		<method name="setAction(I)V" />
-		<method name="setEdgeFlags(I)V" />
-		<method name="setLocation(FF)V" />
-		<method name="setSource(I)V" since="12" />
-		<method name="transform(Landroid/graphics/Matrix;)V" since="11" />
-		<field name="ACTION_CANCEL" />
-		<field name="ACTION_DOWN" />
-		<field name="ACTION_HOVER_ENTER" since="14" />
-		<field name="ACTION_HOVER_EXIT" since="14" />
-		<field name="ACTION_HOVER_MOVE" since="12" />
-		<field name="ACTION_MASK" since="5" />
-		<field name="ACTION_MOVE" />
-		<field name="ACTION_OUTSIDE" since="3" />
-		<field name="ACTION_POINTER_1_DOWN" since="5" />
-		<field name="ACTION_POINTER_1_UP" since="5" />
-		<field name="ACTION_POINTER_2_DOWN" since="5" />
-		<field name="ACTION_POINTER_2_UP" since="5" />
-		<field name="ACTION_POINTER_3_DOWN" since="5" />
-		<field name="ACTION_POINTER_3_UP" since="5" />
-		<field name="ACTION_POINTER_DOWN" since="5" />
-		<field name="ACTION_POINTER_ID_MASK" since="5" />
-		<field name="ACTION_POINTER_ID_SHIFT" since="5" />
-		<field name="ACTION_POINTER_INDEX_MASK" since="8" />
-		<field name="ACTION_POINTER_INDEX_SHIFT" since="8" />
-		<field name="ACTION_POINTER_UP" since="5" />
-		<field name="ACTION_SCROLL" since="12" />
-		<field name="ACTION_UP" />
-		<field name="AXIS_BRAKE" since="12" />
-		<field name="AXIS_DISTANCE" since="14" />
-		<field name="AXIS_GAS" since="12" />
-		<field name="AXIS_GENERIC_1" since="12" />
-		<field name="AXIS_GENERIC_10" since="12" />
-		<field name="AXIS_GENERIC_11" since="12" />
-		<field name="AXIS_GENERIC_12" since="12" />
-		<field name="AXIS_GENERIC_13" since="12" />
-		<field name="AXIS_GENERIC_14" since="12" />
-		<field name="AXIS_GENERIC_15" since="12" />
-		<field name="AXIS_GENERIC_16" since="12" />
-		<field name="AXIS_GENERIC_2" since="12" />
-		<field name="AXIS_GENERIC_3" since="12" />
-		<field name="AXIS_GENERIC_4" since="12" />
-		<field name="AXIS_GENERIC_5" since="12" />
-		<field name="AXIS_GENERIC_6" since="12" />
-		<field name="AXIS_GENERIC_7" since="12" />
-		<field name="AXIS_GENERIC_8" since="12" />
-		<field name="AXIS_GENERIC_9" since="12" />
-		<field name="AXIS_HAT_X" since="12" />
-		<field name="AXIS_HAT_Y" since="12" />
-		<field name="AXIS_HSCROLL" since="12" />
-		<field name="AXIS_LTRIGGER" since="12" />
-		<field name="AXIS_ORIENTATION" since="12" />
-		<field name="AXIS_PRESSURE" since="12" />
-		<field name="AXIS_RTRIGGER" since="12" />
-		<field name="AXIS_RUDDER" since="12" />
-		<field name="AXIS_RX" since="12" />
-		<field name="AXIS_RY" since="12" />
-		<field name="AXIS_RZ" since="12" />
-		<field name="AXIS_SIZE" since="12" />
-		<field name="AXIS_THROTTLE" since="12" />
-		<field name="AXIS_TILT" since="14" />
-		<field name="AXIS_TOOL_MAJOR" since="12" />
-		<field name="AXIS_TOOL_MINOR" since="12" />
-		<field name="AXIS_TOUCH_MAJOR" since="12" />
-		<field name="AXIS_TOUCH_MINOR" since="12" />
-		<field name="AXIS_VSCROLL" since="12" />
-		<field name="AXIS_WHEEL" since="12" />
-		<field name="AXIS_X" since="12" />
-		<field name="AXIS_Y" since="12" />
-		<field name="AXIS_Z" since="12" />
-		<field name="BUTTON_BACK" since="14" />
-		<field name="BUTTON_FORWARD" since="14" />
-		<field name="BUTTON_PRIMARY" since="14" />
-		<field name="BUTTON_SECONDARY" since="14" />
-		<field name="BUTTON_TERTIARY" since="14" />
-		<field name="CREATOR" />
-		<field name="EDGE_BOTTOM" />
-		<field name="EDGE_LEFT" />
-		<field name="EDGE_RIGHT" />
-		<field name="EDGE_TOP" />
-		<field name="FLAG_WINDOW_IS_OBSCURED" since="9" />
-		<field name="INVALID_POINTER_ID" since="14" />
-		<field name="TOOL_TYPE_ERASER" since="14" />
-		<field name="TOOL_TYPE_FINGER" since="14" />
-		<field name="TOOL_TYPE_MOUSE" since="14" />
-		<field name="TOOL_TYPE_STYLUS" since="14" />
-		<field name="TOOL_TYPE_UNKNOWN" since="14" />
-	</class>
-	<class name="android/view/MotionEvent$PointerCoords" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/view/MotionEvent$PointerCoords;)V" since="12" />
-		<method name="clear()V" since="12" />
-		<method name="copyFrom(Landroid/view/MotionEvent$PointerCoords;)V" since="12" />
-		<method name="getAxisValue(I)F" since="12" />
-		<method name="setAxisValue(IF)V" since="12" />
-		<field name="orientation" />
-		<field name="pressure" />
-		<field name="size" />
-		<field name="toolMajor" />
-		<field name="toolMinor" />
-		<field name="touchMajor" />
-		<field name="touchMinor" />
-		<field name="x" />
-		<field name="y" />
-	</class>
-	<class name="android/view/MotionEvent$PointerProperties" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/view/MotionEvent$PointerProperties;)V" />
-		<method name="clear()V" />
-		<method name="copyFrom(Landroid/view/MotionEvent$PointerProperties;)V" />
-		<field name="id" />
-		<field name="toolType" />
-	</class>
-	<class name="android/view/OrientationEventListener" since="3">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;I)V" />
-		<method name="canDetectOrientation()Z" />
-		<method name="disable()V" />
-		<method name="enable()V" />
-		<method name="onOrientationChanged(I)V" />
-		<field name="ORIENTATION_UNKNOWN" />
-	</class>
-	<class name="android/view/OrientationListener" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/hardware/SensorListener" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;I)V" since="3" />
-		<method name="disable()V" />
-		<method name="enable()V" />
-		<method name="onOrientationChanged(I)V" />
-		<field name="ORIENTATION_UNKNOWN" />
-	</class>
-	<class name="android/view/ScaleGestureDetector" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/view/ScaleGestureDetector$OnScaleGestureListener;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/view/ScaleGestureDetector$OnScaleGestureListener;Landroid/os/Handler;)V" since="19" />
-		<method name="getCurrentSpan()F" />
-		<method name="getCurrentSpanX()F" since="11" />
-		<method name="getCurrentSpanY()F" since="11" />
-		<method name="getEventTime()J" />
-		<method name="getFocusX()F" />
-		<method name="getFocusY()F" />
-		<method name="getPreviousSpan()F" />
-		<method name="getPreviousSpanX()F" since="11" />
-		<method name="getPreviousSpanY()F" since="11" />
-		<method name="getScaleFactor()F" />
-		<method name="getTimeDelta()J" />
-		<method name="isInProgress()Z" />
-		<method name="isQuickScaleEnabled()Z" since="19" />
-		<method name="onTouchEvent(Landroid/view/MotionEvent;)Z" />
-		<method name="setQuickScaleEnabled(Z)V" since="19" />
-	</class>
-	<class name="android/view/ScaleGestureDetector$OnScaleGestureListener" since="8">
-		<extends name="java/lang/Object" />
-		<method name="onScale(Landroid/view/ScaleGestureDetector;)Z" />
-		<method name="onScaleBegin(Landroid/view/ScaleGestureDetector;)Z" />
-		<method name="onScaleEnd(Landroid/view/ScaleGestureDetector;)V" />
-	</class>
-	<class name="android/view/ScaleGestureDetector$SimpleOnScaleGestureListener" since="8">
-		<extends name="java/lang/Object" />
-		<implements name="android/view/ScaleGestureDetector$OnScaleGestureListener" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/view/SoundEffectConstants" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getContantForFocusDirection(I)I" />
-		<field name="CLICK" />
-		<field name="NAVIGATION_DOWN" />
-		<field name="NAVIGATION_LEFT" />
-		<field name="NAVIGATION_RIGHT" />
-		<field name="NAVIGATION_UP" />
-	</class>
-	<class name="android/view/SubMenu" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/view/Menu" />
-		<method name="clearHeader()V" />
-		<method name="getItem()Landroid/view/MenuItem;" />
-		<method name="setHeaderIcon(I)Landroid/view/SubMenu;" />
-		<method name="setHeaderIcon(Landroid/graphics/drawable/Drawable;)Landroid/view/SubMenu;" />
-		<method name="setHeaderTitle(I)Landroid/view/SubMenu;" />
-		<method name="setHeaderTitle(Ljava/lang/CharSequence;)Landroid/view/SubMenu;" />
-		<method name="setHeaderView(Landroid/view/View;)Landroid/view/SubMenu;" />
-		<method name="setIcon(I)Landroid/view/SubMenu;" />
-		<method name="setIcon(Landroid/graphics/drawable/Drawable;)Landroid/view/SubMenu;" />
-	</class>
-	<class name="android/view/Surface" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/graphics/SurfaceTexture;)V" since="14" />
-		<method name="freeze()V" />
-		<method name="hide()V" />
-		<method name="isValid()Z" />
-		<method name="lockCanvas(Landroid/graphics/Rect;)Landroid/graphics/Canvas;" />
-		<method name="readFromParcel(Landroid/os/Parcel;)V" />
-		<method name="release()V" since="14" />
-		<method name="setAlpha(F)V" />
-		<method name="setFlags(II)V" />
-		<method name="setFreezeTint(I)V" />
-		<method name="setLayer(I)V" />
-		<method name="setMatrix(FFFF)V" />
-		<method name="setOrientation(II)V" />
-		<method name="setPosition(II)V" />
-		<method name="setSize(II)V" />
-		<method name="setTransparentRegionHint(Landroid/graphics/Region;)V" />
-		<method name="show()V" />
-		<method name="unfreeze()V" />
-		<method name="unlockCanvas(Landroid/graphics/Canvas;)V" />
-		<method name="unlockCanvasAndPost(Landroid/graphics/Canvas;)V" />
-		<field name="CREATOR" />
-		<field name="FX_SURFACE_BLUR" />
-		<field name="FX_SURFACE_DIM" />
-		<field name="FX_SURFACE_MASK" />
-		<field name="FX_SURFACE_NORMAL" />
-		<field name="GPU" />
-		<field name="HARDWARE" />
-		<field name="HIDDEN" />
-		<field name="NON_PREMULTIPLIED" />
-		<field name="PUSH_BUFFERS" />
-		<field name="ROTATION_0" />
-		<field name="ROTATION_180" />
-		<field name="ROTATION_270" />
-		<field name="ROTATION_90" />
-		<field name="SECURE" />
-		<field name="SURACE_FROZEN" />
-		<field name="SURFACE_BLUR_FREEZE" />
-		<field name="SURFACE_DITHER" />
-		<field name="SURFACE_FROZEN" since="4" />
-		<field name="SURFACE_HIDDEN" />
-	</class>
-	<class name="android/view/Surface$OutOfResourcesException" since="1">
-		<extends name="java/lang/Exception" />
-		<extends name="java/lang/RuntimeException" since="19" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/view/SurfaceHolder" since="1">
-		<extends name="java/lang/Object" />
-		<method name="addCallback(Landroid/view/SurfaceHolder$Callback;)V" />
-		<method name="getSurface()Landroid/view/Surface;" />
-		<method name="getSurfaceFrame()Landroid/graphics/Rect;" />
-		<method name="isCreating()Z" />
-		<method name="lockCanvas()Landroid/graphics/Canvas;" />
-		<method name="lockCanvas(Landroid/graphics/Rect;)Landroid/graphics/Canvas;" />
-		<method name="removeCallback(Landroid/view/SurfaceHolder$Callback;)V" />
-		<method name="setFixedSize(II)V" />
-		<method name="setFormat(I)V" />
-		<method name="setKeepScreenOn(Z)V" />
-		<method name="setSizeFromLayout()V" />
-		<method name="setType(I)V" />
-		<method name="unlockCanvasAndPost(Landroid/graphics/Canvas;)V" />
-		<field name="SURFACE_TYPE_GPU" />
-		<field name="SURFACE_TYPE_HARDWARE" />
-		<field name="SURFACE_TYPE_NORMAL" />
-		<field name="SURFACE_TYPE_PUSH_BUFFERS" />
-	</class>
-	<class name="android/view/SurfaceHolder$BadSurfaceTypeException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/view/SurfaceHolder$Callback" since="1">
-		<extends name="java/lang/Object" />
-		<method name="surfaceChanged(Landroid/view/SurfaceHolder;III)V" />
-		<method name="surfaceCreated(Landroid/view/SurfaceHolder;)V" />
-		<method name="surfaceDestroyed(Landroid/view/SurfaceHolder;)V" />
-	</class>
-	<class name="android/view/SurfaceHolder$Callback2" since="9">
-		<extends name="java/lang/Object" />
-		<implements name="android/view/SurfaceHolder$Callback" />
-		<method name="surfaceRedrawNeeded(Landroid/view/SurfaceHolder;)V" />
-	</class>
-	<class name="android/view/SurfaceView" since="1">
-		<extends name="android/view/View" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="gatherTransparentRegion(Landroid/graphics/Region;)Z" />
-		<method name="getHolder()Landroid/view/SurfaceHolder;" />
-		<method name="setSecure(Z)V" since="17" />
-		<method name="setZOrderMediaOverlay(Z)V" since="5" />
-		<method name="setZOrderOnTop(Z)V" since="5" />
-	</class>
-	<class name="android/view/TextureView" since="14">
-		<extends name="android/view/View" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="getBitmap()Landroid/graphics/Bitmap;" />
-		<method name="getBitmap(II)Landroid/graphics/Bitmap;" />
-		<method name="getBitmap(Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap;" />
-		<method name="getSurfaceTexture()Landroid/graphics/SurfaceTexture;" />
-		<method name="getSurfaceTextureListener()Landroid/view/TextureView$SurfaceTextureListener;" />
-		<method name="getTransform(Landroid/graphics/Matrix;)Landroid/graphics/Matrix;" />
-		<method name="isAvailable()Z" />
-		<method name="lockCanvas()Landroid/graphics/Canvas;" />
-		<method name="lockCanvas(Landroid/graphics/Rect;)Landroid/graphics/Canvas;" />
-		<method name="setOpaque(Z)V" />
-		<method name="setSurfaceTexture(Landroid/graphics/SurfaceTexture;)V" since="16" />
-		<method name="setSurfaceTextureListener(Landroid/view/TextureView$SurfaceTextureListener;)V" />
-		<method name="setTransform(Landroid/graphics/Matrix;)V" />
-		<method name="unlockCanvasAndPost(Landroid/graphics/Canvas;)V" />
-	</class>
-	<class name="android/view/TextureView$SurfaceTextureListener" since="14">
-		<extends name="java/lang/Object" />
-		<method name="onSurfaceTextureAvailable(Landroid/graphics/SurfaceTexture;II)V" />
-		<method name="onSurfaceTextureDestroyed(Landroid/graphics/SurfaceTexture;)Z" />
-		<method name="onSurfaceTextureSizeChanged(Landroid/graphics/SurfaceTexture;II)V" />
-		<method name="onSurfaceTextureUpdated(Landroid/graphics/SurfaceTexture;)V" />
-	</class>
-	<class name="android/view/TouchDelegate" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/graphics/Rect;Landroid/view/View;)V" />
-		<method name="onTouchEvent(Landroid/view/MotionEvent;)Z" />
-		<field name="ABOVE" />
-		<field name="BELOW" />
-		<field name="TO_LEFT" />
-		<field name="TO_RIGHT" />
-	</class>
-	<class name="android/view/VelocityTracker" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addMovement(Landroid/view/MotionEvent;)V" />
-		<method name="clear()V" />
-		<method name="computeCurrentVelocity(I)V" />
-		<method name="computeCurrentVelocity(IF)V" since="4" />
-		<method name="getXVelocity()F" />
-		<method name="getXVelocity(I)F" since="8" />
-		<method name="getYVelocity()F" />
-		<method name="getYVelocity(I)F" since="8" />
-		<method name="obtain()Landroid/view/VelocityTracker;" />
-		<method name="recycle()V" />
-	</class>
-	<class name="android/view/View" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/graphics/drawable/Drawable$Callback" />
-		<implements name="android/view/KeyEvent$Callback" />
-		<implements name="android/view/accessibility/AccessibilityEventSource" since="4" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="addChildrenForAccessibility(Ljava/util/ArrayList;)V" since="16" />
-		<method name="addFocusables(Ljava/util/ArrayList;I)V" />
-		<method name="addFocusables(Ljava/util/ArrayList;II)V" since="4" />
-		<method name="addOnAttachStateChangeListener(Landroid/view/View$OnAttachStateChangeListener;)V" since="12" />
-		<method name="addOnLayoutChangeListener(Landroid/view/View$OnLayoutChangeListener;)V" since="11" />
-		<method name="addTouchables(Ljava/util/ArrayList;)V" />
-		<method name="animate()Landroid/view/ViewPropertyAnimator;" since="12" />
-		<method name="announceForAccessibility(Ljava/lang/CharSequence;)V" since="16" />
-		<method name="awakenScrollBars()Z" since="5" />
-		<method name="awakenScrollBars(I)Z" since="5" />
-		<method name="awakenScrollBars(IZ)Z" since="5" />
-		<method name="bringToFront()V" />
-		<method name="buildDrawingCache()V" />
-		<method name="buildDrawingCache(Z)V" since="4" />
-		<method name="buildLayer()V" since="12" />
-		<method name="callOnClick()Z" since="15" />
-		<method name="canResolveLayoutDirection()Z" since="19" />
-		<method name="canResolveTextAlignment()Z" since="19" />
-		<method name="canResolveTextDirection()Z" since="19" />
-		<method name="canScrollHorizontally(I)Z" since="14" />
-		<method name="canScrollVertically(I)Z" since="14" />
-		<method name="cancelLongPress()V" />
-		<method name="cancelPendingInputEvents()V" since="19" />
-		<method name="checkInputConnectionProxy(Landroid/view/View;)Z" since="3" />
-		<method name="clearAnimation()V" />
-		<method name="clearFocus()V" />
-		<method name="combineMeasuredStates(II)I" since="11" />
-		<method name="computeHorizontalScrollExtent()I" />
-		<method name="computeHorizontalScrollOffset()I" />
-		<method name="computeHorizontalScrollRange()I" />
-		<method name="computeScroll()V" />
-		<method name="computeVerticalScrollExtent()I" />
-		<method name="computeVerticalScrollOffset()I" />
-		<method name="computeVerticalScrollRange()I" />
-		<method name="createAccessibilityNodeInfo()Landroid/view/accessibility/AccessibilityNodeInfo;" since="14" />
-		<method name="createContextMenu(Landroid/view/ContextMenu;)V" />
-		<method name="destroyDrawingCache()V" />
-		<method name="dispatchApplyWindowInsets(Landroid/view/WindowInsets;)Landroid/view/WindowInsets;" since="20" />
-		<method name="dispatchConfigurationChanged(Landroid/content/res/Configuration;)V" since="8" />
-		<method name="dispatchDisplayHint(I)V" since="8" />
-		<method name="dispatchDragEvent(Landroid/view/DragEvent;)Z" since="11" />
-		<method name="dispatchDraw(Landroid/graphics/Canvas;)V" />
-		<method name="dispatchGenericFocusedEvent(Landroid/view/MotionEvent;)Z" since="14" />
-		<method name="dispatchGenericMotionEvent(Landroid/view/MotionEvent;)Z" since="12" />
-		<method name="dispatchGenericPointerEvent(Landroid/view/MotionEvent;)Z" since="14" />
-		<method name="dispatchHoverEvent(Landroid/view/MotionEvent;)Z" since="14" />
-		<method name="dispatchKeyEvent(Landroid/view/KeyEvent;)Z" />
-		<method name="dispatchKeyEventPreIme(Landroid/view/KeyEvent;)Z" since="3" />
-		<method name="dispatchKeyShortcutEvent(Landroid/view/KeyEvent;)Z" />
-		<method name="dispatchNestedFling(FFZ)Z" since="21" />
-		<method name="dispatchNestedPreScroll(II[I[I)Z" since="21" />
-		<method name="dispatchNestedScroll(IIII[I)Z" since="21" />
-		<method name="dispatchPopulateAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)Z" since="4" />
-		<method name="dispatchRestoreInstanceState(Landroid/util/SparseArray;)V" />
-		<method name="dispatchSaveInstanceState(Landroid/util/SparseArray;)V" />
-		<method name="dispatchSetActivated(Z)V" since="11" />
-		<method name="dispatchSetPressed(Z)V" />
-		<method name="dispatchSetSelected(Z)V" />
-		<method name="dispatchSystemUiVisibilityChanged(I)V" since="11" />
-		<method name="dispatchTouchEvent(Landroid/view/MotionEvent;)Z" />
-		<method name="dispatchTrackballEvent(Landroid/view/MotionEvent;)Z" />
-		<method name="dispatchUnhandledMove(Landroid/view/View;I)Z" />
-		<method name="dispatchVisibilityChanged(Landroid/view/View;I)V" since="8" />
-		<method name="dispatchWindowFocusChanged(Z)V" />
-		<method name="dispatchWindowSystemUiVisiblityChanged(I)V" since="16" />
-		<method name="dispatchWindowVisibilityChanged(I)V" />
-		<method name="draw(Landroid/graphics/Canvas;)V" />
-		<method name="drawableStateChanged()V" />
-		<method name="findFocus()Landroid/view/View;" />
-		<method name="findViewById(I)Landroid/view/View;" />
-		<method name="findViewWithTag(Ljava/lang/Object;)Landroid/view/View;" />
-		<method name="findViewsWithText(Ljava/util/ArrayList;Ljava/lang/CharSequence;I)V" since="14" />
-		<method name="fitSystemWindows(Landroid/graphics/Rect;)Z" />
-		<method name="fitsSystemWindows()Z" since="14" />
-		<method name="focusSearch(I)Landroid/view/View;" />
-		<method name="forceLayout()V" />
-		<method name="generateViewId()I" since="17" />
-		<method name="getAccessibilityLiveRegion()I" since="19" />
-		<method name="getAccessibilityNodeProvider()Landroid/view/accessibility/AccessibilityNodeProvider;" since="16" />
-		<method name="getAlpha()F" since="11" />
-		<method name="getAnimation()Landroid/view/animation/Animation;" />
-		<method name="getApplicationWindowToken()Landroid/os/IBinder;" />
-		<method name="getBackground()Landroid/graphics/drawable/Drawable;" />
-		<method name="getBaseline()I" />
-		<method name="getBottom()I" />
-		<method name="getBottomFadingEdgeStrength()F" />
-		<method name="getBottomPaddingOffset()I" since="2" />
-		<method name="getCameraDistance()F" since="16" />
-		<method name="getClipBounds()Landroid/graphics/Rect;" since="18" />
-		<method name="getClipToOutline()Z" since="21" />
-		<method name="getContentDescription()Ljava/lang/CharSequence;" since="4" />
-		<method name="getContext()Landroid/content/Context;" />
-		<method name="getContextMenuInfo()Landroid/view/ContextMenu$ContextMenuInfo;" />
-		<method name="getDefaultSize(II)I" />
-		<method name="getDisplay()Landroid/view/Display;" since="17" />
-		<method name="getDrawableState()[I" />
-		<method name="getDrawingCache()Landroid/graphics/Bitmap;" />
-		<method name="getDrawingCache(Z)Landroid/graphics/Bitmap;" since="4" />
-		<method name="getDrawingCacheBackgroundColor()I" />
-		<method name="getDrawingCacheQuality()I" />
-		<method name="getDrawingRect(Landroid/graphics/Rect;)V" />
-		<method name="getDrawingTime()J" />
-		<method name="getElevation()F" since="21" />
-		<method name="getFilterTouchesWhenObscured()Z" since="9" />
-		<method name="getFitsSystemWindows()Z" since="16" />
-		<method name="getFocusables(I)Ljava/util/ArrayList;" />
-		<method name="getFocusedRect(Landroid/graphics/Rect;)V" />
-		<method name="getGlobalVisibleRect(Landroid/graphics/Rect;)Z" />
-		<method name="getGlobalVisibleRect(Landroid/graphics/Rect;Landroid/graphics/Point;)Z" />
-		<method name="getHandler()Landroid/os/Handler;" />
-		<method name="getHeight()I" />
-		<method name="getHitRect(Landroid/graphics/Rect;)V" />
-		<method name="getHorizontalFadingEdgeLength()I" />
-		<method name="getHorizontalScrollbarHeight()I" />
-		<method name="getId()I" />
-		<method name="getImportantForAccessibility()I" since="16" />
-		<method name="getKeepScreenOn()Z" />
-		<method name="getKeyDispatcherState()Landroid/view/KeyEvent$DispatcherState;" since="5" />
-		<method name="getLabelFor()I" since="17" />
-		<method name="getLayerType()I" since="11" />
-		<method name="getLayoutDirection()I" since="17" />
-		<method name="getLayoutParams()Landroid/view/ViewGroup$LayoutParams;" />
-		<method name="getLeft()I" />
-		<method name="getLeftFadingEdgeStrength()F" />
-		<method name="getLeftPaddingOffset()I" since="2" />
-		<method name="getLocalVisibleRect(Landroid/graphics/Rect;)Z" />
-		<method name="getLocationInWindow([I)V" />
-		<method name="getLocationOnScreen([I)V" />
-		<method name="getMatrix()Landroid/graphics/Matrix;" since="11" />
-		<method name="getMeasuredHeight()I" />
-		<method name="getMeasuredHeightAndState()I" since="11" />
-		<method name="getMeasuredState()I" since="11" />
-		<method name="getMeasuredWidth()I" />
-		<method name="getMeasuredWidthAndState()I" since="11" />
-		<method name="getMinimumHeight()I" since="16" />
-		<method name="getMinimumWidth()I" since="16" />
-		<method name="getNextFocusDownId()I" />
-		<method name="getNextFocusForwardId()I" since="11" />
-		<method name="getNextFocusLeftId()I" />
-		<method name="getNextFocusRightId()I" />
-		<method name="getNextFocusUpId()I" />
-		<method name="getOnFocusChangeListener()Landroid/view/View$OnFocusChangeListener;" />
-		<method name="getOverScrollMode()I" since="9" />
-		<method name="getOverlay()Landroid/view/ViewOverlay;" since="18" />
-		<method name="getPaddingBottom()I" />
-		<method name="getPaddingEnd()I" since="17" />
-		<method name="getPaddingLeft()I" />
-		<method name="getPaddingRight()I" />
-		<method name="getPaddingStart()I" since="17" />
-		<method name="getPaddingTop()I" />
-		<method name="getParent()Landroid/view/ViewParent;" />
-		<method name="getParentForAccessibility()Landroid/view/ViewParent;" since="16" />
-		<method name="getPivotX()F" since="11" />
-		<method name="getPivotY()F" since="11" />
-		<method name="getResources()Landroid/content/res/Resources;" />
-		<method name="getRight()I" />
-		<method name="getRightFadingEdgeStrength()F" />
-		<method name="getRightPaddingOffset()I" since="2" />
-		<method name="getRootView()Landroid/view/View;" />
-		<method name="getRotation()F" since="11" />
-		<method name="getRotationX()F" since="11" />
-		<method name="getRotationY()F" since="11" />
-		<method name="getScaleX()F" since="11" />
-		<method name="getScaleY()F" since="11" />
-		<method name="getScrollBarDefaultDelayBeforeFade()I" since="16" />
-		<method name="getScrollBarFadeDuration()I" since="16" />
-		<method name="getScrollBarSize()I" since="16" />
-		<method name="getScrollBarStyle()I" />
-		<method name="getScrollX()I" />
-		<method name="getScrollY()I" />
-		<method name="getSolidColor()I" />
-		<method name="getStateListAnimator()Landroid/animation/StateListAnimator;" since="21" />
-		<method name="getSuggestedMinimumHeight()I" />
-		<method name="getSuggestedMinimumWidth()I" />
-		<method name="getSystemUiVisibility()I" since="11" />
-		<method name="getTag()Ljava/lang/Object;" />
-		<method name="getTag(I)Ljava/lang/Object;" since="4" />
-		<method name="getTextAlignment()I" since="17" />
-		<method name="getTextDirection()I" since="17" />
-		<method name="getTop()I" />
-		<method name="getTopFadingEdgeStrength()F" />
-		<method name="getTopPaddingOffset()I" since="2" />
-		<method name="getTouchDelegate()Landroid/view/TouchDelegate;" />
-		<method name="getTouchables()Ljava/util/ArrayList;" />
-		<method name="getTranslationX()F" since="11" />
-		<method name="getTranslationY()F" since="11" />
-		<method name="getTranslationZ()F" since="21" />
-		<method name="getVerticalFadingEdgeLength()I" />
-		<method name="getVerticalScrollbarPosition()I" since="11" />
-		<method name="getVerticalScrollbarWidth()I" />
-		<method name="getViewName()Ljava/lang/String;" since="21" />
-		<method name="getViewTreeObserver()Landroid/view/ViewTreeObserver;" />
-		<method name="getVisibility()I" />
-		<method name="getWidth()I" />
-		<method name="getWindowAttachCount()I" />
-		<method name="getWindowId()Landroid/view/WindowId;" since="18" />
-		<method name="getWindowSystemUiVisibility()I" since="16" />
-		<method name="getWindowToken()Landroid/os/IBinder;" />
-		<method name="getWindowVisibility()I" />
-		<method name="getWindowVisibleDisplayFrame(Landroid/graphics/Rect;)V" since="3" />
-		<method name="getX()F" since="11" />
-		<method name="getY()F" since="11" />
-		<method name="getZ()F" since="21" />
-		<method name="hasFocus()Z" />
-		<method name="hasFocusable()Z" />
-		<method name="hasNestedScrollingParent()Z" since="21" />
-		<method name="hasOnClickListeners()Z" since="15" />
-		<method name="hasOverlappingRendering()Z" since="16" />
-		<method name="hasTransientState()Z" since="16" />
-		<method name="hasWindowFocus()Z" />
-		<method name="inflate(Landroid/content/Context;ILandroid/view/ViewGroup;)Landroid/view/View;" />
-		<method name="initializeFadingEdge(Landroid/content/res/TypedArray;)V" />
-		<method name="initializeScrollbars(Landroid/content/res/TypedArray;)V" />
-		<method name="invalidate()V" />
-		<method name="invalidate(IIII)V" />
-		<method name="invalidate(Landroid/graphics/Rect;)V" />
-		<method name="isAccessibilityFocused()Z" since="21" />
-		<method name="isActivated()Z" since="11" />
-		<method name="isAttachedToWindow()Z" since="19" />
-		<method name="isClickable()Z" />
-		<method name="isDirty()Z" since="11" />
-		<method name="isDrawingCacheEnabled()Z" />
-		<method name="isDuplicateParentStateEnabled()Z" />
-		<method name="isEnabled()Z" />
-		<method name="isFocusable()Z" />
-		<method name="isFocusableInTouchMode()Z" />
-		<method name="isFocused()Z" />
-		<method name="isHapticFeedbackEnabled()Z" since="3" />
-		<method name="isHardwareAccelerated()Z" since="11" />
-		<method name="isHorizontalFadingEdgeEnabled()Z" />
-		<method name="isHorizontalScrollBarEnabled()Z" />
-		<method name="isHovered()Z" since="14" />
-		<method name="isImportantForAccessibility()Z" since="21" />
-		<method name="isInEditMode()Z" since="3" />
-		<method name="isInLayout()Z" since="18" />
-		<method name="isInTouchMode()Z" />
-		<method name="isLaidOut()Z" since="19" />
-		<method name="isLayoutDirectionResolved()Z" since="19" />
-		<method name="isLayoutRequested()Z" />
-		<method name="isLongClickable()Z" />
-		<method name="isNestedScrollingEnabled()Z" since="21" />
-		<method name="isOpaque()Z" since="7" />
-		<method name="isPaddingOffsetRequired()Z" since="2" />
-		<method name="isPaddingRelative()Z" since="17" />
-		<method name="isPressed()Z" />
-		<method name="isSaveEnabled()Z" />
-		<method name="isSaveFromParentEnabled()Z" since="11" />
-		<method name="isScrollContainer()Z" since="16" />
-		<method name="isScrollbarFadingEnabled()Z" since="5" />
-		<method name="isSelected()Z" />
-		<method name="isShown()Z" />
-		<method name="isSoundEffectsEnabled()Z" />
-		<method name="isTextAlignmentResolved()Z" since="19" />
-		<method name="isTextDirectionResolved()Z" since="19" />
-		<method name="isVerticalFadingEdgeEnabled()Z" />
-		<method name="isVerticalScrollBarEnabled()Z" />
-		<method name="jumpDrawablesToCurrentState()V" since="11" />
-		<method name="layout(IIII)V" />
-		<method name="measure(II)V" />
-		<method name="mergeDrawableStates([I[I)[I" />
-		<method name="offsetLeftAndRight(I)V" />
-		<method name="offsetTopAndBottom(I)V" />
-		<method name="onAnimationEnd()V" />
-		<method name="onAnimationStart()V" />
-		<method name="onApplyWindowInsets(Landroid/view/WindowInsets;)Landroid/view/WindowInsets;" since="20" />
-		<method name="onAttachedToWindow()V" />
-		<method name="onCancelPendingInputEvents()V" since="19" />
-		<method name="onCheckIsTextEditor()Z" since="3" />
-		<method name="onConfigurationChanged(Landroid/content/res/Configuration;)V" since="8" />
-		<method name="onCreateContextMenu(Landroid/view/ContextMenu;)V" />
-		<method name="onCreateDrawableState(I)[I" />
-		<method name="onCreateInputConnection(Landroid/view/inputmethod/EditorInfo;)Landroid/view/inputmethod/InputConnection;" since="3" />
-		<method name="onDetachedFromWindow()V" />
-		<method name="onDisplayHint(I)V" since="8" />
-		<method name="onDragEvent(Landroid/view/DragEvent;)Z" since="11" />
-		<method name="onDraw(Landroid/graphics/Canvas;)V" />
-		<method name="onDrawScrollBars(Landroid/graphics/Canvas;)V" since="7" />
-		<method name="onFilterTouchEventForSecurity(Landroid/view/MotionEvent;)Z" since="9" />
-		<method name="onFinishInflate()V" />
-		<method name="onFinishTemporaryDetach()V" since="3" />
-		<method name="onFocusChanged(ZILandroid/graphics/Rect;)V" />
-		<method name="onGenericMotionEvent(Landroid/view/MotionEvent;)Z" since="12" />
-		<method name="onHoverChanged(Z)V" since="14" />
-		<method name="onHoverEvent(Landroid/view/MotionEvent;)Z" since="14" />
-		<method name="onInitializeAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V" since="14" />
-		<method name="onInitializeAccessibilityNodeInfo(Landroid/view/accessibility/AccessibilityNodeInfo;)V" since="14" />
-		<method name="onKeyPreIme(ILandroid/view/KeyEvent;)Z" since="3" />
-		<method name="onKeyShortcut(ILandroid/view/KeyEvent;)Z" />
-		<method name="onLayout(ZIIII)V" />
-		<method name="onMeasure(II)V" />
-		<method name="onOverScrolled(IIZZ)V" since="9" />
-		<method name="onPopulateAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V" since="14" />
-		<method name="onRestoreInstanceState(Landroid/os/Parcelable;)V" />
-		<method name="onRtlPropertiesChanged(I)V" since="17" />
-		<method name="onSaveInstanceState()Landroid/os/Parcelable;" />
-		<method name="onScreenStateChanged(I)V" since="16" />
-		<method name="onScrollChanged(IIII)V" />
-		<method name="onSetAlpha(I)Z" />
-		<method name="onSizeChanged(IIII)V" />
-		<method name="onStartTemporaryDetach()V" since="3" />
-		<method name="onTouchEvent(Landroid/view/MotionEvent;)Z" />
-		<method name="onTrackballEvent(Landroid/view/MotionEvent;)Z" />
-		<method name="onVisibilityChanged(Landroid/view/View;I)V" since="8" />
-		<method name="onWindowFocusChanged(Z)V" />
-		<method name="onWindowSystemUiVisibilityChanged(I)V" since="16" />
-		<method name="onWindowVisibilityChanged(I)V" />
-		<method name="overScrollBy(IIIIIIIIZ)Z" since="9" />
-		<method name="performAccessibilityAction(ILandroid/os/Bundle;)Z" since="16" />
-		<method name="performClick()Z" />
-		<method name="performHapticFeedback(I)Z" since="3" />
-		<method name="performHapticFeedback(II)Z" since="3" />
-		<method name="performLongClick()Z" />
-		<method name="playSoundEffect(I)V" />
-		<method name="post(Ljava/lang/Runnable;)Z" />
-		<method name="postDelayed(Ljava/lang/Runnable;J)Z" />
-		<method name="postInvalidate()V" />
-		<method name="postInvalidate(IIII)V" />
-		<method name="postInvalidateDelayed(J)V" />
-		<method name="postInvalidateDelayed(JIIII)V" />
-		<method name="postInvalidateOnAnimation()V" since="16" />
-		<method name="postInvalidateOnAnimation(IIII)V" since="16" />
-		<method name="postOnAnimation(Ljava/lang/Runnable;)V" since="16" />
-		<method name="postOnAnimationDelayed(Ljava/lang/Runnable;J)V" since="16" />
-		<method name="refreshDrawableState()V" />
-		<method name="removeCallbacks(Ljava/lang/Runnable;)Z" />
-		<method name="removeOnAttachStateChangeListener(Landroid/view/View$OnAttachStateChangeListener;)V" since="12" />
-		<method name="removeOnLayoutChangeListener(Landroid/view/View$OnLayoutChangeListener;)V" since="11" />
-		<method name="requestApplyInsets()V" since="20" />
-		<method name="requestFitSystemWindows()V" since="16" />
-		<method name="requestFocus()Z" />
-		<method name="requestFocus(I)Z" />
-		<method name="requestFocus(ILandroid/graphics/Rect;)Z" />
-		<method name="requestFocusFromTouch()Z" />
-		<method name="requestLayout()V" />
-		<method name="requestRectangleOnScreen(Landroid/graphics/Rect;)Z" />
-		<method name="requestRectangleOnScreen(Landroid/graphics/Rect;Z)Z" />
-		<method name="resolveSize(II)I" />
-		<method name="resolveSizeAndState(III)I" since="11" />
-		<method name="restoreHierarchyState(Landroid/util/SparseArray;)V" />
-		<method name="saveHierarchyState(Landroid/util/SparseArray;)V" />
-		<method name="scrollBy(II)V" />
-		<method name="scrollTo(II)V" />
-		<method name="setAccessibilityDelegate(Landroid/view/View$AccessibilityDelegate;)V" since="14" />
-		<method name="setAccessibilityLiveRegion(I)V" since="19" />
-		<method name="setActivated(Z)V" since="11" />
-		<method name="setAlpha(F)V" since="11" />
-		<method name="setAnimation(Landroid/view/animation/Animation;)V" />
-		<method name="setBackground(Landroid/graphics/drawable/Drawable;)V" since="16" />
-		<method name="setBackgroundColor(I)V" />
-		<method name="setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V" />
-		<method name="setBackgroundResource(I)V" />
-		<method name="setBottom(I)V" since="11" />
-		<method name="setCameraDistance(F)V" since="12" />
-		<method name="setClickable(Z)V" />
-		<method name="setClipBounds(Landroid/graphics/Rect;)V" since="18" />
-		<method name="setClipToOutline(Z)V" since="21" />
-		<method name="setContentDescription(Ljava/lang/CharSequence;)V" since="4" />
-		<method name="setDrawingCacheBackgroundColor(I)V" />
-		<method name="setDrawingCacheEnabled(Z)V" />
-		<method name="setDrawingCacheQuality(I)V" />
-		<method name="setDuplicateParentStateEnabled(Z)V" />
-		<method name="setElevation(F)V" since="21" />
-		<method name="setEnabled(Z)V" />
-		<method name="setFadingEdgeLength(I)V" />
-		<method name="setFilterTouchesWhenObscured(Z)V" since="9" />
-		<method name="setFitsSystemWindows(Z)V" since="14" />
-		<method name="setFocusable(Z)V" />
-		<method name="setFocusableInTouchMode(Z)V" />
-		<method name="setHapticFeedbackEnabled(Z)V" since="3" />
-		<method name="setHasTransientState(Z)V" since="16" />
-		<method name="setHorizontalFadingEdgeEnabled(Z)V" />
-		<method name="setHorizontalScrollBarEnabled(Z)V" />
-		<method name="setHovered(Z)V" since="14" />
-		<method name="setId(I)V" />
-		<method name="setImportantForAccessibility(I)V" since="16" />
-		<method name="setKeepScreenOn(Z)V" />
-		<method name="setLabelFor(I)V" since="17" />
-		<method name="setLayerPaint(Landroid/graphics/Paint;)V" since="17" />
-		<method name="setLayerType(ILandroid/graphics/Paint;)V" since="11" />
-		<method name="setLayoutDirection(I)V" since="17" />
-		<method name="setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V" />
-		<method name="setLeft(I)V" since="11" />
-		<method name="setLongClickable(Z)V" />
-		<method name="setMeasuredDimension(II)V" />
-		<method name="setMinimumHeight(I)V" />
-		<method name="setMinimumWidth(I)V" />
-		<method name="setNestedScrollingEnabled(Z)V" since="21" />
-		<method name="setNextFocusDownId(I)V" />
-		<method name="setNextFocusForwardId(I)V" since="11" />
-		<method name="setNextFocusLeftId(I)V" />
-		<method name="setNextFocusRightId(I)V" />
-		<method name="setNextFocusUpId(I)V" />
-		<method name="setOnApplyWindowInsetsListener(Landroid/view/View$OnApplyWindowInsetsListener;)V" since="20" />
-		<method name="setOnClickListener(Landroid/view/View$OnClickListener;)V" />
-		<method name="setOnCreateContextMenuListener(Landroid/view/View$OnCreateContextMenuListener;)V" />
-		<method name="setOnDragListener(Landroid/view/View$OnDragListener;)V" since="11" />
-		<method name="setOnFocusChangeListener(Landroid/view/View$OnFocusChangeListener;)V" />
-		<method name="setOnGenericMotionListener(Landroid/view/View$OnGenericMotionListener;)V" since="12" />
-		<method name="setOnHoverListener(Landroid/view/View$OnHoverListener;)V" since="14" />
-		<method name="setOnKeyListener(Landroid/view/View$OnKeyListener;)V" />
-		<method name="setOnLongClickListener(Landroid/view/View$OnLongClickListener;)V" />
-		<method name="setOnSystemUiVisibilityChangeListener(Landroid/view/View$OnSystemUiVisibilityChangeListener;)V" since="11" />
-		<method name="setOnTouchListener(Landroid/view/View$OnTouchListener;)V" />
-		<method name="setOutline(Landroid/graphics/Outline;)V" since="21" />
-		<method name="setOverScrollMode(I)V" since="9" />
-		<method name="setPadding(IIII)V" />
-		<method name="setPaddingRelative(IIII)V" since="17" />
-		<method name="setPivotX(F)V" since="11" />
-		<method name="setPivotY(F)V" since="11" />
-		<method name="setPressed(Z)V" />
-		<method name="setRight(I)V" since="11" />
-		<method name="setRotation(F)V" since="11" />
-		<method name="setRotationX(F)V" since="11" />
-		<method name="setRotationY(F)V" since="11" />
-		<method name="setSaveEnabled(Z)V" />
-		<method name="setSaveFromParentEnabled(Z)V" since="11" />
-		<method name="setScaleX(F)V" since="11" />
-		<method name="setScaleY(F)V" since="11" />
-		<method name="setScrollBarDefaultDelayBeforeFade(I)V" since="16" />
-		<method name="setScrollBarFadeDuration(I)V" since="16" />
-		<method name="setScrollBarSize(I)V" since="16" />
-		<method name="setScrollBarStyle(I)V" />
-		<method name="setScrollContainer(Z)V" since="3" />
-		<method name="setScrollX(I)V" since="14" />
-		<method name="setScrollY(I)V" since="14" />
-		<method name="setScrollbarFadingEnabled(Z)V" since="5" />
-		<method name="setSelected(Z)V" />
-		<method name="setSoundEffectsEnabled(Z)V" />
-		<method name="setStateListAnimator(Landroid/animation/StateListAnimator;)V" since="21" />
-		<method name="setSystemUiVisibility(I)V" since="11" />
-		<method name="setTag(ILjava/lang/Object;)V" since="4" />
-		<method name="setTag(Ljava/lang/Object;)V" />
-		<method name="setTextAlignment(I)V" since="17" />
-		<method name="setTextDirection(I)V" since="17" />
-		<method name="setTop(I)V" since="11" />
-		<method name="setTouchDelegate(Landroid/view/TouchDelegate;)V" />
-		<method name="setTranslationX(F)V" since="11" />
-		<method name="setTranslationY(F)V" since="11" />
-		<method name="setTranslationZ(F)V" since="21" />
-		<method name="setVerticalFadingEdgeEnabled(Z)V" />
-		<method name="setVerticalScrollBarEnabled(Z)V" />
-		<method name="setVerticalScrollbarPosition(I)V" since="11" />
-		<method name="setViewName(Ljava/lang/String;)V" since="21" />
-		<method name="setVisibility(I)V" />
-		<method name="setWillNotCacheDrawing(Z)V" />
-		<method name="setWillNotDraw(Z)V" />
-		<method name="setX(F)V" since="11" />
-		<method name="setY(F)V" since="11" />
-		<method name="setZ(F)V" since="21" />
-		<method name="showContextMenu()Z" />
-		<method name="startActionMode(Landroid/view/ActionMode$Callback;)Landroid/view/ActionMode;" since="11" />
-		<method name="startAnimation(Landroid/view/animation/Animation;)V" />
-		<method name="startDrag(Landroid/content/ClipData;Landroid/view/View$DragShadowBuilder;Ljava/lang/Object;I)Z" since="11" />
-		<method name="startNestedScroll(I)Z" since="21" />
-		<method name="stopNestedScroll()V" since="21" />
-		<method name="unscheduleDrawable(Landroid/graphics/drawable/Drawable;)V" />
-		<method name="verifyDrawable(Landroid/graphics/drawable/Drawable;)Z" />
-		<method name="willNotCacheDrawing()Z" />
-		<method name="willNotDraw()Z" />
-		<field name="ACCESSIBILITY_LIVE_REGION_ASSERTIVE" since="19" />
-		<field name="ACCESSIBILITY_LIVE_REGION_NONE" since="19" />
-		<field name="ACCESSIBILITY_LIVE_REGION_POLITE" since="19" />
-		<field name="ALPHA" since="14" />
-		<field name="DRAWING_CACHE_QUALITY_AUTO" />
-		<field name="DRAWING_CACHE_QUALITY_HIGH" />
-		<field name="DRAWING_CACHE_QUALITY_LOW" />
-		<field name="EMPTY_STATE_SET" />
-		<field name="ENABLED_FOCUSED_SELECTED_STATE_SET" />
-		<field name="ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET" />
-		<field name="ENABLED_FOCUSED_STATE_SET" />
-		<field name="ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET" />
-		<field name="ENABLED_SELECTED_STATE_SET" />
-		<field name="ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET" />
-		<field name="ENABLED_STATE_SET" />
-		<field name="ENABLED_WINDOW_FOCUSED_STATE_SET" />
-		<field name="FIND_VIEWS_WITH_CONTENT_DESCRIPTION" since="14" />
-		<field name="FIND_VIEWS_WITH_TEXT" since="14" />
-		<field name="FOCUSABLES_ALL" since="4" />
-		<field name="FOCUSABLES_TOUCH_MODE" since="4" />
-		<field name="FOCUSED_SELECTED_STATE_SET" />
-		<field name="FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET" />
-		<field name="FOCUSED_STATE_SET" />
-		<field name="FOCUSED_WINDOW_FOCUSED_STATE_SET" />
-		<field name="FOCUS_BACKWARD" />
-		<field name="FOCUS_DOWN" />
-		<field name="FOCUS_FORWARD" />
-		<field name="FOCUS_LEFT" />
-		<field name="FOCUS_RIGHT" />
-		<field name="FOCUS_UP" />
-		<field name="GONE" />
-		<field name="HAPTIC_FEEDBACK_ENABLED" since="3" />
-		<field name="IMPORTANT_FOR_ACCESSIBILITY_AUTO" since="16" />
-		<field name="IMPORTANT_FOR_ACCESSIBILITY_NO" since="16" />
-		<field name="IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS" since="19" />
-		<field name="IMPORTANT_FOR_ACCESSIBILITY_YES" since="16" />
-		<field name="INVISIBLE" />
-		<field name="KEEP_SCREEN_ON" />
-		<field name="LAYER_TYPE_HARDWARE" since="11" />
-		<field name="LAYER_TYPE_NONE" since="11" />
-		<field name="LAYER_TYPE_SOFTWARE" since="11" />
-		<field name="LAYOUT_DIRECTION_INHERIT" since="17" />
-		<field name="LAYOUT_DIRECTION_LOCALE" since="17" />
-		<field name="LAYOUT_DIRECTION_LTR" since="17" />
-		<field name="LAYOUT_DIRECTION_RTL" since="17" />
-		<field name="MEASURED_HEIGHT_STATE_SHIFT" since="11" />
-		<field name="MEASURED_SIZE_MASK" since="11" />
-		<field name="MEASURED_STATE_MASK" since="11" />
-		<field name="MEASURED_STATE_TOO_SMALL" since="11" />
-		<field name="NO_ID" />
-		<field name="OVER_SCROLL_ALWAYS" since="9" />
-		<field name="OVER_SCROLL_IF_CONTENT_SCROLLS" since="9" />
-		<field name="OVER_SCROLL_NEVER" since="9" />
-		<field name="PRESSED_ENABLED_FOCUSED_SELECTED_STATE_SET" />
-		<field name="PRESSED_ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET" />
-		<field name="PRESSED_ENABLED_FOCUSED_STATE_SET" />
-		<field name="PRESSED_ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET" />
-		<field name="PRESSED_ENABLED_SELECTED_STATE_SET" />
-		<field name="PRESSED_ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET" />
-		<field name="PRESSED_ENABLED_STATE_SET" />
-		<field name="PRESSED_ENABLED_WINDOW_FOCUSED_STATE_SET" />
-		<field name="PRESSED_FOCUSED_SELECTED_STATE_SET" />
-		<field name="PRESSED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET" />
-		<field name="PRESSED_FOCUSED_STATE_SET" />
-		<field name="PRESSED_FOCUSED_WINDOW_FOCUSED_STATE_SET" />
-		<field name="PRESSED_SELECTED_STATE_SET" />
-		<field name="PRESSED_SELECTED_WINDOW_FOCUSED_STATE_SET" />
-		<field name="PRESSED_STATE_SET" since="19" />
-		<field name="PRESSED_WINDOW_FOCUSED_STATE_SET" />
-		<field name="ROTATION" since="14" />
-		<field name="ROTATION_X" since="14" />
-		<field name="ROTATION_Y" since="14" />
-		<field name="SCALE_X" since="14" />
-		<field name="SCALE_Y" since="14" />
-		<field name="SCREEN_STATE_OFF" since="16" />
-		<field name="SCREEN_STATE_ON" since="16" />
-		<field name="SCROLLBARS_INSIDE_INSET" />
-		<field name="SCROLLBARS_INSIDE_OVERLAY" />
-		<field name="SCROLLBARS_OUTSIDE_INSET" />
-		<field name="SCROLLBARS_OUTSIDE_OVERLAY" />
-		<field name="SCROLLBAR_POSITION_DEFAULT" since="11" />
-		<field name="SCROLLBAR_POSITION_LEFT" since="11" />
-		<field name="SCROLLBAR_POSITION_RIGHT" since="11" />
-		<field name="SCROLL_AXIS_HORIZONTAL" since="21" />
-		<field name="SCROLL_AXIS_NONE" since="21" />
-		<field name="SCROLL_AXIS_VERTICAL" since="21" />
-		<field name="SELECTED_STATE_SET" />
-		<field name="SELECTED_WINDOW_FOCUSED_STATE_SET" />
-		<field name="SOUND_EFFECTS_ENABLED" />
-		<field name="STATUS_BAR_HIDDEN" since="11" />
-		<field name="STATUS_BAR_VISIBLE" since="11" />
-		<field name="SYSTEM_UI_FLAG_FULLSCREEN" since="16" />
-		<field name="SYSTEM_UI_FLAG_HIDE_NAVIGATION" since="14" />
-		<field name="SYSTEM_UI_FLAG_IMMERSIVE" since="19" />
-		<field name="SYSTEM_UI_FLAG_IMMERSIVE_STICKY" since="19" />
-		<field name="SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN" since="16" />
-		<field name="SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION" since="16" />
-		<field name="SYSTEM_UI_FLAG_LAYOUT_STABLE" since="16" />
-		<field name="SYSTEM_UI_FLAG_LOW_PROFILE" since="14" />
-		<field name="SYSTEM_UI_FLAG_VISIBLE" since="14" />
-		<field name="SYSTEM_UI_LAYOUT_FLAGS" since="16" />
-		<field name="TEXT_ALIGNMENT_CENTER" since="17" />
-		<field name="TEXT_ALIGNMENT_GRAVITY" since="17" />
-		<field name="TEXT_ALIGNMENT_INHERIT" since="16" />
-		<field name="TEXT_ALIGNMENT_RESOLVED_DEFAULT" since="16" />
-		<field name="TEXT_ALIGNMENT_TEXT_END" since="17" />
-		<field name="TEXT_ALIGNMENT_TEXT_START" since="17" />
-		<field name="TEXT_ALIGNMENT_VIEW_END" since="17" />
-		<field name="TEXT_ALIGNMENT_VIEW_START" since="17" />
-		<field name="TEXT_DIRECTION_ANY_RTL" since="17" />
-		<field name="TEXT_DIRECTION_FIRST_STRONG" since="17" />
-		<field name="TEXT_DIRECTION_INHERIT" since="17" />
-		<field name="TEXT_DIRECTION_LOCALE" since="17" />
-		<field name="TEXT_DIRECTION_LTR" since="17" />
-		<field name="TEXT_DIRECTION_RTL" since="17" />
-		<field name="TRANSLATION_X" since="14" />
-		<field name="TRANSLATION_Y" since="14" />
-		<field name="TRANSLATION_Z" since="21" />
-		<field name="VIEW_LOG_TAG" />
-		<field name="VISIBLE" />
-		<field name="WINDOW_FOCUSED_STATE_SET" />
-		<field name="X" since="14" />
-		<field name="Y" since="14" />
-		<field name="Z" since="21" />
-	</class>
-	<class name="android/view/View$AccessibilityDelegate" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="dispatchPopulateAccessibilityEvent(Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)Z" />
-		<method name="getAccessibilityNodeProvider(Landroid/view/View;)Landroid/view/accessibility/AccessibilityNodeProvider;" since="16" />
-		<method name="onInitializeAccessibilityEvent(Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)V" />
-		<method name="onInitializeAccessibilityNodeInfo(Landroid/view/View;Landroid/view/accessibility/AccessibilityNodeInfo;)V" />
-		<method name="onPopulateAccessibilityEvent(Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)V" />
-		<method name="onRequestSendAccessibilityEvent(Landroid/view/ViewGroup;Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)Z" />
-		<method name="performAccessibilityAction(Landroid/view/View;ILandroid/os/Bundle;)Z" since="16" />
-		<method name="sendAccessibilityEvent(Landroid/view/View;I)V" />
-		<method name="sendAccessibilityEventUnchecked(Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)V" />
-	</class>
-	<class name="android/view/View$BaseSavedState" since="1">
-		<extends name="android/view/AbsSavedState" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" />
-		<method name="&lt;init>(Landroid/os/Parcelable;)V" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/view/View$DragShadowBuilder" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/view/View;)V" />
-		<method name="getView()Landroid/view/View;" />
-		<method name="onDrawShadow(Landroid/graphics/Canvas;)V" />
-		<method name="onProvideShadowMetrics(Landroid/graphics/Point;Landroid/graphics/Point;)V" />
-	</class>
-	<class name="android/view/View$MeasureSpec" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getMode(I)I" />
-		<method name="getSize(I)I" />
-		<method name="makeMeasureSpec(II)I" />
-		<method name="toString(I)Ljava/lang/String;" />
-		<field name="AT_MOST" />
-		<field name="EXACTLY" />
-		<field name="UNSPECIFIED" />
-	</class>
-	<class name="android/view/View$OnApplyWindowInsetsListener" since="20">
-		<extends name="java/lang/Object" />
-		<method name="onApplyWindowInsets(Landroid/view/View;Landroid/view/WindowInsets;)Landroid/view/WindowInsets;" />
-	</class>
-	<class name="android/view/View$OnAttachStateChangeListener" since="12">
-		<extends name="java/lang/Object" />
-		<method name="onViewAttachedToWindow(Landroid/view/View;)V" />
-		<method name="onViewDetachedFromWindow(Landroid/view/View;)V" />
-	</class>
-	<class name="android/view/View$OnClickListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onClick(Landroid/view/View;)V" />
-	</class>
-	<class name="android/view/View$OnCreateContextMenuListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onCreateContextMenu(Landroid/view/ContextMenu;Landroid/view/View;Landroid/view/ContextMenu$ContextMenuInfo;)V" />
-	</class>
-	<class name="android/view/View$OnDragListener" since="11">
-		<extends name="java/lang/Object" />
-		<method name="onDrag(Landroid/view/View;Landroid/view/DragEvent;)Z" />
-	</class>
-	<class name="android/view/View$OnFocusChangeListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onFocusChange(Landroid/view/View;Z)V" />
-	</class>
-	<class name="android/view/View$OnGenericMotionListener" since="12">
-		<extends name="java/lang/Object" />
-		<method name="onGenericMotion(Landroid/view/View;Landroid/view/MotionEvent;)Z" />
-	</class>
-	<class name="android/view/View$OnHoverListener" since="14">
-		<extends name="java/lang/Object" />
-		<method name="onHover(Landroid/view/View;Landroid/view/MotionEvent;)Z" />
-	</class>
-	<class name="android/view/View$OnKeyListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onKey(Landroid/view/View;ILandroid/view/KeyEvent;)Z" />
-	</class>
-	<class name="android/view/View$OnLayoutChangeListener" since="11">
-		<extends name="java/lang/Object" />
-		<method name="onLayoutChange(Landroid/view/View;IIIIIIII)V" />
-	</class>
-	<class name="android/view/View$OnLongClickListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onLongClick(Landroid/view/View;)Z" />
-	</class>
-	<class name="android/view/View$OnSystemUiVisibilityChangeListener" since="11">
-		<extends name="java/lang/Object" />
-		<method name="onSystemUiVisibilityChange(I)V" />
-	</class>
-	<class name="android/view/View$OnTouchListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onTouch(Landroid/view/View;Landroid/view/MotionEvent;)Z" />
-	</class>
-	<class name="android/view/ViewAnimationUtils" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="createCircularReveal(Landroid/view/View;IIFF)Landroid/animation/ValueAnimator;" />
-	</class>
-	<class name="android/view/ViewConfiguration" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="get(Landroid/content/Context;)Landroid/view/ViewConfiguration;" since="3" />
-		<method name="getDoubleTapTimeout()I" since="3" />
-		<method name="getEdgeSlop()I" />
-		<method name="getFadingEdgeLength()I" />
-		<method name="getGlobalActionKeyTimeout()J" />
-		<method name="getJumpTapTimeout()I" />
-		<method name="getKeyRepeatDelay()I" since="12" />
-		<method name="getKeyRepeatTimeout()I" since="12" />
-		<method name="getLongPressTimeout()I" />
-		<method name="getMaximumDrawingCacheSize()I" />
-		<method name="getMaximumFlingVelocity()I" since="4" />
-		<method name="getMinimumFlingVelocity()I" />
-		<method name="getPressedStateDuration()I" />
-		<method name="getScaledDoubleTapSlop()I" since="3" />
-		<method name="getScaledEdgeSlop()I" since="3" />
-		<method name="getScaledFadingEdgeLength()I" since="3" />
-		<method name="getScaledMaximumDrawingCacheSize()I" since="3" />
-		<method name="getScaledMaximumFlingVelocity()I" since="4" />
-		<method name="getScaledMinimumFlingVelocity()I" since="3" />
-		<method name="getScaledOverflingDistance()I" since="9" />
-		<method name="getScaledOverscrollDistance()I" since="9" />
-		<method name="getScaledPagingTouchSlop()I" since="8" />
-		<method name="getScaledScrollBarSize()I" since="3" />
-		<method name="getScaledTouchSlop()I" since="3" />
-		<method name="getScaledWindowTouchSlop()I" since="3" />
-		<method name="getScrollBarFadeDuration()I" since="5" />
-		<method name="getScrollBarSize()I" />
-		<method name="getScrollDefaultDelay()I" since="5" />
-		<method name="getScrollFriction()F" />
-		<method name="getTapTimeout()I" />
-		<method name="getTouchSlop()I" />
-		<method name="getWindowTouchSlop()I" />
-		<method name="getZoomControlsTimeout()J" />
-		<method name="hasPermanentMenuKey()Z" since="14" />
-	</class>
-	<class name="android/view/ViewDebug" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="dumpCapturedView(Ljava/lang/String;Ljava/lang/Object;)V" since="3" />
-		<method name="startHierarchyTracing(Ljava/lang/String;Landroid/view/View;)V" />
-		<method name="startRecyclerTracing(Ljava/lang/String;Landroid/view/View;)V" />
-		<method name="stopHierarchyTracing()V" />
-		<method name="stopRecyclerTracing()V" />
-		<method name="trace(Landroid/view/View;Landroid/view/ViewDebug$HierarchyTraceType;)V" />
-		<method name="trace(Landroid/view/View;Landroid/view/ViewDebug$RecyclerTraceType;[I)V" />
-		<field name="TRACE_HIERARCHY" />
-		<field name="TRACE_RECYCLER" />
-	</class>
-	<class name="android/view/ViewDebug$CapturedViewProperty" since="3">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/annotation/Annotation" />
-		<method name="retrieveReturn()Z" />
-	</class>
-	<class name="android/view/ViewDebug$ExportedProperty" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/annotation/Annotation" />
-		<method name="category()Ljava/lang/String;" since="9" />
-		<method name="deepExport()Z" />
-		<method name="flagMapping()[Landroid/view/ViewDebug$FlagToString;" since="4" />
-		<method name="indexMapping()[Landroid/view/ViewDebug$IntToString;" since="3" />
-		<method name="mapping()[Landroid/view/ViewDebug$IntToString;" />
-		<method name="prefix()Ljava/lang/String;" />
-		<method name="resolveId()Z" />
-	</class>
-	<class name="android/view/ViewDebug$FlagToString" since="4">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/annotation/Annotation" />
-		<method name="equals()I" />
-		<method name="mask()I" />
-		<method name="name()Ljava/lang/String;" />
-		<method name="outputIf()Z" />
-	</class>
-	<class name="android/view/ViewDebug$HierarchyTraceType" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/view/ViewDebug$HierarchyTraceType;" />
-		<method name="values()[Landroid/view/ViewDebug$HierarchyTraceType;" />
-		<field name="BUILD_CACHE" />
-		<field name="DRAW" />
-		<field name="INVALIDATE" />
-		<field name="INVALIDATE_CHILD" />
-		<field name="INVALIDATE_CHILD_IN_PARENT" />
-		<field name="ON_LAYOUT" />
-		<field name="ON_MEASURE" />
-		<field name="REQUEST_LAYOUT" />
-	</class>
-	<class name="android/view/ViewDebug$IntToString" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/annotation/Annotation" />
-		<method name="from()I" />
-		<method name="to()Ljava/lang/String;" />
-	</class>
-	<class name="android/view/ViewDebug$RecyclerTraceType" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/view/ViewDebug$RecyclerTraceType;" />
-		<method name="values()[Landroid/view/ViewDebug$RecyclerTraceType;" />
-		<field name="BIND_VIEW" />
-		<field name="MOVE_FROM_ACTIVE_TO_SCRAP_HEAP" />
-		<field name="MOVE_TO_ACTIVE_HEAP" />
-		<field name="MOVE_TO_SCRAP_HEAP" />
-		<field name="NEW_VIEW" />
-		<field name="RECYCLE_FROM_ACTIVE_HEAP" />
-		<field name="RECYCLE_FROM_SCRAP_HEAP" />
-	</class>
-	<class name="android/view/ViewGroup" since="1">
-		<extends name="android/view/View" />
-		<implements name="android/view/ViewManager" />
-		<implements name="android/view/ViewParent" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="addStatesFromChildren()Z" />
-		<method name="addView(Landroid/view/View;)V" />
-		<method name="addView(Landroid/view/View;I)V" />
-		<method name="addView(Landroid/view/View;II)V" />
-		<method name="addView(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V" />
-		<method name="addViewInLayout(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)Z" />
-		<method name="addViewInLayout(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;Z)Z" />
-		<method name="attachLayoutAnimationParameters(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;II)V" />
-		<method name="attachViewToParent(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V" />
-		<method name="canAnimate()Z" />
-		<method name="checkLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Z" />
-		<method name="cleanupLayoutState(Landroid/view/View;)V" />
-		<method name="clearDisappearingChildren()V" />
-		<method name="debug(I)V" />
-		<method name="detachAllViewsFromParent()V" />
-		<method name="detachViewFromParent(I)V" />
-		<method name="detachViewFromParent(Landroid/view/View;)V" />
-		<method name="detachViewsFromParent(II)V" />
-		<method name="dispatchFreezeSelfOnly(Landroid/util/SparseArray;)V" />
-		<method name="dispatchThawSelfOnly(Landroid/util/SparseArray;)V" />
-		<method name="drawChild(Landroid/graphics/Canvas;Landroid/view/View;J)Z" />
-		<method name="endViewTransition(Landroid/view/View;)V" since="11" />
-		<method name="gatherTransparentRegion(Landroid/graphics/Region;)Z" />
-		<method name="generateDefaultLayoutParams()Landroid/view/ViewGroup$LayoutParams;" />
-		<method name="generateLayoutParams(Landroid/util/AttributeSet;)Landroid/view/ViewGroup$LayoutParams;" />
-		<method name="generateLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Landroid/view/ViewGroup$LayoutParams;" />
-		<method name="getChildAt(I)Landroid/view/View;" />
-		<method name="getChildCount()I" />
-		<method name="getChildDrawingOrder(II)I" />
-		<method name="getChildMeasureSpec(III)I" />
-		<method name="getChildStaticTransformation(Landroid/view/View;Landroid/view/animation/Transformation;)Z" />
-		<method name="getClipChildren()Z" since="18" />
-		<method name="getDescendantFocusability()I" />
-		<method name="getFocusedChild()Landroid/view/View;" />
-		<method name="getLayoutAnimation()Landroid/view/animation/LayoutAnimationController;" />
-		<method name="getLayoutAnimationListener()Landroid/view/animation/Animation$AnimationListener;" />
-		<method name="getLayoutMode()I" since="18" />
-		<method name="getLayoutTransition()Landroid/animation/LayoutTransition;" since="11" />
-		<method name="getNestedScrollAxes()I" since="21" />
-		<method name="getOverlay()Landroid/view/ViewGroupOverlay;" since="18" />
-		<method name="getPersistentDrawingCache()I" />
-		<method name="indexOfChild(Landroid/view/View;)I" />
-		<method name="isAlwaysDrawnWithCacheEnabled()Z" />
-		<method name="isAnimationCacheEnabled()Z" />
-		<method name="isChildrenDrawingOrderEnabled()Z" since="7" />
-		<method name="isChildrenDrawnWithCacheEnabled()Z" />
-		<method name="isMotionEventSplittingEnabled()Z" since="11" />
-		<method name="isTransitionGroup()Z" since="21" />
-		<method name="measureChild(Landroid/view/View;II)V" />
-		<method name="measureChildWithMargins(Landroid/view/View;IIII)V" />
-		<method name="measureChildren(II)V" />
-		<method name="offsetDescendantRectToMyCoords(Landroid/view/View;Landroid/graphics/Rect;)V" />
-		<method name="offsetRectIntoDescendantCoords(Landroid/view/View;Landroid/graphics/Rect;)V" />
-		<method name="onInterceptHoverEvent(Landroid/view/MotionEvent;)Z" since="14" />
-		<method name="onInterceptTouchEvent(Landroid/view/MotionEvent;)Z" />
-		<method name="onRequestFocusInDescendants(ILandroid/graphics/Rect;)Z" />
-		<method name="onRequestSendAccessibilityEvent(Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)Z" since="14" />
-		<method name="removeAllViews()V" />
-		<method name="removeAllViewsInLayout()V" />
-		<method name="removeDetachedView(Landroid/view/View;Z)V" />
-		<method name="removeViewAt(I)V" />
-		<method name="removeViewInLayout(Landroid/view/View;)V" />
-		<method name="removeViews(II)V" />
-		<method name="removeViewsInLayout(II)V" />
-		<method name="requestChildRectangleOnScreen(Landroid/view/View;Landroid/graphics/Rect;Z)Z" />
-		<method name="resetResolvedLayoutDirection()V" since="14" />
-		<method name="resetResolvedTextDirection()V" since="14" />
-		<method name="scheduleLayoutAnimation()V" />
-		<method name="setAddStatesFromChildren(Z)V" />
-		<method name="setAlwaysDrawnWithCacheEnabled(Z)V" />
-		<method name="setAnimationCacheEnabled(Z)V" />
-		<method name="setChildrenDrawingCacheEnabled(Z)V" />
-		<method name="setChildrenDrawingOrderEnabled(Z)V" since="7" />
-		<method name="setChildrenDrawnWithCacheEnabled(Z)V" />
-		<method name="setClipChildren(Z)V" />
-		<method name="setClipToPadding(Z)V" />
-		<method name="setDescendantFocusability(I)V" />
-		<method name="setLayoutAnimation(Landroid/view/animation/LayoutAnimationController;)V" />
-		<method name="setLayoutAnimationListener(Landroid/view/animation/Animation$AnimationListener;)V" />
-		<method name="setLayoutMode(I)V" since="18" />
-		<method name="setLayoutTransition(Landroid/animation/LayoutTransition;)V" since="11" />
-		<method name="setMotionEventSplittingEnabled(Z)V" since="11" />
-		<method name="setOnHierarchyChangeListener(Landroid/view/ViewGroup$OnHierarchyChangeListener;)V" />
-		<method name="setPersistentDrawingCache(I)V" />
-		<method name="setStaticTransformationsEnabled(Z)V" since="3" />
-		<method name="setTransitionGroup(Z)V" since="21" />
-		<method name="shouldDelayChildPressedState()Z" since="14" />
-		<method name="startLayoutAnimation()V" />
-		<method name="startViewTransition(Landroid/view/View;)V" since="11" />
-		<field name="CLIP_TO_PADDING_MASK" />
-		<field name="FLAG_USE_CHILD_DRAWING_ORDER" />
-		<field name="FOCUS_AFTER_DESCENDANTS" />
-		<field name="FOCUS_BEFORE_DESCENDANTS" />
-		<field name="FOCUS_BLOCK_DESCENDANTS" />
-		<field name="LAYOUT_MODE_CLIP_BOUNDS" since="18" />
-		<field name="LAYOUT_MODE_OPTICAL_BOUNDS" since="18" />
-		<field name="PERSISTENT_ALL_CACHES" />
-		<field name="PERSISTENT_ANIMATION_CACHE" />
-		<field name="PERSISTENT_NO_CACHE" />
-		<field name="PERSISTENT_SCROLLING_CACHE" />
-	</class>
-	<class name="android/view/ViewGroup$LayoutParams" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(II)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/view/ViewGroup$LayoutParams;)V" />
-		<method name="resolveLayoutDirection(I)V" since="17" />
-		<method name="setBaseAttributes(Landroid/content/res/TypedArray;II)V" />
-		<field name="FILL_PARENT" />
-		<field name="MATCH_PARENT" since="8" />
-		<field name="WRAP_CONTENT" />
-		<field name="height" />
-		<field name="layoutAnimationParameters" />
-		<field name="width" />
-	</class>
-	<class name="android/view/ViewGroup$MarginLayoutParams" since="1">
-		<extends name="android/view/ViewGroup$LayoutParams" />
-		<method name="&lt;init>(II)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/view/ViewGroup$LayoutParams;)V" />
-		<method name="&lt;init>(Landroid/view/ViewGroup$MarginLayoutParams;)V" />
-		<method name="getLayoutDirection()I" since="17" />
-		<method name="getMarginEnd()I" since="17" />
-		<method name="getMarginStart()I" since="17" />
-		<method name="isMarginRelative()Z" since="17" />
-		<method name="setLayoutDirection(I)V" since="17" />
-		<method name="setMarginEnd(I)V" since="17" />
-		<method name="setMarginStart(I)V" since="17" />
-		<method name="setMargins(IIII)V" />
-		<field name="bottomMargin" />
-		<field name="leftMargin" />
-		<field name="rightMargin" />
-		<field name="topMargin" />
-	</class>
-	<class name="android/view/ViewGroup$OnHierarchyChangeListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onChildViewAdded(Landroid/view/View;Landroid/view/View;)V" />
-		<method name="onChildViewRemoved(Landroid/view/View;Landroid/view/View;)V" />
-	</class>
-	<class name="android/view/ViewGroupOverlay" since="18">
-		<extends name="android/view/ViewOverlay" />
-		<method name="&lt;init>()V" />
-		<method name="add(Landroid/view/View;)V" />
-		<method name="remove(Landroid/view/View;)V" />
-	</class>
-	<class name="android/view/ViewManager" since="1">
-		<extends name="java/lang/Object" />
-		<method name="addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V" />
-		<method name="removeView(Landroid/view/View;)V" />
-		<method name="updateViewLayout(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V" />
-	</class>
-	<class name="android/view/ViewOverlay" since="18">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="add(Landroid/graphics/drawable/Drawable;)V" />
-		<method name="clear()V" />
-		<method name="remove(Landroid/graphics/drawable/Drawable;)V" />
-	</class>
-	<class name="android/view/ViewParent" since="1">
-		<extends name="java/lang/Object" />
-		<method name="bringChildToFront(Landroid/view/View;)V" />
-		<method name="canResolveLayoutDirection()Z" since="19" />
-		<method name="canResolveTextAlignment()Z" since="19" />
-		<method name="canResolveTextDirection()Z" since="19" />
-		<method name="childDrawableStateChanged(Landroid/view/View;)V" />
-		<method name="childHasTransientStateChanged(Landroid/view/View;Z)V" since="19" />
-		<method name="clearChildFocus(Landroid/view/View;)V" />
-		<method name="createContextMenu(Landroid/view/ContextMenu;)V" />
-		<method name="focusSearch(Landroid/view/View;I)Landroid/view/View;" />
-		<method name="focusableViewAvailable(Landroid/view/View;)V" />
-		<method name="getChildVisibleRect(Landroid/view/View;Landroid/graphics/Rect;Landroid/graphics/Point;)Z" />
-		<method name="getLayoutDirection()I" since="19" />
-		<method name="getParent()Landroid/view/ViewParent;" />
-		<method name="getParentForAccessibility()Landroid/view/ViewParent;" since="16" />
-		<method name="getTextAlignment()I" since="19" />
-		<method name="getTextDirection()I" since="19" />
-		<method name="invalidateChild(Landroid/view/View;Landroid/graphics/Rect;)V" />
-		<method name="invalidateChildInParent([ILandroid/graphics/Rect;)Landroid/view/ViewParent;" />
-		<method name="isLayoutDirectionResolved()Z" since="19" />
-		<method name="isLayoutRequested()Z" />
-		<method name="isTextAlignmentResolved()Z" since="19" />
-		<method name="isTextDirectionResolved()Z" since="19" />
-		<method name="notifySubtreeAccessibilityStateChanged(Landroid/view/View;Landroid/view/View;I)V" since="19" />
-		<method name="onNestedFling(Landroid/view/View;FFZ)Z" since="21" />
-		<method name="onNestedPreScroll(Landroid/view/View;II[I)V" since="21" />
-		<method name="onNestedScroll(Landroid/view/View;IIII)V" since="21" />
-		<method name="onNestedScrollAccepted(Landroid/view/View;Landroid/view/View;I)V" since="21" />
-		<method name="onStartNestedScroll(Landroid/view/View;Landroid/view/View;I)Z" since="21" />
-		<method name="onStopNestedScroll(Landroid/view/View;)V" since="21" />
-		<method name="recomputeViewAttributes(Landroid/view/View;)V" />
-		<method name="requestChildFocus(Landroid/view/View;Landroid/view/View;)V" />
-		<method name="requestChildRectangleOnScreen(Landroid/view/View;Landroid/graphics/Rect;Z)Z" since="3" />
-		<method name="requestDisallowInterceptTouchEvent(Z)V" />
-		<method name="requestFitSystemWindows()V" since="16" />
-		<method name="requestLayout()V" />
-		<method name="requestSendAccessibilityEvent(Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)Z" since="14" />
-		<method name="requestTransparentRegion(Landroid/view/View;)V" />
-		<method name="showContextMenuForChild(Landroid/view/View;)Z" />
-		<method name="startActionModeForChild(Landroid/view/View;Landroid/view/ActionMode$Callback;)Landroid/view/ActionMode;" since="11" />
-	</class>
-	<class name="android/view/ViewPropertyAnimator" since="12">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="alpha(F)Landroid/view/ViewPropertyAnimator;" />
-		<method name="alphaBy(F)Landroid/view/ViewPropertyAnimator;" />
-		<method name="cancel()V" since="14" />
-		<method name="getDuration()J" since="14" />
-		<method name="getInterpolator()Landroid/animation/TimeInterpolator;" since="18" />
-		<method name="getStartDelay()J" since="14" />
-		<method name="rotation(F)Landroid/view/ViewPropertyAnimator;" />
-		<method name="rotationBy(F)Landroid/view/ViewPropertyAnimator;" />
-		<method name="rotationX(F)Landroid/view/ViewPropertyAnimator;" />
-		<method name="rotationXBy(F)Landroid/view/ViewPropertyAnimator;" />
-		<method name="rotationY(F)Landroid/view/ViewPropertyAnimator;" />
-		<method name="rotationYBy(F)Landroid/view/ViewPropertyAnimator;" />
-		<method name="scaleX(F)Landroid/view/ViewPropertyAnimator;" />
-		<method name="scaleXBy(F)Landroid/view/ViewPropertyAnimator;" />
-		<method name="scaleY(F)Landroid/view/ViewPropertyAnimator;" />
-		<method name="scaleYBy(F)Landroid/view/ViewPropertyAnimator;" />
-		<method name="setDuration(J)Landroid/view/ViewPropertyAnimator;" />
-		<method name="setInterpolator(Landroid/animation/TimeInterpolator;)Landroid/view/ViewPropertyAnimator;" />
-		<method name="setListener(Landroid/animation/Animator$AnimatorListener;)Landroid/view/ViewPropertyAnimator;" />
-		<method name="setStartDelay(J)Landroid/view/ViewPropertyAnimator;" since="14" />
-		<method name="setUpdateListener(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)Landroid/view/ViewPropertyAnimator;" since="19" />
-		<method name="start()V" since="14" />
-		<method name="translationX(F)Landroid/view/ViewPropertyAnimator;" />
-		<method name="translationXBy(F)Landroid/view/ViewPropertyAnimator;" />
-		<method name="translationY(F)Landroid/view/ViewPropertyAnimator;" />
-		<method name="translationYBy(F)Landroid/view/ViewPropertyAnimator;" />
-		<method name="translationZ(F)Landroid/view/ViewPropertyAnimator;" since="21" />
-		<method name="translationZBy(F)Landroid/view/ViewPropertyAnimator;" since="21" />
-		<method name="withEndAction(Ljava/lang/Runnable;)Landroid/view/ViewPropertyAnimator;" since="16" />
-		<method name="withLayer()Landroid/view/ViewPropertyAnimator;" since="16" />
-		<method name="withStartAction(Ljava/lang/Runnable;)Landroid/view/ViewPropertyAnimator;" since="16" />
-		<method name="x(F)Landroid/view/ViewPropertyAnimator;" />
-		<method name="xBy(F)Landroid/view/ViewPropertyAnimator;" />
-		<method name="y(F)Landroid/view/ViewPropertyAnimator;" />
-		<method name="yBy(F)Landroid/view/ViewPropertyAnimator;" />
-		<method name="z(F)Landroid/view/ViewPropertyAnimator;" since="21" />
-		<method name="zBy(F)Landroid/view/ViewPropertyAnimator;" since="21" />
-	</class>
-	<class name="android/view/ViewStub" since="1">
-		<extends name="android/view/View" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="getInflatedId()I" />
-		<method name="getLayoutInflater()Landroid/view/LayoutInflater;" since="16" />
-		<method name="getLayoutResource()I" />
-		<method name="inflate()Landroid/view/View;" />
-		<method name="setInflatedId(I)V" />
-		<method name="setLayoutInflater(Landroid/view/LayoutInflater;)V" since="16" />
-		<method name="setLayoutResource(I)V" />
-		<method name="setOnInflateListener(Landroid/view/ViewStub$OnInflateListener;)V" />
-	</class>
-	<class name="android/view/ViewStub$OnInflateListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onInflate(Landroid/view/ViewStub;Landroid/view/View;)V" />
-	</class>
-	<class name="android/view/ViewTreeObserver" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addOnDrawListener(Landroid/view/ViewTreeObserver$OnDrawListener;)V" since="16" />
-		<method name="addOnGlobalFocusChangeListener(Landroid/view/ViewTreeObserver$OnGlobalFocusChangeListener;)V" />
-		<method name="addOnGlobalLayoutListener(Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V" />
-		<method name="addOnPreDrawListener(Landroid/view/ViewTreeObserver$OnPreDrawListener;)V" />
-		<method name="addOnScrollChangedListener(Landroid/view/ViewTreeObserver$OnScrollChangedListener;)V" since="3" />
-		<method name="addOnTouchModeChangeListener(Landroid/view/ViewTreeObserver$OnTouchModeChangeListener;)V" />
-		<method name="addOnWindowAttachListener(Landroid/view/ViewTreeObserver$OnWindowAttachListener;)V" since="18" />
-		<method name="addOnWindowFocusChangeListener(Landroid/view/ViewTreeObserver$OnWindowFocusChangeListener;)V" since="18" />
-		<method name="dispatchOnDraw()V" since="16" />
-		<method name="dispatchOnGlobalLayout()V" />
-		<method name="dispatchOnPreDraw()Z" />
-		<method name="isAlive()Z" />
-		<method name="removeGlobalOnLayoutListener(Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V" />
-		<method name="removeOnDrawListener(Landroid/view/ViewTreeObserver$OnDrawListener;)V" since="16" />
-		<method name="removeOnGlobalFocusChangeListener(Landroid/view/ViewTreeObserver$OnGlobalFocusChangeListener;)V" />
-		<method name="removeOnGlobalLayoutListener(Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V" since="16" />
-		<method name="removeOnPreDrawListener(Landroid/view/ViewTreeObserver$OnPreDrawListener;)V" />
-		<method name="removeOnScrollChangedListener(Landroid/view/ViewTreeObserver$OnScrollChangedListener;)V" since="3" />
-		<method name="removeOnTouchModeChangeListener(Landroid/view/ViewTreeObserver$OnTouchModeChangeListener;)V" />
-		<method name="removeOnWindowAttachListener(Landroid/view/ViewTreeObserver$OnWindowAttachListener;)V" since="18" />
-		<method name="removeOnWindowFocusChangeListener(Landroid/view/ViewTreeObserver$OnWindowFocusChangeListener;)V" since="18" />
-	</class>
-	<class name="android/view/ViewTreeObserver$OnDrawListener" since="16">
-		<extends name="java/lang/Object" />
-		<method name="onDraw()V" />
-	</class>
-	<class name="android/view/ViewTreeObserver$OnGlobalFocusChangeListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onGlobalFocusChanged(Landroid/view/View;Landroid/view/View;)V" />
-	</class>
-	<class name="android/view/ViewTreeObserver$OnGlobalLayoutListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onGlobalLayout()V" />
-	</class>
-	<class name="android/view/ViewTreeObserver$OnPreDrawListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onPreDraw()Z" />
-	</class>
-	<class name="android/view/ViewTreeObserver$OnScrollChangedListener" since="3">
-		<extends name="java/lang/Object" />
-		<method name="onScrollChanged()V" />
-	</class>
-	<class name="android/view/ViewTreeObserver$OnTouchModeChangeListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onTouchModeChanged(Z)V" />
-	</class>
-	<class name="android/view/ViewTreeObserver$OnWindowAttachListener" since="18">
-		<extends name="java/lang/Object" />
-		<method name="onWindowAttached()V" />
-		<method name="onWindowDetached()V" />
-	</class>
-	<class name="android/view/ViewTreeObserver$OnWindowFocusChangeListener" since="18">
-		<extends name="java/lang/Object" />
-		<method name="onWindowFocusChanged(Z)V" />
-	</class>
-	<class name="android/view/Window" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="addContentView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V" />
-		<method name="addFlags(I)V" />
-		<method name="clearFlags(I)V" />
-		<method name="closeAllPanels()V" />
-		<method name="closePanel(I)V" />
-		<method name="findViewById(I)Landroid/view/View;" />
-		<method name="getAllowEnterTransitionOverlap()Z" since="21" />
-		<method name="getAllowExitTransitionOverlap()Z" since="21" />
-		<method name="getAttributes()Landroid/view/WindowManager$LayoutParams;" />
-		<method name="getCallback()Landroid/view/Window$Callback;" />
-		<method name="getContainer()Landroid/view/Window;" />
-		<method name="getContentScene()Landroid/transition/Scene;" since="21" />
-		<method name="getContext()Landroid/content/Context;" />
-		<method name="getCurrentFocus()Landroid/view/View;" />
-		<method name="getDecorView()Landroid/view/View;" />
-		<method name="getEnterTransition()Landroid/transition/Transition;" since="21" />
-		<method name="getExitTransition()Landroid/transition/Transition;" since="21" />
-		<method name="getFeatures()I" />
-		<method name="getForcedWindowFlags()I" />
-		<method name="getLayoutInflater()Landroid/view/LayoutInflater;" />
-		<method name="getLocalFeatures()I" />
-		<method name="getNavigationBarColor()I" since="21" />
-		<method name="getSharedElementEnterTransition()Landroid/transition/Transition;" since="21" />
-		<method name="getSharedElementExitTransition()Landroid/transition/Transition;" since="21" />
-		<method name="getStatusBarColor()I" since="21" />
-		<method name="getTransitionManager()Landroid/transition/TransitionManager;" since="21" />
-		<method name="getVolumeControlStream()I" />
-		<method name="getWindowManager()Landroid/view/WindowManager;" />
-		<method name="getWindowStyle()Landroid/content/res/TypedArray;" />
-		<method name="hasChildren()Z" />
-		<method name="hasFeature(I)Z" since="11" />
-		<method name="hasSoftInputMode()Z" since="3" />
-		<method name="injectInputEvent(Landroid/view/InputEvent;)V" since="19" />
-		<method name="invalidatePanelMenu(I)V" since="11" />
-		<method name="isActive()Z" />
-		<method name="isFloating()Z" />
-		<method name="isShortcutKey(ILandroid/view/KeyEvent;)Z" />
-		<method name="makeActive()V" />
-		<method name="onActive()V" />
-		<method name="onConfigurationChanged(Landroid/content/res/Configuration;)V" />
-		<method name="openPanel(ILandroid/view/KeyEvent;)V" />
-		<method name="peekDecorView()Landroid/view/View;" />
-		<method name="performContextMenuIdentifierAction(II)Z" />
-		<method name="performPanelIdentifierAction(III)Z" />
-		<method name="performPanelShortcut(IILandroid/view/KeyEvent;I)Z" />
-		<method name="requestFeature(I)Z" />
-		<method name="restoreHierarchyState(Landroid/os/Bundle;)V" />
-		<method name="saveHierarchyState()Landroid/os/Bundle;" />
-		<method name="setAllowEnterTransitionOverlap(Z)V" since="21" />
-		<method name="setAllowExitTransitionOverlap(Z)V" since="21" />
-		<method name="setAttributes(Landroid/view/WindowManager$LayoutParams;)V" />
-		<method name="setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V" />
-		<method name="setBackgroundDrawableResource(I)V" />
-		<method name="setCallback(Landroid/view/Window$Callback;)V" />
-		<method name="setChildDrawable(ILandroid/graphics/drawable/Drawable;)V" />
-		<method name="setChildInt(II)V" />
-		<method name="setContainer(Landroid/view/Window;)V" />
-		<method name="setContentView(I)V" />
-		<method name="setContentView(Landroid/view/View;)V" />
-		<method name="setContentView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V" />
-		<method name="setDefaultWindowFormat(I)V" />
-		<method name="setDimAmount(F)V" since="14" />
-		<method name="setEnterTransition(Landroid/transition/Transition;)V" since="21" />
-		<method name="setExitTransition(Landroid/transition/Transition;)V" since="21" />
-		<method name="setFeatureDrawable(ILandroid/graphics/drawable/Drawable;)V" />
-		<method name="setFeatureDrawableAlpha(II)V" />
-		<method name="setFeatureDrawableResource(II)V" />
-		<method name="setFeatureDrawableUri(ILandroid/net/Uri;)V" />
-		<method name="setFeatureInt(II)V" />
-		<method name="setFlags(II)V" />
-		<method name="setFormat(I)V" />
-		<method name="setGravity(I)V" />
-		<method name="setIcon(I)V" since="19" />
-		<method name="setLayout(II)V" />
-		<method name="setLocalFocus(ZZ)V" since="19" />
-		<method name="setLogo(I)V" since="19" />
-		<method name="setNavigationBarColor(I)V" since="21" />
-		<method name="setSharedElementEnterTransition(Landroid/transition/Transition;)V" since="21" />
-		<method name="setSharedElementExitTransition(Landroid/transition/Transition;)V" since="21" />
-		<method name="setSoftInputMode(I)V" since="3" />
-		<method name="setStatusBarColor(I)V" since="21" />
-		<method name="setTitle(Ljava/lang/CharSequence;)V" />
-		<method name="setTitleColor(I)V" />
-		<method name="setTransitionManager(Landroid/transition/TransitionManager;)V" since="21" />
-		<method name="setType(I)V" />
-		<method name="setUiOptions(I)V" since="14" />
-		<method name="setUiOptions(II)V" since="14" />
-		<method name="setVolumeControlStream(I)V" />
-		<method name="setWindowAnimations(I)V" since="3" />
-		<method name="setWindowManager(Landroid/view/WindowManager;Landroid/os/IBinder;Ljava/lang/String;)V" />
-		<method name="setWindowManager(Landroid/view/WindowManager;Landroid/os/IBinder;Ljava/lang/String;Z)V" since="11" />
-		<method name="superDispatchGenericMotionEvent(Landroid/view/MotionEvent;)Z" since="12" />
-		<method name="superDispatchKeyEvent(Landroid/view/KeyEvent;)Z" />
-		<method name="superDispatchKeyShortcutEvent(Landroid/view/KeyEvent;)Z" since="11" />
-		<method name="superDispatchTouchEvent(Landroid/view/MotionEvent;)Z" />
-		<method name="superDispatchTrackballEvent(Landroid/view/MotionEvent;)Z" />
-		<method name="takeInputQueue(Landroid/view/InputQueue$Callback;)V" since="9" />
-		<method name="takeKeyEvents(Z)V" />
-		<method name="takeSurface(Landroid/view/SurfaceHolder$Callback2;)V" since="9" />
-		<method name="togglePanel(ILandroid/view/KeyEvent;)V" />
-		<field name="DEFAULT_FEATURES" />
-		<field name="FEATURE_ACTION_BAR" since="11" />
-		<field name="FEATURE_ACTION_BAR_OVERLAY" since="11" />
-		<field name="FEATURE_ACTION_MODE_OVERLAY" since="11" />
-		<field name="FEATURE_CONTENT_TRANSITIONS" since="21" />
-		<field name="FEATURE_CONTEXT_MENU" />
-		<field name="FEATURE_CUSTOM_TITLE" />
-		<field name="FEATURE_INDETERMINATE_PROGRESS" />
-		<field name="FEATURE_LEFT_ICON" />
-		<field name="FEATURE_NO_TITLE" />
-		<field name="FEATURE_OPTIONS_PANEL" />
-		<field name="FEATURE_PROGRESS" />
-		<field name="FEATURE_RIGHT_ICON" />
-		<field name="FEATURE_SWIPE_TO_DISMISS" since="20" />
-		<field name="ID_ANDROID_CONTENT" />
-		<field name="PROGRESS_END" />
-		<field name="PROGRESS_INDETERMINATE_OFF" />
-		<field name="PROGRESS_INDETERMINATE_ON" />
-		<field name="PROGRESS_SECONDARY_END" />
-		<field name="PROGRESS_SECONDARY_START" />
-		<field name="PROGRESS_START" />
-		<field name="PROGRESS_VISIBILITY_OFF" />
-		<field name="PROGRESS_VISIBILITY_ON" />
-	</class>
-	<class name="android/view/Window$Callback" since="1">
-		<extends name="java/lang/Object" />
-		<method name="dispatchGenericMotionEvent(Landroid/view/MotionEvent;)Z" since="12" />
-		<method name="dispatchKeyEvent(Landroid/view/KeyEvent;)Z" />
-		<method name="dispatchKeyShortcutEvent(Landroid/view/KeyEvent;)Z" since="11" />
-		<method name="dispatchPopulateAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)Z" since="4" />
-		<method name="dispatchTouchEvent(Landroid/view/MotionEvent;)Z" />
-		<method name="dispatchTrackballEvent(Landroid/view/MotionEvent;)Z" />
-		<method name="onActionModeFinished(Landroid/view/ActionMode;)V" since="11" />
-		<method name="onActionModeStarted(Landroid/view/ActionMode;)V" since="11" />
-		<method name="onAttachedToWindow()V" since="5" />
-		<method name="onContentChanged()V" />
-		<method name="onCreatePanelMenu(ILandroid/view/Menu;)Z" />
-		<method name="onCreatePanelView(I)Landroid/view/View;" />
-		<method name="onDetachedFromWindow()V" since="5" />
-		<method name="onMenuItemSelected(ILandroid/view/MenuItem;)Z" />
-		<method name="onMenuOpened(ILandroid/view/Menu;)Z" />
-		<method name="onPanelClosed(ILandroid/view/Menu;)V" />
-		<method name="onPreparePanel(ILandroid/view/View;Landroid/view/Menu;)Z" />
-		<method name="onSearchRequested()Z" />
-		<method name="onWindowAttributesChanged(Landroid/view/WindowManager$LayoutParams;)V" />
-		<method name="onWindowFocusChanged(Z)V" />
-		<method name="onWindowStartingActionMode(Landroid/view/ActionMode$Callback;)Landroid/view/ActionMode;" since="11" />
-	</class>
-	<class name="android/view/WindowAnimationFrameStats" since="21">
-		<extends name="android/view/FrameStats" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/view/WindowContentFrameStats" since="21">
-		<extends name="android/view/FrameStats" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getFramePostedTimeNano(I)J" />
-		<method name="getFrameReadyTimeNano(I)J" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/view/WindowId" since="18">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="isFocused()Z" />
-		<method name="registerFocusObserver(Landroid/view/WindowId$FocusObserver;)V" />
-		<method name="unregisterFocusObserver(Landroid/view/WindowId$FocusObserver;)V" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/view/WindowId$FocusObserver" since="18">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="onFocusGained(Landroid/view/WindowId;)V" />
-		<method name="onFocusLost(Landroid/view/WindowId;)V" />
-	</class>
-	<class name="android/view/WindowInsets" since="20">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/view/WindowInsets;)V" />
-		<method name="consumeSystemWindowInsets()Landroid/view/WindowInsets;" />
-		<method name="getSystemWindowInsetBottom()I" />
-		<method name="getSystemWindowInsetLeft()I" />
-		<method name="getSystemWindowInsetRight()I" />
-		<method name="getSystemWindowInsetTop()I" />
-		<method name="hasInsets()Z" />
-		<method name="hasSystemWindowInsets()Z" />
-		<method name="isRound()Z" />
-		<method name="replaceSystemWindowInsets(IIII)Landroid/view/WindowInsets;" />
-	</class>
-	<class name="android/view/WindowManager" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/view/ViewManager" />
-		<method name="getDefaultDisplay()Landroid/view/Display;" />
-		<method name="removeViewImmediate(Landroid/view/View;)V" />
-	</class>
-	<class name="android/view/WindowManager$BadTokenException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/view/WindowManager$InvalidDisplayException" since="17">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/view/WindowManager$LayoutParams" since="1">
-		<extends name="android/view/ViewGroup$LayoutParams" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(II)V" />
-		<method name="&lt;init>(III)V" />
-		<method name="&lt;init>(IIIII)V" />
-		<method name="&lt;init>(IIIIIII)V" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" />
-		<method name="copyFrom(Landroid/view/WindowManager$LayoutParams;)I" />
-		<method name="debug(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getTitle()Ljava/lang/CharSequence;" />
-		<method name="mayUseInputMethod(I)Z" since="3" />
-		<method name="setTitle(Ljava/lang/CharSequence;)V" />
-		<field name="ALPHA_CHANGED" />
-		<field name="ANIMATION_CHANGED" />
-		<field name="BRIGHTNESS_OVERRIDE_FULL" since="8" />
-		<field name="BRIGHTNESS_OVERRIDE_NONE" since="8" />
-		<field name="BRIGHTNESS_OVERRIDE_OFF" since="8" />
-		<field name="CREATOR" />
-		<field name="DIM_AMOUNT_CHANGED" />
-		<field name="FIRST_APPLICATION_WINDOW" />
-		<field name="FIRST_SUB_WINDOW" />
-		<field name="FIRST_SYSTEM_WINDOW" />
-		<field name="FLAGS_CHANGED" />
-		<field name="FLAG_ALLOW_LOCK_WHILE_SCREEN_ON" since="8" />
-		<field name="FLAG_ALT_FOCUSABLE_IM" since="3" />
-		<field name="FLAG_BLUR_BEHIND" />
-		<field name="FLAG_DIM_BEHIND" />
-		<field name="FLAG_DISMISS_KEYGUARD" since="5" />
-		<field name="FLAG_DITHER" />
-		<field name="FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS" since="21" />
-		<field name="FLAG_FORCE_NOT_FULLSCREEN" />
-		<field name="FLAG_FULLSCREEN" />
-		<field name="FLAG_HARDWARE_ACCELERATED" since="11" />
-		<field name="FLAG_IGNORE_CHEEK_PRESSES" />
-		<field name="FLAG_KEEP_SCREEN_ON" />
-		<field name="FLAG_LAYOUT_INSET_DECOR" />
-		<field name="FLAG_LAYOUT_IN_OVERSCAN" since="18" />
-		<field name="FLAG_LAYOUT_IN_SCREEN" />
-		<field name="FLAG_LAYOUT_NO_LIMITS" />
-		<field name="FLAG_LOCAL_FOCUS_MODE" since="19" />
-		<field name="FLAG_NOT_FOCUSABLE" />
-		<field name="FLAG_NOT_TOUCHABLE" />
-		<field name="FLAG_NOT_TOUCH_MODAL" />
-		<field name="FLAG_SCALED" />
-		<field name="FLAG_SECURE" />
-		<field name="FLAG_SHOW_WALLPAPER" since="5" />
-		<field name="FLAG_SHOW_WHEN_LOCKED" since="5" />
-		<field name="FLAG_SPLIT_TOUCH" since="11" />
-		<field name="FLAG_TOUCHABLE_WHEN_WAKING" />
-		<field name="FLAG_TRANSLUCENT_NAVIGATION" since="19" />
-		<field name="FLAG_TRANSLUCENT_STATUS" since="19" />
-		<field name="FLAG_TURN_SCREEN_ON" since="5" />
-		<field name="FLAG_WATCH_OUTSIDE_TOUCH" since="3" />
-		<field name="FORMAT_CHANGED" />
-		<field name="LAST_APPLICATION_WINDOW" />
-		<field name="LAST_SUB_WINDOW" />
-		<field name="LAST_SYSTEM_WINDOW" />
-		<field name="LAYOUT_CHANGED" />
-		<field name="MEMORY_TYPE_CHANGED" />
-		<field name="MEMORY_TYPE_GPU" />
-		<field name="MEMORY_TYPE_HARDWARE" />
-		<field name="MEMORY_TYPE_NORMAL" />
-		<field name="MEMORY_TYPE_PUSH_BUFFERS" />
-		<field name="ROTATION_ANIMATION_CHANGED" since="18" />
-		<field name="ROTATION_ANIMATION_CROSSFADE" since="18" />
-		<field name="ROTATION_ANIMATION_JUMPCUT" since="18" />
-		<field name="ROTATION_ANIMATION_ROTATE" since="18" />
-		<field name="SCREEN_BRIGHTNESS_CHANGED" since="3" />
-		<field name="SCREEN_ORIENTATION_CHANGED" since="3" />
-		<field name="SOFT_INPUT_ADJUST_NOTHING" since="11" />
-		<field name="SOFT_INPUT_ADJUST_PAN" since="3" />
-		<field name="SOFT_INPUT_ADJUST_RESIZE" since="3" />
-		<field name="SOFT_INPUT_ADJUST_UNSPECIFIED" since="3" />
-		<field name="SOFT_INPUT_IS_FORWARD_NAVIGATION" since="3" />
-		<field name="SOFT_INPUT_MASK_ADJUST" since="3" />
-		<field name="SOFT_INPUT_MASK_STATE" since="3" />
-		<field name="SOFT_INPUT_MODE_CHANGED" since="3" />
-		<field name="SOFT_INPUT_STATE_ALWAYS_HIDDEN" since="3" />
-		<field name="SOFT_INPUT_STATE_ALWAYS_VISIBLE" since="3" />
-		<field name="SOFT_INPUT_STATE_HIDDEN" since="3" />
-		<field name="SOFT_INPUT_STATE_UNCHANGED" since="3" />
-		<field name="SOFT_INPUT_STATE_UNSPECIFIED" since="3" />
-		<field name="SOFT_INPUT_STATE_VISIBLE" since="3" />
-		<field name="TITLE_CHANGED" />
-		<field name="TYPE_APPLICATION" />
-		<field name="TYPE_APPLICATION_ATTACHED_DIALOG" since="3" />
-		<field name="TYPE_APPLICATION_MEDIA" />
-		<field name="TYPE_APPLICATION_PANEL" />
-		<field name="TYPE_APPLICATION_STARTING" />
-		<field name="TYPE_APPLICATION_SUB_PANEL" />
-		<field name="TYPE_BASE_APPLICATION" />
-		<field name="TYPE_CHANGED" />
-		<field name="TYPE_INPUT_METHOD" since="3" />
-		<field name="TYPE_INPUT_METHOD_DIALOG" since="3" />
-		<field name="TYPE_KEYGUARD" />
-		<field name="TYPE_KEYGUARD_DIALOG" />
-		<field name="TYPE_PHONE" />
-		<field name="TYPE_PRIORITY_PHONE" />
-		<field name="TYPE_PRIVATE_PRESENTATION" since="19" />
-		<field name="TYPE_SEARCH_BAR" />
-		<field name="TYPE_STATUS_BAR" />
-		<field name="TYPE_STATUS_BAR_PANEL" />
-		<field name="TYPE_SYSTEM_ALERT" />
-		<field name="TYPE_SYSTEM_DIALOG" />
-		<field name="TYPE_SYSTEM_ERROR" />
-		<field name="TYPE_SYSTEM_OVERLAY" />
-		<field name="TYPE_TOAST" />
-		<field name="TYPE_WALLPAPER" since="5" />
-		<field name="alpha" />
-		<field name="buttonBrightness" since="8" />
-		<field name="dimAmount" />
-		<field name="flags" />
-		<field name="format" />
-		<field name="gravity" />
-		<field name="horizontalMargin" />
-		<field name="horizontalWeight" />
-		<field name="memoryType" />
-		<field name="packageName" />
-		<field name="rotationAnimation" since="18" />
-		<field name="screenBrightness" since="3" />
-		<field name="screenOrientation" since="3" />
-		<field name="softInputMode" since="3" />
-		<field name="systemUiVisibility" since="11" />
-		<field name="token" />
-		<field name="type" />
-		<field name="verticalMargin" />
-		<field name="verticalWeight" />
-		<field name="windowAnimations" />
-		<field name="x" />
-		<field name="y" />
-	</class>
-	<class name="android/view/accessibility/AccessibilityEvent" since="4">
-		<extends name="android/view/accessibility/AccessibilityRecord" since="14" />
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="appendRecord(Landroid/view/accessibility/AccessibilityRecord;)V" since="14" />
-		<method name="eventTypeToString(I)Ljava/lang/String;" since="14" />
-		<method name="getAction()I" since="16" />
-		<method name="getAddedCount()I" />
-		<method name="getBeforeText()Ljava/lang/CharSequence;" />
-		<method name="getClassName()Ljava/lang/CharSequence;" />
-		<method name="getContentChangeTypes()I" since="19" />
-		<method name="getContentDescription()Ljava/lang/CharSequence;" />
-		<method name="getCurrentItemIndex()I" />
-		<method name="getEventTime()J" />
-		<method name="getEventType()I" />
-		<method name="getFromIndex()I" />
-		<method name="getItemCount()I" />
-		<method name="getMovementGranularity()I" since="16" />
-		<method name="getPackageName()Ljava/lang/CharSequence;" />
-		<method name="getParcelableData()Landroid/os/Parcelable;" />
-		<method name="getRecord(I)Landroid/view/accessibility/AccessibilityRecord;" since="14" />
-		<method name="getRecordCount()I" since="14" />
-		<method name="getRemovedCount()I" />
-		<method name="getText()Ljava/util/List;" />
-		<method name="initFromParcel(Landroid/os/Parcel;)V" />
-		<method name="isChecked()Z" />
-		<method name="isEnabled()Z" />
-		<method name="isFullScreen()Z" />
-		<method name="isPassword()Z" />
-		<method name="obtain()Landroid/view/accessibility/AccessibilityEvent;" />
-		<method name="obtain(I)Landroid/view/accessibility/AccessibilityEvent;" />
-		<method name="obtain(Landroid/view/accessibility/AccessibilityEvent;)Landroid/view/accessibility/AccessibilityEvent;" since="14" />
-		<method name="recycle()V" />
-		<method name="setAction(I)V" since="16" />
-		<method name="setAddedCount(I)V" />
-		<method name="setBeforeText(Ljava/lang/CharSequence;)V" />
-		<method name="setChecked(Z)V" />
-		<method name="setClassName(Ljava/lang/CharSequence;)V" />
-		<method name="setContentChangeTypes(I)V" since="19" />
-		<method name="setContentDescription(Ljava/lang/CharSequence;)V" />
-		<method name="setCurrentItemIndex(I)V" />
-		<method name="setEnabled(Z)V" />
-		<method name="setEventTime(J)V" />
-		<method name="setEventType(I)V" />
-		<method name="setFromIndex(I)V" />
-		<method name="setFullScreen(Z)V" />
-		<method name="setItemCount(I)V" />
-		<method name="setMovementGranularity(I)V" since="16" />
-		<method name="setPackageName(Ljava/lang/CharSequence;)V" />
-		<method name="setParcelableData(Landroid/os/Parcelable;)V" />
-		<method name="setPassword(Z)V" />
-		<method name="setRemovedCount(I)V" />
-		<field name="CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION" since="19" />
-		<field name="CONTENT_CHANGE_TYPE_SUBTREE" since="19" />
-		<field name="CONTENT_CHANGE_TYPE_TEXT" since="19" />
-		<field name="CONTENT_CHANGE_TYPE_UNDEFINED" since="19" />
-		<field name="CREATOR" />
-		<field name="INVALID_POSITION" />
-		<field name="MAX_TEXT_LENGTH" />
-		<field name="TYPES_ALL_MASK" />
-		<field name="TYPE_ANNOUNCEMENT" since="16" />
-		<field name="TYPE_GESTURE_DETECTION_END" since="17" />
-		<field name="TYPE_GESTURE_DETECTION_START" since="17" />
-		<field name="TYPE_NOTIFICATION_STATE_CHANGED" />
-		<field name="TYPE_TOUCH_EXPLORATION_GESTURE_END" since="14" />
-		<field name="TYPE_TOUCH_EXPLORATION_GESTURE_START" since="14" />
-		<field name="TYPE_TOUCH_INTERACTION_END" since="17" />
-		<field name="TYPE_TOUCH_INTERACTION_START" since="17" />
-		<field name="TYPE_VIEW_ACCESSIBILITY_FOCUSED" since="16" />
-		<field name="TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED" since="16" />
-		<field name="TYPE_VIEW_CLICKED" />
-		<field name="TYPE_VIEW_FOCUSED" />
-		<field name="TYPE_VIEW_HOVER_ENTER" since="14" />
-		<field name="TYPE_VIEW_HOVER_EXIT" since="14" />
-		<field name="TYPE_VIEW_LONG_CLICKED" />
-		<field name="TYPE_VIEW_SCROLLED" since="14" />
-		<field name="TYPE_VIEW_SELECTED" />
-		<field name="TYPE_VIEW_TEXT_CHANGED" />
-		<field name="TYPE_VIEW_TEXT_SELECTION_CHANGED" since="14" />
-		<field name="TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY" since="16" />
-		<field name="TYPE_WINDOWS_CHANGED" since="21" />
-		<field name="TYPE_WINDOW_CONTENT_CHANGED" since="14" />
-		<field name="TYPE_WINDOW_STATE_CHANGED" />
-	</class>
-	<class name="android/view/accessibility/AccessibilityEventSource" since="4">
-		<extends name="java/lang/Object" />
-		<method name="sendAccessibilityEvent(I)V" />
-		<method name="sendAccessibilityEventUnchecked(Landroid/view/accessibility/AccessibilityEvent;)V" />
-	</class>
-	<class name="android/view/accessibility/AccessibilityManager" since="4">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addAccessibilityStateChangeListener(Landroid/view/accessibility/AccessibilityManager$AccessibilityStateChangeListener;)Z" since="14" />
-		<method name="addTouchExplorationStateChangeListener(Landroid/view/accessibility/AccessibilityManager$TouchExplorationStateChangeListener;)Z" since="19" />
-		<method name="getAccessibilityServiceList()Ljava/util/List;" />
-		<method name="getEnabledAccessibilityServiceList(I)Ljava/util/List;" since="14" />
-		<method name="getInstalledAccessibilityServiceList()Ljava/util/List;" since="14" />
-		<method name="interrupt()V" />
-		<method name="isEnabled()Z" />
-		<method name="isTouchExplorationEnabled()Z" since="14" />
-		<method name="removeAccessibilityStateChangeListener(Landroid/view/accessibility/AccessibilityManager$AccessibilityStateChangeListener;)Z" since="14" />
-		<method name="removeTouchExplorationStateChangeListener(Landroid/view/accessibility/AccessibilityManager$TouchExplorationStateChangeListener;)Z" since="19" />
-		<method name="sendAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V" />
-	</class>
-	<class name="android/view/accessibility/AccessibilityManager$AccessibilityStateChangeListener" since="14">
-		<extends name="java/lang/Object" />
-		<method name="onAccessibilityStateChanged(Z)V" />
-	</class>
-	<class name="android/view/accessibility/AccessibilityManager$TouchExplorationStateChangeListener" since="19">
-		<extends name="java/lang/Object" />
-		<method name="onTouchExplorationStateChanged(Z)V" />
-	</class>
-	<class name="android/view/accessibility/AccessibilityNodeInfo" since="14">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="addAction(I)V" />
-		<method name="addAction(Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;)V" since="21" />
-		<method name="addChild(Landroid/view/View;)V" />
-		<method name="addChild(Landroid/view/View;I)V" since="16" />
-		<method name="canOpenPopup()Z" since="19" />
-		<method name="findAccessibilityNodeInfosByText(Ljava/lang/String;)Ljava/util/List;" />
-		<method name="findAccessibilityNodeInfosByViewId(Ljava/lang/String;)Ljava/util/List;" since="18" />
-		<method name="findFocus(I)Landroid/view/accessibility/AccessibilityNodeInfo;" since="16" />
-		<method name="focusSearch(I)Landroid/view/accessibility/AccessibilityNodeInfo;" since="16" />
-		<method name="getActionList()Ljava/util/List;" since="21" />
-		<method name="getActions()I" />
-		<method name="getBoundsInParent(Landroid/graphics/Rect;)V" />
-		<method name="getBoundsInScreen(Landroid/graphics/Rect;)V" />
-		<method name="getChild(I)Landroid/view/accessibility/AccessibilityNodeInfo;" />
-		<method name="getChildCount()I" />
-		<method name="getClassName()Ljava/lang/CharSequence;" />
-		<method name="getCollectionInfo()Landroid/view/accessibility/AccessibilityNodeInfo$CollectionInfo;" since="19" />
-		<method name="getCollectionItemInfo()Landroid/view/accessibility/AccessibilityNodeInfo$CollectionItemInfo;" since="19" />
-		<method name="getContentDescription()Ljava/lang/CharSequence;" />
-		<method name="getExtras()Landroid/os/Bundle;" since="19" />
-		<method name="getInputType()I" since="19" />
-		<method name="getLabelFor()Landroid/view/accessibility/AccessibilityNodeInfo;" since="17" />
-		<method name="getLabeledBy()Landroid/view/accessibility/AccessibilityNodeInfo;" since="17" />
-		<method name="getLiveRegion()I" since="19" />
-		<method name="getMovementGranularities()I" since="16" />
-		<method name="getPackageName()Ljava/lang/CharSequence;" />
-		<method name="getParent()Landroid/view/accessibility/AccessibilityNodeInfo;" />
-		<method name="getRangeInfo()Landroid/view/accessibility/AccessibilityNodeInfo$RangeInfo;" since="19" />
-		<method name="getText()Ljava/lang/CharSequence;" />
-		<method name="getTextSelectionEnd()I" since="18" />
-		<method name="getTextSelectionStart()I" since="18" />
-		<method name="getViewIdResourceName()Ljava/lang/String;" since="18" />
-		<method name="getWindow()Landroid/view/accessibility/AccessibilityWindowInfo;" since="21" />
-		<method name="getWindowId()I" />
-		<method name="isAccessibilityFocused()Z" since="16" />
-		<method name="isCheckable()Z" />
-		<method name="isChecked()Z" />
-		<method name="isClickable()Z" />
-		<method name="isContentInvalid()Z" since="19" />
-		<method name="isDismissable()Z" since="19" />
-		<method name="isEditable()Z" since="18" />
-		<method name="isEnabled()Z" />
-		<method name="isFocusable()Z" />
-		<method name="isFocused()Z" />
-		<method name="isLongClickable()Z" />
-		<method name="isMultiLine()Z" since="19" />
-		<method name="isPassword()Z" />
-		<method name="isScrollable()Z" />
-		<method name="isSelected()Z" />
-		<method name="isVisibleToUser()Z" since="16" />
-		<method name="obtain()Landroid/view/accessibility/AccessibilityNodeInfo;" />
-		<method name="obtain(Landroid/view/View;)Landroid/view/accessibility/AccessibilityNodeInfo;" />
-		<method name="obtain(Landroid/view/View;I)Landroid/view/accessibility/AccessibilityNodeInfo;" since="16" />
-		<method name="obtain(Landroid/view/accessibility/AccessibilityNodeInfo;)Landroid/view/accessibility/AccessibilityNodeInfo;" />
-		<method name="performAction(I)Z" />
-		<method name="performAction(ILandroid/os/Bundle;)Z" since="16" />
-		<method name="recycle()V" />
-		<method name="refresh()Z" since="18" />
-		<method name="removeAction(I)V" since="21" />
-		<method name="removeAction(Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;)Z" since="21" />
-		<method name="removeChild(Landroid/view/View;)Z" since="21" />
-		<method name="removeChild(Landroid/view/View;I)Z" since="21" />
-		<method name="setAccessibilityFocused(Z)V" since="16" />
-		<method name="setBoundsInParent(Landroid/graphics/Rect;)V" />
-		<method name="setBoundsInScreen(Landroid/graphics/Rect;)V" />
-		<method name="setCanOpenPopup(Z)V" since="19" />
-		<method name="setCheckable(Z)V" />
-		<method name="setChecked(Z)V" />
-		<method name="setClassName(Ljava/lang/CharSequence;)V" />
-		<method name="setClickable(Z)V" />
-		<method name="setCollectionInfo(Landroid/view/accessibility/AccessibilityNodeInfo$CollectionInfo;)V" since="19" />
-		<method name="setCollectionItemInfo(Landroid/view/accessibility/AccessibilityNodeInfo$CollectionItemInfo;)V" since="19" />
-		<method name="setContentDescription(Ljava/lang/CharSequence;)V" />
-		<method name="setContentInvalid(Z)V" since="19" />
-		<method name="setDismissable(Z)V" since="19" />
-		<method name="setEditable(Z)V" since="18" />
-		<method name="setEnabled(Z)V" />
-		<method name="setFocusable(Z)V" />
-		<method name="setFocused(Z)V" />
-		<method name="setInputType(I)V" since="19" />
-		<method name="setLabelFor(Landroid/view/View;)V" since="17" />
-		<method name="setLabelFor(Landroid/view/View;I)V" since="17" />
-		<method name="setLabeledBy(Landroid/view/View;)V" since="17" />
-		<method name="setLabeledBy(Landroid/view/View;I)V" since="17" />
-		<method name="setLiveRegion(I)V" since="19" />
-		<method name="setLongClickable(Z)V" />
-		<method name="setMovementGranularities(I)V" since="16" />
-		<method name="setMultiLine(Z)V" since="19" />
-		<method name="setPackageName(Ljava/lang/CharSequence;)V" />
-		<method name="setParent(Landroid/view/View;)V" />
-		<method name="setParent(Landroid/view/View;I)V" since="16" />
-		<method name="setPassword(Z)V" />
-		<method name="setRangeInfo(Landroid/view/accessibility/AccessibilityNodeInfo$RangeInfo;)V" since="19" />
-		<method name="setScrollable(Z)V" />
-		<method name="setSelected(Z)V" />
-		<method name="setSource(Landroid/view/View;)V" />
-		<method name="setSource(Landroid/view/View;I)V" since="16" />
-		<method name="setText(Ljava/lang/CharSequence;)V" />
-		<method name="setTextSelection(II)V" since="18" />
-		<method name="setViewIdResourceName(Ljava/lang/String;)V" since="18" />
-		<method name="setVisibleToUser(Z)V" since="16" />
-		<field name="ACTION_ACCESSIBILITY_FOCUS" since="16" />
-		<field name="ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN" since="18" />
-		<field name="ACTION_ARGUMENT_HTML_ELEMENT_STRING" since="16" />
-		<field name="ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT" since="16" />
-		<field name="ACTION_ARGUMENT_SELECTION_END_INT" since="18" />
-		<field name="ACTION_ARGUMENT_SELECTION_START_INT" since="18" />
-		<field name="ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE" since="21" />
-		<field name="ACTION_CLEAR_ACCESSIBILITY_FOCUS" since="16" />
-		<field name="ACTION_CLEAR_FOCUS" />
-		<field name="ACTION_CLEAR_SELECTION" />
-		<field name="ACTION_CLICK" since="16" />
-		<field name="ACTION_COLLAPSE" since="19" />
-		<field name="ACTION_COPY" since="18" />
-		<field name="ACTION_CUT" since="18" />
-		<field name="ACTION_DISMISS" since="19" />
-		<field name="ACTION_EXPAND" since="19" />
-		<field name="ACTION_FOCUS" />
-		<field name="ACTION_LONG_CLICK" since="16" />
-		<field name="ACTION_NEXT_AT_MOVEMENT_GRANULARITY" since="16" />
-		<field name="ACTION_NEXT_HTML_ELEMENT" since="16" />
-		<field name="ACTION_PASTE" since="18" />
-		<field name="ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY" since="16" />
-		<field name="ACTION_PREVIOUS_HTML_ELEMENT" since="16" />
-		<field name="ACTION_SCROLL_BACKWARD" since="16" />
-		<field name="ACTION_SCROLL_FORWARD" since="16" />
-		<field name="ACTION_SELECT" />
-		<field name="ACTION_SET_SELECTION" since="18" />
-		<field name="ACTION_SET_TEXT" since="21" />
-		<field name="CREATOR" />
-		<field name="FOCUS_ACCESSIBILITY" since="16" />
-		<field name="FOCUS_INPUT" since="16" />
-		<field name="MOVEMENT_GRANULARITY_CHARACTER" since="16" />
-		<field name="MOVEMENT_GRANULARITY_LINE" since="16" />
-		<field name="MOVEMENT_GRANULARITY_PAGE" since="16" />
-		<field name="MOVEMENT_GRANULARITY_PARAGRAPH" since="16" />
-		<field name="MOVEMENT_GRANULARITY_WORD" since="16" />
-	</class>
-	<class name="android/view/accessibility/AccessibilityNodeInfo$AccessibilityAction" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(ILjava/lang/CharSequence;)V" />
-		<method name="getId()I" />
-		<method name="getLabel()Ljava/lang/CharSequence;" />
-		<field name="ACTION_ACCESSIBILITY_FOCUS" />
-		<field name="ACTION_CLEAR_ACCESSIBILITY_FOCUS" />
-		<field name="ACTION_CLEAR_FOCUS" />
-		<field name="ACTION_CLEAR_SELECTION" />
-		<field name="ACTION_CLICK" />
-		<field name="ACTION_COLLAPSE" />
-		<field name="ACTION_COPY" />
-		<field name="ACTION_CUT" />
-		<field name="ACTION_DISMISS" />
-		<field name="ACTION_EXPAND" />
-		<field name="ACTION_FOCUS" />
-		<field name="ACTION_LONG_CLICK" />
-		<field name="ACTION_NEXT_AT_MOVEMENT_GRANULARITY" />
-		<field name="ACTION_NEXT_HTML_ELEMENT" />
-		<field name="ACTION_PASTE" />
-		<field name="ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY" />
-		<field name="ACTION_PREVIOUS_HTML_ELEMENT" />
-		<field name="ACTION_SCROLL_BACKWARD" />
-		<field name="ACTION_SCROLL_FORWARD" />
-		<field name="ACTION_SELECT" />
-		<field name="ACTION_SET_SELECTION" />
-		<field name="ACTION_SET_TEXT" />
-	</class>
-	<class name="android/view/accessibility/AccessibilityNodeInfo$CollectionInfo" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getColumnCount()I" />
-		<method name="getRowCount()I" />
-		<method name="getSelectionMode()I" since="21" />
-		<method name="isHierarchical()Z" />
-		<method name="obtain(IIZ)Landroid/view/accessibility/AccessibilityNodeInfo$CollectionInfo;" />
-		<method name="obtain(IIZI)Landroid/view/accessibility/AccessibilityNodeInfo$CollectionInfo;" since="21" />
-		<field name="SELECTION_MODE_MULTIPLE" since="21" />
-		<field name="SELECTION_MODE_NONE" since="21" />
-		<field name="SELECTION_MODE_SINGLE" since="21" />
-	</class>
-	<class name="android/view/accessibility/AccessibilityNodeInfo$CollectionItemInfo" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getColumnIndex()I" />
-		<method name="getColumnSpan()I" />
-		<method name="getRowIndex()I" />
-		<method name="getRowSpan()I" />
-		<method name="isHeading()Z" />
-		<method name="isSelected()Z" since="21" />
-		<method name="obtain(IIIIZ)Landroid/view/accessibility/AccessibilityNodeInfo$CollectionItemInfo;" />
-		<method name="obtain(IIIIZZ)Landroid/view/accessibility/AccessibilityNodeInfo$CollectionItemInfo;" since="21" />
-	</class>
-	<class name="android/view/accessibility/AccessibilityNodeInfo$RangeInfo" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getCurrent()F" />
-		<method name="getMax()F" />
-		<method name="getMin()F" />
-		<method name="getType()I" />
-		<method name="obtain(IFFF)Landroid/view/accessibility/AccessibilityNodeInfo$RangeInfo;" />
-		<field name="RANGE_TYPE_FLOAT" />
-		<field name="RANGE_TYPE_INT" />
-		<field name="RANGE_TYPE_PERCENT" />
-	</class>
-	<class name="android/view/accessibility/AccessibilityNodeProvider" since="16">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="createAccessibilityNodeInfo(I)Landroid/view/accessibility/AccessibilityNodeInfo;" />
-		<method name="findAccessibilityNodeInfosByText(Ljava/lang/String;I)Ljava/util/List;" />
-		<method name="findFocus(I)Landroid/view/accessibility/AccessibilityNodeInfo;" since="19" />
-		<method name="performAction(IILandroid/os/Bundle;)Z" />
-		<field name="HOST_VIEW_ID" since="21" />
-	</class>
-	<class name="android/view/accessibility/AccessibilityRecord" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getAddedCount()I" />
-		<method name="getBeforeText()Ljava/lang/CharSequence;" />
-		<method name="getClassName()Ljava/lang/CharSequence;" />
-		<method name="getContentDescription()Ljava/lang/CharSequence;" />
-		<method name="getCurrentItemIndex()I" />
-		<method name="getFromIndex()I" />
-		<method name="getItemCount()I" />
-		<method name="getMaxScrollX()I" since="15" />
-		<method name="getMaxScrollY()I" since="15" />
-		<method name="getParcelableData()Landroid/os/Parcelable;" />
-		<method name="getRemovedCount()I" />
-		<method name="getScrollX()I" />
-		<method name="getScrollY()I" />
-		<method name="getSource()Landroid/view/accessibility/AccessibilityNodeInfo;" />
-		<method name="getText()Ljava/util/List;" />
-		<method name="getToIndex()I" />
-		<method name="getWindowId()I" />
-		<method name="isChecked()Z" />
-		<method name="isEnabled()Z" />
-		<method name="isFullScreen()Z" />
-		<method name="isPassword()Z" />
-		<method name="isScrollable()Z" />
-		<method name="obtain()Landroid/view/accessibility/AccessibilityRecord;" />
-		<method name="obtain(Landroid/view/accessibility/AccessibilityRecord;)Landroid/view/accessibility/AccessibilityRecord;" />
-		<method name="recycle()V" />
-		<method name="setAddedCount(I)V" />
-		<method name="setBeforeText(Ljava/lang/CharSequence;)V" />
-		<method name="setChecked(Z)V" />
-		<method name="setClassName(Ljava/lang/CharSequence;)V" />
-		<method name="setContentDescription(Ljava/lang/CharSequence;)V" />
-		<method name="setCurrentItemIndex(I)V" />
-		<method name="setEnabled(Z)V" />
-		<method name="setFromIndex(I)V" />
-		<method name="setFullScreen(Z)V" />
-		<method name="setItemCount(I)V" />
-		<method name="setMaxScrollX(I)V" since="15" />
-		<method name="setMaxScrollY(I)V" since="15" />
-		<method name="setParcelableData(Landroid/os/Parcelable;)V" />
-		<method name="setPassword(Z)V" />
-		<method name="setRemovedCount(I)V" />
-		<method name="setScrollX(I)V" />
-		<method name="setScrollY(I)V" />
-		<method name="setScrollable(Z)V" />
-		<method name="setSource(Landroid/view/View;)V" />
-		<method name="setSource(Landroid/view/View;I)V" since="16" />
-		<method name="setToIndex(I)V" />
-	</class>
-	<class name="android/view/accessibility/AccessibilityWindowInfo" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getBoundsInScreen(Landroid/graphics/Rect;)V" />
-		<method name="getChild(I)Landroid/view/accessibility/AccessibilityWindowInfo;" />
-		<method name="getChildCount()I" />
-		<method name="getId()I" />
-		<method name="getLayer()I" />
-		<method name="getParent()Landroid/view/accessibility/AccessibilityWindowInfo;" />
-		<method name="getRoot()Landroid/view/accessibility/AccessibilityNodeInfo;" />
-		<method name="getType()I" />
-		<method name="isActive()Z" />
-		<method name="isFocused()Z" />
-		<method name="obtain()Landroid/view/accessibility/AccessibilityWindowInfo;" />
-		<method name="obtain(Landroid/view/accessibility/AccessibilityWindowInfo;)Landroid/view/accessibility/AccessibilityWindowInfo;" />
-		<method name="recycle()V" />
-		<field name="CREATOR" />
-		<field name="TYPE_APPLICATION" />
-		<field name="TYPE_INPUT_METHOD" />
-		<field name="TYPE_SYSTEM" />
-	</class>
-	<class name="android/view/accessibility/CaptioningManager" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addCaptioningChangeListener(Landroid/view/accessibility/CaptioningManager$CaptioningChangeListener;)V" />
-		<method name="getFontScale()F" />
-		<method name="getLocale()Ljava/util/Locale;" />
-		<method name="getUserStyle()Landroid/view/accessibility/CaptioningManager$CaptionStyle;" />
-		<method name="isEnabled()Z" />
-		<method name="removeCaptioningChangeListener(Landroid/view/accessibility/CaptioningManager$CaptioningChangeListener;)V" />
-	</class>
-	<class name="android/view/accessibility/CaptioningManager$CaptionStyle" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getTypeface()Landroid/graphics/Typeface;" />
-		<method name="hasBackgroundColor()Z" since="21" />
-		<method name="hasEdgeColor()Z" since="21" />
-		<method name="hasEdgeType()Z" since="21" />
-		<method name="hasForegroundColor()Z" since="21" />
-		<method name="hasWindowColor()Z" since="21" />
-		<field name="EDGE_TYPE_DEPRESSED" since="21" />
-		<field name="EDGE_TYPE_DROP_SHADOW" />
-		<field name="EDGE_TYPE_NONE" />
-		<field name="EDGE_TYPE_OUTLINE" />
-		<field name="EDGE_TYPE_RAISED" since="21" />
-		<field name="EDGE_TYPE_UNSPECIFIED" since="21" />
-		<field name="backgroundColor" />
-		<field name="edgeColor" />
-		<field name="edgeType" />
-		<field name="foregroundColor" />
-		<field name="windowColor" since="21" />
-	</class>
-	<class name="android/view/accessibility/CaptioningManager$CaptioningChangeListener" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="onEnabledChanged(Z)V" />
-		<method name="onFontScaleChanged(F)V" />
-		<method name="onLocaleChanged(Ljava/util/Locale;)V" />
-		<method name="onUserStyleChanged(Landroid/view/accessibility/CaptioningManager$CaptionStyle;)V" />
-	</class>
-	<class name="android/view/animation/AccelerateDecelerateInterpolator" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/view/animation/Interpolator" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-	</class>
-	<class name="android/view/animation/AccelerateInterpolator" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/view/animation/Interpolator" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(F)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-	</class>
-	<class name="android/view/animation/AlphaAnimation" since="1">
-		<extends name="android/view/animation/Animation" />
-		<method name="&lt;init>(FF)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-	</class>
-	<class name="android/view/animation/Animation" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" since="3" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="applyTransformation(FLandroid/view/animation/Transformation;)V" />
-		<method name="cancel()V" since="8" />
-		<method name="clone()Landroid/view/animation/Animation;" since="3" />
-		<method name="computeDurationHint()J" since="3" />
-		<method name="ensureInterpolator()V" />
-		<method name="getBackgroundColor()I" since="12" />
-		<method name="getDetachWallpaper()Z" since="5" />
-		<method name="getDuration()J" />
-		<method name="getFillAfter()Z" />
-		<method name="getFillBefore()Z" />
-		<method name="getInterpolator()Landroid/view/animation/Interpolator;" />
-		<method name="getRepeatCount()I" />
-		<method name="getRepeatMode()I" />
-		<method name="getScaleFactor()F" since="11" />
-		<method name="getStartOffset()J" />
-		<method name="getStartTime()J" />
-		<method name="getTransformation(JLandroid/view/animation/Transformation;)Z" />
-		<method name="getTransformation(JLandroid/view/animation/Transformation;F)Z" since="11" />
-		<method name="getZAdjustment()I" />
-		<method name="hasEnded()Z" />
-		<method name="hasStarted()Z" />
-		<method name="initialize(IIII)V" />
-		<method name="isFillEnabled()Z" since="3" />
-		<method name="isInitialized()Z" />
-		<method name="reset()V" />
-		<method name="resolveSize(IFII)F" />
-		<method name="restrictDuration(J)V" />
-		<method name="scaleCurrentDuration(F)V" />
-		<method name="setAnimationListener(Landroid/view/animation/Animation$AnimationListener;)V" />
-		<method name="setBackgroundColor(I)V" since="12" />
-		<method name="setDetachWallpaper(Z)V" since="5" />
-		<method name="setDuration(J)V" />
-		<method name="setFillAfter(Z)V" />
-		<method name="setFillBefore(Z)V" />
-		<method name="setFillEnabled(Z)V" since="3" />
-		<method name="setInterpolator(Landroid/content/Context;I)V" />
-		<method name="setInterpolator(Landroid/view/animation/Interpolator;)V" />
-		<method name="setRepeatCount(I)V" />
-		<method name="setRepeatMode(I)V" />
-		<method name="setStartOffset(J)V" />
-		<method name="setStartTime(J)V" />
-		<method name="setZAdjustment(I)V" />
-		<method name="start()V" />
-		<method name="startNow()V" />
-		<method name="willChangeBounds()Z" />
-		<method name="willChangeTransformationMatrix()Z" />
-		<field name="ABSOLUTE" />
-		<field name="INFINITE" />
-		<field name="RELATIVE_TO_PARENT" />
-		<field name="RELATIVE_TO_SELF" />
-		<field name="RESTART" />
-		<field name="REVERSE" />
-		<field name="START_ON_FIRST_FRAME" />
-		<field name="ZORDER_BOTTOM" />
-		<field name="ZORDER_NORMAL" />
-		<field name="ZORDER_TOP" />
-	</class>
-	<class name="android/view/animation/Animation$AnimationListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onAnimationEnd(Landroid/view/animation/Animation;)V" />
-		<method name="onAnimationRepeat(Landroid/view/animation/Animation;)V" />
-		<method name="onAnimationStart(Landroid/view/animation/Animation;)V" />
-	</class>
-	<class name="android/view/animation/Animation$Description" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="type" />
-		<field name="value" />
-	</class>
-	<class name="android/view/animation/AnimationSet" since="1">
-		<extends name="android/view/animation/Animation" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Z)V" />
-		<method name="addAnimation(Landroid/view/animation/Animation;)V" />
-		<method name="clone()Landroid/view/animation/AnimationSet;" since="3" />
-		<method name="getAnimations()Ljava/util/List;" />
-	</class>
-	<class name="android/view/animation/AnimationUtils" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="currentAnimationTimeMillis()J" />
-		<method name="loadAnimation(Landroid/content/Context;I)Landroid/view/animation/Animation;" />
-		<method name="loadInterpolator(Landroid/content/Context;I)Landroid/view/animation/Interpolator;" />
-		<method name="loadLayoutAnimation(Landroid/content/Context;I)Landroid/view/animation/LayoutAnimationController;" />
-		<method name="makeInAnimation(Landroid/content/Context;Z)Landroid/view/animation/Animation;" />
-		<method name="makeInChildBottomAnimation(Landroid/content/Context;)Landroid/view/animation/Animation;" />
-		<method name="makeOutAnimation(Landroid/content/Context;Z)Landroid/view/animation/Animation;" />
-	</class>
-	<class name="android/view/animation/AnticipateInterpolator" since="4">
-		<extends name="java/lang/Object" />
-		<implements name="android/view/animation/Interpolator" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(F)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-	</class>
-	<class name="android/view/animation/AnticipateOvershootInterpolator" since="4">
-		<extends name="java/lang/Object" />
-		<implements name="android/view/animation/Interpolator" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(F)V" />
-		<method name="&lt;init>(FF)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-	</class>
-	<class name="android/view/animation/BounceInterpolator" since="4">
-		<extends name="java/lang/Object" />
-		<implements name="android/view/animation/Interpolator" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-	</class>
-	<class name="android/view/animation/CycleInterpolator" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/view/animation/Interpolator" />
-		<method name="&lt;init>(F)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-	</class>
-	<class name="android/view/animation/DecelerateInterpolator" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/view/animation/Interpolator" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(F)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-	</class>
-	<class name="android/view/animation/GridLayoutAnimationController" since="1">
-		<extends name="android/view/animation/LayoutAnimationController" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/view/animation/Animation;)V" />
-		<method name="&lt;init>(Landroid/view/animation/Animation;FF)V" />
-		<method name="getColumnDelay()F" />
-		<method name="getDirection()I" />
-		<method name="getDirectionPriority()I" />
-		<method name="getRowDelay()F" />
-		<method name="setColumnDelay(F)V" />
-		<method name="setDirection(I)V" />
-		<method name="setDirectionPriority(I)V" />
-		<method name="setRowDelay(F)V" />
-		<field name="DIRECTION_BOTTOM_TO_TOP" />
-		<field name="DIRECTION_HORIZONTAL_MASK" />
-		<field name="DIRECTION_LEFT_TO_RIGHT" />
-		<field name="DIRECTION_RIGHT_TO_LEFT" />
-		<field name="DIRECTION_TOP_TO_BOTTOM" />
-		<field name="DIRECTION_VERTICAL_MASK" />
-		<field name="PRIORITY_COLUMN" />
-		<field name="PRIORITY_NONE" />
-		<field name="PRIORITY_ROW" />
-	</class>
-	<class name="android/view/animation/GridLayoutAnimationController$AnimationParameters" since="1">
-		<extends name="android/view/animation/LayoutAnimationController$AnimationParameters" />
-		<method name="&lt;init>()V" />
-		<field name="column" />
-		<field name="columnsCount" />
-		<field name="row" />
-		<field name="rowsCount" />
-	</class>
-	<class name="android/view/animation/Interpolator" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/animation/TimeInterpolator" since="11" />
-		<method name="getInterpolation(F)F" />
-	</class>
-	<class name="android/view/animation/LayoutAnimationController" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/view/animation/Animation;)V" />
-		<method name="&lt;init>(Landroid/view/animation/Animation;F)V" />
-		<method name="getAnimation()Landroid/view/animation/Animation;" />
-		<method name="getAnimationForView(Landroid/view/View;)Landroid/view/animation/Animation;" />
-		<method name="getDelay()F" />
-		<method name="getDelayForView(Landroid/view/View;)J" />
-		<method name="getInterpolator()Landroid/view/animation/Interpolator;" />
-		<method name="getOrder()I" />
-		<method name="getTransformedIndex(Landroid/view/animation/LayoutAnimationController$AnimationParameters;)I" />
-		<method name="isDone()Z" />
-		<method name="setAnimation(Landroid/content/Context;I)V" />
-		<method name="setAnimation(Landroid/view/animation/Animation;)V" />
-		<method name="setDelay(F)V" />
-		<method name="setInterpolator(Landroid/content/Context;I)V" />
-		<method name="setInterpolator(Landroid/view/animation/Interpolator;)V" />
-		<method name="setOrder(I)V" />
-		<method name="start()V" />
-		<method name="willOverlap()Z" />
-		<field name="ORDER_NORMAL" />
-		<field name="ORDER_RANDOM" />
-		<field name="ORDER_REVERSE" />
-		<field name="mAnimation" />
-		<field name="mInterpolator" />
-		<field name="mRandomizer" />
-	</class>
-	<class name="android/view/animation/LayoutAnimationController$AnimationParameters" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="count" />
-		<field name="index" />
-	</class>
-	<class name="android/view/animation/LinearInterpolator" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/view/animation/Interpolator" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-	</class>
-	<class name="android/view/animation/OvershootInterpolator" since="4">
-		<extends name="java/lang/Object" />
-		<implements name="android/view/animation/Interpolator" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(F)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-	</class>
-	<class name="android/view/animation/PathInterpolator" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="android/view/animation/Interpolator" />
-		<method name="&lt;init>(FF)V" />
-		<method name="&lt;init>(FFFF)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/graphics/Path;)V" />
-	</class>
-	<class name="android/view/animation/RotateAnimation" since="1">
-		<extends name="android/view/animation/Animation" />
-		<method name="&lt;init>(FF)V" />
-		<method name="&lt;init>(FFFF)V" />
-		<method name="&lt;init>(FFIFIF)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-	</class>
-	<class name="android/view/animation/ScaleAnimation" since="1">
-		<extends name="android/view/animation/Animation" />
-		<method name="&lt;init>(FFFF)V" />
-		<method name="&lt;init>(FFFFFF)V" />
-		<method name="&lt;init>(FFFFIFIF)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-	</class>
-	<class name="android/view/animation/Transformation" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="clear()V" />
-		<method name="compose(Landroid/view/animation/Transformation;)V" />
-		<method name="getAlpha()F" />
-		<method name="getMatrix()Landroid/graphics/Matrix;" />
-		<method name="getTransformationType()I" />
-		<method name="set(Landroid/view/animation/Transformation;)V" />
-		<method name="setAlpha(F)V" />
-		<method name="setTransformationType(I)V" />
-		<method name="toShortString()Ljava/lang/String;" since="3" />
-		<field name="TYPE_ALPHA" />
-		<field name="TYPE_BOTH" />
-		<field name="TYPE_IDENTITY" />
-		<field name="TYPE_MATRIX" />
-		<field name="mAlpha" />
-		<field name="mMatrix" />
-		<field name="mTransformationType" />
-	</class>
-	<class name="android/view/animation/TranslateAnimation" since="1">
-		<extends name="android/view/animation/Animation" />
-		<method name="&lt;init>(FFFF)V" />
-		<method name="&lt;init>(IFIFIFIF)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-	</class>
-	<class name="android/view/inputmethod/BaseInputConnection" since="3">
-		<extends name="java/lang/Object" />
-		<implements name="android/view/inputmethod/InputConnection" />
-		<method name="&lt;init>(Landroid/view/View;Z)V" />
-		<method name="getComposingSpanEnd(Landroid/text/Spannable;)I" />
-		<method name="getComposingSpanStart(Landroid/text/Spannable;)I" />
-		<method name="getEditable()Landroid/text/Editable;" />
-		<method name="removeComposingSpans(Landroid/text/Spannable;)V" />
-		<method name="setComposingSpans(Landroid/text/Spannable;)V" />
-	</class>
-	<class name="android/view/inputmethod/CompletionInfo" since="3">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(JILjava/lang/CharSequence;)V" />
-		<method name="&lt;init>(JILjava/lang/CharSequence;Ljava/lang/CharSequence;)V" />
-		<method name="getId()J" />
-		<method name="getLabel()Ljava/lang/CharSequence;" />
-		<method name="getPosition()I" />
-		<method name="getText()Ljava/lang/CharSequence;" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/view/inputmethod/CorrectionInfo" since="11">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(ILjava/lang/CharSequence;Ljava/lang/CharSequence;)V" />
-		<method name="getNewText()Ljava/lang/CharSequence;" />
-		<method name="getOffset()I" />
-		<method name="getOldText()Ljava/lang/CharSequence;" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/view/inputmethod/CursorAnchorInfo" since="21">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" />
-		<method name="getCharacterRect(I)Landroid/graphics/RectF;" />
-		<method name="getComposingText()Ljava/lang/String;" />
-		<method name="getComposingTextStart()I" />
-		<method name="getInsertionMarkerBaseline()F" />
-		<method name="getInsertionMarkerBottom()F" />
-		<method name="getInsertionMarkerHorizontal()F" />
-		<method name="getInsertionMarkerTop()F" />
-		<method name="getMatrix()Landroid/graphics/Matrix;" />
-		<method name="getSelectionEnd()I" />
-		<method name="getSelectionStart()I" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/view/inputmethod/CursorAnchorInfo$Builder" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addCharacterRect(IFFFF)Landroid/view/inputmethod/CursorAnchorInfo$Builder;" />
-		<method name="build()Landroid/view/inputmethod/CursorAnchorInfo;" />
-		<method name="reset()V" />
-		<method name="setComposingText(ILjava/lang/CharSequence;)Landroid/view/inputmethod/CursorAnchorInfo$Builder;" />
-		<method name="setInsertionMarkerLocation(FFFF)Landroid/view/inputmethod/CursorAnchorInfo$Builder;" />
-		<method name="setMatrix(Landroid/graphics/Matrix;)Landroid/view/inputmethod/CursorAnchorInfo$Builder;" />
-		<method name="setSelectionRange(II)Landroid/view/inputmethod/CursorAnchorInfo$Builder;" />
-	</class>
-	<class name="android/view/inputmethod/EditorInfo" since="3">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<implements name="android/text/InputType" />
-		<method name="&lt;init>()V" />
-		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" />
-		<method name="makeCompatible(I)V" since="11" />
-		<field name="CREATOR" />
-		<field name="IME_ACTION_DONE" />
-		<field name="IME_ACTION_GO" />
-		<field name="IME_ACTION_NEXT" />
-		<field name="IME_ACTION_NONE" />
-		<field name="IME_ACTION_PREVIOUS" since="11" />
-		<field name="IME_ACTION_SEARCH" />
-		<field name="IME_ACTION_SEND" />
-		<field name="IME_ACTION_UNSPECIFIED" />
-		<field name="IME_FLAG_FORCE_ASCII" since="16" />
-		<field name="IME_FLAG_NAVIGATE_NEXT" since="11" />
-		<field name="IME_FLAG_NAVIGATE_PREVIOUS" since="11" />
-		<field name="IME_FLAG_NO_ACCESSORY_ACTION" />
-		<field name="IME_FLAG_NO_ENTER_ACTION" />
-		<field name="IME_FLAG_NO_EXTRACT_UI" />
-		<field name="IME_FLAG_NO_FULLSCREEN" since="11" />
-		<field name="IME_MASK_ACTION" />
-		<field name="IME_NULL" />
-		<field name="actionId" />
-		<field name="actionLabel" />
-		<field name="extras" />
-		<field name="fieldId" />
-		<field name="fieldName" />
-		<field name="hintText" />
-		<field name="imeOptions" />
-		<field name="initialCapsMode" />
-		<field name="initialSelEnd" />
-		<field name="initialSelStart" />
-		<field name="inputType" />
-		<field name="label" />
-		<field name="packageName" />
-		<field name="privateImeOptions" />
-	</class>
-	<class name="android/view/inputmethod/ExtractedText" since="3">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<field name="CREATOR" />
-		<field name="FLAG_SELECTING" />
-		<field name="FLAG_SINGLE_LINE" />
-		<field name="flags" />
-		<field name="partialEndOffset" />
-		<field name="partialStartOffset" />
-		<field name="selectionEnd" />
-		<field name="selectionStart" />
-		<field name="startOffset" />
-		<field name="text" />
-	</class>
-	<class name="android/view/inputmethod/ExtractedTextRequest" since="3">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<field name="CREATOR" />
-		<field name="flags" />
-		<field name="hintMaxChars" />
-		<field name="hintMaxLines" />
-		<field name="token" />
-	</class>
-	<class name="android/view/inputmethod/InputBinding" since="3">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(Landroid/view/inputmethod/InputConnection;Landroid/os/IBinder;II)V" />
-		<method name="&lt;init>(Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/InputBinding;)V" />
-		<method name="getConnection()Landroid/view/inputmethod/InputConnection;" />
-		<method name="getConnectionToken()Landroid/os/IBinder;" />
-		<method name="getPid()I" />
-		<method name="getUid()I" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/view/inputmethod/InputConnection" since="3">
-		<extends name="java/lang/Object" />
-		<method name="beginBatchEdit()Z" />
-		<method name="clearMetaKeyStates(I)Z" />
-		<method name="commitCompletion(Landroid/view/inputmethod/CompletionInfo;)Z" />
-		<method name="commitCorrection(Landroid/view/inputmethod/CorrectionInfo;)Z" since="11" />
-		<method name="commitText(Ljava/lang/CharSequence;I)Z" />
-		<method name="deleteSurroundingText(II)Z" />
-		<method name="endBatchEdit()Z" />
-		<method name="finishComposingText()Z" />
-		<method name="getCursorCapsMode(I)I" />
-		<method name="getExtractedText(Landroid/view/inputmethod/ExtractedTextRequest;I)Landroid/view/inputmethod/ExtractedText;" />
-		<method name="getSelectedText(I)Ljava/lang/CharSequence;" since="9" />
-		<method name="getTextAfterCursor(II)Ljava/lang/CharSequence;" />
-		<method name="getTextBeforeCursor(II)Ljava/lang/CharSequence;" />
-		<method name="performContextMenuAction(I)Z" />
-		<method name="performEditorAction(I)Z" />
-		<method name="performPrivateCommand(Ljava/lang/String;Landroid/os/Bundle;)Z" />
-		<method name="reportFullscreenMode(Z)Z" />
-		<method name="sendKeyEvent(Landroid/view/KeyEvent;)Z" />
-		<method name="setComposingRegion(II)Z" since="9" />
-		<method name="setComposingText(Ljava/lang/CharSequence;I)Z" />
-		<method name="setSelection(II)Z" />
-		<field name="GET_EXTRACTED_TEXT_MONITOR" />
-		<field name="GET_TEXT_WITH_STYLES" />
-	</class>
-	<class name="android/view/inputmethod/InputConnectionWrapper" since="3">
-		<extends name="java/lang/Object" />
-		<implements name="android/view/inputmethod/InputConnection" />
-		<method name="&lt;init>(Landroid/view/inputmethod/InputConnection;Z)V" />
-		<method name="setTarget(Landroid/view/inputmethod/InputConnection;)V" />
-	</class>
-	<class name="android/view/inputmethod/InputMethod" since="3">
-		<extends name="java/lang/Object" />
-		<method name="attachToken(Landroid/os/IBinder;)V" />
-		<method name="bindInput(Landroid/view/inputmethod/InputBinding;)V" />
-		<method name="changeInputMethodSubtype(Landroid/view/inputmethod/InputMethodSubtype;)V" since="11" />
-		<method name="createSession(Landroid/view/inputmethod/InputMethod$SessionCallback;)V" />
-		<method name="hideSoftInput(ILandroid/os/ResultReceiver;)V" />
-		<method name="restartInput(Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/EditorInfo;)V" />
-		<method name="revokeSession(Landroid/view/inputmethod/InputMethodSession;)V" />
-		<method name="setSessionEnabled(Landroid/view/inputmethod/InputMethodSession;Z)V" />
-		<method name="showSoftInput(ILandroid/os/ResultReceiver;)V" />
-		<method name="startInput(Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/EditorInfo;)V" />
-		<method name="unbindInput()V" />
-		<field name="SERVICE_INTERFACE" />
-		<field name="SERVICE_META_DATA" />
-		<field name="SHOW_EXPLICIT" />
-		<field name="SHOW_FORCED" />
-	</class>
-	<class name="android/view/inputmethod/InputMethod$SessionCallback" since="3">
-		<extends name="java/lang/Object" />
-		<method name="sessionCreated(Landroid/view/inputmethod/InputMethodSession;)V" />
-	</class>
-	<class name="android/view/inputmethod/InputMethodInfo" since="3">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/content/pm/ResolveInfo;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)V" />
-		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" />
-		<method name="getComponent()Landroid/content/ComponentName;" />
-		<method name="getId()Ljava/lang/String;" />
-		<method name="getIsDefaultResourceId()I" />
-		<method name="getPackageName()Ljava/lang/String;" />
-		<method name="getServiceInfo()Landroid/content/pm/ServiceInfo;" />
-		<method name="getServiceName()Ljava/lang/String;" />
-		<method name="getSettingsActivity()Ljava/lang/String;" />
-		<method name="getSubtypeAt(I)Landroid/view/inputmethod/InputMethodSubtype;" since="11" />
-		<method name="getSubtypeCount()I" since="11" />
-		<method name="loadIcon(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;" />
-		<method name="loadLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/view/inputmethod/InputMethodManager" since="3">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="displayCompletions(Landroid/view/View;[Landroid/view/inputmethod/CompletionInfo;)V" />
-		<method name="getCurrentInputMethodSubtype()Landroid/view/inputmethod/InputMethodSubtype;" since="11" />
-		<method name="getEnabledInputMethodList()Ljava/util/List;" />
-		<method name="getEnabledInputMethodSubtypeList(Landroid/view/inputmethod/InputMethodInfo;Z)Ljava/util/List;" since="11" />
-		<method name="getInputMethodList()Ljava/util/List;" />
-		<method name="getLastInputMethodSubtype()Landroid/view/inputmethod/InputMethodSubtype;" since="14" />
-		<method name="getShortcutInputMethodsAndSubtypes()Ljava/util/Map;" since="11" />
-		<method name="hideSoftInputFromInputMethod(Landroid/os/IBinder;I)V" />
-		<method name="hideSoftInputFromWindow(Landroid/os/IBinder;I)Z" />
-		<method name="hideSoftInputFromWindow(Landroid/os/IBinder;ILandroid/os/ResultReceiver;)Z" />
-		<method name="hideStatusIcon(Landroid/os/IBinder;)V" />
-		<method name="isAcceptingText()Z" />
-		<method name="isActive()Z" />
-		<method name="isActive(Landroid/view/View;)Z" />
-		<method name="isFullscreenMode()Z" />
-		<method name="isWatchingCursor(Landroid/view/View;)Z" />
-		<method name="restartInput(Landroid/view/View;)V" />
-		<method name="sendAppPrivateCommand(Landroid/view/View;Ljava/lang/String;Landroid/os/Bundle;)V" />
-		<method name="setAdditionalInputMethodSubtypes(Ljava/lang/String;[Landroid/view/inputmethod/InputMethodSubtype;)V" since="14" />
-		<method name="setCurrentInputMethodSubtype(Landroid/view/inputmethod/InputMethodSubtype;)Z" since="11" />
-		<method name="setInputMethod(Landroid/os/IBinder;Ljava/lang/String;)V" />
-		<method name="setInputMethodAndSubtype(Landroid/os/IBinder;Ljava/lang/String;Landroid/view/inputmethod/InputMethodSubtype;)V" since="11" />
-		<method name="shouldOfferSwitchingToNextInputMethod(Landroid/os/IBinder;)Z" since="19" />
-		<method name="showInputMethodAndSubtypeEnabler(Ljava/lang/String;)V" since="11" />
-		<method name="showInputMethodPicker()V" />
-		<method name="showSoftInput(Landroid/view/View;I)Z" />
-		<method name="showSoftInput(Landroid/view/View;ILandroid/os/ResultReceiver;)Z" />
-		<method name="showSoftInputFromInputMethod(Landroid/os/IBinder;I)V" />
-		<method name="showStatusIcon(Landroid/os/IBinder;Ljava/lang/String;I)V" />
-		<method name="switchToLastInputMethod(Landroid/os/IBinder;)Z" since="11" />
-		<method name="switchToNextInputMethod(Landroid/os/IBinder;Z)Z" since="16" />
-		<method name="toggleSoftInput(II)V" />
-		<method name="toggleSoftInputFromWindow(Landroid/os/IBinder;II)V" />
-		<method name="updateCursor(Landroid/view/View;IIII)V" />
-		<method name="updateCursorAnchorInfo(Landroid/view/View;Landroid/view/inputmethod/CursorAnchorInfo;)V" since="21" />
-		<method name="updateExtractedText(Landroid/view/View;ILandroid/view/inputmethod/ExtractedText;)V" />
-		<method name="updateSelection(Landroid/view/View;IIII)V" />
-		<method name="viewClicked(Landroid/view/View;)V" since="14" />
-		<field name="HIDE_IMPLICIT_ONLY" />
-		<field name="HIDE_NOT_ALWAYS" />
-		<field name="RESULT_HIDDEN" />
-		<field name="RESULT_SHOWN" />
-		<field name="RESULT_UNCHANGED_HIDDEN" />
-		<field name="RESULT_UNCHANGED_SHOWN" />
-		<field name="SHOW_FORCED" />
-		<field name="SHOW_IMPLICIT" />
-	</class>
-	<class name="android/view/inputmethod/InputMethodSession" since="3">
-		<extends name="java/lang/Object" />
-		<method name="appPrivateCommand(Ljava/lang/String;Landroid/os/Bundle;)V" />
-		<method name="dispatchGenericMotionEvent(ILandroid/view/MotionEvent;Landroid/view/inputmethod/InputMethodSession$EventCallback;)V" since="17" />
-		<method name="dispatchKeyEvent(ILandroid/view/KeyEvent;Landroid/view/inputmethod/InputMethodSession$EventCallback;)V" />
-		<method name="dispatchTrackballEvent(ILandroid/view/MotionEvent;Landroid/view/inputmethod/InputMethodSession$EventCallback;)V" />
-		<method name="displayCompletions([Landroid/view/inputmethod/CompletionInfo;)V" />
-		<method name="finishInput()V" />
-		<method name="toggleSoftInput(II)V" />
-		<method name="updateCursor(Landroid/graphics/Rect;)V" />
-		<method name="updateCursorAnchorInfo(Landroid/view/inputmethod/CursorAnchorInfo;)V" since="21" />
-		<method name="updateExtractedText(ILandroid/view/inputmethod/ExtractedText;)V" />
-		<method name="updateSelection(IIIIII)V" />
-		<method name="viewClicked(Z)V" since="14" />
-	</class>
-	<class name="android/view/inputmethod/InputMethodSession$EventCallback" since="3">
-		<extends name="java/lang/Object" />
-		<method name="finishedEvent(IZ)V" />
-	</class>
-	<class name="android/view/inputmethod/InputMethodSubtype" since="11">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZ)V" since="14" />
-		<method name="&lt;init>(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZI)V" since="17" />
-		<method name="containsExtraValueKey(Ljava/lang/String;)Z" since="12" />
-		<method name="getDisplayName(Landroid/content/Context;Ljava/lang/String;Landroid/content/pm/ApplicationInfo;)Ljava/lang/CharSequence;" since="14" />
-		<method name="getExtraValue()Ljava/lang/String;" />
-		<method name="getExtraValueOf(Ljava/lang/String;)Ljava/lang/String;" since="12" />
-		<method name="getIconResId()I" />
-		<method name="getLocale()Ljava/lang/String;" />
-		<method name="getMode()Ljava/lang/String;" />
-		<method name="getNameResId()I" />
-		<method name="isAsciiCapable()Z" since="19" />
-		<method name="isAuxiliary()Z" since="14" />
-		<method name="overridesImplicitlyEnabledSubtype()Z" since="14" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="build()Landroid/view/inputmethod/InputMethodSubtype;" />
-		<method name="setIsAsciiCapable(Z)Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;" />
-		<method name="setIsAuxiliary(Z)Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;" />
-		<method name="setOverridesImplicitlyEnabledSubtype(Z)Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;" />
-		<method name="setSubtypeExtraValue(Ljava/lang/String;)Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;" />
-		<method name="setSubtypeIconResId(I)Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;" />
-		<method name="setSubtypeId(I)Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;" />
-		<method name="setSubtypeLocale(Ljava/lang/String;)Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;" />
-		<method name="setSubtypeMode(Ljava/lang/String;)Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;" />
-		<method name="setSubtypeNameResId(I)Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;" />
-	</class>
-	<class name="android/view/textservice/SentenceSuggestionsInfo" since="16">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" />
-		<method name="&lt;init>([Landroid/view/textservice/SuggestionsInfo;[I[I)V" />
-		<method name="getLengthAt(I)I" />
-		<method name="getOffsetAt(I)I" />
-		<method name="getSuggestionsCount()I" />
-		<method name="getSuggestionsInfoAt(I)Landroid/view/textservice/SuggestionsInfo;" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/view/textservice/SpellCheckerInfo" since="14">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>()V" />
-		<method name="getComponent()Landroid/content/ComponentName;" />
-		<method name="getId()Ljava/lang/String;" />
-		<method name="getPackageName()Ljava/lang/String;" />
-		<method name="getServiceInfo()Landroid/content/pm/ServiceInfo;" />
-		<method name="getSettingsActivity()Ljava/lang/String;" />
-		<method name="getSubtypeAt(I)Landroid/view/textservice/SpellCheckerSubtype;" />
-		<method name="getSubtypeCount()I" />
-		<method name="loadIcon(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;" />
-		<method name="loadLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/view/textservice/SpellCheckerSession" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="cancel()V" since="15" />
-		<method name="close()V" />
-		<method name="getSentenceSuggestions([Landroid/view/textservice/TextInfo;I)V" since="16" />
-		<method name="getSpellChecker()Landroid/view/textservice/SpellCheckerInfo;" />
-		<method name="getSuggestions(Landroid/view/textservice/TextInfo;I)V" />
-		<method name="getSuggestions([Landroid/view/textservice/TextInfo;IZ)V" />
-		<method name="isSessionDisconnected()Z" />
-		<field name="SERVICE_META_DATA" />
-	</class>
-	<class name="android/view/textservice/SpellCheckerSession$SpellCheckerSessionListener" since="14">
-		<extends name="java/lang/Object" />
-		<method name="onGetSentenceSuggestions([Landroid/view/textservice/SentenceSuggestionsInfo;)V" since="16" />
-		<method name="onGetSuggestions([Landroid/view/textservice/SuggestionsInfo;)V" />
-	</class>
-	<class name="android/view/textservice/SpellCheckerSubtype" since="14">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(ILjava/lang/String;Ljava/lang/String;)V" />
-		<method name="containsExtraValueKey(Ljava/lang/String;)Z" since="16" />
-		<method name="getDisplayName(Landroid/content/Context;Ljava/lang/String;Landroid/content/pm/ApplicationInfo;)Ljava/lang/CharSequence;" />
-		<method name="getExtraValue()Ljava/lang/String;" />
-		<method name="getExtraValueOf(Ljava/lang/String;)Ljava/lang/String;" since="16" />
-		<method name="getLocale()Ljava/lang/String;" />
-		<method name="getNameResId()I" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/view/textservice/SuggestionsInfo" since="14">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(I[Ljava/lang/String;)V" />
-		<method name="&lt;init>(I[Ljava/lang/String;II)V" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" />
-		<method name="getCookie()I" />
-		<method name="getSequence()I" />
-		<method name="getSuggestionAt(I)Ljava/lang/String;" />
-		<method name="getSuggestionsAttributes()I" />
-		<method name="getSuggestionsCount()I" />
-		<method name="setCookieAndSequence(II)V" />
-		<field name="CREATOR" />
-		<field name="RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS" since="15" />
-		<field name="RESULT_ATTR_IN_THE_DICTIONARY" />
-		<field name="RESULT_ATTR_LOOKS_LIKE_TYPO" />
-	</class>
-	<class name="android/view/textservice/TextInfo" since="14">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;II)V" />
-		<method name="getCookie()I" />
-		<method name="getSequence()I" />
-		<method name="getText()Ljava/lang/String;" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/view/textservice/TextServicesManager" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="newSpellCheckerSession(Landroid/os/Bundle;Ljava/util/Locale;Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListener;Z)Landroid/view/textservice/SpellCheckerSession;" />
-	</class>
-	<class name="android/webkit/CacheManager" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="cacheDisabled()Z" />
-		<method name="endCacheTransaction()Z" />
-		<method name="getCacheFile(Ljava/lang/String;Ljava/util/Map;)Landroid/webkit/CacheManager$CacheResult;" />
-		<method name="getCacheFileBaseDir()Ljava/io/File;" />
-		<method name="saveCacheFile(Ljava/lang/String;Landroid/webkit/CacheManager$CacheResult;)V" />
-		<method name="startCacheTransaction()Z" />
-	</class>
-	<class name="android/webkit/CacheManager$CacheResult" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getContentDisposition()Ljava/lang/String;" since="7" />
-		<method name="getContentLength()J" />
-		<method name="getETag()Ljava/lang/String;" />
-		<method name="getEncoding()Ljava/lang/String;" />
-		<method name="getExpires()J" />
-		<method name="getExpiresString()Ljava/lang/String;" since="7" />
-		<method name="getHttpStatusCode()I" />
-		<method name="getInputStream()Ljava/io/InputStream;" />
-		<method name="getLastModified()Ljava/lang/String;" />
-		<method name="getLocalPath()Ljava/lang/String;" />
-		<method name="getLocation()Ljava/lang/String;" />
-		<method name="getMimeType()Ljava/lang/String;" />
-		<method name="getOutputStream()Ljava/io/OutputStream;" />
-		<method name="setEncoding(Ljava/lang/String;)V" />
-		<method name="setInputStream(Ljava/io/InputStream;)V" />
-	</class>
-	<class name="android/webkit/CallbackProxy" since="1">
-		<extends name="android/os/Handler" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/webkit/WebView;)V" />
-		<method name="addMessageToConsole(Ljava/lang/String;ILjava/lang/String;)V" since="7" />
-		<method name="createWindow(ZZ)Landroid/webkit/WebView;" />
-		<method name="doUpdateVisitedHistory(Ljava/lang/String;Z)V" />
-		<method name="getBackForwardList()Landroid/webkit/WebBackForwardList;" />
-		<method name="getProgress()I" />
-		<method name="getVisitedHistory(Landroid/webkit/ValueCallback;)V" since="7" />
-		<method name="getWebChromeClient()Landroid/webkit/WebChromeClient;" since="7" />
-		<method name="onCloseWindow(Landroid/webkit/WebView;)V" />
-		<method name="onDownloadStart(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;J)Z" />
-		<method name="onExceededDatabaseQuota(Ljava/lang/String;Ljava/lang/String;JJJLandroid/webkit/WebStorage$QuotaUpdater;)V" since="5" />
-		<method name="onFormResubmission(Landroid/os/Message;Landroid/os/Message;)V" />
-		<method name="onGeolocationPermissionsHidePrompt()V" since="7" />
-		<method name="onGeolocationPermissionsShowPrompt(Ljava/lang/String;Landroid/webkit/GeolocationPermissions$Callback;)V" since="7" />
-		<method name="onJsAlert(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="onJsBeforeUnload(Ljava/lang/String;Ljava/lang/String;)Z" />
-		<method name="onJsConfirm(Ljava/lang/String;Ljava/lang/String;)Z" />
-		<method name="onJsPrompt(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="onJsTimeout()Z" since="7" />
-		<method name="onLoadResource(Ljava/lang/String;)V" />
-		<method name="onPageFinished(Ljava/lang/String;)V" />
-		<method name="onPageStarted(Ljava/lang/String;Landroid/graphics/Bitmap;)V" />
-		<method name="onProgressChanged(I)V" />
-		<method name="onReachedMaxAppCacheSize(JJLandroid/webkit/WebStorage$QuotaUpdater;)V" since="7" />
-		<method name="onReceivedError(ILjava/lang/String;Ljava/lang/String;)V" />
-		<method name="onReceivedHttpAuthRequest(Landroid/webkit/HttpAuthHandler;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="onReceivedIcon(Landroid/graphics/Bitmap;)V" />
-		<method name="onReceivedTitle(Ljava/lang/String;)V" />
-		<method name="onRequestFocus()V" />
-		<method name="onSavePassword(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Message;)Z" />
-		<method name="onScaleChanged(FF)V" />
-		<method name="onTooManyRedirects(Landroid/os/Message;Landroid/os/Message;)V" />
-		<method name="onUnhandledKeyEvent(Landroid/view/KeyEvent;)V" />
-		<method name="setDownloadListener(Landroid/webkit/DownloadListener;)V" />
-		<method name="setWebChromeClient(Landroid/webkit/WebChromeClient;)V" />
-		<method name="setWebViewClient(Landroid/webkit/WebViewClient;)V" />
-		<method name="shouldOverrideUrlLoading(Ljava/lang/String;)Z" />
-		<method name="uiOverrideKeyEvent(Landroid/view/KeyEvent;)Z" />
-		<method name="uiOverrideUrlLoading(Ljava/lang/String;)Z" />
-	</class>
-	<class name="android/webkit/ClientCertRequest" since="21">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="cancel()V" />
-		<method name="getHost()Ljava/lang/String;" />
-		<method name="getKeyTypes()[Ljava/lang/String;" />
-		<method name="getPort()I" />
-		<method name="getPrincipals()[Ljava/security/Principal;" />
-		<method name="ignore()V" />
-		<method name="proceed(Ljava/security/PrivateKey;[Ljava/security/cert/X509Certificate;)V" />
-	</class>
-	<class name="android/webkit/ConsoleMessage" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILandroid/webkit/ConsoleMessage$MessageLevel;)V" />
-		<method name="lineNumber()I" />
-		<method name="message()Ljava/lang/String;" />
-		<method name="messageLevel()Landroid/webkit/ConsoleMessage$MessageLevel;" />
-		<method name="sourceId()Ljava/lang/String;" />
-	</class>
-	<class name="android/webkit/ConsoleMessage$MessageLevel" since="8">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/webkit/ConsoleMessage$MessageLevel;" />
-		<method name="values()[Landroid/webkit/ConsoleMessage$MessageLevel;" />
-		<field name="DEBUG" />
-		<field name="ERROR" />
-		<field name="LOG" />
-		<field name="TIP" />
-		<field name="WARNING" />
-	</class>
-	<class name="android/webkit/CookieManager" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="acceptCookie()Z" />
-		<method name="allowFileSchemeCookies()Z" since="12" />
-		<method name="getCookie(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getInstance()Landroid/webkit/CookieManager;" />
-		<method name="hasCookies()Z" />
-		<method name="removeAllCookie()V" />
-		<method name="removeExpiredCookie()V" />
-		<method name="removeSessionCookie()V" />
-		<method name="setAcceptCookie(Z)V" />
-		<method name="setAcceptFileSchemeCookies(Z)V" since="12" />
-		<method name="setCookie(Ljava/lang/String;Ljava/lang/String;)V" />
-	</class>
-	<class name="android/webkit/CookieSyncManager" since="1">
-		<extends name="android/webkit/WebSyncManager" />
-		<method name="&lt;init>()V" />
-		<method name="createInstance(Landroid/content/Context;)Landroid/webkit/CookieSyncManager;" />
-		<method name="getInstance()Landroid/webkit/CookieSyncManager;" />
-		<method name="syncFromRamToFlash()V" />
-		<field name="LOGTAG" since="21" />
-		<field name="mDataBase" since="21" />
-		<field name="mHandler" since="21" />
-	</class>
-	<class name="android/webkit/DateSorter" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="getBoundary(I)J" />
-		<method name="getIndex(J)I" />
-		<method name="getLabel(I)Ljava/lang/String;" />
-		<field name="DAY_COUNT" />
-	</class>
-	<class name="android/webkit/DownloadListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onDownloadStart(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V" />
-	</class>
-	<class name="android/webkit/GeolocationPermissions" since="5">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="allow(Ljava/lang/String;)V" since="7" />
-		<method name="clear(Ljava/lang/String;)V" since="7" />
-		<method name="clearAll()V" since="7" />
-		<method name="getAllowed(Ljava/lang/String;Landroid/webkit/ValueCallback;)V" since="7" />
-		<method name="getInstance()Landroid/webkit/GeolocationPermissions;" since="7" />
-		<method name="getOrigins(Landroid/webkit/ValueCallback;)V" since="7" />
-	</class>
-	<class name="android/webkit/GeolocationPermissions$Callback" since="5">
-		<extends name="java/lang/Object" />
-		<method name="invoke(Ljava/lang/String;ZZ)V" />
-	</class>
-	<class name="android/webkit/HttpAuthHandler" since="1">
-		<extends name="android/os/Handler" />
-		<method name="&lt;init>()V" />
-		<method name="cancel()V" />
-		<method name="proceed(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="useHttpAuthUsernamePassword()Z" />
-	</class>
-	<class name="android/webkit/JavascriptInterface" since="17">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/annotation/Annotation" />
-	</class>
-	<class name="android/webkit/JsPromptResult" since="1">
-		<extends name="android/webkit/JsResult" />
-		<method name="&lt;init>()V" />
-		<method name="confirm(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/webkit/JsResult" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="cancel()V" />
-		<method name="confirm()V" />
-		<method name="wakeUp()V" />
-		<field name="mProxy" />
-		<field name="mResult" />
-	</class>
-	<class name="android/webkit/MimeTypeMap" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getExtensionFromMimeType(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getFileExtensionFromUrl(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getMimeTypeFromExtension(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getSingleton()Landroid/webkit/MimeTypeMap;" />
-		<method name="hasExtension(Ljava/lang/String;)Z" />
-		<method name="hasMimeType(Ljava/lang/String;)Z" />
-	</class>
-	<class name="android/webkit/PermissionRequest" since="21">
-		<extends name="java/lang/Object" />
-		<method name="deny()V" />
-		<method name="getOrigin()Landroid/net/Uri;" />
-		<method name="getResources()J" />
-		<method name="grant(J)V" />
-		<field name="RESOURCE_AUDIO_CAPTURE" />
-		<field name="RESOURCE_VIDEO_CAPTURE" />
-	</class>
-	<class name="android/webkit/Plugin" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="dispatchClickEvent(Landroid/content/Context;)V" />
-		<method name="getDescription()Ljava/lang/String;" />
-		<method name="getFileName()Ljava/lang/String;" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getPath()Ljava/lang/String;" />
-		<method name="setClickHandler(Landroid/webkit/Plugin$PreferencesClickHandler;)V" />
-		<method name="setDescription(Ljava/lang/String;)V" />
-		<method name="setFileName(Ljava/lang/String;)V" />
-		<method name="setName(Ljava/lang/String;)V" />
-		<method name="setPath(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/webkit/Plugin$PreferencesClickHandler" since="1">
-		<extends name="java/lang/Object" />
-		<method name="handleClickEvent(Landroid/content/Context;)V" />
-	</class>
-	<class name="android/webkit/PluginData" since="3">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/io/InputStream;JLjava/util/Map;I)V" />
-		<method name="getContentLength()J" />
-		<method name="getHeaders()Ljava/util/Map;" />
-		<method name="getInputStream()Ljava/io/InputStream;" />
-		<method name="getStatusCode()I" />
-	</class>
-	<class name="android/webkit/PluginList" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addPlugin(Landroid/webkit/Plugin;)V" />
-		<method name="clear()V" />
-		<method name="getList()Ljava/util/List;" />
-		<method name="pluginClicked(Landroid/content/Context;I)V" />
-		<method name="removePlugin(Landroid/webkit/Plugin;)V" />
-	</class>
-	<class name="android/webkit/PluginStub" since="5">
-		<extends name="java/lang/Object" />
-		<method name="getEmbeddedView(ILandroid/content/Context;)Landroid/view/View;" />
-		<method name="getFullScreenView(ILandroid/content/Context;)Landroid/view/View;" />
-	</class>
-	<class name="android/webkit/SslErrorHandler" since="1">
-		<extends name="android/os/Handler" />
-		<method name="&lt;init>()V" />
-		<method name="cancel()V" />
-		<method name="proceed()V" />
-	</class>
-	<class name="android/webkit/URLUtil" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="composeSearchUrl(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="decode([B)[B" />
-		<method name="guessFileName(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="guessUrl(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="isAboutUrl(Ljava/lang/String;)Z" />
-		<method name="isAssetUrl(Ljava/lang/String;)Z" />
-		<method name="isContentUrl(Ljava/lang/String;)Z" />
-		<method name="isCookielessProxyUrl(Ljava/lang/String;)Z" />
-		<method name="isDataUrl(Ljava/lang/String;)Z" />
-		<method name="isFileUrl(Ljava/lang/String;)Z" />
-		<method name="isHttpUrl(Ljava/lang/String;)Z" />
-		<method name="isHttpsUrl(Ljava/lang/String;)Z" />
-		<method name="isJavaScriptUrl(Ljava/lang/String;)Z" />
-		<method name="isNetworkUrl(Ljava/lang/String;)Z" />
-		<method name="isValidUrl(Ljava/lang/String;)Z" />
-		<method name="stripAnchor(Ljava/lang/String;)Ljava/lang/String;" />
-	</class>
-	<class name="android/webkit/UrlInterceptHandler" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getPluginData(Ljava/lang/String;Ljava/util/Map;)Landroid/webkit/PluginData;" since="3" />
-		<method name="service(Ljava/lang/String;Ljava/util/Map;)Landroid/webkit/CacheManager$CacheResult;" />
-	</class>
-	<class name="android/webkit/UrlInterceptRegistry" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getPluginData(Ljava/lang/String;Ljava/util/Map;)Landroid/webkit/PluginData;" since="3" />
-		<method name="getSurrogate(Ljava/lang/String;Ljava/util/Map;)Landroid/webkit/CacheManager$CacheResult;" />
-		<method name="registerHandler(Landroid/webkit/UrlInterceptHandler;)Z" />
-		<method name="setUrlInterceptDisabled(Z)V" />
-		<method name="unregisterHandler(Landroid/webkit/UrlInterceptHandler;)Z" />
-		<method name="urlInterceptDisabled()Z" />
-	</class>
-	<class name="android/webkit/ValueCallback" since="7">
-		<extends name="java/lang/Object" />
-		<method name="onReceiveValue(Ljava/lang/Object;)V" />
-	</class>
-	<class name="android/webkit/WebBackForwardList" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Cloneable" />
-		<method name="&lt;init>()V" />
-		<method name="clone()Landroid/webkit/WebBackForwardList;" />
-		<method name="getCurrentIndex()I" />
-		<method name="getCurrentItem()Landroid/webkit/WebHistoryItem;" />
-		<method name="getItemAtIndex(I)Landroid/webkit/WebHistoryItem;" />
-		<method name="getSize()I" />
-	</class>
-	<class name="android/webkit/WebChromeClient" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getDefaultVideoPoster()Landroid/graphics/Bitmap;" since="7" />
-		<method name="getVideoLoadingProgressView()Landroid/view/View;" since="7" />
-		<method name="getVisitedHistory(Landroid/webkit/ValueCallback;)V" since="7" />
-		<method name="onCloseWindow(Landroid/webkit/WebView;)V" />
-		<method name="onConsoleMessage(Landroid/webkit/ConsoleMessage;)Z" since="8" />
-		<method name="onConsoleMessage(Ljava/lang/String;ILjava/lang/String;)V" since="7" />
-		<method name="onCreateWindow(Landroid/webkit/WebView;ZZLandroid/os/Message;)Z" />
-		<method name="onExceededDatabaseQuota(Ljava/lang/String;Ljava/lang/String;JJJLandroid/webkit/WebStorage$QuotaUpdater;)V" since="5" />
-		<method name="onGeolocationPermissionsHidePrompt()V" since="5" />
-		<method name="onGeolocationPermissionsShowPrompt(Ljava/lang/String;Landroid/webkit/GeolocationPermissions$Callback;)V" since="5" />
-		<method name="onHideCustomView()V" since="7" />
-		<method name="onJsAlert(Landroid/webkit/WebView;Ljava/lang/String;Ljava/lang/String;Landroid/webkit/JsResult;)Z" />
-		<method name="onJsBeforeUnload(Landroid/webkit/WebView;Ljava/lang/String;Ljava/lang/String;Landroid/webkit/JsResult;)Z" />
-		<method name="onJsConfirm(Landroid/webkit/WebView;Ljava/lang/String;Ljava/lang/String;Landroid/webkit/JsResult;)Z" />
-		<method name="onJsPrompt(Landroid/webkit/WebView;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/webkit/JsPromptResult;)Z" />
-		<method name="onJsTimeout()Z" since="7" />
-		<method name="onPermissionRequest(Landroid/webkit/PermissionRequest;)V" since="21" />
-		<method name="onPermissionRequestCanceled(Landroid/webkit/PermissionRequest;)V" since="21" />
-		<method name="onProgressChanged(Landroid/webkit/WebView;I)V" />
-		<method name="onReachedMaxAppCacheSize(JJLandroid/webkit/WebStorage$QuotaUpdater;)V" since="7" />
-		<method name="onReceivedIcon(Landroid/webkit/WebView;Landroid/graphics/Bitmap;)V" />
-		<method name="onReceivedTitle(Landroid/webkit/WebView;Ljava/lang/String;)V" />
-		<method name="onReceivedTouchIconUrl(Landroid/webkit/WebView;Ljava/lang/String;Z)V" since="7" />
-		<method name="onRequestFocus(Landroid/webkit/WebView;)V" />
-		<method name="onShowCustomView(Landroid/view/View;ILandroid/webkit/WebChromeClient$CustomViewCallback;)V" since="14" />
-		<method name="onShowCustomView(Landroid/view/View;Landroid/webkit/WebChromeClient$CustomViewCallback;)V" since="7" />
-	</class>
-	<class name="android/webkit/WebChromeClient$CustomViewCallback" since="7">
-		<extends name="java/lang/Object" />
-		<method name="onCustomViewHidden()V" />
-	</class>
-	<class name="android/webkit/WebHistoryItem" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-		<method name="&lt;init>()V" />
-		<method name="clone()Landroid/webkit/WebHistoryItem;" />
-		<method name="getFavicon()Landroid/graphics/Bitmap;" />
-		<method name="getId()I" />
-		<method name="getOriginalUrl()Ljava/lang/String;" since="3" />
-		<method name="getTitle()Ljava/lang/String;" />
-		<method name="getUrl()Ljava/lang/String;" />
-	</class>
-	<class name="android/webkit/WebIconDatabase" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="close()V" />
-		<method name="getInstance()Landroid/webkit/WebIconDatabase;" />
-		<method name="open(Ljava/lang/String;)V" />
-		<method name="releaseIconForPageUrl(Ljava/lang/String;)V" />
-		<method name="removeAllIcons()V" />
-		<method name="requestIconForPageUrl(Ljava/lang/String;Landroid/webkit/WebIconDatabase$IconListener;)V" />
-		<method name="retainIconForPageUrl(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/webkit/WebIconDatabase$IconListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onReceivedIcon(Ljava/lang/String;Landroid/graphics/Bitmap;)V" />
-	</class>
-	<class name="android/webkit/WebResourceResponse" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/io/InputStream;)V" />
-		<method name="getData()Ljava/io/InputStream;" />
-		<method name="getEncoding()Ljava/lang/String;" />
-		<method name="getMimeType()Ljava/lang/String;" />
-		<method name="setData(Ljava/io/InputStream;)V" />
-		<method name="setEncoding(Ljava/lang/String;)V" />
-		<method name="setMimeType(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/webkit/WebSettings" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="enableSmoothTransition()Z" since="11" />
-		<method name="getAllowContentAccess()Z" since="11" />
-		<method name="getAllowFileAccess()Z" since="3" />
-		<method name="getAllowFileAccessFromFileURLs()Z" since="16" />
-		<method name="getAllowUniversalAccessFromFileURLs()Z" since="16" />
-		<method name="getBlockNetworkImage()Z" />
-		<method name="getBlockNetworkLoads()Z" since="8" />
-		<method name="getBuiltInZoomControls()Z" since="3" />
-		<method name="getCacheMode()I" />
-		<method name="getCursiveFontFamily()Ljava/lang/String;" />
-		<method name="getDatabaseEnabled()Z" since="5" />
-		<method name="getDatabasePath()Ljava/lang/String;" since="5" />
-		<method name="getDefaultFixedFontSize()I" />
-		<method name="getDefaultFontSize()I" />
-		<method name="getDefaultTextEncodingName()Ljava/lang/String;" />
-		<method name="getDefaultUserAgent(Landroid/content/Context;)Ljava/lang/String;" since="17" />
-		<method name="getDefaultZoom()Landroid/webkit/WebSettings$ZoomDensity;" since="7" />
-		<method name="getDisplayZoomControls()Z" since="11" />
-		<method name="getDomStorageEnabled()Z" since="7" />
-		<method name="getFantasyFontFamily()Ljava/lang/String;" />
-		<method name="getFixedFontFamily()Ljava/lang/String;" />
-		<method name="getJavaScriptCanOpenWindowsAutomatically()Z" />
-		<method name="getJavaScriptEnabled()Z" />
-		<method name="getLayoutAlgorithm()Landroid/webkit/WebSettings$LayoutAlgorithm;" />
-		<method name="getLightTouchEnabled()Z" />
-		<method name="getLoadWithOverviewMode()Z" since="7" />
-		<method name="getLoadsImagesAutomatically()Z" />
-		<method name="getMediaPlaybackRequiresUserGesture()Z" since="17" />
-		<method name="getMinimumFontSize()I" />
-		<method name="getMinimumLogicalFontSize()I" />
-		<method name="getMixedContentMode()I" since="21" />
-		<method name="getNavDump()Z" />
-		<method name="getPluginState()Landroid/webkit/WebSettings$PluginState;" since="8" />
-		<method name="getPluginsEnabled()Z" />
-		<method name="getPluginsPath()Ljava/lang/String;" />
-		<method name="getSansSerifFontFamily()Ljava/lang/String;" />
-		<method name="getSaveFormData()Z" />
-		<method name="getSavePassword()Z" />
-		<method name="getSerifFontFamily()Ljava/lang/String;" />
-		<method name="getStandardFontFamily()Ljava/lang/String;" />
-		<method name="getTextSize()Landroid/webkit/WebSettings$TextSize;" />
-		<method name="getTextZoom()I" since="14" />
-		<method name="getUseDoubleTree()Z" />
-		<method name="getUseWebViewBackgroundForOverscrollBackground()Z" since="9" />
-		<method name="getUseWideViewPort()Z" />
-		<method name="getUserAgent()I" />
-		<method name="getUserAgentString()Ljava/lang/String;" since="3" />
-		<method name="setAllowContentAccess(Z)V" since="11" />
-		<method name="setAllowFileAccess(Z)V" since="3" />
-		<method name="setAllowFileAccessFromFileURLs(Z)V" since="16" />
-		<method name="setAllowUniversalAccessFromFileURLs(Z)V" since="16" />
-		<method name="setAppCacheEnabled(Z)V" since="7" />
-		<method name="setAppCacheMaxSize(J)V" since="7" />
-		<method name="setAppCachePath(Ljava/lang/String;)V" since="7" />
-		<method name="setBlockNetworkImage(Z)V" />
-		<method name="setBlockNetworkLoads(Z)V" since="8" />
-		<method name="setBuiltInZoomControls(Z)V" since="3" />
-		<method name="setCacheMode(I)V" />
-		<method name="setCursiveFontFamily(Ljava/lang/String;)V" />
-		<method name="setDatabaseEnabled(Z)V" since="5" />
-		<method name="setDatabasePath(Ljava/lang/String;)V" since="5" />
-		<method name="setDefaultFixedFontSize(I)V" />
-		<method name="setDefaultFontSize(I)V" />
-		<method name="setDefaultTextEncodingName(Ljava/lang/String;)V" />
-		<method name="setDefaultZoom(Landroid/webkit/WebSettings$ZoomDensity;)V" since="7" />
-		<method name="setDisplayZoomControls(Z)V" since="11" />
-		<method name="setDomStorageEnabled(Z)V" since="7" />
-		<method name="setEnableSmoothTransition(Z)V" since="11" />
-		<method name="setFantasyFontFamily(Ljava/lang/String;)V" />
-		<method name="setFixedFontFamily(Ljava/lang/String;)V" />
-		<method name="setGeolocationDatabasePath(Ljava/lang/String;)V" since="5" />
-		<method name="setGeolocationEnabled(Z)V" since="5" />
-		<method name="setJavaScriptCanOpenWindowsAutomatically(Z)V" />
-		<method name="setJavaScriptEnabled(Z)V" />
-		<method name="setLayoutAlgorithm(Landroid/webkit/WebSettings$LayoutAlgorithm;)V" />
-		<method name="setLightTouchEnabled(Z)V" />
-		<method name="setLoadWithOverviewMode(Z)V" since="7" />
-		<method name="setLoadsImagesAutomatically(Z)V" />
-		<method name="setMediaPlaybackRequiresUserGesture(Z)V" since="17" />
-		<method name="setMinimumFontSize(I)V" />
-		<method name="setMinimumLogicalFontSize(I)V" />
-		<method name="setMixedContentMode(I)V" since="21" />
-		<method name="setNavDump(Z)V" />
-		<method name="setNeedInitialFocus(Z)V" />
-		<method name="setPluginState(Landroid/webkit/WebSettings$PluginState;)V" since="8" />
-		<method name="setPluginsEnabled(Z)V" />
-		<method name="setPluginsPath(Ljava/lang/String;)V" />
-		<method name="setRenderPriority(Landroid/webkit/WebSettings$RenderPriority;)V" />
-		<method name="setSansSerifFontFamily(Ljava/lang/String;)V" />
-		<method name="setSaveFormData(Z)V" />
-		<method name="setSavePassword(Z)V" />
-		<method name="setSerifFontFamily(Ljava/lang/String;)V" />
-		<method name="setStandardFontFamily(Ljava/lang/String;)V" />
-		<method name="setSupportMultipleWindows(Z)V" />
-		<method name="setSupportZoom(Z)V" />
-		<method name="setTextSize(Landroid/webkit/WebSettings$TextSize;)V" />
-		<method name="setTextZoom(I)V" since="14" />
-		<method name="setUseDoubleTree(Z)V" />
-		<method name="setUseWebViewBackgroundForOverscrollBackground(Z)V" since="9" />
-		<method name="setUseWideViewPort(Z)V" />
-		<method name="setUserAgent(I)V" />
-		<method name="setUserAgentString(Ljava/lang/String;)V" since="3" />
-		<method name="supportMultipleWindows()Z" />
-		<method name="supportZoom()Z" />
-		<field name="LOAD_CACHE_ELSE_NETWORK" />
-		<field name="LOAD_CACHE_ONLY" />
-		<field name="LOAD_DEFAULT" />
-		<field name="LOAD_NORMAL" />
-		<field name="LOAD_NO_CACHE" />
-		<field name="MIXED_CONTENT_ALWAYS_ALLOW" since="21" />
-		<field name="MIXED_CONTENT_COMPATIBILITY_MODE" since="21" />
-		<field name="MIXED_CONTENT_NEVER_ALLOW" since="21" />
-	</class>
-	<class name="android/webkit/WebSettings$LayoutAlgorithm" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/webkit/WebSettings$LayoutAlgorithm;" />
-		<method name="values()[Landroid/webkit/WebSettings$LayoutAlgorithm;" />
-		<field name="NARROW_COLUMNS" />
-		<field name="NORMAL" />
-		<field name="SINGLE_COLUMN" />
-		<field name="TEXT_AUTOSIZING" since="19" />
-	</class>
-	<class name="android/webkit/WebSettings$PluginState" since="8">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/webkit/WebSettings$PluginState;" />
-		<method name="values()[Landroid/webkit/WebSettings$PluginState;" />
-		<field name="OFF" />
-		<field name="ON" />
-		<field name="ON_DEMAND" />
-	</class>
-	<class name="android/webkit/WebSettings$RenderPriority" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/webkit/WebSettings$RenderPriority;" />
-		<method name="values()[Landroid/webkit/WebSettings$RenderPriority;" />
-		<field name="HIGH" />
-		<field name="LOW" />
-		<field name="NORMAL" />
-	</class>
-	<class name="android/webkit/WebSettings$TextSize" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/webkit/WebSettings$TextSize;" />
-		<method name="values()[Landroid/webkit/WebSettings$TextSize;" />
-		<field name="LARGER" />
-		<field name="LARGEST" />
-		<field name="NORMAL" />
-		<field name="SMALLER" />
-		<field name="SMALLEST" />
-	</class>
-	<class name="android/webkit/WebSettings$ZoomDensity" since="7">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/webkit/WebSettings$ZoomDensity;" />
-		<method name="values()[Landroid/webkit/WebSettings$ZoomDensity;" />
-		<field name="CLOSE" />
-		<field name="FAR" />
-		<field name="MEDIUM" />
-	</class>
-	<class name="android/webkit/WebStorage" since="5">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="deleteAllData()V" since="7" />
-		<method name="deleteOrigin(Ljava/lang/String;)V" since="7" />
-		<method name="getInstance()Landroid/webkit/WebStorage;" since="7" />
-		<method name="getOrigins(Landroid/webkit/ValueCallback;)V" since="7" />
-		<method name="getQuotaForOrigin(Ljava/lang/String;Landroid/webkit/ValueCallback;)V" since="7" />
-		<method name="getUsageForOrigin(Ljava/lang/String;Landroid/webkit/ValueCallback;)V" since="7" />
-		<method name="setQuotaForOrigin(Ljava/lang/String;J)V" since="7" />
-	</class>
-	<class name="android/webkit/WebStorage$Origin" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getOrigin()Ljava/lang/String;" />
-		<method name="getQuota()J" />
-		<method name="getUsage()J" />
-	</class>
-	<class name="android/webkit/WebStorage$QuotaUpdater" since="5">
-		<extends name="java/lang/Object" />
-		<method name="updateQuota(J)V" />
-	</class>
-	<class name="android/webkit/WebSyncManager" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Runnable" />
-		<method name="&lt;init>(Landroid/content/Context;Ljava/lang/String;)V" />
-		<method name="onSyncInit()V" />
-		<method name="resetSync()V" />
-		<method name="startSync()V" />
-		<method name="stopSync()V" />
-		<method name="sync()V" />
-		<field name="LOGTAG" />
-		<field name="mDataBase" />
-		<field name="mHandler" />
-	</class>
-	<class name="android/webkit/WebView" since="1">
-		<extends name="android/widget/AbsoluteLayout" />
-		<implements name="android/view/ViewGroup$OnHierarchyChangeListener" />
-		<implements name="android/view/ViewTreeObserver$OnGlobalFocusChangeListener" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;IZ)V" since="11" />
-		<method name="addJavascriptInterface(Ljava/lang/Object;Ljava/lang/String;)V" />
-		<method name="canGoBack()Z" />
-		<method name="canGoBackOrForward(I)Z" />
-		<method name="canGoForward()Z" />
-		<method name="canZoomIn()Z" since="11" />
-		<method name="canZoomOut()Z" since="11" />
-		<method name="capturePicture()Landroid/graphics/Picture;" />
-		<method name="clearCache(Z)V" />
-		<method name="clearClientCertPreferences(Ljava/lang/Runnable;)V" since="21" />
-		<method name="clearFormData()V" />
-		<method name="clearHistory()V" />
-		<method name="clearMatches()V" since="3" />
-		<method name="clearSslPreferences()V" />
-		<method name="clearView()V" />
-		<method name="copyBackForwardList()Landroid/webkit/WebBackForwardList;" />
-		<method name="createPrintDocumentAdapter()Landroid/print/PrintDocumentAdapter;" since="19" />
-		<method name="createPrintDocumentAdapter(Ljava/lang/String;)Landroid/print/PrintDocumentAdapter;" since="21" />
-		<method name="debugDump()V" />
-		<method name="destroy()V" />
-		<method name="disablePlatformNotifications()V" />
-		<method name="documentHasImages(Landroid/os/Message;)V" />
-		<method name="emulateShiftHeld()V" since="8" />
-		<method name="enablePlatformNotifications()V" />
-		<method name="evaluateJavascript(Ljava/lang/String;Landroid/webkit/ValueCallback;)V" since="19" />
-		<method name="findAddress(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="findAll(Ljava/lang/String;)I" since="3" />
-		<method name="findAllAsync(Ljava/lang/String;)V" since="16" />
-		<method name="findNext(Z)V" since="3" />
-		<method name="flingScroll(II)V" />
-		<method name="freeMemory()V" since="7" />
-		<method name="getCertificate()Landroid/net/http/SslCertificate;" />
-		<method name="getContentHeight()I" />
-		<method name="getFavicon()Landroid/graphics/Bitmap;" />
-		<method name="getHitTestResult()Landroid/webkit/WebView$HitTestResult;" />
-		<method name="getHttpAuthUsernamePassword(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;" />
-		<method name="getOriginalUrl()Ljava/lang/String;" since="3" />
-		<method name="getPluginList()Landroid/webkit/PluginList;" />
-		<method name="getProgress()I" />
-		<method name="getScale()F" />
-		<method name="getSettings()Landroid/webkit/WebSettings;" />
-		<method name="getTitle()Ljava/lang/String;" />
-		<method name="getUrl()Ljava/lang/String;" />
-		<method name="getVisibleTitleHeight()I" since="11" />
-		<method name="getZoomControls()Landroid/view/View;" />
-		<method name="goBack()V" />
-		<method name="goBackOrForward(I)V" />
-		<method name="goForward()V" />
-		<method name="invokeZoomPicker()V" />
-		<method name="isPrivateBrowsingEnabled()Z" since="11" />
-		<method name="loadData(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="loadDataWithBaseURL(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="loadUrl(Ljava/lang/String;)V" />
-		<method name="loadUrl(Ljava/lang/String;Ljava/util/Map;)V" since="8" />
-		<method name="onPause()V" since="11" />
-		<method name="onResume()V" since="11" />
-		<method name="overlayHorizontalScrollbar()Z" />
-		<method name="overlayVerticalScrollbar()Z" />
-		<method name="pageDown(Z)Z" />
-		<method name="pageUp(Z)Z" />
-		<method name="pauseTimers()V" />
-		<method name="postUrl(Ljava/lang/String;[B)V" since="5" />
-		<method name="preauthorizePermission(Landroid/net/Uri;J)V" since="21" />
-		<method name="refreshPlugins(Z)V" />
-		<method name="reload()V" />
-		<method name="removeJavascriptInterface(Ljava/lang/String;)V" since="11" />
-		<method name="requestFocusNodeHref(Landroid/os/Message;)V" />
-		<method name="requestImageRef(Landroid/os/Message;)V" />
-		<method name="restorePicture(Landroid/os/Bundle;Ljava/io/File;)Z" since="3" />
-		<method name="restoreState(Landroid/os/Bundle;)Landroid/webkit/WebBackForwardList;" />
-		<method name="resumeTimers()V" />
-		<method name="savePassword(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="savePicture(Landroid/os/Bundle;Ljava/io/File;)Z" since="3" />
-		<method name="saveState(Landroid/os/Bundle;)Landroid/webkit/WebBackForwardList;" />
-		<method name="saveWebArchive(Ljava/lang/String;)V" since="11" />
-		<method name="saveWebArchive(Ljava/lang/String;ZLandroid/webkit/ValueCallback;)V" since="11" />
-		<method name="setCertificate(Landroid/net/http/SslCertificate;)V" />
-		<method name="setDownloadListener(Landroid/webkit/DownloadListener;)V" />
-		<method name="setFindListener(Landroid/webkit/WebView$FindListener;)V" since="16" />
-		<method name="setHorizontalScrollbarOverlay(Z)V" />
-		<method name="setHttpAuthUsernamePassword(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="setInitialScale(I)V" />
-		<method name="setMapTrackballToArrowKeys(Z)V" />
-		<method name="setNetworkAvailable(Z)V" since="3" />
-		<method name="setPictureListener(Landroid/webkit/WebView$PictureListener;)V" />
-		<method name="setVerticalScrollbarOverlay(Z)V" />
-		<method name="setWebChromeClient(Landroid/webkit/WebChromeClient;)V" />
-		<method name="setWebContentsDebuggingEnabled(Z)V" since="19" />
-		<method name="setWebViewClient(Landroid/webkit/WebViewClient;)V" />
-		<method name="showFindDialog(Ljava/lang/String;Z)Z" since="11" />
-		<method name="stopLoading()V" />
-		<method name="zoomIn()Z" />
-		<method name="zoomOut()Z" />
-		<field name="SCHEME_GEO" />
-		<field name="SCHEME_MAILTO" />
-		<field name="SCHEME_TEL" />
-	</class>
-	<class name="android/webkit/WebView$FindListener" since="16">
-		<extends name="java/lang/Object" />
-		<method name="onFindResultReceived(IIZ)V" />
-	</class>
-	<class name="android/webkit/WebView$HitTestResult" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" since="16" />
-		<method name="&lt;init>(Landroid/webkit/WebView;)V" />
-		<method name="getExtra()Ljava/lang/String;" />
-		<method name="getType()I" />
-		<field name="ANCHOR_TYPE" />
-		<field name="EDIT_TEXT_TYPE" />
-		<field name="EMAIL_TYPE" />
-		<field name="GEO_TYPE" />
-		<field name="IMAGE_ANCHOR_TYPE" />
-		<field name="IMAGE_TYPE" />
-		<field name="PHONE_TYPE" />
-		<field name="SRC_ANCHOR_TYPE" />
-		<field name="SRC_IMAGE_ANCHOR_TYPE" />
-		<field name="UNKNOWN_TYPE" />
-	</class>
-	<class name="android/webkit/WebView$PictureListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onNewPicture(Landroid/webkit/WebView;Landroid/graphics/Picture;)V" />
-	</class>
-	<class name="android/webkit/WebView$WebViewTransport" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/webkit/WebView;)V" />
-		<method name="getWebView()Landroid/webkit/WebView;" />
-		<method name="setWebView(Landroid/webkit/WebView;)V" />
-	</class>
-	<class name="android/webkit/WebViewClient" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="doUpdateVisitedHistory(Landroid/webkit/WebView;Ljava/lang/String;Z)V" />
-		<method name="onFormResubmission(Landroid/webkit/WebView;Landroid/os/Message;Landroid/os/Message;)V" />
-		<method name="onLoadResource(Landroid/webkit/WebView;Ljava/lang/String;)V" />
-		<method name="onPageFinished(Landroid/webkit/WebView;Ljava/lang/String;)V" />
-		<method name="onPageStarted(Landroid/webkit/WebView;Ljava/lang/String;Landroid/graphics/Bitmap;)V" />
-		<method name="onReceivedClientCertRequest(Landroid/webkit/WebView;Landroid/webkit/ClientCertRequest;)V" since="21" />
-		<method name="onReceivedError(Landroid/webkit/WebView;ILjava/lang/String;Ljava/lang/String;)V" />
-		<method name="onReceivedHttpAuthRequest(Landroid/webkit/WebView;Landroid/webkit/HttpAuthHandler;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="onReceivedLoginRequest(Landroid/webkit/WebView;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" since="12" />
-		<method name="onReceivedSslError(Landroid/webkit/WebView;Landroid/webkit/SslErrorHandler;Landroid/net/http/SslError;)V" since="8" />
-		<method name="onScaleChanged(Landroid/webkit/WebView;FF)V" />
-		<method name="onTooManyRedirects(Landroid/webkit/WebView;Landroid/os/Message;Landroid/os/Message;)V" />
-		<method name="onUnhandledInputEvent(Landroid/webkit/WebView;Landroid/view/InputEvent;)V" since="21" />
-		<method name="onUnhandledKeyEvent(Landroid/webkit/WebView;Landroid/view/KeyEvent;)V" />
-		<method name="shouldInterceptRequest(Landroid/webkit/WebView;Ljava/lang/String;)Landroid/webkit/WebResourceResponse;" since="11" />
-		<method name="shouldOverrideKeyEvent(Landroid/webkit/WebView;Landroid/view/KeyEvent;)Z" />
-		<method name="shouldOverrideUrlLoading(Landroid/webkit/WebView;Ljava/lang/String;)Z" />
-		<field name="ERROR_AUTHENTICATION" since="5" />
-		<field name="ERROR_BAD_URL" since="5" />
-		<field name="ERROR_CONNECT" since="5" />
-		<field name="ERROR_FAILED_SSL_HANDSHAKE" since="5" />
-		<field name="ERROR_FILE" since="5" />
-		<field name="ERROR_FILE_NOT_FOUND" since="5" />
-		<field name="ERROR_HOST_LOOKUP" since="5" />
-		<field name="ERROR_IO" since="5" />
-		<field name="ERROR_PROXY_AUTHENTICATION" since="5" />
-		<field name="ERROR_REDIRECT_LOOP" since="5" />
-		<field name="ERROR_TIMEOUT" since="5" />
-		<field name="ERROR_TOO_MANY_REQUESTS" since="5" />
-		<field name="ERROR_UNKNOWN" since="5" />
-		<field name="ERROR_UNSUPPORTED_AUTH_SCHEME" since="5" />
-		<field name="ERROR_UNSUPPORTED_SCHEME" since="5" />
-	</class>
-	<class name="android/webkit/WebViewDatabase" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="clearFormData()V" />
-		<method name="clearHttpAuthUsernamePassword()V" />
-		<method name="clearUsernamePassword()V" />
-		<method name="getInstance(Landroid/content/Context;)Landroid/webkit/WebViewDatabase;" />
-		<method name="hasFormData()Z" />
-		<method name="hasHttpAuthUsernamePassword()Z" />
-		<method name="hasUsernamePassword()Z" />
-		<field name="LOGTAG" />
-	</class>
-	<class name="android/webkit/WebViewFragment" since="11">
-		<extends name="android/app/Fragment" />
-		<method name="&lt;init>()V" />
-		<method name="getWebView()Landroid/webkit/WebView;" />
-	</class>
-	<class name="android/widget/AbsListView" since="1">
-		<extends name="android/widget/AdapterView" />
-		<implements name="android/text/TextWatcher" />
-		<implements name="android/view/ViewTreeObserver$OnGlobalLayoutListener" />
-		<implements name="android/view/ViewTreeObserver$OnTouchModeChangeListener" />
-		<implements name="android/widget/Filter$FilterListener" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="canScrollList(I)Z" since="19" />
-		<method name="clearChoices()V" since="11" />
-		<method name="clearTextFilter()V" />
-		<method name="deferNotifyDataSetChanged()V" since="14" />
-		<method name="generateLayoutParams(Landroid/util/AttributeSet;)Landroid/widget/AbsListView$LayoutParams;" />
-		<method name="getCacheColorHint()I" />
-		<method name="getCheckedItemCount()I" since="11" />
-		<method name="getCheckedItemIds()[J" since="11" />
-		<method name="getCheckedItemPosition()I" since="11" />
-		<method name="getCheckedItemPositions()Landroid/util/SparseBooleanArray;" since="11" />
-		<method name="getChoiceMode()I" since="11" />
-		<method name="getListPaddingBottom()I" />
-		<method name="getListPaddingLeft()I" />
-		<method name="getListPaddingRight()I" />
-		<method name="getListPaddingTop()I" />
-		<method name="getSelector()Landroid/graphics/drawable/Drawable;" />
-		<method name="getTextFilter()Ljava/lang/CharSequence;" since="3" />
-		<method name="getTranscriptMode()I" />
-		<method name="handleDataChanged()V" />
-		<method name="hasTextFilter()Z" />
-		<method name="invalidateViews()V" />
-		<method name="isFastScrollAlwaysVisible()Z" since="11" />
-		<method name="isFastScrollEnabled()Z" since="3" />
-		<method name="isInFilterMode()Z" />
-		<method name="isItemChecked(I)Z" since="11" />
-		<method name="isScrollingCacheEnabled()Z" />
-		<method name="isSmoothScrollbarEnabled()Z" since="3" />
-		<method name="isStackFromBottom()Z" />
-		<method name="isTextFilterEnabled()Z" />
-		<method name="layoutChildren()V" />
-		<method name="onInitializeAccessibilityNodeInfoForItem(Landroid/view/View;ILandroid/view/accessibility/AccessibilityNodeInfo;)V" since="19" />
-		<method name="onRemoteAdapterConnected()Z" since="11" />
-		<method name="onRemoteAdapterDisconnected()V" since="11" />
-		<method name="pointToPosition(II)I" />
-		<method name="pointToRowId(II)J" />
-		<method name="reclaimViews(Ljava/util/List;)V" />
-		<method name="scrollListBy(I)V" since="19" />
-		<method name="setAdapter(Landroid/widget/ListAdapter;)V" since="11" />
-		<method name="setCacheColorHint(I)V" />
-		<method name="setChoiceMode(I)V" since="11" />
-		<method name="setDrawSelectorOnTop(Z)V" />
-		<method name="setFastScrollAlwaysVisible(Z)V" since="11" />
-		<method name="setFastScrollEnabled(Z)V" since="3" />
-		<method name="setFastScrollStyle(I)V" since="21" />
-		<method name="setFilterText(Ljava/lang/String;)V" />
-		<method name="setFriction(F)V" since="11" />
-		<method name="setItemChecked(IZ)V" since="11" />
-		<method name="setMultiChoiceModeListener(Landroid/widget/AbsListView$MultiChoiceModeListener;)V" since="11" />
-		<method name="setOnScrollListener(Landroid/widget/AbsListView$OnScrollListener;)V" />
-		<method name="setRecyclerListener(Landroid/widget/AbsListView$RecyclerListener;)V" />
-		<method name="setRemoteViewsAdapter(Landroid/content/Intent;)V" since="11" />
-		<method name="setScrollIndicators(Landroid/view/View;Landroid/view/View;)V" />
-		<method name="setScrollingCacheEnabled(Z)V" />
-		<method name="setSelectionFromTop(II)V" since="21" />
-		<method name="setSelector(I)V" />
-		<method name="setSelector(Landroid/graphics/drawable/Drawable;)V" />
-		<method name="setSmoothScrollbarEnabled(Z)V" since="3" />
-		<method name="setStackFromBottom(Z)V" />
-		<method name="setTextFilterEnabled(Z)V" />
-		<method name="setTranscriptMode(I)V" />
-		<method name="setVelocityScale(F)V" since="11" />
-		<method name="smoothScrollBy(II)V" since="8" />
-		<method name="smoothScrollToPosition(I)V" since="8" />
-		<method name="smoothScrollToPosition(II)V" since="8" />
-		<method name="smoothScrollToPositionFromTop(II)V" since="11" />
-		<method name="smoothScrollToPositionFromTop(III)V" since="11" />
-		<field name="CHOICE_MODE_MULTIPLE" since="11" />
-		<field name="CHOICE_MODE_MULTIPLE_MODAL" since="11" />
-		<field name="CHOICE_MODE_NONE" since="11" />
-		<field name="CHOICE_MODE_SINGLE" since="11" />
-		<field name="TRANSCRIPT_MODE_ALWAYS_SCROLL" />
-		<field name="TRANSCRIPT_MODE_DISABLED" />
-		<field name="TRANSCRIPT_MODE_NORMAL" />
-	</class>
-	<class name="android/widget/AbsListView$LayoutParams" since="1">
-		<extends name="android/view/ViewGroup$LayoutParams" />
-		<method name="&lt;init>(II)V" />
-		<method name="&lt;init>(III)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/view/ViewGroup$LayoutParams;)V" />
-	</class>
-	<class name="android/widget/AbsListView$MultiChoiceModeListener" since="11">
-		<extends name="java/lang/Object" />
-		<implements name="android/view/ActionMode$Callback" />
-		<method name="onItemCheckedStateChanged(Landroid/view/ActionMode;IJZ)V" />
-	</class>
-	<class name="android/widget/AbsListView$OnScrollListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onScroll(Landroid/widget/AbsListView;III)V" />
-		<method name="onScrollStateChanged(Landroid/widget/AbsListView;I)V" />
-		<field name="SCROLL_STATE_FLING" />
-		<field name="SCROLL_STATE_IDLE" />
-		<field name="SCROLL_STATE_TOUCH_SCROLL" />
-	</class>
-	<class name="android/widget/AbsListView$RecyclerListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onMovedToScrapHeap(Landroid/view/View;)V" />
-	</class>
-	<class name="android/widget/AbsListView$SelectionBoundsAdjuster" since="11">
-		<extends name="java/lang/Object" />
-		<method name="adjustListItemSelectionBounds(Landroid/graphics/Rect;)V" />
-	</class>
-	<class name="android/widget/AbsSeekBar" since="1">
-		<extends name="android/widget/ProgressBar" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="getKeyProgressIncrement()I" since="3" />
-		<method name="getSplitTrack()Z" since="21" />
-		<method name="getThumb()Landroid/graphics/drawable/Drawable;" since="16" />
-		<method name="getThumbOffset()I" />
-		<method name="setKeyProgressIncrement(I)V" since="3" />
-		<method name="setSplitTrack(Z)V" since="21" />
-		<method name="setThumb(Landroid/graphics/drawable/Drawable;)V" />
-		<method name="setThumbOffset(I)V" />
-	</class>
-	<class name="android/widget/AbsSpinner" since="1">
-		<extends name="android/widget/AdapterView" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="getAdapter()Landroid/widget/SpinnerAdapter;" />
-		<method name="pointToPosition(II)I" />
-		<method name="setAdapter(Landroid/widget/SpinnerAdapter;)V" />
-		<method name="setSelection(IZ)V" />
-	</class>
-	<class name="android/widget/AbsoluteLayout" since="1">
-		<extends name="android/view/ViewGroup" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-	</class>
-	<class name="android/widget/AbsoluteLayout$LayoutParams" since="1">
-		<extends name="android/view/ViewGroup$LayoutParams" />
-		<method name="&lt;init>(IIII)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/view/ViewGroup$LayoutParams;)V" />
-		<method name="debug(Ljava/lang/String;)Ljava/lang/String;" />
-		<field name="x" />
-		<field name="y" />
-	</class>
-	<class name="android/widget/ActionMenuView" since="21">
-		<extends name="android/widget/LinearLayout" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="dismissPopupMenus()V" />
-		<method name="generateDefaultLayoutParams()Landroid/widget/ActionMenuView$LayoutParams;" />
-		<method name="generateLayoutParams(Landroid/util/AttributeSet;)Landroid/widget/ActionMenuView$LayoutParams;" />
-		<method name="generateLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Landroid/widget/ActionMenuView$LayoutParams;" />
-		<method name="getMenu()Landroid/view/Menu;" />
-		<method name="hideOverflowMenu()Z" />
-		<method name="isOverflowMenuShowing()Z" />
-		<method name="setOnMenuItemClickListener(Landroid/widget/ActionMenuView$OnMenuItemClickListener;)V" />
-		<method name="showOverflowMenu()Z" />
-	</class>
-	<class name="android/widget/ActionMenuView$LayoutParams" since="21">
-		<extends name="android/widget/LinearLayout$LayoutParams" />
-		<method name="&lt;init>(II)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/view/ViewGroup$LayoutParams;)V" />
-		<method name="&lt;init>(Landroid/widget/ActionMenuView$LayoutParams;)V" />
-	</class>
-	<class name="android/widget/ActionMenuView$OnMenuItemClickListener" since="21">
-		<extends name="java/lang/Object" />
-		<method name="onMenuItemClick(Landroid/view/MenuItem;)Z" />
-	</class>
-	<class name="android/widget/Adapter" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getCount()I" />
-		<method name="getItem(I)Ljava/lang/Object;" />
-		<method name="getItemId(I)J" />
-		<method name="getItemViewType(I)I" />
-		<method name="getView(ILandroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View;" />
-		<method name="getViewTypeCount()I" />
-		<method name="hasStableIds()Z" />
-		<method name="isEmpty()Z" />
-		<method name="registerDataSetObserver(Landroid/database/DataSetObserver;)V" />
-		<method name="unregisterDataSetObserver(Landroid/database/DataSetObserver;)V" />
-		<field name="IGNORE_ITEM_VIEW_TYPE" />
-		<field name="NO_SELECTION" />
-	</class>
-	<class name="android/widget/AdapterView" since="1">
-		<extends name="android/view/ViewGroup" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="getAdapter()Landroid/widget/Adapter;" />
-		<method name="getCount()I" />
-		<method name="getEmptyView()Landroid/view/View;" />
-		<method name="getFirstVisiblePosition()I" />
-		<method name="getItemAtPosition(I)Ljava/lang/Object;" />
-		<method name="getItemIdAtPosition(I)J" />
-		<method name="getLastVisiblePosition()I" />
-		<method name="getOnItemClickListener()Landroid/widget/AdapterView$OnItemClickListener;" />
-		<method name="getOnItemLongClickListener()Landroid/widget/AdapterView$OnItemLongClickListener;" />
-		<method name="getOnItemSelectedListener()Landroid/widget/AdapterView$OnItemSelectedListener;" />
-		<method name="getPositionForView(Landroid/view/View;)I" />
-		<method name="getSelectedItem()Ljava/lang/Object;" />
-		<method name="getSelectedItemId()J" />
-		<method name="getSelectedItemPosition()I" />
-		<method name="getSelectedView()Landroid/view/View;" />
-		<method name="performItemClick(Landroid/view/View;IJ)Z" />
-		<method name="setAdapter(Landroid/widget/Adapter;)V" />
-		<method name="setEmptyView(Landroid/view/View;)V" />
-		<method name="setOnItemClickListener(Landroid/widget/AdapterView$OnItemClickListener;)V" />
-		<method name="setOnItemLongClickListener(Landroid/widget/AdapterView$OnItemLongClickListener;)V" />
-		<method name="setOnItemSelectedListener(Landroid/widget/AdapterView$OnItemSelectedListener;)V" />
-		<method name="setSelection(I)V" />
-		<field name="INVALID_POSITION" />
-		<field name="INVALID_ROW_ID" />
-		<field name="ITEM_VIEW_TYPE_HEADER_OR_FOOTER" />
-		<field name="ITEM_VIEW_TYPE_IGNORE" />
-	</class>
-	<class name="android/widget/AdapterView$AdapterContextMenuInfo" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/view/ContextMenu$ContextMenuInfo" />
-		<method name="&lt;init>(Landroid/view/View;IJ)V" />
-		<field name="id" />
-		<field name="position" />
-		<field name="targetView" />
-	</class>
-	<class name="android/widget/AdapterView$OnItemClickListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onItemClick(Landroid/widget/AdapterView;Landroid/view/View;IJ)V" />
-	</class>
-	<class name="android/widget/AdapterView$OnItemLongClickListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onItemLongClick(Landroid/widget/AdapterView;Landroid/view/View;IJ)Z" />
-	</class>
-	<class name="android/widget/AdapterView$OnItemSelectedListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onItemSelected(Landroid/widget/AdapterView;Landroid/view/View;IJ)V" />
-		<method name="onNothingSelected(Landroid/widget/AdapterView;)V" />
-	</class>
-	<class name="android/widget/AdapterViewAnimator" since="11">
-		<extends name="android/widget/AdapterView" />
-		<implements name="android/widget/Advanceable" since="16" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" since="14" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="advance()V" />
-		<method name="deferNotifyDataSetChanged()V" since="14" />
-		<method name="fyiWillBeAdvancedByHostKThx()V" />
-		<method name="getCurrentView()Landroid/view/View;" />
-		<method name="getDisplayedChild()I" />
-		<method name="getInAnimation()Landroid/animation/ObjectAnimator;" />
-		<method name="getOutAnimation()Landroid/animation/ObjectAnimator;" />
-		<method name="onRemoteAdapterConnected()Z" />
-		<method name="onRemoteAdapterDisconnected()V" />
-		<method name="setAnimateFirstView(Z)V" />
-		<method name="setDisplayedChild(I)V" />
-		<method name="setInAnimation(Landroid/animation/ObjectAnimator;)V" />
-		<method name="setInAnimation(Landroid/content/Context;I)V" />
-		<method name="setOutAnimation(Landroid/animation/ObjectAnimator;)V" />
-		<method name="setOutAnimation(Landroid/content/Context;I)V" />
-		<method name="setRemoteViewsAdapter(Landroid/content/Intent;)V" />
-		<method name="showNext()V" />
-		<method name="showPrevious()V" />
-	</class>
-	<class name="android/widget/AdapterViewFlipper" since="11">
-		<extends name="android/widget/AdapterViewAnimator" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" since="21" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="getFlipInterval()I" since="16" />
-		<method name="isAutoStart()Z" />
-		<method name="isFlipping()Z" />
-		<method name="setAutoStart(Z)V" />
-		<method name="setFlipInterval(I)V" />
-		<method name="startFlipping()V" />
-		<method name="stopFlipping()V" />
-	</class>
-	<class name="android/widget/Advanceable" since="16">
-		<extends name="java/lang/Object" />
-		<method name="advance()V" />
-		<method name="fyiWillBeAdvancedByHostKThx()V" />
-	</class>
-	<class name="android/widget/AlphabetIndexer" since="3">
-		<extends name="android/database/DataSetObserver" />
-		<implements name="android/widget/SectionIndexer" />
-		<method name="&lt;init>(Landroid/database/Cursor;ILjava/lang/CharSequence;)V" />
-		<method name="compare(Ljava/lang/String;Ljava/lang/String;)I" />
-		<method name="setCursor(Landroid/database/Cursor;)V" />
-		<field name="mAlphabet" />
-		<field name="mColumnIndex" />
-		<field name="mDataCursor" />
-	</class>
-	<class name="android/widget/AnalogClock" since="1">
-		<extends name="android/view/View" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-	</class>
-	<class name="android/widget/ArrayAdapter" since="1">
-		<extends name="android/widget/BaseAdapter" />
-		<implements name="android/widget/Filterable" />
-		<method name="&lt;init>(Landroid/content/Context;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;II)V" />
-		<method name="&lt;init>(Landroid/content/Context;IILjava/util/List;)V" />
-		<method name="&lt;init>(Landroid/content/Context;II[Ljava/lang/Object;)V" />
-		<method name="&lt;init>(Landroid/content/Context;ILjava/util/List;)V" />
-		<method name="&lt;init>(Landroid/content/Context;I[Ljava/lang/Object;)V" />
-		<method name="add(Ljava/lang/Object;)V" />
-		<method name="addAll(Ljava/util/Collection;)V" since="11" />
-		<method name="addAll([Ljava/lang/Object;)V" since="11" />
-		<method name="clear()V" />
-		<method name="createFromResource(Landroid/content/Context;II)Landroid/widget/ArrayAdapter;" />
-		<method name="getContext()Landroid/content/Context;" />
-		<method name="getPosition(Ljava/lang/Object;)I" />
-		<method name="insert(Ljava/lang/Object;I)V" />
-		<method name="remove(Ljava/lang/Object;)V" />
-		<method name="setDropDownViewResource(I)V" />
-		<method name="setNotifyOnChange(Z)V" />
-		<method name="sort(Ljava/util/Comparator;)V" since="3" />
-	</class>
-	<class name="android/widget/AutoCompleteTextView" since="1">
-		<extends name="android/widget/EditText" />
-		<implements name="android/widget/Filter$FilterListener" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="clearListSelection()V" since="3" />
-		<method name="convertSelectionToString(Ljava/lang/Object;)Ljava/lang/CharSequence;" />
-		<method name="dismissDropDown()V" />
-		<method name="enoughToFilter()Z" />
-		<method name="getAdapter()Landroid/widget/ListAdapter;" />
-		<method name="getCompletionHint()Ljava/lang/CharSequence;" since="16" />
-		<method name="getDropDownAnchor()I" since="3" />
-		<method name="getDropDownBackground()Landroid/graphics/drawable/Drawable;" since="5" />
-		<method name="getDropDownHeight()I" since="4" />
-		<method name="getDropDownHorizontalOffset()I" since="5" />
-		<method name="getDropDownVerticalOffset()I" since="5" />
-		<method name="getDropDownWidth()I" since="3" />
-		<method name="getFilter()Landroid/widget/Filter;" />
-		<method name="getItemClickListener()Landroid/widget/AdapterView$OnItemClickListener;" />
-		<method name="getItemSelectedListener()Landroid/widget/AdapterView$OnItemSelectedListener;" />
-		<method name="getListSelection()I" since="3" />
-		<method name="getOnItemClickListener()Landroid/widget/AdapterView$OnItemClickListener;" since="3" />
-		<method name="getOnItemSelectedListener()Landroid/widget/AdapterView$OnItemSelectedListener;" since="3" />
-		<method name="getThreshold()I" />
-		<method name="getValidator()Landroid/widget/AutoCompleteTextView$Validator;" />
-		<method name="isPerformingCompletion()Z" since="3" />
-		<method name="isPopupShowing()Z" />
-		<method name="performCompletion()V" />
-		<method name="performFiltering(Ljava/lang/CharSequence;I)V" />
-		<method name="performValidation()V" />
-		<method name="replaceText(Ljava/lang/CharSequence;)V" />
-		<method name="setAdapter(Landroid/widget/ListAdapter;)V" />
-		<method name="setCompletionHint(Ljava/lang/CharSequence;)V" />
-		<method name="setDropDownAnchor(I)V" since="3" />
-		<method name="setDropDownBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V" since="5" />
-		<method name="setDropDownBackgroundResource(I)V" since="5" />
-		<method name="setDropDownHeight(I)V" since="4" />
-		<method name="setDropDownHorizontalOffset(I)V" since="5" />
-		<method name="setDropDownVerticalOffset(I)V" since="5" />
-		<method name="setDropDownWidth(I)V" since="3" />
-		<method name="setListSelection(I)V" since="3" />
-		<method name="setOnDismissListener(Landroid/widget/AutoCompleteTextView$OnDismissListener;)V" since="17" />
-		<method name="setOnItemClickListener(Landroid/widget/AdapterView$OnItemClickListener;)V" />
-		<method name="setOnItemSelectedListener(Landroid/widget/AdapterView$OnItemSelectedListener;)V" />
-		<method name="setText(Ljava/lang/CharSequence;Z)V" since="17" />
-		<method name="setThreshold(I)V" />
-		<method name="setValidator(Landroid/widget/AutoCompleteTextView$Validator;)V" />
-		<method name="showDropDown()V" />
-	</class>
-	<class name="android/widget/AutoCompleteTextView$OnDismissListener" since="17">
-		<extends name="java/lang/Object" />
-		<method name="onDismiss()V" />
-	</class>
-	<class name="android/widget/AutoCompleteTextView$Validator" since="1">
-		<extends name="java/lang/Object" />
-		<method name="fixText(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;" />
-		<method name="isValid(Ljava/lang/CharSequence;)Z" />
-	</class>
-	<class name="android/widget/BaseAdapter" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/widget/ListAdapter" />
-		<implements name="android/widget/SpinnerAdapter" />
-		<method name="&lt;init>()V" />
-		<method name="notifyDataSetChanged()V" />
-		<method name="notifyDataSetInvalidated()V" />
-	</class>
-	<class name="android/widget/BaseExpandableListAdapter" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/widget/ExpandableListAdapter" />
-		<implements name="android/widget/HeterogeneousExpandableList" since="8" />
-		<method name="&lt;init>()V" />
-		<method name="notifyDataSetChanged()V" />
-		<method name="notifyDataSetInvalidated()V" />
-	</class>
-	<class name="android/widget/Button" since="1">
-		<extends name="android/widget/TextView" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-	</class>
-	<class name="android/widget/CalendarView" since="11">
-		<extends name="android/widget/FrameLayout" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="getDate()J" />
-		<method name="getDateTextAppearance()I" since="16" />
-		<method name="getFirstDayOfWeek()I" />
-		<method name="getFocusedMonthDateColor()I" since="16" />
-		<method name="getMaxDate()J" />
-		<method name="getMinDate()J" />
-		<method name="getSelectedDateVerticalBar()Landroid/graphics/drawable/Drawable;" since="16" />
-		<method name="getSelectedWeekBackgroundColor()I" since="16" />
-		<method name="getShowWeekNumber()Z" />
-		<method name="getShownWeekCount()I" since="16" />
-		<method name="getUnfocusedMonthDateColor()I" since="16" />
-		<method name="getWeekDayTextAppearance()I" since="16" />
-		<method name="getWeekNumberColor()I" since="16" />
-		<method name="getWeekSeparatorLineColor()I" since="16" />
-		<method name="setDate(J)V" />
-		<method name="setDate(JZZ)V" />
-		<method name="setDateTextAppearance(I)V" since="16" />
-		<method name="setFirstDayOfWeek(I)V" />
-		<method name="setFocusedMonthDateColor(I)V" since="16" />
-		<method name="setMaxDate(J)V" />
-		<method name="setMinDate(J)V" />
-		<method name="setOnDateChangeListener(Landroid/widget/CalendarView$OnDateChangeListener;)V" />
-		<method name="setSelectedDateVerticalBar(I)V" since="16" />
-		<method name="setSelectedDateVerticalBar(Landroid/graphics/drawable/Drawable;)V" since="16" />
-		<method name="setSelectedWeekBackgroundColor(I)V" since="16" />
-		<method name="setShowWeekNumber(Z)V" />
-		<method name="setShownWeekCount(I)V" since="16" />
-		<method name="setUnfocusedMonthDateColor(I)V" since="16" />
-		<method name="setWeekDayTextAppearance(I)V" since="16" />
-		<method name="setWeekNumberColor(I)V" since="16" />
-		<method name="setWeekSeparatorLineColor(I)V" since="16" />
-	</class>
-	<class name="android/widget/CalendarView$OnDateChangeListener" since="11">
-		<extends name="java/lang/Object" />
-		<method name="onSelectedDayChange(Landroid/widget/CalendarView;III)V" />
-	</class>
-	<class name="android/widget/CheckBox" since="1">
-		<extends name="android/widget/CompoundButton" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-	</class>
-	<class name="android/widget/Checkable" since="1">
-		<extends name="java/lang/Object" />
-		<method name="isChecked()Z" />
-		<method name="setChecked(Z)V" />
-		<method name="toggle()V" />
-	</class>
-	<class name="android/widget/CheckedTextView" since="1">
-		<extends name="android/widget/TextView" />
-		<implements name="android/widget/Checkable" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="getCheckMarkDrawable()Landroid/graphics/drawable/Drawable;" since="16" />
-		<method name="onPaddingChanged(I)V" since="16" />
-		<method name="setCheckMarkDrawable(I)V" />
-		<method name="setCheckMarkDrawable(Landroid/graphics/drawable/Drawable;)V" />
-	</class>
-	<class name="android/widget/Chronometer" since="1">
-		<extends name="android/widget/TextView" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="getBase()J" />
-		<method name="getFormat()Ljava/lang/String;" />
-		<method name="getOnChronometerTickListener()Landroid/widget/Chronometer$OnChronometerTickListener;" since="3" />
-		<method name="setBase(J)V" />
-		<method name="setFormat(Ljava/lang/String;)V" />
-		<method name="setOnChronometerTickListener(Landroid/widget/Chronometer$OnChronometerTickListener;)V" since="3" />
-		<method name="start()V" />
-		<method name="stop()V" />
-	</class>
-	<class name="android/widget/Chronometer$OnChronometerTickListener" since="3">
-		<extends name="java/lang/Object" />
-		<method name="onChronometerTick(Landroid/widget/Chronometer;)V" />
-	</class>
-	<class name="android/widget/CompoundButton" since="1">
-		<extends name="android/widget/Button" />
-		<implements name="android/widget/Checkable" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="setButtonDrawable(I)V" />
-		<method name="setButtonDrawable(Landroid/graphics/drawable/Drawable;)V" />
-		<method name="setOnCheckedChangeListener(Landroid/widget/CompoundButton$OnCheckedChangeListener;)V" />
-	</class>
-	<class name="android/widget/CompoundButton$OnCheckedChangeListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onCheckedChanged(Landroid/widget/CompoundButton;Z)V" />
-	</class>
-	<class name="android/widget/CursorAdapter" since="1">
-		<extends name="android/widget/BaseAdapter" />
-		<implements name="android/widget/Filterable" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/database/Cursor;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/database/Cursor;I)V" since="11" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/database/Cursor;Z)V" />
-		<method name="bindView(Landroid/view/View;Landroid/content/Context;Landroid/database/Cursor;)V" />
-		<method name="changeCursor(Landroid/database/Cursor;)V" />
-		<method name="convertToString(Landroid/database/Cursor;)Ljava/lang/CharSequence;" />
-		<method name="getCursor()Landroid/database/Cursor;" />
-		<method name="getFilterQueryProvider()Landroid/widget/FilterQueryProvider;" />
-		<method name="init(Landroid/content/Context;Landroid/database/Cursor;Z)V" />
-		<method name="newDropDownView(Landroid/content/Context;Landroid/database/Cursor;Landroid/view/ViewGroup;)Landroid/view/View;" />
-		<method name="newView(Landroid/content/Context;Landroid/database/Cursor;Landroid/view/ViewGroup;)Landroid/view/View;" />
-		<method name="onContentChanged()V" since="3" />
-		<method name="runQueryOnBackgroundThread(Ljava/lang/CharSequence;)Landroid/database/Cursor;" />
-		<method name="setFilterQueryProvider(Landroid/widget/FilterQueryProvider;)V" />
-		<method name="swapCursor(Landroid/database/Cursor;)Landroid/database/Cursor;" since="11" />
-		<field name="FLAG_AUTO_REQUERY" since="11" />
-		<field name="FLAG_REGISTER_CONTENT_OBSERVER" since="11" />
-	</class>
-	<class name="android/widget/CursorTreeAdapter" since="1">
-		<extends name="android/widget/BaseExpandableListAdapter" />
-		<implements name="android/widget/Filterable" />
-		<method name="&lt;init>(Landroid/database/Cursor;Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/database/Cursor;Landroid/content/Context;Z)V" />
-		<method name="bindChildView(Landroid/view/View;Landroid/content/Context;Landroid/database/Cursor;Z)V" />
-		<method name="bindGroupView(Landroid/view/View;Landroid/content/Context;Landroid/database/Cursor;Z)V" />
-		<method name="changeCursor(Landroid/database/Cursor;)V" />
-		<method name="convertToString(Landroid/database/Cursor;)Ljava/lang/String;" />
-		<method name="getChild(II)Landroid/database/Cursor;" />
-		<method name="getChildrenCursor(Landroid/database/Cursor;)Landroid/database/Cursor;" />
-		<method name="getCursor()Landroid/database/Cursor;" />
-		<method name="getFilterQueryProvider()Landroid/widget/FilterQueryProvider;" />
-		<method name="getGroup(I)Landroid/database/Cursor;" />
-		<method name="newChildView(Landroid/content/Context;Landroid/database/Cursor;ZLandroid/view/ViewGroup;)Landroid/view/View;" />
-		<method name="newGroupView(Landroid/content/Context;Landroid/database/Cursor;ZLandroid/view/ViewGroup;)Landroid/view/View;" />
-		<method name="notifyDataSetChanged(Z)V" />
-		<method name="runQueryOnBackgroundThread(Ljava/lang/CharSequence;)Landroid/database/Cursor;" />
-		<method name="setChildrenCursor(ILandroid/database/Cursor;)V" />
-		<method name="setFilterQueryProvider(Landroid/widget/FilterQueryProvider;)V" />
-		<method name="setGroupCursor(Landroid/database/Cursor;)V" />
-	</class>
-	<class name="android/widget/DatePicker" since="1">
-		<extends name="android/widget/FrameLayout" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="getCalendarView()Landroid/widget/CalendarView;" since="12" />
-		<method name="getCalendarViewShown()Z" since="11" />
-		<method name="getDayOfMonth()I" />
-		<method name="getMaxDate()J" since="11" />
-		<method name="getMinDate()J" since="11" />
-		<method name="getMonth()I" />
-		<method name="getSpinnersShown()Z" since="11" />
-		<method name="getYear()I" />
-		<method name="init(IIILandroid/widget/DatePicker$OnDateChangedListener;)V" />
-		<method name="setCalendarViewShown(Z)V" since="11" />
-		<method name="setMaxDate(J)V" since="11" />
-		<method name="setMinDate(J)V" since="11" />
-		<method name="setSpinnersShown(Z)V" since="11" />
-		<method name="updateDate(III)V" />
-	</class>
-	<class name="android/widget/DatePicker$OnDateChangedListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onDateChanged(Landroid/widget/DatePicker;III)V" />
-	</class>
-	<class name="android/widget/DialerFilter" since="1">
-		<extends name="android/widget/RelativeLayout" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="append(Ljava/lang/String;)V" />
-		<method name="clearText()V" />
-		<method name="getDigits()Ljava/lang/CharSequence;" />
-		<method name="getFilterText()Ljava/lang/CharSequence;" />
-		<method name="getLetters()Ljava/lang/CharSequence;" />
-		<method name="getMode()I" />
-		<method name="isQwertyKeyboard()Z" />
-		<method name="onModeChange(II)V" />
-		<method name="removeFilterWatcher(Landroid/text/TextWatcher;)V" />
-		<method name="setDigitsWatcher(Landroid/text/TextWatcher;)V" />
-		<method name="setFilterWatcher(Landroid/text/TextWatcher;)V" />
-		<method name="setLettersWatcher(Landroid/text/TextWatcher;)V" />
-		<method name="setMode(I)V" />
-		<field name="DIGITS_AND_LETTERS" />
-		<field name="DIGITS_AND_LETTERS_NO_DIGITS" />
-		<field name="DIGITS_AND_LETTERS_NO_LETTERS" />
-		<field name="DIGITS_ONLY" />
-		<field name="LETTERS_ONLY" />
-	</class>
-	<class name="android/widget/DigitalClock" since="1">
-		<extends name="android/widget/TextView" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-	</class>
-	<class name="android/widget/EdgeEffect" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="draw(Landroid/graphics/Canvas;)Z" />
-		<method name="finish()V" />
-		<method name="getMaxHeight()I" since="21" />
-		<method name="isFinished()Z" />
-		<method name="onAbsorb(I)V" />
-		<method name="onPull(F)V" />
-		<method name="onPull(FF)V" since="21" />
-		<method name="onRelease()V" />
-		<method name="setSize(II)V" />
-	</class>
-	<class name="android/widget/EditText" since="1">
-		<extends name="android/widget/TextView" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="extendSelection(I)V" />
-		<method name="getText()Landroid/text/Editable;" />
-		<method name="selectAll()V" />
-		<method name="setSelection(I)V" />
-		<method name="setSelection(II)V" />
-	</class>
-	<class name="android/widget/ExpandableListAdapter" since="1">
-		<extends name="java/lang/Object" />
-		<method name="areAllItemsEnabled()Z" />
-		<method name="getChild(II)Ljava/lang/Object;" />
-		<method name="getChildId(II)J" />
-		<method name="getChildView(IIZLandroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View;" />
-		<method name="getChildrenCount(I)I" />
-		<method name="getCombinedChildId(JJ)J" />
-		<method name="getCombinedGroupId(J)J" />
-		<method name="getGroup(I)Ljava/lang/Object;" />
-		<method name="getGroupCount()I" />
-		<method name="getGroupId(I)J" />
-		<method name="getGroupView(IZLandroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View;" />
-		<method name="hasStableIds()Z" />
-		<method name="isChildSelectable(II)Z" />
-		<method name="isEmpty()Z" />
-		<method name="onGroupCollapsed(I)V" />
-		<method name="onGroupExpanded(I)V" />
-		<method name="registerDataSetObserver(Landroid/database/DataSetObserver;)V" />
-		<method name="unregisterDataSetObserver(Landroid/database/DataSetObserver;)V" />
-	</class>
-	<class name="android/widget/ExpandableListView" since="1">
-		<extends name="android/widget/ListView" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="collapseGroup(I)Z" />
-		<method name="expandGroup(I)Z" />
-		<method name="expandGroup(IZ)Z" since="14" />
-		<method name="getExpandableListAdapter()Landroid/widget/ExpandableListAdapter;" />
-		<method name="getExpandableListPosition(I)J" />
-		<method name="getFlatListPosition(J)I" />
-		<method name="getPackedPositionChild(J)I" />
-		<method name="getPackedPositionForChild(II)J" />
-		<method name="getPackedPositionForGroup(I)J" />
-		<method name="getPackedPositionGroup(J)I" />
-		<method name="getPackedPositionType(J)I" />
-		<method name="getSelectedId()J" />
-		<method name="getSelectedPosition()J" />
-		<method name="isGroupExpanded(I)Z" />
-		<method name="setAdapter(Landroid/widget/ExpandableListAdapter;)V" />
-		<method name="setChildDivider(Landroid/graphics/drawable/Drawable;)V" />
-		<method name="setChildIndicator(Landroid/graphics/drawable/Drawable;)V" />
-		<method name="setChildIndicatorBounds(II)V" />
-		<method name="setChildIndicatorBoundsRelative(II)V" since="18" />
-		<method name="setGroupIndicator(Landroid/graphics/drawable/Drawable;)V" />
-		<method name="setIndicatorBounds(II)V" />
-		<method name="setIndicatorBoundsRelative(II)V" since="18" />
-		<method name="setOnChildClickListener(Landroid/widget/ExpandableListView$OnChildClickListener;)V" />
-		<method name="setOnGroupClickListener(Landroid/widget/ExpandableListView$OnGroupClickListener;)V" />
-		<method name="setOnGroupCollapseListener(Landroid/widget/ExpandableListView$OnGroupCollapseListener;)V" />
-		<method name="setOnGroupExpandListener(Landroid/widget/ExpandableListView$OnGroupExpandListener;)V" />
-		<method name="setSelectedChild(IIZ)Z" />
-		<method name="setSelectedGroup(I)V" />
-		<field name="CHILD_INDICATOR_INHERIT" />
-		<field name="PACKED_POSITION_TYPE_CHILD" />
-		<field name="PACKED_POSITION_TYPE_GROUP" />
-		<field name="PACKED_POSITION_TYPE_NULL" />
-		<field name="PACKED_POSITION_VALUE_NULL" />
-	</class>
-	<class name="android/widget/ExpandableListView$ExpandableListContextMenuInfo" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/view/ContextMenu$ContextMenuInfo" />
-		<method name="&lt;init>(Landroid/view/View;JJ)V" />
-		<field name="id" />
-		<field name="packedPosition" />
-		<field name="targetView" />
-	</class>
-	<class name="android/widget/ExpandableListView$OnChildClickListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onChildClick(Landroid/widget/ExpandableListView;Landroid/view/View;IIJ)Z" />
-	</class>
-	<class name="android/widget/ExpandableListView$OnGroupClickListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onGroupClick(Landroid/widget/ExpandableListView;Landroid/view/View;IJ)Z" />
-	</class>
-	<class name="android/widget/ExpandableListView$OnGroupCollapseListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onGroupCollapse(I)V" />
-	</class>
-	<class name="android/widget/ExpandableListView$OnGroupExpandListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onGroupExpand(I)V" />
-	</class>
-	<class name="android/widget/Filter" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="convertResultToString(Ljava/lang/Object;)Ljava/lang/CharSequence;" />
-		<method name="filter(Ljava/lang/CharSequence;)V" />
-		<method name="filter(Ljava/lang/CharSequence;Landroid/widget/Filter$FilterListener;)V" />
-		<method name="performFiltering(Ljava/lang/CharSequence;)Landroid/widget/Filter$FilterResults;" />
-		<method name="publishResults(Ljava/lang/CharSequence;Landroid/widget/Filter$FilterResults;)V" />
-	</class>
-	<class name="android/widget/Filter$FilterListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onFilterComplete(I)V" />
-	</class>
-	<class name="android/widget/Filter$FilterResults" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="count" />
-		<field name="values" />
-	</class>
-	<class name="android/widget/FilterQueryProvider" since="1">
-		<extends name="java/lang/Object" />
-		<method name="runQuery(Ljava/lang/CharSequence;)Landroid/database/Cursor;" />
-	</class>
-	<class name="android/widget/Filterable" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getFilter()Landroid/widget/Filter;" />
-	</class>
-	<class name="android/widget/FrameLayout" since="1">
-		<extends name="android/view/ViewGroup" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="generateDefaultLayoutParams()Landroid/widget/FrameLayout$LayoutParams;" />
-		<method name="generateLayoutParams(Landroid/util/AttributeSet;)Landroid/widget/FrameLayout$LayoutParams;" />
-		<method name="getConsiderGoneChildrenWhenMeasuring()Z" />
-		<method name="getForeground()Landroid/graphics/drawable/Drawable;" />
-		<method name="getForegroundGravity()I" since="16" />
-		<method name="getMeasureAllChildren()Z" since="14" />
-		<method name="setForeground(Landroid/graphics/drawable/Drawable;)V" />
-		<method name="setForegroundGravity(I)V" />
-		<method name="setMeasureAllChildren(Z)V" />
-	</class>
-	<class name="android/widget/FrameLayout$LayoutParams" since="1">
-		<extends name="android/view/ViewGroup$MarginLayoutParams" />
-		<method name="&lt;init>(II)V" />
-		<method name="&lt;init>(III)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/view/ViewGroup$LayoutParams;)V" />
-		<method name="&lt;init>(Landroid/view/ViewGroup$MarginLayoutParams;)V" />
-		<method name="&lt;init>(Landroid/widget/FrameLayout$LayoutParams;)V" since="19" />
-		<field name="gravity" />
-	</class>
-	<class name="android/widget/Gallery" since="1">
-		<extends name="android/widget/AbsSpinner" />
-		<implements name="android/view/GestureDetector$OnGestureListener" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="setAnimationDuration(I)V" />
-		<method name="setCallbackDuringFling(Z)V" />
-		<method name="setGravity(I)V" />
-		<method name="setSpacing(I)V" />
-		<method name="setUnselectedAlpha(F)V" />
-	</class>
-	<class name="android/widget/Gallery$LayoutParams" since="1">
-		<extends name="android/view/ViewGroup$LayoutParams" />
-		<method name="&lt;init>(II)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/view/ViewGroup$LayoutParams;)V" />
-	</class>
-	<class name="android/widget/GridLayout" since="14">
-		<extends name="android/view/ViewGroup" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="generateDefaultLayoutParams()Landroid/widget/GridLayout$LayoutParams;" />
-		<method name="generateLayoutParams(Landroid/util/AttributeSet;)Landroid/widget/GridLayout$LayoutParams;" />
-		<method name="generateLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Landroid/widget/GridLayout$LayoutParams;" />
-		<method name="getAlignmentMode()I" />
-		<method name="getColumnCount()I" />
-		<method name="getOrientation()I" />
-		<method name="getRowCount()I" />
-		<method name="getUseDefaultMargins()Z" />
-		<method name="isColumnOrderPreserved()Z" />
-		<method name="isRowOrderPreserved()Z" />
-		<method name="setAlignmentMode(I)V" />
-		<method name="setColumnCount(I)V" />
-		<method name="setColumnOrderPreserved(Z)V" />
-		<method name="setOrientation(I)V" />
-		<method name="setRowCount(I)V" />
-		<method name="setRowOrderPreserved(Z)V" />
-		<method name="setUseDefaultMargins(Z)V" />
-		<method name="spec(I)Landroid/widget/GridLayout$Spec;" />
-		<method name="spec(II)Landroid/widget/GridLayout$Spec;" />
-		<method name="spec(IILandroid/widget/GridLayout$Alignment;)Landroid/widget/GridLayout$Spec;" />
-		<method name="spec(ILandroid/widget/GridLayout$Alignment;)Landroid/widget/GridLayout$Spec;" />
-		<field name="ALIGN_BOUNDS" />
-		<field name="ALIGN_MARGINS" />
-		<field name="BASELINE" />
-		<field name="BOTTOM" />
-		<field name="CENTER" />
-		<field name="END" since="16" />
-		<field name="FILL" />
-		<field name="HORIZONTAL" />
-		<field name="LEFT" />
-		<field name="RIGHT" />
-		<field name="START" since="16" />
-		<field name="TOP" />
-		<field name="UNDEFINED" />
-		<field name="VERTICAL" />
-	</class>
-	<class name="android/widget/GridLayout$Alignment" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/widget/GridLayout$LayoutParams" since="14">
-		<extends name="android/view/ViewGroup$MarginLayoutParams" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/view/ViewGroup$LayoutParams;)V" />
-		<method name="&lt;init>(Landroid/view/ViewGroup$MarginLayoutParams;)V" />
-		<method name="&lt;init>(Landroid/widget/GridLayout$LayoutParams;)V" />
-		<method name="&lt;init>(Landroid/widget/GridLayout$Spec;Landroid/widget/GridLayout$Spec;)V" />
-		<method name="setGravity(I)V" />
-		<field name="columnSpec" />
-		<field name="rowSpec" />
-	</class>
-	<class name="android/widget/GridLayout$Spec" since="14">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/widget/GridView" since="1">
-		<extends name="android/widget/AbsListView" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="getAdapter()Landroid/widget/ListAdapter;" />
-		<method name="getColumnWidth()I" since="16" />
-		<method name="getGravity()I" since="16" />
-		<method name="getHorizontalSpacing()I" since="16" />
-		<method name="getNumColumns()I" since="11" />
-		<method name="getRequestedColumnWidth()I" since="16" />
-		<method name="getRequestedHorizontalSpacing()I" since="16" />
-		<method name="getStretchMode()I" />
-		<method name="getVerticalSpacing()I" since="16" />
-		<method name="setAdapter(Landroid/widget/ListAdapter;)V" />
-		<method name="setColumnWidth(I)V" />
-		<method name="setGravity(I)V" />
-		<method name="setHorizontalSpacing(I)V" />
-		<method name="setNumColumns(I)V" />
-		<method name="setStretchMode(I)V" />
-		<method name="setVerticalSpacing(I)V" />
-		<method name="smoothScrollByOffset(I)V" since="11" />
-		<field name="AUTO_FIT" />
-		<field name="NO_STRETCH" />
-		<field name="STRETCH_COLUMN_WIDTH" />
-		<field name="STRETCH_SPACING" />
-		<field name="STRETCH_SPACING_UNIFORM" since="3" />
-	</class>
-	<class name="android/widget/HeaderViewListAdapter" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/widget/Filterable" />
-		<implements name="android/widget/WrapperListAdapter" />
-		<method name="&lt;init>(Ljava/util/ArrayList;Ljava/util/ArrayList;Landroid/widget/ListAdapter;)V" />
-		<method name="getFootersCount()I" />
-		<method name="getHeadersCount()I" />
-		<method name="removeFooter(Landroid/view/View;)Z" />
-		<method name="removeHeader(Landroid/view/View;)Z" />
-	</class>
-	<class name="android/widget/HeterogeneousExpandableList" since="8">
-		<extends name="java/lang/Object" />
-		<method name="getChildType(II)I" />
-		<method name="getChildTypeCount()I" />
-		<method name="getGroupType(I)I" />
-		<method name="getGroupTypeCount()I" />
-	</class>
-	<class name="android/widget/HorizontalScrollView" since="3">
-		<extends name="android/widget/FrameLayout" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="arrowScroll(I)Z" />
-		<method name="computeScrollDeltaToGetChildRectOnScreen(Landroid/graphics/Rect;)I" />
-		<method name="executeKeyEvent(Landroid/view/KeyEvent;)Z" />
-		<method name="fling(I)V" />
-		<method name="fullScroll(I)Z" />
-		<method name="getMaxScrollAmount()I" />
-		<method name="isFillViewport()Z" />
-		<method name="isSmoothScrollingEnabled()Z" />
-		<method name="pageScroll(I)Z" />
-		<method name="setFillViewport(Z)V" />
-		<method name="setSmoothScrollingEnabled(Z)V" />
-		<method name="smoothScrollBy(II)V" />
-		<method name="smoothScrollTo(II)V" />
-	</class>
-	<class name="android/widget/ImageButton" since="1">
-		<extends name="android/widget/ImageView" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-	</class>
-	<class name="android/widget/ImageSwitcher" since="1">
-		<extends name="android/widget/ViewSwitcher" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="setImageDrawable(Landroid/graphics/drawable/Drawable;)V" />
-		<method name="setImageResource(I)V" />
-		<method name="setImageURI(Landroid/net/Uri;)V" />
-	</class>
-	<class name="android/widget/ImageView" since="1">
-		<extends name="android/view/View" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="clearColorFilter()V" />
-		<method name="getAdjustViewBounds()Z" since="16" />
-		<method name="getBaselineAlignBottom()Z" since="11" />
-		<method name="getColorFilter()Landroid/graphics/ColorFilter;" since="16" />
-		<method name="getCropToPadding()Z" since="16" />
-		<method name="getDrawable()Landroid/graphics/drawable/Drawable;" />
-		<method name="getImageAlpha()I" since="16" />
-		<method name="getImageMatrix()Landroid/graphics/Matrix;" />
-		<method name="getMaxHeight()I" since="16" />
-		<method name="getMaxWidth()I" since="16" />
-		<method name="getScaleType()Landroid/widget/ImageView$ScaleType;" />
-		<method name="setAdjustViewBounds(Z)V" />
-		<method name="setAlpha(I)V" />
-		<method name="setBaseline(I)V" since="11" />
-		<method name="setBaselineAlignBottom(Z)V" since="11" />
-		<method name="setColorFilter(I)V" since="8" />
-		<method name="setColorFilter(ILandroid/graphics/PorterDuff$Mode;)V" />
-		<method name="setColorFilter(Landroid/graphics/ColorFilter;)V" />
-		<method name="setCropToPadding(Z)V" since="16" />
-		<method name="setFrame(IIII)Z" />
-		<method name="setImageAlpha(I)V" since="16" />
-		<method name="setImageBitmap(Landroid/graphics/Bitmap;)V" />
-		<method name="setImageDrawable(Landroid/graphics/drawable/Drawable;)V" />
-		<method name="setImageLevel(I)V" />
-		<method name="setImageMatrix(Landroid/graphics/Matrix;)V" />
-		<method name="setImageResource(I)V" />
-		<method name="setImageState([IZ)V" />
-		<method name="setImageURI(Landroid/net/Uri;)V" />
-		<method name="setMaxHeight(I)V" />
-		<method name="setMaxWidth(I)V" />
-		<method name="setScaleType(Landroid/widget/ImageView$ScaleType;)V" />
-	</class>
-	<class name="android/widget/ImageView$ScaleType" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/widget/ImageView$ScaleType;" />
-		<method name="values()[Landroid/widget/ImageView$ScaleType;" />
-		<field name="CENTER" />
-		<field name="CENTER_CROP" />
-		<field name="CENTER_INSIDE" />
-		<field name="FIT_CENTER" />
-		<field name="FIT_END" />
-		<field name="FIT_START" />
-		<field name="FIT_XY" />
-		<field name="MATRIX" />
-	</class>
-	<class name="android/widget/LinearLayout" since="1">
-		<extends name="android/view/ViewGroup" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" since="11" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="generateDefaultLayoutParams()Landroid/widget/LinearLayout$LayoutParams;" />
-		<method name="generateLayoutParams(Landroid/util/AttributeSet;)Landroid/widget/LinearLayout$LayoutParams;" />
-		<method name="generateLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Landroid/widget/LinearLayout$LayoutParams;" />
-		<method name="getBaselineAlignedChildIndex()I" />
-		<method name="getDividerDrawable()Landroid/graphics/drawable/Drawable;" since="16" />
-		<method name="getDividerPadding()I" since="14" />
-		<method name="getOrientation()I" />
-		<method name="getShowDividers()I" since="11" />
-		<method name="getWeightSum()F" />
-		<method name="isBaselineAligned()Z" />
-		<method name="isMeasureWithLargestChildEnabled()Z" since="11" />
-		<method name="setBaselineAligned(Z)V" />
-		<method name="setBaselineAlignedChildIndex(I)V" />
-		<method name="setDividerDrawable(Landroid/graphics/drawable/Drawable;)V" since="11" />
-		<method name="setDividerPadding(I)V" since="14" />
-		<method name="setGravity(I)V" />
-		<method name="setHorizontalGravity(I)V" />
-		<method name="setMeasureWithLargestChildEnabled(Z)V" since="11" />
-		<method name="setOrientation(I)V" />
-		<method name="setShowDividers(I)V" since="11" />
-		<method name="setVerticalGravity(I)V" />
-		<method name="setWeightSum(F)V" />
-		<field name="HORIZONTAL" />
-		<field name="SHOW_DIVIDER_BEGINNING" since="11" />
-		<field name="SHOW_DIVIDER_END" since="11" />
-		<field name="SHOW_DIVIDER_MIDDLE" since="11" />
-		<field name="SHOW_DIVIDER_NONE" since="11" />
-		<field name="VERTICAL" />
-	</class>
-	<class name="android/widget/LinearLayout$LayoutParams" since="1">
-		<extends name="android/view/ViewGroup$MarginLayoutParams" />
-		<method name="&lt;init>(II)V" />
-		<method name="&lt;init>(IIF)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/view/ViewGroup$LayoutParams;)V" />
-		<method name="&lt;init>(Landroid/view/ViewGroup$MarginLayoutParams;)V" />
-		<method name="&lt;init>(Landroid/widget/LinearLayout$LayoutParams;)V" since="19" />
-		<method name="debug(Ljava/lang/String;)Ljava/lang/String;" />
-		<field name="gravity" />
-		<field name="weight" />
-	</class>
-	<class name="android/widget/ListAdapter" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/widget/Adapter" />
-		<method name="areAllItemsEnabled()Z" />
-		<method name="isEnabled(I)Z" />
-	</class>
-	<class name="android/widget/ListPopupWindow" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" />
-		<method name="clearListSelection()V" />
-		<method name="createDragToOpenListener(Landroid/view/View;)Landroid/view/View$OnTouchListener;" since="19" />
-		<method name="dismiss()V" />
-		<method name="getAnchorView()Landroid/view/View;" />
-		<method name="getAnimationStyle()I" />
-		<method name="getBackground()Landroid/graphics/drawable/Drawable;" />
-		<method name="getHeight()I" />
-		<method name="getHorizontalOffset()I" />
-		<method name="getInputMethodMode()I" />
-		<method name="getListView()Landroid/widget/ListView;" />
-		<method name="getPromptPosition()I" />
-		<method name="getSelectedItem()Ljava/lang/Object;" />
-		<method name="getSelectedItemId()J" />
-		<method name="getSelectedItemPosition()I" />
-		<method name="getSelectedView()Landroid/view/View;" />
-		<method name="getSoftInputMode()I" />
-		<method name="getVerticalOffset()I" />
-		<method name="getWidth()I" />
-		<method name="isInputMethodNotNeeded()Z" />
-		<method name="isModal()Z" />
-		<method name="isShowing()Z" />
-		<method name="onKeyDown(ILandroid/view/KeyEvent;)Z" />
-		<method name="onKeyPreIme(ILandroid/view/KeyEvent;)Z" />
-		<method name="onKeyUp(ILandroid/view/KeyEvent;)Z" />
-		<method name="performItemClick(I)Z" />
-		<method name="postShow()V" />
-		<method name="setAdapter(Landroid/widget/ListAdapter;)V" />
-		<method name="setAnchorView(Landroid/view/View;)V" />
-		<method name="setAnimationStyle(I)V" />
-		<method name="setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V" />
-		<method name="setContentWidth(I)V" />
-		<method name="setDropDownGravity(I)V" since="19" />
-		<method name="setHeight(I)V" />
-		<method name="setHorizontalOffset(I)V" />
-		<method name="setInputMethodMode(I)V" />
-		<method name="setListSelector(Landroid/graphics/drawable/Drawable;)V" />
-		<method name="setModal(Z)V" />
-		<method name="setOnDismissListener(Landroid/widget/PopupWindow$OnDismissListener;)V" />
-		<method name="setOnItemClickListener(Landroid/widget/AdapterView$OnItemClickListener;)V" />
-		<method name="setOnItemSelectedListener(Landroid/widget/AdapterView$OnItemSelectedListener;)V" />
-		<method name="setPromptPosition(I)V" />
-		<method name="setPromptView(Landroid/view/View;)V" />
-		<method name="setSelection(I)V" />
-		<method name="setSoftInputMode(I)V" />
-		<method name="setVerticalOffset(I)V" />
-		<method name="setWidth(I)V" />
-		<method name="show()V" />
-		<field name="INPUT_METHOD_FROM_FOCUSABLE" />
-		<field name="INPUT_METHOD_NEEDED" />
-		<field name="INPUT_METHOD_NOT_NEEDED" />
-		<field name="MATCH_PARENT" />
-		<field name="POSITION_PROMPT_ABOVE" />
-		<field name="POSITION_PROMPT_BELOW" />
-		<field name="WRAP_CONTENT" />
-	</class>
-	<class name="android/widget/ListView" since="1">
-		<extends name="android/widget/AbsListView" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="addFooterView(Landroid/view/View;)V" />
-		<method name="addFooterView(Landroid/view/View;Ljava/lang/Object;Z)V" />
-		<method name="addHeaderView(Landroid/view/View;)V" />
-		<method name="addHeaderView(Landroid/view/View;Ljava/lang/Object;Z)V" />
-		<method name="areFooterDividersEnabled()Z" since="19" />
-		<method name="areHeaderDividersEnabled()Z" since="19" />
-		<method name="clearChoices()V" />
-		<method name="findViewTraversal(I)Landroid/view/View;" />
-		<method name="findViewWithTagTraversal(Ljava/lang/Object;)Landroid/view/View;" />
-		<method name="getAdapter()Landroid/widget/ListAdapter;" />
-		<method name="getCheckItemIds()[J" since="4" />
-		<method name="getCheckedItemIds()[J" since="8" />
-		<method name="getCheckedItemPosition()I" />
-		<method name="getCheckedItemPositions()Landroid/util/SparseBooleanArray;" />
-		<method name="getChoiceMode()I" />
-		<method name="getDivider()Landroid/graphics/drawable/Drawable;" />
-		<method name="getDividerHeight()I" />
-		<method name="getFooterViewsCount()I" />
-		<method name="getHeaderViewsCount()I" />
-		<method name="getItemsCanFocus()Z" />
-		<method name="getMaxScrollAmount()I" />
-		<method name="getOverscrollFooter()Landroid/graphics/drawable/Drawable;" since="9" />
-		<method name="getOverscrollHeader()Landroid/graphics/drawable/Drawable;" since="9" />
-		<method name="isItemChecked(I)Z" />
-		<method name="removeFooterView(Landroid/view/View;)Z" />
-		<method name="removeHeaderView(Landroid/view/View;)Z" />
-		<method name="setAdapter(Landroid/widget/ListAdapter;)V" />
-		<method name="setChoiceMode(I)V" />
-		<method name="setDivider(Landroid/graphics/drawable/Drawable;)V" />
-		<method name="setDividerHeight(I)V" />
-		<method name="setFooterDividersEnabled(Z)V" since="3" />
-		<method name="setHeaderDividersEnabled(Z)V" since="3" />
-		<method name="setItemChecked(IZ)V" />
-		<method name="setItemsCanFocus(Z)V" />
-		<method name="setOverscrollFooter(Landroid/graphics/drawable/Drawable;)V" since="9" />
-		<method name="setOverscrollHeader(Landroid/graphics/drawable/Drawable;)V" since="9" />
-		<method name="setSelectionAfterHeaderView()V" />
-		<method name="setSelectionFromTop(II)V" />
-		<method name="smoothScrollByOffset(I)V" since="11" />
-		<field name="CHOICE_MODE_MULTIPLE" />
-		<field name="CHOICE_MODE_NONE" />
-		<field name="CHOICE_MODE_SINGLE" />
-	</class>
-	<class name="android/widget/ListView$FixedViewInfo" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/widget/ListView;)V" />
-		<field name="data" />
-		<field name="isSelectable" />
-		<field name="view" />
-	</class>
-	<class name="android/widget/MediaController" since="1">
-		<extends name="android/widget/FrameLayout" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Z)V" />
-		<method name="hide()V" />
-		<method name="isShowing()Z" />
-		<method name="setAnchorView(Landroid/view/View;)V" />
-		<method name="setMediaPlayer(Landroid/widget/MediaController$MediaPlayerControl;)V" />
-		<method name="setPrevNextListeners(Landroid/view/View$OnClickListener;Landroid/view/View$OnClickListener;)V" />
-		<method name="show()V" />
-		<method name="show(I)V" />
-	</class>
-	<class name="android/widget/MediaController$MediaPlayerControl" since="1">
-		<extends name="java/lang/Object" />
-		<method name="canPause()Z" since="5" />
-		<method name="canSeekBackward()Z" since="5" />
-		<method name="canSeekForward()Z" since="5" />
-		<method name="getAudioSessionId()I" since="18" />
-		<method name="getBufferPercentage()I" />
-		<method name="getCurrentPosition()I" />
-		<method name="getDuration()I" />
-		<method name="isPlaying()Z" />
-		<method name="pause()V" />
-		<method name="seekTo(I)V" />
-		<method name="start()V" />
-	</class>
-	<class name="android/widget/MultiAutoCompleteTextView" since="1">
-		<extends name="android/widget/AutoCompleteTextView" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="performFiltering(Ljava/lang/CharSequence;III)V" />
-		<method name="setTokenizer(Landroid/widget/MultiAutoCompleteTextView$Tokenizer;)V" />
-	</class>
-	<class name="android/widget/MultiAutoCompleteTextView$CommaTokenizer" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/widget/MultiAutoCompleteTextView$Tokenizer" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="android/widget/MultiAutoCompleteTextView$Tokenizer" since="1">
-		<extends name="java/lang/Object" />
-		<method name="findTokenEnd(Ljava/lang/CharSequence;I)I" />
-		<method name="findTokenStart(Ljava/lang/CharSequence;I)I" />
-		<method name="terminateToken(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;" />
-	</class>
-	<class name="android/widget/NumberPicker" since="11">
-		<extends name="android/widget/LinearLayout" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="getDisplayedValues()[Ljava/lang/String;" />
-		<method name="getMaxValue()I" />
-		<method name="getMinValue()I" />
-		<method name="getValue()I" />
-		<method name="getWrapSelectorWheel()Z" />
-		<method name="setDisplayedValues([Ljava/lang/String;)V" />
-		<method name="setFormatter(Landroid/widget/NumberPicker$Formatter;)V" />
-		<method name="setMaxValue(I)V" />
-		<method name="setMinValue(I)V" />
-		<method name="setOnLongPressUpdateInterval(J)V" />
-		<method name="setOnScrollListener(Landroid/widget/NumberPicker$OnScrollListener;)V" />
-		<method name="setOnValueChangedListener(Landroid/widget/NumberPicker$OnValueChangeListener;)V" />
-		<method name="setValue(I)V" />
-		<method name="setWrapSelectorWheel(Z)V" />
-	</class>
-	<class name="android/widget/NumberPicker$Formatter" since="11">
-		<extends name="java/lang/Object" />
-		<method name="format(I)Ljava/lang/String;" />
-	</class>
-	<class name="android/widget/NumberPicker$OnScrollListener" since="11">
-		<extends name="java/lang/Object" />
-		<method name="onScrollStateChange(Landroid/widget/NumberPicker;I)V" />
-		<field name="SCROLL_STATE_FLING" />
-		<field name="SCROLL_STATE_IDLE" />
-		<field name="SCROLL_STATE_TOUCH_SCROLL" />
-	</class>
-	<class name="android/widget/NumberPicker$OnValueChangeListener" since="11">
-		<extends name="java/lang/Object" />
-		<method name="onValueChange(Landroid/widget/NumberPicker;II)V" />
-	</class>
-	<class name="android/widget/OverScroller" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/view/animation/Interpolator;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/view/animation/Interpolator;FF)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/view/animation/Interpolator;FFZ)V" since="11" />
-		<method name="abortAnimation()V" />
-		<method name="computeScrollOffset()Z" />
-		<method name="fling(IIIIIIII)V" />
-		<method name="fling(IIIIIIIIII)V" />
-		<method name="forceFinished(Z)V" />
-		<method name="getCurrVelocity()F" since="14" />
-		<method name="getCurrX()I" />
-		<method name="getCurrY()I" />
-		<method name="getFinalX()I" />
-		<method name="getFinalY()I" />
-		<method name="getStartX()I" />
-		<method name="getStartY()I" />
-		<method name="isFinished()Z" />
-		<method name="isOverScrolled()Z" />
-		<method name="notifyHorizontalEdgeReached(III)V" />
-		<method name="notifyVerticalEdgeReached(III)V" />
-		<method name="setFriction(F)V" since="11" />
-		<method name="springBack(IIIIII)Z" />
-		<method name="startScroll(IIII)V" />
-		<method name="startScroll(IIIII)V" />
-	</class>
-	<class name="android/widget/PopupMenu" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/view/View;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/view/View;I)V" since="19" />
-		<method name="dismiss()V" />
-		<method name="getDragToOpenListener()Landroid/view/View$OnTouchListener;" since="19" />
-		<method name="getMenu()Landroid/view/Menu;" />
-		<method name="getMenuInflater()Landroid/view/MenuInflater;" />
-		<method name="inflate(I)V" since="14" />
-		<method name="setOnDismissListener(Landroid/widget/PopupMenu$OnDismissListener;)V" since="14" />
-		<method name="setOnMenuItemClickListener(Landroid/widget/PopupMenu$OnMenuItemClickListener;)V" />
-		<method name="show()V" />
-	</class>
-	<class name="android/widget/PopupMenu$OnDismissListener" since="14">
-		<extends name="java/lang/Object" />
-		<method name="onDismiss(Landroid/widget/PopupMenu;)V" />
-	</class>
-	<class name="android/widget/PopupMenu$OnMenuItemClickListener" since="11">
-		<extends name="java/lang/Object" />
-		<method name="onMenuItemClick(Landroid/view/MenuItem;)Z" />
-	</class>
-	<class name="android/widget/PopupWindow" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(II)V" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="11" />
-		<method name="&lt;init>(Landroid/view/View;)V" />
-		<method name="&lt;init>(Landroid/view/View;II)V" />
-		<method name="&lt;init>(Landroid/view/View;IIZ)V" />
-		<method name="dismiss()V" />
-		<method name="getAnimationStyle()I" />
-		<method name="getBackground()Landroid/graphics/drawable/Drawable;" />
-		<method name="getContentView()Landroid/view/View;" />
-		<method name="getHeight()I" />
-		<method name="getInputMethodMode()I" since="3" />
-		<method name="getMaxAvailableHeight(Landroid/view/View;)I" />
-		<method name="getMaxAvailableHeight(Landroid/view/View;I)I" since="3" />
-		<method name="getSoftInputMode()I" since="4" />
-		<method name="getWidth()I" />
-		<method name="isAboveAnchor()Z" since="3" />
-		<method name="isClippingEnabled()Z" since="3" />
-		<method name="isFocusable()Z" />
-		<method name="isOutsideTouchable()Z" since="3" />
-		<method name="isShowing()Z" />
-		<method name="isSplitTouchEnabled()Z" since="11" />
-		<method name="isTouchable()Z" since="3" />
-		<method name="setAnimationStyle(I)V" />
-		<method name="setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V" />
-		<method name="setClippingEnabled(Z)V" since="3" />
-		<method name="setContentView(Landroid/view/View;)V" />
-		<method name="setFocusable(Z)V" />
-		<method name="setHeight(I)V" />
-		<method name="setIgnoreCheekPress()V" />
-		<method name="setInputMethodMode(I)V" since="3" />
-		<method name="setOnDismissListener(Landroid/widget/PopupWindow$OnDismissListener;)V" />
-		<method name="setOutsideTouchable(Z)V" since="3" />
-		<method name="setSoftInputMode(I)V" since="4" />
-		<method name="setSplitTouchEnabled(Z)V" since="11" />
-		<method name="setTouchInterceptor(Landroid/view/View$OnTouchListener;)V" since="3" />
-		<method name="setTouchable(Z)V" since="3" />
-		<method name="setWidth(I)V" />
-		<method name="setWindowLayoutMode(II)V" since="3" />
-		<method name="showAsDropDown(Landroid/view/View;)V" />
-		<method name="showAsDropDown(Landroid/view/View;II)V" />
-		<method name="showAsDropDown(Landroid/view/View;III)V" since="19" />
-		<method name="showAtLocation(Landroid/view/View;III)V" />
-		<method name="update()V" since="3" />
-		<method name="update(II)V" since="4" />
-		<method name="update(IIII)V" />
-		<method name="update(IIIIZ)V" since="3" />
-		<method name="update(Landroid/view/View;II)V" />
-		<method name="update(Landroid/view/View;IIII)V" />
-		<field name="INPUT_METHOD_FROM_FOCUSABLE" since="3" />
-		<field name="INPUT_METHOD_NEEDED" since="3" />
-		<field name="INPUT_METHOD_NOT_NEEDED" since="3" />
-	</class>
-	<class name="android/widget/PopupWindow$OnDismissListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onDismiss()V" />
-	</class>
-	<class name="android/widget/ProgressBar" since="1">
-		<extends name="android/view/View" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="getIndeterminateDrawable()Landroid/graphics/drawable/Drawable;" />
-		<method name="getInterpolator()Landroid/view/animation/Interpolator;" />
-		<method name="getMax()I" />
-		<method name="getProgress()I" />
-		<method name="getProgressDrawable()Landroid/graphics/drawable/Drawable;" />
-		<method name="getSecondaryProgress()I" />
-		<method name="incrementProgressBy(I)V" />
-		<method name="incrementSecondaryProgressBy(I)V" />
-		<method name="isIndeterminate()Z" />
-		<method name="setIndeterminate(Z)V" />
-		<method name="setIndeterminateDrawable(Landroid/graphics/drawable/Drawable;)V" />
-		<method name="setIndeterminateDrawableTiled(Landroid/graphics/drawable/Drawable;)V" since="21" />
-		<method name="setInterpolator(Landroid/content/Context;I)V" />
-		<method name="setInterpolator(Landroid/view/animation/Interpolator;)V" />
-		<method name="setMax(I)V" />
-		<method name="setProgress(I)V" />
-		<method name="setProgressDrawable(Landroid/graphics/drawable/Drawable;)V" />
-		<method name="setProgressDrawableTiled(Landroid/graphics/drawable/Drawable;)V" since="21" />
-		<method name="setSecondaryProgress(I)V" />
-	</class>
-	<class name="android/widget/QuickContactBadge" since="5">
-		<extends name="android/widget/ImageView" />
-		<implements name="android/view/View$OnClickListener" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="assignContactFromEmail(Ljava/lang/String;Z)V" />
-		<method name="assignContactFromEmail(Ljava/lang/String;ZLandroid/os/Bundle;)V" since="18" />
-		<method name="assignContactFromPhone(Ljava/lang/String;Z)V" />
-		<method name="assignContactFromPhone(Ljava/lang/String;ZLandroid/os/Bundle;)V" since="18" />
-		<method name="assignContactUri(Landroid/net/Uri;)V" />
-		<method name="setExcludeMimes([Ljava/lang/String;)V" />
-		<method name="setImageToDefault()V" since="11" />
-		<method name="setMode(I)V" />
-		<method name="setOverlay(Landroid/graphics/drawable/Drawable;)V" since="21" />
-		<field name="mExcludeMimes" />
-	</class>
-	<class name="android/widget/RadioButton" since="1">
-		<extends name="android/widget/CompoundButton" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-	</class>
-	<class name="android/widget/RadioGroup" since="1">
-		<extends name="android/widget/LinearLayout" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="check(I)V" />
-		<method name="clearCheck()V" />
-		<method name="generateLayoutParams(Landroid/util/AttributeSet;)Landroid/widget/RadioGroup$LayoutParams;" />
-		<method name="getCheckedRadioButtonId()I" />
-		<method name="setOnCheckedChangeListener(Landroid/widget/RadioGroup$OnCheckedChangeListener;)V" />
-	</class>
-	<class name="android/widget/RadioGroup$LayoutParams" since="1">
-		<extends name="android/widget/LinearLayout$LayoutParams" />
-		<method name="&lt;init>(II)V" />
-		<method name="&lt;init>(IIF)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/view/ViewGroup$LayoutParams;)V" />
-		<method name="&lt;init>(Landroid/view/ViewGroup$MarginLayoutParams;)V" />
-	</class>
-	<class name="android/widget/RadioGroup$OnCheckedChangeListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onCheckedChanged(Landroid/widget/RadioGroup;I)V" />
-	</class>
-	<class name="android/widget/RatingBar" since="1">
-		<extends name="android/widget/AbsSeekBar" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="getNumStars()I" />
-		<method name="getOnRatingBarChangeListener()Landroid/widget/RatingBar$OnRatingBarChangeListener;" />
-		<method name="getRating()F" />
-		<method name="getStepSize()F" />
-		<method name="isIndicator()Z" />
-		<method name="setIsIndicator(Z)V" />
-		<method name="setNumStars(I)V" />
-		<method name="setOnRatingBarChangeListener(Landroid/widget/RatingBar$OnRatingBarChangeListener;)V" />
-		<method name="setRating(F)V" />
-		<method name="setStepSize(F)V" />
-	</class>
-	<class name="android/widget/RatingBar$OnRatingBarChangeListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onRatingChanged(Landroid/widget/RatingBar;FZ)V" />
-	</class>
-	<class name="android/widget/RelativeLayout" since="1">
-		<extends name="android/view/ViewGroup" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="generateLayoutParams(Landroid/util/AttributeSet;)Landroid/widget/RelativeLayout$LayoutParams;" />
-		<method name="getGravity()I" since="16" />
-		<method name="setGravity(I)V" />
-		<method name="setHorizontalGravity(I)V" />
-		<method name="setIgnoreGravity(I)V" />
-		<method name="setVerticalGravity(I)V" />
-		<field name="ABOVE" />
-		<field name="ALIGN_BASELINE" />
-		<field name="ALIGN_BOTTOM" />
-		<field name="ALIGN_END" since="17" />
-		<field name="ALIGN_LEFT" />
-		<field name="ALIGN_PARENT_BOTTOM" />
-		<field name="ALIGN_PARENT_END" since="17" />
-		<field name="ALIGN_PARENT_LEFT" />
-		<field name="ALIGN_PARENT_RIGHT" />
-		<field name="ALIGN_PARENT_START" since="17" />
-		<field name="ALIGN_PARENT_TOP" />
-		<field name="ALIGN_RIGHT" />
-		<field name="ALIGN_START" since="17" />
-		<field name="ALIGN_TOP" />
-		<field name="BELOW" />
-		<field name="CENTER_HORIZONTAL" />
-		<field name="CENTER_IN_PARENT" />
-		<field name="CENTER_VERTICAL" />
-		<field name="END_OF" since="17" />
-		<field name="LEFT_OF" />
-		<field name="RIGHT_OF" />
-		<field name="START_OF" since="17" />
-		<field name="TRUE" />
-	</class>
-	<class name="android/widget/RelativeLayout$LayoutParams" since="1">
-		<extends name="android/view/ViewGroup$MarginLayoutParams" />
-		<method name="&lt;init>(II)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/view/ViewGroup$LayoutParams;)V" />
-		<method name="&lt;init>(Landroid/view/ViewGroup$MarginLayoutParams;)V" />
-		<method name="&lt;init>(Landroid/widget/RelativeLayout$LayoutParams;)V" since="19" />
-		<method name="addRule(I)V" />
-		<method name="addRule(II)V" />
-		<method name="debug(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getRules()[I" />
-		<method name="removeRule(I)V" since="17" />
-		<field name="alignWithParent" />
-	</class>
-	<class name="android/widget/RemoteViews" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/os/Parcelable" />
-		<implements name="android/view/LayoutInflater$Filter" />
-		<method name="&lt;init>(Landroid/os/Parcel;)V" />
-		<method name="&lt;init>(Landroid/widget/RemoteViews;Landroid/widget/RemoteViews;)V" since="16" />
-		<method name="&lt;init>(Ljava/lang/String;I)V" />
-		<method name="addView(ILandroid/widget/RemoteViews;)V" since="7" />
-		<method name="apply(Landroid/content/Context;Landroid/view/ViewGroup;)Landroid/view/View;" />
-		<method name="clone()Landroid/widget/RemoteViews;" since="9" />
-		<method name="getLayoutId()I" />
-		<method name="getPackage()Ljava/lang/String;" />
-		<method name="reapply(Landroid/content/Context;Landroid/view/View;)V" />
-		<method name="removeAllViews(I)V" since="7" />
-		<method name="setBitmap(ILjava/lang/String;Landroid/graphics/Bitmap;)V" since="3" />
-		<method name="setBoolean(ILjava/lang/String;Z)V" since="3" />
-		<method name="setBundle(ILjava/lang/String;Landroid/os/Bundle;)V" since="8" />
-		<method name="setByte(ILjava/lang/String;B)V" since="3" />
-		<method name="setChar(ILjava/lang/String;C)V" since="3" />
-		<method name="setCharSequence(ILjava/lang/String;Ljava/lang/CharSequence;)V" since="3" />
-		<method name="setChronometer(IJLjava/lang/String;Z)V" />
-		<method name="setContentDescription(ILjava/lang/CharSequence;)V" since="15" />
-		<method name="setDisplayedChild(II)V" since="12" />
-		<method name="setDouble(ILjava/lang/String;D)V" since="3" />
-		<method name="setEmptyView(II)V" since="11" />
-		<method name="setFloat(ILjava/lang/String;F)V" since="3" />
-		<method name="setImageViewBitmap(ILandroid/graphics/Bitmap;)V" since="3" />
-		<method name="setImageViewResource(II)V" />
-		<method name="setImageViewUri(ILandroid/net/Uri;)V" />
-		<method name="setInt(ILjava/lang/String;I)V" since="3" />
-		<method name="setIntent(ILjava/lang/String;Landroid/content/Intent;)V" since="11" />
-		<method name="setLabelFor(II)V" since="17" />
-		<method name="setLong(ILjava/lang/String;J)V" since="3" />
-		<method name="setOnClickFillInIntent(ILandroid/content/Intent;)V" since="11" />
-		<method name="setOnClickPendingIntent(ILandroid/app/PendingIntent;)V" since="3" />
-		<method name="setPendingIntentTemplate(ILandroid/app/PendingIntent;)V" since="11" />
-		<method name="setProgressBar(IIIZ)V" />
-		<method name="setRelativeScrollPosition(II)V" since="11" />
-		<method name="setRemoteAdapter(IILandroid/content/Intent;)V" since="11" />
-		<method name="setRemoteAdapter(ILandroid/content/Intent;)V" since="14" />
-		<method name="setScrollPosition(II)V" since="11" />
-		<method name="setShort(ILjava/lang/String;S)V" since="3" />
-		<method name="setString(ILjava/lang/String;Ljava/lang/String;)V" since="3" />
-		<method name="setTextColor(II)V" since="3" />
-		<method name="setTextViewCompoundDrawables(IIIII)V" since="16" />
-		<method name="setTextViewCompoundDrawablesRelative(IIIII)V" since="16" />
-		<method name="setTextViewText(ILjava/lang/CharSequence;)V" />
-		<method name="setTextViewTextSize(IIF)V" since="16" />
-		<method name="setUri(ILjava/lang/String;Landroid/net/Uri;)V" since="3" />
-		<method name="setViewPadding(IIIII)V" since="16" />
-		<method name="setViewVisibility(II)V" />
-		<method name="showNext(I)V" since="11" />
-		<method name="showPrevious(I)V" since="11" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/widget/RemoteViews$ActionException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>(Ljava/lang/Exception;)V" since="3" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/widget/RemoteViews$RemoteView" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/annotation/Annotation" />
-	</class>
-	<class name="android/widget/RemoteViewsService" since="11">
-		<extends name="android/app/Service" />
-		<method name="&lt;init>()V" />
-		<method name="onGetViewFactory(Landroid/content/Intent;)Landroid/widget/RemoteViewsService$RemoteViewsFactory;" />
-	</class>
-	<class name="android/widget/RemoteViewsService$RemoteViewsFactory" since="11">
-		<extends name="java/lang/Object" />
-		<method name="getCount()I" />
-		<method name="getItemId(I)J" />
-		<method name="getLoadingView()Landroid/widget/RemoteViews;" />
-		<method name="getViewAt(I)Landroid/widget/RemoteViews;" />
-		<method name="getViewTypeCount()I" />
-		<method name="hasStableIds()Z" />
-		<method name="onCreate()V" />
-		<method name="onDataSetChanged()V" />
-		<method name="onDestroy()V" />
-	</class>
-	<class name="android/widget/ResourceCursorAdapter" since="1">
-		<extends name="android/widget/CursorAdapter" />
-		<method name="&lt;init>(Landroid/content/Context;ILandroid/database/Cursor;)V" />
-		<method name="&lt;init>(Landroid/content/Context;ILandroid/database/Cursor;I)V" since="11" />
-		<method name="&lt;init>(Landroid/content/Context;ILandroid/database/Cursor;Z)V" since="3" />
-		<method name="setDropDownViewResource(I)V" />
-		<method name="setViewResource(I)V" since="3" />
-	</class>
-	<class name="android/widget/ResourceCursorTreeAdapter" since="1">
-		<extends name="android/widget/CursorTreeAdapter" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/database/Cursor;II)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/database/Cursor;III)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/database/Cursor;IIII)V" />
-	</class>
-	<class name="android/widget/ScrollView" since="1">
-		<extends name="android/widget/FrameLayout" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="arrowScroll(I)Z" />
-		<method name="computeScrollDeltaToGetChildRectOnScreen(Landroid/graphics/Rect;)I" />
-		<method name="executeKeyEvent(Landroid/view/KeyEvent;)Z" />
-		<method name="fling(I)V" />
-		<method name="fullScroll(I)Z" />
-		<method name="getMaxScrollAmount()I" />
-		<method name="isFillViewport()Z" />
-		<method name="isSmoothScrollingEnabled()Z" />
-		<method name="pageScroll(I)Z" />
-		<method name="setFillViewport(Z)V" />
-		<method name="setSmoothScrollingEnabled(Z)V" />
-		<method name="smoothScrollBy(II)V" />
-		<method name="smoothScrollTo(II)V" />
-	</class>
-	<class name="android/widget/Scroller" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/view/animation/Interpolator;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/view/animation/Interpolator;Z)V" since="11" />
-		<method name="abortAnimation()V" />
-		<method name="computeScrollOffset()Z" />
-		<method name="extendDuration(I)V" />
-		<method name="fling(IIIIIIII)V" />
-		<method name="forceFinished(Z)V" />
-		<method name="getCurrVelocity()F" since="14" />
-		<method name="getCurrX()I" />
-		<method name="getCurrY()I" />
-		<method name="getDuration()I" />
-		<method name="getFinalX()I" />
-		<method name="getFinalY()I" />
-		<method name="getStartX()I" since="3" />
-		<method name="getStartY()I" since="3" />
-		<method name="isFinished()Z" />
-		<method name="setFinalX(I)V" />
-		<method name="setFinalY(I)V" />
-		<method name="setFriction(F)V" since="11" />
-		<method name="startScroll(IIII)V" />
-		<method name="startScroll(IIIII)V" />
-		<method name="timePassed()I" />
-	</class>
-	<class name="android/widget/SearchView" since="11">
-		<extends name="android/widget/LinearLayout" />
-		<implements name="android/view/CollapsibleActionView" since="14" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" since="21" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="getImeOptions()I" since="16" />
-		<method name="getInputType()I" since="16" />
-		<method name="getMaxWidth()I" since="16" />
-		<method name="getQuery()Ljava/lang/CharSequence;" />
-		<method name="getQueryHint()Ljava/lang/CharSequence;" since="16" />
-		<method name="getSuggestionsAdapter()Landroid/widget/CursorAdapter;" />
-		<method name="isIconfiedByDefault()Z" />
-		<method name="isIconified()Z" />
-		<method name="isQueryRefinementEnabled()Z" />
-		<method name="isSubmitButtonEnabled()Z" />
-		<method name="setIconified(Z)V" />
-		<method name="setIconifiedByDefault(Z)V" />
-		<method name="setImeOptions(I)V" since="14" />
-		<method name="setInputType(I)V" since="14" />
-		<method name="setMaxWidth(I)V" />
-		<method name="setOnCloseListener(Landroid/widget/SearchView$OnCloseListener;)V" />
-		<method name="setOnQueryTextFocusChangeListener(Landroid/view/View$OnFocusChangeListener;)V" />
-		<method name="setOnQueryTextListener(Landroid/widget/SearchView$OnQueryTextListener;)V" />
-		<method name="setOnSearchClickListener(Landroid/view/View$OnClickListener;)V" />
-		<method name="setOnSuggestionListener(Landroid/widget/SearchView$OnSuggestionListener;)V" />
-		<method name="setQuery(Ljava/lang/CharSequence;Z)V" />
-		<method name="setQueryHint(Ljava/lang/CharSequence;)V" />
-		<method name="setQueryRefinementEnabled(Z)V" />
-		<method name="setSearchableInfo(Landroid/app/SearchableInfo;)V" />
-		<method name="setSubmitButtonEnabled(Z)V" />
-		<method name="setSuggestionsAdapter(Landroid/widget/CursorAdapter;)V" />
-	</class>
-	<class name="android/widget/SearchView$OnCloseListener" since="11">
-		<extends name="java/lang/Object" />
-		<method name="onClose()Z" />
-	</class>
-	<class name="android/widget/SearchView$OnQueryTextListener" since="11">
-		<extends name="java/lang/Object" />
-		<method name="onQueryTextChange(Ljava/lang/String;)Z" />
-		<method name="onQueryTextSubmit(Ljava/lang/String;)Z" />
-	</class>
-	<class name="android/widget/SearchView$OnSuggestionListener" since="11">
-		<extends name="java/lang/Object" />
-		<method name="onSuggestionClick(I)Z" />
-		<method name="onSuggestionSelect(I)Z" />
-	</class>
-	<class name="android/widget/SectionIndexer" since="3">
-		<extends name="java/lang/Object" />
-		<method name="getPositionForSection(I)I" />
-		<method name="getSectionForPosition(I)I" />
-		<method name="getSections()[Ljava/lang/Object;" />
-	</class>
-	<class name="android/widget/SeekBar" since="1">
-		<extends name="android/widget/AbsSeekBar" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="setOnSeekBarChangeListener(Landroid/widget/SeekBar$OnSeekBarChangeListener;)V" />
-	</class>
-	<class name="android/widget/SeekBar$OnSeekBarChangeListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onProgressChanged(Landroid/widget/SeekBar;IZ)V" />
-		<method name="onStartTrackingTouch(Landroid/widget/SeekBar;)V" />
-		<method name="onStopTrackingTouch(Landroid/widget/SeekBar;)V" />
-	</class>
-	<class name="android/widget/ShareActionProvider" since="14">
-		<extends name="android/view/ActionProvider" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="setOnShareTargetSelectedListener(Landroid/widget/ShareActionProvider$OnShareTargetSelectedListener;)V" />
-		<method name="setShareHistoryFileName(Ljava/lang/String;)V" />
-		<method name="setShareIntent(Landroid/content/Intent;)V" />
-		<field name="DEFAULT_SHARE_HISTORY_FILE_NAME" />
-	</class>
-	<class name="android/widget/ShareActionProvider$OnShareTargetSelectedListener" since="14">
-		<extends name="java/lang/Object" />
-		<method name="onShareTargetSelected(Landroid/widget/ShareActionProvider;Landroid/content/Intent;)Z" />
-	</class>
-	<class name="android/widget/SimpleAdapter" since="1">
-		<extends name="android/widget/BaseAdapter" />
-		<implements name="android/widget/Filterable" />
-		<method name="&lt;init>(Landroid/content/Context;Ljava/util/List;I[Ljava/lang/String;[I)V" />
-		<method name="getViewBinder()Landroid/widget/SimpleAdapter$ViewBinder;" />
-		<method name="setDropDownViewResource(I)V" />
-		<method name="setViewBinder(Landroid/widget/SimpleAdapter$ViewBinder;)V" />
-		<method name="setViewImage(Landroid/widget/ImageView;I)V" />
-		<method name="setViewImage(Landroid/widget/ImageView;Ljava/lang/String;)V" />
-		<method name="setViewText(Landroid/widget/TextView;Ljava/lang/String;)V" />
-	</class>
-	<class name="android/widget/SimpleAdapter$ViewBinder" since="1">
-		<extends name="java/lang/Object" />
-		<method name="setViewValue(Landroid/view/View;Ljava/lang/Object;Ljava/lang/String;)Z" />
-	</class>
-	<class name="android/widget/SimpleCursorAdapter" since="1">
-		<extends name="android/widget/ResourceCursorAdapter" />
-		<method name="&lt;init>(Landroid/content/Context;ILandroid/database/Cursor;[Ljava/lang/String;[I)V" />
-		<method name="&lt;init>(Landroid/content/Context;ILandroid/database/Cursor;[Ljava/lang/String;[II)V" since="11" />
-		<method name="changeCursorAndColumns(Landroid/database/Cursor;[Ljava/lang/String;[I)V" since="3" />
-		<method name="getCursorToStringConverter()Landroid/widget/SimpleCursorAdapter$CursorToStringConverter;" />
-		<method name="getStringConversionColumn()I" />
-		<method name="getViewBinder()Landroid/widget/SimpleCursorAdapter$ViewBinder;" />
-		<method name="setCursorToStringConverter(Landroid/widget/SimpleCursorAdapter$CursorToStringConverter;)V" />
-		<method name="setStringConversionColumn(I)V" />
-		<method name="setViewBinder(Landroid/widget/SimpleCursorAdapter$ViewBinder;)V" />
-		<method name="setViewImage(Landroid/widget/ImageView;Ljava/lang/String;)V" />
-		<method name="setViewText(Landroid/widget/TextView;Ljava/lang/String;)V" />
-	</class>
-	<class name="android/widget/SimpleCursorAdapter$CursorToStringConverter" since="1">
-		<extends name="java/lang/Object" />
-		<method name="convertToString(Landroid/database/Cursor;)Ljava/lang/CharSequence;" />
-	</class>
-	<class name="android/widget/SimpleCursorAdapter$ViewBinder" since="1">
-		<extends name="java/lang/Object" />
-		<method name="setViewValue(Landroid/view/View;Landroid/database/Cursor;I)Z" />
-	</class>
-	<class name="android/widget/SimpleCursorTreeAdapter" since="1">
-		<extends name="android/widget/ResourceCursorTreeAdapter" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/database/Cursor;II[Ljava/lang/String;[III[Ljava/lang/String;[I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/database/Cursor;II[Ljava/lang/String;[II[Ljava/lang/String;[I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/database/Cursor;I[Ljava/lang/String;[II[Ljava/lang/String;[I)V" />
-		<method name="getViewBinder()Landroid/widget/SimpleCursorTreeAdapter$ViewBinder;" since="5" />
-		<method name="setViewBinder(Landroid/widget/SimpleCursorTreeAdapter$ViewBinder;)V" since="5" />
-		<method name="setViewImage(Landroid/widget/ImageView;Ljava/lang/String;)V" />
-		<method name="setViewText(Landroid/widget/TextView;Ljava/lang/String;)V" since="5" />
-	</class>
-	<class name="android/widget/SimpleCursorTreeAdapter$ViewBinder" since="5">
-		<extends name="java/lang/Object" />
-		<method name="setViewValue(Landroid/view/View;Landroid/database/Cursor;I)Z" />
-	</class>
-	<class name="android/widget/SimpleExpandableListAdapter" since="1">
-		<extends name="android/widget/BaseExpandableListAdapter" />
-		<method name="&lt;init>(Landroid/content/Context;Ljava/util/List;II[Ljava/lang/String;[ILjava/util/List;II[Ljava/lang/String;[I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Ljava/util/List;II[Ljava/lang/String;[ILjava/util/List;I[Ljava/lang/String;[I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Ljava/util/List;I[Ljava/lang/String;[ILjava/util/List;I[Ljava/lang/String;[I)V" />
-		<method name="newChildView(ZLandroid/view/ViewGroup;)Landroid/view/View;" />
-		<method name="newGroupView(ZLandroid/view/ViewGroup;)Landroid/view/View;" />
-	</class>
-	<class name="android/widget/SlidingDrawer" since="3">
-		<extends name="android/view/ViewGroup" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="animateClose()V" />
-		<method name="animateOpen()V" />
-		<method name="animateToggle()V" />
-		<method name="close()V" />
-		<method name="getContent()Landroid/view/View;" />
-		<method name="getHandle()Landroid/view/View;" />
-		<method name="isMoving()Z" />
-		<method name="isOpened()Z" />
-		<method name="lock()V" />
-		<method name="open()V" />
-		<method name="setOnDrawerCloseListener(Landroid/widget/SlidingDrawer$OnDrawerCloseListener;)V" />
-		<method name="setOnDrawerOpenListener(Landroid/widget/SlidingDrawer$OnDrawerOpenListener;)V" />
-		<method name="setOnDrawerScrollListener(Landroid/widget/SlidingDrawer$OnDrawerScrollListener;)V" />
-		<method name="toggle()V" />
-		<method name="unlock()V" />
-		<field name="ORIENTATION_HORIZONTAL" />
-		<field name="ORIENTATION_VERTICAL" />
-	</class>
-	<class name="android/widget/SlidingDrawer$OnDrawerCloseListener" since="3">
-		<extends name="java/lang/Object" />
-		<method name="onDrawerClosed()V" />
-	</class>
-	<class name="android/widget/SlidingDrawer$OnDrawerOpenListener" since="3">
-		<extends name="java/lang/Object" />
-		<method name="onDrawerOpened()V" />
-	</class>
-	<class name="android/widget/SlidingDrawer$OnDrawerScrollListener" since="3">
-		<extends name="java/lang/Object" />
-		<method name="onScrollEnded()V" />
-		<method name="onScrollStarted()V" />
-	</class>
-	<class name="android/widget/Space" since="14">
-		<extends name="android/view/View" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-	</class>
-	<class name="android/widget/Spinner" since="1">
-		<extends name="android/widget/AbsSpinner" />
-		<implements name="android/content/DialogInterface$OnClickListener" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;I)V" since="11" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="11" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;III)V" since="21" />
-		<method name="getDropDownHorizontalOffset()I" since="16" />
-		<method name="getDropDownVerticalOffset()I" since="16" />
-		<method name="getDropDownWidth()I" since="16" />
-		<method name="getGravity()I" since="16" />
-		<method name="getPopupBackground()Landroid/graphics/drawable/Drawable;" since="16" />
-		<method name="getPrompt()Ljava/lang/CharSequence;" />
-		<method name="setDropDownHorizontalOffset(I)V" since="16" />
-		<method name="setDropDownVerticalOffset(I)V" since="16" />
-		<method name="setDropDownWidth(I)V" since="16" />
-		<method name="setGravity(I)V" since="11" />
-		<method name="setPopupBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V" since="16" />
-		<method name="setPopupBackgroundResource(I)V" since="16" />
-		<method name="setPrompt(Ljava/lang/CharSequence;)V" />
-		<method name="setPromptId(I)V" />
-		<field name="MODE_DIALOG" since="11" />
-		<field name="MODE_DROPDOWN" since="11" />
-	</class>
-	<class name="android/widget/SpinnerAdapter" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/widget/Adapter" />
-		<method name="getDropDownView(ILandroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View;" />
-	</class>
-	<class name="android/widget/StackView" since="11">
-		<extends name="android/widget/AdapterViewAnimator" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" since="14" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-	</class>
-	<class name="android/widget/Switch" since="14">
-		<extends name="android/widget/CompoundButton" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="getSplitTrack()Z" since="21" />
-		<method name="getSwitchMinWidth()I" since="16" />
-		<method name="getSwitchPadding()I" since="16" />
-		<method name="getTextOff()Ljava/lang/CharSequence;" />
-		<method name="getTextOn()Ljava/lang/CharSequence;" />
-		<method name="getThumbDrawable()Landroid/graphics/drawable/Drawable;" since="16" />
-		<method name="getThumbTextPadding()I" since="16" />
-		<method name="getTrackDrawable()Landroid/graphics/drawable/Drawable;" since="16" />
-		<method name="setSplitTrack(Z)V" since="21" />
-		<method name="setSwitchMinWidth(I)V" since="16" />
-		<method name="setSwitchPadding(I)V" since="16" />
-		<method name="setSwitchTextAppearance(Landroid/content/Context;I)V" />
-		<method name="setSwitchTypeface(Landroid/graphics/Typeface;)V" />
-		<method name="setSwitchTypeface(Landroid/graphics/Typeface;I)V" />
-		<method name="setTextOff(Ljava/lang/CharSequence;)V" />
-		<method name="setTextOn(Ljava/lang/CharSequence;)V" />
-		<method name="setThumbDrawable(Landroid/graphics/drawable/Drawable;)V" since="16" />
-		<method name="setThumbResource(I)V" since="16" />
-		<method name="setThumbTextPadding(I)V" since="16" />
-		<method name="setTrackDrawable(Landroid/graphics/drawable/Drawable;)V" since="16" />
-		<method name="setTrackResource(I)V" since="16" />
-	</class>
-	<class name="android/widget/TabHost" since="1">
-		<extends name="android/widget/FrameLayout" />
-		<implements name="android/view/ViewTreeObserver$OnTouchModeChangeListener" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" since="21" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="addTab(Landroid/widget/TabHost$TabSpec;)V" />
-		<method name="clearAllTabs()V" />
-		<method name="getCurrentTab()I" />
-		<method name="getCurrentTabTag()Ljava/lang/String;" />
-		<method name="getCurrentTabView()Landroid/view/View;" />
-		<method name="getCurrentView()Landroid/view/View;" />
-		<method name="getTabContentView()Landroid/widget/FrameLayout;" />
-		<method name="getTabWidget()Landroid/widget/TabWidget;" />
-		<method name="newTabSpec(Ljava/lang/String;)Landroid/widget/TabHost$TabSpec;" />
-		<method name="setCurrentTab(I)V" />
-		<method name="setCurrentTabByTag(Ljava/lang/String;)V" />
-		<method name="setOnTabChangedListener(Landroid/widget/TabHost$OnTabChangeListener;)V" />
-		<method name="setup()V" />
-		<method name="setup(Landroid/app/LocalActivityManager;)V" />
-	</class>
-	<class name="android/widget/TabHost$OnTabChangeListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onTabChanged(Ljava/lang/String;)V" />
-	</class>
-	<class name="android/widget/TabHost$TabContentFactory" since="1">
-		<extends name="java/lang/Object" />
-		<method name="createTabContent(Ljava/lang/String;)Landroid/view/View;" />
-	</class>
-	<class name="android/widget/TabHost$TabSpec" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/widget/TabHost;)V" />
-		<method name="getTag()Ljava/lang/String;" since="4" />
-		<method name="setContent(I)Landroid/widget/TabHost$TabSpec;" />
-		<method name="setContent(Landroid/content/Intent;)Landroid/widget/TabHost$TabSpec;" />
-		<method name="setContent(Landroid/widget/TabHost$TabContentFactory;)Landroid/widget/TabHost$TabSpec;" />
-		<method name="setIndicator(Landroid/view/View;)Landroid/widget/TabHost$TabSpec;" since="4" />
-		<method name="setIndicator(Ljava/lang/CharSequence;)Landroid/widget/TabHost$TabSpec;" />
-		<method name="setIndicator(Ljava/lang/CharSequence;Landroid/graphics/drawable/Drawable;)Landroid/widget/TabHost$TabSpec;" />
-	</class>
-	<class name="android/widget/TabWidget" since="1">
-		<extends name="android/widget/LinearLayout" />
-		<implements name="android/view/View$OnFocusChangeListener" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="focusCurrentTab(I)V" />
-		<method name="getChildTabViewAt(I)Landroid/view/View;" since="4" />
-		<method name="getTabCount()I" since="4" />
-		<method name="isStripEnabled()Z" since="8" />
-		<method name="setCurrentTab(I)V" />
-		<method name="setDividerDrawable(I)V" since="4" />
-		<method name="setDividerDrawable(Landroid/graphics/drawable/Drawable;)V" since="4" />
-		<method name="setLeftStripDrawable(I)V" since="8" />
-		<method name="setLeftStripDrawable(Landroid/graphics/drawable/Drawable;)V" since="8" />
-		<method name="setRightStripDrawable(I)V" since="8" />
-		<method name="setRightStripDrawable(Landroid/graphics/drawable/Drawable;)V" since="8" />
-		<method name="setStripEnabled(Z)V" since="8" />
-	</class>
-	<class name="android/widget/TableLayout" since="1">
-		<extends name="android/widget/LinearLayout" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="generateLayoutParams(Landroid/util/AttributeSet;)Landroid/widget/TableLayout$LayoutParams;" />
-		<method name="isColumnCollapsed(I)Z" />
-		<method name="isColumnShrinkable(I)Z" />
-		<method name="isColumnStretchable(I)Z" />
-		<method name="isShrinkAllColumns()Z" />
-		<method name="isStretchAllColumns()Z" />
-		<method name="setColumnCollapsed(IZ)V" />
-		<method name="setColumnShrinkable(IZ)V" />
-		<method name="setColumnStretchable(IZ)V" />
-		<method name="setShrinkAllColumns(Z)V" />
-		<method name="setStretchAllColumns(Z)V" />
-	</class>
-	<class name="android/widget/TableLayout$LayoutParams" since="1">
-		<extends name="android/widget/LinearLayout$LayoutParams" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(II)V" />
-		<method name="&lt;init>(IIF)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/view/ViewGroup$LayoutParams;)V" />
-		<method name="&lt;init>(Landroid/view/ViewGroup$MarginLayoutParams;)V" />
-	</class>
-	<class name="android/widget/TableRow" since="1">
-		<extends name="android/widget/LinearLayout" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="generateLayoutParams(Landroid/util/AttributeSet;)Landroid/widget/TableRow$LayoutParams;" />
-		<method name="getVirtualChildAt(I)Landroid/view/View;" />
-		<method name="getVirtualChildCount()I" />
-	</class>
-	<class name="android/widget/TableRow$LayoutParams" since="1">
-		<extends name="android/widget/LinearLayout$LayoutParams" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(II)V" />
-		<method name="&lt;init>(IIF)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/view/ViewGroup$LayoutParams;)V" />
-		<method name="&lt;init>(Landroid/view/ViewGroup$MarginLayoutParams;)V" />
-		<field name="column" />
-		<field name="span" />
-	</class>
-	<class name="android/widget/TextClock" since="17">
-		<extends name="android/widget/TextView" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="getFormat12Hour()Ljava/lang/CharSequence;" />
-		<method name="getFormat24Hour()Ljava/lang/CharSequence;" />
-		<method name="getTimeZone()Ljava/lang/String;" />
-		<method name="is24HourModeEnabled()Z" />
-		<method name="setFormat12Hour(Ljava/lang/CharSequence;)V" />
-		<method name="setFormat24Hour(Ljava/lang/CharSequence;)V" />
-		<method name="setTimeZone(Ljava/lang/String;)V" />
-		<field name="DEFAULT_FORMAT_12_HOUR" />
-		<field name="DEFAULT_FORMAT_24_HOUR" />
-	</class>
-	<class name="android/widget/TextSwitcher" since="1">
-		<extends name="android/widget/ViewSwitcher" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="setCurrentText(Ljava/lang/CharSequence;)V" />
-		<method name="setText(Ljava/lang/CharSequence;)V" />
-	</class>
-	<class name="android/widget/TextView" since="1">
-		<extends name="android/view/View" />
-		<implements name="android/view/ViewTreeObserver$OnPreDrawListener" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="addTextChangedListener(Landroid/text/TextWatcher;)V" />
-		<method name="append(Ljava/lang/CharSequence;)V" />
-		<method name="append(Ljava/lang/CharSequence;II)V" />
-		<method name="beginBatchEdit()V" since="3" />
-		<method name="bringPointIntoView(I)Z" since="3" />
-		<method name="clearComposingText()V" since="3" />
-		<method name="debug(I)V" />
-		<method name="didTouchFocusSelect()Z" since="3" />
-		<method name="endBatchEdit()V" since="3" />
-		<method name="extractText(Landroid/view/inputmethod/ExtractedTextRequest;Landroid/view/inputmethod/ExtractedText;)Z" since="3" />
-		<method name="getAutoLinkMask()I" />
-		<method name="getCompoundDrawablePadding()I" />
-		<method name="getCompoundDrawables()[Landroid/graphics/drawable/Drawable;" />
-		<method name="getCompoundDrawablesRelative()[Landroid/graphics/drawable/Drawable;" since="17" />
-		<method name="getCompoundPaddingBottom()I" />
-		<method name="getCompoundPaddingEnd()I" since="17" />
-		<method name="getCompoundPaddingLeft()I" />
-		<method name="getCompoundPaddingRight()I" />
-		<method name="getCompoundPaddingStart()I" since="17" />
-		<method name="getCompoundPaddingTop()I" />
-		<method name="getCurrentHintTextColor()I" />
-		<method name="getCurrentTextColor()I" />
-		<method name="getCustomSelectionActionModeCallback()Landroid/view/ActionMode$Callback;" since="11" />
-		<method name="getDefaultEditable()Z" />
-		<method name="getDefaultMovementMethod()Landroid/text/method/MovementMethod;" />
-		<method name="getEditableText()Landroid/text/Editable;" since="3" />
-		<method name="getEllipsize()Landroid/text/TextUtils$TruncateAt;" />
-		<method name="getError()Ljava/lang/CharSequence;" />
-		<method name="getExtendedPaddingBottom()I" />
-		<method name="getExtendedPaddingTop()I" />
-		<method name="getFilters()[Landroid/text/InputFilter;" />
-		<method name="getFreezesText()Z" />
-		<method name="getGravity()I" />
-		<method name="getHighlightColor()I" since="16" />
-		<method name="getHint()Ljava/lang/CharSequence;" />
-		<method name="getHintTextColors()Landroid/content/res/ColorStateList;" />
-		<method name="getImeActionId()I" since="3" />
-		<method name="getImeActionLabel()Ljava/lang/CharSequence;" since="3" />
-		<method name="getImeOptions()I" since="3" />
-		<method name="getIncludeFontPadding()Z" since="16" />
-		<method name="getInputExtras(Z)Landroid/os/Bundle;" since="3" />
-		<method name="getInputType()I" since="3" />
-		<method name="getKeyListener()Landroid/text/method/KeyListener;" />
-		<method name="getLayout()Landroid/text/Layout;" />
-		<method name="getLineBounds(ILandroid/graphics/Rect;)I" />
-		<method name="getLineCount()I" />
-		<method name="getLineHeight()I" />
-		<method name="getLineSpacingExtra()F" since="16" />
-		<method name="getLineSpacingMultiplier()F" since="16" />
-		<method name="getLinkTextColors()Landroid/content/res/ColorStateList;" />
-		<method name="getLinksClickable()Z" />
-		<method name="getMarqueeRepeatLimit()I" since="16" />
-		<method name="getMaxEms()I" since="16" />
-		<method name="getMaxHeight()I" since="16" />
-		<method name="getMaxLines()I" since="16" />
-		<method name="getMaxWidth()I" since="16" />
-		<method name="getMinEms()I" since="16" />
-		<method name="getMinHeight()I" since="16" />
-		<method name="getMinLines()I" since="16" />
-		<method name="getMinWidth()I" since="16" />
-		<method name="getMovementMethod()Landroid/text/method/MovementMethod;" />
-		<method name="getOffsetForPosition(FF)I" since="14" />
-		<method name="getPaint()Landroid/text/TextPaint;" />
-		<method name="getPaintFlags()I" />
-		<method name="getPrivateImeOptions()Ljava/lang/String;" since="3" />
-		<method name="getSelectionEnd()I" />
-		<method name="getSelectionStart()I" />
-		<method name="getShadowColor()I" since="16" />
-		<method name="getShadowDx()F" since="16" />
-		<method name="getShadowDy()F" since="16" />
-		<method name="getShadowRadius()F" since="16" />
-		<method name="getText()Ljava/lang/CharSequence;" />
-		<method name="getTextColor(Landroid/content/Context;Landroid/content/res/TypedArray;I)I" />
-		<method name="getTextColors()Landroid/content/res/ColorStateList;" />
-		<method name="getTextColors(Landroid/content/Context;Landroid/content/res/TypedArray;)Landroid/content/res/ColorStateList;" />
-		<method name="getTextLocale()Ljava/util/Locale;" since="17" />
-		<method name="getTextScaleX()F" />
-		<method name="getTextSize()F" />
-		<method name="getTotalPaddingBottom()I" />
-		<method name="getTotalPaddingEnd()I" since="17" />
-		<method name="getTotalPaddingLeft()I" />
-		<method name="getTotalPaddingRight()I" />
-		<method name="getTotalPaddingStart()I" since="17" />
-		<method name="getTotalPaddingTop()I" />
-		<method name="getTransformationMethod()Landroid/text/method/TransformationMethod;" />
-		<method name="getTypeface()Landroid/graphics/Typeface;" />
-		<method name="getUrls()[Landroid/text/style/URLSpan;" />
-		<method name="hasSelection()Z" />
-		<method name="isCursorVisible()Z" since="16" />
-		<method name="isInputMethodTarget()Z" since="3" />
-		<method name="isSuggestionsEnabled()Z" since="14" />
-		<method name="isTextSelectable()Z" since="11" />
-		<method name="length()I" />
-		<method name="moveCursorToVisibleOffset()Z" since="3" />
-		<method name="onBeginBatchEdit()V" since="3" />
-		<method name="onCommitCompletion(Landroid/view/inputmethod/CompletionInfo;)V" since="3" />
-		<method name="onCommitCorrection(Landroid/view/inputmethod/CorrectionInfo;)V" since="11" />
-		<method name="onEditorAction(I)V" since="3" />
-		<method name="onEndBatchEdit()V" since="3" />
-		<method name="onPrivateIMECommand(Ljava/lang/String;Landroid/os/Bundle;)Z" since="3" />
-		<method name="onSelectionChanged(II)V" since="3" />
-		<method name="onTextChanged(Ljava/lang/CharSequence;III)V" />
-		<method name="onTextContextMenuItem(I)Z" since="3" />
-		<method name="removeTextChangedListener(Landroid/text/TextWatcher;)V" />
-		<method name="resetResolvedDrawables()V" since="14" />
-		<method name="resetResolvedLayoutDirection()V" since="14" />
-		<method name="resolveDrawables()V" since="14" />
-		<method name="resolveTextDirection()V" since="14" />
-		<method name="setAllCaps(Z)V" since="14" />
-		<method name="setAutoLinkMask(I)V" />
-		<method name="setCompoundDrawablePadding(I)V" />
-		<method name="setCompoundDrawables(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V" />
-		<method name="setCompoundDrawablesRelative(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V" since="17" />
-		<method name="setCompoundDrawablesRelativeWithIntrinsicBounds(IIII)V" since="17" />
-		<method name="setCompoundDrawablesRelativeWithIntrinsicBounds(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V" since="17" />
-		<method name="setCompoundDrawablesWithIntrinsicBounds(IIII)V" since="3" />
-		<method name="setCompoundDrawablesWithIntrinsicBounds(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V" />
-		<method name="setCursorVisible(Z)V" />
-		<method name="setCustomSelectionActionModeCallback(Landroid/view/ActionMode$Callback;)V" since="11" />
-		<method name="setEditableFactory(Landroid/text/Editable$Factory;)V" />
-		<method name="setElegantTextHeight(Z)V" since="21" />
-		<method name="setEllipsize(Landroid/text/TextUtils$TruncateAt;)V" />
-		<method name="setEms(I)V" />
-		<method name="setError(Ljava/lang/CharSequence;)V" />
-		<method name="setError(Ljava/lang/CharSequence;Landroid/graphics/drawable/Drawable;)V" />
-		<method name="setExtractedText(Landroid/view/inputmethod/ExtractedText;)V" since="3" />
-		<method name="setFilters([Landroid/text/InputFilter;)V" />
-		<method name="setFrame(IIII)Z" />
-		<method name="setFreezesText(Z)V" />
-		<method name="setGravity(I)V" />
-		<method name="setHeight(I)V" />
-		<method name="setHighlightColor(I)V" />
-		<method name="setHint(I)V" />
-		<method name="setHint(Ljava/lang/CharSequence;)V" />
-		<method name="setHintTextColor(I)V" />
-		<method name="setHintTextColor(Landroid/content/res/ColorStateList;)V" />
-		<method name="setHorizontallyScrolling(Z)V" />
-		<method name="setImeActionLabel(Ljava/lang/CharSequence;I)V" since="3" />
-		<method name="setImeOptions(I)V" since="3" />
-		<method name="setIncludeFontPadding(Z)V" />
-		<method name="setInputExtras(I)V" since="3" />
-		<method name="setInputType(I)V" since="3" />
-		<method name="setKeyListener(Landroid/text/method/KeyListener;)V" />
-		<method name="setLineSpacing(FF)V" />
-		<method name="setLines(I)V" />
-		<method name="setLinkTextColor(I)V" />
-		<method name="setLinkTextColor(Landroid/content/res/ColorStateList;)V" />
-		<method name="setLinksClickable(Z)V" />
-		<method name="setMarqueeRepeatLimit(I)V" since="2" />
-		<method name="setMaxEms(I)V" />
-		<method name="setMaxHeight(I)V" />
-		<method name="setMaxLines(I)V" />
-		<method name="setMaxWidth(I)V" />
-		<method name="setMinEms(I)V" />
-		<method name="setMinHeight(I)V" />
-		<method name="setMinLines(I)V" />
-		<method name="setMinWidth(I)V" />
-		<method name="setMovementMethod(Landroid/text/method/MovementMethod;)V" />
-		<method name="setOnEditorActionListener(Landroid/widget/TextView$OnEditorActionListener;)V" since="3" />
-		<method name="setPaddingRelative(IIII)V" since="16" />
-		<method name="setPaintFlags(I)V" />
-		<method name="setPrivateImeOptions(Ljava/lang/String;)V" since="3" />
-		<method name="setRawInputType(I)V" since="3" />
-		<method name="setScroller(Landroid/widget/Scroller;)V" />
-		<method name="setSelectAllOnFocus(Z)V" />
-		<method name="setShadowLayer(FFFI)V" />
-		<method name="setSingleLine()V" />
-		<method name="setSingleLine(Z)V" />
-		<method name="setSpannableFactory(Landroid/text/Spannable$Factory;)V" />
-		<method name="setText(I)V" />
-		<method name="setText(ILandroid/widget/TextView$BufferType;)V" />
-		<method name="setText(Ljava/lang/CharSequence;)V" />
-		<method name="setText(Ljava/lang/CharSequence;Landroid/widget/TextView$BufferType;)V" />
-		<method name="setText([CII)V" />
-		<method name="setTextAppearance(Landroid/content/Context;I)V" />
-		<method name="setTextColor(I)V" />
-		<method name="setTextColor(Landroid/content/res/ColorStateList;)V" />
-		<method name="setTextIsSelectable(Z)V" since="11" />
-		<method name="setTextKeepState(Ljava/lang/CharSequence;)V" />
-		<method name="setTextKeepState(Ljava/lang/CharSequence;Landroid/widget/TextView$BufferType;)V" />
-		<method name="setTextLocale(Ljava/util/Locale;)V" since="17" />
-		<method name="setTextScaleX(F)V" />
-		<method name="setTextSize(F)V" />
-		<method name="setTextSize(IF)V" />
-		<method name="setTransformationMethod(Landroid/text/method/TransformationMethod;)V" />
-		<method name="setTypeface(Landroid/graphics/Typeface;)V" />
-		<method name="setTypeface(Landroid/graphics/Typeface;I)V" />
-		<method name="setWidth(I)V" />
-	</class>
-	<class name="android/widget/TextView$BufferType" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Landroid/widget/TextView$BufferType;" />
-		<method name="values()[Landroid/widget/TextView$BufferType;" />
-		<field name="EDITABLE" />
-		<field name="NORMAL" />
-		<field name="SPANNABLE" />
-	</class>
-	<class name="android/widget/TextView$OnEditorActionListener" since="3">
-		<extends name="java/lang/Object" />
-		<method name="onEditorAction(Landroid/widget/TextView;ILandroid/view/KeyEvent;)Z" />
-	</class>
-	<class name="android/widget/TextView$SavedState" since="1">
-		<extends name="android/view/View$BaseSavedState" />
-		<method name="&lt;init>()V" />
-		<field name="CREATOR" />
-	</class>
-	<class name="android/widget/TimePicker" since="1">
-		<extends name="android/widget/FrameLayout" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="getCurrentHour()Ljava/lang/Integer;" />
-		<method name="getCurrentMinute()Ljava/lang/Integer;" />
-		<method name="is24HourView()Z" />
-		<method name="setCurrentHour(Ljava/lang/Integer;)V" />
-		<method name="setCurrentMinute(Ljava/lang/Integer;)V" />
-		<method name="setIs24HourView(Ljava/lang/Boolean;)V" />
-		<method name="setOnTimeChangedListener(Landroid/widget/TimePicker$OnTimeChangedListener;)V" />
-	</class>
-	<class name="android/widget/TimePicker$OnTimeChangedListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onTimeChanged(Landroid/widget/TimePicker;II)V" />
-	</class>
-	<class name="android/widget/Toast" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="cancel()V" />
-		<method name="getDuration()I" />
-		<method name="getGravity()I" />
-		<method name="getHorizontalMargin()F" />
-		<method name="getVerticalMargin()F" />
-		<method name="getView()Landroid/view/View;" />
-		<method name="getXOffset()I" />
-		<method name="getYOffset()I" />
-		<method name="makeText(Landroid/content/Context;II)Landroid/widget/Toast;" />
-		<method name="makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;" />
-		<method name="setDuration(I)V" />
-		<method name="setGravity(III)V" />
-		<method name="setMargin(FF)V" />
-		<method name="setText(I)V" />
-		<method name="setText(Ljava/lang/CharSequence;)V" />
-		<method name="setView(Landroid/view/View;)V" />
-		<method name="show()V" />
-		<field name="LENGTH_LONG" />
-		<field name="LENGTH_SHORT" />
-	</class>
-	<class name="android/widget/ToggleButton" since="1">
-		<extends name="android/widget/CompoundButton" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="getTextOff()Ljava/lang/CharSequence;" />
-		<method name="getTextOn()Ljava/lang/CharSequence;" />
-		<method name="setTextOff(Ljava/lang/CharSequence;)V" />
-		<method name="setTextOn(Ljava/lang/CharSequence;)V" />
-	</class>
-	<class name="android/widget/Toolbar" since="21">
-		<extends name="android/view/ViewGroup" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" />
-		<method name="collapseActionView()V" />
-		<method name="dismissPopupMenus()V" />
-		<method name="generateDefaultLayoutParams()Landroid/widget/Toolbar$LayoutParams;" />
-		<method name="generateLayoutParams(Landroid/util/AttributeSet;)Landroid/widget/Toolbar$LayoutParams;" />
-		<method name="generateLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Landroid/widget/Toolbar$LayoutParams;" />
-		<method name="getContentInsetEnd()I" />
-		<method name="getContentInsetLeft()I" />
-		<method name="getContentInsetRight()I" />
-		<method name="getContentInsetStart()I" />
-		<method name="getLogo()Landroid/graphics/drawable/Drawable;" />
-		<method name="getLogoDescription()Ljava/lang/CharSequence;" />
-		<method name="getMenu()Landroid/view/Menu;" />
-		<method name="getNavigationIcon()Landroid/graphics/drawable/Drawable;" />
-		<method name="getSubtitle()Ljava/lang/CharSequence;" />
-		<method name="getTitle()Ljava/lang/CharSequence;" />
-		<method name="hasExpandedActionView()Z" />
-		<method name="hideOverflowMenu()Z" />
-		<method name="inflateMenu(I)V" />
-		<method name="isOverflowMenuShowing()Z" />
-		<method name="setContentInsetsAbsolute(II)V" />
-		<method name="setContentInsetsRelative(II)V" />
-		<method name="setLogo(I)V" />
-		<method name="setLogo(Landroid/graphics/drawable/Drawable;)V" />
-		<method name="setLogoDescription(I)V" />
-		<method name="setLogoDescription(Ljava/lang/CharSequence;)V" />
-		<method name="setNavigationContentDescription(I)V" />
-		<method name="setNavigationContentDescription(Ljava/lang/CharSequence;)V" />
-		<method name="setNavigationDescription(I)V" />
-		<method name="setNavigationDescription(Ljava/lang/CharSequence;)V" />
-		<method name="setNavigationIcon(I)V" />
-		<method name="setNavigationIcon(Landroid/graphics/drawable/Drawable;)V" />
-		<method name="setNavigationOnClickListener(Landroid/view/View$OnClickListener;)V" />
-		<method name="setOnMenuItemClickListener(Landroid/widget/Toolbar$OnMenuItemClickListener;)V" />
-		<method name="setSubtitle(I)V" />
-		<method name="setSubtitle(Ljava/lang/CharSequence;)V" />
-		<method name="setSubtitleTextAppearance(Landroid/content/Context;I)V" />
-		<method name="setTitle(I)V" />
-		<method name="setTitle(Ljava/lang/CharSequence;)V" />
-		<method name="setTitleTextAppearance(Landroid/content/Context;I)V" />
-		<method name="showOverflowMenu()Z" />
-	</class>
-	<class name="android/widget/Toolbar$LayoutParams" since="21">
-		<extends name="android/app/ActionBar$LayoutParams" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(II)V" />
-		<method name="&lt;init>(III)V" />
-		<method name="&lt;init>(Landroid/app/ActionBar$LayoutParams;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/view/ViewGroup$LayoutParams;)V" />
-		<method name="&lt;init>(Landroid/view/ViewGroup$MarginLayoutParams;)V" />
-		<method name="&lt;init>(Landroid/widget/Toolbar$LayoutParams;)V" />
-	</class>
-	<class name="android/widget/Toolbar$OnMenuItemClickListener" since="21">
-		<extends name="java/lang/Object" />
-		<method name="onMenuItemClick(Landroid/view/MenuItem;)Z" />
-	</class>
-	<class name="android/widget/TwoLineListItem" since="1">
-		<extends name="android/widget/RelativeLayout" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="getText1()Landroid/widget/TextView;" />
-		<method name="getText2()Landroid/widget/TextView;" />
-	</class>
-	<class name="android/widget/VideoView" since="1">
-		<extends name="android/view/SurfaceView" />
-		<implements name="android/widget/MediaController$MediaPlayerControl" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="addSubtitleSource(Ljava/io/InputStream;Landroid/media/MediaFormat;)V" since="19" />
-		<method name="resolveAdjustedSize(II)I" />
-		<method name="resume()V" since="8" />
-		<method name="setMediaController(Landroid/widget/MediaController;)V" />
-		<method name="setOnCompletionListener(Landroid/media/MediaPlayer$OnCompletionListener;)V" />
-		<method name="setOnErrorListener(Landroid/media/MediaPlayer$OnErrorListener;)V" />
-		<method name="setOnInfoListener(Landroid/media/MediaPlayer$OnInfoListener;)V" since="17" />
-		<method name="setOnPreparedListener(Landroid/media/MediaPlayer$OnPreparedListener;)V" />
-		<method name="setVideoPath(Ljava/lang/String;)V" />
-		<method name="setVideoURI(Landroid/net/Uri;)V" />
-		<method name="stopPlayback()V" />
-		<method name="suspend()V" since="8" />
-	</class>
-	<class name="android/widget/ViewAnimator" since="1">
-		<extends name="android/widget/FrameLayout" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="getAnimateFirstView()Z" since="17" />
-		<method name="getCurrentView()Landroid/view/View;" />
-		<method name="getDisplayedChild()I" />
-		<method name="getInAnimation()Landroid/view/animation/Animation;" />
-		<method name="getOutAnimation()Landroid/view/animation/Animation;" />
-		<method name="setAnimateFirstView(Z)V" />
-		<method name="setDisplayedChild(I)V" />
-		<method name="setInAnimation(Landroid/content/Context;I)V" />
-		<method name="setInAnimation(Landroid/view/animation/Animation;)V" />
-		<method name="setOutAnimation(Landroid/content/Context;I)V" />
-		<method name="setOutAnimation(Landroid/view/animation/Animation;)V" />
-		<method name="showNext()V" />
-		<method name="showPrevious()V" />
-	</class>
-	<class name="android/widget/ViewFlipper" since="1">
-		<extends name="android/widget/ViewAnimator" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="isAutoStart()Z" since="7" />
-		<method name="isFlipping()Z" />
-		<method name="setAutoStart(Z)V" since="7" />
-		<method name="setFlipInterval(I)V" />
-		<method name="startFlipping()V" />
-		<method name="stopFlipping()V" />
-	</class>
-	<class name="android/widget/ViewSwitcher" since="1">
-		<extends name="android/widget/ViewAnimator" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="getNextView()Landroid/view/View;" />
-		<method name="reset()V" />
-		<method name="setFactory(Landroid/widget/ViewSwitcher$ViewFactory;)V" />
-	</class>
-	<class name="android/widget/ViewSwitcher$ViewFactory" since="1">
-		<extends name="java/lang/Object" />
-		<method name="makeView()Landroid/view/View;" />
-	</class>
-	<class name="android/widget/WrapperListAdapter" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/widget/ListAdapter" />
-		<method name="getWrappedAdapter()Landroid/widget/ListAdapter;" />
-	</class>
-	<class name="android/widget/ZoomButton" since="1">
-		<extends name="android/widget/ImageButton" />
-		<implements name="android/view/View$OnLongClickListener" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="21" />
-		<method name="setZoomSpeed(J)V" />
-	</class>
-	<class name="android/widget/ZoomButtonsController" since="4">
-		<extends name="java/lang/Object" />
-		<implements name="android/view/View$OnTouchListener" />
-		<method name="&lt;init>(Landroid/view/View;)V" />
-		<method name="getContainer()Landroid/view/ViewGroup;" />
-		<method name="getZoomControls()Landroid/view/View;" />
-		<method name="isAutoDismissed()Z" />
-		<method name="isVisible()Z" />
-		<method name="setAutoDismissed(Z)V" />
-		<method name="setFocusable(Z)V" />
-		<method name="setOnZoomListener(Landroid/widget/ZoomButtonsController$OnZoomListener;)V" />
-		<method name="setVisible(Z)V" />
-		<method name="setZoomInEnabled(Z)V" />
-		<method name="setZoomOutEnabled(Z)V" />
-		<method name="setZoomSpeed(J)V" />
-	</class>
-	<class name="android/widget/ZoomButtonsController$OnZoomListener" since="4">
-		<extends name="java/lang/Object" />
-		<method name="onVisibilityChanged(Z)V" />
-		<method name="onZoom(Z)V" />
-	</class>
-	<class name="android/widget/ZoomControls" since="1">
-		<extends name="android/widget/LinearLayout" />
-		<method name="&lt;init>(Landroid/content/Context;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="hide()V" />
-		<method name="setIsZoomInEnabled(Z)V" />
-		<method name="setIsZoomOutEnabled(Z)V" />
-		<method name="setOnZoomInClickListener(Landroid/view/View$OnClickListener;)V" />
-		<method name="setOnZoomOutClickListener(Landroid/view/View$OnClickListener;)V" />
-		<method name="setZoomSpeed(J)V" />
-		<method name="show()V" />
-	</class>
-	<class name="com/android/internal/util/Predicate" since="1">
-		<extends name="java/lang/Object" />
-		<method name="apply(Ljava/lang/Object;)Z" />
-	</class>
-	<class name="com/google/android/maps/GeoPoint" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(II)V" />
-		<method name="getLatitudeE6()I" />
-		<method name="getLongitudeE6()I" />
-	</class>
-	<class name="com/google/android/maps/ItemizedOverlay" since="1">
-		<extends name="com/google/android/maps/Overlay" />
-		<method name="&lt;init>(Landroid/graphics/drawable/Drawable;)V" />
-		<method name="boundCenter(Landroid/graphics/drawable/Drawable;)Landroid/graphics/drawable/Drawable;" />
-		<method name="boundCenterBottom(Landroid/graphics/drawable/Drawable;)Landroid/graphics/drawable/Drawable;" />
-		<method name="createItem(I)Lcom/google/android/maps/OverlayItem;" />
-		<method name="getCenter()Lcom/google/android/maps/GeoPoint;" />
-		<method name="getFocus()Lcom/google/android/maps/OverlayItem;" />
-		<method name="getIndexToDraw(I)I" />
-		<method name="getItem(I)Lcom/google/android/maps/OverlayItem;" />
-		<method name="getLastFocusedIndex()I" />
-		<method name="getLatSpanE6()I" />
-		<method name="getLonSpanE6()I" />
-		<method name="hitTest(Lcom/google/android/maps/OverlayItem;Landroid/graphics/drawable/Drawable;II)Z" />
-		<method name="nextFocus(Z)Lcom/google/android/maps/OverlayItem;" />
-		<method name="onTap(I)Z" />
-		<method name="populate()V" />
-		<method name="setDrawFocusedItem(Z)V" />
-		<method name="setFocus(Lcom/google/android/maps/OverlayItem;)V" />
-		<method name="setLastFocusedIndex(I)V" />
-		<method name="setOnFocusChangeListener(Lcom/google/android/maps/ItemizedOverlay$OnFocusChangeListener;)V" />
-		<method name="size()I" />
-	</class>
-	<class name="com/google/android/maps/ItemizedOverlay$OnFocusChangeListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="onFocusChanged(Lcom/google/android/maps/ItemizedOverlay;Lcom/google/android/maps/OverlayItem;)V" />
-	</class>
-	<class name="com/google/android/maps/MapActivity" since="1">
-		<extends name="android/app/Activity" />
-		<method name="&lt;init>()V" />
-		<method name="isLocationDisplayed()Z" />
-		<method name="isRouteDisplayed()Z" />
-	</class>
-	<class name="com/google/android/maps/MapController" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="android/view/View$OnKeyListener" />
-		<method name="&lt;init>()V" />
-		<method name="animateTo(Lcom/google/android/maps/GeoPoint;)V" />
-		<method name="animateTo(Lcom/google/android/maps/GeoPoint;Landroid/os/Message;)V" />
-		<method name="animateTo(Lcom/google/android/maps/GeoPoint;Ljava/lang/Runnable;)V" />
-		<method name="scrollBy(II)V" />
-		<method name="setCenter(Lcom/google/android/maps/GeoPoint;)V" />
-		<method name="setZoom(I)I" />
-		<method name="stopAnimation(Z)V" />
-		<method name="stopPanning()V" />
-		<method name="zoomIn()Z" />
-		<method name="zoomInFixing(II)Z" />
-		<method name="zoomOut()Z" />
-		<method name="zoomOutFixing(II)Z" />
-		<method name="zoomToSpan(II)V" />
-	</class>
-	<class name="com/google/android/maps/MapView" since="1">
-		<extends name="android/view/ViewGroup" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
-		<method name="&lt;init>(Landroid/content/Context;Ljava/lang/String;)V" />
-		<method name="canCoverCenter()Z" />
-		<method name="displayZoomControls(Z)V" />
-		<method name="generateDefaultLayoutParams()Lcom/google/android/maps/MapView$LayoutParams;" />
-		<method name="getController()Lcom/google/android/maps/MapController;" />
-		<method name="getLatitudeSpan()I" />
-		<method name="getLongitudeSpan()I" />
-		<method name="getMapCenter()Lcom/google/android/maps/GeoPoint;" />
-		<method name="getMaxZoomLevel()I" />
-		<method name="getOverlays()Ljava/util/List;" />
-		<method name="getProjection()Lcom/google/android/maps/Projection;" />
-		<method name="getZoomControls()Landroid/view/View;" />
-		<method name="getZoomLevel()I" />
-		<method name="isSatellite()Z" />
-		<method name="isStreetView()Z" />
-		<method name="isTraffic()Z" />
-		<method name="onRestoreInstanceState(Landroid/os/Bundle;)V" />
-		<method name="onSaveInstanceState(Landroid/os/Bundle;)V" />
-		<method name="preLoad()V" />
-		<method name="setReticleDrawMode(Lcom/google/android/maps/MapView$ReticleDrawMode;)V" />
-		<method name="setSatellite(Z)V" />
-		<method name="setStreetView(Z)V" />
-		<method name="setTraffic(Z)V" />
-	</class>
-	<class name="com/google/android/maps/MapView$LayoutParams" since="1">
-		<extends name="android/view/ViewGroup$LayoutParams" />
-		<method name="&lt;init>(IIIII)V" />
-		<method name="&lt;init>(IILcom/google/android/maps/GeoPoint;I)V" />
-		<method name="&lt;init>(IILcom/google/android/maps/GeoPoint;III)V" />
-		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
-		<method name="&lt;init>(Landroid/view/ViewGroup$LayoutParams;)V" />
-		<method name="debug(Ljava/lang/String;)Ljava/lang/String;" />
-		<field name="BOTTOM" />
-		<field name="BOTTOM_CENTER" />
-		<field name="CENTER" />
-		<field name="CENTER_HORIZONTAL" />
-		<field name="CENTER_VERTICAL" />
-		<field name="LEFT" />
-		<field name="MODE_MAP" />
-		<field name="MODE_VIEW" />
-		<field name="RIGHT" />
-		<field name="TOP" />
-		<field name="TOP_LEFT" />
-		<field name="alignment" />
-		<field name="mode" />
-		<field name="point" />
-		<field name="x" />
-		<field name="y" />
-	</class>
-	<class name="com/google/android/maps/MapView$ReticleDrawMode" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Lcom/google/android/maps/MapView$ReticleDrawMode;" />
-		<method name="values()[Lcom/google/android/maps/MapView$ReticleDrawMode;" />
-		<field name="DRAW_RETICLE_NEVER" />
-		<field name="DRAW_RETICLE_OVER" />
-		<field name="DRAW_RETICLE_UNDER" />
-	</class>
-	<class name="com/google/android/maps/MyLocationOverlay" since="1">
-		<extends name="com/google/android/maps/Overlay" />
-		<implements name="android/hardware/SensorListener" />
-		<implements name="android/location/LocationListener" />
-		<method name="&lt;init>(Landroid/content/Context;Lcom/google/android/maps/MapView;)V" />
-		<method name="disableCompass()V" />
-		<method name="disableMyLocation()V" />
-		<method name="dispatchTap()Z" />
-		<method name="drawCompass(Landroid/graphics/Canvas;F)V" />
-		<method name="drawMyLocation(Landroid/graphics/Canvas;Lcom/google/android/maps/MapView;Landroid/location/Location;Lcom/google/android/maps/GeoPoint;J)V" />
-		<method name="enableCompass()Z" />
-		<method name="enableMyLocation()Z" />
-		<method name="getLastFix()Landroid/location/Location;" />
-		<method name="getMyLocation()Lcom/google/android/maps/GeoPoint;" />
-		<method name="getOrientation()F" />
-		<method name="isCompassEnabled()Z" />
-		<method name="isMyLocationEnabled()Z" />
-		<method name="runOnFirstFix(Ljava/lang/Runnable;)Z" />
-	</class>
-	<class name="com/google/android/maps/Overlay" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="draw(Landroid/graphics/Canvas;Lcom/google/android/maps/MapView;Z)V" />
-		<method name="draw(Landroid/graphics/Canvas;Lcom/google/android/maps/MapView;ZJ)Z" />
-		<method name="drawAt(Landroid/graphics/Canvas;Landroid/graphics/drawable/Drawable;IIZ)V" />
-		<method name="onKeyDown(ILandroid/view/KeyEvent;Lcom/google/android/maps/MapView;)Z" />
-		<method name="onKeyUp(ILandroid/view/KeyEvent;Lcom/google/android/maps/MapView;)Z" />
-		<method name="onTap(Lcom/google/android/maps/GeoPoint;Lcom/google/android/maps/MapView;)Z" />
-		<method name="onTouchEvent(Landroid/view/MotionEvent;Lcom/google/android/maps/MapView;)Z" />
-		<method name="onTrackballEvent(Landroid/view/MotionEvent;Lcom/google/android/maps/MapView;)Z" />
-		<field name="SHADOW_X_SKEW" />
-		<field name="SHADOW_Y_SCALE" />
-	</class>
-	<class name="com/google/android/maps/OverlayItem" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Lcom/google/android/maps/GeoPoint;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="getMarker(I)Landroid/graphics/drawable/Drawable;" />
-		<method name="getPoint()Lcom/google/android/maps/GeoPoint;" />
-		<method name="getSnippet()Ljava/lang/String;" />
-		<method name="getTitle()Ljava/lang/String;" />
-		<method name="routableAddress()Ljava/lang/String;" />
-		<method name="setMarker(Landroid/graphics/drawable/Drawable;)V" />
-		<method name="setState(Landroid/graphics/drawable/Drawable;I)V" />
-		<field name="ITEM_STATE_FOCUSED_MASK" />
-		<field name="ITEM_STATE_PRESSED_MASK" />
-		<field name="ITEM_STATE_SELECTED_MASK" />
-		<field name="mMarker" />
-		<field name="mPoint" />
-		<field name="mSnippet" />
-		<field name="mTitle" />
-	</class>
-	<class name="com/google/android/maps/Projection" since="1">
-		<extends name="java/lang/Object" />
-		<method name="fromPixels(II)Lcom/google/android/maps/GeoPoint;" />
-		<method name="metersToEquatorPixels(F)F" />
-		<method name="toPixels(Lcom/google/android/maps/GeoPoint;Landroid/graphics/Point;)Landroid/graphics/Point;" />
-	</class>
-	<class name="com/google/android/maps/TrackballGestureDetector" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="analyze(Landroid/view/MotionEvent;)V" />
-		<method name="getCurrentDownX()F" />
-		<method name="getCurrentDownY()F" />
-		<method name="getFirstDownX()F" />
-		<method name="getFirstDownY()F" />
-		<method name="isDoubleTap()Z" />
-		<method name="isScroll()Z" />
-		<method name="isTap()Z" />
-		<method name="registerLongPressCallback(Ljava/lang/Runnable;)V" />
-		<method name="scrollX()F" />
-		<method name="scrollY()F" />
-	</class>
-	<class name="dalvik/annotation/TestTarget" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/annotation/Annotation" />
-		<method name="conceptName()Ljava/lang/String;" since="3" />
-		<method name="methodArgs()[Ljava/lang/Class;" />
-		<method name="methodName()Ljava/lang/String;" />
-	</class>
-	<class name="dalvik/annotation/TestTargetClass" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/annotation/Annotation" />
-		<method name="value()Ljava/lang/Class;" />
-	</class>
-	<class name="dalvik/bytecode/OpcodeInfo" since="11">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="MAXIMUM_PACKED_VALUE" />
-		<field name="MAXIMUM_VALUE" />
-	</class>
-	<class name="dalvik/bytecode/Opcodes" since="1">
-		<extends name="java/lang/Object" />
-		<field name="OP_ADD_DOUBLE" />
-		<field name="OP_ADD_DOUBLE_2ADDR" />
-		<field name="OP_ADD_FLOAT" />
-		<field name="OP_ADD_FLOAT_2ADDR" />
-		<field name="OP_ADD_INT" />
-		<field name="OP_ADD_INT_2ADDR" />
-		<field name="OP_ADD_INT_LIT16" />
-		<field name="OP_ADD_INT_LIT8" />
-		<field name="OP_ADD_LONG" />
-		<field name="OP_ADD_LONG_2ADDR" />
-		<field name="OP_AGET" />
-		<field name="OP_AGET_BOOLEAN" />
-		<field name="OP_AGET_BYTE" />
-		<field name="OP_AGET_CHAR" />
-		<field name="OP_AGET_OBJECT" />
-		<field name="OP_AGET_SHORT" />
-		<field name="OP_AGET_WIDE" />
-		<field name="OP_AND_INT" />
-		<field name="OP_AND_INT_2ADDR" />
-		<field name="OP_AND_INT_LIT16" />
-		<field name="OP_AND_INT_LIT8" />
-		<field name="OP_AND_LONG" />
-		<field name="OP_AND_LONG_2ADDR" />
-		<field name="OP_APUT" />
-		<field name="OP_APUT_BOOLEAN" />
-		<field name="OP_APUT_BYTE" />
-		<field name="OP_APUT_CHAR" />
-		<field name="OP_APUT_OBJECT" />
-		<field name="OP_APUT_SHORT" />
-		<field name="OP_APUT_WIDE" />
-		<field name="OP_ARRAY_LENGTH" />
-		<field name="OP_BREAKPOINT" since="8" />
-		<field name="OP_CHECK_CAST" />
-		<field name="OP_CHECK_CAST_JUMBO" since="11" />
-		<field name="OP_CMPG_DOUBLE" />
-		<field name="OP_CMPG_FLOAT" />
-		<field name="OP_CMPL_DOUBLE" />
-		<field name="OP_CMPL_FLOAT" />
-		<field name="OP_CMP_LONG" />
-		<field name="OP_CONST" />
-		<field name="OP_CONST_16" />
-		<field name="OP_CONST_4" />
-		<field name="OP_CONST_CLASS" />
-		<field name="OP_CONST_CLASS_JUMBO" since="11" />
-		<field name="OP_CONST_HIGH16" />
-		<field name="OP_CONST_STRING" />
-		<field name="OP_CONST_STRING_JUMBO" />
-		<field name="OP_CONST_WIDE" />
-		<field name="OP_CONST_WIDE_16" />
-		<field name="OP_CONST_WIDE_32" />
-		<field name="OP_CONST_WIDE_HIGH16" />
-		<field name="OP_DIV_DOUBLE" />
-		<field name="OP_DIV_DOUBLE_2ADDR" />
-		<field name="OP_DIV_FLOAT" />
-		<field name="OP_DIV_FLOAT_2ADDR" />
-		<field name="OP_DIV_INT" />
-		<field name="OP_DIV_INT_2ADDR" />
-		<field name="OP_DIV_INT_LIT16" />
-		<field name="OP_DIV_INT_LIT8" />
-		<field name="OP_DIV_LONG" />
-		<field name="OP_DIV_LONG_2ADDR" />
-		<field name="OP_DOUBLE_TO_FLOAT" />
-		<field name="OP_DOUBLE_TO_INT" />
-		<field name="OP_DOUBLE_TO_LONG" />
-		<field name="OP_EXECUTE_INLINE" />
-		<field name="OP_EXECUTE_INLINE_RANGE" since="8" />
-		<field name="OP_FILLED_NEW_ARRAY" />
-		<field name="OP_FILLED_NEW_ARRAY_JUMBO" since="11" />
-		<field name="OP_FILLED_NEW_ARRAY_RANGE" />
-		<field name="OP_FILL_ARRAY_DATA" />
-		<field name="OP_FLOAT_TO_DOUBLE" />
-		<field name="OP_FLOAT_TO_INT" />
-		<field name="OP_FLOAT_TO_LONG" />
-		<field name="OP_GOTO" />
-		<field name="OP_GOTO_16" />
-		<field name="OP_GOTO_32" />
-		<field name="OP_IF_EQ" />
-		<field name="OP_IF_EQZ" />
-		<field name="OP_IF_GE" />
-		<field name="OP_IF_GEZ" />
-		<field name="OP_IF_GT" />
-		<field name="OP_IF_GTZ" />
-		<field name="OP_IF_LE" />
-		<field name="OP_IF_LEZ" />
-		<field name="OP_IF_LT" />
-		<field name="OP_IF_LTZ" />
-		<field name="OP_IF_NE" />
-		<field name="OP_IF_NEZ" />
-		<field name="OP_IGET" />
-		<field name="OP_IGET_BOOLEAN" />
-		<field name="OP_IGET_BOOLEAN_JUMBO" since="11" />
-		<field name="OP_IGET_BYTE" />
-		<field name="OP_IGET_BYTE_JUMBO" since="11" />
-		<field name="OP_IGET_CHAR" />
-		<field name="OP_IGET_CHAR_JUMBO" since="11" />
-		<field name="OP_IGET_JUMBO" since="11" />
-		<field name="OP_IGET_OBJECT" />
-		<field name="OP_IGET_OBJECT_JUMBO" since="11" />
-		<field name="OP_IGET_OBJECT_QUICK" />
-		<field name="OP_IGET_QUICK" />
-		<field name="OP_IGET_SHORT" />
-		<field name="OP_IGET_SHORT_JUMBO" since="11" />
-		<field name="OP_IGET_WIDE" />
-		<field name="OP_IGET_WIDE_JUMBO" since="11" />
-		<field name="OP_IGET_WIDE_QUICK" />
-		<field name="OP_IGET_WIDE_VOLATILE" since="9" />
-		<field name="OP_INSTANCE_OF" />
-		<field name="OP_INSTANCE_OF_JUMBO" since="11" />
-		<field name="OP_INT_TO_BYTE" />
-		<field name="OP_INT_TO_CHAR" />
-		<field name="OP_INT_TO_DOUBLE" />
-		<field name="OP_INT_TO_FLOAT" />
-		<field name="OP_INT_TO_LONG" />
-		<field name="OP_INT_TO_SHORT" />
-		<field name="OP_INVOKE_DIRECT" />
-		<field name="OP_INVOKE_DIRECT_EMPTY" />
-		<field name="OP_INVOKE_DIRECT_JUMBO" since="11" />
-		<field name="OP_INVOKE_DIRECT_RANGE" />
-		<field name="OP_INVOKE_INTERFACE" />
-		<field name="OP_INVOKE_INTERFACE_JUMBO" since="11" />
-		<field name="OP_INVOKE_INTERFACE_RANGE" />
-		<field name="OP_INVOKE_STATIC" />
-		<field name="OP_INVOKE_STATIC_JUMBO" since="11" />
-		<field name="OP_INVOKE_STATIC_RANGE" />
-		<field name="OP_INVOKE_SUPER" />
-		<field name="OP_INVOKE_SUPER_JUMBO" since="11" />
-		<field name="OP_INVOKE_SUPER_QUICK" />
-		<field name="OP_INVOKE_SUPER_QUICK_RANGE" />
-		<field name="OP_INVOKE_SUPER_RANGE" />
-		<field name="OP_INVOKE_VIRTUAL" />
-		<field name="OP_INVOKE_VIRTUAL_JUMBO" since="11" />
-		<field name="OP_INVOKE_VIRTUAL_QUICK" />
-		<field name="OP_INVOKE_VIRTUAL_QUICK_RANGE" />
-		<field name="OP_INVOKE_VIRTUAL_RANGE" />
-		<field name="OP_IPUT" />
-		<field name="OP_IPUT_BOOLEAN" />
-		<field name="OP_IPUT_BOOLEAN_JUMBO" since="11" />
-		<field name="OP_IPUT_BYTE" />
-		<field name="OP_IPUT_BYTE_JUMBO" since="11" />
-		<field name="OP_IPUT_CHAR" />
-		<field name="OP_IPUT_CHAR_JUMBO" since="11" />
-		<field name="OP_IPUT_JUMBO" since="11" />
-		<field name="OP_IPUT_OBJECT" />
-		<field name="OP_IPUT_OBJECT_JUMBO" since="11" />
-		<field name="OP_IPUT_OBJECT_QUICK" />
-		<field name="OP_IPUT_QUICK" />
-		<field name="OP_IPUT_SHORT" />
-		<field name="OP_IPUT_SHORT_JUMBO" since="11" />
-		<field name="OP_IPUT_WIDE" />
-		<field name="OP_IPUT_WIDE_JUMBO" since="11" />
-		<field name="OP_IPUT_WIDE_QUICK" />
-		<field name="OP_IPUT_WIDE_VOLATILE" since="9" />
-		<field name="OP_LONG_TO_DOUBLE" />
-		<field name="OP_LONG_TO_FLOAT" />
-		<field name="OP_LONG_TO_INT" />
-		<field name="OP_MONITOR_ENTER" />
-		<field name="OP_MONITOR_EXIT" />
-		<field name="OP_MOVE" />
-		<field name="OP_MOVE_16" />
-		<field name="OP_MOVE_EXCEPTION" />
-		<field name="OP_MOVE_FROM16" />
-		<field name="OP_MOVE_OBJECT" />
-		<field name="OP_MOVE_OBJECT_16" />
-		<field name="OP_MOVE_OBJECT_FROM16" />
-		<field name="OP_MOVE_RESULT" />
-		<field name="OP_MOVE_RESULT_OBJECT" />
-		<field name="OP_MOVE_RESULT_WIDE" />
-		<field name="OP_MOVE_WIDE" />
-		<field name="OP_MOVE_WIDE_16" />
-		<field name="OP_MOVE_WIDE_FROM16" />
-		<field name="OP_MUL_DOUBLE" />
-		<field name="OP_MUL_DOUBLE_2ADDR" />
-		<field name="OP_MUL_FLOAT" />
-		<field name="OP_MUL_FLOAT_2ADDR" />
-		<field name="OP_MUL_INT" />
-		<field name="OP_MUL_INT_2ADDR" />
-		<field name="OP_MUL_INT_LIT16" />
-		<field name="OP_MUL_INT_LIT8" />
-		<field name="OP_MUL_LONG" />
-		<field name="OP_MUL_LONG_2ADDR" />
-		<field name="OP_NEG_DOUBLE" />
-		<field name="OP_NEG_FLOAT" />
-		<field name="OP_NEG_INT" />
-		<field name="OP_NEG_LONG" />
-		<field name="OP_NEW_ARRAY" />
-		<field name="OP_NEW_ARRAY_JUMBO" since="11" />
-		<field name="OP_NEW_INSTANCE" />
-		<field name="OP_NEW_INSTANCE_JUMBO" since="11" />
-		<field name="OP_NOP" />
-		<field name="OP_NOT_INT" />
-		<field name="OP_NOT_LONG" />
-		<field name="OP_OR_INT" />
-		<field name="OP_OR_INT_2ADDR" />
-		<field name="OP_OR_INT_LIT16" />
-		<field name="OP_OR_INT_LIT8" />
-		<field name="OP_OR_LONG" />
-		<field name="OP_OR_LONG_2ADDR" />
-		<field name="OP_PACKED_SWITCH" />
-		<field name="OP_REM_DOUBLE" />
-		<field name="OP_REM_DOUBLE_2ADDR" />
-		<field name="OP_REM_FLOAT" />
-		<field name="OP_REM_FLOAT_2ADDR" />
-		<field name="OP_REM_INT" />
-		<field name="OP_REM_INT_2ADDR" />
-		<field name="OP_REM_INT_LIT16" />
-		<field name="OP_REM_INT_LIT8" />
-		<field name="OP_REM_LONG" />
-		<field name="OP_REM_LONG_2ADDR" />
-		<field name="OP_RETURN" />
-		<field name="OP_RETURN_OBJECT" />
-		<field name="OP_RETURN_VOID" />
-		<field name="OP_RETURN_WIDE" />
-		<field name="OP_RSUB_INT" />
-		<field name="OP_RSUB_INT_LIT8" />
-		<field name="OP_SGET" />
-		<field name="OP_SGET_BOOLEAN" />
-		<field name="OP_SGET_BOOLEAN_JUMBO" since="11" />
-		<field name="OP_SGET_BYTE" />
-		<field name="OP_SGET_BYTE_JUMBO" since="11" />
-		<field name="OP_SGET_CHAR" />
-		<field name="OP_SGET_CHAR_JUMBO" since="11" />
-		<field name="OP_SGET_JUMBO" since="11" />
-		<field name="OP_SGET_OBJECT" />
-		<field name="OP_SGET_OBJECT_JUMBO" since="11" />
-		<field name="OP_SGET_SHORT" />
-		<field name="OP_SGET_SHORT_JUMBO" since="11" />
-		<field name="OP_SGET_WIDE" />
-		<field name="OP_SGET_WIDE_JUMBO" since="11" />
-		<field name="OP_SGET_WIDE_VOLATILE" since="9" />
-		<field name="OP_SHL_INT" />
-		<field name="OP_SHL_INT_2ADDR" />
-		<field name="OP_SHL_INT_LIT8" />
-		<field name="OP_SHL_LONG" />
-		<field name="OP_SHL_LONG_2ADDR" />
-		<field name="OP_SHR_INT" />
-		<field name="OP_SHR_INT_2ADDR" />
-		<field name="OP_SHR_INT_LIT8" />
-		<field name="OP_SHR_LONG" />
-		<field name="OP_SHR_LONG_2ADDR" />
-		<field name="OP_SPARSE_SWITCH" />
-		<field name="OP_SPUT" />
-		<field name="OP_SPUT_BOOLEAN" />
-		<field name="OP_SPUT_BOOLEAN_JUMBO" since="11" />
-		<field name="OP_SPUT_BYTE" />
-		<field name="OP_SPUT_BYTE_JUMBO" since="11" />
-		<field name="OP_SPUT_CHAR" />
-		<field name="OP_SPUT_CHAR_JUMBO" since="11" />
-		<field name="OP_SPUT_JUMBO" since="11" />
-		<field name="OP_SPUT_OBJECT" />
-		<field name="OP_SPUT_OBJECT_JUMBO" since="11" />
-		<field name="OP_SPUT_SHORT" />
-		<field name="OP_SPUT_SHORT_JUMBO" since="11" />
-		<field name="OP_SPUT_WIDE" />
-		<field name="OP_SPUT_WIDE_JUMBO" since="11" />
-		<field name="OP_SPUT_WIDE_VOLATILE" since="9" />
-		<field name="OP_SUB_DOUBLE" />
-		<field name="OP_SUB_DOUBLE_2ADDR" />
-		<field name="OP_SUB_FLOAT" />
-		<field name="OP_SUB_FLOAT_2ADDR" />
-		<field name="OP_SUB_INT" />
-		<field name="OP_SUB_INT_2ADDR" />
-		<field name="OP_SUB_LONG" />
-		<field name="OP_SUB_LONG_2ADDR" />
-		<field name="OP_THROW" />
-		<field name="OP_THROW_VERIFICATION_ERROR" since="8" />
-		<field name="OP_UNUSED_3e" />
-		<field name="OP_UNUSED_3f" />
-		<field name="OP_UNUSED_40" />
-		<field name="OP_UNUSED_41" />
-		<field name="OP_UNUSED_42" />
-		<field name="OP_UNUSED_43" />
-		<field name="OP_UNUSED_73" />
-		<field name="OP_UNUSED_79" />
-		<field name="OP_UNUSED_7A" />
-		<field name="OP_UNUSED_E3" />
-		<field name="OP_UNUSED_E4" />
-		<field name="OP_UNUSED_E5" />
-		<field name="OP_UNUSED_E6" />
-		<field name="OP_UNUSED_E7" />
-		<field name="OP_UNUSED_E8" />
-		<field name="OP_UNUSED_E9" />
-		<field name="OP_UNUSED_EA" />
-		<field name="OP_UNUSED_EB" />
-		<field name="OP_UNUSED_EC" />
-		<field name="OP_UNUSED_ED" />
-		<field name="OP_UNUSED_EF" />
-		<field name="OP_UNUSED_F1" />
-		<field name="OP_UNUSED_FC" />
-		<field name="OP_UNUSED_FD" />
-		<field name="OP_UNUSED_FE" />
-		<field name="OP_UNUSED_FF" />
-		<field name="OP_USHR_INT" />
-		<field name="OP_USHR_INT_2ADDR" />
-		<field name="OP_USHR_INT_LIT8" />
-		<field name="OP_USHR_LONG" />
-		<field name="OP_USHR_LONG_2ADDR" />
-		<field name="OP_XOR_INT" />
-		<field name="OP_XOR_INT_2ADDR" />
-		<field name="OP_XOR_INT_LIT16" />
-		<field name="OP_XOR_INT_LIT8" />
-		<field name="OP_XOR_LONG" />
-		<field name="OP_XOR_LONG_2ADDR" />
-	</class>
-	<class name="dalvik/system/AllocationLimitError" since="1">
-		<extends name="java/lang/VirtualMachineError" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="dalvik/system/BaseDexClassLoader" since="14">
-		<extends name="java/lang/ClassLoader" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/io/File;Ljava/lang/String;Ljava/lang/ClassLoader;)V" />
-	</class>
-	<class name="dalvik/system/DexClassLoader" since="3">
-		<extends name="dalvik/system/BaseDexClassLoader" since="14" />
-		<extends name="java/lang/ClassLoader" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)V" />
-	</class>
-	<class name="dalvik/system/DexFile" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/io/File;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="close()V" />
-		<method name="entries()Ljava/util/Enumeration;" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="isDexOptNeeded(Ljava/lang/String;)Z" />
-		<method name="loadClass(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Class;" />
-		<method name="loadDex(Ljava/lang/String;Ljava/lang/String;I)Ldalvik/system/DexFile;" since="3" />
-	</class>
-	<class name="dalvik/system/PathClassLoader" since="1">
-		<extends name="dalvik/system/BaseDexClassLoader" since="14" />
-		<extends name="java/lang/ClassLoader" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/ClassLoader;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)V" />
-	</class>
-	<class name="dalvik/system/PotentialDeadlockError" since="1">
-		<extends name="java/lang/VirtualMachineError" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="dalvik/system/StaleDexCacheError" since="1">
-		<extends name="java/lang/VirtualMachineError" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="dalvik/system/TemporaryDirectory" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="setUpDirectory(Ljava/io/File;)V" />
-		<method name="setUpDirectory(Ljava/lang/String;)V" />
-	</class>
-	<class name="dalvik/system/TouchDex" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="main([Ljava/lang/String;)V" />
-		<method name="start(Ljava/lang/String;)I" />
-	</class>
-	<class name="dalvik/system/VMDebug" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="dumpHprofData(Ljava/lang/String;)V" since="3" />
-		<method name="getAllocCount(I)I" />
-		<method name="getInstructionCount([I)V" />
-		<method name="getLoadedClassCount()I" />
-		<method name="isDebuggerConnected()Z" />
-		<method name="isDebuggingEnabled()Z" since="3" />
-		<method name="lastDebuggerActivity()J" />
-		<method name="printLoadedClasses(I)V" />
-		<method name="resetAllocCount(I)V" />
-		<method name="resetInstructionCount()V" />
-		<method name="setAllocationLimit(I)I" />
-		<method name="setGlobalAllocationLimit(I)I" />
-		<method name="startAllocCounting()V" />
-		<method name="startEmulatorTracing()V" />
-		<method name="startInstructionCounting()V" />
-		<method name="startMethodTracing()V" />
-		<method name="startMethodTracing(Ljava/lang/String;II)V" />
-		<method name="stopAllocCounting()V" />
-		<method name="stopEmulatorTracing()V" />
-		<method name="stopInstructionCounting()V" />
-		<method name="stopMethodTracing()V" />
-		<method name="threadCpuTimeNanos()J" />
-		<field name="DEFAULT_METHOD_TRACE_FILE_NAME" />
-		<field name="KIND_ALL_COUNTS" />
-		<field name="KIND_GLOBAL_ALLOCATED_BYTES" />
-		<field name="KIND_GLOBAL_ALLOCATED_OBJECTS" />
-		<field name="KIND_GLOBAL_CLASS_INIT_COUNT" since="8" />
-		<field name="KIND_GLOBAL_CLASS_INIT_TIME" since="8" />
-		<field name="KIND_GLOBAL_EXT_ALLOCATED_BYTES" />
-		<field name="KIND_GLOBAL_EXT_ALLOCATED_OBJECTS" />
-		<field name="KIND_GLOBAL_EXT_FREED_BYTES" />
-		<field name="KIND_GLOBAL_EXT_FREED_OBJECTS" />
-		<field name="KIND_GLOBAL_FREED_BYTES" />
-		<field name="KIND_GLOBAL_FREED_OBJECTS" />
-		<field name="KIND_GLOBAL_GC_INVOCATIONS" />
-		<field name="KIND_THREAD_ALLOCATED_BYTES" />
-		<field name="KIND_THREAD_ALLOCATED_OBJECTS" />
-		<field name="KIND_THREAD_CLASS_INIT_COUNT" since="8" />
-		<field name="KIND_THREAD_CLASS_INIT_TIME" since="8" />
-		<field name="KIND_THREAD_EXT_ALLOCATED_BYTES" />
-		<field name="KIND_THREAD_EXT_ALLOCATED_OBJECTS" />
-		<field name="KIND_THREAD_EXT_FREED_BYTES" />
-		<field name="KIND_THREAD_EXT_FREED_OBJECTS" />
-		<field name="KIND_THREAD_FREED_BYTES" />
-		<field name="KIND_THREAD_FREED_OBJECTS" />
-		<field name="KIND_THREAD_GC_INVOCATIONS" />
-		<field name="TRACE_COUNT_ALLOCS" />
-	</class>
-	<class name="dalvik/system/VMRuntime" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="gcSoftReferences()V" />
-		<method name="getExternalBytesAllocated()J" />
-		<method name="getMinimumHeapSize()J" />
-		<method name="getRuntime()Ldalvik/system/VMRuntime;" />
-		<method name="getTargetHeapUtilization()F" />
-		<method name="runFinalizationSync()V" />
-		<method name="setMinimumHeapSize(J)J" />
-		<method name="setTargetHeapUtilization(F)F" />
-	</class>
-	<class name="dalvik/system/VMStack" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getCallingClassLoader()Ljava/lang/ClassLoader;" />
-		<method name="getCallingClassLoader2()Ljava/lang/ClassLoader;" />
-		<method name="getClasses(IZ)[Ljava/lang/Class;" />
-		<method name="getThreadStackTrace(Ljava/lang/Thread;)[Ljava/lang/StackTraceElement;" />
-	</class>
-	<class name="dalvik/system/Zygote" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="fork()I" />
-		<method name="forkAndSpecialize(II[II[[I)I" since="3" />
-		<method name="forkAndSpecialize(II[IZ[[I)I" />
-		<method name="forkSystemServer(II[II[[I)I" since="3" />
-		<method name="forkSystemServer(II[IZ[[I)I" />
-		<field name="DEBUG_ENABLE_ASSERT" since="3" />
-		<field name="DEBUG_ENABLE_CHECKJNI" since="3" />
-		<field name="DEBUG_ENABLE_DEBUGGER" since="3" />
-		<field name="DEBUG_ENABLE_SAFEMODE" since="8" />
-	</class>
-	<class name="java/awt/font/NumericShaper" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>()V" />
-		<method name="getContextualShaper(I)Ljava/awt/font/NumericShaper;" />
-		<method name="getContextualShaper(II)Ljava/awt/font/NumericShaper;" />
-		<method name="getRanges()I" />
-		<method name="getShaper(I)Ljava/awt/font/NumericShaper;" />
-		<method name="isContextual()Z" />
-		<method name="shape([CII)V" />
-		<method name="shape([CIII)V" />
-		<field name="ALL_RANGES" />
-		<field name="ARABIC" />
-		<field name="BENGALI" />
-		<field name="DEVANAGARI" />
-		<field name="EASTERN_ARABIC" />
-		<field name="ETHIOPIC" />
-		<field name="EUROPEAN" />
-		<field name="GUJARATI" />
-		<field name="GURMUKHI" />
-		<field name="KANNADA" />
-		<field name="KHMER" />
-		<field name="LAO" />
-		<field name="MALAYALAM" />
-		<field name="MONGOLIAN" />
-		<field name="MYANMAR" />
-		<field name="ORIYA" />
-		<field name="TAMIL" />
-		<field name="TELUGU" />
-		<field name="THAI" />
-		<field name="TIBETAN" />
-	</class>
-	<class name="java/awt/font/TextAttribute" since="1">
-		<extends name="java/text/AttributedCharacterIterator$Attribute" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<field name="BACKGROUND" />
-		<field name="BIDI_EMBEDDING" />
-		<field name="CHAR_REPLACEMENT" />
-		<field name="FAMILY" />
-		<field name="FONT" />
-		<field name="FOREGROUND" />
-		<field name="INPUT_METHOD_HIGHLIGHT" />
-		<field name="INPUT_METHOD_UNDERLINE" />
-		<field name="JUSTIFICATION" />
-		<field name="JUSTIFICATION_FULL" />
-		<field name="JUSTIFICATION_NONE" />
-		<field name="KERNING" since="9" />
-		<field name="KERNING_ON" since="9" />
-		<field name="LIGATURES" since="9" />
-		<field name="LIGATURES_ON" since="9" />
-		<field name="NUMERIC_SHAPING" />
-		<field name="POSTURE" />
-		<field name="POSTURE_OBLIQUE" />
-		<field name="POSTURE_REGULAR" />
-		<field name="RUN_DIRECTION" />
-		<field name="RUN_DIRECTION_LTR" />
-		<field name="RUN_DIRECTION_RTL" />
-		<field name="SIZE" />
-		<field name="STRIKETHROUGH" />
-		<field name="STRIKETHROUGH_ON" />
-		<field name="SUPERSCRIPT" />
-		<field name="SUPERSCRIPT_SUB" />
-		<field name="SUPERSCRIPT_SUPER" />
-		<field name="SWAP_COLORS" />
-		<field name="SWAP_COLORS_ON" />
-		<field name="TRACKING" since="9" />
-		<field name="TRACKING_LOOSE" since="9" />
-		<field name="TRACKING_TIGHT" since="9" />
-		<field name="TRANSFORM" />
-		<field name="UNDERLINE" />
-		<field name="UNDERLINE_LOW_DASHED" />
-		<field name="UNDERLINE_LOW_DOTTED" />
-		<field name="UNDERLINE_LOW_GRAY" />
-		<field name="UNDERLINE_LOW_ONE_PIXEL" />
-		<field name="UNDERLINE_LOW_TWO_PIXEL" />
-		<field name="UNDERLINE_ON" />
-		<field name="WEIGHT" />
-		<field name="WEIGHT_BOLD" />
-		<field name="WEIGHT_DEMIBOLD" />
-		<field name="WEIGHT_DEMILIGHT" />
-		<field name="WEIGHT_EXTRABOLD" />
-		<field name="WEIGHT_EXTRA_LIGHT" />
-		<field name="WEIGHT_HEAVY" />
-		<field name="WEIGHT_LIGHT" />
-		<field name="WEIGHT_MEDIUM" />
-		<field name="WEIGHT_REGULAR" />
-		<field name="WEIGHT_SEMIBOLD" />
-		<field name="WEIGHT_ULTRABOLD" />
-		<field name="WIDTH" />
-		<field name="WIDTH_CONDENSED" />
-		<field name="WIDTH_EXTENDED" />
-		<field name="WIDTH_REGULAR" />
-		<field name="WIDTH_SEMI_CONDENSED" />
-		<field name="WIDTH_SEMI_EXTENDED" />
-	</class>
-	<class name="java/beans/IndexedPropertyChangeEvent" since="3">
-		<extends name="java/beans/PropertyChangeEvent" />
-		<method name="&lt;init>(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;I)V" />
-		<method name="getIndex()I" />
-	</class>
-	<class name="java/beans/PropertyChangeEvent" since="3">
-		<extends name="java/util/EventObject" />
-		<method name="&lt;init>(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V" />
-		<method name="getNewValue()Ljava/lang/Object;" />
-		<method name="getOldValue()Ljava/lang/Object;" />
-		<method name="getPropagationId()Ljava/lang/Object;" />
-		<method name="getPropertyName()Ljava/lang/String;" />
-		<method name="setPropagationId(Ljava/lang/Object;)V" />
-	</class>
-	<class name="java/beans/PropertyChangeListener" since="3">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/EventListener" />
-		<method name="propertyChange(Ljava/beans/PropertyChangeEvent;)V" />
-	</class>
-	<class name="java/beans/PropertyChangeListenerProxy" since="3">
-		<extends name="java/util/EventListenerProxy" />
-		<implements name="java/beans/PropertyChangeListener" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V" />
-		<method name="getPropertyName()Ljava/lang/String;" />
-	</class>
-	<class name="java/beans/PropertyChangeSupport" since="3">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(Ljava/lang/Object;)V" />
-		<method name="addPropertyChangeListener(Ljava/beans/PropertyChangeListener;)V" />
-		<method name="addPropertyChangeListener(Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V" />
-		<method name="fireIndexedPropertyChange(Ljava/lang/String;III)V" />
-		<method name="fireIndexedPropertyChange(Ljava/lang/String;ILjava/lang/Object;Ljava/lang/Object;)V" />
-		<method name="fireIndexedPropertyChange(Ljava/lang/String;IZZ)V" />
-		<method name="firePropertyChange(Ljava/beans/PropertyChangeEvent;)V" />
-		<method name="firePropertyChange(Ljava/lang/String;II)V" />
-		<method name="firePropertyChange(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V" />
-		<method name="firePropertyChange(Ljava/lang/String;ZZ)V" />
-		<method name="getPropertyChangeListeners()[Ljava/beans/PropertyChangeListener;" />
-		<method name="getPropertyChangeListeners(Ljava/lang/String;)[Ljava/beans/PropertyChangeListener;" />
-		<method name="hasListeners(Ljava/lang/String;)Z" />
-		<method name="removePropertyChangeListener(Ljava/beans/PropertyChangeListener;)V" />
-		<method name="removePropertyChangeListener(Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V" />
-	</class>
-	<class name="java/io/BufferedInputStream" since="1">
-		<extends name="java/io/FilterInputStream" />
-		<method name="&lt;init>(Ljava/io/InputStream;)V" />
-		<method name="&lt;init>(Ljava/io/InputStream;I)V" />
-		<field name="buf" />
-		<field name="count" />
-		<field name="marklimit" />
-		<field name="markpos" />
-		<field name="pos" />
-	</class>
-	<class name="java/io/BufferedOutputStream" since="1">
-		<extends name="java/io/FilterOutputStream" />
-		<method name="&lt;init>(Ljava/io/OutputStream;)V" />
-		<method name="&lt;init>(Ljava/io/OutputStream;I)V" />
-		<field name="buf" />
-		<field name="count" />
-	</class>
-	<class name="java/io/BufferedReader" since="1">
-		<extends name="java/io/Reader" />
-		<method name="&lt;init>(Ljava/io/Reader;)V" />
-		<method name="&lt;init>(Ljava/io/Reader;I)V" />
-		<method name="readLine()Ljava/lang/String;" />
-	</class>
-	<class name="java/io/BufferedWriter" since="1">
-		<extends name="java/io/Writer" />
-		<method name="&lt;init>(Ljava/io/Writer;)V" />
-		<method name="&lt;init>(Ljava/io/Writer;I)V" />
-		<method name="newLine()V" />
-	</class>
-	<class name="java/io/ByteArrayInputStream" since="1">
-		<extends name="java/io/InputStream" />
-		<method name="&lt;init>([B)V" />
-		<method name="&lt;init>([BII)V" />
-		<field name="buf" />
-		<field name="count" />
-		<field name="mark" />
-		<field name="pos" />
-	</class>
-	<class name="java/io/ByteArrayOutputStream" since="1">
-		<extends name="java/io/OutputStream" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="reset()V" />
-		<method name="size()I" />
-		<method name="toByteArray()[B" />
-		<method name="toString(I)Ljava/lang/String;" />
-		<method name="toString(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="writeTo(Ljava/io/OutputStream;)V" />
-		<field name="buf" />
-		<field name="count" />
-	</class>
-	<class name="java/io/CharArrayReader" since="1">
-		<extends name="java/io/Reader" />
-		<method name="&lt;init>([C)V" />
-		<method name="&lt;init>([CII)V" />
-		<field name="buf" />
-		<field name="count" />
-		<field name="markedPos" />
-		<field name="pos" />
-	</class>
-	<class name="java/io/CharArrayWriter" since="1">
-		<extends name="java/io/Writer" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="append(C)Ljava/io/CharArrayWriter;" />
-		<method name="append(Ljava/lang/CharSequence;)Ljava/io/CharArrayWriter;" />
-		<method name="append(Ljava/lang/CharSequence;II)Ljava/io/CharArrayWriter;" />
-		<method name="reset()V" />
-		<method name="size()I" />
-		<method name="toCharArray()[C" />
-		<method name="writeTo(Ljava/io/Writer;)V" />
-		<field name="buf" />
-		<field name="count" />
-	</class>
-	<class name="java/io/CharConversionException" since="1">
-		<extends name="java/io/IOException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/io/Closeable" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/AutoCloseable" since="19" />
-		<method name="close()V" />
-	</class>
-	<class name="java/io/Console" since="9">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Flushable" />
-		<method name="&lt;init>()V" />
-		<method name="format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/Console;" />
-		<method name="printf(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/Console;" />
-		<method name="readLine()Ljava/lang/String;" />
-		<method name="readLine(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;" />
-		<method name="readPassword()[C" />
-		<method name="readPassword(Ljava/lang/String;[Ljava/lang/Object;)[C" />
-		<method name="reader()Ljava/io/Reader;" />
-		<method name="writer()Ljava/io/PrintWriter;" />
-	</class>
-	<class name="java/io/DataInput" since="1">
-		<extends name="java/lang/Object" />
-		<method name="readBoolean()Z" />
-		<method name="readByte()B" />
-		<method name="readChar()C" />
-		<method name="readDouble()D" />
-		<method name="readFloat()F" />
-		<method name="readFully([B)V" />
-		<method name="readFully([BII)V" />
-		<method name="readInt()I" />
-		<method name="readLine()Ljava/lang/String;" />
-		<method name="readLong()J" />
-		<method name="readShort()S" />
-		<method name="readUTF()Ljava/lang/String;" />
-		<method name="readUnsignedByte()I" />
-		<method name="readUnsignedShort()I" />
-		<method name="skipBytes(I)I" />
-	</class>
-	<class name="java/io/DataInputStream" since="1">
-		<extends name="java/io/FilterInputStream" />
-		<implements name="java/io/DataInput" />
-		<method name="&lt;init>(Ljava/io/InputStream;)V" />
-		<method name="readUTF(Ljava/io/DataInput;)Ljava/lang/String;" />
-	</class>
-	<class name="java/io/DataOutput" since="1">
-		<extends name="java/lang/Object" />
-		<method name="write(I)V" />
-		<method name="write([B)V" />
-		<method name="write([BII)V" />
-		<method name="writeBoolean(Z)V" />
-		<method name="writeByte(I)V" />
-		<method name="writeBytes(Ljava/lang/String;)V" />
-		<method name="writeChar(I)V" />
-		<method name="writeChars(Ljava/lang/String;)V" />
-		<method name="writeDouble(D)V" />
-		<method name="writeFloat(F)V" />
-		<method name="writeInt(I)V" />
-		<method name="writeLong(J)V" />
-		<method name="writeShort(I)V" />
-		<method name="writeUTF(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/io/DataOutputStream" since="1">
-		<extends name="java/io/FilterOutputStream" />
-		<implements name="java/io/DataOutput" />
-		<method name="&lt;init>(Ljava/io/OutputStream;)V" />
-		<method name="size()I" />
-		<field name="written" />
-	</class>
-	<class name="java/io/EOFException" since="1">
-		<extends name="java/io/IOException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/io/Externalizable" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="readExternal(Ljava/io/ObjectInput;)V" />
-		<method name="writeExternal(Ljava/io/ObjectOutput;)V" />
-	</class>
-	<class name="java/io/File" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Comparable" />
-		<method name="&lt;init>(Ljava/io/File;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/net/URI;)V" />
-		<method name="canExecute()Z" since="9" />
-		<method name="canRead()Z" />
-		<method name="canWrite()Z" />
-		<method name="compareTo(Ljava/io/File;)I" />
-		<method name="createNewFile()Z" />
-		<method name="createTempFile(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;" />
-		<method name="createTempFile(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;" />
-		<method name="delete()Z" />
-		<method name="deleteOnExit()V" />
-		<method name="exists()Z" />
-		<method name="getAbsoluteFile()Ljava/io/File;" />
-		<method name="getAbsolutePath()Ljava/lang/String;" />
-		<method name="getCanonicalFile()Ljava/io/File;" />
-		<method name="getCanonicalPath()Ljava/lang/String;" />
-		<method name="getFreeSpace()J" since="9" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getParent()Ljava/lang/String;" />
-		<method name="getParentFile()Ljava/io/File;" />
-		<method name="getPath()Ljava/lang/String;" />
-		<method name="getTotalSpace()J" since="9" />
-		<method name="getUsableSpace()J" since="9" />
-		<method name="isAbsolute()Z" />
-		<method name="isDirectory()Z" />
-		<method name="isFile()Z" />
-		<method name="isHidden()Z" />
-		<method name="lastModified()J" />
-		<method name="length()J" />
-		<method name="list()[Ljava/lang/String;" />
-		<method name="list(Ljava/io/FilenameFilter;)[Ljava/lang/String;" />
-		<method name="listFiles()[Ljava/io/File;" />
-		<method name="listFiles(Ljava/io/FileFilter;)[Ljava/io/File;" />
-		<method name="listFiles(Ljava/io/FilenameFilter;)[Ljava/io/File;" />
-		<method name="listRoots()[Ljava/io/File;" />
-		<method name="mkdir()Z" />
-		<method name="mkdirs()Z" />
-		<method name="renameTo(Ljava/io/File;)Z" />
-		<method name="setExecutable(Z)Z" since="9" />
-		<method name="setExecutable(ZZ)Z" since="9" />
-		<method name="setLastModified(J)Z" />
-		<method name="setReadOnly()Z" />
-		<method name="setReadable(Z)Z" since="9" />
-		<method name="setReadable(ZZ)Z" since="9" />
-		<method name="setWritable(Z)Z" since="9" />
-		<method name="setWritable(ZZ)Z" since="9" />
-		<method name="toURI()Ljava/net/URI;" />
-		<method name="toURL()Ljava/net/URL;" />
-		<field name="pathSeparator" />
-		<field name="pathSeparatorChar" />
-		<field name="separator" />
-		<field name="separatorChar" />
-	</class>
-	<class name="java/io/FileDescriptor" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="sync()V" />
-		<method name="valid()Z" />
-		<field name="err" />
-		<field name="in" />
-		<field name="out" />
-	</class>
-	<class name="java/io/FileFilter" since="1">
-		<extends name="java/lang/Object" />
-		<method name="accept(Ljava/io/File;)Z" />
-	</class>
-	<class name="java/io/FileInputStream" since="1">
-		<extends name="java/io/InputStream" />
-		<implements name="java/io/Closeable" />
-		<method name="&lt;init>(Ljava/io/File;)V" />
-		<method name="&lt;init>(Ljava/io/FileDescriptor;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="getChannel()Ljava/nio/channels/FileChannel;" />
-		<method name="getFD()Ljava/io/FileDescriptor;" />
-	</class>
-	<class name="java/io/FileNotFoundException" since="1">
-		<extends name="java/io/IOException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/io/FileOutputStream" since="1">
-		<extends name="java/io/OutputStream" />
-		<implements name="java/io/Closeable" />
-		<method name="&lt;init>(Ljava/io/File;)V" />
-		<method name="&lt;init>(Ljava/io/File;Z)V" />
-		<method name="&lt;init>(Ljava/io/FileDescriptor;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Z)V" />
-		<method name="getChannel()Ljava/nio/channels/FileChannel;" />
-		<method name="getFD()Ljava/io/FileDescriptor;" />
-	</class>
-	<class name="java/io/FilePermission" since="1">
-		<extends name="java/security/Permission" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-	</class>
-	<class name="java/io/FileReader" since="1">
-		<extends name="java/io/InputStreamReader" />
-		<method name="&lt;init>(Ljava/io/File;)V" />
-		<method name="&lt;init>(Ljava/io/FileDescriptor;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/io/FileWriter" since="1">
-		<extends name="java/io/OutputStreamWriter" />
-		<method name="&lt;init>(Ljava/io/File;)V" />
-		<method name="&lt;init>(Ljava/io/File;Z)V" />
-		<method name="&lt;init>(Ljava/io/FileDescriptor;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Z)V" />
-	</class>
-	<class name="java/io/FilenameFilter" since="1">
-		<extends name="java/lang/Object" />
-		<method name="accept(Ljava/io/File;Ljava/lang/String;)Z" />
-	</class>
-	<class name="java/io/FilterInputStream" since="1">
-		<extends name="java/io/InputStream" />
-		<method name="&lt;init>(Ljava/io/InputStream;)V" />
-		<field name="in" />
-	</class>
-	<class name="java/io/FilterOutputStream" since="1">
-		<extends name="java/io/OutputStream" />
-		<method name="&lt;init>(Ljava/io/OutputStream;)V" />
-		<field name="out" />
-	</class>
-	<class name="java/io/FilterReader" since="1">
-		<extends name="java/io/Reader" />
-		<method name="&lt;init>(Ljava/io/Reader;)V" />
-		<field name="in" />
-	</class>
-	<class name="java/io/FilterWriter" since="1">
-		<extends name="java/io/Writer" />
-		<method name="&lt;init>(Ljava/io/Writer;)V" />
-		<field name="out" />
-	</class>
-	<class name="java/io/Flushable" since="1">
-		<extends name="java/lang/Object" />
-		<method name="flush()V" />
-	</class>
-	<class name="java/io/IOError" since="9">
-		<extends name="java/lang/Error" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/io/IOException" since="1">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" since="9" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" since="9" />
-	</class>
-	<class name="java/io/InputStream" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Closeable" />
-		<method name="&lt;init>()V" />
-		<method name="available()I" />
-		<method name="mark(I)V" />
-		<method name="markSupported()Z" />
-		<method name="read()I" />
-		<method name="read([B)I" />
-		<method name="read([BII)I" />
-		<method name="reset()V" />
-		<method name="skip(J)J" />
-	</class>
-	<class name="java/io/InputStreamReader" since="1">
-		<extends name="java/io/Reader" />
-		<method name="&lt;init>(Ljava/io/InputStream;)V" />
-		<method name="&lt;init>(Ljava/io/InputStream;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V" />
-		<method name="&lt;init>(Ljava/io/InputStream;Ljava/nio/charset/CharsetDecoder;)V" />
-		<method name="getEncoding()Ljava/lang/String;" />
-	</class>
-	<class name="java/io/InterruptedIOException" since="1">
-		<extends name="java/io/IOException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<field name="bytesTransferred" />
-	</class>
-	<class name="java/io/InvalidClassException" since="1">
-		<extends name="java/io/ObjectStreamException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<field name="classname" />
-	</class>
-	<class name="java/io/InvalidObjectException" since="1">
-		<extends name="java/io/ObjectStreamException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/io/LineNumberInputStream" since="1">
-		<extends name="java/io/FilterInputStream" />
-		<method name="&lt;init>(Ljava/io/InputStream;)V" />
-		<method name="getLineNumber()I" />
-		<method name="setLineNumber(I)V" />
-	</class>
-	<class name="java/io/LineNumberReader" since="1">
-		<extends name="java/io/BufferedReader" />
-		<method name="&lt;init>(Ljava/io/Reader;)V" />
-		<method name="&lt;init>(Ljava/io/Reader;I)V" />
-		<method name="getLineNumber()I" />
-		<method name="setLineNumber(I)V" />
-	</class>
-	<class name="java/io/NotActiveException" since="1">
-		<extends name="java/io/ObjectStreamException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/io/NotSerializableException" since="1">
-		<extends name="java/io/ObjectStreamException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/io/ObjectInput" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/DataInput" />
-		<implements name="java/lang/AutoCloseable" since="19" />
-		<method name="available()I" />
-		<method name="close()V" />
-		<method name="read()I" />
-		<method name="read([B)I" />
-		<method name="read([BII)I" />
-		<method name="readObject()Ljava/lang/Object;" />
-		<method name="skip(J)J" />
-	</class>
-	<class name="java/io/ObjectInputStream" since="1">
-		<extends name="java/io/InputStream" />
-		<implements name="java/io/ObjectInput" />
-		<implements name="java/io/ObjectStreamConstants" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/io/InputStream;)V" />
-		<method name="defaultReadObject()V" />
-		<method name="enableResolveObject(Z)Z" />
-		<method name="readClassDescriptor()Ljava/io/ObjectStreamClass;" />
-		<method name="readFields()Ljava/io/ObjectInputStream$GetField;" />
-		<method name="readObjectOverride()Ljava/lang/Object;" />
-		<method name="readStreamHeader()V" />
-		<method name="readUnshared()Ljava/lang/Object;" />
-		<method name="registerValidation(Ljava/io/ObjectInputValidation;I)V" />
-		<method name="resolveClass(Ljava/io/ObjectStreamClass;)Ljava/lang/Class;" />
-		<method name="resolveObject(Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="resolveProxyClass([Ljava/lang/String;)Ljava/lang/Class;" />
-	</class>
-	<class name="java/io/ObjectInputStream$GetField" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="defaulted(Ljava/lang/String;)Z" />
-		<method name="get(Ljava/lang/String;B)B" />
-		<method name="get(Ljava/lang/String;C)C" />
-		<method name="get(Ljava/lang/String;D)D" />
-		<method name="get(Ljava/lang/String;F)F" />
-		<method name="get(Ljava/lang/String;I)I" />
-		<method name="get(Ljava/lang/String;J)J" />
-		<method name="get(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="get(Ljava/lang/String;S)S" />
-		<method name="get(Ljava/lang/String;Z)Z" />
-		<method name="getObjectStreamClass()Ljava/io/ObjectStreamClass;" />
-	</class>
-	<class name="java/io/ObjectInputValidation" since="1">
-		<extends name="java/lang/Object" />
-		<method name="validateObject()V" />
-	</class>
-	<class name="java/io/ObjectOutput" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/DataOutput" />
-		<implements name="java/lang/AutoCloseable" since="19" />
-		<method name="close()V" />
-		<method name="flush()V" />
-		<method name="writeObject(Ljava/lang/Object;)V" />
-	</class>
-	<class name="java/io/ObjectOutputStream" since="1">
-		<extends name="java/io/OutputStream" />
-		<implements name="java/io/ObjectOutput" />
-		<implements name="java/io/ObjectStreamConstants" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/io/OutputStream;)V" />
-		<method name="annotateClass(Ljava/lang/Class;)V" />
-		<method name="annotateProxyClass(Ljava/lang/Class;)V" />
-		<method name="defaultWriteObject()V" />
-		<method name="drain()V" />
-		<method name="enableReplaceObject(Z)Z" />
-		<method name="putFields()Ljava/io/ObjectOutputStream$PutField;" />
-		<method name="replaceObject(Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="reset()V" />
-		<method name="useProtocolVersion(I)V" />
-		<method name="writeClassDescriptor(Ljava/io/ObjectStreamClass;)V" />
-		<method name="writeFields()V" />
-		<method name="writeObjectOverride(Ljava/lang/Object;)V" />
-		<method name="writeStreamHeader()V" />
-		<method name="writeUnshared(Ljava/lang/Object;)V" />
-	</class>
-	<class name="java/io/ObjectOutputStream$PutField" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="put(Ljava/lang/String;B)V" />
-		<method name="put(Ljava/lang/String;C)V" />
-		<method name="put(Ljava/lang/String;D)V" />
-		<method name="put(Ljava/lang/String;F)V" />
-		<method name="put(Ljava/lang/String;I)V" />
-		<method name="put(Ljava/lang/String;J)V" />
-		<method name="put(Ljava/lang/String;Ljava/lang/Object;)V" />
-		<method name="put(Ljava/lang/String;S)V" />
-		<method name="put(Ljava/lang/String;Z)V" />
-		<method name="write(Ljava/io/ObjectOutput;)V" />
-	</class>
-	<class name="java/io/ObjectStreamClass" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>()V" />
-		<method name="forClass()Ljava/lang/Class;" />
-		<method name="getField(Ljava/lang/String;)Ljava/io/ObjectStreamField;" />
-		<method name="getFields()[Ljava/io/ObjectStreamField;" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getSerialVersionUID()J" />
-		<method name="lookup(Ljava/lang/Class;)Ljava/io/ObjectStreamClass;" />
-		<method name="lookupAny(Ljava/lang/Class;)Ljava/io/ObjectStreamClass;" since="9" />
-		<field name="NO_FIELDS" />
-	</class>
-	<class name="java/io/ObjectStreamConstants" since="1">
-		<extends name="java/lang/Object" />
-		<field name="PROTOCOL_VERSION_1" />
-		<field name="PROTOCOL_VERSION_2" />
-		<field name="SC_BLOCK_DATA" />
-		<field name="SC_ENUM" />
-		<field name="SC_EXTERNALIZABLE" />
-		<field name="SC_SERIALIZABLE" />
-		<field name="SC_WRITE_METHOD" />
-		<field name="STREAM_MAGIC" />
-		<field name="STREAM_VERSION" />
-		<field name="SUBCLASS_IMPLEMENTATION_PERMISSION" />
-		<field name="SUBSTITUTION_PERMISSION" />
-		<field name="TC_ARRAY" />
-		<field name="TC_BASE" />
-		<field name="TC_BLOCKDATA" />
-		<field name="TC_BLOCKDATALONG" />
-		<field name="TC_CLASS" />
-		<field name="TC_CLASSDESC" />
-		<field name="TC_ENDBLOCKDATA" />
-		<field name="TC_ENUM" />
-		<field name="TC_EXCEPTION" />
-		<field name="TC_LONGSTRING" />
-		<field name="TC_MAX" />
-		<field name="TC_NULL" />
-		<field name="TC_OBJECT" />
-		<field name="TC_PROXYCLASSDESC" />
-		<field name="TC_REFERENCE" />
-		<field name="TC_RESET" />
-		<field name="TC_STRING" />
-		<field name="baseWireHandle" />
-	</class>
-	<class name="java/io/ObjectStreamException" since="1">
-		<extends name="java/io/IOException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/io/ObjectStreamField" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Comparable" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Class;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Class;Z)V" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getOffset()I" />
-		<method name="getType()Ljava/lang/Class;" />
-		<method name="getTypeCode()C" />
-		<method name="getTypeString()Ljava/lang/String;" />
-		<method name="isPrimitive()Z" />
-		<method name="isUnshared()Z" />
-		<method name="setOffset(I)V" />
-	</class>
-	<class name="java/io/OptionalDataException" since="1">
-		<extends name="java/io/ObjectStreamException" />
-		<method name="&lt;init>()V" />
-		<field name="eof" />
-		<field name="length" />
-	</class>
-	<class name="java/io/OutputStream" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Closeable" />
-		<implements name="java/io/Flushable" />
-		<method name="&lt;init>()V" />
-		<method name="write(I)V" />
-		<method name="write([B)V" />
-		<method name="write([BII)V" />
-	</class>
-	<class name="java/io/OutputStreamWriter" since="1">
-		<extends name="java/io/Writer" />
-		<method name="&lt;init>(Ljava/io/OutputStream;)V" />
-		<method name="&lt;init>(Ljava/io/OutputStream;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/io/OutputStream;Ljava/nio/charset/Charset;)V" />
-		<method name="&lt;init>(Ljava/io/OutputStream;Ljava/nio/charset/CharsetEncoder;)V" />
-		<method name="getEncoding()Ljava/lang/String;" />
-	</class>
-	<class name="java/io/PipedInputStream" since="1">
-		<extends name="java/io/InputStream" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" since="9" />
-		<method name="&lt;init>(Ljava/io/PipedOutputStream;)V" />
-		<method name="&lt;init>(Ljava/io/PipedOutputStream;I)V" since="9" />
-		<method name="connect(Ljava/io/PipedOutputStream;)V" />
-		<method name="receive(I)V" />
-		<field name="PIPE_SIZE" />
-		<field name="buffer" />
-		<field name="in" />
-		<field name="out" />
-	</class>
-	<class name="java/io/PipedOutputStream" since="1">
-		<extends name="java/io/OutputStream" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/io/PipedInputStream;)V" />
-		<method name="connect(Ljava/io/PipedInputStream;)V" />
-	</class>
-	<class name="java/io/PipedReader" since="1">
-		<extends name="java/io/Reader" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" since="9" />
-		<method name="&lt;init>(Ljava/io/PipedWriter;)V" />
-		<method name="&lt;init>(Ljava/io/PipedWriter;I)V" since="9" />
-		<method name="connect(Ljava/io/PipedWriter;)V" />
-	</class>
-	<class name="java/io/PipedWriter" since="1">
-		<extends name="java/io/Writer" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/io/PipedReader;)V" />
-		<method name="connect(Ljava/io/PipedReader;)V" />
-	</class>
-	<class name="java/io/PrintStream" since="1">
-		<extends name="java/io/FilterOutputStream" />
-		<implements name="java/io/Closeable" />
-		<implements name="java/lang/Appendable" />
-		<method name="&lt;init>(Ljava/io/File;)V" />
-		<method name="&lt;init>(Ljava/io/File;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/io/OutputStream;)V" />
-		<method name="&lt;init>(Ljava/io/OutputStream;Z)V" />
-		<method name="&lt;init>(Ljava/io/OutputStream;ZLjava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="append(C)Ljava/io/PrintStream;" />
-		<method name="append(Ljava/lang/CharSequence;)Ljava/io/PrintStream;" />
-		<method name="append(Ljava/lang/CharSequence;II)Ljava/io/PrintStream;" />
-		<method name="checkError()Z" />
-		<method name="clearError()V" since="9" />
-		<method name="format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;" />
-		<method name="format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;" />
-		<method name="print(C)V" />
-		<method name="print(D)V" />
-		<method name="print(F)V" />
-		<method name="print(I)V" />
-		<method name="print(J)V" />
-		<method name="print(Ljava/lang/Object;)V" />
-		<method name="print(Ljava/lang/String;)V" />
-		<method name="print(Z)V" />
-		<method name="print([C)V" />
-		<method name="printf(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;" />
-		<method name="printf(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;" />
-		<method name="println()V" />
-		<method name="println(C)V" />
-		<method name="println(D)V" />
-		<method name="println(F)V" />
-		<method name="println(I)V" />
-		<method name="println(J)V" />
-		<method name="println(Ljava/lang/Object;)V" />
-		<method name="println(Ljava/lang/String;)V" />
-		<method name="println(Z)V" />
-		<method name="println([C)V" />
-		<method name="setError()V" />
-	</class>
-	<class name="java/io/PrintWriter" since="1">
-		<extends name="java/io/Writer" />
-		<method name="&lt;init>(Ljava/io/File;)V" />
-		<method name="&lt;init>(Ljava/io/File;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/io/OutputStream;)V" />
-		<method name="&lt;init>(Ljava/io/OutputStream;Z)V" />
-		<method name="&lt;init>(Ljava/io/Writer;)V" />
-		<method name="&lt;init>(Ljava/io/Writer;Z)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="append(C)Ljava/io/PrintWriter;" />
-		<method name="append(Ljava/lang/CharSequence;)Ljava/io/PrintWriter;" />
-		<method name="append(Ljava/lang/CharSequence;II)Ljava/io/PrintWriter;" />
-		<method name="checkError()Z" />
-		<method name="clearError()V" since="9" />
-		<method name="format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;" />
-		<method name="format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;" />
-		<method name="print(C)V" />
-		<method name="print(D)V" />
-		<method name="print(F)V" />
-		<method name="print(I)V" />
-		<method name="print(J)V" />
-		<method name="print(Ljava/lang/Object;)V" />
-		<method name="print(Ljava/lang/String;)V" />
-		<method name="print(Z)V" />
-		<method name="print([C)V" />
-		<method name="printf(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;" />
-		<method name="printf(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;" />
-		<method name="println()V" />
-		<method name="println(C)V" />
-		<method name="println(D)V" />
-		<method name="println(F)V" />
-		<method name="println(I)V" />
-		<method name="println(J)V" />
-		<method name="println(Ljava/lang/Object;)V" />
-		<method name="println(Ljava/lang/String;)V" />
-		<method name="println(Z)V" />
-		<method name="println([C)V" />
-		<method name="setError()V" />
-		<field name="out" />
-	</class>
-	<class name="java/io/PushbackInputStream" since="1">
-		<extends name="java/io/FilterInputStream" />
-		<method name="&lt;init>(Ljava/io/InputStream;)V" />
-		<method name="&lt;init>(Ljava/io/InputStream;I)V" />
-		<method name="unread(I)V" />
-		<method name="unread([B)V" />
-		<method name="unread([BII)V" />
-		<field name="buf" />
-		<field name="pos" />
-	</class>
-	<class name="java/io/PushbackReader" since="1">
-		<extends name="java/io/FilterReader" />
-		<method name="&lt;init>(Ljava/io/Reader;)V" />
-		<method name="&lt;init>(Ljava/io/Reader;I)V" />
-		<method name="unread(I)V" />
-		<method name="unread([C)V" />
-		<method name="unread([CII)V" />
-	</class>
-	<class name="java/io/RandomAccessFile" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Closeable" />
-		<implements name="java/io/DataInput" />
-		<implements name="java/io/DataOutput" />
-		<method name="&lt;init>(Ljava/io/File;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="getChannel()Ljava/nio/channels/FileChannel;" />
-		<method name="getFD()Ljava/io/FileDescriptor;" />
-		<method name="getFilePointer()J" />
-		<method name="length()J" />
-		<method name="read()I" />
-		<method name="read([B)I" />
-		<method name="read([BII)I" />
-		<method name="seek(J)V" />
-		<method name="setLength(J)V" />
-	</class>
-	<class name="java/io/Reader" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Closeable" />
-		<implements name="java/lang/Readable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/Object;)V" />
-		<method name="mark(I)V" />
-		<method name="markSupported()Z" />
-		<method name="read()I" />
-		<method name="read([C)I" />
-		<method name="read([CII)I" />
-		<method name="ready()Z" />
-		<method name="reset()V" />
-		<method name="skip(J)J" />
-		<field name="lock" />
-	</class>
-	<class name="java/io/SequenceInputStream" since="1">
-		<extends name="java/io/InputStream" />
-		<method name="&lt;init>(Ljava/io/InputStream;Ljava/io/InputStream;)V" />
-		<method name="&lt;init>(Ljava/util/Enumeration;)V" />
-	</class>
-	<class name="java/io/Serializable" since="1">
-		<extends name="java/lang/Object" />
-	</class>
-	<class name="java/io/SerializablePermission" since="1">
-		<extends name="java/security/BasicPermission" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-	</class>
-	<class name="java/io/StreamCorruptedException" since="1">
-		<extends name="java/io/ObjectStreamException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/io/StreamTokenizer" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/io/InputStream;)V" />
-		<method name="&lt;init>(Ljava/io/Reader;)V" />
-		<method name="commentChar(I)V" />
-		<method name="eolIsSignificant(Z)V" />
-		<method name="lineno()I" />
-		<method name="lowerCaseMode(Z)V" />
-		<method name="nextToken()I" />
-		<method name="ordinaryChar(I)V" />
-		<method name="ordinaryChars(II)V" />
-		<method name="parseNumbers()V" />
-		<method name="pushBack()V" />
-		<method name="quoteChar(I)V" />
-		<method name="resetSyntax()V" />
-		<method name="slashSlashComments(Z)V" />
-		<method name="slashStarComments(Z)V" />
-		<method name="whitespaceChars(II)V" />
-		<method name="wordChars(II)V" />
-		<field name="TT_EOF" />
-		<field name="TT_EOL" />
-		<field name="TT_NUMBER" />
-		<field name="TT_WORD" />
-		<field name="nval" />
-		<field name="sval" />
-		<field name="ttype" />
-	</class>
-	<class name="java/io/StringBufferInputStream" since="1">
-		<extends name="java/io/InputStream" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<field name="buffer" />
-		<field name="count" />
-		<field name="pos" />
-	</class>
-	<class name="java/io/StringReader" since="1">
-		<extends name="java/io/Reader" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/io/StringWriter" since="1">
-		<extends name="java/io/Writer" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="append(C)Ljava/io/StringWriter;" />
-		<method name="append(Ljava/lang/CharSequence;)Ljava/io/StringWriter;" />
-		<method name="append(Ljava/lang/CharSequence;II)Ljava/io/StringWriter;" />
-		<method name="getBuffer()Ljava/lang/StringBuffer;" />
-	</class>
-	<class name="java/io/SyncFailedException" since="1">
-		<extends name="java/io/IOException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/io/UTFDataFormatException" since="1">
-		<extends name="java/io/IOException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/io/UnsupportedEncodingException" since="1">
-		<extends name="java/io/IOException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/io/WriteAbortedException" since="1">
-		<extends name="java/io/ObjectStreamException" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Exception;)V" />
-		<field name="detail" />
-	</class>
-	<class name="java/io/Writer" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Closeable" />
-		<implements name="java/io/Flushable" />
-		<implements name="java/lang/Appendable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/Object;)V" />
-		<method name="append(C)Ljava/io/Writer;" />
-		<method name="append(Ljava/lang/CharSequence;)Ljava/io/Writer;" />
-		<method name="append(Ljava/lang/CharSequence;II)Ljava/io/Writer;" />
-		<method name="write(I)V" />
-		<method name="write(Ljava/lang/String;)V" />
-		<method name="write(Ljava/lang/String;II)V" />
-		<method name="write([C)V" />
-		<method name="write([CII)V" />
-		<field name="lock" />
-	</class>
-	<class name="java/lang/AbstractMethodError" since="1">
-		<extends name="java/lang/IncompatibleClassChangeError" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/AbstractStringBuilder" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="capacity()I" />
-		<method name="charAt(I)C" />
-		<method name="codePointAt(I)I" />
-		<method name="codePointBefore(I)I" />
-		<method name="codePointCount(II)I" />
-		<method name="ensureCapacity(I)V" />
-		<method name="getChars(II[CI)V" />
-		<method name="indexOf(Ljava/lang/String;)I" />
-		<method name="indexOf(Ljava/lang/String;I)I" />
-		<method name="lastIndexOf(Ljava/lang/String;)I" />
-		<method name="lastIndexOf(Ljava/lang/String;I)I" />
-		<method name="length()I" />
-		<method name="offsetByCodePoints(II)I" />
-		<method name="setCharAt(IC)V" />
-		<method name="setLength(I)V" />
-		<method name="subSequence(II)Ljava/lang/CharSequence;" />
-		<method name="substring(I)Ljava/lang/String;" />
-		<method name="substring(II)Ljava/lang/String;" />
-		<method name="trimToSize()V" />
-	</class>
-	<class name="java/lang/Appendable" since="1">
-		<extends name="java/lang/Object" />
-		<method name="append(C)Ljava/lang/Appendable;" />
-		<method name="append(Ljava/lang/CharSequence;)Ljava/lang/Appendable;" />
-		<method name="append(Ljava/lang/CharSequence;II)Ljava/lang/Appendable;" />
-	</class>
-	<class name="java/lang/ArithmeticException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/ArrayIndexOutOfBoundsException" since="1">
-		<extends name="java/lang/IndexOutOfBoundsException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/ArrayStoreException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/AssertionError" since="1">
-		<extends name="java/lang/Error" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(C)V" />
-		<method name="&lt;init>(D)V" />
-		<method name="&lt;init>(F)V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(J)V" />
-		<method name="&lt;init>(Ljava/lang/Object;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" since="19" />
-		<method name="&lt;init>(Z)V" />
-	</class>
-	<class name="java/lang/AutoCloseable" since="19">
-		<extends name="java/lang/Object" />
-		<method name="close()V" />
-	</class>
-	<class name="java/lang/Boolean" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Comparable" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Z)V" />
-		<method name="booleanValue()Z" />
-		<method name="compare(ZZ)I" since="19" />
-		<method name="compareTo(Ljava/lang/Boolean;)I" />
-		<method name="getBoolean(Ljava/lang/String;)Z" />
-		<method name="parseBoolean(Ljava/lang/String;)Z" />
-		<method name="toString(Z)Ljava/lang/String;" />
-		<method name="valueOf(Ljava/lang/String;)Ljava/lang/Boolean;" />
-		<method name="valueOf(Z)Ljava/lang/Boolean;" />
-		<field name="FALSE" />
-		<field name="TRUE" />
-		<field name="TYPE" />
-	</class>
-	<class name="java/lang/Byte" since="1">
-		<extends name="java/lang/Number" />
-		<implements name="java/lang/Comparable" />
-		<method name="&lt;init>(B)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="compare(BB)I" since="19" />
-		<method name="compareTo(Ljava/lang/Byte;)I" />
-		<method name="decode(Ljava/lang/String;)Ljava/lang/Byte;" />
-		<method name="parseByte(Ljava/lang/String;)B" />
-		<method name="parseByte(Ljava/lang/String;I)B" />
-		<method name="toString(B)Ljava/lang/String;" />
-		<method name="valueOf(B)Ljava/lang/Byte;" />
-		<method name="valueOf(Ljava/lang/String;)Ljava/lang/Byte;" />
-		<method name="valueOf(Ljava/lang/String;I)Ljava/lang/Byte;" />
-		<field name="MAX_VALUE" />
-		<field name="MIN_VALUE" />
-		<field name="SIZE" />
-		<field name="TYPE" />
-	</class>
-	<class name="java/lang/CharSequence" since="1">
-		<extends name="java/lang/Object" />
-		<method name="charAt(I)C" />
-		<method name="length()I" />
-		<method name="subSequence(II)Ljava/lang/CharSequence;" />
-	</class>
-	<class name="java/lang/Character" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Comparable" />
-		<method name="&lt;init>(C)V" />
-		<method name="charCount(I)I" />
-		<method name="charValue()C" />
-		<method name="codePointAt(Ljava/lang/CharSequence;I)I" />
-		<method name="codePointAt([CI)I" />
-		<method name="codePointAt([CII)I" />
-		<method name="codePointBefore(Ljava/lang/CharSequence;I)I" />
-		<method name="codePointBefore([CI)I" />
-		<method name="codePointBefore([CII)I" />
-		<method name="codePointCount(Ljava/lang/CharSequence;II)I" />
-		<method name="codePointCount([CII)I" />
-		<method name="compare(CC)I" since="19" />
-		<method name="compareTo(Ljava/lang/Character;)I" />
-		<method name="digit(CI)I" />
-		<method name="digit(II)I" />
-		<method name="forDigit(II)C" />
-		<method name="getDirectionality(C)B" />
-		<method name="getDirectionality(I)B" />
-		<method name="getName(I)Ljava/lang/String;" since="19" />
-		<method name="getNumericValue(C)I" />
-		<method name="getNumericValue(I)I" />
-		<method name="getType(C)I" />
-		<method name="getType(I)I" />
-		<method name="highSurrogate(I)C" since="19" />
-		<method name="isAlphabetic(I)Z" since="19" />
-		<method name="isBmpCodePoint(I)Z" since="19" />
-		<method name="isDefined(C)Z" />
-		<method name="isDefined(I)Z" />
-		<method name="isDigit(C)Z" />
-		<method name="isDigit(I)Z" />
-		<method name="isHighSurrogate(C)Z" />
-		<method name="isISOControl(C)Z" />
-		<method name="isISOControl(I)Z" />
-		<method name="isIdentifierIgnorable(C)Z" />
-		<method name="isIdentifierIgnorable(I)Z" />
-		<method name="isIdeographic(I)Z" since="19" />
-		<method name="isJavaIdentifierPart(C)Z" />
-		<method name="isJavaIdentifierPart(I)Z" />
-		<method name="isJavaIdentifierStart(C)Z" />
-		<method name="isJavaIdentifierStart(I)Z" />
-		<method name="isJavaLetter(C)Z" />
-		<method name="isJavaLetterOrDigit(C)Z" />
-		<method name="isLetter(C)Z" />
-		<method name="isLetter(I)Z" />
-		<method name="isLetterOrDigit(C)Z" />
-		<method name="isLetterOrDigit(I)Z" />
-		<method name="isLowSurrogate(C)Z" />
-		<method name="isLowerCase(C)Z" />
-		<method name="isLowerCase(I)Z" />
-		<method name="isMirrored(C)Z" />
-		<method name="isMirrored(I)Z" />
-		<method name="isSpace(C)Z" />
-		<method name="isSpaceChar(C)Z" />
-		<method name="isSpaceChar(I)Z" />
-		<method name="isSupplementaryCodePoint(I)Z" />
-		<method name="isSurrogate(C)Z" since="19" />
-		<method name="isSurrogatePair(CC)Z" />
-		<method name="isTitleCase(C)Z" />
-		<method name="isTitleCase(I)Z" />
-		<method name="isUnicodeIdentifierPart(C)Z" />
-		<method name="isUnicodeIdentifierPart(I)Z" />
-		<method name="isUnicodeIdentifierStart(C)Z" />
-		<method name="isUnicodeIdentifierStart(I)Z" />
-		<method name="isUpperCase(C)Z" />
-		<method name="isUpperCase(I)Z" />
-		<method name="isValidCodePoint(I)Z" />
-		<method name="isWhitespace(C)Z" />
-		<method name="isWhitespace(I)Z" />
-		<method name="lowSurrogate(I)C" since="19" />
-		<method name="offsetByCodePoints(Ljava/lang/CharSequence;II)I" />
-		<method name="offsetByCodePoints([CIIII)I" />
-		<method name="reverseBytes(C)C" />
-		<method name="toChars(I)[C" />
-		<method name="toChars(I[CI)I" />
-		<method name="toCodePoint(CC)I" />
-		<method name="toLowerCase(C)C" />
-		<method name="toLowerCase(I)I" />
-		<method name="toString(C)Ljava/lang/String;" />
-		<method name="toTitleCase(C)C" />
-		<method name="toTitleCase(I)I" />
-		<method name="toUpperCase(C)C" />
-		<method name="toUpperCase(I)I" />
-		<method name="valueOf(C)Ljava/lang/Character;" />
-		<field name="COMBINING_SPACING_MARK" />
-		<field name="CONNECTOR_PUNCTUATION" />
-		<field name="CONTROL" />
-		<field name="CURRENCY_SYMBOL" />
-		<field name="DASH_PUNCTUATION" />
-		<field name="DECIMAL_DIGIT_NUMBER" />
-		<field name="DIRECTIONALITY_ARABIC_NUMBER" />
-		<field name="DIRECTIONALITY_BOUNDARY_NEUTRAL" />
-		<field name="DIRECTIONALITY_COMMON_NUMBER_SEPARATOR" />
-		<field name="DIRECTIONALITY_EUROPEAN_NUMBER" />
-		<field name="DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR" />
-		<field name="DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR" />
-		<field name="DIRECTIONALITY_LEFT_TO_RIGHT" />
-		<field name="DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING" />
-		<field name="DIRECTIONALITY_LEFT_TO_RIGHT_OVERRIDE" />
-		<field name="DIRECTIONALITY_NONSPACING_MARK" />
-		<field name="DIRECTIONALITY_OTHER_NEUTRALS" />
-		<field name="DIRECTIONALITY_PARAGRAPH_SEPARATOR" />
-		<field name="DIRECTIONALITY_POP_DIRECTIONAL_FORMAT" />
-		<field name="DIRECTIONALITY_RIGHT_TO_LEFT" />
-		<field name="DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC" />
-		<field name="DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING" />
-		<field name="DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE" />
-		<field name="DIRECTIONALITY_SEGMENT_SEPARATOR" />
-		<field name="DIRECTIONALITY_UNDEFINED" />
-		<field name="DIRECTIONALITY_WHITESPACE" />
-		<field name="ENCLOSING_MARK" />
-		<field name="END_PUNCTUATION" />
-		<field name="FINAL_QUOTE_PUNCTUATION" />
-		<field name="FORMAT" />
-		<field name="INITIAL_QUOTE_PUNCTUATION" />
-		<field name="LETTER_NUMBER" />
-		<field name="LINE_SEPARATOR" />
-		<field name="LOWERCASE_LETTER" />
-		<field name="MATH_SYMBOL" />
-		<field name="MAX_CODE_POINT" />
-		<field name="MAX_HIGH_SURROGATE" />
-		<field name="MAX_LOW_SURROGATE" />
-		<field name="MAX_RADIX" />
-		<field name="MAX_SURROGATE" />
-		<field name="MAX_VALUE" />
-		<field name="MIN_CODE_POINT" />
-		<field name="MIN_HIGH_SURROGATE" />
-		<field name="MIN_LOW_SURROGATE" />
-		<field name="MIN_RADIX" />
-		<field name="MIN_SUPPLEMENTARY_CODE_POINT" />
-		<field name="MIN_SURROGATE" />
-		<field name="MIN_VALUE" />
-		<field name="MODIFIER_LETTER" />
-		<field name="MODIFIER_SYMBOL" />
-		<field name="NON_SPACING_MARK" />
-		<field name="OTHER_LETTER" />
-		<field name="OTHER_NUMBER" />
-		<field name="OTHER_PUNCTUATION" />
-		<field name="OTHER_SYMBOL" />
-		<field name="PARAGRAPH_SEPARATOR" />
-		<field name="PRIVATE_USE" />
-		<field name="SIZE" />
-		<field name="SPACE_SEPARATOR" />
-		<field name="START_PUNCTUATION" />
-		<field name="SURROGATE" />
-		<field name="TITLECASE_LETTER" />
-		<field name="TYPE" />
-		<field name="UNASSIGNED" />
-		<field name="UPPERCASE_LETTER" />
-	</class>
-	<class name="java/lang/Character$Subset" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/Character$UnicodeBlock" since="1">
-		<extends name="java/lang/Character$Subset" />
-		<method name="&lt;init>()V" />
-		<method name="forName(Ljava/lang/String;)Ljava/lang/Character$UnicodeBlock;" />
-		<method name="of(C)Ljava/lang/Character$UnicodeBlock;" />
-		<method name="of(I)Ljava/lang/Character$UnicodeBlock;" />
-		<field name="AEGEAN_NUMBERS" />
-		<field name="ALCHEMICAL_SYMBOLS" since="19" />
-		<field name="ALPHABETIC_PRESENTATION_FORMS" />
-		<field name="ANCIENT_GREEK_MUSICAL_NOTATION" since="19" />
-		<field name="ANCIENT_GREEK_NUMBERS" since="19" />
-		<field name="ANCIENT_SYMBOLS" since="19" />
-		<field name="ARABIC" />
-		<field name="ARABIC_PRESENTATION_FORMS_A" />
-		<field name="ARABIC_PRESENTATION_FORMS_B" />
-		<field name="ARABIC_SUPPLEMENT" since="19" />
-		<field name="ARMENIAN" />
-		<field name="ARROWS" />
-		<field name="AVESTAN" since="19" />
-		<field name="BALINESE" since="19" />
-		<field name="BAMUM" since="19" />
-		<field name="BAMUM_SUPPLEMENT" since="19" />
-		<field name="BASIC_LATIN" />
-		<field name="BATAK" since="19" />
-		<field name="BENGALI" />
-		<field name="BLOCK_ELEMENTS" />
-		<field name="BOPOMOFO" />
-		<field name="BOPOMOFO_EXTENDED" />
-		<field name="BOX_DRAWING" />
-		<field name="BRAHMI" since="19" />
-		<field name="BRAILLE_PATTERNS" />
-		<field name="BUGINESE" since="19" />
-		<field name="BUHID" />
-		<field name="BYZANTINE_MUSICAL_SYMBOLS" />
-		<field name="CARIAN" since="19" />
-		<field name="CHAM" since="19" />
-		<field name="CHEROKEE" />
-		<field name="CJK_COMPATIBILITY" />
-		<field name="CJK_COMPATIBILITY_FORMS" />
-		<field name="CJK_COMPATIBILITY_IDEOGRAPHS" />
-		<field name="CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT" />
-		<field name="CJK_RADICALS_SUPPLEMENT" />
-		<field name="CJK_STROKES" since="19" />
-		<field name="CJK_SYMBOLS_AND_PUNCTUATION" />
-		<field name="CJK_UNIFIED_IDEOGRAPHS" />
-		<field name="CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A" />
-		<field name="CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B" />
-		<field name="CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C" since="19" />
-		<field name="CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D" since="19" />
-		<field name="COMBINING_DIACRITICAL_MARKS" />
-		<field name="COMBINING_DIACRITICAL_MARKS_SUPPLEMENT" since="19" />
-		<field name="COMBINING_HALF_MARKS" />
-		<field name="COMBINING_MARKS_FOR_SYMBOLS" />
-		<field name="COMMON_INDIC_NUMBER_FORMS" since="19" />
-		<field name="CONTROL_PICTURES" />
-		<field name="COPTIC" since="19" />
-		<field name="COUNTING_ROD_NUMERALS" since="19" />
-		<field name="CUNEIFORM" since="19" />
-		<field name="CUNEIFORM_NUMBERS_AND_PUNCTUATION" since="19" />
-		<field name="CURRENCY_SYMBOLS" />
-		<field name="CYPRIOT_SYLLABARY" />
-		<field name="CYRILLIC" />
-		<field name="CYRILLIC_EXTENDED_A" since="19" />
-		<field name="CYRILLIC_EXTENDED_B" since="19" />
-		<field name="CYRILLIC_SUPPLEMENTARY" />
-		<field name="DESERET" />
-		<field name="DEVANAGARI" />
-		<field name="DEVANAGARI_EXTENDED" since="19" />
-		<field name="DINGBATS" />
-		<field name="DOMINO_TILES" since="19" />
-		<field name="EGYPTIAN_HIEROGLYPHS" since="19" />
-		<field name="EMOTICONS" since="19" />
-		<field name="ENCLOSED_ALPHANUMERICS" />
-		<field name="ENCLOSED_ALPHANUMERIC_SUPPLEMENT" since="19" />
-		<field name="ENCLOSED_CJK_LETTERS_AND_MONTHS" />
-		<field name="ENCLOSED_IDEOGRAPHIC_SUPPLEMENT" since="19" />
-		<field name="ETHIOPIC" />
-		<field name="ETHIOPIC_EXTENDED" since="19" />
-		<field name="ETHIOPIC_EXTENDED_A" since="19" />
-		<field name="ETHIOPIC_SUPPLEMENT" since="19" />
-		<field name="GENERAL_PUNCTUATION" />
-		<field name="GEOMETRIC_SHAPES" />
-		<field name="GEORGIAN" />
-		<field name="GEORGIAN_SUPPLEMENT" since="19" />
-		<field name="GLAGOLITIC" since="19" />
-		<field name="GOTHIC" />
-		<field name="GREEK" />
-		<field name="GREEK_EXTENDED" />
-		<field name="GUJARATI" />
-		<field name="GURMUKHI" />
-		<field name="HALFWIDTH_AND_FULLWIDTH_FORMS" />
-		<field name="HANGUL_COMPATIBILITY_JAMO" />
-		<field name="HANGUL_JAMO" />
-		<field name="HANGUL_JAMO_EXTENDED_A" since="19" />
-		<field name="HANGUL_JAMO_EXTENDED_B" since="19" />
-		<field name="HANGUL_SYLLABLES" />
-		<field name="HANUNOO" />
-		<field name="HEBREW" />
-		<field name="HIGH_PRIVATE_USE_SURROGATES" />
-		<field name="HIGH_SURROGATES" />
-		<field name="HIRAGANA" />
-		<field name="IDEOGRAPHIC_DESCRIPTION_CHARACTERS" />
-		<field name="IMPERIAL_ARAMAIC" since="19" />
-		<field name="INSCRIPTIONAL_PAHLAVI" since="19" />
-		<field name="INSCRIPTIONAL_PARTHIAN" since="19" />
-		<field name="IPA_EXTENSIONS" />
-		<field name="JAVANESE" since="19" />
-		<field name="KAITHI" since="19" />
-		<field name="KANA_SUPPLEMENT" since="19" />
-		<field name="KANBUN" />
-		<field name="KANGXI_RADICALS" />
-		<field name="KANNADA" />
-		<field name="KATAKANA" />
-		<field name="KATAKANA_PHONETIC_EXTENSIONS" />
-		<field name="KAYAH_LI" since="19" />
-		<field name="KHAROSHTHI" since="19" />
-		<field name="KHMER" />
-		<field name="KHMER_SYMBOLS" />
-		<field name="LAO" />
-		<field name="LATIN_1_SUPPLEMENT" />
-		<field name="LATIN_EXTENDED_A" />
-		<field name="LATIN_EXTENDED_ADDITIONAL" />
-		<field name="LATIN_EXTENDED_B" />
-		<field name="LATIN_EXTENDED_C" since="19" />
-		<field name="LATIN_EXTENDED_D" since="19" />
-		<field name="LEPCHA" since="19" />
-		<field name="LETTERLIKE_SYMBOLS" />
-		<field name="LIMBU" />
-		<field name="LINEAR_B_IDEOGRAMS" />
-		<field name="LINEAR_B_SYLLABARY" />
-		<field name="LISU" since="19" />
-		<field name="LOW_SURROGATES" />
-		<field name="LYCIAN" since="19" />
-		<field name="LYDIAN" since="19" />
-		<field name="MAHJONG_TILES" since="19" />
-		<field name="MALAYALAM" />
-		<field name="MANDAIC" since="19" />
-		<field name="MATHEMATICAL_ALPHANUMERIC_SYMBOLS" />
-		<field name="MATHEMATICAL_OPERATORS" />
-		<field name="MEETEI_MAYEK" since="19" />
-		<field name="MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A" />
-		<field name="MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B" />
-		<field name="MISCELLANEOUS_SYMBOLS" />
-		<field name="MISCELLANEOUS_SYMBOLS_AND_ARROWS" />
-		<field name="MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS" since="19" />
-		<field name="MISCELLANEOUS_TECHNICAL" />
-		<field name="MODIFIER_TONE_LETTERS" since="19" />
-		<field name="MONGOLIAN" />
-		<field name="MUSICAL_SYMBOLS" />
-		<field name="MYANMAR" />
-		<field name="MYANMAR_EXTENDED_A" since="19" />
-		<field name="NEW_TAI_LUE" since="19" />
-		<field name="NKO" since="19" />
-		<field name="NUMBER_FORMS" />
-		<field name="OGHAM" />
-		<field name="OLD_ITALIC" />
-		<field name="OLD_PERSIAN" since="19" />
-		<field name="OLD_SOUTH_ARABIAN" since="19" />
-		<field name="OLD_TURKIC" since="19" />
-		<field name="OL_CHIKI" since="19" />
-		<field name="OPTICAL_CHARACTER_RECOGNITION" />
-		<field name="ORIYA" />
-		<field name="OSMANYA" />
-		<field name="PHAGS_PA" since="19" />
-		<field name="PHAISTOS_DISC" since="19" />
-		<field name="PHOENICIAN" since="19" />
-		<field name="PHONETIC_EXTENSIONS" />
-		<field name="PHONETIC_EXTENSIONS_SUPPLEMENT" since="19" />
-		<field name="PLAYING_CARDS" since="19" />
-		<field name="PRIVATE_USE_AREA" />
-		<field name="REJANG" since="19" />
-		<field name="RUMI_NUMERAL_SYMBOLS" since="19" />
-		<field name="RUNIC" />
-		<field name="SAMARITAN" since="19" />
-		<field name="SAURASHTRA" since="19" />
-		<field name="SHAVIAN" />
-		<field name="SINHALA" />
-		<field name="SMALL_FORM_VARIANTS" />
-		<field name="SPACING_MODIFIER_LETTERS" />
-		<field name="SPECIALS" />
-		<field name="SUNDANESE" since="19" />
-		<field name="SUPERSCRIPTS_AND_SUBSCRIPTS" />
-		<field name="SUPPLEMENTAL_ARROWS_A" />
-		<field name="SUPPLEMENTAL_ARROWS_B" />
-		<field name="SUPPLEMENTAL_MATHEMATICAL_OPERATORS" />
-		<field name="SUPPLEMENTAL_PUNCTUATION" since="19" />
-		<field name="SUPPLEMENTARY_PRIVATE_USE_AREA_A" />
-		<field name="SUPPLEMENTARY_PRIVATE_USE_AREA_B" />
-		<field name="SURROGATES_AREA" />
-		<field name="SYLOTI_NAGRI" since="19" />
-		<field name="SYRIAC" />
-		<field name="TAGALOG" />
-		<field name="TAGBANWA" />
-		<field name="TAGS" />
-		<field name="TAI_LE" />
-		<field name="TAI_THAM" since="19" />
-		<field name="TAI_VIET" since="19" />
-		<field name="TAI_XUAN_JING_SYMBOLS" />
-		<field name="TAMIL" />
-		<field name="TELUGU" />
-		<field name="THAANA" />
-		<field name="THAI" />
-		<field name="TIBETAN" />
-		<field name="TIFINAGH" since="19" />
-		<field name="TRANSPORT_AND_MAP_SYMBOLS" since="19" />
-		<field name="UGARITIC" />
-		<field name="UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS" />
-		<field name="UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED" since="19" />
-		<field name="VAI" since="19" />
-		<field name="VARIATION_SELECTORS" />
-		<field name="VARIATION_SELECTORS_SUPPLEMENT" />
-		<field name="VEDIC_EXTENSIONS" since="19" />
-		<field name="VERTICAL_FORMS" since="19" />
-		<field name="YIJING_HEXAGRAM_SYMBOLS" />
-		<field name="YI_RADICALS" />
-		<field name="YI_SYLLABLES" />
-	</class>
-	<class name="java/lang/Class" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/reflect/AnnotatedElement" />
-		<implements name="java/lang/reflect/GenericDeclaration" />
-		<implements name="java/lang/reflect/Type" />
-		<method name="&lt;init>()V" />
-		<method name="asSubclass(Ljava/lang/Class;)Ljava/lang/Class;" />
-		<method name="cast(Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="desiredAssertionStatus()Z" />
-		<method name="forName(Ljava/lang/String;)Ljava/lang/Class;" />
-		<method name="forName(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;" />
-		<method name="getCanonicalName()Ljava/lang/String;" />
-		<method name="getClassLoader()Ljava/lang/ClassLoader;" />
-		<method name="getClasses()[Ljava/lang/Class;" />
-		<method name="getComponentType()Ljava/lang/Class;" />
-		<method name="getConstructor([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;" />
-		<method name="getConstructors()[Ljava/lang/reflect/Constructor;" />
-		<method name="getDeclaredClasses()[Ljava/lang/Class;" />
-		<method name="getDeclaredConstructor([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;" />
-		<method name="getDeclaredConstructors()[Ljava/lang/reflect/Constructor;" />
-		<method name="getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;" />
-		<method name="getDeclaredFields()[Ljava/lang/reflect/Field;" />
-		<method name="getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;" />
-		<method name="getDeclaredMethods()[Ljava/lang/reflect/Method;" />
-		<method name="getDeclaringClass()Ljava/lang/Class;" />
-		<method name="getEnclosingClass()Ljava/lang/Class;" />
-		<method name="getEnclosingConstructor()Ljava/lang/reflect/Constructor;" />
-		<method name="getEnclosingMethod()Ljava/lang/reflect/Method;" />
-		<method name="getEnumConstants()[Ljava/lang/Object;" />
-		<method name="getField(Ljava/lang/String;)Ljava/lang/reflect/Field;" />
-		<method name="getFields()[Ljava/lang/reflect/Field;" />
-		<method name="getGenericInterfaces()[Ljava/lang/reflect/Type;" />
-		<method name="getGenericSuperclass()Ljava/lang/reflect/Type;" />
-		<method name="getInterfaces()[Ljava/lang/Class;" />
-		<method name="getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;" />
-		<method name="getMethods()[Ljava/lang/reflect/Method;" />
-		<method name="getModifiers()I" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getPackage()Ljava/lang/Package;" />
-		<method name="getProtectionDomain()Ljava/security/ProtectionDomain;" />
-		<method name="getResource(Ljava/lang/String;)Ljava/net/URL;" />
-		<method name="getResourceAsStream(Ljava/lang/String;)Ljava/io/InputStream;" />
-		<method name="getSigners()[Ljava/lang/Object;" />
-		<method name="getSimpleName()Ljava/lang/String;" />
-		<method name="getSuperclass()Ljava/lang/Class;" />
-		<method name="isAnnotation()Z" />
-		<method name="isAnonymousClass()Z" />
-		<method name="isArray()Z" />
-		<method name="isAssignableFrom(Ljava/lang/Class;)Z" />
-		<method name="isEnum()Z" />
-		<method name="isInstance(Ljava/lang/Object;)Z" />
-		<method name="isInterface()Z" />
-		<method name="isLocalClass()Z" />
-		<method name="isMemberClass()Z" />
-		<method name="isPrimitive()Z" />
-		<method name="isSynthetic()Z" />
-		<method name="newInstance()Ljava/lang/Object;" />
-	</class>
-	<class name="java/lang/ClassCastException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/ClassCircularityError" since="1">
-		<extends name="java/lang/LinkageError" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/ClassFormatError" since="1">
-		<extends name="java/lang/LinkageError" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/ClassLoader" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/ClassLoader;)V" />
-		<method name="clearAssertionStatus()V" />
-		<method name="defineClass(Ljava/lang/String;Ljava/nio/ByteBuffer;Ljava/security/ProtectionDomain;)Ljava/lang/Class;" />
-		<method name="defineClass(Ljava/lang/String;[BII)Ljava/lang/Class;" />
-		<method name="defineClass(Ljava/lang/String;[BIILjava/security/ProtectionDomain;)Ljava/lang/Class;" />
-		<method name="defineClass([BII)Ljava/lang/Class;" />
-		<method name="definePackage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/net/URL;)Ljava/lang/Package;" />
-		<method name="findClass(Ljava/lang/String;)Ljava/lang/Class;" />
-		<method name="findLibrary(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="findLoadedClass(Ljava/lang/String;)Ljava/lang/Class;" />
-		<method name="findResource(Ljava/lang/String;)Ljava/net/URL;" />
-		<method name="findResources(Ljava/lang/String;)Ljava/util/Enumeration;" />
-		<method name="findSystemClass(Ljava/lang/String;)Ljava/lang/Class;" />
-		<method name="getPackage(Ljava/lang/String;)Ljava/lang/Package;" />
-		<method name="getPackages()[Ljava/lang/Package;" />
-		<method name="getParent()Ljava/lang/ClassLoader;" />
-		<method name="getResource(Ljava/lang/String;)Ljava/net/URL;" />
-		<method name="getResourceAsStream(Ljava/lang/String;)Ljava/io/InputStream;" />
-		<method name="getResources(Ljava/lang/String;)Ljava/util/Enumeration;" />
-		<method name="getSystemClassLoader()Ljava/lang/ClassLoader;" />
-		<method name="getSystemResource(Ljava/lang/String;)Ljava/net/URL;" />
-		<method name="getSystemResourceAsStream(Ljava/lang/String;)Ljava/io/InputStream;" />
-		<method name="getSystemResources(Ljava/lang/String;)Ljava/util/Enumeration;" />
-		<method name="loadClass(Ljava/lang/String;)Ljava/lang/Class;" />
-		<method name="loadClass(Ljava/lang/String;Z)Ljava/lang/Class;" />
-		<method name="resolveClass(Ljava/lang/Class;)V" />
-		<method name="setClassAssertionStatus(Ljava/lang/String;Z)V" />
-		<method name="setDefaultAssertionStatus(Z)V" />
-		<method name="setPackageAssertionStatus(Ljava/lang/String;Z)V" />
-		<method name="setSigners(Ljava/lang/Class;[Ljava/lang/Object;)V" />
-	</class>
-	<class name="java/lang/ClassNotFoundException" since="1">
-		<extends name="java/lang/Exception" />
-		<extends name="java/lang/ReflectiveOperationException" since="19" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="getException()Ljava/lang/Throwable;" />
-	</class>
-	<class name="java/lang/CloneNotSupportedException" since="1">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/Cloneable" since="1">
-		<extends name="java/lang/Object" />
-	</class>
-	<class name="java/lang/Comparable" since="1">
-		<extends name="java/lang/Object" />
-		<method name="compareTo(Ljava/lang/Object;)I" />
-	</class>
-	<class name="java/lang/Compiler" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="command(Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="compileClass(Ljava/lang/Class;)Z" />
-		<method name="compileClasses(Ljava/lang/String;)Z" />
-		<method name="disable()V" />
-		<method name="enable()V" />
-	</class>
-	<class name="java/lang/Deprecated" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/annotation/Annotation" />
-	</class>
-	<class name="java/lang/Double" since="1">
-		<extends name="java/lang/Number" />
-		<implements name="java/lang/Comparable" />
-		<method name="&lt;init>(D)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="compare(DD)I" />
-		<method name="compareTo(Ljava/lang/Double;)I" />
-		<method name="doubleToLongBits(D)J" />
-		<method name="doubleToRawLongBits(D)J" />
-		<method name="isInfinite()Z" />
-		<method name="isInfinite(D)Z" />
-		<method name="isNaN()Z" />
-		<method name="isNaN(D)Z" />
-		<method name="longBitsToDouble(J)D" />
-		<method name="parseDouble(Ljava/lang/String;)D" />
-		<method name="toHexString(D)Ljava/lang/String;" />
-		<method name="toString(D)Ljava/lang/String;" />
-		<method name="valueOf(D)Ljava/lang/Double;" />
-		<method name="valueOf(Ljava/lang/String;)Ljava/lang/Double;" />
-		<field name="MAX_EXPONENT" since="9" />
-		<field name="MAX_VALUE" />
-		<field name="MIN_EXPONENT" since="9" />
-		<field name="MIN_NORMAL" since="9" />
-		<field name="MIN_VALUE" />
-		<field name="NEGATIVE_INFINITY" />
-		<field name="NaN" />
-		<field name="POSITIVE_INFINITY" />
-		<field name="SIZE" />
-		<field name="TYPE" />
-	</class>
-	<class name="java/lang/Enum" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Comparable" />
-		<method name="&lt;init>(Ljava/lang/String;I)V" />
-		<method name="compareTo(Ljava/lang/Enum;)I" />
-		<method name="getDeclaringClass()Ljava/lang/Class;" />
-		<method name="name()Ljava/lang/String;" />
-		<method name="ordinal()I" />
-		<method name="valueOf(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;" />
-	</class>
-	<class name="java/lang/EnumConstantNotPresentException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>(Ljava/lang/Class;Ljava/lang/String;)V" />
-		<method name="constantName()Ljava/lang/String;" />
-		<method name="enumType()Ljava/lang/Class;" />
-	</class>
-	<class name="java/lang/Error" since="1">
-		<extends name="java/lang/Throwable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/lang/Exception" since="1">
-		<extends name="java/lang/Throwable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/lang/ExceptionInInitializerError" since="1">
-		<extends name="java/lang/LinkageError" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-		<method name="getException()Ljava/lang/Throwable;" />
-	</class>
-	<class name="java/lang/Float" since="1">
-		<extends name="java/lang/Number" />
-		<implements name="java/lang/Comparable" />
-		<method name="&lt;init>(D)V" />
-		<method name="&lt;init>(F)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="compare(FF)I" />
-		<method name="compareTo(Ljava/lang/Float;)I" />
-		<method name="floatToIntBits(F)I" />
-		<method name="floatToRawIntBits(F)I" />
-		<method name="intBitsToFloat(I)F" />
-		<method name="isInfinite()Z" />
-		<method name="isInfinite(F)Z" />
-		<method name="isNaN()Z" />
-		<method name="isNaN(F)Z" />
-		<method name="parseFloat(Ljava/lang/String;)F" />
-		<method name="toHexString(F)Ljava/lang/String;" />
-		<method name="toString(F)Ljava/lang/String;" />
-		<method name="valueOf(F)Ljava/lang/Float;" />
-		<method name="valueOf(Ljava/lang/String;)Ljava/lang/Float;" />
-		<field name="MAX_EXPONENT" since="9" />
-		<field name="MAX_VALUE" />
-		<field name="MIN_EXPONENT" since="9" />
-		<field name="MIN_NORMAL" since="9" />
-		<field name="MIN_VALUE" />
-		<field name="NEGATIVE_INFINITY" />
-		<field name="NaN" />
-		<field name="POSITIVE_INFINITY" />
-		<field name="SIZE" />
-		<field name="TYPE" />
-	</class>
-	<class name="java/lang/IllegalAccessError" since="1">
-		<extends name="java/lang/IncompatibleClassChangeError" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/IllegalAccessException" since="1">
-		<extends name="java/lang/Exception" />
-		<extends name="java/lang/ReflectiveOperationException" since="19" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/IllegalArgumentException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/lang/IllegalMonitorStateException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/IllegalStateException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/lang/IllegalThreadStateException" since="1">
-		<extends name="java/lang/IllegalArgumentException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/IncompatibleClassChangeError" since="1">
-		<extends name="java/lang/LinkageError" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/IndexOutOfBoundsException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/InheritableThreadLocal" since="1">
-		<extends name="java/lang/ThreadLocal" />
-		<method name="&lt;init>()V" />
-		<method name="childValue(Ljava/lang/Object;)Ljava/lang/Object;" />
-	</class>
-	<class name="java/lang/InstantiationError" since="1">
-		<extends name="java/lang/IncompatibleClassChangeError" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/InstantiationException" since="1">
-		<extends name="java/lang/Exception" />
-		<extends name="java/lang/ReflectiveOperationException" since="19" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/Integer" since="1">
-		<extends name="java/lang/Number" />
-		<implements name="java/lang/Comparable" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="bitCount(I)I" />
-		<method name="compare(II)I" since="19" />
-		<method name="compareTo(Ljava/lang/Integer;)I" />
-		<method name="decode(Ljava/lang/String;)Ljava/lang/Integer;" />
-		<method name="getInteger(Ljava/lang/String;)Ljava/lang/Integer;" />
-		<method name="getInteger(Ljava/lang/String;I)Ljava/lang/Integer;" />
-		<method name="getInteger(Ljava/lang/String;Ljava/lang/Integer;)Ljava/lang/Integer;" />
-		<method name="highestOneBit(I)I" />
-		<method name="lowestOneBit(I)I" />
-		<method name="numberOfLeadingZeros(I)I" />
-		<method name="numberOfTrailingZeros(I)I" />
-		<method name="parseInt(Ljava/lang/String;)I" />
-		<method name="parseInt(Ljava/lang/String;I)I" />
-		<method name="reverse(I)I" />
-		<method name="reverseBytes(I)I" />
-		<method name="rotateLeft(II)I" />
-		<method name="rotateRight(II)I" />
-		<method name="signum(I)I" />
-		<method name="toBinaryString(I)Ljava/lang/String;" />
-		<method name="toHexString(I)Ljava/lang/String;" />
-		<method name="toOctalString(I)Ljava/lang/String;" />
-		<method name="toString(I)Ljava/lang/String;" />
-		<method name="toString(II)Ljava/lang/String;" />
-		<method name="valueOf(I)Ljava/lang/Integer;" />
-		<method name="valueOf(Ljava/lang/String;)Ljava/lang/Integer;" />
-		<method name="valueOf(Ljava/lang/String;I)Ljava/lang/Integer;" />
-		<field name="MAX_VALUE" />
-		<field name="MIN_VALUE" />
-		<field name="SIZE" />
-		<field name="TYPE" />
-	</class>
-	<class name="java/lang/InternalError" since="1">
-		<extends name="java/lang/VirtualMachineError" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/InterruptedException" since="1">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/Iterable" since="1">
-		<extends name="java/lang/Object" />
-		<method name="iterator()Ljava/util/Iterator;" />
-	</class>
-	<class name="java/lang/LinkageError" since="1">
-		<extends name="java/lang/Error" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" since="19" />
-	</class>
-	<class name="java/lang/Long" since="1">
-		<extends name="java/lang/Number" />
-		<implements name="java/lang/Comparable" />
-		<method name="&lt;init>(J)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="bitCount(J)I" />
-		<method name="compare(JJ)I" since="19" />
-		<method name="compareTo(Ljava/lang/Long;)I" />
-		<method name="decode(Ljava/lang/String;)Ljava/lang/Long;" />
-		<method name="getLong(Ljava/lang/String;)Ljava/lang/Long;" />
-		<method name="getLong(Ljava/lang/String;J)Ljava/lang/Long;" />
-		<method name="getLong(Ljava/lang/String;Ljava/lang/Long;)Ljava/lang/Long;" />
-		<method name="highestOneBit(J)J" />
-		<method name="lowestOneBit(J)J" />
-		<method name="numberOfLeadingZeros(J)I" />
-		<method name="numberOfTrailingZeros(J)I" />
-		<method name="parseLong(Ljava/lang/String;)J" />
-		<method name="parseLong(Ljava/lang/String;I)J" />
-		<method name="reverse(J)J" />
-		<method name="reverseBytes(J)J" />
-		<method name="rotateLeft(JI)J" />
-		<method name="rotateRight(JI)J" />
-		<method name="signum(J)I" />
-		<method name="toBinaryString(J)Ljava/lang/String;" />
-		<method name="toHexString(J)Ljava/lang/String;" />
-		<method name="toOctalString(J)Ljava/lang/String;" />
-		<method name="toString(J)Ljava/lang/String;" />
-		<method name="toString(JI)Ljava/lang/String;" />
-		<method name="valueOf(J)Ljava/lang/Long;" />
-		<method name="valueOf(Ljava/lang/String;)Ljava/lang/Long;" />
-		<method name="valueOf(Ljava/lang/String;I)Ljava/lang/Long;" />
-		<field name="MAX_VALUE" />
-		<field name="MIN_VALUE" />
-		<field name="SIZE" />
-		<field name="TYPE" />
-	</class>
-	<class name="java/lang/Math" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="IEEEremainder(DD)D" />
-		<method name="abs(D)D" />
-		<method name="abs(F)F" />
-		<method name="abs(I)I" />
-		<method name="abs(J)J" />
-		<method name="acos(D)D" />
-		<method name="asin(D)D" />
-		<method name="atan(D)D" />
-		<method name="atan2(DD)D" />
-		<method name="cbrt(D)D" />
-		<method name="ceil(D)D" />
-		<method name="copySign(DD)D" since="9" />
-		<method name="copySign(FF)F" since="9" />
-		<method name="cos(D)D" />
-		<method name="cosh(D)D" />
-		<method name="exp(D)D" />
-		<method name="expm1(D)D" />
-		<method name="floor(D)D" />
-		<method name="getExponent(D)I" since="9" />
-		<method name="getExponent(F)I" since="9" />
-		<method name="hypot(DD)D" />
-		<method name="log(D)D" />
-		<method name="log10(D)D" />
-		<method name="log1p(D)D" />
-		<method name="max(DD)D" />
-		<method name="max(FF)F" />
-		<method name="max(II)I" />
-		<method name="max(JJ)J" />
-		<method name="min(DD)D" />
-		<method name="min(FF)F" />
-		<method name="min(II)I" />
-		<method name="min(JJ)J" />
-		<method name="nextAfter(DD)D" since="9" />
-		<method name="nextAfter(FD)F" since="9" />
-		<method name="nextUp(D)D" since="9" />
-		<method name="nextUp(F)F" since="9" />
-		<method name="pow(DD)D" />
-		<method name="random()D" />
-		<method name="rint(D)D" />
-		<method name="round(D)J" />
-		<method name="round(F)I" />
-		<method name="scalb(DI)D" since="9" />
-		<method name="scalb(FI)F" since="9" />
-		<method name="signum(D)D" />
-		<method name="signum(F)F" />
-		<method name="sin(D)D" />
-		<method name="sinh(D)D" />
-		<method name="sqrt(D)D" />
-		<method name="tan(D)D" />
-		<method name="tanh(D)D" />
-		<method name="toDegrees(D)D" />
-		<method name="toRadians(D)D" />
-		<method name="ulp(D)D" />
-		<method name="ulp(F)F" />
-		<field name="E" />
-		<field name="PI" />
-	</class>
-	<class name="java/lang/NegativeArraySizeException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/NoClassDefFoundError" since="1">
-		<extends name="java/lang/LinkageError" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/NoSuchFieldError" since="1">
-		<extends name="java/lang/IncompatibleClassChangeError" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/NoSuchFieldException" since="1">
-		<extends name="java/lang/Exception" />
-		<extends name="java/lang/ReflectiveOperationException" since="19" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/NoSuchMethodError" since="1">
-		<extends name="java/lang/IncompatibleClassChangeError" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/NoSuchMethodException" since="1">
-		<extends name="java/lang/Exception" />
-		<extends name="java/lang/ReflectiveOperationException" since="19" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/NullPointerException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/Number" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>()V" />
-		<method name="byteValue()B" />
-		<method name="doubleValue()D" />
-		<method name="floatValue()F" />
-		<method name="intValue()I" />
-		<method name="longValue()J" />
-		<method name="shortValue()S" />
-	</class>
-	<class name="java/lang/NumberFormatException" since="1">
-		<extends name="java/lang/IllegalArgumentException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/Object" since="1">
-		<method name="&lt;init>()V" />
-		<method name="clone()Ljava/lang/Object;" />
-		<method name="equals(Ljava/lang/Object;)Z" />
-		<method name="finalize()V" />
-		<method name="getClass()Ljava/lang/Class;" />
-		<method name="hashCode()I" />
-		<method name="notify()V" />
-		<method name="notifyAll()V" />
-		<method name="toString()Ljava/lang/String;" />
-		<method name="wait()V" />
-		<method name="wait(J)V" />
-		<method name="wait(JI)V" />
-	</class>
-	<class name="java/lang/OutOfMemoryError" since="1">
-		<extends name="java/lang/VirtualMachineError" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/Override" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/annotation/Annotation" />
-	</class>
-	<class name="java/lang/Package" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/reflect/AnnotatedElement" />
-		<method name="&lt;init>()V" />
-		<method name="getImplementationTitle()Ljava/lang/String;" />
-		<method name="getImplementationVendor()Ljava/lang/String;" />
-		<method name="getImplementationVersion()Ljava/lang/String;" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getPackage(Ljava/lang/String;)Ljava/lang/Package;" />
-		<method name="getPackages()[Ljava/lang/Package;" />
-		<method name="getSpecificationTitle()Ljava/lang/String;" />
-		<method name="getSpecificationVendor()Ljava/lang/String;" />
-		<method name="getSpecificationVersion()Ljava/lang/String;" />
-		<method name="isCompatibleWith(Ljava/lang/String;)Z" />
-		<method name="isSealed()Z" />
-		<method name="isSealed(Ljava/net/URL;)Z" />
-	</class>
-	<class name="java/lang/Process" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="destroy()V" />
-		<method name="exitValue()I" />
-		<method name="getErrorStream()Ljava/io/InputStream;" />
-		<method name="getInputStream()Ljava/io/InputStream;" />
-		<method name="getOutputStream()Ljava/io/OutputStream;" />
-		<method name="waitFor()I" />
-	</class>
-	<class name="java/lang/ProcessBuilder" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/util/List;)V" />
-		<method name="&lt;init>([Ljava/lang/String;)V" />
-		<method name="command()Ljava/util/List;" />
-		<method name="command(Ljava/util/List;)Ljava/lang/ProcessBuilder;" />
-		<method name="command([Ljava/lang/String;)Ljava/lang/ProcessBuilder;" />
-		<method name="directory()Ljava/io/File;" />
-		<method name="directory(Ljava/io/File;)Ljava/lang/ProcessBuilder;" />
-		<method name="environment()Ljava/util/Map;" />
-		<method name="redirectErrorStream()Z" />
-		<method name="redirectErrorStream(Z)Ljava/lang/ProcessBuilder;" />
-		<method name="start()Ljava/lang/Process;" />
-	</class>
-	<class name="java/lang/Readable" since="1">
-		<extends name="java/lang/Object" />
-		<method name="read(Ljava/nio/CharBuffer;)I" />
-	</class>
-	<class name="java/lang/ReflectiveOperationException" since="19">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/lang/Runnable" since="1">
-		<extends name="java/lang/Object" />
-		<method name="run()V" />
-	</class>
-	<class name="java/lang/Runtime" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addShutdownHook(Ljava/lang/Thread;)V" />
-		<method name="availableProcessors()I" />
-		<method name="exec(Ljava/lang/String;)Ljava/lang/Process;" />
-		<method name="exec(Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/Process;" />
-		<method name="exec(Ljava/lang/String;[Ljava/lang/String;Ljava/io/File;)Ljava/lang/Process;" />
-		<method name="exec([Ljava/lang/String;)Ljava/lang/Process;" />
-		<method name="exec([Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/Process;" />
-		<method name="exec([Ljava/lang/String;[Ljava/lang/String;Ljava/io/File;)Ljava/lang/Process;" />
-		<method name="exit(I)V" />
-		<method name="freeMemory()J" />
-		<method name="gc()V" />
-		<method name="getLocalizedInputStream(Ljava/io/InputStream;)Ljava/io/InputStream;" />
-		<method name="getLocalizedOutputStream(Ljava/io/OutputStream;)Ljava/io/OutputStream;" />
-		<method name="getRuntime()Ljava/lang/Runtime;" />
-		<method name="halt(I)V" />
-		<method name="load(Ljava/lang/String;)V" />
-		<method name="loadLibrary(Ljava/lang/String;)V" />
-		<method name="maxMemory()J" />
-		<method name="removeShutdownHook(Ljava/lang/Thread;)Z" />
-		<method name="runFinalization()V" />
-		<method name="runFinalizersOnExit(Z)V" />
-		<method name="totalMemory()J" />
-		<method name="traceInstructions(Z)V" />
-		<method name="traceMethodCalls(Z)V" />
-	</class>
-	<class name="java/lang/RuntimeException" since="1">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/lang/RuntimePermission" since="1">
-		<extends name="java/security/BasicPermission" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/SafeVarargs" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/annotation/Annotation" />
-	</class>
-	<class name="java/lang/SecurityException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/lang/SecurityManager" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="checkAccept(Ljava/lang/String;I)V" />
-		<method name="checkAccess(Ljava/lang/Thread;)V" />
-		<method name="checkAccess(Ljava/lang/ThreadGroup;)V" />
-		<method name="checkAwtEventQueueAccess()V" />
-		<method name="checkConnect(Ljava/lang/String;I)V" />
-		<method name="checkConnect(Ljava/lang/String;ILjava/lang/Object;)V" />
-		<method name="checkCreateClassLoader()V" />
-		<method name="checkDelete(Ljava/lang/String;)V" />
-		<method name="checkExec(Ljava/lang/String;)V" />
-		<method name="checkExit(I)V" />
-		<method name="checkLink(Ljava/lang/String;)V" />
-		<method name="checkListen(I)V" />
-		<method name="checkMemberAccess(Ljava/lang/Class;I)V" />
-		<method name="checkMulticast(Ljava/net/InetAddress;)V" />
-		<method name="checkMulticast(Ljava/net/InetAddress;B)V" />
-		<method name="checkPackageAccess(Ljava/lang/String;)V" />
-		<method name="checkPackageDefinition(Ljava/lang/String;)V" />
-		<method name="checkPermission(Ljava/security/Permission;)V" />
-		<method name="checkPermission(Ljava/security/Permission;Ljava/lang/Object;)V" />
-		<method name="checkPrintJobAccess()V" />
-		<method name="checkPropertiesAccess()V" />
-		<method name="checkPropertyAccess(Ljava/lang/String;)V" />
-		<method name="checkRead(Ljava/io/FileDescriptor;)V" />
-		<method name="checkRead(Ljava/lang/String;)V" />
-		<method name="checkRead(Ljava/lang/String;Ljava/lang/Object;)V" />
-		<method name="checkSecurityAccess(Ljava/lang/String;)V" />
-		<method name="checkSetFactory()V" />
-		<method name="checkSystemClipboardAccess()V" />
-		<method name="checkTopLevelWindow(Ljava/lang/Object;)Z" />
-		<method name="checkWrite(Ljava/io/FileDescriptor;)V" />
-		<method name="checkWrite(Ljava/lang/String;)V" />
-		<method name="classDepth(Ljava/lang/String;)I" />
-		<method name="classLoaderDepth()I" />
-		<method name="currentClassLoader()Ljava/lang/ClassLoader;" />
-		<method name="currentLoadedClass()Ljava/lang/Class;" />
-		<method name="getClassContext()[Ljava/lang/Class;" />
-		<method name="getInCheck()Z" />
-		<method name="getSecurityContext()Ljava/lang/Object;" />
-		<method name="getThreadGroup()Ljava/lang/ThreadGroup;" />
-		<method name="inClass(Ljava/lang/String;)Z" />
-		<method name="inClassLoader()Z" />
-		<field name="inCheck" />
-	</class>
-	<class name="java/lang/Short" since="1">
-		<extends name="java/lang/Number" />
-		<implements name="java/lang/Comparable" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(S)V" />
-		<method name="compare(SS)I" since="19" />
-		<method name="compareTo(Ljava/lang/Short;)I" />
-		<method name="decode(Ljava/lang/String;)Ljava/lang/Short;" />
-		<method name="parseShort(Ljava/lang/String;)S" />
-		<method name="parseShort(Ljava/lang/String;I)S" />
-		<method name="reverseBytes(S)S" />
-		<method name="toString(S)Ljava/lang/String;" />
-		<method name="valueOf(Ljava/lang/String;)Ljava/lang/Short;" />
-		<method name="valueOf(Ljava/lang/String;I)Ljava/lang/Short;" />
-		<method name="valueOf(S)Ljava/lang/Short;" />
-		<field name="MAX_VALUE" />
-		<field name="MIN_VALUE" />
-		<field name="SIZE" />
-		<field name="TYPE" />
-	</class>
-	<class name="java/lang/StackOverflowError" since="1">
-		<extends name="java/lang/VirtualMachineError" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/StackTraceElement" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V" />
-		<method name="getClassName()Ljava/lang/String;" />
-		<method name="getFileName()Ljava/lang/String;" />
-		<method name="getLineNumber()I" />
-		<method name="getMethodName()Ljava/lang/String;" />
-		<method name="isNativeMethod()Z" />
-	</class>
-	<class name="java/lang/StrictMath" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="IEEEremainder(DD)D" />
-		<method name="abs(D)D" />
-		<method name="abs(F)F" />
-		<method name="abs(I)I" />
-		<method name="abs(J)J" />
-		<method name="acos(D)D" />
-		<method name="asin(D)D" />
-		<method name="atan(D)D" />
-		<method name="atan2(DD)D" />
-		<method name="cbrt(D)D" />
-		<method name="ceil(D)D" />
-		<method name="copySign(DD)D" since="9" />
-		<method name="copySign(FF)F" since="9" />
-		<method name="cos(D)D" />
-		<method name="cosh(D)D" />
-		<method name="exp(D)D" />
-		<method name="expm1(D)D" />
-		<method name="floor(D)D" />
-		<method name="getExponent(D)I" since="9" />
-		<method name="getExponent(F)I" since="9" />
-		<method name="hypot(DD)D" />
-		<method name="log(D)D" />
-		<method name="log10(D)D" />
-		<method name="log1p(D)D" />
-		<method name="max(DD)D" />
-		<method name="max(FF)F" />
-		<method name="max(II)I" />
-		<method name="max(JJ)J" />
-		<method name="min(DD)D" />
-		<method name="min(FF)F" />
-		<method name="min(II)I" />
-		<method name="min(JJ)J" />
-		<method name="nextAfter(DD)D" since="9" />
-		<method name="nextAfter(FD)F" since="9" />
-		<method name="nextUp(D)D" since="9" />
-		<method name="nextUp(F)F" since="9" />
-		<method name="pow(DD)D" />
-		<method name="random()D" />
-		<method name="rint(D)D" />
-		<method name="round(D)J" />
-		<method name="round(F)I" />
-		<method name="scalb(DI)D" since="9" />
-		<method name="scalb(FI)F" since="9" />
-		<method name="signum(D)D" />
-		<method name="signum(F)F" />
-		<method name="sin(D)D" />
-		<method name="sinh(D)D" />
-		<method name="sqrt(D)D" />
-		<method name="tan(D)D" />
-		<method name="tanh(D)D" />
-		<method name="toDegrees(D)D" />
-		<method name="toRadians(D)D" />
-		<method name="ulp(D)D" />
-		<method name="ulp(F)F" />
-		<field name="E" />
-		<field name="PI" />
-	</class>
-	<class name="java/lang/String" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/CharSequence" />
-		<implements name="java/lang/Comparable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/StringBuffer;)V" />
-		<method name="&lt;init>(Ljava/lang/StringBuilder;)V" />
-		<method name="&lt;init>([B)V" />
-		<method name="&lt;init>([BI)V" />
-		<method name="&lt;init>([BII)V" />
-		<method name="&lt;init>([BIII)V" />
-		<method name="&lt;init>([BIILjava/lang/String;)V" />
-		<method name="&lt;init>([BIILjava/nio/charset/Charset;)V" since="9" />
-		<method name="&lt;init>([BLjava/lang/String;)V" />
-		<method name="&lt;init>([BLjava/nio/charset/Charset;)V" since="9" />
-		<method name="&lt;init>([C)V" />
-		<method name="&lt;init>([CII)V" />
-		<method name="&lt;init>([III)V" />
-		<method name="codePointAt(I)I" />
-		<method name="codePointBefore(I)I" />
-		<method name="codePointCount(II)I" />
-		<method name="compareTo(Ljava/lang/String;)I" />
-		<method name="compareToIgnoreCase(Ljava/lang/String;)I" />
-		<method name="concat(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="contains(Ljava/lang/CharSequence;)Z" />
-		<method name="contentEquals(Ljava/lang/CharSequence;)Z" />
-		<method name="contentEquals(Ljava/lang/StringBuffer;)Z" />
-		<method name="copyValueOf([C)Ljava/lang/String;" />
-		<method name="copyValueOf([CII)Ljava/lang/String;" />
-		<method name="endsWith(Ljava/lang/String;)Z" />
-		<method name="equalsIgnoreCase(Ljava/lang/String;)Z" />
-		<method name="format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;" />
-		<method name="format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;" />
-		<method name="getBytes()[B" />
-		<method name="getBytes(II[BI)V" />
-		<method name="getBytes(Ljava/lang/String;)[B" />
-		<method name="getBytes(Ljava/nio/charset/Charset;)[B" since="9" />
-		<method name="getChars(II[CI)V" />
-		<method name="indexOf(I)I" />
-		<method name="indexOf(II)I" />
-		<method name="indexOf(Ljava/lang/String;)I" />
-		<method name="indexOf(Ljava/lang/String;I)I" />
-		<method name="intern()Ljava/lang/String;" />
-		<method name="isEmpty()Z" since="9" />
-		<method name="lastIndexOf(I)I" />
-		<method name="lastIndexOf(II)I" />
-		<method name="lastIndexOf(Ljava/lang/String;)I" />
-		<method name="lastIndexOf(Ljava/lang/String;I)I" />
-		<method name="matches(Ljava/lang/String;)Z" />
-		<method name="offsetByCodePoints(II)I" />
-		<method name="regionMatches(ILjava/lang/String;II)Z" />
-		<method name="regionMatches(ZILjava/lang/String;II)Z" />
-		<method name="replace(CC)Ljava/lang/String;" />
-		<method name="replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;" />
-		<method name="replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="replaceFirst(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="split(Ljava/lang/String;)[Ljava/lang/String;" />
-		<method name="split(Ljava/lang/String;I)[Ljava/lang/String;" />
-		<method name="startsWith(Ljava/lang/String;)Z" />
-		<method name="startsWith(Ljava/lang/String;I)Z" />
-		<method name="substring(I)Ljava/lang/String;" />
-		<method name="substring(II)Ljava/lang/String;" />
-		<method name="toCharArray()[C" />
-		<method name="toLowerCase()Ljava/lang/String;" />
-		<method name="toLowerCase(Ljava/util/Locale;)Ljava/lang/String;" />
-		<method name="toUpperCase()Ljava/lang/String;" />
-		<method name="toUpperCase(Ljava/util/Locale;)Ljava/lang/String;" />
-		<method name="trim()Ljava/lang/String;" />
-		<method name="valueOf(C)Ljava/lang/String;" />
-		<method name="valueOf(D)Ljava/lang/String;" />
-		<method name="valueOf(F)Ljava/lang/String;" />
-		<method name="valueOf(I)Ljava/lang/String;" />
-		<method name="valueOf(J)Ljava/lang/String;" />
-		<method name="valueOf(Ljava/lang/Object;)Ljava/lang/String;" />
-		<method name="valueOf(Z)Ljava/lang/String;" />
-		<method name="valueOf([C)Ljava/lang/String;" />
-		<method name="valueOf([CII)Ljava/lang/String;" />
-		<field name="CASE_INSENSITIVE_ORDER" />
-	</class>
-	<class name="java/lang/StringBuffer" since="1">
-		<extends name="java/lang/AbstractStringBuilder" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Appendable" />
-		<implements name="java/lang/CharSequence" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(Ljava/lang/CharSequence;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="append(C)Ljava/lang/StringBuffer;" />
-		<method name="append(D)Ljava/lang/StringBuffer;" />
-		<method name="append(F)Ljava/lang/StringBuffer;" />
-		<method name="append(I)Ljava/lang/StringBuffer;" />
-		<method name="append(J)Ljava/lang/StringBuffer;" />
-		<method name="append(Ljava/lang/CharSequence;)Ljava/lang/StringBuffer;" />
-		<method name="append(Ljava/lang/CharSequence;II)Ljava/lang/StringBuffer;" />
-		<method name="append(Ljava/lang/Object;)Ljava/lang/StringBuffer;" />
-		<method name="append(Ljava/lang/String;)Ljava/lang/StringBuffer;" />
-		<method name="append(Ljava/lang/StringBuffer;)Ljava/lang/StringBuffer;" />
-		<method name="append(Z)Ljava/lang/StringBuffer;" />
-		<method name="append([C)Ljava/lang/StringBuffer;" />
-		<method name="append([CII)Ljava/lang/StringBuffer;" />
-		<method name="appendCodePoint(I)Ljava/lang/StringBuffer;" />
-		<method name="delete(II)Ljava/lang/StringBuffer;" />
-		<method name="deleteCharAt(I)Ljava/lang/StringBuffer;" />
-		<method name="insert(IC)Ljava/lang/StringBuffer;" />
-		<method name="insert(ID)Ljava/lang/StringBuffer;" />
-		<method name="insert(IF)Ljava/lang/StringBuffer;" />
-		<method name="insert(II)Ljava/lang/StringBuffer;" />
-		<method name="insert(IJ)Ljava/lang/StringBuffer;" />
-		<method name="insert(ILjava/lang/CharSequence;)Ljava/lang/StringBuffer;" />
-		<method name="insert(ILjava/lang/CharSequence;II)Ljava/lang/StringBuffer;" />
-		<method name="insert(ILjava/lang/Object;)Ljava/lang/StringBuffer;" />
-		<method name="insert(ILjava/lang/String;)Ljava/lang/StringBuffer;" />
-		<method name="insert(IZ)Ljava/lang/StringBuffer;" />
-		<method name="insert(I[C)Ljava/lang/StringBuffer;" />
-		<method name="insert(I[CII)Ljava/lang/StringBuffer;" />
-		<method name="replace(IILjava/lang/String;)Ljava/lang/StringBuffer;" />
-		<method name="reverse()Ljava/lang/StringBuffer;" />
-	</class>
-	<class name="java/lang/StringBuilder" since="1">
-		<extends name="java/lang/AbstractStringBuilder" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Appendable" />
-		<implements name="java/lang/CharSequence" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(Ljava/lang/CharSequence;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="append(C)Ljava/lang/StringBuilder;" />
-		<method name="append(D)Ljava/lang/StringBuilder;" />
-		<method name="append(F)Ljava/lang/StringBuilder;" />
-		<method name="append(I)Ljava/lang/StringBuilder;" />
-		<method name="append(J)Ljava/lang/StringBuilder;" />
-		<method name="append(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;" />
-		<method name="append(Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder;" />
-		<method name="append(Ljava/lang/Object;)Ljava/lang/StringBuilder;" />
-		<method name="append(Ljava/lang/String;)Ljava/lang/StringBuilder;" />
-		<method name="append(Ljava/lang/StringBuffer;)Ljava/lang/StringBuilder;" />
-		<method name="append(Z)Ljava/lang/StringBuilder;" />
-		<method name="append([C)Ljava/lang/StringBuilder;" />
-		<method name="append([CII)Ljava/lang/StringBuilder;" />
-		<method name="appendCodePoint(I)Ljava/lang/StringBuilder;" />
-		<method name="delete(II)Ljava/lang/StringBuilder;" />
-		<method name="deleteCharAt(I)Ljava/lang/StringBuilder;" />
-		<method name="insert(IC)Ljava/lang/StringBuilder;" />
-		<method name="insert(ID)Ljava/lang/StringBuilder;" />
-		<method name="insert(IF)Ljava/lang/StringBuilder;" />
-		<method name="insert(II)Ljava/lang/StringBuilder;" />
-		<method name="insert(IJ)Ljava/lang/StringBuilder;" />
-		<method name="insert(ILjava/lang/CharSequence;)Ljava/lang/StringBuilder;" />
-		<method name="insert(ILjava/lang/CharSequence;II)Ljava/lang/StringBuilder;" />
-		<method name="insert(ILjava/lang/Object;)Ljava/lang/StringBuilder;" />
-		<method name="insert(ILjava/lang/String;)Ljava/lang/StringBuilder;" />
-		<method name="insert(IZ)Ljava/lang/StringBuilder;" />
-		<method name="insert(I[C)Ljava/lang/StringBuilder;" />
-		<method name="insert(I[CII)Ljava/lang/StringBuilder;" />
-		<method name="replace(IILjava/lang/String;)Ljava/lang/StringBuilder;" />
-		<method name="reverse()Ljava/lang/StringBuilder;" />
-	</class>
-	<class name="java/lang/StringIndexOutOfBoundsException" since="1">
-		<extends name="java/lang/IndexOutOfBoundsException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/SuppressWarnings" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/annotation/Annotation" />
-		<method name="value()[Ljava/lang/String;" />
-	</class>
-	<class name="java/lang/System" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V" />
-		<method name="clearProperty(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="console()Ljava/io/Console;" since="9" />
-		<method name="currentTimeMillis()J" />
-		<method name="exit(I)V" />
-		<method name="gc()V" />
-		<method name="getProperties()Ljava/util/Properties;" />
-		<method name="getProperty(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getSecurityManager()Ljava/lang/SecurityManager;" />
-		<method name="getenv()Ljava/util/Map;" />
-		<method name="getenv(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="identityHashCode(Ljava/lang/Object;)I" />
-		<method name="inheritedChannel()Ljava/nio/channels/Channel;" />
-		<method name="lineSeparator()Ljava/lang/String;" since="19" />
-		<method name="load(Ljava/lang/String;)V" />
-		<method name="loadLibrary(Ljava/lang/String;)V" />
-		<method name="mapLibraryName(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="nanoTime()J" />
-		<method name="runFinalization()V" />
-		<method name="runFinalizersOnExit(Z)V" />
-		<method name="setErr(Ljava/io/PrintStream;)V" />
-		<method name="setIn(Ljava/io/InputStream;)V" />
-		<method name="setOut(Ljava/io/PrintStream;)V" />
-		<method name="setProperties(Ljava/util/Properties;)V" />
-		<method name="setProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="setSecurityManager(Ljava/lang/SecurityManager;)V" />
-		<field name="err" />
-		<field name="in" />
-		<field name="out" />
-	</class>
-	<class name="java/lang/Thread" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Runnable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/Runnable;)V" />
-		<method name="&lt;init>(Ljava/lang/Runnable;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;)V" />
-		<method name="&lt;init>(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;Ljava/lang/String;J)V" />
-		<method name="&lt;init>(Ljava/lang/ThreadGroup;Ljava/lang/String;)V" />
-		<method name="activeCount()I" />
-		<method name="checkAccess()V" />
-		<method name="countStackFrames()I" />
-		<method name="currentThread()Ljava/lang/Thread;" />
-		<method name="destroy()V" />
-		<method name="dumpStack()V" />
-		<method name="enumerate([Ljava/lang/Thread;)I" />
-		<method name="getAllStackTraces()Ljava/util/Map;" />
-		<method name="getContextClassLoader()Ljava/lang/ClassLoader;" />
-		<method name="getDefaultUncaughtExceptionHandler()Ljava/lang/Thread$UncaughtExceptionHandler;" />
-		<method name="getId()J" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getPriority()I" />
-		<method name="getStackTrace()[Ljava/lang/StackTraceElement;" />
-		<method name="getState()Ljava/lang/Thread$State;" />
-		<method name="getThreadGroup()Ljava/lang/ThreadGroup;" />
-		<method name="getUncaughtExceptionHandler()Ljava/lang/Thread$UncaughtExceptionHandler;" />
-		<method name="holdsLock(Ljava/lang/Object;)Z" />
-		<method name="interrupt()V" />
-		<method name="interrupted()Z" />
-		<method name="isAlive()Z" />
-		<method name="isDaemon()Z" />
-		<method name="isInterrupted()Z" />
-		<method name="join()V" />
-		<method name="join(J)V" />
-		<method name="join(JI)V" />
-		<method name="resume()V" />
-		<method name="setContextClassLoader(Ljava/lang/ClassLoader;)V" />
-		<method name="setDaemon(Z)V" />
-		<method name="setDefaultUncaughtExceptionHandler(Ljava/lang/Thread$UncaughtExceptionHandler;)V" />
-		<method name="setName(Ljava/lang/String;)V" />
-		<method name="setPriority(I)V" />
-		<method name="setUncaughtExceptionHandler(Ljava/lang/Thread$UncaughtExceptionHandler;)V" />
-		<method name="sleep(J)V" />
-		<method name="sleep(JI)V" />
-		<method name="start()V" />
-		<method name="stop()V" />
-		<method name="stop(Ljava/lang/Throwable;)V" />
-		<method name="suspend()V" />
-		<method name="yield()V" />
-		<field name="MAX_PRIORITY" />
-		<field name="MIN_PRIORITY" />
-		<field name="NORM_PRIORITY" />
-	</class>
-	<class name="java/lang/Thread$State" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Ljava/lang/Thread$State;" />
-		<method name="values()[Ljava/lang/Thread$State;" />
-		<field name="BLOCKED" />
-		<field name="NEW" />
-		<field name="RUNNABLE" />
-		<field name="TERMINATED" />
-		<field name="TIMED_WAITING" />
-		<field name="WAITING" />
-	</class>
-	<class name="java/lang/Thread$UncaughtExceptionHandler" since="1">
-		<extends name="java/lang/Object" />
-		<method name="uncaughtException(Ljava/lang/Thread;Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/lang/ThreadDeath" since="1">
-		<extends name="java/lang/Error" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/lang/ThreadGroup" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Thread$UncaughtExceptionHandler" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/ThreadGroup;Ljava/lang/String;)V" />
-		<method name="activeCount()I" />
-		<method name="activeGroupCount()I" />
-		<method name="allowThreadSuspension(Z)Z" />
-		<method name="checkAccess()V" />
-		<method name="destroy()V" />
-		<method name="enumerate([Ljava/lang/Thread;)I" />
-		<method name="enumerate([Ljava/lang/Thread;Z)I" />
-		<method name="enumerate([Ljava/lang/ThreadGroup;)I" />
-		<method name="enumerate([Ljava/lang/ThreadGroup;Z)I" />
-		<method name="getMaxPriority()I" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getParent()Ljava/lang/ThreadGroup;" />
-		<method name="interrupt()V" />
-		<method name="isDaemon()Z" />
-		<method name="isDestroyed()Z" />
-		<method name="list()V" />
-		<method name="parentOf(Ljava/lang/ThreadGroup;)Z" />
-		<method name="resume()V" />
-		<method name="setDaemon(Z)V" />
-		<method name="setMaxPriority(I)V" />
-		<method name="stop()V" />
-		<method name="suspend()V" />
-	</class>
-	<class name="java/lang/ThreadLocal" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="get()Ljava/lang/Object;" />
-		<method name="initialValue()Ljava/lang/Object;" />
-		<method name="remove()V" />
-		<method name="set(Ljava/lang/Object;)V" />
-	</class>
-	<class name="java/lang/Throwable" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;ZZ)V" since="19" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-		<method name="addSuppressed(Ljava/lang/Throwable;)V" since="19" />
-		<method name="fillInStackTrace()Ljava/lang/Throwable;" />
-		<method name="getCause()Ljava/lang/Throwable;" />
-		<method name="getLocalizedMessage()Ljava/lang/String;" />
-		<method name="getMessage()Ljava/lang/String;" />
-		<method name="getStackTrace()[Ljava/lang/StackTraceElement;" />
-		<method name="getSuppressed()[Ljava/lang/Throwable;" since="19" />
-		<method name="initCause(Ljava/lang/Throwable;)Ljava/lang/Throwable;" />
-		<method name="printStackTrace()V" />
-		<method name="printStackTrace(Ljava/io/PrintStream;)V" />
-		<method name="printStackTrace(Ljava/io/PrintWriter;)V" />
-		<method name="setStackTrace([Ljava/lang/StackTraceElement;)V" />
-	</class>
-	<class name="java/lang/TypeNotPresentException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="typeName()Ljava/lang/String;" />
-	</class>
-	<class name="java/lang/UnknownError" since="1">
-		<extends name="java/lang/VirtualMachineError" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/UnsatisfiedLinkError" since="1">
-		<extends name="java/lang/LinkageError" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/UnsupportedClassVersionError" since="1">
-		<extends name="java/lang/ClassFormatError" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/UnsupportedOperationException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/lang/VerifyError" since="1">
-		<extends name="java/lang/LinkageError" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/VirtualMachineError" since="1">
-		<extends name="java/lang/Error" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/Void" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="TYPE" />
-	</class>
-	<class name="java/lang/annotation/Annotation" since="1">
-		<extends name="java/lang/Object" />
-		<method name="annotationType()Ljava/lang/Class;" />
-	</class>
-	<class name="java/lang/annotation/AnnotationFormatError" since="1">
-		<extends name="java/lang/Error" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/lang/annotation/AnnotationTypeMismatchException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>(Ljava/lang/reflect/Method;Ljava/lang/String;)V" />
-		<method name="element()Ljava/lang/reflect/Method;" />
-		<method name="foundType()Ljava/lang/String;" />
-	</class>
-	<class name="java/lang/annotation/Documented" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/annotation/Annotation" />
-	</class>
-	<class name="java/lang/annotation/ElementType" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Ljava/lang/annotation/ElementType;" />
-		<method name="values()[Ljava/lang/annotation/ElementType;" />
-		<field name="ANNOTATION_TYPE" />
-		<field name="CONSTRUCTOR" />
-		<field name="FIELD" />
-		<field name="LOCAL_VARIABLE" />
-		<field name="METHOD" />
-		<field name="PACKAGE" />
-		<field name="PARAMETER" />
-		<field name="TYPE" />
-	</class>
-	<class name="java/lang/annotation/IncompleteAnnotationException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>(Ljava/lang/Class;Ljava/lang/String;)V" />
-		<method name="annotationType()Ljava/lang/Class;" />
-		<method name="elementName()Ljava/lang/String;" />
-	</class>
-	<class name="java/lang/annotation/Inherited" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/annotation/Annotation" />
-	</class>
-	<class name="java/lang/annotation/Retention" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/annotation/Annotation" />
-		<method name="value()Ljava/lang/annotation/RetentionPolicy;" />
-	</class>
-	<class name="java/lang/annotation/RetentionPolicy" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Ljava/lang/annotation/RetentionPolicy;" />
-		<method name="values()[Ljava/lang/annotation/RetentionPolicy;" />
-		<field name="CLASS" />
-		<field name="RUNTIME" />
-		<field name="SOURCE" />
-	</class>
-	<class name="java/lang/annotation/Target" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/annotation/Annotation" />
-		<method name="value()[Ljava/lang/annotation/ElementType;" />
-	</class>
-	<class name="java/lang/ref/PhantomReference" since="1">
-		<extends name="java/lang/ref/Reference" />
-		<method name="&lt;init>(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V" />
-	</class>
-	<class name="java/lang/ref/Reference" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="clear()V" />
-		<method name="enqueue()Z" />
-		<method name="get()Ljava/lang/Object;" />
-		<method name="isEnqueued()Z" />
-	</class>
-	<class name="java/lang/ref/ReferenceQueue" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="poll()Ljava/lang/ref/Reference;" />
-		<method name="remove()Ljava/lang/ref/Reference;" />
-		<method name="remove(J)Ljava/lang/ref/Reference;" />
-	</class>
-	<class name="java/lang/ref/SoftReference" since="1">
-		<extends name="java/lang/ref/Reference" />
-		<method name="&lt;init>(Ljava/lang/Object;)V" />
-		<method name="&lt;init>(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V" />
-	</class>
-	<class name="java/lang/ref/WeakReference" since="1">
-		<extends name="java/lang/ref/Reference" />
-		<method name="&lt;init>(Ljava/lang/Object;)V" />
-		<method name="&lt;init>(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V" />
-	</class>
-	<class name="java/lang/reflect/AccessibleObject" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/reflect/AnnotatedElement" />
-		<method name="&lt;init>()V" />
-		<method name="isAccessible()Z" />
-		<method name="setAccessible(Z)V" />
-		<method name="setAccessible([Ljava/lang/reflect/AccessibleObject;Z)V" />
-	</class>
-	<class name="java/lang/reflect/AnnotatedElement" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;" />
-		<method name="getAnnotations()[Ljava/lang/annotation/Annotation;" />
-		<method name="getDeclaredAnnotations()[Ljava/lang/annotation/Annotation;" />
-		<method name="isAnnotationPresent(Ljava/lang/Class;)Z" />
-	</class>
-	<class name="java/lang/reflect/Array" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="get(Ljava/lang/Object;I)Ljava/lang/Object;" />
-		<method name="getBoolean(Ljava/lang/Object;I)Z" />
-		<method name="getByte(Ljava/lang/Object;I)B" />
-		<method name="getChar(Ljava/lang/Object;I)C" />
-		<method name="getDouble(Ljava/lang/Object;I)D" />
-		<method name="getFloat(Ljava/lang/Object;I)F" />
-		<method name="getInt(Ljava/lang/Object;I)I" />
-		<method name="getLength(Ljava/lang/Object;)I" />
-		<method name="getLong(Ljava/lang/Object;I)J" />
-		<method name="getShort(Ljava/lang/Object;I)S" />
-		<method name="newInstance(Ljava/lang/Class;I)Ljava/lang/Object;" />
-		<method name="newInstance(Ljava/lang/Class;[I)Ljava/lang/Object;" />
-		<method name="set(Ljava/lang/Object;ILjava/lang/Object;)V" />
-		<method name="setBoolean(Ljava/lang/Object;IZ)V" />
-		<method name="setByte(Ljava/lang/Object;IB)V" />
-		<method name="setChar(Ljava/lang/Object;IC)V" />
-		<method name="setDouble(Ljava/lang/Object;ID)V" />
-		<method name="setFloat(Ljava/lang/Object;IF)V" />
-		<method name="setInt(Ljava/lang/Object;II)V" />
-		<method name="setLong(Ljava/lang/Object;IJ)V" />
-		<method name="setShort(Ljava/lang/Object;IS)V" />
-	</class>
-	<class name="java/lang/reflect/Constructor" since="1">
-		<extends name="java/lang/reflect/AccessibleObject" />
-		<implements name="java/lang/reflect/GenericDeclaration" />
-		<implements name="java/lang/reflect/Member" />
-		<method name="&lt;init>()V" />
-		<method name="getExceptionTypes()[Ljava/lang/Class;" />
-		<method name="getGenericExceptionTypes()[Ljava/lang/reflect/Type;" />
-		<method name="getGenericParameterTypes()[Ljava/lang/reflect/Type;" />
-		<method name="getParameterAnnotations()[[Ljava/lang/annotation/Annotation;" />
-		<method name="getParameterTypes()[Ljava/lang/Class;" />
-		<method name="isVarArgs()Z" />
-		<method name="newInstance([Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="toGenericString()Ljava/lang/String;" />
-	</class>
-	<class name="java/lang/reflect/Field" since="1">
-		<extends name="java/lang/reflect/AccessibleObject" />
-		<implements name="java/lang/reflect/Member" />
-		<method name="&lt;init>()V" />
-		<method name="get(Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="getBoolean(Ljava/lang/Object;)Z" />
-		<method name="getByte(Ljava/lang/Object;)B" />
-		<method name="getChar(Ljava/lang/Object;)C" />
-		<method name="getDouble(Ljava/lang/Object;)D" />
-		<method name="getFloat(Ljava/lang/Object;)F" />
-		<method name="getGenericType()Ljava/lang/reflect/Type;" />
-		<method name="getInt(Ljava/lang/Object;)I" />
-		<method name="getLong(Ljava/lang/Object;)J" />
-		<method name="getShort(Ljava/lang/Object;)S" />
-		<method name="getType()Ljava/lang/Class;" />
-		<method name="isEnumConstant()Z" />
-		<method name="set(Ljava/lang/Object;Ljava/lang/Object;)V" />
-		<method name="setBoolean(Ljava/lang/Object;Z)V" />
-		<method name="setByte(Ljava/lang/Object;B)V" />
-		<method name="setChar(Ljava/lang/Object;C)V" />
-		<method name="setDouble(Ljava/lang/Object;D)V" />
-		<method name="setFloat(Ljava/lang/Object;F)V" />
-		<method name="setInt(Ljava/lang/Object;I)V" />
-		<method name="setLong(Ljava/lang/Object;J)V" />
-		<method name="setShort(Ljava/lang/Object;S)V" />
-		<method name="toGenericString()Ljava/lang/String;" />
-	</class>
-	<class name="java/lang/reflect/GenericArrayType" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/reflect/Type" />
-		<method name="getGenericComponentType()Ljava/lang/reflect/Type;" />
-	</class>
-	<class name="java/lang/reflect/GenericDeclaration" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getTypeParameters()[Ljava/lang/reflect/TypeVariable;" />
-	</class>
-	<class name="java/lang/reflect/GenericSignatureFormatError" since="1">
-		<extends name="java/lang/ClassFormatError" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/lang/reflect/InvocationHandler" since="1">
-		<extends name="java/lang/Object" />
-		<method name="invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;" />
-	</class>
-	<class name="java/lang/reflect/InvocationTargetException" since="1">
-		<extends name="java/lang/Exception" />
-		<extends name="java/lang/ReflectiveOperationException" since="19" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;Ljava/lang/String;)V" />
-		<method name="getTargetException()Ljava/lang/Throwable;" />
-	</class>
-	<class name="java/lang/reflect/MalformedParameterizedTypeException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/lang/reflect/Member" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getDeclaringClass()Ljava/lang/Class;" />
-		<method name="getModifiers()I" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="isSynthetic()Z" />
-		<field name="DECLARED" />
-		<field name="PUBLIC" />
-	</class>
-	<class name="java/lang/reflect/Method" since="1">
-		<extends name="java/lang/reflect/AccessibleObject" />
-		<implements name="java/lang/reflect/GenericDeclaration" />
-		<implements name="java/lang/reflect/Member" />
-		<method name="&lt;init>()V" />
-		<method name="getDefaultValue()Ljava/lang/Object;" />
-		<method name="getExceptionTypes()[Ljava/lang/Class;" />
-		<method name="getGenericExceptionTypes()[Ljava/lang/reflect/Type;" />
-		<method name="getGenericParameterTypes()[Ljava/lang/reflect/Type;" />
-		<method name="getGenericReturnType()Ljava/lang/reflect/Type;" />
-		<method name="getParameterAnnotations()[[Ljava/lang/annotation/Annotation;" />
-		<method name="getParameterTypes()[Ljava/lang/Class;" />
-		<method name="getReturnType()Ljava/lang/Class;" />
-		<method name="invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="isBridge()Z" />
-		<method name="isVarArgs()Z" />
-		<method name="toGenericString()Ljava/lang/String;" />
-	</class>
-	<class name="java/lang/reflect/Modifier" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="classModifiers()I" since="19" />
-		<method name="constructorModifiers()I" since="19" />
-		<method name="fieldModifiers()I" since="19" />
-		<method name="interfaceModifiers()I" since="19" />
-		<method name="isAbstract(I)Z" />
-		<method name="isFinal(I)Z" />
-		<method name="isInterface(I)Z" />
-		<method name="isNative(I)Z" />
-		<method name="isPrivate(I)Z" />
-		<method name="isProtected(I)Z" />
-		<method name="isPublic(I)Z" />
-		<method name="isStatic(I)Z" />
-		<method name="isStrict(I)Z" />
-		<method name="isSynchronized(I)Z" />
-		<method name="isTransient(I)Z" />
-		<method name="isVolatile(I)Z" />
-		<method name="methodModifiers()I" since="19" />
-		<method name="toString(I)Ljava/lang/String;" />
-		<field name="ABSTRACT" />
-		<field name="FINAL" />
-		<field name="INTERFACE" />
-		<field name="NATIVE" />
-		<field name="PRIVATE" />
-		<field name="PROTECTED" />
-		<field name="PUBLIC" />
-		<field name="STATIC" />
-		<field name="STRICT" />
-		<field name="SYNCHRONIZED" />
-		<field name="TRANSIENT" />
-		<field name="VOLATILE" />
-	</class>
-	<class name="java/lang/reflect/ParameterizedType" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/reflect/Type" />
-		<method name="getActualTypeArguments()[Ljava/lang/reflect/Type;" />
-		<method name="getOwnerType()Ljava/lang/reflect/Type;" />
-		<method name="getRawType()Ljava/lang/reflect/Type;" />
-	</class>
-	<class name="java/lang/reflect/Proxy" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(Ljava/lang/reflect/InvocationHandler;)V" />
-		<method name="getInvocationHandler(Ljava/lang/Object;)Ljava/lang/reflect/InvocationHandler;" />
-		<method name="getProxyClass(Ljava/lang/ClassLoader;[Ljava/lang/Class;)Ljava/lang/Class;" />
-		<method name="isProxyClass(Ljava/lang/Class;)Z" />
-		<method name="newProxyInstance(Ljava/lang/ClassLoader;[Ljava/lang/Class;Ljava/lang/reflect/InvocationHandler;)Ljava/lang/Object;" />
-		<field name="h" />
-	</class>
-	<class name="java/lang/reflect/ReflectPermission" since="1">
-		<extends name="java/security/BasicPermission" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-	</class>
-	<class name="java/lang/reflect/Type" since="1">
-		<extends name="java/lang/Object" />
-	</class>
-	<class name="java/lang/reflect/TypeVariable" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/reflect/Type" />
-		<method name="getBounds()[Ljava/lang/reflect/Type;" />
-		<method name="getGenericDeclaration()Ljava/lang/reflect/GenericDeclaration;" />
-		<method name="getName()Ljava/lang/String;" />
-	</class>
-	<class name="java/lang/reflect/UndeclaredThrowableException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;Ljava/lang/String;)V" />
-		<method name="getUndeclaredThrowable()Ljava/lang/Throwable;" />
-	</class>
-	<class name="java/lang/reflect/WildcardType" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/reflect/Type" />
-		<method name="getLowerBounds()[Ljava/lang/reflect/Type;" />
-		<method name="getUpperBounds()[Ljava/lang/reflect/Type;" />
-	</class>
-	<class name="java/math/BigDecimal" since="1">
-		<extends name="java/lang/Number" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Comparable" />
-		<method name="&lt;init>(D)V" />
-		<method name="&lt;init>(DLjava/math/MathContext;)V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(ILjava/math/MathContext;)V" />
-		<method name="&lt;init>(J)V" />
-		<method name="&lt;init>(JLjava/math/MathContext;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/math/MathContext;)V" />
-		<method name="&lt;init>(Ljava/math/BigInteger;)V" />
-		<method name="&lt;init>(Ljava/math/BigInteger;I)V" />
-		<method name="&lt;init>(Ljava/math/BigInteger;ILjava/math/MathContext;)V" />
-		<method name="&lt;init>(Ljava/math/BigInteger;Ljava/math/MathContext;)V" />
-		<method name="&lt;init>([C)V" />
-		<method name="&lt;init>([CII)V" />
-		<method name="&lt;init>([CIILjava/math/MathContext;)V" />
-		<method name="&lt;init>([CLjava/math/MathContext;)V" />
-		<method name="abs()Ljava/math/BigDecimal;" />
-		<method name="abs(Ljava/math/MathContext;)Ljava/math/BigDecimal;" />
-		<method name="add(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;" />
-		<method name="add(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;" />
-		<method name="byteValueExact()B" />
-		<method name="compareTo(Ljava/math/BigDecimal;)I" />
-		<method name="divide(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;" />
-		<method name="divide(Ljava/math/BigDecimal;I)Ljava/math/BigDecimal;" />
-		<method name="divide(Ljava/math/BigDecimal;II)Ljava/math/BigDecimal;" />
-		<method name="divide(Ljava/math/BigDecimal;ILjava/math/RoundingMode;)Ljava/math/BigDecimal;" />
-		<method name="divide(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;" />
-		<method name="divide(Ljava/math/BigDecimal;Ljava/math/RoundingMode;)Ljava/math/BigDecimal;" />
-		<method name="divideAndRemainder(Ljava/math/BigDecimal;)[Ljava/math/BigDecimal;" />
-		<method name="divideAndRemainder(Ljava/math/BigDecimal;Ljava/math/MathContext;)[Ljava/math/BigDecimal;" />
-		<method name="divideToIntegralValue(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;" />
-		<method name="divideToIntegralValue(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;" />
-		<method name="intValueExact()I" />
-		<method name="longValueExact()J" />
-		<method name="max(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;" />
-		<method name="min(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;" />
-		<method name="movePointLeft(I)Ljava/math/BigDecimal;" />
-		<method name="movePointRight(I)Ljava/math/BigDecimal;" />
-		<method name="multiply(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;" />
-		<method name="multiply(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;" />
-		<method name="negate()Ljava/math/BigDecimal;" />
-		<method name="negate(Ljava/math/MathContext;)Ljava/math/BigDecimal;" />
-		<method name="plus()Ljava/math/BigDecimal;" />
-		<method name="plus(Ljava/math/MathContext;)Ljava/math/BigDecimal;" />
-		<method name="pow(I)Ljava/math/BigDecimal;" />
-		<method name="pow(ILjava/math/MathContext;)Ljava/math/BigDecimal;" />
-		<method name="precision()I" />
-		<method name="remainder(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;" />
-		<method name="remainder(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;" />
-		<method name="round(Ljava/math/MathContext;)Ljava/math/BigDecimal;" />
-		<method name="scale()I" />
-		<method name="scaleByPowerOfTen(I)Ljava/math/BigDecimal;" />
-		<method name="setScale(I)Ljava/math/BigDecimal;" />
-		<method name="setScale(II)Ljava/math/BigDecimal;" />
-		<method name="setScale(ILjava/math/RoundingMode;)Ljava/math/BigDecimal;" />
-		<method name="shortValueExact()S" />
-		<method name="signum()I" />
-		<method name="stripTrailingZeros()Ljava/math/BigDecimal;" />
-		<method name="subtract(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;" />
-		<method name="subtract(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;" />
-		<method name="toBigInteger()Ljava/math/BigInteger;" />
-		<method name="toBigIntegerExact()Ljava/math/BigInteger;" />
-		<method name="toEngineeringString()Ljava/lang/String;" />
-		<method name="toPlainString()Ljava/lang/String;" />
-		<method name="ulp()Ljava/math/BigDecimal;" />
-		<method name="unscaledValue()Ljava/math/BigInteger;" />
-		<method name="valueOf(D)Ljava/math/BigDecimal;" />
-		<method name="valueOf(J)Ljava/math/BigDecimal;" />
-		<method name="valueOf(JI)Ljava/math/BigDecimal;" />
-		<field name="ONE" />
-		<field name="ROUND_CEILING" />
-		<field name="ROUND_DOWN" />
-		<field name="ROUND_FLOOR" />
-		<field name="ROUND_HALF_DOWN" />
-		<field name="ROUND_HALF_EVEN" />
-		<field name="ROUND_HALF_UP" />
-		<field name="ROUND_UNNECESSARY" />
-		<field name="ROUND_UP" />
-		<field name="TEN" />
-		<field name="ZERO" />
-	</class>
-	<class name="java/math/BigInteger" since="1">
-		<extends name="java/lang/Number" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Comparable" />
-		<method name="&lt;init>(IILjava/util/Random;)V" />
-		<method name="&lt;init>(ILjava/util/Random;)V" />
-		<method name="&lt;init>(I[B)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;I)V" />
-		<method name="&lt;init>([B)V" />
-		<method name="abs()Ljava/math/BigInteger;" />
-		<method name="add(Ljava/math/BigInteger;)Ljava/math/BigInteger;" />
-		<method name="and(Ljava/math/BigInteger;)Ljava/math/BigInteger;" />
-		<method name="andNot(Ljava/math/BigInteger;)Ljava/math/BigInteger;" />
-		<method name="bitCount()I" />
-		<method name="bitLength()I" />
-		<method name="clearBit(I)Ljava/math/BigInteger;" />
-		<method name="compareTo(Ljava/math/BigInteger;)I" />
-		<method name="divide(Ljava/math/BigInteger;)Ljava/math/BigInteger;" />
-		<method name="divideAndRemainder(Ljava/math/BigInteger;)[Ljava/math/BigInteger;" />
-		<method name="flipBit(I)Ljava/math/BigInteger;" />
-		<method name="gcd(Ljava/math/BigInteger;)Ljava/math/BigInteger;" />
-		<method name="getLowestSetBit()I" />
-		<method name="isProbablePrime(I)Z" />
-		<method name="max(Ljava/math/BigInteger;)Ljava/math/BigInteger;" />
-		<method name="min(Ljava/math/BigInteger;)Ljava/math/BigInteger;" />
-		<method name="mod(Ljava/math/BigInteger;)Ljava/math/BigInteger;" />
-		<method name="modInverse(Ljava/math/BigInteger;)Ljava/math/BigInteger;" />
-		<method name="modPow(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;" />
-		<method name="multiply(Ljava/math/BigInteger;)Ljava/math/BigInteger;" />
-		<method name="negate()Ljava/math/BigInteger;" />
-		<method name="nextProbablePrime()Ljava/math/BigInteger;" />
-		<method name="not()Ljava/math/BigInteger;" />
-		<method name="or(Ljava/math/BigInteger;)Ljava/math/BigInteger;" />
-		<method name="pow(I)Ljava/math/BigInteger;" />
-		<method name="probablePrime(ILjava/util/Random;)Ljava/math/BigInteger;" />
-		<method name="remainder(Ljava/math/BigInteger;)Ljava/math/BigInteger;" />
-		<method name="setBit(I)Ljava/math/BigInteger;" />
-		<method name="shiftLeft(I)Ljava/math/BigInteger;" />
-		<method name="shiftRight(I)Ljava/math/BigInteger;" />
-		<method name="signum()I" />
-		<method name="subtract(Ljava/math/BigInteger;)Ljava/math/BigInteger;" />
-		<method name="testBit(I)Z" />
-		<method name="toByteArray()[B" />
-		<method name="toString(I)Ljava/lang/String;" />
-		<method name="valueOf(J)Ljava/math/BigInteger;" />
-		<method name="xor(Ljava/math/BigInteger;)Ljava/math/BigInteger;" />
-		<field name="ONE" />
-		<field name="TEN" />
-		<field name="ZERO" />
-	</class>
-	<class name="java/math/MathContext" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(ILjava/math/RoundingMode;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="getPrecision()I" />
-		<method name="getRoundingMode()Ljava/math/RoundingMode;" />
-		<field name="DECIMAL128" />
-		<field name="DECIMAL32" />
-		<field name="DECIMAL64" />
-		<field name="UNLIMITED" />
-	</class>
-	<class name="java/math/RoundingMode" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(I)Ljava/math/RoundingMode;" />
-		<method name="valueOf(Ljava/lang/String;)Ljava/math/RoundingMode;" />
-		<method name="values()[Ljava/math/RoundingMode;" />
-		<field name="CEILING" />
-		<field name="DOWN" />
-		<field name="FLOOR" />
-		<field name="HALF_DOWN" />
-		<field name="HALF_EVEN" />
-		<field name="HALF_UP" />
-		<field name="UNNECESSARY" />
-		<field name="UP" />
-	</class>
-	<class name="java/net/Authenticator" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getPasswordAuthentication()Ljava/net/PasswordAuthentication;" />
-		<method name="getRequestingHost()Ljava/lang/String;" />
-		<method name="getRequestingPort()I" />
-		<method name="getRequestingPrompt()Ljava/lang/String;" />
-		<method name="getRequestingProtocol()Ljava/lang/String;" />
-		<method name="getRequestingScheme()Ljava/lang/String;" />
-		<method name="getRequestingSite()Ljava/net/InetAddress;" />
-		<method name="getRequestingURL()Ljava/net/URL;" />
-		<method name="getRequestorType()Ljava/net/Authenticator$RequestorType;" />
-		<method name="requestPasswordAuthentication(Ljava/lang/String;Ljava/net/InetAddress;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/net/PasswordAuthentication;" />
-		<method name="requestPasswordAuthentication(Ljava/lang/String;Ljava/net/InetAddress;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/net/URL;Ljava/net/Authenticator$RequestorType;)Ljava/net/PasswordAuthentication;" />
-		<method name="requestPasswordAuthentication(Ljava/net/InetAddress;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/net/PasswordAuthentication;" />
-		<method name="setDefault(Ljava/net/Authenticator;)V" />
-	</class>
-	<class name="java/net/Authenticator$RequestorType" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Ljava/net/Authenticator$RequestorType;" />
-		<method name="values()[Ljava/net/Authenticator$RequestorType;" />
-		<field name="PROXY" />
-		<field name="SERVER" />
-	</class>
-	<class name="java/net/BindException" since="1">
-		<extends name="java/net/SocketException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/net/CacheRequest" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="abort()V" />
-		<method name="getBody()Ljava/io/OutputStream;" />
-	</class>
-	<class name="java/net/CacheResponse" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getBody()Ljava/io/InputStream;" />
-		<method name="getHeaders()Ljava/util/Map;" />
-	</class>
-	<class name="java/net/ConnectException" since="1">
-		<extends name="java/net/SocketException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/net/ContentHandler" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getContent(Ljava/net/URLConnection;)Ljava/lang/Object;" />
-		<method name="getContent(Ljava/net/URLConnection;[Ljava/lang/Class;)Ljava/lang/Object;" />
-	</class>
-	<class name="java/net/ContentHandlerFactory" since="1">
-		<extends name="java/lang/Object" />
-		<method name="createContentHandler(Ljava/lang/String;)Ljava/net/ContentHandler;" />
-	</class>
-	<class name="java/net/CookieHandler" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="get(Ljava/net/URI;Ljava/util/Map;)Ljava/util/Map;" />
-		<method name="getDefault()Ljava/net/CookieHandler;" />
-		<method name="put(Ljava/net/URI;Ljava/util/Map;)V" />
-		<method name="setDefault(Ljava/net/CookieHandler;)V" />
-	</class>
-	<class name="java/net/CookieManager" since="9">
-		<extends name="java/net/CookieHandler" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/net/CookieStore;Ljava/net/CookiePolicy;)V" />
-		<method name="getCookieStore()Ljava/net/CookieStore;" />
-		<method name="setCookiePolicy(Ljava/net/CookiePolicy;)V" />
-	</class>
-	<class name="java/net/CookiePolicy" since="9">
-		<extends name="java/lang/Object" />
-		<method name="shouldAccept(Ljava/net/URI;Ljava/net/HttpCookie;)Z" />
-		<field name="ACCEPT_ALL" />
-		<field name="ACCEPT_NONE" />
-		<field name="ACCEPT_ORIGINAL_SERVER" />
-	</class>
-	<class name="java/net/CookieStore" since="9">
-		<extends name="java/lang/Object" />
-		<method name="add(Ljava/net/URI;Ljava/net/HttpCookie;)V" />
-		<method name="get(Ljava/net/URI;)Ljava/util/List;" />
-		<method name="getCookies()Ljava/util/List;" />
-		<method name="getURIs()Ljava/util/List;" />
-		<method name="remove(Ljava/net/URI;Ljava/net/HttpCookie;)Z" />
-		<method name="removeAll()Z" />
-	</class>
-	<class name="java/net/DatagramPacket" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>([BI)V" />
-		<method name="&lt;init>([BII)V" />
-		<method name="&lt;init>([BIILjava/net/InetAddress;I)V" />
-		<method name="&lt;init>([BIILjava/net/SocketAddress;)V" />
-		<method name="&lt;init>([BILjava/net/InetAddress;I)V" />
-		<method name="&lt;init>([BILjava/net/SocketAddress;)V" />
-		<method name="getAddress()Ljava/net/InetAddress;" />
-		<method name="getData()[B" />
-		<method name="getLength()I" />
-		<method name="getOffset()I" />
-		<method name="getPort()I" />
-		<method name="getSocketAddress()Ljava/net/SocketAddress;" />
-		<method name="setAddress(Ljava/net/InetAddress;)V" />
-		<method name="setData([B)V" />
-		<method name="setData([BII)V" />
-		<method name="setLength(I)V" />
-		<method name="setPort(I)V" />
-		<method name="setSocketAddress(Ljava/net/SocketAddress;)V" />
-	</class>
-	<class name="java/net/DatagramSocket" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Closeable" since="19" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(ILjava/net/InetAddress;)V" />
-		<method name="&lt;init>(Ljava/net/DatagramSocketImpl;)V" />
-		<method name="&lt;init>(Ljava/net/SocketAddress;)V" />
-		<method name="bind(Ljava/net/SocketAddress;)V" />
-		<method name="close()V" />
-		<method name="connect(Ljava/net/InetAddress;I)V" />
-		<method name="connect(Ljava/net/SocketAddress;)V" />
-		<method name="disconnect()V" />
-		<method name="getBroadcast()Z" />
-		<method name="getChannel()Ljava/nio/channels/DatagramChannel;" />
-		<method name="getInetAddress()Ljava/net/InetAddress;" />
-		<method name="getLocalAddress()Ljava/net/InetAddress;" />
-		<method name="getLocalPort()I" />
-		<method name="getLocalSocketAddress()Ljava/net/SocketAddress;" />
-		<method name="getPort()I" />
-		<method name="getReceiveBufferSize()I" />
-		<method name="getRemoteSocketAddress()Ljava/net/SocketAddress;" />
-		<method name="getReuseAddress()Z" />
-		<method name="getSendBufferSize()I" />
-		<method name="getSoTimeout()I" />
-		<method name="getTrafficClass()I" />
-		<method name="isBound()Z" />
-		<method name="isClosed()Z" />
-		<method name="isConnected()Z" />
-		<method name="receive(Ljava/net/DatagramPacket;)V" />
-		<method name="send(Ljava/net/DatagramPacket;)V" />
-		<method name="setBroadcast(Z)V" />
-		<method name="setDatagramSocketImplFactory(Ljava/net/DatagramSocketImplFactory;)V" />
-		<method name="setReceiveBufferSize(I)V" />
-		<method name="setReuseAddress(Z)V" />
-		<method name="setSendBufferSize(I)V" />
-		<method name="setSoTimeout(I)V" />
-		<method name="setTrafficClass(I)V" />
-	</class>
-	<class name="java/net/DatagramSocketImpl" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/net/SocketOptions" />
-		<method name="&lt;init>()V" />
-		<method name="bind(ILjava/net/InetAddress;)V" />
-		<method name="close()V" />
-		<method name="connect(Ljava/net/InetAddress;I)V" />
-		<method name="create()V" />
-		<method name="disconnect()V" />
-		<method name="getFileDescriptor()Ljava/io/FileDescriptor;" />
-		<method name="getLocalPort()I" />
-		<method name="getTTL()B" />
-		<method name="getTimeToLive()I" />
-		<method name="join(Ljava/net/InetAddress;)V" />
-		<method name="joinGroup(Ljava/net/SocketAddress;Ljava/net/NetworkInterface;)V" />
-		<method name="leave(Ljava/net/InetAddress;)V" />
-		<method name="leaveGroup(Ljava/net/SocketAddress;Ljava/net/NetworkInterface;)V" />
-		<method name="peek(Ljava/net/InetAddress;)I" />
-		<method name="peekData(Ljava/net/DatagramPacket;)I" />
-		<method name="receive(Ljava/net/DatagramPacket;)V" />
-		<method name="send(Ljava/net/DatagramPacket;)V" />
-		<method name="setTTL(B)V" />
-		<method name="setTimeToLive(I)V" />
-		<field name="fd" />
-		<field name="localPort" />
-	</class>
-	<class name="java/net/DatagramSocketImplFactory" since="1">
-		<extends name="java/lang/Object" />
-		<method name="createDatagramSocketImpl()Ljava/net/DatagramSocketImpl;" />
-	</class>
-	<class name="java/net/FileNameMap" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getContentTypeFor(Ljava/lang/String;)Ljava/lang/String;" />
-	</class>
-	<class name="java/net/HttpCookie" since="9">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="domainMatches(Ljava/lang/String;Ljava/lang/String;)Z" />
-		<method name="getComment()Ljava/lang/String;" />
-		<method name="getCommentURL()Ljava/lang/String;" />
-		<method name="getDiscard()Z" />
-		<method name="getDomain()Ljava/lang/String;" />
-		<method name="getMaxAge()J" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getPath()Ljava/lang/String;" />
-		<method name="getPortlist()Ljava/lang/String;" />
-		<method name="getSecure()Z" />
-		<method name="getValue()Ljava/lang/String;" />
-		<method name="getVersion()I" />
-		<method name="hasExpired()Z" />
-		<method name="parse(Ljava/lang/String;)Ljava/util/List;" />
-		<method name="setComment(Ljava/lang/String;)V" />
-		<method name="setCommentURL(Ljava/lang/String;)V" />
-		<method name="setDiscard(Z)V" />
-		<method name="setDomain(Ljava/lang/String;)V" />
-		<method name="setMaxAge(J)V" />
-		<method name="setPath(Ljava/lang/String;)V" />
-		<method name="setPortlist(Ljava/lang/String;)V" />
-		<method name="setSecure(Z)V" />
-		<method name="setValue(Ljava/lang/String;)V" />
-		<method name="setVersion(I)V" />
-	</class>
-	<class name="java/net/HttpRetryException" since="1">
-		<extends name="java/io/IOException" />
-		<method name="&lt;init>(Ljava/lang/String;I)V" />
-		<method name="&lt;init>(Ljava/lang/String;ILjava/lang/String;)V" />
-		<method name="getLocation()Ljava/lang/String;" />
-		<method name="getReason()Ljava/lang/String;" />
-		<method name="responseCode()I" />
-	</class>
-	<class name="java/net/HttpURLConnection" since="1">
-		<extends name="java/net/URLConnection" />
-		<method name="&lt;init>(Ljava/net/URL;)V" />
-		<method name="disconnect()V" />
-		<method name="getErrorStream()Ljava/io/InputStream;" />
-		<method name="getFollowRedirects()Z" />
-		<method name="getInstanceFollowRedirects()Z" />
-		<method name="getRequestMethod()Ljava/lang/String;" />
-		<method name="getResponseCode()I" />
-		<method name="getResponseMessage()Ljava/lang/String;" />
-		<method name="setChunkedStreamingMode(I)V" />
-		<method name="setFixedLengthStreamingMode(I)V" />
-		<method name="setFixedLengthStreamingMode(J)V" since="19" />
-		<method name="setFollowRedirects(Z)V" />
-		<method name="setInstanceFollowRedirects(Z)V" />
-		<method name="setRequestMethod(Ljava/lang/String;)V" />
-		<method name="usingProxy()Z" />
-		<field name="HTTP_ACCEPTED" />
-		<field name="HTTP_BAD_GATEWAY" />
-		<field name="HTTP_BAD_METHOD" />
-		<field name="HTTP_BAD_REQUEST" />
-		<field name="HTTP_CLIENT_TIMEOUT" />
-		<field name="HTTP_CONFLICT" />
-		<field name="HTTP_CREATED" />
-		<field name="HTTP_ENTITY_TOO_LARGE" />
-		<field name="HTTP_FORBIDDEN" />
-		<field name="HTTP_GATEWAY_TIMEOUT" />
-		<field name="HTTP_GONE" />
-		<field name="HTTP_INTERNAL_ERROR" />
-		<field name="HTTP_LENGTH_REQUIRED" />
-		<field name="HTTP_MOVED_PERM" />
-		<field name="HTTP_MOVED_TEMP" />
-		<field name="HTTP_MULT_CHOICE" />
-		<field name="HTTP_NOT_ACCEPTABLE" />
-		<field name="HTTP_NOT_AUTHORITATIVE" />
-		<field name="HTTP_NOT_FOUND" />
-		<field name="HTTP_NOT_IMPLEMENTED" />
-		<field name="HTTP_NOT_MODIFIED" />
-		<field name="HTTP_NO_CONTENT" />
-		<field name="HTTP_OK" />
-		<field name="HTTP_PARTIAL" />
-		<field name="HTTP_PAYMENT_REQUIRED" />
-		<field name="HTTP_PRECON_FAILED" />
-		<field name="HTTP_PROXY_AUTH" />
-		<field name="HTTP_REQ_TOO_LONG" />
-		<field name="HTTP_RESET" />
-		<field name="HTTP_SEE_OTHER" />
-		<field name="HTTP_SERVER_ERROR" />
-		<field name="HTTP_UNAUTHORIZED" />
-		<field name="HTTP_UNAVAILABLE" />
-		<field name="HTTP_UNSUPPORTED_TYPE" />
-		<field name="HTTP_USE_PROXY" />
-		<field name="HTTP_VERSION" />
-		<field name="chunkLength" />
-		<field name="fixedContentLength" />
-		<field name="fixedContentLengthLong" since="19" />
-		<field name="instanceFollowRedirects" />
-		<field name="method" />
-		<field name="responseCode" />
-		<field name="responseMessage" />
-	</class>
-	<class name="java/net/IDN" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="toASCII(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="toASCII(Ljava/lang/String;I)Ljava/lang/String;" />
-		<method name="toUnicode(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="toUnicode(Ljava/lang/String;I)Ljava/lang/String;" />
-		<field name="ALLOW_UNASSIGNED" />
-		<field name="USE_STD3_ASCII_RULES" />
-	</class>
-	<class name="java/net/Inet4Address" since="1">
-		<extends name="java/net/InetAddress" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/net/Inet6Address" since="1">
-		<extends name="java/net/InetAddress" />
-		<method name="&lt;init>()V" />
-		<method name="getByAddress(Ljava/lang/String;[BI)Ljava/net/Inet6Address;" />
-		<method name="getByAddress(Ljava/lang/String;[BLjava/net/NetworkInterface;)Ljava/net/Inet6Address;" />
-		<method name="getScopeId()I" />
-		<method name="getScopedInterface()Ljava/net/NetworkInterface;" />
-		<method name="isIPv4CompatibleAddress()Z" />
-	</class>
-	<class name="java/net/InetAddress" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>()V" />
-		<method name="getAddress()[B" />
-		<method name="getAllByName(Ljava/lang/String;)[Ljava/net/InetAddress;" />
-		<method name="getByAddress(Ljava/lang/String;[B)Ljava/net/InetAddress;" />
-		<method name="getByAddress([B)Ljava/net/InetAddress;" />
-		<method name="getByName(Ljava/lang/String;)Ljava/net/InetAddress;" />
-		<method name="getCanonicalHostName()Ljava/lang/String;" />
-		<method name="getHostAddress()Ljava/lang/String;" />
-		<method name="getHostName()Ljava/lang/String;" />
-		<method name="getLocalHost()Ljava/net/InetAddress;" />
-		<method name="getLoopbackAddress()Ljava/net/InetAddress;" since="19" />
-		<method name="isAnyLocalAddress()Z" />
-		<method name="isLinkLocalAddress()Z" />
-		<method name="isLoopbackAddress()Z" />
-		<method name="isMCGlobal()Z" />
-		<method name="isMCLinkLocal()Z" />
-		<method name="isMCNodeLocal()Z" />
-		<method name="isMCOrgLocal()Z" />
-		<method name="isMCSiteLocal()Z" />
-		<method name="isMulticastAddress()Z" />
-		<method name="isReachable(I)Z" />
-		<method name="isReachable(Ljava/net/NetworkInterface;II)Z" />
-		<method name="isSiteLocalAddress()Z" />
-	</class>
-	<class name="java/net/InetSocketAddress" since="1">
-		<extends name="java/net/SocketAddress" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(Ljava/lang/String;I)V" />
-		<method name="&lt;init>(Ljava/net/InetAddress;I)V" />
-		<method name="createUnresolved(Ljava/lang/String;I)Ljava/net/InetSocketAddress;" />
-		<method name="getAddress()Ljava/net/InetAddress;" />
-		<method name="getHostName()Ljava/lang/String;" />
-		<method name="getHostString()Ljava/lang/String;" since="19" />
-		<method name="getPort()I" />
-		<method name="isUnresolved()Z" />
-	</class>
-	<class name="java/net/InterfaceAddress" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getAddress()Ljava/net/InetAddress;" />
-		<method name="getBroadcast()Ljava/net/InetAddress;" />
-		<method name="getNetworkPrefixLength()S" />
-	</class>
-	<class name="java/net/JarURLConnection" since="1">
-		<extends name="java/net/URLConnection" />
-		<method name="&lt;init>(Ljava/net/URL;)V" />
-		<method name="getAttributes()Ljava/util/jar/Attributes;" />
-		<method name="getCertificates()[Ljava/security/cert/Certificate;" />
-		<method name="getEntryName()Ljava/lang/String;" />
-		<method name="getJarEntry()Ljava/util/jar/JarEntry;" />
-		<method name="getJarFile()Ljava/util/jar/JarFile;" />
-		<method name="getJarFileURL()Ljava/net/URL;" />
-		<method name="getMainAttributes()Ljava/util/jar/Attributes;" />
-		<method name="getManifest()Ljava/util/jar/Manifest;" />
-		<field name="jarFileURLConnection" />
-	</class>
-	<class name="java/net/MalformedURLException" since="1">
-		<extends name="java/io/IOException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/net/MulticastSocket" since="1">
-		<extends name="java/net/DatagramSocket" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(Ljava/net/SocketAddress;)V" />
-		<method name="getInterface()Ljava/net/InetAddress;" />
-		<method name="getLoopbackMode()Z" />
-		<method name="getNetworkInterface()Ljava/net/NetworkInterface;" />
-		<method name="getTTL()B" />
-		<method name="getTimeToLive()I" />
-		<method name="joinGroup(Ljava/net/InetAddress;)V" />
-		<method name="joinGroup(Ljava/net/SocketAddress;Ljava/net/NetworkInterface;)V" />
-		<method name="leaveGroup(Ljava/net/InetAddress;)V" />
-		<method name="leaveGroup(Ljava/net/SocketAddress;Ljava/net/NetworkInterface;)V" />
-		<method name="send(Ljava/net/DatagramPacket;B)V" />
-		<method name="setInterface(Ljava/net/InetAddress;)V" />
-		<method name="setLoopbackMode(Z)V" />
-		<method name="setNetworkInterface(Ljava/net/NetworkInterface;)V" />
-		<method name="setTTL(B)V" />
-		<method name="setTimeToLive(I)V" />
-	</class>
-	<class name="java/net/NetPermission" since="1">
-		<extends name="java/security/BasicPermission" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-	</class>
-	<class name="java/net/NetworkInterface" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getByIndex(I)Ljava/net/NetworkInterface;" since="19" />
-		<method name="getByInetAddress(Ljava/net/InetAddress;)Ljava/net/NetworkInterface;" />
-		<method name="getByName(Ljava/lang/String;)Ljava/net/NetworkInterface;" />
-		<method name="getDisplayName()Ljava/lang/String;" />
-		<method name="getHardwareAddress()[B" since="9" />
-		<method name="getIndex()I" since="19" />
-		<method name="getInetAddresses()Ljava/util/Enumeration;" />
-		<method name="getInterfaceAddresses()Ljava/util/List;" since="9" />
-		<method name="getMTU()I" since="9" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getNetworkInterfaces()Ljava/util/Enumeration;" />
-		<method name="getParent()Ljava/net/NetworkInterface;" since="9" />
-		<method name="getSubInterfaces()Ljava/util/Enumeration;" since="9" />
-		<method name="isLoopback()Z" since="9" />
-		<method name="isPointToPoint()Z" since="9" />
-		<method name="isUp()Z" since="9" />
-		<method name="isVirtual()Z" since="9" />
-		<method name="supportsMulticast()Z" since="9" />
-	</class>
-	<class name="java/net/NoRouteToHostException" since="1">
-		<extends name="java/net/SocketException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/net/PasswordAuthentication" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;[C)V" />
-		<method name="getPassword()[C" />
-		<method name="getUserName()Ljava/lang/String;" />
-	</class>
-	<class name="java/net/PortUnreachableException" since="1">
-		<extends name="java/net/SocketException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/net/ProtocolException" since="1">
-		<extends name="java/io/IOException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/net/Proxy" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/net/Proxy$Type;Ljava/net/SocketAddress;)V" />
-		<method name="address()Ljava/net/SocketAddress;" />
-		<method name="type()Ljava/net/Proxy$Type;" />
-		<field name="NO_PROXY" />
-	</class>
-	<class name="java/net/Proxy$Type" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Ljava/net/Proxy$Type;" />
-		<method name="values()[Ljava/net/Proxy$Type;" />
-		<field name="DIRECT" />
-		<field name="HTTP" />
-		<field name="SOCKS" />
-	</class>
-	<class name="java/net/ProxySelector" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="connectFailed(Ljava/net/URI;Ljava/net/SocketAddress;Ljava/io/IOException;)V" />
-		<method name="getDefault()Ljava/net/ProxySelector;" />
-		<method name="select(Ljava/net/URI;)Ljava/util/List;" />
-		<method name="setDefault(Ljava/net/ProxySelector;)V" />
-	</class>
-	<class name="java/net/ResponseCache" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="get(Ljava/net/URI;Ljava/lang/String;Ljava/util/Map;)Ljava/net/CacheResponse;" />
-		<method name="getDefault()Ljava/net/ResponseCache;" />
-		<method name="put(Ljava/net/URI;Ljava/net/URLConnection;)Ljava/net/CacheRequest;" />
-		<method name="setDefault(Ljava/net/ResponseCache;)V" />
-	</class>
-	<class name="java/net/SecureCacheResponse" since="1">
-		<extends name="java/net/CacheResponse" />
-		<method name="&lt;init>()V" />
-		<method name="getCipherSuite()Ljava/lang/String;" />
-		<method name="getLocalCertificateChain()Ljava/util/List;" />
-		<method name="getLocalPrincipal()Ljava/security/Principal;" />
-		<method name="getPeerPrincipal()Ljava/security/Principal;" />
-		<method name="getServerCertificateChain()Ljava/util/List;" />
-	</class>
-	<class name="java/net/ServerSocket" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Closeable" since="19" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(II)V" />
-		<method name="&lt;init>(IILjava/net/InetAddress;)V" />
-		<method name="&lt;init>(Ljava/net/SocketImpl;)V" />
-		<method name="accept()Ljava/net/Socket;" />
-		<method name="bind(Ljava/net/SocketAddress;)V" />
-		<method name="bind(Ljava/net/SocketAddress;I)V" />
-		<method name="close()V" />
-		<method name="getChannel()Ljava/nio/channels/ServerSocketChannel;" />
-		<method name="getInetAddress()Ljava/net/InetAddress;" />
-		<method name="getLocalPort()I" />
-		<method name="getLocalSocketAddress()Ljava/net/SocketAddress;" />
-		<method name="getReceiveBufferSize()I" />
-		<method name="getReuseAddress()Z" />
-		<method name="getSoTimeout()I" />
-		<method name="implAccept(Ljava/net/Socket;)V" />
-		<method name="isBound()Z" />
-		<method name="isClosed()Z" />
-		<method name="setPerformancePreferences(III)V" />
-		<method name="setReceiveBufferSize(I)V" />
-		<method name="setReuseAddress(Z)V" />
-		<method name="setSoTimeout(I)V" />
-		<method name="setSocketFactory(Ljava/net/SocketImplFactory;)V" />
-	</class>
-	<class name="java/net/Socket" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Closeable" since="19" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;I)V" />
-		<method name="&lt;init>(Ljava/lang/String;ILjava/net/InetAddress;I)V" />
-		<method name="&lt;init>(Ljava/lang/String;IZ)V" />
-		<method name="&lt;init>(Ljava/net/InetAddress;I)V" />
-		<method name="&lt;init>(Ljava/net/InetAddress;ILjava/net/InetAddress;I)V" />
-		<method name="&lt;init>(Ljava/net/InetAddress;IZ)V" />
-		<method name="&lt;init>(Ljava/net/Proxy;)V" />
-		<method name="&lt;init>(Ljava/net/SocketImpl;)V" />
-		<method name="bind(Ljava/net/SocketAddress;)V" />
-		<method name="close()V" />
-		<method name="connect(Ljava/net/SocketAddress;)V" />
-		<method name="connect(Ljava/net/SocketAddress;I)V" />
-		<method name="getChannel()Ljava/nio/channels/SocketChannel;" />
-		<method name="getInetAddress()Ljava/net/InetAddress;" />
-		<method name="getInputStream()Ljava/io/InputStream;" />
-		<method name="getKeepAlive()Z" />
-		<method name="getLocalAddress()Ljava/net/InetAddress;" />
-		<method name="getLocalPort()I" />
-		<method name="getLocalSocketAddress()Ljava/net/SocketAddress;" />
-		<method name="getOOBInline()Z" />
-		<method name="getOutputStream()Ljava/io/OutputStream;" />
-		<method name="getPort()I" />
-		<method name="getReceiveBufferSize()I" />
-		<method name="getRemoteSocketAddress()Ljava/net/SocketAddress;" />
-		<method name="getReuseAddress()Z" />
-		<method name="getSendBufferSize()I" />
-		<method name="getSoLinger()I" />
-		<method name="getSoTimeout()I" />
-		<method name="getTcpNoDelay()Z" />
-		<method name="getTrafficClass()I" />
-		<method name="isBound()Z" />
-		<method name="isClosed()Z" />
-		<method name="isConnected()Z" />
-		<method name="isInputShutdown()Z" />
-		<method name="isOutputShutdown()Z" />
-		<method name="sendUrgentData(I)V" />
-		<method name="setKeepAlive(Z)V" />
-		<method name="setOOBInline(Z)V" />
-		<method name="setPerformancePreferences(III)V" />
-		<method name="setReceiveBufferSize(I)V" />
-		<method name="setReuseAddress(Z)V" />
-		<method name="setSendBufferSize(I)V" />
-		<method name="setSoLinger(ZI)V" />
-		<method name="setSoTimeout(I)V" />
-		<method name="setSocketImplFactory(Ljava/net/SocketImplFactory;)V" />
-		<method name="setTcpNoDelay(Z)V" />
-		<method name="setTrafficClass(I)V" />
-		<method name="shutdownInput()V" />
-		<method name="shutdownOutput()V" />
-	</class>
-	<class name="java/net/SocketAddress" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/net/SocketException" since="1">
-		<extends name="java/io/IOException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/net/SocketImpl" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/net/SocketOptions" />
-		<method name="&lt;init>()V" />
-		<method name="accept(Ljava/net/SocketImpl;)V" />
-		<method name="available()I" />
-		<method name="bind(Ljava/net/InetAddress;I)V" />
-		<method name="close()V" />
-		<method name="connect(Ljava/lang/String;I)V" />
-		<method name="connect(Ljava/net/InetAddress;I)V" />
-		<method name="connect(Ljava/net/SocketAddress;I)V" />
-		<method name="create(Z)V" />
-		<method name="getFileDescriptor()Ljava/io/FileDescriptor;" />
-		<method name="getInetAddress()Ljava/net/InetAddress;" />
-		<method name="getInputStream()Ljava/io/InputStream;" />
-		<method name="getLocalPort()I" />
-		<method name="getOutputStream()Ljava/io/OutputStream;" />
-		<method name="getPort()I" />
-		<method name="listen(I)V" />
-		<method name="sendUrgentData(I)V" />
-		<method name="setPerformancePreferences(III)V" />
-		<method name="shutdownInput()V" />
-		<method name="shutdownOutput()V" />
-		<method name="supportsUrgentData()Z" />
-		<field name="address" />
-		<field name="fd" />
-		<field name="localport" />
-		<field name="port" />
-	</class>
-	<class name="java/net/SocketImplFactory" since="1">
-		<extends name="java/lang/Object" />
-		<method name="createSocketImpl()Ljava/net/SocketImpl;" />
-	</class>
-	<class name="java/net/SocketOptions" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getOption(I)Ljava/lang/Object;" />
-		<method name="setOption(ILjava/lang/Object;)V" />
-		<field name="IP_MULTICAST_IF" />
-		<field name="IP_MULTICAST_IF2" />
-		<field name="IP_MULTICAST_LOOP" />
-		<field name="IP_TOS" />
-		<field name="SO_BINDADDR" />
-		<field name="SO_BROADCAST" />
-		<field name="SO_KEEPALIVE" />
-		<field name="SO_LINGER" />
-		<field name="SO_OOBINLINE" />
-		<field name="SO_RCVBUF" />
-		<field name="SO_REUSEADDR" />
-		<field name="SO_SNDBUF" />
-		<field name="SO_TIMEOUT" />
-		<field name="TCP_NODELAY" />
-	</class>
-	<class name="java/net/SocketPermission" since="1">
-		<extends name="java/security/Permission" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-	</class>
-	<class name="java/net/SocketTimeoutException" since="1">
-		<extends name="java/io/InterruptedIOException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/net/URI" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Comparable" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="compareTo(Ljava/net/URI;)I" />
-		<method name="create(Ljava/lang/String;)Ljava/net/URI;" />
-		<method name="getAuthority()Ljava/lang/String;" />
-		<method name="getFragment()Ljava/lang/String;" />
-		<method name="getHost()Ljava/lang/String;" />
-		<method name="getPath()Ljava/lang/String;" />
-		<method name="getPort()I" />
-		<method name="getQuery()Ljava/lang/String;" />
-		<method name="getRawAuthority()Ljava/lang/String;" />
-		<method name="getRawFragment()Ljava/lang/String;" />
-		<method name="getRawPath()Ljava/lang/String;" />
-		<method name="getRawQuery()Ljava/lang/String;" />
-		<method name="getRawSchemeSpecificPart()Ljava/lang/String;" />
-		<method name="getRawUserInfo()Ljava/lang/String;" />
-		<method name="getScheme()Ljava/lang/String;" />
-		<method name="getSchemeSpecificPart()Ljava/lang/String;" />
-		<method name="getUserInfo()Ljava/lang/String;" />
-		<method name="isAbsolute()Z" />
-		<method name="isOpaque()Z" />
-		<method name="normalize()Ljava/net/URI;" />
-		<method name="parseServerAuthority()Ljava/net/URI;" />
-		<method name="relativize(Ljava/net/URI;)Ljava/net/URI;" />
-		<method name="resolve(Ljava/lang/String;)Ljava/net/URI;" />
-		<method name="resolve(Ljava/net/URI;)Ljava/net/URI;" />
-		<method name="toASCIIString()Ljava/lang/String;" />
-		<method name="toURL()Ljava/net/URL;" />
-	</class>
-	<class name="java/net/URISyntaxException" since="1">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I)V" />
-		<method name="getIndex()I" />
-		<method name="getInput()Ljava/lang/String;" />
-		<method name="getReason()Ljava/lang/String;" />
-	</class>
-	<class name="java/net/URL" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/net/URLStreamHandler;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/net/URL;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/net/URL;Ljava/lang/String;Ljava/net/URLStreamHandler;)V" />
-		<method name="getAuthority()Ljava/lang/String;" />
-		<method name="getContent()Ljava/lang/Object;" />
-		<method name="getContent([Ljava/lang/Class;)Ljava/lang/Object;" />
-		<method name="getDefaultPort()I" />
-		<method name="getFile()Ljava/lang/String;" />
-		<method name="getHost()Ljava/lang/String;" />
-		<method name="getPath()Ljava/lang/String;" />
-		<method name="getPort()I" />
-		<method name="getProtocol()Ljava/lang/String;" />
-		<method name="getQuery()Ljava/lang/String;" />
-		<method name="getRef()Ljava/lang/String;" />
-		<method name="getUserInfo()Ljava/lang/String;" />
-		<method name="openConnection()Ljava/net/URLConnection;" />
-		<method name="openConnection(Ljava/net/Proxy;)Ljava/net/URLConnection;" />
-		<method name="openStream()Ljava/io/InputStream;" />
-		<method name="sameFile(Ljava/net/URL;)Z" />
-		<method name="set(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" />
-		<method name="set(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="setURLStreamHandlerFactory(Ljava/net/URLStreamHandlerFactory;)V" />
-		<method name="toExternalForm()Ljava/lang/String;" />
-		<method name="toURI()Ljava/net/URI;" />
-	</class>
-	<class name="java/net/URLClassLoader" since="1">
-		<extends name="java/security/SecureClassLoader" />
-		<method name="&lt;init>([Ljava/net/URL;)V" />
-		<method name="&lt;init>([Ljava/net/URL;Ljava/lang/ClassLoader;)V" />
-		<method name="&lt;init>([Ljava/net/URL;Ljava/lang/ClassLoader;Ljava/net/URLStreamHandlerFactory;)V" />
-		<method name="addURL(Ljava/net/URL;)V" />
-		<method name="definePackage(Ljava/lang/String;Ljava/util/jar/Manifest;Ljava/net/URL;)Ljava/lang/Package;" />
-		<method name="getURLs()[Ljava/net/URL;" />
-		<method name="newInstance([Ljava/net/URL;)Ljava/net/URLClassLoader;" />
-		<method name="newInstance([Ljava/net/URL;Ljava/lang/ClassLoader;)Ljava/net/URLClassLoader;" />
-	</class>
-	<class name="java/net/URLConnection" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/net/URL;)V" />
-		<method name="addRequestProperty(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="connect()V" />
-		<method name="getAllowUserInteraction()Z" />
-		<method name="getConnectTimeout()I" />
-		<method name="getContent()Ljava/lang/Object;" />
-		<method name="getContent([Ljava/lang/Class;)Ljava/lang/Object;" />
-		<method name="getContentEncoding()Ljava/lang/String;" />
-		<method name="getContentLength()I" />
-		<method name="getContentType()Ljava/lang/String;" />
-		<method name="getDate()J" />
-		<method name="getDefaultAllowUserInteraction()Z" />
-		<method name="getDefaultRequestProperty(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getDefaultUseCaches()Z" />
-		<method name="getDoInput()Z" />
-		<method name="getDoOutput()Z" />
-		<method name="getExpiration()J" />
-		<method name="getFileNameMap()Ljava/net/FileNameMap;" />
-		<method name="getHeaderField(I)Ljava/lang/String;" />
-		<method name="getHeaderField(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getHeaderFieldDate(Ljava/lang/String;J)J" />
-		<method name="getHeaderFieldInt(Ljava/lang/String;I)I" />
-		<method name="getHeaderFieldKey(I)Ljava/lang/String;" />
-		<method name="getHeaderFields()Ljava/util/Map;" />
-		<method name="getIfModifiedSince()J" />
-		<method name="getInputStream()Ljava/io/InputStream;" />
-		<method name="getLastModified()J" />
-		<method name="getOutputStream()Ljava/io/OutputStream;" />
-		<method name="getPermission()Ljava/security/Permission;" />
-		<method name="getReadTimeout()I" />
-		<method name="getRequestProperties()Ljava/util/Map;" />
-		<method name="getRequestProperty(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getURL()Ljava/net/URL;" />
-		<method name="getUseCaches()Z" />
-		<method name="guessContentTypeFromName(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="guessContentTypeFromStream(Ljava/io/InputStream;)Ljava/lang/String;" />
-		<method name="setAllowUserInteraction(Z)V" />
-		<method name="setConnectTimeout(I)V" />
-		<method name="setContentHandlerFactory(Ljava/net/ContentHandlerFactory;)V" />
-		<method name="setDefaultAllowUserInteraction(Z)V" />
-		<method name="setDefaultRequestProperty(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="setDefaultUseCaches(Z)V" />
-		<method name="setDoInput(Z)V" />
-		<method name="setDoOutput(Z)V" />
-		<method name="setFileNameMap(Ljava/net/FileNameMap;)V" />
-		<method name="setIfModifiedSince(J)V" />
-		<method name="setReadTimeout(I)V" />
-		<method name="setRequestProperty(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="setUseCaches(Z)V" />
-		<field name="allowUserInteraction" />
-		<field name="connected" />
-		<field name="doInput" />
-		<field name="doOutput" />
-		<field name="ifModifiedSince" />
-		<field name="url" />
-		<field name="useCaches" />
-	</class>
-	<class name="java/net/URLDecoder" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="decode(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="decode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
-	</class>
-	<class name="java/net/URLEncoder" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="encode(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
-	</class>
-	<class name="java/net/URLStreamHandler" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="equals(Ljava/net/URL;Ljava/net/URL;)Z" />
-		<method name="getDefaultPort()I" />
-		<method name="getHostAddress(Ljava/net/URL;)Ljava/net/InetAddress;" />
-		<method name="hashCode(Ljava/net/URL;)I" />
-		<method name="hostsEqual(Ljava/net/URL;Ljava/net/URL;)Z" />
-		<method name="openConnection(Ljava/net/URL;)Ljava/net/URLConnection;" />
-		<method name="openConnection(Ljava/net/URL;Ljava/net/Proxy;)Ljava/net/URLConnection;" />
-		<method name="parseURL(Ljava/net/URL;Ljava/lang/String;II)V" />
-		<method name="sameFile(Ljava/net/URL;Ljava/net/URL;)Z" />
-		<method name="setURL(Ljava/net/URL;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" />
-		<method name="setURL(Ljava/net/URL;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="toExternalForm(Ljava/net/URL;)Ljava/lang/String;" />
-	</class>
-	<class name="java/net/URLStreamHandlerFactory" since="1">
-		<extends name="java/lang/Object" />
-		<method name="createURLStreamHandler(Ljava/lang/String;)Ljava/net/URLStreamHandler;" />
-	</class>
-	<class name="java/net/UnknownHostException" since="1">
-		<extends name="java/io/IOException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/net/UnknownServiceException" since="1">
-		<extends name="java/io/IOException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/nio/Buffer" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="array()Ljava/lang/Object;" since="9" />
-		<method name="arrayOffset()I" since="9" />
-		<method name="capacity()I" />
-		<method name="clear()Ljava/nio/Buffer;" />
-		<method name="flip()Ljava/nio/Buffer;" />
-		<method name="hasArray()Z" since="9" />
-		<method name="hasRemaining()Z" />
-		<method name="isDirect()Z" since="9" />
-		<method name="isReadOnly()Z" />
-		<method name="limit()I" />
-		<method name="limit(I)Ljava/nio/Buffer;" />
-		<method name="mark()Ljava/nio/Buffer;" />
-		<method name="position()I" />
-		<method name="position(I)Ljava/nio/Buffer;" />
-		<method name="remaining()I" />
-		<method name="reset()Ljava/nio/Buffer;" />
-		<method name="rewind()Ljava/nio/Buffer;" />
-	</class>
-	<class name="java/nio/BufferOverflowException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/nio/BufferUnderflowException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/nio/ByteBuffer" since="1">
-		<extends name="java/nio/Buffer" />
-		<implements name="java/lang/Comparable" />
-		<method name="&lt;init>()V" />
-		<method name="allocate(I)Ljava/nio/ByteBuffer;" />
-		<method name="allocateDirect(I)Ljava/nio/ByteBuffer;" />
-		<method name="array()[B" />
-		<method name="arrayOffset()I" />
-		<method name="asCharBuffer()Ljava/nio/CharBuffer;" />
-		<method name="asDoubleBuffer()Ljava/nio/DoubleBuffer;" />
-		<method name="asFloatBuffer()Ljava/nio/FloatBuffer;" />
-		<method name="asIntBuffer()Ljava/nio/IntBuffer;" />
-		<method name="asLongBuffer()Ljava/nio/LongBuffer;" />
-		<method name="asReadOnlyBuffer()Ljava/nio/ByteBuffer;" />
-		<method name="asShortBuffer()Ljava/nio/ShortBuffer;" />
-		<method name="compact()Ljava/nio/ByteBuffer;" />
-		<method name="compareTo(Ljava/nio/ByteBuffer;)I" />
-		<method name="duplicate()Ljava/nio/ByteBuffer;" />
-		<method name="get()B" />
-		<method name="get(I)B" />
-		<method name="get([B)Ljava/nio/ByteBuffer;" />
-		<method name="get([BII)Ljava/nio/ByteBuffer;" />
-		<method name="getChar()C" />
-		<method name="getChar(I)C" />
-		<method name="getDouble()D" />
-		<method name="getDouble(I)D" />
-		<method name="getFloat()F" />
-		<method name="getFloat(I)F" />
-		<method name="getInt()I" />
-		<method name="getInt(I)I" />
-		<method name="getLong()J" />
-		<method name="getLong(I)J" />
-		<method name="getShort()S" />
-		<method name="getShort(I)S" />
-		<method name="hasArray()Z" />
-		<method name="isDirect()Z" />
-		<method name="order()Ljava/nio/ByteOrder;" />
-		<method name="order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;" />
-		<method name="put(B)Ljava/nio/ByteBuffer;" />
-		<method name="put(IB)Ljava/nio/ByteBuffer;" />
-		<method name="put(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;" />
-		<method name="put([B)Ljava/nio/ByteBuffer;" />
-		<method name="put([BII)Ljava/nio/ByteBuffer;" />
-		<method name="putChar(C)Ljava/nio/ByteBuffer;" />
-		<method name="putChar(IC)Ljava/nio/ByteBuffer;" />
-		<method name="putDouble(D)Ljava/nio/ByteBuffer;" />
-		<method name="putDouble(ID)Ljava/nio/ByteBuffer;" />
-		<method name="putFloat(F)Ljava/nio/ByteBuffer;" />
-		<method name="putFloat(IF)Ljava/nio/ByteBuffer;" />
-		<method name="putInt(I)Ljava/nio/ByteBuffer;" />
-		<method name="putInt(II)Ljava/nio/ByteBuffer;" />
-		<method name="putLong(IJ)Ljava/nio/ByteBuffer;" />
-		<method name="putLong(J)Ljava/nio/ByteBuffer;" />
-		<method name="putShort(IS)Ljava/nio/ByteBuffer;" />
-		<method name="putShort(S)Ljava/nio/ByteBuffer;" />
-		<method name="slice()Ljava/nio/ByteBuffer;" />
-		<method name="wrap([B)Ljava/nio/ByteBuffer;" />
-		<method name="wrap([BII)Ljava/nio/ByteBuffer;" />
-	</class>
-	<class name="java/nio/ByteOrder" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="nativeOrder()Ljava/nio/ByteOrder;" />
-		<field name="BIG_ENDIAN" />
-		<field name="LITTLE_ENDIAN" />
-	</class>
-	<class name="java/nio/CharBuffer" since="1">
-		<extends name="java/nio/Buffer" />
-		<implements name="java/lang/Appendable" />
-		<implements name="java/lang/CharSequence" />
-		<implements name="java/lang/Comparable" />
-		<implements name="java/lang/Readable" />
-		<method name="&lt;init>()V" />
-		<method name="allocate(I)Ljava/nio/CharBuffer;" />
-		<method name="append(C)Ljava/nio/CharBuffer;" />
-		<method name="append(Ljava/lang/CharSequence;)Ljava/nio/CharBuffer;" />
-		<method name="append(Ljava/lang/CharSequence;II)Ljava/nio/CharBuffer;" />
-		<method name="array()[C" />
-		<method name="arrayOffset()I" />
-		<method name="asReadOnlyBuffer()Ljava/nio/CharBuffer;" />
-		<method name="compact()Ljava/nio/CharBuffer;" />
-		<method name="compareTo(Ljava/nio/CharBuffer;)I" />
-		<method name="duplicate()Ljava/nio/CharBuffer;" />
-		<method name="get()C" />
-		<method name="get(I)C" />
-		<method name="get([C)Ljava/nio/CharBuffer;" />
-		<method name="get([CII)Ljava/nio/CharBuffer;" />
-		<method name="hasArray()Z" />
-		<method name="isDirect()Z" />
-		<method name="order()Ljava/nio/ByteOrder;" />
-		<method name="put(C)Ljava/nio/CharBuffer;" />
-		<method name="put(IC)Ljava/nio/CharBuffer;" />
-		<method name="put(Ljava/lang/String;)Ljava/nio/CharBuffer;" />
-		<method name="put(Ljava/lang/String;II)Ljava/nio/CharBuffer;" />
-		<method name="put(Ljava/nio/CharBuffer;)Ljava/nio/CharBuffer;" />
-		<method name="put([C)Ljava/nio/CharBuffer;" />
-		<method name="put([CII)Ljava/nio/CharBuffer;" />
-		<method name="slice()Ljava/nio/CharBuffer;" />
-		<method name="subSequence(II)Ljava/nio/CharBuffer;" since="19" />
-		<method name="wrap(Ljava/lang/CharSequence;)Ljava/nio/CharBuffer;" />
-		<method name="wrap(Ljava/lang/CharSequence;II)Ljava/nio/CharBuffer;" />
-		<method name="wrap([C)Ljava/nio/CharBuffer;" />
-		<method name="wrap([CII)Ljava/nio/CharBuffer;" />
-	</class>
-	<class name="java/nio/DoubleBuffer" since="1">
-		<extends name="java/nio/Buffer" />
-		<implements name="java/lang/Comparable" />
-		<method name="&lt;init>()V" />
-		<method name="allocate(I)Ljava/nio/DoubleBuffer;" />
-		<method name="array()[D" />
-		<method name="arrayOffset()I" />
-		<method name="asReadOnlyBuffer()Ljava/nio/DoubleBuffer;" />
-		<method name="compact()Ljava/nio/DoubleBuffer;" />
-		<method name="compareTo(Ljava/nio/DoubleBuffer;)I" />
-		<method name="duplicate()Ljava/nio/DoubleBuffer;" />
-		<method name="get()D" />
-		<method name="get(I)D" />
-		<method name="get([D)Ljava/nio/DoubleBuffer;" />
-		<method name="get([DII)Ljava/nio/DoubleBuffer;" />
-		<method name="hasArray()Z" />
-		<method name="isDirect()Z" />
-		<method name="order()Ljava/nio/ByteOrder;" />
-		<method name="put(D)Ljava/nio/DoubleBuffer;" />
-		<method name="put(ID)Ljava/nio/DoubleBuffer;" />
-		<method name="put(Ljava/nio/DoubleBuffer;)Ljava/nio/DoubleBuffer;" />
-		<method name="put([D)Ljava/nio/DoubleBuffer;" />
-		<method name="put([DII)Ljava/nio/DoubleBuffer;" />
-		<method name="slice()Ljava/nio/DoubleBuffer;" />
-		<method name="wrap([D)Ljava/nio/DoubleBuffer;" />
-		<method name="wrap([DII)Ljava/nio/DoubleBuffer;" />
-	</class>
-	<class name="java/nio/FloatBuffer" since="1">
-		<extends name="java/nio/Buffer" />
-		<implements name="java/lang/Comparable" />
-		<method name="&lt;init>()V" />
-		<method name="allocate(I)Ljava/nio/FloatBuffer;" />
-		<method name="array()[F" />
-		<method name="arrayOffset()I" />
-		<method name="asReadOnlyBuffer()Ljava/nio/FloatBuffer;" />
-		<method name="compact()Ljava/nio/FloatBuffer;" />
-		<method name="compareTo(Ljava/nio/FloatBuffer;)I" />
-		<method name="duplicate()Ljava/nio/FloatBuffer;" />
-		<method name="get()F" />
-		<method name="get(I)F" />
-		<method name="get([F)Ljava/nio/FloatBuffer;" />
-		<method name="get([FII)Ljava/nio/FloatBuffer;" />
-		<method name="hasArray()Z" />
-		<method name="isDirect()Z" />
-		<method name="order()Ljava/nio/ByteOrder;" />
-		<method name="put(F)Ljava/nio/FloatBuffer;" />
-		<method name="put(IF)Ljava/nio/FloatBuffer;" />
-		<method name="put(Ljava/nio/FloatBuffer;)Ljava/nio/FloatBuffer;" />
-		<method name="put([F)Ljava/nio/FloatBuffer;" />
-		<method name="put([FII)Ljava/nio/FloatBuffer;" />
-		<method name="slice()Ljava/nio/FloatBuffer;" />
-		<method name="wrap([F)Ljava/nio/FloatBuffer;" />
-		<method name="wrap([FII)Ljava/nio/FloatBuffer;" />
-	</class>
-	<class name="java/nio/IntBuffer" since="1">
-		<extends name="java/nio/Buffer" />
-		<implements name="java/lang/Comparable" />
-		<method name="&lt;init>()V" />
-		<method name="allocate(I)Ljava/nio/IntBuffer;" />
-		<method name="array()[I" />
-		<method name="arrayOffset()I" />
-		<method name="asReadOnlyBuffer()Ljava/nio/IntBuffer;" />
-		<method name="compact()Ljava/nio/IntBuffer;" />
-		<method name="compareTo(Ljava/nio/IntBuffer;)I" />
-		<method name="duplicate()Ljava/nio/IntBuffer;" />
-		<method name="get()I" />
-		<method name="get(I)I" />
-		<method name="get([I)Ljava/nio/IntBuffer;" />
-		<method name="get([III)Ljava/nio/IntBuffer;" />
-		<method name="hasArray()Z" />
-		<method name="isDirect()Z" />
-		<method name="order()Ljava/nio/ByteOrder;" />
-		<method name="put(I)Ljava/nio/IntBuffer;" />
-		<method name="put(II)Ljava/nio/IntBuffer;" />
-		<method name="put(Ljava/nio/IntBuffer;)Ljava/nio/IntBuffer;" />
-		<method name="put([I)Ljava/nio/IntBuffer;" />
-		<method name="put([III)Ljava/nio/IntBuffer;" />
-		<method name="slice()Ljava/nio/IntBuffer;" />
-		<method name="wrap([I)Ljava/nio/IntBuffer;" />
-		<method name="wrap([III)Ljava/nio/IntBuffer;" />
-	</class>
-	<class name="java/nio/InvalidMarkException" since="1">
-		<extends name="java/lang/IllegalStateException" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/nio/LongBuffer" since="1">
-		<extends name="java/nio/Buffer" />
-		<implements name="java/lang/Comparable" />
-		<method name="&lt;init>()V" />
-		<method name="allocate(I)Ljava/nio/LongBuffer;" />
-		<method name="array()[J" />
-		<method name="arrayOffset()I" />
-		<method name="asReadOnlyBuffer()Ljava/nio/LongBuffer;" />
-		<method name="compact()Ljava/nio/LongBuffer;" />
-		<method name="compareTo(Ljava/nio/LongBuffer;)I" />
-		<method name="duplicate()Ljava/nio/LongBuffer;" />
-		<method name="get()J" />
-		<method name="get(I)J" />
-		<method name="get([J)Ljava/nio/LongBuffer;" />
-		<method name="get([JII)Ljava/nio/LongBuffer;" />
-		<method name="hasArray()Z" />
-		<method name="isDirect()Z" />
-		<method name="order()Ljava/nio/ByteOrder;" />
-		<method name="put(IJ)Ljava/nio/LongBuffer;" />
-		<method name="put(J)Ljava/nio/LongBuffer;" />
-		<method name="put(Ljava/nio/LongBuffer;)Ljava/nio/LongBuffer;" />
-		<method name="put([J)Ljava/nio/LongBuffer;" />
-		<method name="put([JII)Ljava/nio/LongBuffer;" />
-		<method name="slice()Ljava/nio/LongBuffer;" />
-		<method name="wrap([J)Ljava/nio/LongBuffer;" />
-		<method name="wrap([JII)Ljava/nio/LongBuffer;" />
-	</class>
-	<class name="java/nio/MappedByteBuffer" since="1">
-		<extends name="java/nio/ByteBuffer" />
-		<method name="&lt;init>()V" />
-		<method name="force()Ljava/nio/MappedByteBuffer;" />
-		<method name="isLoaded()Z" />
-		<method name="load()Ljava/nio/MappedByteBuffer;" />
-	</class>
-	<class name="java/nio/ReadOnlyBufferException" since="1">
-		<extends name="java/lang/UnsupportedOperationException" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/nio/ShortBuffer" since="1">
-		<extends name="java/nio/Buffer" />
-		<implements name="java/lang/Comparable" />
-		<method name="&lt;init>()V" />
-		<method name="allocate(I)Ljava/nio/ShortBuffer;" />
-		<method name="array()[S" />
-		<method name="arrayOffset()I" />
-		<method name="asReadOnlyBuffer()Ljava/nio/ShortBuffer;" />
-		<method name="compact()Ljava/nio/ShortBuffer;" />
-		<method name="compareTo(Ljava/nio/ShortBuffer;)I" />
-		<method name="duplicate()Ljava/nio/ShortBuffer;" />
-		<method name="get()S" />
-		<method name="get(I)S" />
-		<method name="get([S)Ljava/nio/ShortBuffer;" />
-		<method name="get([SII)Ljava/nio/ShortBuffer;" />
-		<method name="hasArray()Z" />
-		<method name="isDirect()Z" />
-		<method name="order()Ljava/nio/ByteOrder;" />
-		<method name="put(IS)Ljava/nio/ShortBuffer;" />
-		<method name="put(Ljava/nio/ShortBuffer;)Ljava/nio/ShortBuffer;" />
-		<method name="put(S)Ljava/nio/ShortBuffer;" />
-		<method name="put([S)Ljava/nio/ShortBuffer;" />
-		<method name="put([SII)Ljava/nio/ShortBuffer;" />
-		<method name="slice()Ljava/nio/ShortBuffer;" />
-		<method name="wrap([S)Ljava/nio/ShortBuffer;" />
-		<method name="wrap([SII)Ljava/nio/ShortBuffer;" />
-	</class>
-	<class name="java/nio/channels/AlreadyConnectedException" since="1">
-		<extends name="java/lang/IllegalStateException" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/nio/channels/AsynchronousCloseException" since="1">
-		<extends name="java/nio/channels/ClosedChannelException" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/nio/channels/ByteChannel" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/nio/channels/ReadableByteChannel" />
-		<implements name="java/nio/channels/WritableByteChannel" />
-	</class>
-	<class name="java/nio/channels/CancelledKeyException" since="1">
-		<extends name="java/lang/IllegalStateException" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/nio/channels/Channel" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Closeable" />
-		<method name="isOpen()Z" />
-	</class>
-	<class name="java/nio/channels/Channels" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="newChannel(Ljava/io/InputStream;)Ljava/nio/channels/ReadableByteChannel;" />
-		<method name="newChannel(Ljava/io/OutputStream;)Ljava/nio/channels/WritableByteChannel;" />
-		<method name="newInputStream(Ljava/nio/channels/ReadableByteChannel;)Ljava/io/InputStream;" />
-		<method name="newOutputStream(Ljava/nio/channels/WritableByteChannel;)Ljava/io/OutputStream;" />
-		<method name="newReader(Ljava/nio/channels/ReadableByteChannel;Ljava/lang/String;)Ljava/io/Reader;" />
-		<method name="newReader(Ljava/nio/channels/ReadableByteChannel;Ljava/nio/charset/CharsetDecoder;I)Ljava/io/Reader;" />
-		<method name="newWriter(Ljava/nio/channels/WritableByteChannel;Ljava/lang/String;)Ljava/io/Writer;" />
-		<method name="newWriter(Ljava/nio/channels/WritableByteChannel;Ljava/nio/charset/CharsetEncoder;I)Ljava/io/Writer;" />
-	</class>
-	<class name="java/nio/channels/ClosedByInterruptException" since="1">
-		<extends name="java/nio/channels/AsynchronousCloseException" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/nio/channels/ClosedChannelException" since="1">
-		<extends name="java/io/IOException" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/nio/channels/ClosedSelectorException" since="1">
-		<extends name="java/lang/IllegalStateException" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/nio/channels/ConnectionPendingException" since="1">
-		<extends name="java/lang/IllegalStateException" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/nio/channels/DatagramChannel" since="1">
-		<extends name="java/nio/channels/spi/AbstractSelectableChannel" />
-		<implements name="java/nio/channels/ByteChannel" />
-		<implements name="java/nio/channels/GatheringByteChannel" />
-		<implements name="java/nio/channels/ScatteringByteChannel" />
-		<method name="&lt;init>(Ljava/nio/channels/spi/SelectorProvider;)V" />
-		<method name="connect(Ljava/net/SocketAddress;)Ljava/nio/channels/DatagramChannel;" />
-		<method name="disconnect()Ljava/nio/channels/DatagramChannel;" />
-		<method name="isConnected()Z" />
-		<method name="open()Ljava/nio/channels/DatagramChannel;" />
-		<method name="receive(Ljava/nio/ByteBuffer;)Ljava/net/SocketAddress;" />
-		<method name="send(Ljava/nio/ByteBuffer;Ljava/net/SocketAddress;)I" />
-		<method name="socket()Ljava/net/DatagramSocket;" />
-	</class>
-	<class name="java/nio/channels/FileChannel" since="1">
-		<extends name="java/nio/channels/spi/AbstractInterruptibleChannel" />
-		<implements name="java/nio/channels/ByteChannel" />
-		<implements name="java/nio/channels/GatheringByteChannel" />
-		<implements name="java/nio/channels/ScatteringByteChannel" />
-		<method name="&lt;init>()V" />
-		<method name="force(Z)V" />
-		<method name="lock()Ljava/nio/channels/FileLock;" />
-		<method name="lock(JJZ)Ljava/nio/channels/FileLock;" />
-		<method name="map(Ljava/nio/channels/FileChannel$MapMode;JJ)Ljava/nio/MappedByteBuffer;" />
-		<method name="position()J" />
-		<method name="position(J)Ljava/nio/channels/FileChannel;" />
-		<method name="read(Ljava/nio/ByteBuffer;J)I" />
-		<method name="size()J" />
-		<method name="transferFrom(Ljava/nio/channels/ReadableByteChannel;JJ)J" />
-		<method name="transferTo(JJLjava/nio/channels/WritableByteChannel;)J" />
-		<method name="truncate(J)Ljava/nio/channels/FileChannel;" />
-		<method name="tryLock()Ljava/nio/channels/FileLock;" />
-		<method name="tryLock(JJZ)Ljava/nio/channels/FileLock;" />
-		<method name="write(Ljava/nio/ByteBuffer;J)I" />
-	</class>
-	<class name="java/nio/channels/FileChannel$MapMode" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="PRIVATE" />
-		<field name="READ_ONLY" />
-		<field name="READ_WRITE" />
-	</class>
-	<class name="java/nio/channels/FileLock" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/AutoCloseable" since="19" />
-		<method name="&lt;init>(Ljava/nio/channels/FileChannel;JJZ)V" />
-		<method name="channel()Ljava/nio/channels/FileChannel;" />
-		<method name="isShared()Z" />
-		<method name="isValid()Z" />
-		<method name="overlaps(JJ)Z" />
-		<method name="position()J" />
-		<method name="release()V" />
-		<method name="size()J" />
-	</class>
-	<class name="java/nio/channels/FileLockInterruptionException" since="1">
-		<extends name="java/io/IOException" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/nio/channels/GatheringByteChannel" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/nio/channels/WritableByteChannel" />
-		<method name="write([Ljava/nio/ByteBuffer;)J" />
-		<method name="write([Ljava/nio/ByteBuffer;II)J" />
-	</class>
-	<class name="java/nio/channels/IllegalBlockingModeException" since="1">
-		<extends name="java/lang/IllegalStateException" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/nio/channels/IllegalSelectorException" since="1">
-		<extends name="java/lang/IllegalArgumentException" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/nio/channels/InterruptibleChannel" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/nio/channels/Channel" />
-	</class>
-	<class name="java/nio/channels/NoConnectionPendingException" since="1">
-		<extends name="java/lang/IllegalStateException" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/nio/channels/NonReadableChannelException" since="1">
-		<extends name="java/lang/IllegalStateException" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/nio/channels/NonWritableChannelException" since="1">
-		<extends name="java/lang/IllegalStateException" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/nio/channels/NotYetBoundException" since="1">
-		<extends name="java/lang/IllegalStateException" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/nio/channels/NotYetConnectedException" since="1">
-		<extends name="java/lang/IllegalStateException" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/nio/channels/OverlappingFileLockException" since="1">
-		<extends name="java/lang/IllegalStateException" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/nio/channels/Pipe" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="open()Ljava/nio/channels/Pipe;" />
-		<method name="sink()Ljava/nio/channels/Pipe$SinkChannel;" />
-		<method name="source()Ljava/nio/channels/Pipe$SourceChannel;" />
-	</class>
-	<class name="java/nio/channels/Pipe$SinkChannel" since="1">
-		<extends name="java/nio/channels/spi/AbstractSelectableChannel" />
-		<implements name="java/nio/channels/GatheringByteChannel" />
-		<implements name="java/nio/channels/WritableByteChannel" />
-		<method name="&lt;init>(Ljava/nio/channels/spi/SelectorProvider;)V" />
-	</class>
-	<class name="java/nio/channels/Pipe$SourceChannel" since="1">
-		<extends name="java/nio/channels/spi/AbstractSelectableChannel" />
-		<implements name="java/nio/channels/ReadableByteChannel" />
-		<implements name="java/nio/channels/ScatteringByteChannel" />
-		<method name="&lt;init>(Ljava/nio/channels/spi/SelectorProvider;)V" />
-	</class>
-	<class name="java/nio/channels/ReadableByteChannel" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/nio/channels/Channel" />
-		<method name="read(Ljava/nio/ByteBuffer;)I" />
-	</class>
-	<class name="java/nio/channels/ScatteringByteChannel" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/nio/channels/ReadableByteChannel" />
-		<method name="read([Ljava/nio/ByteBuffer;)J" />
-		<method name="read([Ljava/nio/ByteBuffer;II)J" />
-	</class>
-	<class name="java/nio/channels/SelectableChannel" since="1">
-		<extends name="java/nio/channels/spi/AbstractInterruptibleChannel" />
-		<implements name="java/nio/channels/Channel" />
-		<method name="&lt;init>()V" />
-		<method name="blockingLock()Ljava/lang/Object;" />
-		<method name="configureBlocking(Z)Ljava/nio/channels/SelectableChannel;" />
-		<method name="isBlocking()Z" />
-		<method name="isRegistered()Z" />
-		<method name="keyFor(Ljava/nio/channels/Selector;)Ljava/nio/channels/SelectionKey;" />
-		<method name="provider()Ljava/nio/channels/spi/SelectorProvider;" />
-		<method name="register(Ljava/nio/channels/Selector;I)Ljava/nio/channels/SelectionKey;" />
-		<method name="register(Ljava/nio/channels/Selector;ILjava/lang/Object;)Ljava/nio/channels/SelectionKey;" />
-		<method name="validOps()I" />
-	</class>
-	<class name="java/nio/channels/SelectionKey" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="attach(Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="attachment()Ljava/lang/Object;" />
-		<method name="cancel()V" />
-		<method name="channel()Ljava/nio/channels/SelectableChannel;" />
-		<method name="interestOps()I" />
-		<method name="interestOps(I)Ljava/nio/channels/SelectionKey;" />
-		<method name="isAcceptable()Z" />
-		<method name="isConnectable()Z" />
-		<method name="isReadable()Z" />
-		<method name="isValid()Z" />
-		<method name="isWritable()Z" />
-		<method name="readyOps()I" />
-		<method name="selector()Ljava/nio/channels/Selector;" />
-		<field name="OP_ACCEPT" />
-		<field name="OP_CONNECT" />
-		<field name="OP_READ" />
-		<field name="OP_WRITE" />
-	</class>
-	<class name="java/nio/channels/Selector" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Closeable" since="19" />
-		<method name="&lt;init>()V" />
-		<method name="close()V" />
-		<method name="isOpen()Z" />
-		<method name="keys()Ljava/util/Set;" />
-		<method name="open()Ljava/nio/channels/Selector;" />
-		<method name="provider()Ljava/nio/channels/spi/SelectorProvider;" />
-		<method name="select()I" />
-		<method name="select(J)I" />
-		<method name="selectNow()I" />
-		<method name="selectedKeys()Ljava/util/Set;" />
-		<method name="wakeup()Ljava/nio/channels/Selector;" />
-	</class>
-	<class name="java/nio/channels/ServerSocketChannel" since="1">
-		<extends name="java/nio/channels/spi/AbstractSelectableChannel" />
-		<method name="&lt;init>(Ljava/nio/channels/spi/SelectorProvider;)V" />
-		<method name="accept()Ljava/nio/channels/SocketChannel;" />
-		<method name="open()Ljava/nio/channels/ServerSocketChannel;" />
-		<method name="socket()Ljava/net/ServerSocket;" />
-	</class>
-	<class name="java/nio/channels/SocketChannel" since="1">
-		<extends name="java/nio/channels/spi/AbstractSelectableChannel" />
-		<implements name="java/nio/channels/ByteChannel" />
-		<implements name="java/nio/channels/GatheringByteChannel" />
-		<implements name="java/nio/channels/ScatteringByteChannel" />
-		<method name="&lt;init>(Ljava/nio/channels/spi/SelectorProvider;)V" />
-		<method name="connect(Ljava/net/SocketAddress;)Z" />
-		<method name="finishConnect()Z" />
-		<method name="isConnected()Z" />
-		<method name="isConnectionPending()Z" />
-		<method name="open()Ljava/nio/channels/SocketChannel;" />
-		<method name="open(Ljava/net/SocketAddress;)Ljava/nio/channels/SocketChannel;" />
-		<method name="socket()Ljava/net/Socket;" />
-	</class>
-	<class name="java/nio/channels/UnresolvedAddressException" since="1">
-		<extends name="java/lang/IllegalArgumentException" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/nio/channels/UnsupportedAddressTypeException" since="1">
-		<extends name="java/lang/IllegalArgumentException" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/nio/channels/WritableByteChannel" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/nio/channels/Channel" />
-		<method name="write(Ljava/nio/ByteBuffer;)I" />
-	</class>
-	<class name="java/nio/channels/spi/AbstractInterruptibleChannel" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/nio/channels/Channel" />
-		<implements name="java/nio/channels/InterruptibleChannel" />
-		<method name="&lt;init>()V" />
-		<method name="begin()V" />
-		<method name="end(Z)V" />
-		<method name="implCloseChannel()V" />
-	</class>
-	<class name="java/nio/channels/spi/AbstractSelectableChannel" since="1">
-		<extends name="java/nio/channels/SelectableChannel" />
-		<method name="&lt;init>(Ljava/nio/channels/spi/SelectorProvider;)V" />
-		<method name="implCloseSelectableChannel()V" />
-		<method name="implConfigureBlocking(Z)V" />
-	</class>
-	<class name="java/nio/channels/spi/AbstractSelectionKey" since="1">
-		<extends name="java/nio/channels/SelectionKey" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/nio/channels/spi/AbstractSelector" since="1">
-		<extends name="java/nio/channels/Selector" />
-		<method name="&lt;init>(Ljava/nio/channels/spi/SelectorProvider;)V" />
-		<method name="begin()V" />
-		<method name="cancelledKeys()Ljava/util/Set;" />
-		<method name="deregister(Ljava/nio/channels/spi/AbstractSelectionKey;)V" />
-		<method name="end()V" />
-		<method name="implCloseSelector()V" />
-		<method name="register(Ljava/nio/channels/spi/AbstractSelectableChannel;ILjava/lang/Object;)Ljava/nio/channels/SelectionKey;" />
-	</class>
-	<class name="java/nio/channels/spi/SelectorProvider" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="inheritedChannel()Ljava/nio/channels/Channel;" />
-		<method name="openDatagramChannel()Ljava/nio/channels/DatagramChannel;" />
-		<method name="openPipe()Ljava/nio/channels/Pipe;" />
-		<method name="openSelector()Ljava/nio/channels/spi/AbstractSelector;" />
-		<method name="openServerSocketChannel()Ljava/nio/channels/ServerSocketChannel;" />
-		<method name="openSocketChannel()Ljava/nio/channels/SocketChannel;" />
-		<method name="provider()Ljava/nio/channels/spi/SelectorProvider;" />
-	</class>
-	<class name="java/nio/charset/CharacterCodingException" since="1">
-		<extends name="java/io/IOException" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/nio/charset/Charset" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Comparable" />
-		<method name="&lt;init>(Ljava/lang/String;[Ljava/lang/String;)V" />
-		<method name="aliases()Ljava/util/Set;" />
-		<method name="availableCharsets()Ljava/util/SortedMap;" />
-		<method name="canEncode()Z" />
-		<method name="compareTo(Ljava/nio/charset/Charset;)I" />
-		<method name="contains(Ljava/nio/charset/Charset;)Z" />
-		<method name="decode(Ljava/nio/ByteBuffer;)Ljava/nio/CharBuffer;" />
-		<method name="defaultCharset()Ljava/nio/charset/Charset;" />
-		<method name="displayName()Ljava/lang/String;" />
-		<method name="displayName(Ljava/util/Locale;)Ljava/lang/String;" />
-		<method name="encode(Ljava/lang/String;)Ljava/nio/ByteBuffer;" />
-		<method name="encode(Ljava/nio/CharBuffer;)Ljava/nio/ByteBuffer;" />
-		<method name="forName(Ljava/lang/String;)Ljava/nio/charset/Charset;" />
-		<method name="isRegistered()Z" />
-		<method name="isSupported(Ljava/lang/String;)Z" />
-		<method name="name()Ljava/lang/String;" />
-		<method name="newDecoder()Ljava/nio/charset/CharsetDecoder;" />
-		<method name="newEncoder()Ljava/nio/charset/CharsetEncoder;" />
-	</class>
-	<class name="java/nio/charset/CharsetDecoder" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/nio/charset/Charset;FF)V" />
-		<method name="averageCharsPerByte()F" />
-		<method name="charset()Ljava/nio/charset/Charset;" />
-		<method name="decode(Ljava/nio/ByteBuffer;)Ljava/nio/CharBuffer;" />
-		<method name="decode(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;Z)Ljava/nio/charset/CoderResult;" />
-		<method name="decodeLoop(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult;" />
-		<method name="detectedCharset()Ljava/nio/charset/Charset;" />
-		<method name="flush(Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult;" />
-		<method name="implFlush(Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult;" />
-		<method name="implOnMalformedInput(Ljava/nio/charset/CodingErrorAction;)V" />
-		<method name="implOnUnmappableCharacter(Ljava/nio/charset/CodingErrorAction;)V" />
-		<method name="implReplaceWith(Ljava/lang/String;)V" />
-		<method name="implReset()V" />
-		<method name="isAutoDetecting()Z" />
-		<method name="isCharsetDetected()Z" />
-		<method name="malformedInputAction()Ljava/nio/charset/CodingErrorAction;" />
-		<method name="maxCharsPerByte()F" />
-		<method name="onMalformedInput(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetDecoder;" />
-		<method name="onUnmappableCharacter(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetDecoder;" />
-		<method name="replaceWith(Ljava/lang/String;)Ljava/nio/charset/CharsetDecoder;" />
-		<method name="replacement()Ljava/lang/String;" />
-		<method name="reset()Ljava/nio/charset/CharsetDecoder;" />
-		<method name="unmappableCharacterAction()Ljava/nio/charset/CodingErrorAction;" />
-	</class>
-	<class name="java/nio/charset/CharsetEncoder" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/nio/charset/Charset;FF)V" />
-		<method name="&lt;init>(Ljava/nio/charset/Charset;FF[B)V" />
-		<method name="averageBytesPerChar()F" />
-		<method name="canEncode(C)Z" />
-		<method name="canEncode(Ljava/lang/CharSequence;)Z" />
-		<method name="charset()Ljava/nio/charset/Charset;" />
-		<method name="encode(Ljava/nio/CharBuffer;)Ljava/nio/ByteBuffer;" />
-		<method name="encode(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;Z)Ljava/nio/charset/CoderResult;" />
-		<method name="encodeLoop(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;)Ljava/nio/charset/CoderResult;" />
-		<method name="flush(Ljava/nio/ByteBuffer;)Ljava/nio/charset/CoderResult;" />
-		<method name="implFlush(Ljava/nio/ByteBuffer;)Ljava/nio/charset/CoderResult;" />
-		<method name="implOnMalformedInput(Ljava/nio/charset/CodingErrorAction;)V" />
-		<method name="implOnUnmappableCharacter(Ljava/nio/charset/CodingErrorAction;)V" />
-		<method name="implReplaceWith([B)V" />
-		<method name="implReset()V" />
-		<method name="isLegalReplacement([B)Z" />
-		<method name="malformedInputAction()Ljava/nio/charset/CodingErrorAction;" />
-		<method name="maxBytesPerChar()F" />
-		<method name="onMalformedInput(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetEncoder;" />
-		<method name="onUnmappableCharacter(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetEncoder;" />
-		<method name="replaceWith([B)Ljava/nio/charset/CharsetEncoder;" />
-		<method name="replacement()[B" />
-		<method name="reset()Ljava/nio/charset/CharsetEncoder;" />
-		<method name="unmappableCharacterAction()Ljava/nio/charset/CodingErrorAction;" />
-	</class>
-	<class name="java/nio/charset/CoderMalfunctionError" since="1">
-		<extends name="java/lang/Error" />
-		<method name="&lt;init>(Ljava/lang/Exception;)V" />
-	</class>
-	<class name="java/nio/charset/CoderResult" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="isError()Z" />
-		<method name="isMalformed()Z" />
-		<method name="isOverflow()Z" />
-		<method name="isUnderflow()Z" />
-		<method name="isUnmappable()Z" />
-		<method name="length()I" />
-		<method name="malformedForLength(I)Ljava/nio/charset/CoderResult;" />
-		<method name="throwException()V" />
-		<method name="unmappableForLength(I)Ljava/nio/charset/CoderResult;" />
-		<field name="OVERFLOW" />
-		<field name="UNDERFLOW" />
-	</class>
-	<class name="java/nio/charset/CodingErrorAction" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="IGNORE" />
-		<field name="REPLACE" />
-		<field name="REPORT" />
-	</class>
-	<class name="java/nio/charset/IllegalCharsetNameException" since="1">
-		<extends name="java/lang/IllegalArgumentException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="getCharsetName()Ljava/lang/String;" />
-	</class>
-	<class name="java/nio/charset/MalformedInputException" since="1">
-		<extends name="java/nio/charset/CharacterCodingException" />
-		<method name="&lt;init>(I)V" />
-		<method name="getInputLength()I" />
-	</class>
-	<class name="java/nio/charset/StandardCharsets" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="ISO_8859_1" />
-		<field name="US_ASCII" />
-		<field name="UTF_16" />
-		<field name="UTF_16BE" />
-		<field name="UTF_16LE" />
-		<field name="UTF_8" />
-	</class>
-	<class name="java/nio/charset/UnmappableCharacterException" since="1">
-		<extends name="java/nio/charset/CharacterCodingException" />
-		<method name="&lt;init>(I)V" />
-		<method name="getInputLength()I" />
-	</class>
-	<class name="java/nio/charset/UnsupportedCharsetException" since="1">
-		<extends name="java/lang/IllegalArgumentException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="getCharsetName()Ljava/lang/String;" />
-	</class>
-	<class name="java/nio/charset/spi/CharsetProvider" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="charsetForName(Ljava/lang/String;)Ljava/nio/charset/Charset;" />
-		<method name="charsets()Ljava/util/Iterator;" />
-	</class>
-	<class name="java/security/AccessControlContext" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/security/AccessControlContext;Ljava/security/DomainCombiner;)V" />
-		<method name="&lt;init>([Ljava/security/ProtectionDomain;)V" />
-		<method name="checkPermission(Ljava/security/Permission;)V" />
-		<method name="getDomainCombiner()Ljava/security/DomainCombiner;" />
-	</class>
-	<class name="java/security/AccessControlException" since="1">
-		<extends name="java/lang/SecurityException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/security/Permission;)V" />
-		<method name="getPermission()Ljava/security/Permission;" />
-	</class>
-	<class name="java/security/AccessController" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="checkPermission(Ljava/security/Permission;)V" />
-		<method name="doPrivileged(Ljava/security/PrivilegedAction;)Ljava/lang/Object;" />
-		<method name="doPrivileged(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;" />
-		<method name="doPrivileged(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;" />
-		<method name="doPrivileged(Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;" />
-		<method name="doPrivilegedWithCombiner(Ljava/security/PrivilegedAction;)Ljava/lang/Object;" since="9" />
-		<method name="doPrivilegedWithCombiner(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;" since="9" />
-		<method name="getContext()Ljava/security/AccessControlContext;" />
-	</class>
-	<class name="java/security/AlgorithmParameterGenerator" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/security/AlgorithmParameterGeneratorSpi;Ljava/security/Provider;Ljava/lang/String;)V" />
-		<method name="generateParameters()Ljava/security/AlgorithmParameters;" />
-		<method name="getAlgorithm()Ljava/lang/String;" />
-		<method name="getInstance(Ljava/lang/String;)Ljava/security/AlgorithmParameterGenerator;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/AlgorithmParameterGenerator;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/AlgorithmParameterGenerator;" />
-		<method name="getProvider()Ljava/security/Provider;" />
-		<method name="init(I)V" />
-		<method name="init(ILjava/security/SecureRandom;)V" />
-		<method name="init(Ljava/security/spec/AlgorithmParameterSpec;)V" />
-		<method name="init(Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V" />
-	</class>
-	<class name="java/security/AlgorithmParameterGeneratorSpi" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="engineGenerateParameters()Ljava/security/AlgorithmParameters;" />
-		<method name="engineInit(ILjava/security/SecureRandom;)V" />
-		<method name="engineInit(Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V" />
-	</class>
-	<class name="java/security/AlgorithmParameters" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/security/AlgorithmParametersSpi;Ljava/security/Provider;Ljava/lang/String;)V" />
-		<method name="getAlgorithm()Ljava/lang/String;" />
-		<method name="getEncoded()[B" />
-		<method name="getEncoded(Ljava/lang/String;)[B" />
-		<method name="getInstance(Ljava/lang/String;)Ljava/security/AlgorithmParameters;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/AlgorithmParameters;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/AlgorithmParameters;" />
-		<method name="getParameterSpec(Ljava/lang/Class;)Ljava/security/spec/AlgorithmParameterSpec;" />
-		<method name="getProvider()Ljava/security/Provider;" />
-		<method name="init(Ljava/security/spec/AlgorithmParameterSpec;)V" />
-		<method name="init([B)V" />
-		<method name="init([BLjava/lang/String;)V" />
-	</class>
-	<class name="java/security/AlgorithmParametersSpi" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="engineGetEncoded()[B" />
-		<method name="engineGetEncoded(Ljava/lang/String;)[B" />
-		<method name="engineGetParameterSpec(Ljava/lang/Class;)Ljava/security/spec/AlgorithmParameterSpec;" />
-		<method name="engineInit(Ljava/security/spec/AlgorithmParameterSpec;)V" />
-		<method name="engineInit([B)V" />
-		<method name="engineInit([BLjava/lang/String;)V" />
-		<method name="engineToString()Ljava/lang/String;" />
-	</class>
-	<class name="java/security/AllPermission" since="1">
-		<extends name="java/security/Permission" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-	</class>
-	<class name="java/security/AuthProvider" since="1">
-		<extends name="java/security/Provider" />
-		<method name="&lt;init>(Ljava/lang/String;DLjava/lang/String;)V" />
-		<method name="login(Ljavax/security/auth/Subject;Ljavax/security/auth/callback/CallbackHandler;)V" />
-		<method name="logout()V" />
-		<method name="setCallbackHandler(Ljavax/security/auth/callback/CallbackHandler;)V" />
-	</class>
-	<class name="java/security/BasicPermission" since="1">
-		<extends name="java/security/Permission" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-	</class>
-	<class name="java/security/Certificate" since="1">
-		<extends name="java/lang/Object" />
-		<method name="decode(Ljava/io/InputStream;)V" />
-		<method name="encode(Ljava/io/OutputStream;)V" />
-		<method name="getFormat()Ljava/lang/String;" />
-		<method name="getGuarantor()Ljava/security/Principal;" />
-		<method name="getPrincipal()Ljava/security/Principal;" />
-		<method name="getPublicKey()Ljava/security/PublicKey;" />
-		<method name="toString(Z)Ljava/lang/String;" />
-	</class>
-	<class name="java/security/CodeSigner" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(Ljava/security/cert/CertPath;Ljava/security/Timestamp;)V" />
-		<method name="getSignerCertPath()Ljava/security/cert/CertPath;" />
-		<method name="getTimestamp()Ljava/security/Timestamp;" />
-	</class>
-	<class name="java/security/CodeSource" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(Ljava/net/URL;[Ljava/security/CodeSigner;)V" />
-		<method name="&lt;init>(Ljava/net/URL;[Ljava/security/cert/Certificate;)V" />
-		<method name="getCertificates()[Ljava/security/cert/Certificate;" />
-		<method name="getCodeSigners()[Ljava/security/CodeSigner;" />
-		<method name="getLocation()Ljava/net/URL;" />
-		<method name="implies(Ljava/security/CodeSource;)Z" />
-	</class>
-	<class name="java/security/DigestException" since="1">
-		<extends name="java/security/GeneralSecurityException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/security/DigestInputStream" since="1">
-		<extends name="java/io/FilterInputStream" />
-		<method name="&lt;init>(Ljava/io/InputStream;Ljava/security/MessageDigest;)V" />
-		<method name="getMessageDigest()Ljava/security/MessageDigest;" />
-		<method name="on(Z)V" />
-		<method name="setMessageDigest(Ljava/security/MessageDigest;)V" />
-		<field name="digest" />
-	</class>
-	<class name="java/security/DigestOutputStream" since="1">
-		<extends name="java/io/FilterOutputStream" />
-		<method name="&lt;init>(Ljava/io/OutputStream;Ljava/security/MessageDigest;)V" />
-		<method name="getMessageDigest()Ljava/security/MessageDigest;" />
-		<method name="on(Z)V" />
-		<method name="setMessageDigest(Ljava/security/MessageDigest;)V" />
-		<field name="digest" />
-	</class>
-	<class name="java/security/DomainCombiner" since="1">
-		<extends name="java/lang/Object" />
-		<method name="combine([Ljava/security/ProtectionDomain;[Ljava/security/ProtectionDomain;)[Ljava/security/ProtectionDomain;" />
-	</class>
-	<class name="java/security/GeneralSecurityException" since="1">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/security/Guard" since="1">
-		<extends name="java/lang/Object" />
-		<method name="checkGuard(Ljava/lang/Object;)V" />
-	</class>
-	<class name="java/security/GuardedObject" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(Ljava/lang/Object;Ljava/security/Guard;)V" />
-		<method name="getObject()Ljava/lang/Object;" />
-	</class>
-	<class name="java/security/Identity" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/security/Principal" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/security/IdentityScope;)V" />
-		<method name="addCertificate(Ljava/security/Certificate;)V" />
-		<method name="certificates()[Ljava/security/Certificate;" />
-		<method name="getInfo()Ljava/lang/String;" />
-		<method name="getPublicKey()Ljava/security/PublicKey;" />
-		<method name="getScope()Ljava/security/IdentityScope;" />
-		<method name="identityEquals(Ljava/security/Identity;)Z" />
-		<method name="removeCertificate(Ljava/security/Certificate;)V" />
-		<method name="setInfo(Ljava/lang/String;)V" />
-		<method name="setPublicKey(Ljava/security/PublicKey;)V" />
-		<method name="toString(Z)Ljava/lang/String;" />
-	</class>
-	<class name="java/security/IdentityScope" since="1">
-		<extends name="java/security/Identity" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/security/IdentityScope;)V" />
-		<method name="addIdentity(Ljava/security/Identity;)V" />
-		<method name="getIdentity(Ljava/lang/String;)Ljava/security/Identity;" />
-		<method name="getIdentity(Ljava/security/Principal;)Ljava/security/Identity;" />
-		<method name="getIdentity(Ljava/security/PublicKey;)Ljava/security/Identity;" />
-		<method name="getSystemScope()Ljava/security/IdentityScope;" />
-		<method name="identities()Ljava/util/Enumeration;" />
-		<method name="removeIdentity(Ljava/security/Identity;)V" />
-		<method name="setSystemScope(Ljava/security/IdentityScope;)V" />
-		<method name="size()I" />
-	</class>
-	<class name="java/security/InvalidAlgorithmParameterException" since="1">
-		<extends name="java/security/GeneralSecurityException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/security/InvalidKeyException" since="1">
-		<extends name="java/security/KeyException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/security/InvalidParameterException" since="1">
-		<extends name="java/lang/IllegalArgumentException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/security/Key" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="getAlgorithm()Ljava/lang/String;" />
-		<method name="getEncoded()[B" />
-		<method name="getFormat()Ljava/lang/String;" />
-		<field name="serialVersionUID" />
-	</class>
-	<class name="java/security/KeyException" since="1">
-		<extends name="java/security/GeneralSecurityException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/security/KeyFactory" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/security/KeyFactorySpi;Ljava/security/Provider;Ljava/lang/String;)V" />
-		<method name="generatePrivate(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;" />
-		<method name="generatePublic(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;" />
-		<method name="getAlgorithm()Ljava/lang/String;" />
-		<method name="getInstance(Ljava/lang/String;)Ljava/security/KeyFactory;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyFactory;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/KeyFactory;" />
-		<method name="getKeySpec(Ljava/security/Key;Ljava/lang/Class;)Ljava/security/spec/KeySpec;" />
-		<method name="getProvider()Ljava/security/Provider;" />
-		<method name="translateKey(Ljava/security/Key;)Ljava/security/Key;" />
-	</class>
-	<class name="java/security/KeyFactorySpi" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="engineGeneratePrivate(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;" />
-		<method name="engineGeneratePublic(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;" />
-		<method name="engineGetKeySpec(Ljava/security/Key;Ljava/lang/Class;)Ljava/security/spec/KeySpec;" />
-		<method name="engineTranslateKey(Ljava/security/Key;)Ljava/security/Key;" />
-	</class>
-	<class name="java/security/KeyManagementException" since="1">
-		<extends name="java/security/KeyException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/security/KeyPair" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(Ljava/security/PublicKey;Ljava/security/PrivateKey;)V" />
-		<method name="getPrivate()Ljava/security/PrivateKey;" />
-		<method name="getPublic()Ljava/security/PublicKey;" />
-	</class>
-	<class name="java/security/KeyPairGenerator" since="1">
-		<extends name="java/security/KeyPairGeneratorSpi" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="genKeyPair()Ljava/security/KeyPair;" />
-		<method name="getAlgorithm()Ljava/lang/String;" />
-		<method name="getInstance(Ljava/lang/String;)Ljava/security/KeyPairGenerator;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyPairGenerator;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/KeyPairGenerator;" />
-		<method name="getProvider()Ljava/security/Provider;" />
-		<method name="initialize(I)V" />
-		<method name="initialize(Ljava/security/spec/AlgorithmParameterSpec;)V" />
-	</class>
-	<class name="java/security/KeyPairGeneratorSpi" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="generateKeyPair()Ljava/security/KeyPair;" />
-		<method name="initialize(ILjava/security/SecureRandom;)V" />
-		<method name="initialize(Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V" />
-	</class>
-	<class name="java/security/KeyRep" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(Ljava/security/KeyRep$Type;Ljava/lang/String;Ljava/lang/String;[B)V" />
-		<method name="readResolve()Ljava/lang/Object;" />
-	</class>
-	<class name="java/security/KeyRep$Type" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Ljava/security/KeyRep$Type;" />
-		<method name="values()[Ljava/security/KeyRep$Type;" />
-		<field name="PRIVATE" />
-		<field name="PUBLIC" />
-		<field name="SECRET" />
-	</class>
-	<class name="java/security/KeyStore" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/security/KeyStoreSpi;Ljava/security/Provider;Ljava/lang/String;)V" />
-		<method name="aliases()Ljava/util/Enumeration;" />
-		<method name="containsAlias(Ljava/lang/String;)Z" />
-		<method name="deleteEntry(Ljava/lang/String;)V" />
-		<method name="entryInstanceOf(Ljava/lang/String;Ljava/lang/Class;)Z" />
-		<method name="getCertificate(Ljava/lang/String;)Ljava/security/cert/Certificate;" />
-		<method name="getCertificateAlias(Ljava/security/cert/Certificate;)Ljava/lang/String;" />
-		<method name="getCertificateChain(Ljava/lang/String;)[Ljava/security/cert/Certificate;" />
-		<method name="getCreationDate(Ljava/lang/String;)Ljava/util/Date;" />
-		<method name="getDefaultType()Ljava/lang/String;" />
-		<method name="getEntry(Ljava/lang/String;Ljava/security/KeyStore$ProtectionParameter;)Ljava/security/KeyStore$Entry;" />
-		<method name="getInstance(Ljava/lang/String;)Ljava/security/KeyStore;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyStore;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/KeyStore;" />
-		<method name="getKey(Ljava/lang/String;[C)Ljava/security/Key;" />
-		<method name="getProvider()Ljava/security/Provider;" />
-		<method name="getType()Ljava/lang/String;" />
-		<method name="isCertificateEntry(Ljava/lang/String;)Z" />
-		<method name="isKeyEntry(Ljava/lang/String;)Z" />
-		<method name="load(Ljava/io/InputStream;[C)V" />
-		<method name="load(Ljava/security/KeyStore$LoadStoreParameter;)V" />
-		<method name="setCertificateEntry(Ljava/lang/String;Ljava/security/cert/Certificate;)V" />
-		<method name="setEntry(Ljava/lang/String;Ljava/security/KeyStore$Entry;Ljava/security/KeyStore$ProtectionParameter;)V" />
-		<method name="setKeyEntry(Ljava/lang/String;Ljava/security/Key;[C[Ljava/security/cert/Certificate;)V" />
-		<method name="setKeyEntry(Ljava/lang/String;[B[Ljava/security/cert/Certificate;)V" />
-		<method name="size()I" />
-		<method name="store(Ljava/io/OutputStream;[C)V" />
-		<method name="store(Ljava/security/KeyStore$LoadStoreParameter;)V" />
-	</class>
-	<class name="java/security/KeyStore$Builder" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getKeyStore()Ljava/security/KeyStore;" />
-		<method name="getProtectionParameter(Ljava/lang/String;)Ljava/security/KeyStore$ProtectionParameter;" />
-		<method name="newInstance(Ljava/lang/String;Ljava/security/Provider;Ljava/io/File;Ljava/security/KeyStore$ProtectionParameter;)Ljava/security/KeyStore$Builder;" />
-		<method name="newInstance(Ljava/lang/String;Ljava/security/Provider;Ljava/security/KeyStore$ProtectionParameter;)Ljava/security/KeyStore$Builder;" />
-		<method name="newInstance(Ljava/security/KeyStore;Ljava/security/KeyStore$ProtectionParameter;)Ljava/security/KeyStore$Builder;" />
-	</class>
-	<class name="java/security/KeyStore$CallbackHandlerProtection" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/KeyStore$ProtectionParameter" />
-		<method name="&lt;init>(Ljavax/security/auth/callback/CallbackHandler;)V" />
-		<method name="getCallbackHandler()Ljavax/security/auth/callback/CallbackHandler;" />
-	</class>
-	<class name="java/security/KeyStore$Entry" since="1">
-		<extends name="java/lang/Object" />
-	</class>
-	<class name="java/security/KeyStore$LoadStoreParameter" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getProtectionParameter()Ljava/security/KeyStore$ProtectionParameter;" />
-	</class>
-	<class name="java/security/KeyStore$PasswordProtection" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/KeyStore$ProtectionParameter" />
-		<implements name="javax/security/auth/Destroyable" />
-		<method name="&lt;init>([C)V" />
-		<method name="getPassword()[C" />
-	</class>
-	<class name="java/security/KeyStore$PrivateKeyEntry" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/KeyStore$Entry" />
-		<method name="&lt;init>(Ljava/security/PrivateKey;[Ljava/security/cert/Certificate;)V" />
-		<method name="getCertificate()Ljava/security/cert/Certificate;" />
-		<method name="getCertificateChain()[Ljava/security/cert/Certificate;" />
-		<method name="getPrivateKey()Ljava/security/PrivateKey;" />
-	</class>
-	<class name="java/security/KeyStore$ProtectionParameter" since="1">
-		<extends name="java/lang/Object" />
-	</class>
-	<class name="java/security/KeyStore$SecretKeyEntry" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/KeyStore$Entry" />
-		<method name="&lt;init>(Ljavax/crypto/SecretKey;)V" />
-		<method name="getSecretKey()Ljavax/crypto/SecretKey;" />
-	</class>
-	<class name="java/security/KeyStore$TrustedCertificateEntry" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/KeyStore$Entry" />
-		<method name="&lt;init>(Ljava/security/cert/Certificate;)V" />
-		<method name="getTrustedCertificate()Ljava/security/cert/Certificate;" />
-	</class>
-	<class name="java/security/KeyStoreException" since="1">
-		<extends name="java/security/GeneralSecurityException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/security/KeyStoreSpi" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="engineAliases()Ljava/util/Enumeration;" />
-		<method name="engineContainsAlias(Ljava/lang/String;)Z" />
-		<method name="engineDeleteEntry(Ljava/lang/String;)V" />
-		<method name="engineEntryInstanceOf(Ljava/lang/String;Ljava/lang/Class;)Z" />
-		<method name="engineGetCertificate(Ljava/lang/String;)Ljava/security/cert/Certificate;" />
-		<method name="engineGetCertificateAlias(Ljava/security/cert/Certificate;)Ljava/lang/String;" />
-		<method name="engineGetCertificateChain(Ljava/lang/String;)[Ljava/security/cert/Certificate;" />
-		<method name="engineGetCreationDate(Ljava/lang/String;)Ljava/util/Date;" />
-		<method name="engineGetEntry(Ljava/lang/String;Ljava/security/KeyStore$ProtectionParameter;)Ljava/security/KeyStore$Entry;" />
-		<method name="engineGetKey(Ljava/lang/String;[C)Ljava/security/Key;" />
-		<method name="engineIsCertificateEntry(Ljava/lang/String;)Z" />
-		<method name="engineIsKeyEntry(Ljava/lang/String;)Z" />
-		<method name="engineLoad(Ljava/io/InputStream;[C)V" />
-		<method name="engineLoad(Ljava/security/KeyStore$LoadStoreParameter;)V" />
-		<method name="engineSetCertificateEntry(Ljava/lang/String;Ljava/security/cert/Certificate;)V" />
-		<method name="engineSetEntry(Ljava/lang/String;Ljava/security/KeyStore$Entry;Ljava/security/KeyStore$ProtectionParameter;)V" />
-		<method name="engineSetKeyEntry(Ljava/lang/String;Ljava/security/Key;[C[Ljava/security/cert/Certificate;)V" />
-		<method name="engineSetKeyEntry(Ljava/lang/String;[B[Ljava/security/cert/Certificate;)V" />
-		<method name="engineSize()I" />
-		<method name="engineStore(Ljava/io/OutputStream;[C)V" />
-		<method name="engineStore(Ljava/security/KeyStore$LoadStoreParameter;)V" />
-	</class>
-	<class name="java/security/MessageDigest" since="1">
-		<extends name="java/security/MessageDigestSpi" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="digest()[B" />
-		<method name="digest([B)[B" />
-		<method name="digest([BII)I" />
-		<method name="getAlgorithm()Ljava/lang/String;" />
-		<method name="getDigestLength()I" />
-		<method name="getInstance(Ljava/lang/String;)Ljava/security/MessageDigest;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/MessageDigest;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/MessageDigest;" />
-		<method name="getProvider()Ljava/security/Provider;" />
-		<method name="isEqual([B[B)Z" />
-		<method name="reset()V" />
-		<method name="update(B)V" />
-		<method name="update(Ljava/nio/ByteBuffer;)V" />
-		<method name="update([B)V" />
-		<method name="update([BII)V" />
-	</class>
-	<class name="java/security/MessageDigestSpi" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="engineDigest()[B" />
-		<method name="engineDigest([BII)I" />
-		<method name="engineGetDigestLength()I" />
-		<method name="engineReset()V" />
-		<method name="engineUpdate(B)V" />
-		<method name="engineUpdate(Ljava/nio/ByteBuffer;)V" />
-		<method name="engineUpdate([BII)V" />
-	</class>
-	<class name="java/security/NoSuchAlgorithmException" since="1">
-		<extends name="java/security/GeneralSecurityException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/security/NoSuchProviderException" since="1">
-		<extends name="java/security/GeneralSecurityException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/security/Permission" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/security/Guard" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="getActions()Ljava/lang/String;" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="implies(Ljava/security/Permission;)Z" />
-		<method name="newPermissionCollection()Ljava/security/PermissionCollection;" />
-	</class>
-	<class name="java/security/PermissionCollection" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>()V" />
-		<method name="add(Ljava/security/Permission;)V" />
-		<method name="elements()Ljava/util/Enumeration;" />
-		<method name="implies(Ljava/security/Permission;)Z" />
-		<method name="isReadOnly()Z" />
-		<method name="setReadOnly()V" />
-	</class>
-	<class name="java/security/Permissions" since="1">
-		<extends name="java/security/PermissionCollection" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/security/Policy" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getInstance(Ljava/lang/String;Ljava/security/Policy$Parameters;)Ljava/security/Policy;" since="9" />
-		<method name="getInstance(Ljava/lang/String;Ljava/security/Policy$Parameters;Ljava/lang/String;)Ljava/security/Policy;" since="9" />
-		<method name="getInstance(Ljava/lang/String;Ljava/security/Policy$Parameters;Ljava/security/Provider;)Ljava/security/Policy;" since="9" />
-		<method name="getParameters()Ljava/security/Policy$Parameters;" since="9" />
-		<method name="getPermissions(Ljava/security/CodeSource;)Ljava/security/PermissionCollection;" />
-		<method name="getPermissions(Ljava/security/ProtectionDomain;)Ljava/security/PermissionCollection;" />
-		<method name="getPolicy()Ljava/security/Policy;" />
-		<method name="getProvider()Ljava/security/Provider;" since="9" />
-		<method name="getType()Ljava/lang/String;" since="9" />
-		<method name="implies(Ljava/security/ProtectionDomain;Ljava/security/Permission;)Z" />
-		<method name="refresh()V" />
-		<method name="setPolicy(Ljava/security/Policy;)V" />
-		<field name="UNSUPPORTED_EMPTY_COLLECTION" since="9" />
-	</class>
-	<class name="java/security/Policy$Parameters" since="9">
-		<extends name="java/lang/Object" />
-	</class>
-	<class name="java/security/PolicySpi" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="engineGetPermissions(Ljava/security/CodeSource;)Ljava/security/PermissionCollection;" />
-		<method name="engineGetPermissions(Ljava/security/ProtectionDomain;)Ljava/security/PermissionCollection;" />
-		<method name="engineImplies(Ljava/security/ProtectionDomain;Ljava/security/Permission;)Z" />
-		<method name="engineRefresh()V" />
-	</class>
-	<class name="java/security/Principal" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getName()Ljava/lang/String;" />
-	</class>
-	<class name="java/security/PrivateKey" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/Key" />
-		<field name="serialVersionUID" />
-	</class>
-	<class name="java/security/PrivilegedAction" since="1">
-		<extends name="java/lang/Object" />
-		<method name="run()Ljava/lang/Object;" />
-	</class>
-	<class name="java/security/PrivilegedActionException" since="1">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>(Ljava/lang/Exception;)V" />
-		<method name="getException()Ljava/lang/Exception;" />
-	</class>
-	<class name="java/security/PrivilegedExceptionAction" since="1">
-		<extends name="java/lang/Object" />
-		<method name="run()Ljava/lang/Object;" />
-	</class>
-	<class name="java/security/ProtectionDomain" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/security/CodeSource;Ljava/security/PermissionCollection;)V" />
-		<method name="&lt;init>(Ljava/security/CodeSource;Ljava/security/PermissionCollection;Ljava/lang/ClassLoader;[Ljava/security/Principal;)V" />
-		<method name="getClassLoader()Ljava/lang/ClassLoader;" />
-		<method name="getCodeSource()Ljava/security/CodeSource;" />
-		<method name="getPermissions()Ljava/security/PermissionCollection;" />
-		<method name="getPrincipals()[Ljava/security/Principal;" />
-		<method name="implies(Ljava/security/Permission;)Z" />
-	</class>
-	<class name="java/security/Provider" since="1">
-		<extends name="java/util/Properties" />
-		<method name="&lt;init>(Ljava/lang/String;DLjava/lang/String;)V" />
-		<method name="getInfo()Ljava/lang/String;" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getService(Ljava/lang/String;Ljava/lang/String;)Ljava/security/Provider$Service;" />
-		<method name="getServices()Ljava/util/Set;" />
-		<method name="getVersion()D" />
-		<method name="putService(Ljava/security/Provider$Service;)V" />
-		<method name="removeService(Ljava/security/Provider$Service;)V" />
-	</class>
-	<class name="java/security/Provider$Service" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/security/Provider;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/Map;)V" />
-		<method name="getAlgorithm()Ljava/lang/String;" />
-		<method name="getAttribute(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getClassName()Ljava/lang/String;" />
-		<method name="getProvider()Ljava/security/Provider;" />
-		<method name="getType()Ljava/lang/String;" />
-		<method name="newInstance(Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="supportsParameter(Ljava/lang/Object;)Z" />
-	</class>
-	<class name="java/security/ProviderException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/security/PublicKey" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/Key" />
-		<field name="serialVersionUID" />
-	</class>
-	<class name="java/security/SecureClassLoader" since="1">
-		<extends name="java/lang/ClassLoader" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/ClassLoader;)V" />
-		<method name="defineClass(Ljava/lang/String;Ljava/nio/ByteBuffer;Ljava/security/CodeSource;)Ljava/lang/Class;" />
-		<method name="defineClass(Ljava/lang/String;[BIILjava/security/CodeSource;)Ljava/lang/Class;" />
-		<method name="getPermissions(Ljava/security/CodeSource;)Ljava/security/PermissionCollection;" />
-	</class>
-	<class name="java/security/SecureRandom" since="1">
-		<extends name="java/util/Random" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/security/SecureRandomSpi;Ljava/security/Provider;)V" />
-		<method name="&lt;init>([B)V" />
-		<method name="generateSeed(I)[B" />
-		<method name="getAlgorithm()Ljava/lang/String;" />
-		<method name="getInstance(Ljava/lang/String;)Ljava/security/SecureRandom;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/SecureRandom;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/SecureRandom;" />
-		<method name="getProvider()Ljava/security/Provider;" />
-		<method name="getSeed(I)[B" />
-		<method name="setSeed([B)V" />
-	</class>
-	<class name="java/security/SecureRandomSpi" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>()V" />
-		<method name="engineGenerateSeed(I)[B" />
-		<method name="engineNextBytes([B)V" />
-		<method name="engineSetSeed([B)V" />
-	</class>
-	<class name="java/security/Security" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addProvider(Ljava/security/Provider;)I" />
-		<method name="getAlgorithmProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getAlgorithms(Ljava/lang/String;)Ljava/util/Set;" />
-		<method name="getProperty(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getProvider(Ljava/lang/String;)Ljava/security/Provider;" />
-		<method name="getProviders()[Ljava/security/Provider;" />
-		<method name="getProviders(Ljava/lang/String;)[Ljava/security/Provider;" />
-		<method name="getProviders(Ljava/util/Map;)[Ljava/security/Provider;" />
-		<method name="insertProviderAt(Ljava/security/Provider;I)I" />
-		<method name="removeProvider(Ljava/lang/String;)V" />
-		<method name="setProperty(Ljava/lang/String;Ljava/lang/String;)V" />
-	</class>
-	<class name="java/security/SecurityPermission" since="1">
-		<extends name="java/security/BasicPermission" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-	</class>
-	<class name="java/security/Signature" since="1">
-		<extends name="java/security/SignatureSpi" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="getAlgorithm()Ljava/lang/String;" />
-		<method name="getInstance(Ljava/lang/String;)Ljava/security/Signature;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/Signature;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/Signature;" />
-		<method name="getParameter(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="getParameters()Ljava/security/AlgorithmParameters;" />
-		<method name="getProvider()Ljava/security/Provider;" />
-		<method name="initSign(Ljava/security/PrivateKey;)V" />
-		<method name="initSign(Ljava/security/PrivateKey;Ljava/security/SecureRandom;)V" />
-		<method name="initVerify(Ljava/security/PublicKey;)V" />
-		<method name="initVerify(Ljava/security/cert/Certificate;)V" />
-		<method name="setParameter(Ljava/lang/String;Ljava/lang/Object;)V" />
-		<method name="setParameter(Ljava/security/spec/AlgorithmParameterSpec;)V" />
-		<method name="sign()[B" />
-		<method name="sign([BII)I" />
-		<method name="update(B)V" />
-		<method name="update(Ljava/nio/ByteBuffer;)V" />
-		<method name="update([B)V" />
-		<method name="update([BII)V" />
-		<method name="verify([B)Z" />
-		<method name="verify([BII)Z" />
-		<field name="SIGN" />
-		<field name="UNINITIALIZED" />
-		<field name="VERIFY" />
-		<field name="state" />
-	</class>
-	<class name="java/security/SignatureException" since="1">
-		<extends name="java/security/GeneralSecurityException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/security/SignatureSpi" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="engineGetParameter(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="engineGetParameters()Ljava/security/AlgorithmParameters;" />
-		<method name="engineInitSign(Ljava/security/PrivateKey;)V" />
-		<method name="engineInitSign(Ljava/security/PrivateKey;Ljava/security/SecureRandom;)V" />
-		<method name="engineInitVerify(Ljava/security/PublicKey;)V" />
-		<method name="engineSetParameter(Ljava/lang/String;Ljava/lang/Object;)V" />
-		<method name="engineSetParameter(Ljava/security/spec/AlgorithmParameterSpec;)V" />
-		<method name="engineSign()[B" />
-		<method name="engineSign([BII)I" />
-		<method name="engineUpdate(B)V" />
-		<method name="engineUpdate(Ljava/nio/ByteBuffer;)V" />
-		<method name="engineUpdate([BII)V" />
-		<method name="engineVerify([B)Z" />
-		<method name="engineVerify([BII)Z" />
-		<field name="appRandom" />
-	</class>
-	<class name="java/security/SignedObject" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(Ljava/io/Serializable;Ljava/security/PrivateKey;Ljava/security/Signature;)V" />
-		<method name="getAlgorithm()Ljava/lang/String;" />
-		<method name="getObject()Ljava/lang/Object;" />
-		<method name="getSignature()[B" />
-		<method name="verify(Ljava/security/PublicKey;Ljava/security/Signature;)Z" />
-	</class>
-	<class name="java/security/Signer" since="1">
-		<extends name="java/security/Identity" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/security/IdentityScope;)V" />
-		<method name="getPrivateKey()Ljava/security/PrivateKey;" />
-		<method name="setKeyPair(Ljava/security/KeyPair;)V" />
-	</class>
-	<class name="java/security/Timestamp" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(Ljava/util/Date;Ljava/security/cert/CertPath;)V" />
-		<method name="getSignerCertPath()Ljava/security/cert/CertPath;" />
-		<method name="getTimestamp()Ljava/util/Date;" />
-	</class>
-	<class name="java/security/UnrecoverableEntryException" since="1">
-		<extends name="java/security/GeneralSecurityException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/security/UnrecoverableKeyException" since="1">
-		<extends name="java/security/GeneralSecurityException" />
-		<extends name="java/security/UnrecoverableEntryException" since="9" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/security/UnresolvedPermission" since="1">
-		<extends name="java/security/Permission" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/security/cert/Certificate;)V" />
-		<method name="getUnresolvedActions()Ljava/lang/String;" />
-		<method name="getUnresolvedCerts()[Ljava/security/cert/Certificate;" />
-		<method name="getUnresolvedName()Ljava/lang/String;" />
-		<method name="getUnresolvedType()Ljava/lang/String;" />
-	</class>
-	<class name="java/security/acl/Acl" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/acl/Owner" />
-		<method name="addEntry(Ljava/security/Principal;Ljava/security/acl/AclEntry;)Z" />
-		<method name="checkPermission(Ljava/security/Principal;Ljava/security/acl/Permission;)Z" />
-		<method name="entries()Ljava/util/Enumeration;" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getPermissions(Ljava/security/Principal;)Ljava/util/Enumeration;" />
-		<method name="removeEntry(Ljava/security/Principal;Ljava/security/acl/AclEntry;)Z" />
-		<method name="setName(Ljava/security/Principal;Ljava/lang/String;)V" />
-	</class>
-	<class name="java/security/acl/AclEntry" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-		<method name="addPermission(Ljava/security/acl/Permission;)Z" />
-		<method name="checkPermission(Ljava/security/acl/Permission;)Z" />
-		<method name="getPrincipal()Ljava/security/Principal;" />
-		<method name="isNegative()Z" />
-		<method name="permissions()Ljava/util/Enumeration;" />
-		<method name="removePermission(Ljava/security/acl/Permission;)Z" />
-		<method name="setNegativePermissions()V" />
-		<method name="setPrincipal(Ljava/security/Principal;)Z" />
-	</class>
-	<class name="java/security/acl/AclNotFoundException" since="1">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/security/acl/Group" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/Principal" />
-		<method name="addMember(Ljava/security/Principal;)Z" />
-		<method name="isMember(Ljava/security/Principal;)Z" />
-		<method name="members()Ljava/util/Enumeration;" />
-		<method name="removeMember(Ljava/security/Principal;)Z" />
-	</class>
-	<class name="java/security/acl/LastOwnerException" since="1">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/security/acl/NotOwnerException" since="1">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/security/acl/Owner" since="1">
-		<extends name="java/lang/Object" />
-		<method name="addOwner(Ljava/security/Principal;Ljava/security/Principal;)Z" />
-		<method name="deleteOwner(Ljava/security/Principal;Ljava/security/Principal;)Z" />
-		<method name="isOwner(Ljava/security/Principal;)Z" />
-	</class>
-	<class name="java/security/acl/Permission" since="1">
-		<extends name="java/lang/Object" />
-	</class>
-	<class name="java/security/cert/CRL" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="getType()Ljava/lang/String;" />
-		<method name="isRevoked(Ljava/security/cert/Certificate;)Z" />
-	</class>
-	<class name="java/security/cert/CRLException" since="1">
-		<extends name="java/security/GeneralSecurityException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/security/cert/CRLSelector" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-		<method name="match(Ljava/security/cert/CRL;)Z" />
-	</class>
-	<class name="java/security/cert/CertPath" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="getCertificates()Ljava/util/List;" />
-		<method name="getEncoded()[B" />
-		<method name="getEncoded(Ljava/lang/String;)[B" />
-		<method name="getEncodings()Ljava/util/Iterator;" />
-		<method name="getType()Ljava/lang/String;" />
-		<method name="writeReplace()Ljava/lang/Object;" />
-	</class>
-	<class name="java/security/cert/CertPath$CertPathRep" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(Ljava/lang/String;[B)V" />
-		<method name="readResolve()Ljava/lang/Object;" />
-	</class>
-	<class name="java/security/cert/CertPathBuilder" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/security/cert/CertPathBuilderSpi;Ljava/security/Provider;Ljava/lang/String;)V" />
-		<method name="build(Ljava/security/cert/CertPathParameters;)Ljava/security/cert/CertPathBuilderResult;" />
-		<method name="getAlgorithm()Ljava/lang/String;" />
-		<method name="getDefaultType()Ljava/lang/String;" />
-		<method name="getInstance(Ljava/lang/String;)Ljava/security/cert/CertPathBuilder;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/cert/CertPathBuilder;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/cert/CertPathBuilder;" />
-		<method name="getProvider()Ljava/security/Provider;" />
-	</class>
-	<class name="java/security/cert/CertPathBuilderException" since="1">
-		<extends name="java/security/GeneralSecurityException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/security/cert/CertPathBuilderResult" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-		<method name="getCertPath()Ljava/security/cert/CertPath;" />
-	</class>
-	<class name="java/security/cert/CertPathBuilderSpi" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="engineBuild(Ljava/security/cert/CertPathParameters;)Ljava/security/cert/CertPathBuilderResult;" />
-	</class>
-	<class name="java/security/cert/CertPathParameters" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-	</class>
-	<class name="java/security/cert/CertPathValidator" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/security/cert/CertPathValidatorSpi;Ljava/security/Provider;Ljava/lang/String;)V" />
-		<method name="getAlgorithm()Ljava/lang/String;" />
-		<method name="getDefaultType()Ljava/lang/String;" />
-		<method name="getInstance(Ljava/lang/String;)Ljava/security/cert/CertPathValidator;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/cert/CertPathValidator;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/cert/CertPathValidator;" />
-		<method name="getProvider()Ljava/security/Provider;" />
-		<method name="validate(Ljava/security/cert/CertPath;Ljava/security/cert/CertPathParameters;)Ljava/security/cert/CertPathValidatorResult;" />
-	</class>
-	<class name="java/security/cert/CertPathValidatorException" since="1">
-		<extends name="java/security/GeneralSecurityException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;Ljava/security/cert/CertPath;I)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-		<method name="getCertPath()Ljava/security/cert/CertPath;" />
-		<method name="getIndex()I" />
-	</class>
-	<class name="java/security/cert/CertPathValidatorResult" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-	</class>
-	<class name="java/security/cert/CertPathValidatorSpi" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="engineValidate(Ljava/security/cert/CertPath;Ljava/security/cert/CertPathParameters;)Ljava/security/cert/CertPathValidatorResult;" />
-	</class>
-	<class name="java/security/cert/CertSelector" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-		<method name="match(Ljava/security/cert/Certificate;)Z" />
-	</class>
-	<class name="java/security/cert/CertStore" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/security/cert/CertStoreSpi;Ljava/security/Provider;Ljava/lang/String;Ljava/security/cert/CertStoreParameters;)V" />
-		<method name="getCRLs(Ljava/security/cert/CRLSelector;)Ljava/util/Collection;" />
-		<method name="getCertStoreParameters()Ljava/security/cert/CertStoreParameters;" />
-		<method name="getCertificates(Ljava/security/cert/CertSelector;)Ljava/util/Collection;" />
-		<method name="getDefaultType()Ljava/lang/String;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/security/cert/CertStoreParameters;)Ljava/security/cert/CertStore;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/security/cert/CertStoreParameters;Ljava/lang/String;)Ljava/security/cert/CertStore;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/security/cert/CertStoreParameters;Ljava/security/Provider;)Ljava/security/cert/CertStore;" />
-		<method name="getProvider()Ljava/security/Provider;" />
-		<method name="getType()Ljava/lang/String;" />
-	</class>
-	<class name="java/security/cert/CertStoreException" since="1">
-		<extends name="java/security/GeneralSecurityException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/security/cert/CertStoreParameters" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-	</class>
-	<class name="java/security/cert/CertStoreSpi" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/security/cert/CertStoreParameters;)V" />
-		<method name="engineGetCRLs(Ljava/security/cert/CRLSelector;)Ljava/util/Collection;" />
-		<method name="engineGetCertificates(Ljava/security/cert/CertSelector;)Ljava/util/Collection;" />
-	</class>
-	<class name="java/security/cert/Certificate" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="getEncoded()[B" />
-		<method name="getPublicKey()Ljava/security/PublicKey;" />
-		<method name="getType()Ljava/lang/String;" />
-		<method name="verify(Ljava/security/PublicKey;)V" />
-		<method name="verify(Ljava/security/PublicKey;Ljava/lang/String;)V" />
-		<method name="writeReplace()Ljava/lang/Object;" />
-	</class>
-	<class name="java/security/cert/Certificate$CertificateRep" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(Ljava/lang/String;[B)V" />
-		<method name="readResolve()Ljava/lang/Object;" />
-	</class>
-	<class name="java/security/cert/CertificateEncodingException" since="1">
-		<extends name="java/security/cert/CertificateException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/security/cert/CertificateException" since="1">
-		<extends name="java/security/GeneralSecurityException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/security/cert/CertificateExpiredException" since="1">
-		<extends name="java/security/cert/CertificateException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/security/cert/CertificateFactory" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/security/cert/CertificateFactorySpi;Ljava/security/Provider;Ljava/lang/String;)V" />
-		<method name="generateCRL(Ljava/io/InputStream;)Ljava/security/cert/CRL;" />
-		<method name="generateCRLs(Ljava/io/InputStream;)Ljava/util/Collection;" />
-		<method name="generateCertPath(Ljava/io/InputStream;)Ljava/security/cert/CertPath;" />
-		<method name="generateCertPath(Ljava/io/InputStream;Ljava/lang/String;)Ljava/security/cert/CertPath;" />
-		<method name="generateCertPath(Ljava/util/List;)Ljava/security/cert/CertPath;" />
-		<method name="generateCertificate(Ljava/io/InputStream;)Ljava/security/cert/Certificate;" />
-		<method name="generateCertificates(Ljava/io/InputStream;)Ljava/util/Collection;" />
-		<method name="getCertPathEncodings()Ljava/util/Iterator;" />
-		<method name="getInstance(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/cert/CertificateFactory;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/cert/CertificateFactory;" />
-		<method name="getProvider()Ljava/security/Provider;" />
-		<method name="getType()Ljava/lang/String;" />
-	</class>
-	<class name="java/security/cert/CertificateFactorySpi" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="engineGenerateCRL(Ljava/io/InputStream;)Ljava/security/cert/CRL;" />
-		<method name="engineGenerateCRLs(Ljava/io/InputStream;)Ljava/util/Collection;" />
-		<method name="engineGenerateCertPath(Ljava/io/InputStream;)Ljava/security/cert/CertPath;" />
-		<method name="engineGenerateCertPath(Ljava/io/InputStream;Ljava/lang/String;)Ljava/security/cert/CertPath;" />
-		<method name="engineGenerateCertPath(Ljava/util/List;)Ljava/security/cert/CertPath;" />
-		<method name="engineGenerateCertificate(Ljava/io/InputStream;)Ljava/security/cert/Certificate;" />
-		<method name="engineGenerateCertificates(Ljava/io/InputStream;)Ljava/util/Collection;" />
-		<method name="engineGetCertPathEncodings()Ljava/util/Iterator;" />
-	</class>
-	<class name="java/security/cert/CertificateNotYetValidException" since="1">
-		<extends name="java/security/cert/CertificateException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/security/cert/CertificateParsingException" since="1">
-		<extends name="java/security/cert/CertificateException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/security/cert/CollectionCertStoreParameters" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/cert/CertStoreParameters" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/util/Collection;)V" />
-		<method name="getCollection()Ljava/util/Collection;" />
-	</class>
-	<class name="java/security/cert/LDAPCertStoreParameters" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/cert/CertStoreParameters" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;I)V" />
-		<method name="getPort()I" />
-		<method name="getServerName()Ljava/lang/String;" />
-	</class>
-	<class name="java/security/cert/PKIXBuilderParameters" since="1">
-		<extends name="java/security/cert/PKIXParameters" />
-		<method name="&lt;init>(Ljava/security/KeyStore;Ljava/security/cert/CertSelector;)V" />
-		<method name="&lt;init>(Ljava/util/Set;Ljava/security/cert/CertSelector;)V" />
-		<method name="getMaxPathLength()I" />
-		<method name="setMaxPathLength(I)V" />
-	</class>
-	<class name="java/security/cert/PKIXCertPathBuilderResult" since="1">
-		<extends name="java/security/cert/PKIXCertPathValidatorResult" />
-		<implements name="java/security/cert/CertPathBuilderResult" />
-		<method name="&lt;init>(Ljava/security/cert/CertPath;Ljava/security/cert/TrustAnchor;Ljava/security/cert/PolicyNode;Ljava/security/PublicKey;)V" />
-	</class>
-	<class name="java/security/cert/PKIXCertPathChecker" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-		<method name="&lt;init>()V" />
-		<method name="check(Ljava/security/cert/Certificate;Ljava/util/Collection;)V" />
-		<method name="getSupportedExtensions()Ljava/util/Set;" />
-		<method name="init(Z)V" />
-		<method name="isForwardCheckingSupported()Z" />
-	</class>
-	<class name="java/security/cert/PKIXCertPathValidatorResult" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/cert/CertPathValidatorResult" />
-		<method name="&lt;init>(Ljava/security/cert/TrustAnchor;Ljava/security/cert/PolicyNode;Ljava/security/PublicKey;)V" />
-		<method name="getPolicyTree()Ljava/security/cert/PolicyNode;" />
-		<method name="getPublicKey()Ljava/security/PublicKey;" />
-		<method name="getTrustAnchor()Ljava/security/cert/TrustAnchor;" />
-	</class>
-	<class name="java/security/cert/PKIXParameters" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/cert/CertPathParameters" />
-		<method name="&lt;init>(Ljava/security/KeyStore;)V" />
-		<method name="&lt;init>(Ljava/util/Set;)V" />
-		<method name="addCertPathChecker(Ljava/security/cert/PKIXCertPathChecker;)V" />
-		<method name="addCertStore(Ljava/security/cert/CertStore;)V" />
-		<method name="getCertPathCheckers()Ljava/util/List;" />
-		<method name="getCertStores()Ljava/util/List;" />
-		<method name="getDate()Ljava/util/Date;" />
-		<method name="getInitialPolicies()Ljava/util/Set;" />
-		<method name="getPolicyQualifiersRejected()Z" />
-		<method name="getSigProvider()Ljava/lang/String;" />
-		<method name="getTargetCertConstraints()Ljava/security/cert/CertSelector;" />
-		<method name="getTrustAnchors()Ljava/util/Set;" />
-		<method name="isAnyPolicyInhibited()Z" />
-		<method name="isExplicitPolicyRequired()Z" />
-		<method name="isPolicyMappingInhibited()Z" />
-		<method name="isRevocationEnabled()Z" />
-		<method name="setAnyPolicyInhibited(Z)V" />
-		<method name="setCertPathCheckers(Ljava/util/List;)V" />
-		<method name="setCertStores(Ljava/util/List;)V" />
-		<method name="setDate(Ljava/util/Date;)V" />
-		<method name="setExplicitPolicyRequired(Z)V" />
-		<method name="setInitialPolicies(Ljava/util/Set;)V" />
-		<method name="setPolicyMappingInhibited(Z)V" />
-		<method name="setPolicyQualifiersRejected(Z)V" />
-		<method name="setRevocationEnabled(Z)V" />
-		<method name="setSigProvider(Ljava/lang/String;)V" />
-		<method name="setTargetCertConstraints(Ljava/security/cert/CertSelector;)V" />
-		<method name="setTrustAnchors(Ljava/util/Set;)V" />
-	</class>
-	<class name="java/security/cert/PolicyNode" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getChildren()Ljava/util/Iterator;" />
-		<method name="getDepth()I" />
-		<method name="getExpectedPolicies()Ljava/util/Set;" />
-		<method name="getParent()Ljava/security/cert/PolicyNode;" />
-		<method name="getPolicyQualifiers()Ljava/util/Set;" />
-		<method name="getValidPolicy()Ljava/lang/String;" />
-		<method name="isCritical()Z" />
-	</class>
-	<class name="java/security/cert/PolicyQualifierInfo" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>([B)V" />
-		<method name="getEncoded()[B" />
-		<method name="getPolicyQualifier()[B" />
-		<method name="getPolicyQualifierId()Ljava/lang/String;" />
-	</class>
-	<class name="java/security/cert/TrustAnchor" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/security/PublicKey;[B)V" />
-		<method name="&lt;init>(Ljava/security/cert/X509Certificate;[B)V" />
-		<method name="&lt;init>(Ljavax/security/auth/x500/X500Principal;Ljava/security/PublicKey;[B)V" />
-		<method name="getCA()Ljavax/security/auth/x500/X500Principal;" />
-		<method name="getCAName()Ljava/lang/String;" />
-		<method name="getCAPublicKey()Ljava/security/PublicKey;" />
-		<method name="getNameConstraints()[B" />
-		<method name="getTrustedCert()Ljava/security/cert/X509Certificate;" />
-	</class>
-	<class name="java/security/cert/X509CRL" since="1">
-		<extends name="java/security/cert/CRL" />
-		<implements name="java/security/cert/X509Extension" />
-		<method name="&lt;init>()V" />
-		<method name="getEncoded()[B" />
-		<method name="getIssuerDN()Ljava/security/Principal;" />
-		<method name="getIssuerX500Principal()Ljavax/security/auth/x500/X500Principal;" />
-		<method name="getNextUpdate()Ljava/util/Date;" />
-		<method name="getRevokedCertificate(Ljava/math/BigInteger;)Ljava/security/cert/X509CRLEntry;" />
-		<method name="getRevokedCertificate(Ljava/security/cert/X509Certificate;)Ljava/security/cert/X509CRLEntry;" />
-		<method name="getRevokedCertificates()Ljava/util/Set;" />
-		<method name="getSigAlgName()Ljava/lang/String;" />
-		<method name="getSigAlgOID()Ljava/lang/String;" />
-		<method name="getSigAlgParams()[B" />
-		<method name="getSignature()[B" />
-		<method name="getTBSCertList()[B" />
-		<method name="getThisUpdate()Ljava/util/Date;" />
-		<method name="getVersion()I" />
-		<method name="verify(Ljava/security/PublicKey;)V" />
-		<method name="verify(Ljava/security/PublicKey;Ljava/lang/String;)V" />
-	</class>
-	<class name="java/security/cert/X509CRLEntry" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/cert/X509Extension" />
-		<method name="&lt;init>()V" />
-		<method name="getCertificateIssuer()Ljavax/security/auth/x500/X500Principal;" />
-		<method name="getEncoded()[B" />
-		<method name="getRevocationDate()Ljava/util/Date;" />
-		<method name="getSerialNumber()Ljava/math/BigInteger;" />
-		<method name="hasExtensions()Z" />
-	</class>
-	<class name="java/security/cert/X509CRLSelector" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/cert/CRLSelector" />
-		<method name="&lt;init>()V" />
-		<method name="addIssuer(Ljavax/security/auth/x500/X500Principal;)V" />
-		<method name="addIssuerName(Ljava/lang/String;)V" />
-		<method name="addIssuerName([B)V" />
-		<method name="getCertificateChecking()Ljava/security/cert/X509Certificate;" />
-		<method name="getDateAndTime()Ljava/util/Date;" />
-		<method name="getIssuerNames()Ljava/util/Collection;" />
-		<method name="getIssuers()Ljava/util/Collection;" />
-		<method name="getMaxCRL()Ljava/math/BigInteger;" />
-		<method name="getMinCRL()Ljava/math/BigInteger;" />
-		<method name="setCertificateChecking(Ljava/security/cert/X509Certificate;)V" />
-		<method name="setDateAndTime(Ljava/util/Date;)V" />
-		<method name="setIssuerNames(Ljava/util/Collection;)V" />
-		<method name="setIssuers(Ljava/util/Collection;)V" />
-		<method name="setMaxCRLNumber(Ljava/math/BigInteger;)V" />
-		<method name="setMinCRLNumber(Ljava/math/BigInteger;)V" />
-	</class>
-	<class name="java/security/cert/X509CertSelector" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/cert/CertSelector" />
-		<method name="&lt;init>()V" />
-		<method name="addPathToName(ILjava/lang/String;)V" />
-		<method name="addPathToName(I[B)V" />
-		<method name="addSubjectAlternativeName(ILjava/lang/String;)V" />
-		<method name="addSubjectAlternativeName(I[B)V" />
-		<method name="getAuthorityKeyIdentifier()[B" />
-		<method name="getBasicConstraints()I" />
-		<method name="getCertificate()Ljava/security/cert/X509Certificate;" />
-		<method name="getCertificateValid()Ljava/util/Date;" />
-		<method name="getExtendedKeyUsage()Ljava/util/Set;" />
-		<method name="getIssuer()Ljavax/security/auth/x500/X500Principal;" />
-		<method name="getIssuerAsBytes()[B" />
-		<method name="getIssuerAsString()Ljava/lang/String;" />
-		<method name="getKeyUsage()[Z" />
-		<method name="getMatchAllSubjectAltNames()Z" />
-		<method name="getNameConstraints()[B" />
-		<method name="getPathToNames()Ljava/util/Collection;" />
-		<method name="getPolicy()Ljava/util/Set;" />
-		<method name="getPrivateKeyValid()Ljava/util/Date;" />
-		<method name="getSerialNumber()Ljava/math/BigInteger;" />
-		<method name="getSubject()Ljavax/security/auth/x500/X500Principal;" />
-		<method name="getSubjectAlternativeNames()Ljava/util/Collection;" />
-		<method name="getSubjectAsBytes()[B" />
-		<method name="getSubjectAsString()Ljava/lang/String;" />
-		<method name="getSubjectKeyIdentifier()[B" />
-		<method name="getSubjectPublicKey()Ljava/security/PublicKey;" />
-		<method name="getSubjectPublicKeyAlgID()Ljava/lang/String;" />
-		<method name="setAuthorityKeyIdentifier([B)V" />
-		<method name="setBasicConstraints(I)V" />
-		<method name="setCertificate(Ljava/security/cert/X509Certificate;)V" />
-		<method name="setCertificateValid(Ljava/util/Date;)V" />
-		<method name="setExtendedKeyUsage(Ljava/util/Set;)V" />
-		<method name="setIssuer(Ljava/lang/String;)V" />
-		<method name="setIssuer(Ljavax/security/auth/x500/X500Principal;)V" />
-		<method name="setIssuer([B)V" />
-		<method name="setKeyUsage([Z)V" />
-		<method name="setMatchAllSubjectAltNames(Z)V" />
-		<method name="setNameConstraints([B)V" />
-		<method name="setPathToNames(Ljava/util/Collection;)V" />
-		<method name="setPolicy(Ljava/util/Set;)V" />
-		<method name="setPrivateKeyValid(Ljava/util/Date;)V" />
-		<method name="setSerialNumber(Ljava/math/BigInteger;)V" />
-		<method name="setSubject(Ljava/lang/String;)V" />
-		<method name="setSubject(Ljavax/security/auth/x500/X500Principal;)V" />
-		<method name="setSubject([B)V" />
-		<method name="setSubjectAlternativeNames(Ljava/util/Collection;)V" />
-		<method name="setSubjectKeyIdentifier([B)V" />
-		<method name="setSubjectPublicKey(Ljava/security/PublicKey;)V" />
-		<method name="setSubjectPublicKey([B)V" />
-		<method name="setSubjectPublicKeyAlgID(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/security/cert/X509Certificate" since="1">
-		<extends name="java/security/cert/Certificate" />
-		<implements name="java/security/cert/X509Extension" />
-		<method name="&lt;init>()V" />
-		<method name="checkValidity()V" />
-		<method name="checkValidity(Ljava/util/Date;)V" />
-		<method name="getBasicConstraints()I" />
-		<method name="getExtendedKeyUsage()Ljava/util/List;" />
-		<method name="getIssuerAlternativeNames()Ljava/util/Collection;" />
-		<method name="getIssuerDN()Ljava/security/Principal;" />
-		<method name="getIssuerUniqueID()[Z" />
-		<method name="getIssuerX500Principal()Ljavax/security/auth/x500/X500Principal;" />
-		<method name="getKeyUsage()[Z" />
-		<method name="getNotAfter()Ljava/util/Date;" />
-		<method name="getNotBefore()Ljava/util/Date;" />
-		<method name="getSerialNumber()Ljava/math/BigInteger;" />
-		<method name="getSigAlgName()Ljava/lang/String;" />
-		<method name="getSigAlgOID()Ljava/lang/String;" />
-		<method name="getSigAlgParams()[B" />
-		<method name="getSignature()[B" />
-		<method name="getSubjectAlternativeNames()Ljava/util/Collection;" />
-		<method name="getSubjectDN()Ljava/security/Principal;" />
-		<method name="getSubjectUniqueID()[Z" />
-		<method name="getSubjectX500Principal()Ljavax/security/auth/x500/X500Principal;" />
-		<method name="getTBSCertificate()[B" />
-		<method name="getVersion()I" />
-	</class>
-	<class name="java/security/cert/X509Extension" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getCriticalExtensionOIDs()Ljava/util/Set;" />
-		<method name="getExtensionValue(Ljava/lang/String;)[B" />
-		<method name="getNonCriticalExtensionOIDs()Ljava/util/Set;" />
-		<method name="hasUnsupportedCriticalExtension()Z" />
-	</class>
-	<class name="java/security/interfaces/DSAKey" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getParams()Ljava/security/interfaces/DSAParams;" />
-	</class>
-	<class name="java/security/interfaces/DSAKeyPairGenerator" since="1">
-		<extends name="java/lang/Object" />
-		<method name="initialize(IZLjava/security/SecureRandom;)V" />
-		<method name="initialize(Ljava/security/interfaces/DSAParams;Ljava/security/SecureRandom;)V" />
-	</class>
-	<class name="java/security/interfaces/DSAParams" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getG()Ljava/math/BigInteger;" />
-		<method name="getP()Ljava/math/BigInteger;" />
-		<method name="getQ()Ljava/math/BigInteger;" />
-	</class>
-	<class name="java/security/interfaces/DSAPrivateKey" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/PrivateKey" />
-		<implements name="java/security/interfaces/DSAKey" />
-		<method name="getX()Ljava/math/BigInteger;" />
-		<field name="serialVersionUID" />
-	</class>
-	<class name="java/security/interfaces/DSAPublicKey" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/PublicKey" />
-		<implements name="java/security/interfaces/DSAKey" />
-		<method name="getY()Ljava/math/BigInteger;" />
-		<field name="serialVersionUID" />
-	</class>
-	<class name="java/security/interfaces/ECKey" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getParams()Ljava/security/spec/ECParameterSpec;" />
-	</class>
-	<class name="java/security/interfaces/ECPrivateKey" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/PrivateKey" />
-		<implements name="java/security/interfaces/ECKey" />
-		<method name="getS()Ljava/math/BigInteger;" />
-		<field name="serialVersionUID" />
-	</class>
-	<class name="java/security/interfaces/ECPublicKey" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/PublicKey" />
-		<implements name="java/security/interfaces/ECKey" />
-		<method name="getW()Ljava/security/spec/ECPoint;" />
-		<field name="serialVersionUID" />
-	</class>
-	<class name="java/security/interfaces/RSAKey" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getModulus()Ljava/math/BigInteger;" />
-	</class>
-	<class name="java/security/interfaces/RSAMultiPrimePrivateCrtKey" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/interfaces/RSAPrivateKey" />
-		<method name="getCrtCoefficient()Ljava/math/BigInteger;" />
-		<method name="getOtherPrimeInfo()[Ljava/security/spec/RSAOtherPrimeInfo;" />
-		<method name="getPrimeExponentP()Ljava/math/BigInteger;" />
-		<method name="getPrimeExponentQ()Ljava/math/BigInteger;" />
-		<method name="getPrimeP()Ljava/math/BigInteger;" />
-		<method name="getPrimeQ()Ljava/math/BigInteger;" />
-		<method name="getPublicExponent()Ljava/math/BigInteger;" />
-		<field name="serialVersionUID" />
-	</class>
-	<class name="java/security/interfaces/RSAPrivateCrtKey" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/interfaces/RSAPrivateKey" />
-		<method name="getCrtCoefficient()Ljava/math/BigInteger;" />
-		<method name="getPrimeExponentP()Ljava/math/BigInteger;" />
-		<method name="getPrimeExponentQ()Ljava/math/BigInteger;" />
-		<method name="getPrimeP()Ljava/math/BigInteger;" />
-		<method name="getPrimeQ()Ljava/math/BigInteger;" />
-		<method name="getPublicExponent()Ljava/math/BigInteger;" />
-		<field name="serialVersionUID" />
-	</class>
-	<class name="java/security/interfaces/RSAPrivateKey" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/PrivateKey" />
-		<implements name="java/security/interfaces/RSAKey" />
-		<method name="getPrivateExponent()Ljava/math/BigInteger;" />
-		<field name="serialVersionUID" />
-	</class>
-	<class name="java/security/interfaces/RSAPublicKey" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/PublicKey" />
-		<implements name="java/security/interfaces/RSAKey" />
-		<method name="getPublicExponent()Ljava/math/BigInteger;" />
-		<field name="serialVersionUID" />
-	</class>
-	<class name="java/security/spec/AlgorithmParameterSpec" since="1">
-		<extends name="java/lang/Object" />
-	</class>
-	<class name="java/security/spec/DSAParameterSpec" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/interfaces/DSAParams" />
-		<implements name="java/security/spec/AlgorithmParameterSpec" />
-		<method name="&lt;init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V" />
-	</class>
-	<class name="java/security/spec/DSAPrivateKeySpec" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/spec/KeySpec" />
-		<method name="&lt;init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V" />
-		<method name="getG()Ljava/math/BigInteger;" />
-		<method name="getP()Ljava/math/BigInteger;" />
-		<method name="getQ()Ljava/math/BigInteger;" />
-		<method name="getX()Ljava/math/BigInteger;" />
-	</class>
-	<class name="java/security/spec/DSAPublicKeySpec" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/spec/KeySpec" />
-		<method name="&lt;init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V" />
-		<method name="getG()Ljava/math/BigInteger;" />
-		<method name="getP()Ljava/math/BigInteger;" />
-		<method name="getQ()Ljava/math/BigInteger;" />
-		<method name="getY()Ljava/math/BigInteger;" />
-	</class>
-	<class name="java/security/spec/ECField" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getFieldSize()I" />
-	</class>
-	<class name="java/security/spec/ECFieldF2m" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/spec/ECField" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(ILjava/math/BigInteger;)V" />
-		<method name="&lt;init>(I[I)V" />
-		<method name="getM()I" />
-		<method name="getMidTermsOfReductionPolynomial()[I" />
-		<method name="getReductionPolynomial()Ljava/math/BigInteger;" />
-	</class>
-	<class name="java/security/spec/ECFieldFp" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/spec/ECField" />
-		<method name="&lt;init>(Ljava/math/BigInteger;)V" />
-		<method name="getP()Ljava/math/BigInteger;" />
-	</class>
-	<class name="java/security/spec/ECGenParameterSpec" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/spec/AlgorithmParameterSpec" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="getName()Ljava/lang/String;" />
-	</class>
-	<class name="java/security/spec/ECParameterSpec" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/spec/AlgorithmParameterSpec" />
-		<method name="&lt;init>(Ljava/security/spec/EllipticCurve;Ljava/security/spec/ECPoint;Ljava/math/BigInteger;I)V" />
-		<method name="getCofactor()I" />
-		<method name="getCurve()Ljava/security/spec/EllipticCurve;" />
-		<method name="getGenerator()Ljava/security/spec/ECPoint;" />
-		<method name="getOrder()Ljava/math/BigInteger;" />
-	</class>
-	<class name="java/security/spec/ECPoint" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/math/BigInteger;Ljava/math/BigInteger;)V" />
-		<method name="getAffineX()Ljava/math/BigInteger;" />
-		<method name="getAffineY()Ljava/math/BigInteger;" />
-		<field name="POINT_INFINITY" />
-	</class>
-	<class name="java/security/spec/ECPrivateKeySpec" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/spec/KeySpec" />
-		<method name="&lt;init>(Ljava/math/BigInteger;Ljava/security/spec/ECParameterSpec;)V" />
-		<method name="getParams()Ljava/security/spec/ECParameterSpec;" />
-		<method name="getS()Ljava/math/BigInteger;" />
-	</class>
-	<class name="java/security/spec/ECPublicKeySpec" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/spec/KeySpec" />
-		<method name="&lt;init>(Ljava/security/spec/ECPoint;Ljava/security/spec/ECParameterSpec;)V" />
-		<method name="getParams()Ljava/security/spec/ECParameterSpec;" />
-		<method name="getW()Ljava/security/spec/ECPoint;" />
-	</class>
-	<class name="java/security/spec/EllipticCurve" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/security/spec/ECField;Ljava/math/BigInteger;Ljava/math/BigInteger;)V" />
-		<method name="&lt;init>(Ljava/security/spec/ECField;Ljava/math/BigInteger;Ljava/math/BigInteger;[B)V" />
-		<method name="getA()Ljava/math/BigInteger;" />
-		<method name="getB()Ljava/math/BigInteger;" />
-		<method name="getField()Ljava/security/spec/ECField;" />
-		<method name="getSeed()[B" />
-	</class>
-	<class name="java/security/spec/EncodedKeySpec" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/spec/KeySpec" />
-		<method name="&lt;init>([B)V" />
-		<method name="getEncoded()[B" />
-		<method name="getFormat()Ljava/lang/String;" />
-	</class>
-	<class name="java/security/spec/InvalidKeySpecException" since="1">
-		<extends name="java/security/GeneralSecurityException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/security/spec/InvalidParameterSpecException" since="1">
-		<extends name="java/security/GeneralSecurityException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/security/spec/KeySpec" since="1">
-		<extends name="java/lang/Object" />
-	</class>
-	<class name="java/security/spec/MGF1ParameterSpec" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/spec/AlgorithmParameterSpec" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="getDigestAlgorithm()Ljava/lang/String;" />
-		<field name="SHA1" />
-		<field name="SHA256" />
-		<field name="SHA384" />
-		<field name="SHA512" />
-	</class>
-	<class name="java/security/spec/PKCS8EncodedKeySpec" since="1">
-		<extends name="java/security/spec/EncodedKeySpec" />
-		<method name="&lt;init>([B)V" />
-	</class>
-	<class name="java/security/spec/PSSParameterSpec" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/spec/AlgorithmParameterSpec" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/security/spec/AlgorithmParameterSpec;II)V" />
-		<method name="getDigestAlgorithm()Ljava/lang/String;" />
-		<method name="getMGFAlgorithm()Ljava/lang/String;" />
-		<method name="getMGFParameters()Ljava/security/spec/AlgorithmParameterSpec;" />
-		<method name="getSaltLength()I" />
-		<method name="getTrailerField()I" />
-		<field name="DEFAULT" />
-	</class>
-	<class name="java/security/spec/RSAKeyGenParameterSpec" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/spec/AlgorithmParameterSpec" />
-		<method name="&lt;init>(ILjava/math/BigInteger;)V" />
-		<method name="getKeysize()I" />
-		<method name="getPublicExponent()Ljava/math/BigInteger;" />
-		<field name="F0" />
-		<field name="F4" />
-	</class>
-	<class name="java/security/spec/RSAMultiPrimePrivateCrtKeySpec" since="1">
-		<extends name="java/security/spec/RSAPrivateKeySpec" />
-		<method name="&lt;init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;[Ljava/security/spec/RSAOtherPrimeInfo;)V" />
-		<method name="getCrtCoefficient()Ljava/math/BigInteger;" />
-		<method name="getOtherPrimeInfo()[Ljava/security/spec/RSAOtherPrimeInfo;" />
-		<method name="getPrimeExponentP()Ljava/math/BigInteger;" />
-		<method name="getPrimeExponentQ()Ljava/math/BigInteger;" />
-		<method name="getPrimeP()Ljava/math/BigInteger;" />
-		<method name="getPrimeQ()Ljava/math/BigInteger;" />
-		<method name="getPublicExponent()Ljava/math/BigInteger;" />
-	</class>
-	<class name="java/security/spec/RSAOtherPrimeInfo" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V" />
-		<method name="getCrtCoefficient()Ljava/math/BigInteger;" />
-		<method name="getExponent()Ljava/math/BigInteger;" />
-		<method name="getPrime()Ljava/math/BigInteger;" />
-	</class>
-	<class name="java/security/spec/RSAPrivateCrtKeySpec" since="1">
-		<extends name="java/security/spec/RSAPrivateKeySpec" />
-		<method name="&lt;init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V" />
-		<method name="getCrtCoefficient()Ljava/math/BigInteger;" />
-		<method name="getPrimeExponentP()Ljava/math/BigInteger;" />
-		<method name="getPrimeExponentQ()Ljava/math/BigInteger;" />
-		<method name="getPrimeP()Ljava/math/BigInteger;" />
-		<method name="getPrimeQ()Ljava/math/BigInteger;" />
-		<method name="getPublicExponent()Ljava/math/BigInteger;" />
-	</class>
-	<class name="java/security/spec/RSAPrivateKeySpec" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/spec/KeySpec" />
-		<method name="&lt;init>(Ljava/math/BigInteger;Ljava/math/BigInteger;)V" />
-		<method name="getModulus()Ljava/math/BigInteger;" />
-		<method name="getPrivateExponent()Ljava/math/BigInteger;" />
-	</class>
-	<class name="java/security/spec/RSAPublicKeySpec" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/spec/KeySpec" />
-		<method name="&lt;init>(Ljava/math/BigInteger;Ljava/math/BigInteger;)V" />
-		<method name="getModulus()Ljava/math/BigInteger;" />
-		<method name="getPublicExponent()Ljava/math/BigInteger;" />
-	</class>
-	<class name="java/security/spec/X509EncodedKeySpec" since="1">
-		<extends name="java/security/spec/EncodedKeySpec" />
-		<method name="&lt;init>([B)V" />
-	</class>
-	<class name="java/sql/Array" since="1">
-		<extends name="java/lang/Object" />
-		<method name="free()V" since="9" />
-		<method name="getArray()Ljava/lang/Object;" />
-		<method name="getArray(JI)Ljava/lang/Object;" />
-		<method name="getArray(JILjava/util/Map;)Ljava/lang/Object;" />
-		<method name="getArray(Ljava/util/Map;)Ljava/lang/Object;" />
-		<method name="getBaseType()I" />
-		<method name="getBaseTypeName()Ljava/lang/String;" />
-		<method name="getResultSet()Ljava/sql/ResultSet;" />
-		<method name="getResultSet(JI)Ljava/sql/ResultSet;" />
-		<method name="getResultSet(JILjava/util/Map;)Ljava/sql/ResultSet;" />
-		<method name="getResultSet(Ljava/util/Map;)Ljava/sql/ResultSet;" />
-	</class>
-	<class name="java/sql/BatchUpdateException" since="1">
-		<extends name="java/sql/SQLException" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I[I)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I[ILjava/lang/Throwable;)V" since="9" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;[I)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;[ILjava/lang/Throwable;)V" since="9" />
-		<method name="&lt;init>(Ljava/lang/String;[I)V" />
-		<method name="&lt;init>(Ljava/lang/String;[ILjava/lang/Throwable;)V" since="9" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" since="9" />
-		<method name="&lt;init>([I)V" />
-		<method name="&lt;init>([ILjava/lang/Throwable;)V" since="9" />
-		<method name="getUpdateCounts()[I" />
-	</class>
-	<class name="java/sql/Blob" since="1">
-		<extends name="java/lang/Object" />
-		<method name="free()V" since="9" />
-		<method name="getBinaryStream()Ljava/io/InputStream;" />
-		<method name="getBinaryStream(JJ)Ljava/io/InputStream;" since="9" />
-		<method name="getBytes(JI)[B" />
-		<method name="length()J" />
-		<method name="position(Ljava/sql/Blob;J)J" />
-		<method name="position([BJ)J" />
-		<method name="setBinaryStream(J)Ljava/io/OutputStream;" />
-		<method name="setBytes(J[B)I" />
-		<method name="setBytes(J[BII)I" />
-		<method name="truncate(J)V" />
-	</class>
-	<class name="java/sql/CallableStatement" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/sql/PreparedStatement" />
-		<method name="getArray(I)Ljava/sql/Array;" />
-		<method name="getArray(Ljava/lang/String;)Ljava/sql/Array;" />
-		<method name="getBigDecimal(I)Ljava/math/BigDecimal;" />
-		<method name="getBigDecimal(II)Ljava/math/BigDecimal;" />
-		<method name="getBigDecimal(Ljava/lang/String;)Ljava/math/BigDecimal;" />
-		<method name="getBlob(I)Ljava/sql/Blob;" />
-		<method name="getBlob(Ljava/lang/String;)Ljava/sql/Blob;" />
-		<method name="getBoolean(I)Z" />
-		<method name="getBoolean(Ljava/lang/String;)Z" />
-		<method name="getByte(I)B" />
-		<method name="getByte(Ljava/lang/String;)B" />
-		<method name="getBytes(I)[B" />
-		<method name="getBytes(Ljava/lang/String;)[B" />
-		<method name="getCharacterStream(I)Ljava/io/Reader;" since="9" />
-		<method name="getCharacterStream(Ljava/lang/String;)Ljava/io/Reader;" since="9" />
-		<method name="getClob(I)Ljava/sql/Clob;" />
-		<method name="getClob(Ljava/lang/String;)Ljava/sql/Clob;" />
-		<method name="getDate(I)Ljava/sql/Date;" />
-		<method name="getDate(ILjava/util/Calendar;)Ljava/sql/Date;" />
-		<method name="getDate(Ljava/lang/String;)Ljava/sql/Date;" />
-		<method name="getDate(Ljava/lang/String;Ljava/util/Calendar;)Ljava/sql/Date;" />
-		<method name="getDouble(I)D" />
-		<method name="getDouble(Ljava/lang/String;)D" />
-		<method name="getFloat(I)F" />
-		<method name="getFloat(Ljava/lang/String;)F" />
-		<method name="getInt(I)I" />
-		<method name="getInt(Ljava/lang/String;)I" />
-		<method name="getLong(I)J" />
-		<method name="getLong(Ljava/lang/String;)J" />
-		<method name="getNCharacterStream(I)Ljava/io/Reader;" since="9" />
-		<method name="getNCharacterStream(Ljava/lang/String;)Ljava/io/Reader;" since="9" />
-		<method name="getNClob(I)Ljava/sql/NClob;" since="9" />
-		<method name="getNClob(Ljava/lang/String;)Ljava/sql/NClob;" since="9" />
-		<method name="getNString(I)Ljava/lang/String;" since="9" />
-		<method name="getNString(Ljava/lang/String;)Ljava/lang/String;" since="9" />
-		<method name="getObject(I)Ljava/lang/Object;" />
-		<method name="getObject(ILjava/util/Map;)Ljava/lang/Object;" />
-		<method name="getObject(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="getObject(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/Object;" />
-		<method name="getRef(I)Ljava/sql/Ref;" />
-		<method name="getRef(Ljava/lang/String;)Ljava/sql/Ref;" />
-		<method name="getRowId(I)Ljava/sql/RowId;" since="9" />
-		<method name="getRowId(Ljava/lang/String;)Ljava/sql/RowId;" since="9" />
-		<method name="getSQLXML(I)Ljava/sql/SQLXML;" since="9" />
-		<method name="getSQLXML(Ljava/lang/String;)Ljava/sql/SQLXML;" since="9" />
-		<method name="getShort(I)S" />
-		<method name="getShort(Ljava/lang/String;)S" />
-		<method name="getString(I)Ljava/lang/String;" />
-		<method name="getString(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getTime(I)Ljava/sql/Time;" />
-		<method name="getTime(ILjava/util/Calendar;)Ljava/sql/Time;" />
-		<method name="getTime(Ljava/lang/String;)Ljava/sql/Time;" />
-		<method name="getTime(Ljava/lang/String;Ljava/util/Calendar;)Ljava/sql/Time;" />
-		<method name="getTimestamp(I)Ljava/sql/Timestamp;" />
-		<method name="getTimestamp(ILjava/util/Calendar;)Ljava/sql/Timestamp;" />
-		<method name="getTimestamp(Ljava/lang/String;)Ljava/sql/Timestamp;" />
-		<method name="getTimestamp(Ljava/lang/String;Ljava/util/Calendar;)Ljava/sql/Timestamp;" />
-		<method name="getURL(I)Ljava/net/URL;" />
-		<method name="getURL(Ljava/lang/String;)Ljava/net/URL;" />
-		<method name="registerOutParameter(II)V" />
-		<method name="registerOutParameter(III)V" />
-		<method name="registerOutParameter(IILjava/lang/String;)V" />
-		<method name="registerOutParameter(Ljava/lang/String;I)V" />
-		<method name="registerOutParameter(Ljava/lang/String;II)V" />
-		<method name="registerOutParameter(Ljava/lang/String;ILjava/lang/String;)V" />
-		<method name="setAsciiStream(Ljava/lang/String;Ljava/io/InputStream;)V" since="9" />
-		<method name="setAsciiStream(Ljava/lang/String;Ljava/io/InputStream;I)V" />
-		<method name="setAsciiStream(Ljava/lang/String;Ljava/io/InputStream;J)V" since="9" />
-		<method name="setBigDecimal(Ljava/lang/String;Ljava/math/BigDecimal;)V" />
-		<method name="setBinaryStream(Ljava/lang/String;Ljava/io/InputStream;)V" since="9" />
-		<method name="setBinaryStream(Ljava/lang/String;Ljava/io/InputStream;I)V" />
-		<method name="setBinaryStream(Ljava/lang/String;Ljava/io/InputStream;J)V" since="9" />
-		<method name="setBlob(Ljava/lang/String;Ljava/io/InputStream;)V" since="9" />
-		<method name="setBlob(Ljava/lang/String;Ljava/io/InputStream;J)V" since="9" />
-		<method name="setBlob(Ljava/lang/String;Ljava/sql/Blob;)V" since="9" />
-		<method name="setBoolean(Ljava/lang/String;Z)V" />
-		<method name="setByte(Ljava/lang/String;B)V" />
-		<method name="setBytes(Ljava/lang/String;[B)V" />
-		<method name="setCharacterStream(Ljava/lang/String;Ljava/io/Reader;)V" since="9" />
-		<method name="setCharacterStream(Ljava/lang/String;Ljava/io/Reader;I)V" />
-		<method name="setCharacterStream(Ljava/lang/String;Ljava/io/Reader;J)V" since="9" />
-		<method name="setClob(Ljava/lang/String;Ljava/io/Reader;)V" since="9" />
-		<method name="setClob(Ljava/lang/String;Ljava/io/Reader;J)V" since="9" />
-		<method name="setClob(Ljava/lang/String;Ljava/sql/Clob;)V" since="9" />
-		<method name="setDate(Ljava/lang/String;Ljava/sql/Date;)V" />
-		<method name="setDate(Ljava/lang/String;Ljava/sql/Date;Ljava/util/Calendar;)V" />
-		<method name="setDouble(Ljava/lang/String;D)V" />
-		<method name="setFloat(Ljava/lang/String;F)V" />
-		<method name="setInt(Ljava/lang/String;I)V" />
-		<method name="setLong(Ljava/lang/String;J)V" />
-		<method name="setNCharacterStream(Ljava/lang/String;Ljava/io/Reader;)V" since="9" />
-		<method name="setNCharacterStream(Ljava/lang/String;Ljava/io/Reader;J)V" since="9" />
-		<method name="setNClob(Ljava/lang/String;Ljava/io/Reader;)V" since="9" />
-		<method name="setNClob(Ljava/lang/String;Ljava/io/Reader;J)V" since="9" />
-		<method name="setNClob(Ljava/lang/String;Ljava/sql/NClob;)V" since="9" />
-		<method name="setNString(Ljava/lang/String;Ljava/lang/String;)V" since="9" />
-		<method name="setNull(Ljava/lang/String;I)V" />
-		<method name="setNull(Ljava/lang/String;ILjava/lang/String;)V" />
-		<method name="setObject(Ljava/lang/String;Ljava/lang/Object;)V" />
-		<method name="setObject(Ljava/lang/String;Ljava/lang/Object;I)V" />
-		<method name="setObject(Ljava/lang/String;Ljava/lang/Object;II)V" />
-		<method name="setRowId(Ljava/lang/String;Ljava/sql/RowId;)V" since="9" />
-		<method name="setSQLXML(Ljava/lang/String;Ljava/sql/SQLXML;)V" since="9" />
-		<method name="setShort(Ljava/lang/String;S)V" />
-		<method name="setString(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="setTime(Ljava/lang/String;Ljava/sql/Time;)V" />
-		<method name="setTime(Ljava/lang/String;Ljava/sql/Time;Ljava/util/Calendar;)V" />
-		<method name="setTimestamp(Ljava/lang/String;Ljava/sql/Timestamp;)V" />
-		<method name="setTimestamp(Ljava/lang/String;Ljava/sql/Timestamp;Ljava/util/Calendar;)V" />
-		<method name="setURL(Ljava/lang/String;Ljava/net/URL;)V" />
-		<method name="wasNull()Z" />
-	</class>
-	<class name="java/sql/ClientInfoStatus" since="9">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Ljava/sql/ClientInfoStatus;" />
-		<method name="values()[Ljava/sql/ClientInfoStatus;" />
-		<field name="REASON_UNKNOWN" />
-		<field name="REASON_UNKNOWN_PROPERTY" />
-		<field name="REASON_VALUE_INVALID" />
-		<field name="REASON_VALUE_TRUNCATED" />
-	</class>
-	<class name="java/sql/Clob" since="1">
-		<extends name="java/lang/Object" />
-		<method name="free()V" since="9" />
-		<method name="getAsciiStream()Ljava/io/InputStream;" />
-		<method name="getCharacterStream()Ljava/io/Reader;" />
-		<method name="getCharacterStream(JJ)Ljava/io/Reader;" since="9" />
-		<method name="getSubString(JI)Ljava/lang/String;" />
-		<method name="length()J" />
-		<method name="position(Ljava/lang/String;J)J" />
-		<method name="position(Ljava/sql/Clob;J)J" />
-		<method name="setAsciiStream(J)Ljava/io/OutputStream;" />
-		<method name="setCharacterStream(J)Ljava/io/Writer;" />
-		<method name="setString(JLjava/lang/String;)I" />
-		<method name="setString(JLjava/lang/String;II)I" />
-		<method name="truncate(J)V" />
-	</class>
-	<class name="java/sql/Connection" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/AutoCloseable" since="19" />
-		<implements name="java/sql/Wrapper" since="9" />
-		<method name="clearWarnings()V" />
-		<method name="close()V" />
-		<method name="commit()V" />
-		<method name="createArrayOf(Ljava/lang/String;[Ljava/lang/Object;)Ljava/sql/Array;" since="9" />
-		<method name="createBlob()Ljava/sql/Blob;" since="9" />
-		<method name="createClob()Ljava/sql/Clob;" since="9" />
-		<method name="createNClob()Ljava/sql/NClob;" since="9" />
-		<method name="createSQLXML()Ljava/sql/SQLXML;" since="9" />
-		<method name="createStatement()Ljava/sql/Statement;" />
-		<method name="createStatement(II)Ljava/sql/Statement;" />
-		<method name="createStatement(III)Ljava/sql/Statement;" />
-		<method name="createStruct(Ljava/lang/String;[Ljava/lang/Object;)Ljava/sql/Struct;" since="9" />
-		<method name="getAutoCommit()Z" />
-		<method name="getCatalog()Ljava/lang/String;" />
-		<method name="getClientInfo()Ljava/util/Properties;" since="9" />
-		<method name="getClientInfo(Ljava/lang/String;)Ljava/lang/String;" since="9" />
-		<method name="getHoldability()I" />
-		<method name="getMetaData()Ljava/sql/DatabaseMetaData;" />
-		<method name="getTransactionIsolation()I" />
-		<method name="getTypeMap()Ljava/util/Map;" />
-		<method name="getWarnings()Ljava/sql/SQLWarning;" />
-		<method name="isClosed()Z" />
-		<method name="isReadOnly()Z" />
-		<method name="isValid(I)Z" since="9" />
-		<method name="nativeSQL(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="prepareCall(Ljava/lang/String;)Ljava/sql/CallableStatement;" />
-		<method name="prepareCall(Ljava/lang/String;II)Ljava/sql/CallableStatement;" />
-		<method name="prepareCall(Ljava/lang/String;III)Ljava/sql/CallableStatement;" />
-		<method name="prepareStatement(Ljava/lang/String;)Ljava/sql/PreparedStatement;" />
-		<method name="prepareStatement(Ljava/lang/String;I)Ljava/sql/PreparedStatement;" />
-		<method name="prepareStatement(Ljava/lang/String;II)Ljava/sql/PreparedStatement;" />
-		<method name="prepareStatement(Ljava/lang/String;III)Ljava/sql/PreparedStatement;" />
-		<method name="prepareStatement(Ljava/lang/String;[I)Ljava/sql/PreparedStatement;" />
-		<method name="prepareStatement(Ljava/lang/String;[Ljava/lang/String;)Ljava/sql/PreparedStatement;" />
-		<method name="releaseSavepoint(Ljava/sql/Savepoint;)V" />
-		<method name="rollback()V" />
-		<method name="rollback(Ljava/sql/Savepoint;)V" />
-		<method name="setAutoCommit(Z)V" />
-		<method name="setCatalog(Ljava/lang/String;)V" />
-		<method name="setClientInfo(Ljava/lang/String;Ljava/lang/String;)V" since="9" />
-		<method name="setClientInfo(Ljava/util/Properties;)V" since="9" />
-		<method name="setHoldability(I)V" />
-		<method name="setReadOnly(Z)V" />
-		<method name="setSavepoint()Ljava/sql/Savepoint;" />
-		<method name="setSavepoint(Ljava/lang/String;)Ljava/sql/Savepoint;" />
-		<method name="setTransactionIsolation(I)V" />
-		<method name="setTypeMap(Ljava/util/Map;)V" />
-		<field name="TRANSACTION_NONE" />
-		<field name="TRANSACTION_READ_COMMITTED" />
-		<field name="TRANSACTION_READ_UNCOMMITTED" />
-		<field name="TRANSACTION_REPEATABLE_READ" />
-		<field name="TRANSACTION_SERIALIZABLE" />
-	</class>
-	<class name="java/sql/DataTruncation" since="1">
-		<extends name="java/sql/SQLWarning" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(IZZII)V" />
-		<method name="&lt;init>(IZZIILjava/lang/Throwable;)V" since="9" />
-		<method name="getDataSize()I" />
-		<method name="getIndex()I" />
-		<method name="getParameter()Z" />
-		<method name="getRead()Z" />
-		<method name="getTransferSize()I" />
-	</class>
-	<class name="java/sql/DatabaseMetaData" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/sql/Wrapper" since="9" />
-		<method name="allProceduresAreCallable()Z" />
-		<method name="allTablesAreSelectable()Z" />
-		<method name="autoCommitFailureClosesAllResultSets()Z" since="9" />
-		<method name="dataDefinitionCausesTransactionCommit()Z" />
-		<method name="dataDefinitionIgnoredInTransactions()Z" />
-		<method name="deletesAreDetected(I)Z" />
-		<method name="doesMaxRowSizeIncludeBlobs()Z" />
-		<method name="getAttributes(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;" />
-		<method name="getBestRowIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IZ)Ljava/sql/ResultSet;" />
-		<method name="getCatalogSeparator()Ljava/lang/String;" />
-		<method name="getCatalogTerm()Ljava/lang/String;" />
-		<method name="getCatalogs()Ljava/sql/ResultSet;" />
-		<method name="getClientInfoProperties()Ljava/sql/ResultSet;" since="9" />
-		<method name="getColumnPrivileges(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;" />
-		<method name="getColumns(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;" />
-		<method name="getConnection()Ljava/sql/Connection;" />
-		<method name="getCrossReference(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;" />
-		<method name="getDatabaseMajorVersion()I" />
-		<method name="getDatabaseMinorVersion()I" />
-		<method name="getDatabaseProductName()Ljava/lang/String;" />
-		<method name="getDatabaseProductVersion()Ljava/lang/String;" />
-		<method name="getDefaultTransactionIsolation()I" />
-		<method name="getDriverMajorVersion()I" />
-		<method name="getDriverMinorVersion()I" />
-		<method name="getDriverName()Ljava/lang/String;" />
-		<method name="getDriverVersion()Ljava/lang/String;" />
-		<method name="getExportedKeys(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;" />
-		<method name="getExtraNameCharacters()Ljava/lang/String;" />
-		<method name="getFunctionColumns(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;" since="9" />
-		<method name="getFunctions(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;" since="9" />
-		<method name="getIdentifierQuoteString()Ljava/lang/String;" />
-		<method name="getImportedKeys(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;" />
-		<method name="getIndexInfo(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZ)Ljava/sql/ResultSet;" />
-		<method name="getJDBCMajorVersion()I" />
-		<method name="getJDBCMinorVersion()I" />
-		<method name="getMaxBinaryLiteralLength()I" />
-		<method name="getMaxCatalogNameLength()I" />
-		<method name="getMaxCharLiteralLength()I" />
-		<method name="getMaxColumnNameLength()I" />
-		<method name="getMaxColumnsInGroupBy()I" />
-		<method name="getMaxColumnsInIndex()I" />
-		<method name="getMaxColumnsInOrderBy()I" />
-		<method name="getMaxColumnsInSelect()I" />
-		<method name="getMaxColumnsInTable()I" />
-		<method name="getMaxConnections()I" />
-		<method name="getMaxCursorNameLength()I" />
-		<method name="getMaxIndexLength()I" />
-		<method name="getMaxProcedureNameLength()I" />
-		<method name="getMaxRowSize()I" />
-		<method name="getMaxSchemaNameLength()I" />
-		<method name="getMaxStatementLength()I" />
-		<method name="getMaxStatements()I" />
-		<method name="getMaxTableNameLength()I" />
-		<method name="getMaxTablesInSelect()I" />
-		<method name="getMaxUserNameLength()I" />
-		<method name="getNumericFunctions()Ljava/lang/String;" />
-		<method name="getPrimaryKeys(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;" />
-		<method name="getProcedureColumns(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;" />
-		<method name="getProcedureTerm()Ljava/lang/String;" />
-		<method name="getProcedures(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;" />
-		<method name="getResultSetHoldability()I" />
-		<method name="getRowIdLifetime()Ljava/sql/RowIdLifetime;" since="9" />
-		<method name="getSQLKeywords()Ljava/lang/String;" />
-		<method name="getSQLStateType()I" />
-		<method name="getSchemaTerm()Ljava/lang/String;" />
-		<method name="getSchemas()Ljava/sql/ResultSet;" />
-		<method name="getSchemas(Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;" since="9" />
-		<method name="getSearchStringEscape()Ljava/lang/String;" />
-		<method name="getStringFunctions()Ljava/lang/String;" />
-		<method name="getSuperTables(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;" />
-		<method name="getSuperTypes(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;" />
-		<method name="getSystemFunctions()Ljava/lang/String;" />
-		<method name="getTablePrivileges(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;" />
-		<method name="getTableTypes()Ljava/sql/ResultSet;" />
-		<method name="getTables(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/sql/ResultSet;" />
-		<method name="getTimeDateFunctions()Ljava/lang/String;" />
-		<method name="getTypeInfo()Ljava/sql/ResultSet;" />
-		<method name="getUDTs(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[I)Ljava/sql/ResultSet;" />
-		<method name="getURL()Ljava/lang/String;" />
-		<method name="getUserName()Ljava/lang/String;" />
-		<method name="getVersionColumns(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;" />
-		<method name="insertsAreDetected(I)Z" />
-		<method name="isCatalogAtStart()Z" />
-		<method name="isReadOnly()Z" />
-		<method name="locatorsUpdateCopy()Z" />
-		<method name="nullPlusNonNullIsNull()Z" />
-		<method name="nullsAreSortedAtEnd()Z" />
-		<method name="nullsAreSortedAtStart()Z" />
-		<method name="nullsAreSortedHigh()Z" />
-		<method name="nullsAreSortedLow()Z" />
-		<method name="othersDeletesAreVisible(I)Z" />
-		<method name="othersInsertsAreVisible(I)Z" />
-		<method name="othersUpdatesAreVisible(I)Z" />
-		<method name="ownDeletesAreVisible(I)Z" />
-		<method name="ownInsertsAreVisible(I)Z" />
-		<method name="ownUpdatesAreVisible(I)Z" />
-		<method name="storesLowerCaseIdentifiers()Z" />
-		<method name="storesLowerCaseQuotedIdentifiers()Z" />
-		<method name="storesMixedCaseIdentifiers()Z" />
-		<method name="storesMixedCaseQuotedIdentifiers()Z" />
-		<method name="storesUpperCaseIdentifiers()Z" />
-		<method name="storesUpperCaseQuotedIdentifiers()Z" />
-		<method name="supportsANSI92EntryLevelSQL()Z" />
-		<method name="supportsANSI92FullSQL()Z" />
-		<method name="supportsANSI92IntermediateSQL()Z" />
-		<method name="supportsAlterTableWithAddColumn()Z" />
-		<method name="supportsAlterTableWithDropColumn()Z" />
-		<method name="supportsBatchUpdates()Z" />
-		<method name="supportsCatalogsInDataManipulation()Z" />
-		<method name="supportsCatalogsInIndexDefinitions()Z" />
-		<method name="supportsCatalogsInPrivilegeDefinitions()Z" />
-		<method name="supportsCatalogsInProcedureCalls()Z" />
-		<method name="supportsCatalogsInTableDefinitions()Z" />
-		<method name="supportsColumnAliasing()Z" />
-		<method name="supportsConvert()Z" />
-		<method name="supportsConvert(II)Z" />
-		<method name="supportsCoreSQLGrammar()Z" />
-		<method name="supportsCorrelatedSubqueries()Z" />
-		<method name="supportsDataDefinitionAndDataManipulationTransactions()Z" />
-		<method name="supportsDataManipulationTransactionsOnly()Z" />
-		<method name="supportsDifferentTableCorrelationNames()Z" />
-		<method name="supportsExpressionsInOrderBy()Z" />
-		<method name="supportsExtendedSQLGrammar()Z" />
-		<method name="supportsFullOuterJoins()Z" />
-		<method name="supportsGetGeneratedKeys()Z" />
-		<method name="supportsGroupBy()Z" />
-		<method name="supportsGroupByBeyondSelect()Z" />
-		<method name="supportsGroupByUnrelated()Z" />
-		<method name="supportsIntegrityEnhancementFacility()Z" />
-		<method name="supportsLikeEscapeClause()Z" />
-		<method name="supportsLimitedOuterJoins()Z" />
-		<method name="supportsMinimumSQLGrammar()Z" />
-		<method name="supportsMixedCaseIdentifiers()Z" />
-		<method name="supportsMixedCaseQuotedIdentifiers()Z" />
-		<method name="supportsMultipleOpenResults()Z" />
-		<method name="supportsMultipleResultSets()Z" />
-		<method name="supportsMultipleTransactions()Z" />
-		<method name="supportsNamedParameters()Z" />
-		<method name="supportsNonNullableColumns()Z" />
-		<method name="supportsOpenCursorsAcrossCommit()Z" />
-		<method name="supportsOpenCursorsAcrossRollback()Z" />
-		<method name="supportsOpenStatementsAcrossCommit()Z" />
-		<method name="supportsOpenStatementsAcrossRollback()Z" />
-		<method name="supportsOrderByUnrelated()Z" />
-		<method name="supportsOuterJoins()Z" />
-		<method name="supportsPositionedDelete()Z" />
-		<method name="supportsPositionedUpdate()Z" />
-		<method name="supportsResultSetConcurrency(II)Z" />
-		<method name="supportsResultSetHoldability(I)Z" />
-		<method name="supportsResultSetType(I)Z" />
-		<method name="supportsSavepoints()Z" />
-		<method name="supportsSchemasInDataManipulation()Z" />
-		<method name="supportsSchemasInIndexDefinitions()Z" />
-		<method name="supportsSchemasInPrivilegeDefinitions()Z" />
-		<method name="supportsSchemasInProcedureCalls()Z" />
-		<method name="supportsSchemasInTableDefinitions()Z" />
-		<method name="supportsSelectForUpdate()Z" />
-		<method name="supportsStatementPooling()Z" />
-		<method name="supportsStoredFunctionsUsingCallSyntax()Z" since="9" />
-		<method name="supportsStoredProcedures()Z" />
-		<method name="supportsSubqueriesInComparisons()Z" />
-		<method name="supportsSubqueriesInExists()Z" />
-		<method name="supportsSubqueriesInIns()Z" />
-		<method name="supportsSubqueriesInQuantifieds()Z" />
-		<method name="supportsTableCorrelationNames()Z" />
-		<method name="supportsTransactionIsolationLevel(I)Z" />
-		<method name="supportsTransactions()Z" />
-		<method name="supportsUnion()Z" />
-		<method name="supportsUnionAll()Z" />
-		<method name="updatesAreDetected(I)Z" />
-		<method name="usesLocalFilePerTable()Z" />
-		<method name="usesLocalFiles()Z" />
-		<field name="attributeNoNulls" />
-		<field name="attributeNullable" />
-		<field name="attributeNullableUnknown" />
-		<field name="bestRowNotPseudo" />
-		<field name="bestRowPseudo" />
-		<field name="bestRowSession" />
-		<field name="bestRowTemporary" />
-		<field name="bestRowTransaction" />
-		<field name="bestRowUnknown" />
-		<field name="columnNoNulls" />
-		<field name="columnNullable" />
-		<field name="columnNullableUnknown" />
-		<field name="functionColumnIn" since="9" />
-		<field name="functionColumnInOut" since="9" />
-		<field name="functionColumnOut" since="9" />
-		<field name="functionColumnResult" since="9" />
-		<field name="functionColumnUnknown" since="9" />
-		<field name="functionNoNulls" since="9" />
-		<field name="functionNoTable" since="9" />
-		<field name="functionNullable" since="9" />
-		<field name="functionNullableUnknown" since="9" />
-		<field name="functionResultUnknown" since="9" />
-		<field name="functionReturn" since="9" />
-		<field name="functionReturnsTable" since="9" />
-		<field name="importedKeyCascade" />
-		<field name="importedKeyInitiallyDeferred" />
-		<field name="importedKeyInitiallyImmediate" />
-		<field name="importedKeyNoAction" />
-		<field name="importedKeyNotDeferrable" />
-		<field name="importedKeyRestrict" />
-		<field name="importedKeySetDefault" />
-		<field name="importedKeySetNull" />
-		<field name="procedureColumnIn" />
-		<field name="procedureColumnInOut" />
-		<field name="procedureColumnOut" />
-		<field name="procedureColumnResult" />
-		<field name="procedureColumnReturn" />
-		<field name="procedureColumnUnknown" />
-		<field name="procedureNoNulls" />
-		<field name="procedureNoResult" />
-		<field name="procedureNullable" />
-		<field name="procedureNullableUnknown" />
-		<field name="procedureResultUnknown" />
-		<field name="procedureReturnsResult" />
-		<field name="sqlStateSQL" since="9" />
-		<field name="sqlStateSQL99" />
-		<field name="sqlStateXOpen" />
-		<field name="tableIndexClustered" />
-		<field name="tableIndexHashed" />
-		<field name="tableIndexOther" />
-		<field name="tableIndexStatistic" />
-		<field name="typeNoNulls" />
-		<field name="typeNullable" />
-		<field name="typeNullableUnknown" />
-		<field name="typePredBasic" />
-		<field name="typePredChar" />
-		<field name="typePredNone" />
-		<field name="typeSearchable" />
-		<field name="versionColumnNotPseudo" />
-		<field name="versionColumnPseudo" />
-		<field name="versionColumnUnknown" />
-	</class>
-	<class name="java/sql/Date" since="1">
-		<extends name="java/util/Date" />
-		<method name="&lt;init>(III)V" />
-		<method name="&lt;init>(J)V" />
-		<method name="valueOf(Ljava/lang/String;)Ljava/sql/Date;" />
-	</class>
-	<class name="java/sql/Driver" since="1">
-		<extends name="java/lang/Object" />
-		<method name="acceptsURL(Ljava/lang/String;)Z" />
-		<method name="connect(Ljava/lang/String;Ljava/util/Properties;)Ljava/sql/Connection;" />
-		<method name="getMajorVersion()I" />
-		<method name="getMinorVersion()I" />
-		<method name="getPropertyInfo(Ljava/lang/String;Ljava/util/Properties;)[Ljava/sql/DriverPropertyInfo;" />
-		<method name="jdbcCompliant()Z" />
-	</class>
-	<class name="java/sql/DriverManager" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="deregisterDriver(Ljava/sql/Driver;)V" />
-		<method name="getConnection(Ljava/lang/String;)Ljava/sql/Connection;" />
-		<method name="getConnection(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection;" />
-		<method name="getConnection(Ljava/lang/String;Ljava/util/Properties;)Ljava/sql/Connection;" />
-		<method name="getDriver(Ljava/lang/String;)Ljava/sql/Driver;" />
-		<method name="getDrivers()Ljava/util/Enumeration;" />
-		<method name="getLogStream()Ljava/io/PrintStream;" />
-		<method name="getLogWriter()Ljava/io/PrintWriter;" />
-		<method name="getLoginTimeout()I" />
-		<method name="println(Ljava/lang/String;)V" />
-		<method name="registerDriver(Ljava/sql/Driver;)V" />
-		<method name="setLogStream(Ljava/io/PrintStream;)V" />
-		<method name="setLogWriter(Ljava/io/PrintWriter;)V" />
-		<method name="setLoginTimeout(I)V" />
-	</class>
-	<class name="java/sql/DriverPropertyInfo" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<field name="choices" />
-		<field name="description" />
-		<field name="name" />
-		<field name="required" />
-		<field name="value" />
-	</class>
-	<class name="java/sql/NClob" since="9">
-		<extends name="java/lang/Object" />
-		<implements name="java/sql/Clob" />
-	</class>
-	<class name="java/sql/ParameterMetaData" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/sql/Wrapper" since="9" />
-		<method name="getParameterClassName(I)Ljava/lang/String;" />
-		<method name="getParameterCount()I" />
-		<method name="getParameterMode(I)I" />
-		<method name="getParameterType(I)I" />
-		<method name="getParameterTypeName(I)Ljava/lang/String;" />
-		<method name="getPrecision(I)I" />
-		<method name="getScale(I)I" />
-		<method name="isNullable(I)I" />
-		<method name="isSigned(I)Z" />
-		<field name="parameterModeIn" />
-		<field name="parameterModeInOut" />
-		<field name="parameterModeOut" />
-		<field name="parameterModeUnknown" />
-		<field name="parameterNoNulls" />
-		<field name="parameterNullable" />
-		<field name="parameterNullableUnknown" />
-	</class>
-	<class name="java/sql/PreparedStatement" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/sql/Statement" />
-		<method name="addBatch()V" />
-		<method name="clearParameters()V" />
-		<method name="execute()Z" />
-		<method name="executeQuery()Ljava/sql/ResultSet;" />
-		<method name="executeUpdate()I" />
-		<method name="getMetaData()Ljava/sql/ResultSetMetaData;" />
-		<method name="getParameterMetaData()Ljava/sql/ParameterMetaData;" />
-		<method name="setArray(ILjava/sql/Array;)V" />
-		<method name="setAsciiStream(ILjava/io/InputStream;)V" since="9" />
-		<method name="setAsciiStream(ILjava/io/InputStream;I)V" />
-		<method name="setAsciiStream(ILjava/io/InputStream;J)V" since="9" />
-		<method name="setBigDecimal(ILjava/math/BigDecimal;)V" />
-		<method name="setBinaryStream(ILjava/io/InputStream;)V" since="9" />
-		<method name="setBinaryStream(ILjava/io/InputStream;I)V" />
-		<method name="setBinaryStream(ILjava/io/InputStream;J)V" since="9" />
-		<method name="setBlob(ILjava/io/InputStream;)V" since="9" />
-		<method name="setBlob(ILjava/io/InputStream;J)V" since="9" />
-		<method name="setBlob(ILjava/sql/Blob;)V" />
-		<method name="setBoolean(IZ)V" />
-		<method name="setByte(IB)V" />
-		<method name="setBytes(I[B)V" />
-		<method name="setCharacterStream(ILjava/io/Reader;)V" since="9" />
-		<method name="setCharacterStream(ILjava/io/Reader;I)V" />
-		<method name="setCharacterStream(ILjava/io/Reader;J)V" since="9" />
-		<method name="setClob(ILjava/io/Reader;)V" since="9" />
-		<method name="setClob(ILjava/io/Reader;J)V" since="9" />
-		<method name="setClob(ILjava/sql/Clob;)V" />
-		<method name="setDate(ILjava/sql/Date;)V" />
-		<method name="setDate(ILjava/sql/Date;Ljava/util/Calendar;)V" />
-		<method name="setDouble(ID)V" />
-		<method name="setFloat(IF)V" />
-		<method name="setInt(II)V" />
-		<method name="setLong(IJ)V" />
-		<method name="setNCharacterStream(ILjava/io/Reader;)V" since="9" />
-		<method name="setNCharacterStream(ILjava/io/Reader;J)V" since="9" />
-		<method name="setNClob(ILjava/io/Reader;)V" since="9" />
-		<method name="setNClob(ILjava/io/Reader;J)V" since="9" />
-		<method name="setNClob(ILjava/sql/NClob;)V" since="9" />
-		<method name="setNString(ILjava/lang/String;)V" since="9" />
-		<method name="setNull(II)V" />
-		<method name="setNull(IILjava/lang/String;)V" />
-		<method name="setObject(ILjava/lang/Object;)V" />
-		<method name="setObject(ILjava/lang/Object;I)V" />
-		<method name="setObject(ILjava/lang/Object;II)V" />
-		<method name="setRef(ILjava/sql/Ref;)V" />
-		<method name="setRowId(ILjava/sql/RowId;)V" since="9" />
-		<method name="setSQLXML(ILjava/sql/SQLXML;)V" since="9" />
-		<method name="setShort(IS)V" />
-		<method name="setString(ILjava/lang/String;)V" />
-		<method name="setTime(ILjava/sql/Time;)V" />
-		<method name="setTime(ILjava/sql/Time;Ljava/util/Calendar;)V" />
-		<method name="setTimestamp(ILjava/sql/Timestamp;)V" />
-		<method name="setTimestamp(ILjava/sql/Timestamp;Ljava/util/Calendar;)V" />
-		<method name="setURL(ILjava/net/URL;)V" />
-		<method name="setUnicodeStream(ILjava/io/InputStream;I)V" />
-	</class>
-	<class name="java/sql/Ref" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getBaseTypeName()Ljava/lang/String;" />
-		<method name="getObject()Ljava/lang/Object;" />
-		<method name="getObject(Ljava/util/Map;)Ljava/lang/Object;" />
-		<method name="setObject(Ljava/lang/Object;)V" />
-	</class>
-	<class name="java/sql/ResultSet" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/AutoCloseable" since="19" />
-		<implements name="java/sql/Wrapper" since="9" />
-		<method name="absolute(I)Z" />
-		<method name="afterLast()V" />
-		<method name="beforeFirst()V" />
-		<method name="cancelRowUpdates()V" />
-		<method name="clearWarnings()V" />
-		<method name="close()V" />
-		<method name="deleteRow()V" />
-		<method name="findColumn(Ljava/lang/String;)I" />
-		<method name="first()Z" />
-		<method name="getArray(I)Ljava/sql/Array;" />
-		<method name="getArray(Ljava/lang/String;)Ljava/sql/Array;" />
-		<method name="getAsciiStream(I)Ljava/io/InputStream;" />
-		<method name="getAsciiStream(Ljava/lang/String;)Ljava/io/InputStream;" />
-		<method name="getBigDecimal(I)Ljava/math/BigDecimal;" />
-		<method name="getBigDecimal(II)Ljava/math/BigDecimal;" />
-		<method name="getBigDecimal(Ljava/lang/String;)Ljava/math/BigDecimal;" />
-		<method name="getBigDecimal(Ljava/lang/String;I)Ljava/math/BigDecimal;" />
-		<method name="getBinaryStream(I)Ljava/io/InputStream;" />
-		<method name="getBinaryStream(Ljava/lang/String;)Ljava/io/InputStream;" />
-		<method name="getBlob(I)Ljava/sql/Blob;" />
-		<method name="getBlob(Ljava/lang/String;)Ljava/sql/Blob;" />
-		<method name="getBoolean(I)Z" />
-		<method name="getBoolean(Ljava/lang/String;)Z" />
-		<method name="getByte(I)B" />
-		<method name="getByte(Ljava/lang/String;)B" />
-		<method name="getBytes(I)[B" />
-		<method name="getBytes(Ljava/lang/String;)[B" />
-		<method name="getCharacterStream(I)Ljava/io/Reader;" />
-		<method name="getCharacterStream(Ljava/lang/String;)Ljava/io/Reader;" />
-		<method name="getClob(I)Ljava/sql/Clob;" />
-		<method name="getClob(Ljava/lang/String;)Ljava/sql/Clob;" />
-		<method name="getConcurrency()I" />
-		<method name="getCursorName()Ljava/lang/String;" />
-		<method name="getDate(I)Ljava/sql/Date;" />
-		<method name="getDate(ILjava/util/Calendar;)Ljava/sql/Date;" />
-		<method name="getDate(Ljava/lang/String;)Ljava/sql/Date;" />
-		<method name="getDate(Ljava/lang/String;Ljava/util/Calendar;)Ljava/sql/Date;" />
-		<method name="getDouble(I)D" />
-		<method name="getDouble(Ljava/lang/String;)D" />
-		<method name="getFetchDirection()I" />
-		<method name="getFetchSize()I" />
-		<method name="getFloat(I)F" />
-		<method name="getFloat(Ljava/lang/String;)F" />
-		<method name="getHoldability()I" since="9" />
-		<method name="getInt(I)I" />
-		<method name="getInt(Ljava/lang/String;)I" />
-		<method name="getLong(I)J" />
-		<method name="getLong(Ljava/lang/String;)J" />
-		<method name="getMetaData()Ljava/sql/ResultSetMetaData;" />
-		<method name="getNCharacterStream(I)Ljava/io/Reader;" since="9" />
-		<method name="getNCharacterStream(Ljava/lang/String;)Ljava/io/Reader;" since="9" />
-		<method name="getNClob(I)Ljava/sql/NClob;" since="9" />
-		<method name="getNClob(Ljava/lang/String;)Ljava/sql/NClob;" since="9" />
-		<method name="getNString(I)Ljava/lang/String;" since="9" />
-		<method name="getNString(Ljava/lang/String;)Ljava/lang/String;" since="9" />
-		<method name="getObject(I)Ljava/lang/Object;" />
-		<method name="getObject(ILjava/util/Map;)Ljava/lang/Object;" />
-		<method name="getObject(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="getObject(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/Object;" />
-		<method name="getRef(I)Ljava/sql/Ref;" />
-		<method name="getRef(Ljava/lang/String;)Ljava/sql/Ref;" />
-		<method name="getRow()I" />
-		<method name="getRowId(I)Ljava/sql/RowId;" since="9" />
-		<method name="getRowId(Ljava/lang/String;)Ljava/sql/RowId;" since="9" />
-		<method name="getSQLXML(I)Ljava/sql/SQLXML;" since="9" />
-		<method name="getSQLXML(Ljava/lang/String;)Ljava/sql/SQLXML;" since="9" />
-		<method name="getShort(I)S" />
-		<method name="getShort(Ljava/lang/String;)S" />
-		<method name="getStatement()Ljava/sql/Statement;" />
-		<method name="getString(I)Ljava/lang/String;" />
-		<method name="getString(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getTime(I)Ljava/sql/Time;" />
-		<method name="getTime(ILjava/util/Calendar;)Ljava/sql/Time;" />
-		<method name="getTime(Ljava/lang/String;)Ljava/sql/Time;" />
-		<method name="getTime(Ljava/lang/String;Ljava/util/Calendar;)Ljava/sql/Time;" />
-		<method name="getTimestamp(I)Ljava/sql/Timestamp;" />
-		<method name="getTimestamp(ILjava/util/Calendar;)Ljava/sql/Timestamp;" />
-		<method name="getTimestamp(Ljava/lang/String;)Ljava/sql/Timestamp;" />
-		<method name="getTimestamp(Ljava/lang/String;Ljava/util/Calendar;)Ljava/sql/Timestamp;" />
-		<method name="getType()I" />
-		<method name="getURL(I)Ljava/net/URL;" />
-		<method name="getURL(Ljava/lang/String;)Ljava/net/URL;" />
-		<method name="getUnicodeStream(I)Ljava/io/InputStream;" />
-		<method name="getUnicodeStream(Ljava/lang/String;)Ljava/io/InputStream;" />
-		<method name="getWarnings()Ljava/sql/SQLWarning;" />
-		<method name="insertRow()V" />
-		<method name="isAfterLast()Z" />
-		<method name="isBeforeFirst()Z" />
-		<method name="isClosed()Z" since="9" />
-		<method name="isFirst()Z" />
-		<method name="isLast()Z" />
-		<method name="last()Z" />
-		<method name="moveToCurrentRow()V" />
-		<method name="moveToInsertRow()V" />
-		<method name="next()Z" />
-		<method name="previous()Z" />
-		<method name="refreshRow()V" />
-		<method name="relative(I)Z" />
-		<method name="rowDeleted()Z" />
-		<method name="rowInserted()Z" />
-		<method name="rowUpdated()Z" />
-		<method name="setFetchDirection(I)V" />
-		<method name="setFetchSize(I)V" />
-		<method name="updateArray(ILjava/sql/Array;)V" />
-		<method name="updateArray(Ljava/lang/String;Ljava/sql/Array;)V" />
-		<method name="updateAsciiStream(ILjava/io/InputStream;)V" since="9" />
-		<method name="updateAsciiStream(ILjava/io/InputStream;I)V" />
-		<method name="updateAsciiStream(ILjava/io/InputStream;J)V" since="9" />
-		<method name="updateAsciiStream(Ljava/lang/String;Ljava/io/InputStream;)V" since="9" />
-		<method name="updateAsciiStream(Ljava/lang/String;Ljava/io/InputStream;I)V" />
-		<method name="updateAsciiStream(Ljava/lang/String;Ljava/io/InputStream;J)V" since="9" />
-		<method name="updateBigDecimal(ILjava/math/BigDecimal;)V" />
-		<method name="updateBigDecimal(Ljava/lang/String;Ljava/math/BigDecimal;)V" />
-		<method name="updateBinaryStream(ILjava/io/InputStream;)V" since="9" />
-		<method name="updateBinaryStream(ILjava/io/InputStream;I)V" />
-		<method name="updateBinaryStream(ILjava/io/InputStream;J)V" since="9" />
-		<method name="updateBinaryStream(Ljava/lang/String;Ljava/io/InputStream;)V" since="9" />
-		<method name="updateBinaryStream(Ljava/lang/String;Ljava/io/InputStream;I)V" />
-		<method name="updateBinaryStream(Ljava/lang/String;Ljava/io/InputStream;J)V" since="9" />
-		<method name="updateBlob(ILjava/io/InputStream;)V" since="9" />
-		<method name="updateBlob(ILjava/io/InputStream;J)V" since="9" />
-		<method name="updateBlob(ILjava/sql/Blob;)V" />
-		<method name="updateBlob(Ljava/lang/String;Ljava/io/InputStream;)V" since="9" />
-		<method name="updateBlob(Ljava/lang/String;Ljava/io/InputStream;J)V" since="9" />
-		<method name="updateBlob(Ljava/lang/String;Ljava/sql/Blob;)V" />
-		<method name="updateBoolean(IZ)V" />
-		<method name="updateBoolean(Ljava/lang/String;Z)V" />
-		<method name="updateByte(IB)V" />
-		<method name="updateByte(Ljava/lang/String;B)V" />
-		<method name="updateBytes(I[B)V" />
-		<method name="updateBytes(Ljava/lang/String;[B)V" />
-		<method name="updateCharacterStream(ILjava/io/Reader;)V" since="9" />
-		<method name="updateCharacterStream(ILjava/io/Reader;I)V" />
-		<method name="updateCharacterStream(ILjava/io/Reader;J)V" since="9" />
-		<method name="updateCharacterStream(Ljava/lang/String;Ljava/io/Reader;)V" since="9" />
-		<method name="updateCharacterStream(Ljava/lang/String;Ljava/io/Reader;I)V" />
-		<method name="updateCharacterStream(Ljava/lang/String;Ljava/io/Reader;J)V" since="9" />
-		<method name="updateClob(ILjava/io/Reader;)V" since="9" />
-		<method name="updateClob(ILjava/io/Reader;J)V" since="9" />
-		<method name="updateClob(ILjava/sql/Clob;)V" />
-		<method name="updateClob(Ljava/lang/String;Ljava/io/Reader;)V" since="9" />
-		<method name="updateClob(Ljava/lang/String;Ljava/io/Reader;J)V" since="9" />
-		<method name="updateClob(Ljava/lang/String;Ljava/sql/Clob;)V" />
-		<method name="updateDate(ILjava/sql/Date;)V" />
-		<method name="updateDate(Ljava/lang/String;Ljava/sql/Date;)V" />
-		<method name="updateDouble(ID)V" />
-		<method name="updateDouble(Ljava/lang/String;D)V" />
-		<method name="updateFloat(IF)V" />
-		<method name="updateFloat(Ljava/lang/String;F)V" />
-		<method name="updateInt(II)V" />
-		<method name="updateInt(Ljava/lang/String;I)V" />
-		<method name="updateLong(IJ)V" />
-		<method name="updateLong(Ljava/lang/String;J)V" />
-		<method name="updateNCharacterStream(ILjava/io/Reader;)V" since="9" />
-		<method name="updateNCharacterStream(ILjava/io/Reader;J)V" since="9" />
-		<method name="updateNCharacterStream(Ljava/lang/String;Ljava/io/Reader;)V" since="9" />
-		<method name="updateNCharacterStream(Ljava/lang/String;Ljava/io/Reader;J)V" since="9" />
-		<method name="updateNClob(ILjava/io/Reader;)V" since="9" />
-		<method name="updateNClob(ILjava/io/Reader;J)V" since="9" />
-		<method name="updateNClob(ILjava/sql/NClob;)V" since="9" />
-		<method name="updateNClob(Ljava/lang/String;Ljava/io/Reader;)V" since="9" />
-		<method name="updateNClob(Ljava/lang/String;Ljava/io/Reader;J)V" since="9" />
-		<method name="updateNClob(Ljava/lang/String;Ljava/sql/NClob;)V" since="9" />
-		<method name="updateNString(ILjava/lang/String;)V" since="9" />
-		<method name="updateNString(Ljava/lang/String;Ljava/lang/String;)V" since="9" />
-		<method name="updateNull(I)V" />
-		<method name="updateNull(Ljava/lang/String;)V" />
-		<method name="updateObject(ILjava/lang/Object;)V" />
-		<method name="updateObject(ILjava/lang/Object;I)V" />
-		<method name="updateObject(Ljava/lang/String;Ljava/lang/Object;)V" />
-		<method name="updateObject(Ljava/lang/String;Ljava/lang/Object;I)V" />
-		<method name="updateRef(ILjava/sql/Ref;)V" />
-		<method name="updateRef(Ljava/lang/String;Ljava/sql/Ref;)V" />
-		<method name="updateRow()V" />
-		<method name="updateRowId(ILjava/sql/RowId;)V" since="9" />
-		<method name="updateRowId(Ljava/lang/String;Ljava/sql/RowId;)V" since="9" />
-		<method name="updateSQLXML(ILjava/sql/SQLXML;)V" since="9" />
-		<method name="updateSQLXML(Ljava/lang/String;Ljava/sql/SQLXML;)V" since="9" />
-		<method name="updateShort(IS)V" />
-		<method name="updateShort(Ljava/lang/String;S)V" />
-		<method name="updateString(ILjava/lang/String;)V" />
-		<method name="updateString(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="updateTime(ILjava/sql/Time;)V" />
-		<method name="updateTime(Ljava/lang/String;Ljava/sql/Time;)V" />
-		<method name="updateTimestamp(ILjava/sql/Timestamp;)V" />
-		<method name="updateTimestamp(Ljava/lang/String;Ljava/sql/Timestamp;)V" />
-		<method name="wasNull()Z" />
-		<field name="CLOSE_CURSORS_AT_COMMIT" />
-		<field name="CONCUR_READ_ONLY" />
-		<field name="CONCUR_UPDATABLE" />
-		<field name="FETCH_FORWARD" />
-		<field name="FETCH_REVERSE" />
-		<field name="FETCH_UNKNOWN" />
-		<field name="HOLD_CURSORS_OVER_COMMIT" />
-		<field name="TYPE_FORWARD_ONLY" />
-		<field name="TYPE_SCROLL_INSENSITIVE" />
-		<field name="TYPE_SCROLL_SENSITIVE" />
-	</class>
-	<class name="java/sql/ResultSetMetaData" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/sql/Wrapper" since="9" />
-		<method name="getCatalogName(I)Ljava/lang/String;" />
-		<method name="getColumnClassName(I)Ljava/lang/String;" />
-		<method name="getColumnCount()I" />
-		<method name="getColumnDisplaySize(I)I" />
-		<method name="getColumnLabel(I)Ljava/lang/String;" />
-		<method name="getColumnName(I)Ljava/lang/String;" />
-		<method name="getColumnType(I)I" />
-		<method name="getColumnTypeName(I)Ljava/lang/String;" />
-		<method name="getPrecision(I)I" />
-		<method name="getScale(I)I" />
-		<method name="getSchemaName(I)Ljava/lang/String;" />
-		<method name="getTableName(I)Ljava/lang/String;" />
-		<method name="isAutoIncrement(I)Z" />
-		<method name="isCaseSensitive(I)Z" />
-		<method name="isCurrency(I)Z" />
-		<method name="isDefinitelyWritable(I)Z" />
-		<method name="isNullable(I)I" />
-		<method name="isReadOnly(I)Z" />
-		<method name="isSearchable(I)Z" />
-		<method name="isSigned(I)Z" />
-		<method name="isWritable(I)Z" />
-		<field name="columnNoNulls" />
-		<field name="columnNullable" />
-		<field name="columnNullableUnknown" />
-	</class>
-	<class name="java/sql/RowId" since="9">
-		<extends name="java/lang/Object" />
-		<method name="getBytes()[B" />
-	</class>
-	<class name="java/sql/RowIdLifetime" since="9">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Ljava/sql/RowIdLifetime;" />
-		<method name="values()[Ljava/sql/RowIdLifetime;" />
-		<field name="ROWID_UNSUPPORTED" />
-		<field name="ROWID_VALID_FOREVER" />
-		<field name="ROWID_VALID_OTHER" />
-		<field name="ROWID_VALID_SESSION" />
-		<field name="ROWID_VALID_TRANSACTION" />
-	</class>
-	<class name="java/sql/SQLClientInfoException" since="9">
-		<extends name="java/sql/SQLException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/util/Map;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/util/Map;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/util/Map;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/util/Map;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/util/Map;)V" />
-		<method name="&lt;init>(Ljava/util/Map;Ljava/lang/Throwable;)V" />
-		<method name="getFailedProperties()Ljava/util/Map;" />
-	</class>
-	<class name="java/sql/SQLData" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getSQLTypeName()Ljava/lang/String;" />
-		<method name="readSQL(Ljava/sql/SQLInput;Ljava/lang/String;)V" />
-		<method name="writeSQL(Ljava/sql/SQLOutput;)V" />
-	</class>
-	<class name="java/sql/SQLDataException" since="9">
-		<extends name="java/sql/SQLNonTransientException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/sql/SQLException" since="1">
-		<extends name="java/lang/Exception" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Iterable" since="9" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V" since="9" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V" since="9" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" since="9" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" since="9" />
-		<method name="getErrorCode()I" />
-		<method name="getNextException()Ljava/sql/SQLException;" />
-		<method name="getSQLState()Ljava/lang/String;" />
-		<method name="setNextException(Ljava/sql/SQLException;)V" />
-	</class>
-	<class name="java/sql/SQLFeatureNotSupportedException" since="9">
-		<extends name="java/sql/SQLNonTransientException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/sql/SQLInput" since="1">
-		<extends name="java/lang/Object" />
-		<method name="readArray()Ljava/sql/Array;" />
-		<method name="readAsciiStream()Ljava/io/InputStream;" />
-		<method name="readBigDecimal()Ljava/math/BigDecimal;" />
-		<method name="readBinaryStream()Ljava/io/InputStream;" />
-		<method name="readBlob()Ljava/sql/Blob;" />
-		<method name="readBoolean()Z" />
-		<method name="readByte()B" />
-		<method name="readBytes()[B" />
-		<method name="readCharacterStream()Ljava/io/Reader;" />
-		<method name="readClob()Ljava/sql/Clob;" />
-		<method name="readDate()Ljava/sql/Date;" />
-		<method name="readDouble()D" />
-		<method name="readFloat()F" />
-		<method name="readInt()I" />
-		<method name="readLong()J" />
-		<method name="readNClob()Ljava/sql/NClob;" since="9" />
-		<method name="readNString()Ljava/lang/String;" since="9" />
-		<method name="readObject()Ljava/lang/Object;" />
-		<method name="readRef()Ljava/sql/Ref;" />
-		<method name="readRowId()Ljava/sql/RowId;" since="9" />
-		<method name="readSQLXML()Ljava/sql/SQLXML;" since="9" />
-		<method name="readShort()S" />
-		<method name="readString()Ljava/lang/String;" />
-		<method name="readTime()Ljava/sql/Time;" />
-		<method name="readTimestamp()Ljava/sql/Timestamp;" />
-		<method name="readURL()Ljava/net/URL;" />
-		<method name="wasNull()Z" />
-	</class>
-	<class name="java/sql/SQLIntegrityConstraintViolationException" since="9">
-		<extends name="java/sql/SQLNonTransientException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/sql/SQLInvalidAuthorizationSpecException" since="9">
-		<extends name="java/sql/SQLNonTransientException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/sql/SQLNonTransientConnectionException" since="9">
-		<extends name="java/sql/SQLNonTransientException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/sql/SQLNonTransientException" since="9">
-		<extends name="java/sql/SQLException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/sql/SQLOutput" since="1">
-		<extends name="java/lang/Object" />
-		<method name="writeArray(Ljava/sql/Array;)V" />
-		<method name="writeAsciiStream(Ljava/io/InputStream;)V" />
-		<method name="writeBigDecimal(Ljava/math/BigDecimal;)V" />
-		<method name="writeBinaryStream(Ljava/io/InputStream;)V" />
-		<method name="writeBlob(Ljava/sql/Blob;)V" />
-		<method name="writeBoolean(Z)V" />
-		<method name="writeByte(B)V" />
-		<method name="writeBytes([B)V" />
-		<method name="writeCharacterStream(Ljava/io/Reader;)V" />
-		<method name="writeClob(Ljava/sql/Clob;)V" />
-		<method name="writeDate(Ljava/sql/Date;)V" />
-		<method name="writeDouble(D)V" />
-		<method name="writeFloat(F)V" />
-		<method name="writeInt(I)V" />
-		<method name="writeLong(J)V" />
-		<method name="writeNClob(Ljava/sql/NClob;)V" since="9" />
-		<method name="writeNString(Ljava/lang/String;)V" since="9" />
-		<method name="writeObject(Ljava/sql/SQLData;)V" />
-		<method name="writeRef(Ljava/sql/Ref;)V" />
-		<method name="writeRowId(Ljava/sql/RowId;)V" since="9" />
-		<method name="writeSQLXML(Ljava/sql/SQLXML;)V" since="9" />
-		<method name="writeShort(S)V" />
-		<method name="writeString(Ljava/lang/String;)V" />
-		<method name="writeStruct(Ljava/sql/Struct;)V" />
-		<method name="writeTime(Ljava/sql/Time;)V" />
-		<method name="writeTimestamp(Ljava/sql/Timestamp;)V" />
-		<method name="writeURL(Ljava/net/URL;)V" />
-	</class>
-	<class name="java/sql/SQLPermission" since="1">
-		<extends name="java/security/BasicPermission" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/security/Guard" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-	</class>
-	<class name="java/sql/SQLRecoverableException" since="9">
-		<extends name="java/sql/SQLException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/sql/SQLSyntaxErrorException" since="9">
-		<extends name="java/sql/SQLNonTransientException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/sql/SQLTimeoutException" since="9">
-		<extends name="java/sql/SQLTransientException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/sql/SQLTransactionRollbackException" since="9">
-		<extends name="java/sql/SQLTransientException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/sql/SQLTransientConnectionException" since="9">
-		<extends name="java/sql/SQLTransientException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/sql/SQLTransientException" since="9">
-		<extends name="java/sql/SQLException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/sql/SQLWarning" since="1">
-		<extends name="java/sql/SQLException" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V" since="9" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V" since="9" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" since="9" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" since="9" />
-		<method name="getNextWarning()Ljava/sql/SQLWarning;" />
-		<method name="setNextWarning(Ljava/sql/SQLWarning;)V" />
-	</class>
-	<class name="java/sql/SQLXML" since="9">
-		<extends name="java/lang/Object" />
-		<method name="free()V" />
-		<method name="getBinaryStream()Ljava/io/InputStream;" />
-		<method name="getCharacterStream()Ljava/io/Reader;" />
-		<method name="getSource(Ljava/lang/Class;)Ljavax/xml/transform/Source;" />
-		<method name="getString()Ljava/lang/String;" />
-		<method name="setBinaryStream()Ljava/io/OutputStream;" />
-		<method name="setCharacterStream()Ljava/io/Writer;" />
-		<method name="setResult(Ljava/lang/Class;)Ljavax/xml/transform/Result;" />
-		<method name="setString(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/sql/Savepoint" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getSavepointId()I" />
-		<method name="getSavepointName()Ljava/lang/String;" />
-	</class>
-	<class name="java/sql/Statement" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/AutoCloseable" since="19" />
-		<implements name="java/sql/Wrapper" since="9" />
-		<method name="addBatch(Ljava/lang/String;)V" />
-		<method name="cancel()V" />
-		<method name="clearBatch()V" />
-		<method name="clearWarnings()V" />
-		<method name="close()V" />
-		<method name="execute(Ljava/lang/String;)Z" />
-		<method name="execute(Ljava/lang/String;I)Z" />
-		<method name="execute(Ljava/lang/String;[I)Z" />
-		<method name="execute(Ljava/lang/String;[Ljava/lang/String;)Z" />
-		<method name="executeBatch()[I" />
-		<method name="executeQuery(Ljava/lang/String;)Ljava/sql/ResultSet;" />
-		<method name="executeUpdate(Ljava/lang/String;)I" />
-		<method name="executeUpdate(Ljava/lang/String;I)I" />
-		<method name="executeUpdate(Ljava/lang/String;[I)I" />
-		<method name="executeUpdate(Ljava/lang/String;[Ljava/lang/String;)I" />
-		<method name="getConnection()Ljava/sql/Connection;" />
-		<method name="getFetchDirection()I" />
-		<method name="getFetchSize()I" />
-		<method name="getGeneratedKeys()Ljava/sql/ResultSet;" />
-		<method name="getMaxFieldSize()I" />
-		<method name="getMaxRows()I" />
-		<method name="getMoreResults()Z" />
-		<method name="getMoreResults(I)Z" />
-		<method name="getQueryTimeout()I" />
-		<method name="getResultSet()Ljava/sql/ResultSet;" />
-		<method name="getResultSetConcurrency()I" />
-		<method name="getResultSetHoldability()I" />
-		<method name="getResultSetType()I" />
-		<method name="getUpdateCount()I" />
-		<method name="getWarnings()Ljava/sql/SQLWarning;" />
-		<method name="isClosed()Z" since="9" />
-		<method name="isPoolable()Z" since="9" />
-		<method name="setCursorName(Ljava/lang/String;)V" />
-		<method name="setEscapeProcessing(Z)V" />
-		<method name="setFetchDirection(I)V" />
-		<method name="setFetchSize(I)V" />
-		<method name="setMaxFieldSize(I)V" />
-		<method name="setMaxRows(I)V" />
-		<method name="setPoolable(Z)V" since="9" />
-		<method name="setQueryTimeout(I)V" />
-		<field name="CLOSE_ALL_RESULTS" />
-		<field name="CLOSE_CURRENT_RESULT" />
-		<field name="EXECUTE_FAILED" />
-		<field name="KEEP_CURRENT_RESULT" />
-		<field name="NO_GENERATED_KEYS" />
-		<field name="RETURN_GENERATED_KEYS" />
-		<field name="SUCCESS_NO_INFO" />
-	</class>
-	<class name="java/sql/Struct" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getAttributes()[Ljava/lang/Object;" />
-		<method name="getAttributes(Ljava/util/Map;)[Ljava/lang/Object;" />
-		<method name="getSQLTypeName()Ljava/lang/String;" />
-	</class>
-	<class name="java/sql/Time" since="1">
-		<extends name="java/util/Date" />
-		<method name="&lt;init>(III)V" />
-		<method name="&lt;init>(J)V" />
-		<method name="valueOf(Ljava/lang/String;)Ljava/sql/Time;" />
-	</class>
-	<class name="java/sql/Timestamp" since="1">
-		<extends name="java/util/Date" />
-		<method name="&lt;init>(IIIIIII)V" />
-		<method name="&lt;init>(J)V" />
-		<method name="after(Ljava/sql/Timestamp;)Z" />
-		<method name="before(Ljava/sql/Timestamp;)Z" />
-		<method name="compareTo(Ljava/sql/Timestamp;)I" />
-		<method name="equals(Ljava/sql/Timestamp;)Z" />
-		<method name="getNanos()I" />
-		<method name="setNanos(I)V" />
-		<method name="valueOf(Ljava/lang/String;)Ljava/sql/Timestamp;" />
-	</class>
-	<class name="java/sql/Types" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="ARRAY" />
-		<field name="BIGINT" />
-		<field name="BINARY" />
-		<field name="BIT" />
-		<field name="BLOB" />
-		<field name="BOOLEAN" />
-		<field name="CHAR" />
-		<field name="CLOB" />
-		<field name="DATALINK" />
-		<field name="DATE" />
-		<field name="DECIMAL" />
-		<field name="DISTINCT" />
-		<field name="DOUBLE" />
-		<field name="FLOAT" />
-		<field name="INTEGER" />
-		<field name="JAVA_OBJECT" />
-		<field name="LONGNVARCHAR" since="9" />
-		<field name="LONGVARBINARY" />
-		<field name="LONGVARCHAR" />
-		<field name="NCHAR" since="9" />
-		<field name="NCLOB" since="9" />
-		<field name="NULL" />
-		<field name="NUMERIC" />
-		<field name="NVARCHAR" since="9" />
-		<field name="OTHER" />
-		<field name="REAL" />
-		<field name="REF" />
-		<field name="ROWID" since="9" />
-		<field name="SMALLINT" />
-		<field name="SQLXML" since="9" />
-		<field name="STRUCT" />
-		<field name="TIME" />
-		<field name="TIMESTAMP" />
-		<field name="TINYINT" />
-		<field name="VARBINARY" />
-		<field name="VARCHAR" />
-	</class>
-	<class name="java/sql/Wrapper" since="9">
-		<extends name="java/lang/Object" />
-		<method name="isWrapperFor(Ljava/lang/Class;)Z" />
-		<method name="unwrap(Ljava/lang/Class;)Ljava/lang/Object;" />
-	</class>
-	<class name="java/text/Annotation" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/Object;)V" />
-		<method name="getValue()Ljava/lang/Object;" />
-	</class>
-	<class name="java/text/AttributedCharacterIterator" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/text/CharacterIterator" />
-		<method name="getAllAttributeKeys()Ljava/util/Set;" />
-		<method name="getAttribute(Ljava/text/AttributedCharacterIterator$Attribute;)Ljava/lang/Object;" />
-		<method name="getAttributes()Ljava/util/Map;" />
-		<method name="getRunLimit()I" />
-		<method name="getRunLimit(Ljava/text/AttributedCharacterIterator$Attribute;)I" />
-		<method name="getRunLimit(Ljava/util/Set;)I" />
-		<method name="getRunStart()I" />
-		<method name="getRunStart(Ljava/text/AttributedCharacterIterator$Attribute;)I" />
-		<method name="getRunStart(Ljava/util/Set;)I" />
-	</class>
-	<class name="java/text/AttributedCharacterIterator$Attribute" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="readResolve()Ljava/lang/Object;" />
-		<field name="INPUT_METHOD_SEGMENT" />
-		<field name="LANGUAGE" />
-		<field name="READING" />
-	</class>
-	<class name="java/text/AttributedString" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/util/Map;)V" />
-		<method name="&lt;init>(Ljava/text/AttributedCharacterIterator;)V" />
-		<method name="&lt;init>(Ljava/text/AttributedCharacterIterator;II)V" />
-		<method name="&lt;init>(Ljava/text/AttributedCharacterIterator;II[Ljava/text/AttributedCharacterIterator$Attribute;)V" />
-		<method name="addAttribute(Ljava/text/AttributedCharacterIterator$Attribute;Ljava/lang/Object;)V" />
-		<method name="addAttribute(Ljava/text/AttributedCharacterIterator$Attribute;Ljava/lang/Object;II)V" />
-		<method name="addAttributes(Ljava/util/Map;II)V" />
-		<method name="getIterator()Ljava/text/AttributedCharacterIterator;" />
-		<method name="getIterator([Ljava/text/AttributedCharacterIterator$Attribute;)Ljava/text/AttributedCharacterIterator;" />
-		<method name="getIterator([Ljava/text/AttributedCharacterIterator$Attribute;II)Ljava/text/AttributedCharacterIterator;" />
-	</class>
-	<class name="java/text/Bidi" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;I)V" />
-		<method name="&lt;init>(Ljava/text/AttributedCharacterIterator;)V" />
-		<method name="&lt;init>([CI[BIII)V" />
-		<method name="baseIsLeftToRight()Z" />
-		<method name="createLineBidi(II)Ljava/text/Bidi;" />
-		<method name="getBaseLevel()I" />
-		<method name="getLength()I" />
-		<method name="getLevelAt(I)I" />
-		<method name="getRunCount()I" />
-		<method name="getRunLevel(I)I" />
-		<method name="getRunLimit(I)I" />
-		<method name="getRunStart(I)I" />
-		<method name="isLeftToRight()Z" />
-		<method name="isMixed()Z" />
-		<method name="isRightToLeft()Z" />
-		<method name="reorderVisually([BI[Ljava/lang/Object;II)V" />
-		<method name="requiresBidi([CII)Z" />
-		<field name="DIRECTION_DEFAULT_LEFT_TO_RIGHT" />
-		<field name="DIRECTION_DEFAULT_RIGHT_TO_LEFT" />
-		<field name="DIRECTION_LEFT_TO_RIGHT" />
-		<field name="DIRECTION_RIGHT_TO_LEFT" />
-	</class>
-	<class name="java/text/BreakIterator" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-		<method name="&lt;init>()V" />
-		<method name="current()I" />
-		<method name="first()I" />
-		<method name="following(I)I" />
-		<method name="getAvailableLocales()[Ljava/util/Locale;" />
-		<method name="getCharacterInstance()Ljava/text/BreakIterator;" />
-		<method name="getCharacterInstance(Ljava/util/Locale;)Ljava/text/BreakIterator;" />
-		<method name="getInt([BI)I" />
-		<method name="getLineInstance()Ljava/text/BreakIterator;" />
-		<method name="getLineInstance(Ljava/util/Locale;)Ljava/text/BreakIterator;" />
-		<method name="getLong([BI)J" />
-		<method name="getSentenceInstance()Ljava/text/BreakIterator;" />
-		<method name="getSentenceInstance(Ljava/util/Locale;)Ljava/text/BreakIterator;" />
-		<method name="getShort([BI)S" />
-		<method name="getText()Ljava/text/CharacterIterator;" />
-		<method name="getWordInstance()Ljava/text/BreakIterator;" />
-		<method name="getWordInstance(Ljava/util/Locale;)Ljava/text/BreakIterator;" />
-		<method name="isBoundary(I)Z" />
-		<method name="last()I" />
-		<method name="next()I" />
-		<method name="next(I)I" />
-		<method name="preceding(I)I" />
-		<method name="previous()I" />
-		<method name="setText(Ljava/lang/String;)V" />
-		<method name="setText(Ljava/text/CharacterIterator;)V" />
-		<field name="DONE" />
-	</class>
-	<class name="java/text/CharacterIterator" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-		<method name="current()C" />
-		<method name="first()C" />
-		<method name="getBeginIndex()I" />
-		<method name="getEndIndex()I" />
-		<method name="getIndex()I" />
-		<method name="last()C" />
-		<method name="next()C" />
-		<method name="previous()C" />
-		<method name="setIndex(I)C" />
-		<field name="DONE" />
-	</class>
-	<class name="java/text/ChoiceFormat" since="1">
-		<extends name="java/text/NumberFormat" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>([D[Ljava/lang/String;)V" />
-		<method name="applyPattern(Ljava/lang/String;)V" />
-		<method name="getFormats()[Ljava/lang/Object;" />
-		<method name="getLimits()[D" />
-		<method name="nextDouble(D)D" />
-		<method name="nextDouble(DZ)D" />
-		<method name="previousDouble(D)D" />
-		<method name="setChoices([D[Ljava/lang/String;)V" />
-		<method name="toPattern()Ljava/lang/String;" />
-	</class>
-	<class name="java/text/CollationElementIterator" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getMaxExpansion(I)I" />
-		<method name="getOffset()I" />
-		<method name="next()I" />
-		<method name="previous()I" />
-		<method name="primaryOrder(I)I" />
-		<method name="reset()V" />
-		<method name="secondaryOrder(I)S" />
-		<method name="setOffset(I)V" />
-		<method name="setText(Ljava/lang/String;)V" />
-		<method name="setText(Ljava/text/CharacterIterator;)V" />
-		<method name="tertiaryOrder(I)S" />
-		<field name="NULLORDER" />
-	</class>
-	<class name="java/text/CollationKey" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Comparable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" since="9" />
-		<method name="compareTo(Ljava/text/CollationKey;)I" />
-		<method name="getSourceString()Ljava/lang/String;" />
-		<method name="toByteArray()[B" />
-	</class>
-	<class name="java/text/Collator" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-		<implements name="java/util/Comparator" />
-		<method name="&lt;init>()V" />
-		<method name="compare(Ljava/lang/String;Ljava/lang/String;)I" />
-		<method name="equals(Ljava/lang/String;Ljava/lang/String;)Z" />
-		<method name="getAvailableLocales()[Ljava/util/Locale;" />
-		<method name="getCollationKey(Ljava/lang/String;)Ljava/text/CollationKey;" />
-		<method name="getDecomposition()I" />
-		<method name="getInstance()Ljava/text/Collator;" />
-		<method name="getInstance(Ljava/util/Locale;)Ljava/text/Collator;" />
-		<method name="getStrength()I" />
-		<method name="setDecomposition(I)V" />
-		<method name="setStrength(I)V" />
-		<field name="CANONICAL_DECOMPOSITION" />
-		<field name="FULL_DECOMPOSITION" />
-		<field name="IDENTICAL" />
-		<field name="NO_DECOMPOSITION" />
-		<field name="PRIMARY" />
-		<field name="SECONDARY" />
-		<field name="TERTIARY" />
-	</class>
-	<class name="java/text/DateFormat" since="1">
-		<extends name="java/text/Format" />
-		<method name="&lt;init>()V" />
-		<method name="format(Ljava/util/Date;)Ljava/lang/String;" />
-		<method name="format(Ljava/util/Date;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;" />
-		<method name="getAvailableLocales()[Ljava/util/Locale;" />
-		<method name="getCalendar()Ljava/util/Calendar;" />
-		<method name="getDateInstance()Ljava/text/DateFormat;" />
-		<method name="getDateInstance(I)Ljava/text/DateFormat;" />
-		<method name="getDateInstance(ILjava/util/Locale;)Ljava/text/DateFormat;" />
-		<method name="getDateTimeInstance()Ljava/text/DateFormat;" />
-		<method name="getDateTimeInstance(II)Ljava/text/DateFormat;" />
-		<method name="getDateTimeInstance(IILjava/util/Locale;)Ljava/text/DateFormat;" />
-		<method name="getInstance()Ljava/text/DateFormat;" />
-		<method name="getNumberFormat()Ljava/text/NumberFormat;" />
-		<method name="getTimeInstance()Ljava/text/DateFormat;" />
-		<method name="getTimeInstance(I)Ljava/text/DateFormat;" />
-		<method name="getTimeInstance(ILjava/util/Locale;)Ljava/text/DateFormat;" />
-		<method name="getTimeZone()Ljava/util/TimeZone;" />
-		<method name="isLenient()Z" />
-		<method name="parse(Ljava/lang/String;)Ljava/util/Date;" />
-		<method name="parse(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/util/Date;" />
-		<method name="setCalendar(Ljava/util/Calendar;)V" />
-		<method name="setLenient(Z)V" />
-		<method name="setNumberFormat(Ljava/text/NumberFormat;)V" />
-		<method name="setTimeZone(Ljava/util/TimeZone;)V" />
-		<field name="AM_PM_FIELD" />
-		<field name="DATE_FIELD" />
-		<field name="DAY_OF_WEEK_FIELD" />
-		<field name="DAY_OF_WEEK_IN_MONTH_FIELD" />
-		<field name="DAY_OF_YEAR_FIELD" />
-		<field name="DEFAULT" />
-		<field name="ERA_FIELD" />
-		<field name="FULL" />
-		<field name="HOUR0_FIELD" />
-		<field name="HOUR1_FIELD" />
-		<field name="HOUR_OF_DAY0_FIELD" />
-		<field name="HOUR_OF_DAY1_FIELD" />
-		<field name="LONG" />
-		<field name="MEDIUM" />
-		<field name="MILLISECOND_FIELD" />
-		<field name="MINUTE_FIELD" />
-		<field name="MONTH_FIELD" />
-		<field name="SECOND_FIELD" />
-		<field name="SHORT" />
-		<field name="TIMEZONE_FIELD" />
-		<field name="WEEK_OF_MONTH_FIELD" />
-		<field name="WEEK_OF_YEAR_FIELD" />
-		<field name="YEAR_FIELD" />
-		<field name="calendar" />
-		<field name="numberFormat" />
-	</class>
-	<class name="java/text/DateFormat$Field" since="1">
-		<extends name="java/text/Format$Field" />
-		<method name="&lt;init>(Ljava/lang/String;I)V" />
-		<method name="getCalendarField()I" />
-		<method name="ofCalendarField(I)Ljava/text/DateFormat$Field;" />
-		<field name="AM_PM" />
-		<field name="DAY_OF_MONTH" />
-		<field name="DAY_OF_WEEK" />
-		<field name="DAY_OF_WEEK_IN_MONTH" />
-		<field name="DAY_OF_YEAR" />
-		<field name="ERA" />
-		<field name="HOUR0" />
-		<field name="HOUR1" />
-		<field name="HOUR_OF_DAY0" />
-		<field name="HOUR_OF_DAY1" />
-		<field name="MILLISECOND" />
-		<field name="MINUTE" />
-		<field name="MONTH" />
-		<field name="SECOND" />
-		<field name="TIME_ZONE" />
-		<field name="WEEK_OF_MONTH" />
-		<field name="WEEK_OF_YEAR" />
-		<field name="YEAR" />
-	</class>
-	<class name="java/text/DateFormatSymbols" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Cloneable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/util/Locale;)V" />
-		<method name="getAmPmStrings()[Ljava/lang/String;" />
-		<method name="getAvailableLocales()[Ljava/util/Locale;" since="9" />
-		<method name="getEras()[Ljava/lang/String;" />
-		<method name="getInstance()Ljava/text/DateFormatSymbols;" since="9" />
-		<method name="getInstance(Ljava/util/Locale;)Ljava/text/DateFormatSymbols;" since="9" />
-		<method name="getLocalPatternChars()Ljava/lang/String;" />
-		<method name="getMonths()[Ljava/lang/String;" />
-		<method name="getShortMonths()[Ljava/lang/String;" />
-		<method name="getShortWeekdays()[Ljava/lang/String;" />
-		<method name="getWeekdays()[Ljava/lang/String;" />
-		<method name="getZoneStrings()[[Ljava/lang/String;" />
-		<method name="setAmPmStrings([Ljava/lang/String;)V" />
-		<method name="setEras([Ljava/lang/String;)V" />
-		<method name="setLocalPatternChars(Ljava/lang/String;)V" />
-		<method name="setMonths([Ljava/lang/String;)V" />
-		<method name="setShortMonths([Ljava/lang/String;)V" />
-		<method name="setShortWeekdays([Ljava/lang/String;)V" />
-		<method name="setWeekdays([Ljava/lang/String;)V" />
-		<method name="setZoneStrings([[Ljava/lang/String;)V" />
-	</class>
-	<class name="java/text/DecimalFormat" since="1">
-		<extends name="java/text/NumberFormat" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/text/DecimalFormatSymbols;)V" />
-		<method name="applyLocalizedPattern(Ljava/lang/String;)V" />
-		<method name="applyPattern(Ljava/lang/String;)V" />
-		<method name="getDecimalFormatSymbols()Ljava/text/DecimalFormatSymbols;" />
-		<method name="getGroupingSize()I" />
-		<method name="getMultiplier()I" />
-		<method name="getNegativePrefix()Ljava/lang/String;" />
-		<method name="getNegativeSuffix()Ljava/lang/String;" />
-		<method name="getPositivePrefix()Ljava/lang/String;" />
-		<method name="getPositiveSuffix()Ljava/lang/String;" />
-		<method name="isDecimalSeparatorAlwaysShown()Z" />
-		<method name="isParseBigDecimal()Z" />
-		<method name="setDecimalFormatSymbols(Ljava/text/DecimalFormatSymbols;)V" />
-		<method name="setDecimalSeparatorAlwaysShown(Z)V" />
-		<method name="setGroupingSize(I)V" />
-		<method name="setMultiplier(I)V" />
-		<method name="setNegativePrefix(Ljava/lang/String;)V" />
-		<method name="setNegativeSuffix(Ljava/lang/String;)V" />
-		<method name="setParseBigDecimal(Z)V" />
-		<method name="setPositivePrefix(Ljava/lang/String;)V" />
-		<method name="setPositiveSuffix(Ljava/lang/String;)V" />
-		<method name="toLocalizedPattern()Ljava/lang/String;" />
-		<method name="toPattern()Ljava/lang/String;" />
-	</class>
-	<class name="java/text/DecimalFormatSymbols" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Cloneable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/util/Locale;)V" />
-		<method name="getAvailableLocales()[Ljava/util/Locale;" since="9" />
-		<method name="getCurrency()Ljava/util/Currency;" />
-		<method name="getCurrencySymbol()Ljava/lang/String;" />
-		<method name="getDecimalSeparator()C" />
-		<method name="getDigit()C" />
-		<method name="getExponentSeparator()Ljava/lang/String;" since="9" />
-		<method name="getGroupingSeparator()C" />
-		<method name="getInfinity()Ljava/lang/String;" />
-		<method name="getInstance()Ljava/text/DecimalFormatSymbols;" since="9" />
-		<method name="getInstance(Ljava/util/Locale;)Ljava/text/DecimalFormatSymbols;" since="9" />
-		<method name="getInternationalCurrencySymbol()Ljava/lang/String;" />
-		<method name="getMinusSign()C" />
-		<method name="getMonetaryDecimalSeparator()C" />
-		<method name="getNaN()Ljava/lang/String;" />
-		<method name="getPatternSeparator()C" />
-		<method name="getPerMill()C" />
-		<method name="getPercent()C" />
-		<method name="getZeroDigit()C" />
-		<method name="setCurrency(Ljava/util/Currency;)V" />
-		<method name="setCurrencySymbol(Ljava/lang/String;)V" />
-		<method name="setDecimalSeparator(C)V" />
-		<method name="setDigit(C)V" />
-		<method name="setExponentSeparator(Ljava/lang/String;)V" since="9" />
-		<method name="setGroupingSeparator(C)V" />
-		<method name="setInfinity(Ljava/lang/String;)V" />
-		<method name="setInternationalCurrencySymbol(Ljava/lang/String;)V" />
-		<method name="setMinusSign(C)V" />
-		<method name="setMonetaryDecimalSeparator(C)V" />
-		<method name="setNaN(Ljava/lang/String;)V" />
-		<method name="setPatternSeparator(C)V" />
-		<method name="setPerMill(C)V" />
-		<method name="setPercent(C)V" />
-		<method name="setZeroDigit(C)V" />
-	</class>
-	<class name="java/text/FieldPosition" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(Ljava/text/Format$Field;)V" />
-		<method name="&lt;init>(Ljava/text/Format$Field;I)V" />
-		<method name="getBeginIndex()I" />
-		<method name="getEndIndex()I" />
-		<method name="getField()I" />
-		<method name="getFieldAttribute()Ljava/text/Format$Field;" />
-		<method name="setBeginIndex(I)V" />
-		<method name="setEndIndex(I)V" />
-	</class>
-	<class name="java/text/Format" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Cloneable" />
-		<method name="&lt;init>()V" />
-		<method name="format(Ljava/lang/Object;)Ljava/lang/String;" />
-		<method name="format(Ljava/lang/Object;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;" />
-		<method name="formatToCharacterIterator(Ljava/lang/Object;)Ljava/text/AttributedCharacterIterator;" />
-		<method name="parseObject(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="parseObject(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/lang/Object;" />
-	</class>
-	<class name="java/text/Format$Field" since="1">
-		<extends name="java/text/AttributedCharacterIterator$Attribute" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/text/MessageFormat" since="1">
-		<extends name="java/text/Format" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/util/Locale;)V" />
-		<method name="applyPattern(Ljava/lang/String;)V" />
-		<method name="format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;" />
-		<method name="format([Ljava/lang/Object;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;" />
-		<method name="getFormats()[Ljava/text/Format;" />
-		<method name="getFormatsByArgumentIndex()[Ljava/text/Format;" />
-		<method name="getLocale()Ljava/util/Locale;" />
-		<method name="parse(Ljava/lang/String;)[Ljava/lang/Object;" />
-		<method name="parse(Ljava/lang/String;Ljava/text/ParsePosition;)[Ljava/lang/Object;" />
-		<method name="setFormat(ILjava/text/Format;)V" />
-		<method name="setFormatByArgumentIndex(ILjava/text/Format;)V" />
-		<method name="setFormats([Ljava/text/Format;)V" />
-		<method name="setFormatsByArgumentIndex([Ljava/text/Format;)V" />
-		<method name="setLocale(Ljava/util/Locale;)V" />
-		<method name="toPattern()Ljava/lang/String;" />
-	</class>
-	<class name="java/text/MessageFormat$Field" since="1">
-		<extends name="java/text/Format$Field" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<field name="ARGUMENT" />
-	</class>
-	<class name="java/text/Normalizer" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="isNormalized(Ljava/lang/CharSequence;Ljava/text/Normalizer$Form;)Z" />
-		<method name="normalize(Ljava/lang/CharSequence;Ljava/text/Normalizer$Form;)Ljava/lang/String;" />
-	</class>
-	<class name="java/text/Normalizer$Form" since="9">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Ljava/text/Normalizer$Form;" />
-		<method name="values()[Ljava/text/Normalizer$Form;" />
-		<field name="NFC" />
-		<field name="NFD" />
-		<field name="NFKC" />
-		<field name="NFKD" />
-	</class>
-	<class name="java/text/NumberFormat" since="1">
-		<extends name="java/text/Format" />
-		<method name="&lt;init>()V" />
-		<method name="format(D)Ljava/lang/String;" />
-		<method name="format(DLjava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;" />
-		<method name="format(J)Ljava/lang/String;" />
-		<method name="format(JLjava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;" />
-		<method name="getAvailableLocales()[Ljava/util/Locale;" />
-		<method name="getCurrency()Ljava/util/Currency;" />
-		<method name="getCurrencyInstance()Ljava/text/NumberFormat;" />
-		<method name="getCurrencyInstance(Ljava/util/Locale;)Ljava/text/NumberFormat;" />
-		<method name="getInstance()Ljava/text/NumberFormat;" />
-		<method name="getInstance(Ljava/util/Locale;)Ljava/text/NumberFormat;" />
-		<method name="getIntegerInstance()Ljava/text/NumberFormat;" />
-		<method name="getIntegerInstance(Ljava/util/Locale;)Ljava/text/NumberFormat;" />
-		<method name="getMaximumFractionDigits()I" />
-		<method name="getMaximumIntegerDigits()I" />
-		<method name="getMinimumFractionDigits()I" />
-		<method name="getMinimumIntegerDigits()I" />
-		<method name="getNumberInstance()Ljava/text/NumberFormat;" />
-		<method name="getNumberInstance(Ljava/util/Locale;)Ljava/text/NumberFormat;" />
-		<method name="getPercentInstance()Ljava/text/NumberFormat;" />
-		<method name="getPercentInstance(Ljava/util/Locale;)Ljava/text/NumberFormat;" />
-		<method name="getRoundingMode()Ljava/math/RoundingMode;" since="9" />
-		<method name="isGroupingUsed()Z" />
-		<method name="isParseIntegerOnly()Z" />
-		<method name="parse(Ljava/lang/String;)Ljava/lang/Number;" />
-		<method name="parse(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/lang/Number;" />
-		<method name="setCurrency(Ljava/util/Currency;)V" />
-		<method name="setGroupingUsed(Z)V" />
-		<method name="setMaximumFractionDigits(I)V" />
-		<method name="setMaximumIntegerDigits(I)V" />
-		<method name="setMinimumFractionDigits(I)V" />
-		<method name="setMinimumIntegerDigits(I)V" />
-		<method name="setParseIntegerOnly(Z)V" />
-		<method name="setRoundingMode(Ljava/math/RoundingMode;)V" since="9" />
-		<field name="FRACTION_FIELD" />
-		<field name="INTEGER_FIELD" />
-	</class>
-	<class name="java/text/NumberFormat$Field" since="1">
-		<extends name="java/text/Format$Field" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<field name="CURRENCY" />
-		<field name="DECIMAL_SEPARATOR" />
-		<field name="EXPONENT" />
-		<field name="EXPONENT_SIGN" />
-		<field name="EXPONENT_SYMBOL" />
-		<field name="FRACTION" />
-		<field name="GROUPING_SEPARATOR" />
-		<field name="INTEGER" />
-		<field name="PERCENT" />
-		<field name="PERMILLE" />
-		<field name="SIGN" />
-	</class>
-	<class name="java/text/ParseException" since="1">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>(Ljava/lang/String;I)V" />
-		<method name="getErrorOffset()I" />
-	</class>
-	<class name="java/text/ParsePosition" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(I)V" />
-		<method name="getErrorIndex()I" />
-		<method name="getIndex()I" />
-		<method name="setErrorIndex(I)V" />
-		<method name="setIndex(I)V" />
-	</class>
-	<class name="java/text/RuleBasedCollator" since="1">
-		<extends name="java/text/Collator" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="getCollationElementIterator(Ljava/lang/String;)Ljava/text/CollationElementIterator;" />
-		<method name="getCollationElementIterator(Ljava/text/CharacterIterator;)Ljava/text/CollationElementIterator;" />
-		<method name="getRules()Ljava/lang/String;" />
-	</class>
-	<class name="java/text/SimpleDateFormat" since="1">
-		<extends name="java/text/DateFormat" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/text/DateFormatSymbols;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/util/Locale;)V" />
-		<method name="applyLocalizedPattern(Ljava/lang/String;)V" />
-		<method name="applyPattern(Ljava/lang/String;)V" />
-		<method name="get2DigitYearStart()Ljava/util/Date;" />
-		<method name="getDateFormatSymbols()Ljava/text/DateFormatSymbols;" />
-		<method name="set2DigitYearStart(Ljava/util/Date;)V" />
-		<method name="setDateFormatSymbols(Ljava/text/DateFormatSymbols;)V" />
-		<method name="toLocalizedPattern()Ljava/lang/String;" />
-		<method name="toPattern()Ljava/lang/String;" />
-	</class>
-	<class name="java/text/StringCharacterIterator" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/text/CharacterIterator" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;I)V" />
-		<method name="&lt;init>(Ljava/lang/String;III)V" />
-		<method name="setText(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/util/AbstractCollection" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/Collection" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/util/AbstractList" since="1">
-		<extends name="java/util/AbstractCollection" />
-		<implements name="java/util/List" />
-		<method name="&lt;init>()V" />
-		<method name="removeRange(II)V" />
-		<field name="modCount" />
-	</class>
-	<class name="java/util/AbstractMap" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/Map" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/util/AbstractMap$SimpleEntry" since="9">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/util/Map$Entry" />
-		<method name="&lt;init>(Ljava/lang/Object;Ljava/lang/Object;)V" />
-		<method name="&lt;init>(Ljava/util/Map$Entry;)V" />
-	</class>
-	<class name="java/util/AbstractMap$SimpleImmutableEntry" since="9">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/util/Map$Entry" />
-		<method name="&lt;init>(Ljava/lang/Object;Ljava/lang/Object;)V" />
-		<method name="&lt;init>(Ljava/util/Map$Entry;)V" />
-	</class>
-	<class name="java/util/AbstractQueue" since="1">
-		<extends name="java/util/AbstractCollection" />
-		<implements name="java/util/Queue" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/util/AbstractSequentialList" since="1">
-		<extends name="java/util/AbstractList" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/util/AbstractSet" since="1">
-		<extends name="java/util/AbstractCollection" />
-		<implements name="java/util/Set" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/util/ArrayDeque" since="9">
-		<extends name="java/util/AbstractCollection" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Cloneable" />
-		<implements name="java/util/Deque" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(Ljava/util/Collection;)V" />
-		<method name="clone()Ljava/util/ArrayDeque;" />
-	</class>
-	<class name="java/util/ArrayList" since="1">
-		<extends name="java/util/AbstractList" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Cloneable" />
-		<implements name="java/util/List" />
-		<implements name="java/util/RandomAccess" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(Ljava/util/Collection;)V" />
-		<method name="ensureCapacity(I)V" />
-		<method name="trimToSize()V" />
-	</class>
-	<class name="java/util/Arrays" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="asList([Ljava/lang/Object;)Ljava/util/List;" />
-		<method name="binarySearch([BB)I" />
-		<method name="binarySearch([BIIB)I" since="9" />
-		<method name="binarySearch([CC)I" />
-		<method name="binarySearch([CIIC)I" since="9" />
-		<method name="binarySearch([DD)I" />
-		<method name="binarySearch([DIID)I" since="9" />
-		<method name="binarySearch([FF)I" />
-		<method name="binarySearch([FIIF)I" since="9" />
-		<method name="binarySearch([II)I" />
-		<method name="binarySearch([IIII)I" since="9" />
-		<method name="binarySearch([JIIJ)I" since="9" />
-		<method name="binarySearch([JJ)I" />
-		<method name="binarySearch([Ljava/lang/Object;IILjava/lang/Object;)I" since="9" />
-		<method name="binarySearch([Ljava/lang/Object;IILjava/lang/Object;Ljava/util/Comparator;)I" since="9" />
-		<method name="binarySearch([Ljava/lang/Object;Ljava/lang/Object;)I" />
-		<method name="binarySearch([Ljava/lang/Object;Ljava/lang/Object;Ljava/util/Comparator;)I" />
-		<method name="binarySearch([SIIS)I" since="9" />
-		<method name="binarySearch([SS)I" />
-		<method name="copyOf([BI)[B" since="9" />
-		<method name="copyOf([CI)[C" since="9" />
-		<method name="copyOf([DI)[D" since="9" />
-		<method name="copyOf([FI)[F" since="9" />
-		<method name="copyOf([II)[I" since="9" />
-		<method name="copyOf([JI)[J" since="9" />
-		<method name="copyOf([Ljava/lang/Object;I)[Ljava/lang/Object;" since="9" />
-		<method name="copyOf([Ljava/lang/Object;ILjava/lang/Class;)[Ljava/lang/Object;" since="9" />
-		<method name="copyOf([SI)[S" since="9" />
-		<method name="copyOf([ZI)[Z" since="9" />
-		<method name="copyOfRange([BII)[B" since="9" />
-		<method name="copyOfRange([CII)[C" since="9" />
-		<method name="copyOfRange([DII)[D" since="9" />
-		<method name="copyOfRange([FII)[F" since="9" />
-		<method name="copyOfRange([III)[I" since="9" />
-		<method name="copyOfRange([JII)[J" since="9" />
-		<method name="copyOfRange([Ljava/lang/Object;II)[Ljava/lang/Object;" since="9" />
-		<method name="copyOfRange([Ljava/lang/Object;IILjava/lang/Class;)[Ljava/lang/Object;" since="9" />
-		<method name="copyOfRange([SII)[S" since="9" />
-		<method name="copyOfRange([ZII)[Z" since="9" />
-		<method name="deepEquals([Ljava/lang/Object;[Ljava/lang/Object;)Z" />
-		<method name="deepHashCode([Ljava/lang/Object;)I" />
-		<method name="deepToString([Ljava/lang/Object;)Ljava/lang/String;" />
-		<method name="equals([B[B)Z" />
-		<method name="equals([C[C)Z" />
-		<method name="equals([D[D)Z" />
-		<method name="equals([F[F)Z" />
-		<method name="equals([I[I)Z" />
-		<method name="equals([J[J)Z" />
-		<method name="equals([Ljava/lang/Object;[Ljava/lang/Object;)Z" />
-		<method name="equals([S[S)Z" />
-		<method name="equals([Z[Z)Z" />
-		<method name="fill([BB)V" />
-		<method name="fill([BIIB)V" />
-		<method name="fill([CC)V" />
-		<method name="fill([CIIC)V" />
-		<method name="fill([DD)V" />
-		<method name="fill([DIID)V" />
-		<method name="fill([FF)V" />
-		<method name="fill([FIIF)V" />
-		<method name="fill([II)V" />
-		<method name="fill([IIII)V" />
-		<method name="fill([JIIJ)V" />
-		<method name="fill([JJ)V" />
-		<method name="fill([Ljava/lang/Object;IILjava/lang/Object;)V" />
-		<method name="fill([Ljava/lang/Object;Ljava/lang/Object;)V" />
-		<method name="fill([SIIS)V" />
-		<method name="fill([SS)V" />
-		<method name="fill([ZIIZ)V" />
-		<method name="fill([ZZ)V" />
-		<method name="hashCode([B)I" />
-		<method name="hashCode([C)I" />
-		<method name="hashCode([D)I" />
-		<method name="hashCode([F)I" />
-		<method name="hashCode([I)I" />
-		<method name="hashCode([J)I" />
-		<method name="hashCode([Ljava/lang/Object;)I" />
-		<method name="hashCode([S)I" />
-		<method name="hashCode([Z)I" />
-		<method name="sort([B)V" />
-		<method name="sort([BII)V" />
-		<method name="sort([C)V" />
-		<method name="sort([CII)V" />
-		<method name="sort([D)V" />
-		<method name="sort([DII)V" />
-		<method name="sort([F)V" />
-		<method name="sort([FII)V" />
-		<method name="sort([I)V" />
-		<method name="sort([III)V" />
-		<method name="sort([J)V" />
-		<method name="sort([JII)V" />
-		<method name="sort([Ljava/lang/Object;)V" />
-		<method name="sort([Ljava/lang/Object;II)V" />
-		<method name="sort([Ljava/lang/Object;IILjava/util/Comparator;)V" />
-		<method name="sort([Ljava/lang/Object;Ljava/util/Comparator;)V" />
-		<method name="sort([S)V" />
-		<method name="sort([SII)V" />
-		<method name="toString([B)Ljava/lang/String;" />
-		<method name="toString([C)Ljava/lang/String;" />
-		<method name="toString([D)Ljava/lang/String;" />
-		<method name="toString([F)Ljava/lang/String;" />
-		<method name="toString([I)Ljava/lang/String;" />
-		<method name="toString([J)Ljava/lang/String;" />
-		<method name="toString([Ljava/lang/Object;)Ljava/lang/String;" />
-		<method name="toString([S)Ljava/lang/String;" />
-		<method name="toString([Z)Ljava/lang/String;" />
-	</class>
-	<class name="java/util/BitSet" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Cloneable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="and(Ljava/util/BitSet;)V" />
-		<method name="andNot(Ljava/util/BitSet;)V" />
-		<method name="cardinality()I" />
-		<method name="clear()V" />
-		<method name="clear(I)V" />
-		<method name="clear(II)V" />
-		<method name="flip(I)V" />
-		<method name="flip(II)V" />
-		<method name="get(I)Z" />
-		<method name="get(II)Ljava/util/BitSet;" />
-		<method name="intersects(Ljava/util/BitSet;)Z" />
-		<method name="isEmpty()Z" />
-		<method name="length()I" />
-		<method name="nextClearBit(I)I" />
-		<method name="nextSetBit(I)I" />
-		<method name="or(Ljava/util/BitSet;)V" />
-		<method name="previousClearBit(I)I" since="19" />
-		<method name="previousSetBit(I)I" since="19" />
-		<method name="set(I)V" />
-		<method name="set(II)V" />
-		<method name="set(IIZ)V" />
-		<method name="set(IZ)V" />
-		<method name="size()I" />
-		<method name="toByteArray()[B" since="19" />
-		<method name="toLongArray()[J" since="19" />
-		<method name="valueOf(Ljava/nio/ByteBuffer;)Ljava/util/BitSet;" since="19" />
-		<method name="valueOf(Ljava/nio/LongBuffer;)Ljava/util/BitSet;" since="19" />
-		<method name="valueOf([B)Ljava/util/BitSet;" since="19" />
-		<method name="valueOf([J)Ljava/util/BitSet;" since="19" />
-		<method name="xor(Ljava/util/BitSet;)V" />
-	</class>
-	<class name="java/util/Calendar" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Cloneable" />
-		<implements name="java/lang/Comparable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/util/TimeZone;Ljava/util/Locale;)V" />
-		<method name="add(II)V" />
-		<method name="after(Ljava/lang/Object;)Z" />
-		<method name="before(Ljava/lang/Object;)Z" />
-		<method name="clear()V" />
-		<method name="clear(I)V" />
-		<method name="compareTo(Ljava/util/Calendar;)I" />
-		<method name="complete()V" />
-		<method name="computeFields()V" />
-		<method name="computeTime()V" />
-		<method name="get(I)I" />
-		<method name="getActualMaximum(I)I" />
-		<method name="getActualMinimum(I)I" />
-		<method name="getAvailableLocales()[Ljava/util/Locale;" />
-		<method name="getDisplayName(IILjava/util/Locale;)Ljava/lang/String;" since="9" />
-		<method name="getDisplayNames(IILjava/util/Locale;)Ljava/util/Map;" since="9" />
-		<method name="getFirstDayOfWeek()I" />
-		<method name="getGreatestMinimum(I)I" />
-		<method name="getInstance()Ljava/util/Calendar;" />
-		<method name="getInstance(Ljava/util/Locale;)Ljava/util/Calendar;" />
-		<method name="getInstance(Ljava/util/TimeZone;)Ljava/util/Calendar;" />
-		<method name="getInstance(Ljava/util/TimeZone;Ljava/util/Locale;)Ljava/util/Calendar;" />
-		<method name="getLeastMaximum(I)I" />
-		<method name="getMaximum(I)I" />
-		<method name="getMinimalDaysInFirstWeek()I" />
-		<method name="getMinimum(I)I" />
-		<method name="getTime()Ljava/util/Date;" />
-		<method name="getTimeInMillis()J" />
-		<method name="getTimeZone()Ljava/util/TimeZone;" />
-		<method name="internalGet(I)I" />
-		<method name="isLenient()Z" />
-		<method name="isSet(I)Z" />
-		<method name="roll(II)V" />
-		<method name="roll(IZ)V" />
-		<method name="set(II)V" />
-		<method name="set(III)V" />
-		<method name="set(IIIII)V" />
-		<method name="set(IIIIII)V" />
-		<method name="setFirstDayOfWeek(I)V" />
-		<method name="setLenient(Z)V" />
-		<method name="setMinimalDaysInFirstWeek(I)V" />
-		<method name="setTime(Ljava/util/Date;)V" />
-		<method name="setTimeInMillis(J)V" />
-		<method name="setTimeZone(Ljava/util/TimeZone;)V" />
-		<field name="ALL_STYLES" since="9" />
-		<field name="AM" />
-		<field name="AM_PM" />
-		<field name="APRIL" />
-		<field name="AUGUST" />
-		<field name="DATE" />
-		<field name="DAY_OF_MONTH" />
-		<field name="DAY_OF_WEEK" />
-		<field name="DAY_OF_WEEK_IN_MONTH" />
-		<field name="DAY_OF_YEAR" />
-		<field name="DECEMBER" />
-		<field name="DST_OFFSET" />
-		<field name="ERA" />
-		<field name="FEBRUARY" />
-		<field name="FIELD_COUNT" />
-		<field name="FRIDAY" />
-		<field name="HOUR" />
-		<field name="HOUR_OF_DAY" />
-		<field name="JANUARY" />
-		<field name="JULY" />
-		<field name="JUNE" />
-		<field name="LONG" since="9" />
-		<field name="MARCH" />
-		<field name="MAY" />
-		<field name="MILLISECOND" />
-		<field name="MINUTE" />
-		<field name="MONDAY" />
-		<field name="MONTH" />
-		<field name="NOVEMBER" />
-		<field name="OCTOBER" />
-		<field name="PM" />
-		<field name="SATURDAY" />
-		<field name="SECOND" />
-		<field name="SEPTEMBER" />
-		<field name="SHORT" since="9" />
-		<field name="SUNDAY" />
-		<field name="THURSDAY" />
-		<field name="TUESDAY" />
-		<field name="UNDECIMBER" />
-		<field name="WEDNESDAY" />
-		<field name="WEEK_OF_MONTH" />
-		<field name="WEEK_OF_YEAR" />
-		<field name="YEAR" />
-		<field name="ZONE_OFFSET" />
-		<field name="areFieldsSet" />
-		<field name="fields" />
-		<field name="isSet" />
-		<field name="isTimeSet" />
-		<field name="time" />
-	</class>
-	<class name="java/util/Collection" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Iterable" />
-		<method name="add(Ljava/lang/Object;)Z" />
-		<method name="addAll(Ljava/util/Collection;)Z" />
-		<method name="clear()V" />
-		<method name="contains(Ljava/lang/Object;)Z" />
-		<method name="containsAll(Ljava/util/Collection;)Z" />
-		<method name="isEmpty()Z" />
-		<method name="remove(Ljava/lang/Object;)Z" />
-		<method name="removeAll(Ljava/util/Collection;)Z" />
-		<method name="retainAll(Ljava/util/Collection;)Z" />
-		<method name="size()I" />
-		<method name="toArray()[Ljava/lang/Object;" />
-		<method name="toArray([Ljava/lang/Object;)[Ljava/lang/Object;" />
-	</class>
-	<class name="java/util/Collections" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addAll(Ljava/util/Collection;[Ljava/lang/Object;)Z" />
-		<method name="asLifoQueue(Ljava/util/Deque;)Ljava/util/Queue;" since="9" />
-		<method name="binarySearch(Ljava/util/List;Ljava/lang/Object;)I" />
-		<method name="binarySearch(Ljava/util/List;Ljava/lang/Object;Ljava/util/Comparator;)I" />
-		<method name="checkedCollection(Ljava/util/Collection;Ljava/lang/Class;)Ljava/util/Collection;" />
-		<method name="checkedList(Ljava/util/List;Ljava/lang/Class;)Ljava/util/List;" />
-		<method name="checkedMap(Ljava/util/Map;Ljava/lang/Class;Ljava/lang/Class;)Ljava/util/Map;" />
-		<method name="checkedSet(Ljava/util/Set;Ljava/lang/Class;)Ljava/util/Set;" />
-		<method name="checkedSortedMap(Ljava/util/SortedMap;Ljava/lang/Class;Ljava/lang/Class;)Ljava/util/SortedMap;" />
-		<method name="checkedSortedSet(Ljava/util/SortedSet;Ljava/lang/Class;)Ljava/util/SortedSet;" />
-		<method name="copy(Ljava/util/List;Ljava/util/List;)V" />
-		<method name="disjoint(Ljava/util/Collection;Ljava/util/Collection;)Z" />
-		<method name="emptyEnumeration()Ljava/util/Enumeration;" since="19" />
-		<method name="emptyIterator()Ljava/util/Iterator;" since="19" />
-		<method name="emptyList()Ljava/util/List;" />
-		<method name="emptyListIterator()Ljava/util/ListIterator;" since="19" />
-		<method name="emptyMap()Ljava/util/Map;" />
-		<method name="emptySet()Ljava/util/Set;" />
-		<method name="enumeration(Ljava/util/Collection;)Ljava/util/Enumeration;" />
-		<method name="fill(Ljava/util/List;Ljava/lang/Object;)V" />
-		<method name="frequency(Ljava/util/Collection;Ljava/lang/Object;)I" />
-		<method name="indexOfSubList(Ljava/util/List;Ljava/util/List;)I" />
-		<method name="lastIndexOfSubList(Ljava/util/List;Ljava/util/List;)I" />
-		<method name="list(Ljava/util/Enumeration;)Ljava/util/ArrayList;" />
-		<method name="max(Ljava/util/Collection;)Ljava/lang/Object;" />
-		<method name="max(Ljava/util/Collection;Ljava/util/Comparator;)Ljava/lang/Object;" />
-		<method name="min(Ljava/util/Collection;)Ljava/lang/Object;" />
-		<method name="min(Ljava/util/Collection;Ljava/util/Comparator;)Ljava/lang/Object;" />
-		<method name="nCopies(ILjava/lang/Object;)Ljava/util/List;" />
-		<method name="newSetFromMap(Ljava/util/Map;)Ljava/util/Set;" since="9" />
-		<method name="replaceAll(Ljava/util/List;Ljava/lang/Object;Ljava/lang/Object;)Z" />
-		<method name="reverse(Ljava/util/List;)V" />
-		<method name="reverseOrder()Ljava/util/Comparator;" />
-		<method name="reverseOrder(Ljava/util/Comparator;)Ljava/util/Comparator;" />
-		<method name="rotate(Ljava/util/List;I)V" />
-		<method name="shuffle(Ljava/util/List;)V" />
-		<method name="shuffle(Ljava/util/List;Ljava/util/Random;)V" />
-		<method name="singleton(Ljava/lang/Object;)Ljava/util/Set;" />
-		<method name="singletonList(Ljava/lang/Object;)Ljava/util/List;" />
-		<method name="singletonMap(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;" />
-		<method name="sort(Ljava/util/List;)V" />
-		<method name="sort(Ljava/util/List;Ljava/util/Comparator;)V" />
-		<method name="swap(Ljava/util/List;II)V" />
-		<method name="synchronizedCollection(Ljava/util/Collection;)Ljava/util/Collection;" />
-		<method name="synchronizedList(Ljava/util/List;)Ljava/util/List;" />
-		<method name="synchronizedMap(Ljava/util/Map;)Ljava/util/Map;" />
-		<method name="synchronizedSet(Ljava/util/Set;)Ljava/util/Set;" />
-		<method name="synchronizedSortedMap(Ljava/util/SortedMap;)Ljava/util/SortedMap;" />
-		<method name="synchronizedSortedSet(Ljava/util/SortedSet;)Ljava/util/SortedSet;" />
-		<method name="unmodifiableCollection(Ljava/util/Collection;)Ljava/util/Collection;" />
-		<method name="unmodifiableList(Ljava/util/List;)Ljava/util/List;" />
-		<method name="unmodifiableMap(Ljava/util/Map;)Ljava/util/Map;" />
-		<method name="unmodifiableSet(Ljava/util/Set;)Ljava/util/Set;" />
-		<method name="unmodifiableSortedMap(Ljava/util/SortedMap;)Ljava/util/SortedMap;" />
-		<method name="unmodifiableSortedSet(Ljava/util/SortedSet;)Ljava/util/SortedSet;" />
-		<field name="EMPTY_LIST" />
-		<field name="EMPTY_MAP" />
-		<field name="EMPTY_SET" />
-	</class>
-	<class name="java/util/Comparator" since="1">
-		<extends name="java/lang/Object" />
-		<method name="compare(Ljava/lang/Object;Ljava/lang/Object;)I" />
-	</class>
-	<class name="java/util/ConcurrentModificationException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" since="19" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" since="19" />
-	</class>
-	<class name="java/util/Currency" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>()V" />
-		<method name="getAvailableCurrencies()Ljava/util/Set;" since="19" />
-		<method name="getCurrencyCode()Ljava/lang/String;" />
-		<method name="getDefaultFractionDigits()I" />
-		<method name="getDisplayName()Ljava/lang/String;" since="19" />
-		<method name="getDisplayName(Ljava/util/Locale;)Ljava/lang/String;" since="19" />
-		<method name="getInstance(Ljava/lang/String;)Ljava/util/Currency;" />
-		<method name="getInstance(Ljava/util/Locale;)Ljava/util/Currency;" />
-		<method name="getSymbol()Ljava/lang/String;" />
-		<method name="getSymbol(Ljava/util/Locale;)Ljava/lang/String;" />
-	</class>
-	<class name="java/util/Date" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Cloneable" />
-		<implements name="java/lang/Comparable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(III)V" />
-		<method name="&lt;init>(IIIII)V" />
-		<method name="&lt;init>(IIIIII)V" />
-		<method name="&lt;init>(J)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="UTC(IIIIII)J" />
-		<method name="after(Ljava/util/Date;)Z" />
-		<method name="before(Ljava/util/Date;)Z" />
-		<method name="compareTo(Ljava/util/Date;)I" />
-		<method name="getDate()I" />
-		<method name="getDay()I" />
-		<method name="getHours()I" />
-		<method name="getMinutes()I" />
-		<method name="getMonth()I" />
-		<method name="getSeconds()I" />
-		<method name="getTime()J" />
-		<method name="getTimezoneOffset()I" />
-		<method name="getYear()I" />
-		<method name="parse(Ljava/lang/String;)J" />
-		<method name="setDate(I)V" />
-		<method name="setHours(I)V" />
-		<method name="setMinutes(I)V" />
-		<method name="setMonth(I)V" />
-		<method name="setSeconds(I)V" />
-		<method name="setTime(J)V" />
-		<method name="setYear(I)V" />
-		<method name="toGMTString()Ljava/lang/String;" />
-		<method name="toLocaleString()Ljava/lang/String;" />
-	</class>
-	<class name="java/util/Deque" since="9">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/Queue" />
-		<method name="addFirst(Ljava/lang/Object;)V" />
-		<method name="addLast(Ljava/lang/Object;)V" />
-		<method name="descendingIterator()Ljava/util/Iterator;" />
-		<method name="getFirst()Ljava/lang/Object;" />
-		<method name="getLast()Ljava/lang/Object;" />
-		<method name="offerFirst(Ljava/lang/Object;)Z" />
-		<method name="offerLast(Ljava/lang/Object;)Z" />
-		<method name="peekFirst()Ljava/lang/Object;" />
-		<method name="peekLast()Ljava/lang/Object;" />
-		<method name="pollFirst()Ljava/lang/Object;" />
-		<method name="pollLast()Ljava/lang/Object;" />
-		<method name="pop()Ljava/lang/Object;" />
-		<method name="push(Ljava/lang/Object;)V" />
-		<method name="removeFirst()Ljava/lang/Object;" />
-		<method name="removeFirstOccurrence(Ljava/lang/Object;)Z" />
-		<method name="removeLast()Ljava/lang/Object;" />
-		<method name="removeLastOccurrence(Ljava/lang/Object;)Z" />
-	</class>
-	<class name="java/util/Dictionary" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="elements()Ljava/util/Enumeration;" />
-		<method name="get(Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="isEmpty()Z" />
-		<method name="keys()Ljava/util/Enumeration;" />
-		<method name="put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="remove(Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="size()I" />
-	</class>
-	<class name="java/util/DuplicateFormatFlagsException" since="1">
-		<extends name="java/util/IllegalFormatException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="getFlags()Ljava/lang/String;" />
-	</class>
-	<class name="java/util/EmptyStackException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/util/EnumMap" since="1">
-		<extends name="java/util/AbstractMap" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Cloneable" />
-		<implements name="java/util/Map" />
-		<method name="&lt;init>(Ljava/lang/Class;)V" />
-		<method name="&lt;init>(Ljava/util/EnumMap;)V" />
-		<method name="&lt;init>(Ljava/util/Map;)V" />
-		<method name="clone()Ljava/util/EnumMap;" />
-		<method name="put(Ljava/lang/Enum;Ljava/lang/Object;)Ljava/lang/Object;" />
-	</class>
-	<class name="java/util/EnumSet" since="1">
-		<extends name="java/util/AbstractSet" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Cloneable" />
-		<method name="&lt;init>()V" />
-		<method name="allOf(Ljava/lang/Class;)Ljava/util/EnumSet;" />
-		<method name="clone()Ljava/util/EnumSet;" />
-		<method name="complementOf(Ljava/util/EnumSet;)Ljava/util/EnumSet;" />
-		<method name="copyOf(Ljava/util/Collection;)Ljava/util/EnumSet;" />
-		<method name="copyOf(Ljava/util/EnumSet;)Ljava/util/EnumSet;" />
-		<method name="noneOf(Ljava/lang/Class;)Ljava/util/EnumSet;" />
-		<method name="of(Ljava/lang/Enum;)Ljava/util/EnumSet;" />
-		<method name="of(Ljava/lang/Enum;Ljava/lang/Enum;)Ljava/util/EnumSet;" />
-		<method name="of(Ljava/lang/Enum;Ljava/lang/Enum;Ljava/lang/Enum;)Ljava/util/EnumSet;" />
-		<method name="of(Ljava/lang/Enum;Ljava/lang/Enum;Ljava/lang/Enum;Ljava/lang/Enum;)Ljava/util/EnumSet;" />
-		<method name="of(Ljava/lang/Enum;Ljava/lang/Enum;Ljava/lang/Enum;Ljava/lang/Enum;Ljava/lang/Enum;)Ljava/util/EnumSet;" />
-		<method name="of(Ljava/lang/Enum;[Ljava/lang/Enum;)Ljava/util/EnumSet;" />
-		<method name="range(Ljava/lang/Enum;Ljava/lang/Enum;)Ljava/util/EnumSet;" />
-	</class>
-	<class name="java/util/Enumeration" since="1">
-		<extends name="java/lang/Object" />
-		<method name="hasMoreElements()Z" />
-		<method name="nextElement()Ljava/lang/Object;" />
-	</class>
-	<class name="java/util/EventListener" since="1">
-		<extends name="java/lang/Object" />
-	</class>
-	<class name="java/util/EventListenerProxy" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/EventListener" />
-		<method name="&lt;init>(Ljava/util/EventListener;)V" />
-		<method name="getListener()Ljava/util/EventListener;" />
-	</class>
-	<class name="java/util/EventObject" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(Ljava/lang/Object;)V" />
-		<method name="getSource()Ljava/lang/Object;" />
-		<field name="source" />
-	</class>
-	<class name="java/util/FormatFlagsConversionMismatchException" since="1">
-		<extends name="java/util/IllegalFormatException" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(Ljava/lang/String;C)V" />
-		<method name="getConversion()C" />
-		<method name="getFlags()Ljava/lang/String;" />
-	</class>
-	<class name="java/util/Formattable" since="1">
-		<extends name="java/lang/Object" />
-		<method name="formatTo(Ljava/util/Formatter;III)V" />
-	</class>
-	<class name="java/util/FormattableFlags" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="ALTERNATE" />
-		<field name="LEFT_JUSTIFY" />
-		<field name="UPPERCASE" />
-	</class>
-	<class name="java/util/Formatter" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Closeable" />
-		<implements name="java/io/Flushable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/io/File;)V" />
-		<method name="&lt;init>(Ljava/io/File;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/io/File;Ljava/lang/String;Ljava/util/Locale;)V" />
-		<method name="&lt;init>(Ljava/io/OutputStream;)V" />
-		<method name="&lt;init>(Ljava/io/OutputStream;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/io/OutputStream;Ljava/lang/String;Ljava/util/Locale;)V" />
-		<method name="&lt;init>(Ljava/io/PrintStream;)V" />
-		<method name="&lt;init>(Ljava/lang/Appendable;)V" />
-		<method name="&lt;init>(Ljava/lang/Appendable;Ljava/util/Locale;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/util/Locale;)V" />
-		<method name="&lt;init>(Ljava/util/Locale;)V" />
-		<method name="format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;" />
-		<method name="format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;" />
-		<method name="ioException()Ljava/io/IOException;" />
-		<method name="locale()Ljava/util/Locale;" />
-		<method name="out()Ljava/lang/Appendable;" />
-	</class>
-	<class name="java/util/Formatter$BigDecimalLayoutForm" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Ljava/util/Formatter$BigDecimalLayoutForm;" />
-		<method name="values()[Ljava/util/Formatter$BigDecimalLayoutForm;" />
-		<field name="DECIMAL_FLOAT" />
-		<field name="SCIENTIFIC" />
-	</class>
-	<class name="java/util/FormatterClosedException" since="1">
-		<extends name="java/lang/IllegalStateException" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/util/GregorianCalendar" since="1">
-		<extends name="java/util/Calendar" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(III)V" />
-		<method name="&lt;init>(IIIII)V" />
-		<method name="&lt;init>(IIIIII)V" />
-		<method name="&lt;init>(Ljava/util/Locale;)V" />
-		<method name="&lt;init>(Ljava/util/TimeZone;)V" />
-		<method name="&lt;init>(Ljava/util/TimeZone;Ljava/util/Locale;)V" />
-		<method name="getGregorianChange()Ljava/util/Date;" />
-		<method name="isLeapYear(I)Z" />
-		<method name="setGregorianChange(Ljava/util/Date;)V" />
-		<field name="AD" />
-		<field name="BC" />
-	</class>
-	<class name="java/util/HashMap" since="1">
-		<extends name="java/util/AbstractMap" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Cloneable" />
-		<implements name="java/util/Map" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(IF)V" />
-		<method name="&lt;init>(Ljava/util/Map;)V" />
-	</class>
-	<class name="java/util/HashSet" since="1">
-		<extends name="java/util/AbstractSet" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Cloneable" />
-		<implements name="java/util/Set" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(IF)V" />
-		<method name="&lt;init>(Ljava/util/Collection;)V" />
-	</class>
-	<class name="java/util/Hashtable" since="1">
-		<extends name="java/util/Dictionary" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Cloneable" />
-		<implements name="java/util/Map" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(IF)V" />
-		<method name="&lt;init>(Ljava/util/Map;)V" />
-		<method name="contains(Ljava/lang/Object;)Z" />
-		<method name="rehash()V" />
-	</class>
-	<class name="java/util/IdentityHashMap" since="1">
-		<extends name="java/util/AbstractMap" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Cloneable" />
-		<implements name="java/util/Map" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(Ljava/util/Map;)V" />
-	</class>
-	<class name="java/util/IllegalFormatCodePointException" since="1">
-		<extends name="java/util/IllegalFormatException" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(I)V" />
-		<method name="getCodePoint()I" />
-	</class>
-	<class name="java/util/IllegalFormatConversionException" since="1">
-		<extends name="java/util/IllegalFormatException" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(CLjava/lang/Class;)V" />
-		<method name="getArgumentClass()Ljava/lang/Class;" />
-		<method name="getConversion()C" />
-	</class>
-	<class name="java/util/IllegalFormatException" since="1">
-		<extends name="java/lang/IllegalArgumentException" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/util/IllegalFormatFlagsException" since="1">
-		<extends name="java/util/IllegalFormatException" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="getFlags()Ljava/lang/String;" />
-	</class>
-	<class name="java/util/IllegalFormatPrecisionException" since="1">
-		<extends name="java/util/IllegalFormatException" />
-		<method name="&lt;init>(I)V" />
-		<method name="getPrecision()I" />
-	</class>
-	<class name="java/util/IllegalFormatWidthException" since="1">
-		<extends name="java/util/IllegalFormatException" />
-		<method name="&lt;init>(I)V" />
-		<method name="getWidth()I" />
-	</class>
-	<class name="java/util/InputMismatchException" since="1">
-		<extends name="java/util/NoSuchElementException" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/util/InvalidPropertiesFormatException" since="1">
-		<extends name="java/io/IOException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/util/Iterator" since="1">
-		<extends name="java/lang/Object" />
-		<method name="hasNext()Z" />
-		<method name="next()Ljava/lang/Object;" />
-		<method name="remove()V" />
-	</class>
-	<class name="java/util/LinkedHashMap" since="1">
-		<extends name="java/util/HashMap" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(IF)V" />
-		<method name="&lt;init>(IFZ)V" />
-		<method name="&lt;init>(Ljava/util/Map;)V" />
-		<method name="removeEldestEntry(Ljava/util/Map$Entry;)Z" />
-	</class>
-	<class name="java/util/LinkedHashSet" since="1">
-		<extends name="java/util/HashSet" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Cloneable" />
-		<implements name="java/util/Set" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(IF)V" />
-		<method name="&lt;init>(Ljava/util/Collection;)V" />
-	</class>
-	<class name="java/util/LinkedList" since="1">
-		<extends name="java/util/AbstractSequentialList" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Cloneable" />
-		<implements name="java/util/Deque" since="9" />
-		<implements name="java/util/List" />
-		<implements name="java/util/Queue" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/util/Collection;)V" />
-		<method name="addFirst(Ljava/lang/Object;)V" />
-		<method name="addLast(Ljava/lang/Object;)V" />
-		<method name="getFirst()Ljava/lang/Object;" />
-		<method name="getLast()Ljava/lang/Object;" />
-		<method name="removeFirst()Ljava/lang/Object;" />
-		<method name="removeLast()Ljava/lang/Object;" />
-	</class>
-	<class name="java/util/List" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/Collection" />
-		<method name="add(ILjava/lang/Object;)V" />
-		<method name="addAll(ILjava/util/Collection;)Z" />
-		<method name="get(I)Ljava/lang/Object;" />
-		<method name="indexOf(Ljava/lang/Object;)I" />
-		<method name="lastIndexOf(Ljava/lang/Object;)I" />
-		<method name="listIterator()Ljava/util/ListIterator;" />
-		<method name="listIterator(I)Ljava/util/ListIterator;" />
-		<method name="remove(I)Ljava/lang/Object;" />
-		<method name="set(ILjava/lang/Object;)Ljava/lang/Object;" />
-		<method name="subList(II)Ljava/util/List;" />
-	</class>
-	<class name="java/util/ListIterator" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/Iterator" />
-		<method name="add(Ljava/lang/Object;)V" />
-		<method name="hasPrevious()Z" />
-		<method name="nextIndex()I" />
-		<method name="previous()Ljava/lang/Object;" />
-		<method name="previousIndex()I" />
-		<method name="set(Ljava/lang/Object;)V" />
-	</class>
-	<class name="java/util/ListResourceBundle" since="1">
-		<extends name="java/util/ResourceBundle" />
-		<method name="&lt;init>()V" />
-		<method name="getContents()[[Ljava/lang/Object;" />
-	</class>
-	<class name="java/util/Locale" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Cloneable" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="getAvailableLocales()[Ljava/util/Locale;" />
-		<method name="getCountry()Ljava/lang/String;" />
-		<method name="getDefault()Ljava/util/Locale;" />
-		<method name="getDisplayCountry()Ljava/lang/String;" />
-		<method name="getDisplayCountry(Ljava/util/Locale;)Ljava/lang/String;" />
-		<method name="getDisplayLanguage()Ljava/lang/String;" />
-		<method name="getDisplayLanguage(Ljava/util/Locale;)Ljava/lang/String;" />
-		<method name="getDisplayName()Ljava/lang/String;" />
-		<method name="getDisplayName(Ljava/util/Locale;)Ljava/lang/String;" />
-		<method name="getDisplayVariant()Ljava/lang/String;" />
-		<method name="getDisplayVariant(Ljava/util/Locale;)Ljava/lang/String;" />
-		<method name="getISO3Country()Ljava/lang/String;" />
-		<method name="getISO3Language()Ljava/lang/String;" />
-		<method name="getISOCountries()[Ljava/lang/String;" />
-		<method name="getISOLanguages()[Ljava/lang/String;" />
-		<method name="getLanguage()Ljava/lang/String;" />
-		<method name="getVariant()Ljava/lang/String;" />
-		<method name="setDefault(Ljava/util/Locale;)V" />
-		<field name="CANADA" />
-		<field name="CANADA_FRENCH" />
-		<field name="CHINA" />
-		<field name="CHINESE" />
-		<field name="ENGLISH" />
-		<field name="FRANCE" />
-		<field name="FRENCH" />
-		<field name="GERMAN" />
-		<field name="GERMANY" />
-		<field name="ITALIAN" />
-		<field name="ITALY" />
-		<field name="JAPAN" />
-		<field name="JAPANESE" />
-		<field name="KOREA" />
-		<field name="KOREAN" />
-		<field name="PRC" />
-		<field name="ROOT" since="9" />
-		<field name="SIMPLIFIED_CHINESE" />
-		<field name="TAIWAN" />
-		<field name="TRADITIONAL_CHINESE" />
-		<field name="UK" />
-		<field name="US" />
-	</class>
-	<class name="java/util/Map" since="1">
-		<extends name="java/lang/Object" />
-		<method name="clear()V" />
-		<method name="containsKey(Ljava/lang/Object;)Z" />
-		<method name="containsValue(Ljava/lang/Object;)Z" />
-		<method name="entrySet()Ljava/util/Set;" />
-		<method name="get(Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="isEmpty()Z" />
-		<method name="keySet()Ljava/util/Set;" />
-		<method name="put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="putAll(Ljava/util/Map;)V" />
-		<method name="remove(Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="size()I" />
-		<method name="values()Ljava/util/Collection;" />
-	</class>
-	<class name="java/util/Map$Entry" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getKey()Ljava/lang/Object;" />
-		<method name="getValue()Ljava/lang/Object;" />
-		<method name="setValue(Ljava/lang/Object;)Ljava/lang/Object;" />
-	</class>
-	<class name="java/util/MissingFormatArgumentException" since="1">
-		<extends name="java/util/IllegalFormatException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="getFormatSpecifier()Ljava/lang/String;" />
-	</class>
-	<class name="java/util/MissingFormatWidthException" since="1">
-		<extends name="java/util/IllegalFormatException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="getFormatSpecifier()Ljava/lang/String;" />
-	</class>
-	<class name="java/util/MissingResourceException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="getClassName()Ljava/lang/String;" />
-		<method name="getKey()Ljava/lang/String;" />
-	</class>
-	<class name="java/util/NavigableMap" since="9">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/SortedMap" />
-		<method name="ceilingEntry(Ljava/lang/Object;)Ljava/util/Map$Entry;" />
-		<method name="ceilingKey(Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="descendingKeySet()Ljava/util/NavigableSet;" />
-		<method name="descendingMap()Ljava/util/NavigableMap;" />
-		<method name="firstEntry()Ljava/util/Map$Entry;" />
-		<method name="floorEntry(Ljava/lang/Object;)Ljava/util/Map$Entry;" />
-		<method name="floorKey(Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="headMap(Ljava/lang/Object;Z)Ljava/util/NavigableMap;" />
-		<method name="higherEntry(Ljava/lang/Object;)Ljava/util/Map$Entry;" />
-		<method name="higherKey(Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="lastEntry()Ljava/util/Map$Entry;" />
-		<method name="lowerEntry(Ljava/lang/Object;)Ljava/util/Map$Entry;" />
-		<method name="lowerKey(Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="navigableKeySet()Ljava/util/NavigableSet;" />
-		<method name="pollFirstEntry()Ljava/util/Map$Entry;" />
-		<method name="pollLastEntry()Ljava/util/Map$Entry;" />
-		<method name="subMap(Ljava/lang/Object;ZLjava/lang/Object;Z)Ljava/util/NavigableMap;" />
-		<method name="tailMap(Ljava/lang/Object;Z)Ljava/util/NavigableMap;" />
-	</class>
-	<class name="java/util/NavigableSet" since="9">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/SortedSet" />
-		<method name="ceiling(Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="descendingIterator()Ljava/util/Iterator;" />
-		<method name="descendingSet()Ljava/util/NavigableSet;" />
-		<method name="floor(Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="headSet(Ljava/lang/Object;Z)Ljava/util/NavigableSet;" />
-		<method name="higher(Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="lower(Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="pollFirst()Ljava/lang/Object;" />
-		<method name="pollLast()Ljava/lang/Object;" />
-		<method name="subSet(Ljava/lang/Object;ZLjava/lang/Object;Z)Ljava/util/NavigableSet;" />
-		<method name="tailSet(Ljava/lang/Object;Z)Ljava/util/NavigableSet;" />
-	</class>
-	<class name="java/util/NoSuchElementException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/util/Objects" since="19">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="compare(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/Comparator;)I" />
-		<method name="deepEquals(Ljava/lang/Object;Ljava/lang/Object;)Z" />
-		<method name="equals(Ljava/lang/Object;Ljava/lang/Object;)Z" />
-		<method name="hash([Ljava/lang/Object;)I" />
-		<method name="hashCode(Ljava/lang/Object;)I" />
-		<method name="requireNonNull(Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="requireNonNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="toString(Ljava/lang/Object;)Ljava/lang/String;" />
-		<method name="toString(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/String;" />
-	</class>
-	<class name="java/util/Observable" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addObserver(Ljava/util/Observer;)V" />
-		<method name="clearChanged()V" />
-		<method name="countObservers()I" />
-		<method name="deleteObserver(Ljava/util/Observer;)V" />
-		<method name="deleteObservers()V" />
-		<method name="hasChanged()Z" />
-		<method name="notifyObservers()V" />
-		<method name="notifyObservers(Ljava/lang/Object;)V" />
-		<method name="setChanged()V" />
-	</class>
-	<class name="java/util/Observer" since="1">
-		<extends name="java/lang/Object" />
-		<method name="update(Ljava/util/Observable;Ljava/lang/Object;)V" />
-	</class>
-	<class name="java/util/PriorityQueue" since="1">
-		<extends name="java/util/AbstractQueue" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(ILjava/util/Comparator;)V" />
-		<method name="&lt;init>(Ljava/util/Collection;)V" />
-		<method name="&lt;init>(Ljava/util/PriorityQueue;)V" />
-		<method name="&lt;init>(Ljava/util/SortedSet;)V" />
-		<method name="comparator()Ljava/util/Comparator;" />
-	</class>
-	<class name="java/util/Properties" since="1">
-		<extends name="java/util/Hashtable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/util/Properties;)V" />
-		<method name="getProperty(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="list(Ljava/io/PrintStream;)V" />
-		<method name="list(Ljava/io/PrintWriter;)V" />
-		<method name="load(Ljava/io/InputStream;)V" />
-		<method name="load(Ljava/io/Reader;)V" since="9" />
-		<method name="loadFromXML(Ljava/io/InputStream;)V" />
-		<method name="propertyNames()Ljava/util/Enumeration;" />
-		<method name="save(Ljava/io/OutputStream;Ljava/lang/String;)V" />
-		<method name="setProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="store(Ljava/io/OutputStream;Ljava/lang/String;)V" />
-		<method name="store(Ljava/io/Writer;Ljava/lang/String;)V" since="9" />
-		<method name="storeToXML(Ljava/io/OutputStream;Ljava/lang/String;)V" />
-		<method name="storeToXML(Ljava/io/OutputStream;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="stringPropertyNames()Ljava/util/Set;" since="9" />
-		<field name="defaults" />
-	</class>
-	<class name="java/util/PropertyPermission" since="1">
-		<extends name="java/security/BasicPermission" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-	</class>
-	<class name="java/util/PropertyResourceBundle" since="1">
-		<extends name="java/util/ResourceBundle" />
-		<method name="&lt;init>(Ljava/io/InputStream;)V" />
-		<method name="&lt;init>(Ljava/io/Reader;)V" since="9" />
-	</class>
-	<class name="java/util/Queue" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/Collection" />
-		<method name="element()Ljava/lang/Object;" />
-		<method name="offer(Ljava/lang/Object;)Z" />
-		<method name="peek()Ljava/lang/Object;" />
-		<method name="poll()Ljava/lang/Object;" />
-		<method name="remove()Ljava/lang/Object;" />
-	</class>
-	<class name="java/util/Random" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(J)V" />
-		<method name="next(I)I" />
-		<method name="nextBoolean()Z" />
-		<method name="nextBytes([B)V" />
-		<method name="nextDouble()D" />
-		<method name="nextFloat()F" />
-		<method name="nextGaussian()D" />
-		<method name="nextInt()I" />
-		<method name="nextInt(I)I" />
-		<method name="nextLong()J" />
-		<method name="setSeed(J)V" />
-	</class>
-	<class name="java/util/RandomAccess" since="1">
-		<extends name="java/lang/Object" />
-	</class>
-	<class name="java/util/ResourceBundle" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="clearCache()V" since="9" />
-		<method name="clearCache(Ljava/lang/ClassLoader;)V" since="9" />
-		<method name="containsKey(Ljava/lang/String;)Z" since="9" />
-		<method name="getBundle(Ljava/lang/String;)Ljava/util/ResourceBundle;" />
-		<method name="getBundle(Ljava/lang/String;Ljava/util/Locale;)Ljava/util/ResourceBundle;" />
-		<method name="getBundle(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/ClassLoader;)Ljava/util/ResourceBundle;" />
-		<method name="getBundle(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/ClassLoader;Ljava/util/ResourceBundle$Control;)Ljava/util/ResourceBundle;" since="9" />
-		<method name="getBundle(Ljava/lang/String;Ljava/util/Locale;Ljava/util/ResourceBundle$Control;)Ljava/util/ResourceBundle;" since="9" />
-		<method name="getBundle(Ljava/lang/String;Ljava/util/ResourceBundle$Control;)Ljava/util/ResourceBundle;" since="9" />
-		<method name="getKeys()Ljava/util/Enumeration;" />
-		<method name="getLocale()Ljava/util/Locale;" />
-		<method name="getObject(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="getString(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getStringArray(Ljava/lang/String;)[Ljava/lang/String;" />
-		<method name="handleGetObject(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="handleKeySet()Ljava/util/Set;" since="9" />
-		<method name="keySet()Ljava/util/Set;" since="9" />
-		<method name="setParent(Ljava/util/ResourceBundle;)V" />
-		<field name="parent" />
-	</class>
-	<class name="java/util/ResourceBundle$Control" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getCandidateLocales(Ljava/lang/String;Ljava/util/Locale;)Ljava/util/List;" />
-		<method name="getControl(Ljava/util/List;)Ljava/util/ResourceBundle$Control;" />
-		<method name="getFallbackLocale(Ljava/lang/String;Ljava/util/Locale;)Ljava/util/Locale;" />
-		<method name="getFormats(Ljava/lang/String;)Ljava/util/List;" />
-		<method name="getNoFallbackControl(Ljava/util/List;)Ljava/util/ResourceBundle$Control;" />
-		<method name="getTimeToLive(Ljava/lang/String;Ljava/util/Locale;)J" />
-		<method name="needsReload(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/util/ResourceBundle;J)Z" />
-		<method name="newBundle(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/String;Ljava/lang/ClassLoader;Z)Ljava/util/ResourceBundle;" />
-		<method name="toBundleName(Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String;" />
-		<method name="toResourceName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
-		<field name="FORMAT_CLASS" />
-		<field name="FORMAT_DEFAULT" />
-		<field name="FORMAT_PROPERTIES" />
-		<field name="TTL_DONT_CACHE" />
-		<field name="TTL_NO_EXPIRATION_CONTROL" />
-	</class>
-	<class name="java/util/Scanner" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Closeable" since="19" />
-		<implements name="java/util/Iterator" />
-		<method name="&lt;init>(Ljava/io/File;)V" />
-		<method name="&lt;init>(Ljava/io/File;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/io/InputStream;)V" />
-		<method name="&lt;init>(Ljava/io/InputStream;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/Readable;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/nio/channels/ReadableByteChannel;)V" />
-		<method name="&lt;init>(Ljava/nio/channels/ReadableByteChannel;Ljava/lang/String;)V" />
-		<method name="close()V" />
-		<method name="delimiter()Ljava/util/regex/Pattern;" />
-		<method name="findInLine(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="findInLine(Ljava/util/regex/Pattern;)Ljava/lang/String;" />
-		<method name="findWithinHorizon(Ljava/lang/String;I)Ljava/lang/String;" />
-		<method name="findWithinHorizon(Ljava/util/regex/Pattern;I)Ljava/lang/String;" />
-		<method name="hasNext(Ljava/lang/String;)Z" />
-		<method name="hasNext(Ljava/util/regex/Pattern;)Z" />
-		<method name="hasNextBigDecimal()Z" />
-		<method name="hasNextBigInteger()Z" />
-		<method name="hasNextBigInteger(I)Z" />
-		<method name="hasNextBoolean()Z" />
-		<method name="hasNextByte()Z" />
-		<method name="hasNextByte(I)Z" />
-		<method name="hasNextDouble()Z" />
-		<method name="hasNextFloat()Z" />
-		<method name="hasNextInt()Z" />
-		<method name="hasNextInt(I)Z" />
-		<method name="hasNextLine()Z" />
-		<method name="hasNextLong()Z" />
-		<method name="hasNextLong(I)Z" />
-		<method name="hasNextShort()Z" />
-		<method name="hasNextShort(I)Z" />
-		<method name="ioException()Ljava/io/IOException;" />
-		<method name="locale()Ljava/util/Locale;" />
-		<method name="match()Ljava/util/regex/MatchResult;" />
-		<method name="next()Ljava/lang/String;" />
-		<method name="next(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="next(Ljava/util/regex/Pattern;)Ljava/lang/String;" />
-		<method name="nextBigDecimal()Ljava/math/BigDecimal;" />
-		<method name="nextBigInteger()Ljava/math/BigInteger;" />
-		<method name="nextBigInteger(I)Ljava/math/BigInteger;" />
-		<method name="nextBoolean()Z" />
-		<method name="nextByte()B" />
-		<method name="nextByte(I)B" />
-		<method name="nextDouble()D" />
-		<method name="nextFloat()F" />
-		<method name="nextInt()I" />
-		<method name="nextInt(I)I" />
-		<method name="nextLine()Ljava/lang/String;" />
-		<method name="nextLong()J" />
-		<method name="nextLong(I)J" />
-		<method name="nextShort()S" />
-		<method name="nextShort(I)S" />
-		<method name="radix()I" />
-		<method name="reset()Ljava/util/Scanner;" since="9" />
-		<method name="skip(Ljava/lang/String;)Ljava/util/Scanner;" />
-		<method name="skip(Ljava/util/regex/Pattern;)Ljava/util/Scanner;" />
-		<method name="useDelimiter(Ljava/lang/String;)Ljava/util/Scanner;" />
-		<method name="useDelimiter(Ljava/util/regex/Pattern;)Ljava/util/Scanner;" />
-		<method name="useLocale(Ljava/util/Locale;)Ljava/util/Scanner;" />
-		<method name="useRadix(I)Ljava/util/Scanner;" />
-	</class>
-	<class name="java/util/ServiceConfigurationError" since="9">
-		<extends name="java/lang/Error" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/util/ServiceLoader" since="9">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Iterable" />
-		<method name="&lt;init>()V" />
-		<method name="load(Ljava/lang/Class;)Ljava/util/ServiceLoader;" />
-		<method name="load(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/ServiceLoader;" />
-		<method name="loadInstalled(Ljava/lang/Class;)Ljava/util/ServiceLoader;" />
-		<method name="reload()V" />
-	</class>
-	<class name="java/util/Set" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/Collection" />
-	</class>
-	<class name="java/util/SimpleTimeZone" since="1">
-		<extends name="java/util/TimeZone" />
-		<method name="&lt;init>(ILjava/lang/String;)V" />
-		<method name="&lt;init>(ILjava/lang/String;IIIIIIII)V" />
-		<method name="&lt;init>(ILjava/lang/String;IIIIIIIII)V" />
-		<method name="&lt;init>(ILjava/lang/String;IIIIIIIIIII)V" />
-		<method name="setDSTSavings(I)V" />
-		<method name="setEndRule(III)V" />
-		<method name="setEndRule(IIII)V" />
-		<method name="setEndRule(IIIIZ)V" />
-		<method name="setStartRule(III)V" />
-		<method name="setStartRule(IIII)V" />
-		<method name="setStartRule(IIIIZ)V" />
-		<method name="setStartYear(I)V" />
-		<field name="STANDARD_TIME" />
-		<field name="UTC_TIME" />
-		<field name="WALL_TIME" />
-	</class>
-	<class name="java/util/SortedMap" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/Map" />
-		<method name="comparator()Ljava/util/Comparator;" />
-		<method name="firstKey()Ljava/lang/Object;" />
-		<method name="headMap(Ljava/lang/Object;)Ljava/util/SortedMap;" />
-		<method name="lastKey()Ljava/lang/Object;" />
-		<method name="subMap(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/SortedMap;" />
-		<method name="tailMap(Ljava/lang/Object;)Ljava/util/SortedMap;" />
-	</class>
-	<class name="java/util/SortedSet" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/Set" />
-		<method name="comparator()Ljava/util/Comparator;" />
-		<method name="first()Ljava/lang/Object;" />
-		<method name="headSet(Ljava/lang/Object;)Ljava/util/SortedSet;" />
-		<method name="last()Ljava/lang/Object;" />
-		<method name="subSet(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/SortedSet;" />
-		<method name="tailSet(Ljava/lang/Object;)Ljava/util/SortedSet;" />
-	</class>
-	<class name="java/util/Stack" since="1">
-		<extends name="java/util/Vector" />
-		<method name="&lt;init>()V" />
-		<method name="empty()Z" />
-		<method name="peek()Ljava/lang/Object;" />
-		<method name="pop()Ljava/lang/Object;" />
-		<method name="push(Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="search(Ljava/lang/Object;)I" />
-	</class>
-	<class name="java/util/StringTokenizer" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/Enumeration" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Z)V" />
-		<method name="countTokens()I" />
-		<method name="hasMoreTokens()Z" />
-		<method name="nextToken()Ljava/lang/String;" />
-		<method name="nextToken(Ljava/lang/String;)Ljava/lang/String;" />
-	</class>
-	<class name="java/util/TimeZone" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Cloneable" />
-		<method name="&lt;init>()V" />
-		<method name="getAvailableIDs()[Ljava/lang/String;" />
-		<method name="getAvailableIDs(I)[Ljava/lang/String;" />
-		<method name="getDSTSavings()I" />
-		<method name="getDefault()Ljava/util/TimeZone;" />
-		<method name="getDisplayName()Ljava/lang/String;" />
-		<method name="getDisplayName(Ljava/util/Locale;)Ljava/lang/String;" />
-		<method name="getDisplayName(ZI)Ljava/lang/String;" />
-		<method name="getDisplayName(ZILjava/util/Locale;)Ljava/lang/String;" />
-		<method name="getID()Ljava/lang/String;" />
-		<method name="getOffset(IIIIII)I" />
-		<method name="getOffset(J)I" />
-		<method name="getRawOffset()I" />
-		<method name="getTimeZone(Ljava/lang/String;)Ljava/util/TimeZone;" />
-		<method name="hasSameRules(Ljava/util/TimeZone;)Z" />
-		<method name="inDaylightTime(Ljava/util/Date;)Z" />
-		<method name="setDefault(Ljava/util/TimeZone;)V" />
-		<method name="setID(Ljava/lang/String;)V" />
-		<method name="setRawOffset(I)V" />
-		<method name="useDaylightTime()Z" />
-		<field name="LONG" />
-		<field name="SHORT" />
-	</class>
-	<class name="java/util/Timer" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Z)V" />
-		<method name="&lt;init>(Z)V" />
-		<method name="cancel()V" />
-		<method name="purge()I" />
-		<method name="schedule(Ljava/util/TimerTask;J)V" />
-		<method name="schedule(Ljava/util/TimerTask;JJ)V" />
-		<method name="schedule(Ljava/util/TimerTask;Ljava/util/Date;)V" />
-		<method name="schedule(Ljava/util/TimerTask;Ljava/util/Date;J)V" />
-		<method name="scheduleAtFixedRate(Ljava/util/TimerTask;JJ)V" />
-		<method name="scheduleAtFixedRate(Ljava/util/TimerTask;Ljava/util/Date;J)V" />
-	</class>
-	<class name="java/util/TimerTask" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Runnable" />
-		<method name="&lt;init>()V" />
-		<method name="cancel()Z" />
-		<method name="scheduledExecutionTime()J" />
-	</class>
-	<class name="java/util/TooManyListenersException" since="1">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/util/TreeMap" since="1">
-		<extends name="java/util/AbstractMap" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Cloneable" />
-		<implements name="java/util/NavigableMap" since="9" />
-		<implements name="java/util/SortedMap" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/util/Comparator;)V" />
-		<method name="&lt;init>(Ljava/util/Map;)V" />
-		<method name="&lt;init>(Ljava/util/SortedMap;)V" />
-	</class>
-	<class name="java/util/TreeSet" since="1">
-		<extends name="java/util/AbstractSet" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Cloneable" />
-		<implements name="java/util/NavigableSet" since="9" />
-		<implements name="java/util/SortedSet" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/util/Collection;)V" />
-		<method name="&lt;init>(Ljava/util/Comparator;)V" />
-		<method name="&lt;init>(Ljava/util/SortedSet;)V" />
-	</class>
-	<class name="java/util/UUID" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Comparable" />
-		<method name="&lt;init>(JJ)V" />
-		<method name="clockSequence()I" />
-		<method name="compareTo(Ljava/util/UUID;)I" />
-		<method name="fromString(Ljava/lang/String;)Ljava/util/UUID;" />
-		<method name="getLeastSignificantBits()J" />
-		<method name="getMostSignificantBits()J" />
-		<method name="nameUUIDFromBytes([B)Ljava/util/UUID;" />
-		<method name="node()J" />
-		<method name="randomUUID()Ljava/util/UUID;" />
-		<method name="timestamp()J" />
-		<method name="variant()I" />
-		<method name="version()I" />
-	</class>
-	<class name="java/util/UnknownFormatConversionException" since="1">
-		<extends name="java/util/IllegalFormatException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="getConversion()Ljava/lang/String;" />
-	</class>
-	<class name="java/util/UnknownFormatFlagsException" since="1">
-		<extends name="java/util/IllegalFormatException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="getFlags()Ljava/lang/String;" />
-	</class>
-	<class name="java/util/Vector" since="1">
-		<extends name="java/util/AbstractList" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Cloneable" />
-		<implements name="java/util/List" />
-		<implements name="java/util/RandomAccess" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(II)V" />
-		<method name="&lt;init>(Ljava/util/Collection;)V" />
-		<method name="addElement(Ljava/lang/Object;)V" />
-		<method name="capacity()I" />
-		<method name="copyInto([Ljava/lang/Object;)V" />
-		<method name="elementAt(I)Ljava/lang/Object;" />
-		<method name="elements()Ljava/util/Enumeration;" />
-		<method name="ensureCapacity(I)V" />
-		<method name="firstElement()Ljava/lang/Object;" />
-		<method name="indexOf(Ljava/lang/Object;I)I" />
-		<method name="insertElementAt(Ljava/lang/Object;I)V" />
-		<method name="lastElement()Ljava/lang/Object;" />
-		<method name="lastIndexOf(Ljava/lang/Object;I)I" />
-		<method name="removeAllElements()V" />
-		<method name="removeElement(Ljava/lang/Object;)Z" />
-		<method name="removeElementAt(I)V" />
-		<method name="setElementAt(Ljava/lang/Object;I)V" />
-		<method name="setSize(I)V" />
-		<method name="trimToSize()V" />
-		<field name="capacityIncrement" />
-		<field name="elementCount" />
-		<field name="elementData" />
-	</class>
-	<class name="java/util/WeakHashMap" since="1">
-		<extends name="java/util/AbstractMap" />
-		<implements name="java/util/Map" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(IF)V" />
-		<method name="&lt;init>(Ljava/util/Map;)V" />
-	</class>
-	<class name="java/util/concurrent/AbstractExecutorService" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/concurrent/ExecutorService" />
-		<method name="&lt;init>()V" />
-		<method name="newTaskFor(Ljava/lang/Runnable;Ljava/lang/Object;)Ljava/util/concurrent/RunnableFuture;" since="9" />
-		<method name="newTaskFor(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/RunnableFuture;" since="9" />
-	</class>
-	<class name="java/util/concurrent/ArrayBlockingQueue" since="1">
-		<extends name="java/util/AbstractQueue" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/util/concurrent/BlockingQueue" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(IZ)V" />
-		<method name="&lt;init>(IZLjava/util/Collection;)V" />
-	</class>
-	<class name="java/util/concurrent/BlockingDeque" since="9">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/Deque" />
-		<implements name="java/util/concurrent/BlockingQueue" />
-		<method name="offerFirst(Ljava/lang/Object;JLjava/util/concurrent/TimeUnit;)Z" />
-		<method name="offerLast(Ljava/lang/Object;JLjava/util/concurrent/TimeUnit;)Z" />
-		<method name="pollFirst(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;" />
-		<method name="pollLast(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;" />
-		<method name="putFirst(Ljava/lang/Object;)V" />
-		<method name="putLast(Ljava/lang/Object;)V" />
-		<method name="takeFirst()Ljava/lang/Object;" />
-		<method name="takeLast()Ljava/lang/Object;" />
-	</class>
-	<class name="java/util/concurrent/BlockingQueue" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/Queue" />
-		<method name="drainTo(Ljava/util/Collection;)I" />
-		<method name="drainTo(Ljava/util/Collection;I)I" />
-		<method name="offer(Ljava/lang/Object;JLjava/util/concurrent/TimeUnit;)Z" />
-		<method name="poll(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;" />
-		<method name="put(Ljava/lang/Object;)V" />
-		<method name="remainingCapacity()I" />
-		<method name="take()Ljava/lang/Object;" />
-	</class>
-	<class name="java/util/concurrent/BrokenBarrierException" since="1">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/util/concurrent/Callable" since="1">
-		<extends name="java/lang/Object" />
-		<method name="call()Ljava/lang/Object;" />
-	</class>
-	<class name="java/util/concurrent/CancellationException" since="1">
-		<extends name="java/lang/IllegalStateException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/util/concurrent/CompletionService" since="1">
-		<extends name="java/lang/Object" />
-		<method name="poll()Ljava/util/concurrent/Future;" />
-		<method name="poll(JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/Future;" />
-		<method name="submit(Ljava/lang/Runnable;Ljava/lang/Object;)Ljava/util/concurrent/Future;" />
-		<method name="submit(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;" />
-		<method name="take()Ljava/util/concurrent/Future;" />
-	</class>
-	<class name="java/util/concurrent/ConcurrentHashMap" since="1">
-		<extends name="java/util/AbstractMap" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/util/concurrent/ConcurrentMap" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(IF)V" since="9" />
-		<method name="&lt;init>(IFI)V" />
-		<method name="&lt;init>(Ljava/util/Map;)V" />
-		<method name="contains(Ljava/lang/Object;)Z" />
-		<method name="elements()Ljava/util/Enumeration;" />
-		<method name="keys()Ljava/util/Enumeration;" />
-	</class>
-	<class name="java/util/concurrent/ConcurrentLinkedQueue" since="1">
-		<extends name="java/util/AbstractQueue" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/util/Queue" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/util/Collection;)V" />
-	</class>
-	<class name="java/util/concurrent/ConcurrentMap" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/Map" />
-		<method name="putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="remove(Ljava/lang/Object;Ljava/lang/Object;)Z" />
-		<method name="replace(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="replace(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z" />
-	</class>
-	<class name="java/util/concurrent/ConcurrentNavigableMap" since="9">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/NavigableMap" />
-		<implements name="java/util/concurrent/ConcurrentMap" />
-		<method name="descendingMap()Ljava/util/concurrent/ConcurrentNavigableMap;" />
-		<method name="headMap(Ljava/lang/Object;)Ljava/util/concurrent/ConcurrentNavigableMap;" />
-		<method name="headMap(Ljava/lang/Object;Z)Ljava/util/concurrent/ConcurrentNavigableMap;" />
-		<method name="keySet()Ljava/util/NavigableSet;" />
-		<method name="subMap(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/concurrent/ConcurrentNavigableMap;" />
-		<method name="subMap(Ljava/lang/Object;ZLjava/lang/Object;Z)Ljava/util/concurrent/ConcurrentNavigableMap;" />
-		<method name="tailMap(Ljava/lang/Object;)Ljava/util/concurrent/ConcurrentNavigableMap;" />
-		<method name="tailMap(Ljava/lang/Object;Z)Ljava/util/concurrent/ConcurrentNavigableMap;" />
-	</class>
-	<class name="java/util/concurrent/ConcurrentSkipListMap" since="9">
-		<extends name="java/util/AbstractMap" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Cloneable" />
-		<implements name="java/util/concurrent/ConcurrentNavigableMap" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/util/Comparator;)V" />
-		<method name="&lt;init>(Ljava/util/Map;)V" />
-		<method name="&lt;init>(Ljava/util/SortedMap;)V" />
-		<method name="clone()Ljava/util/concurrent/ConcurrentSkipListMap;" />
-	</class>
-	<class name="java/util/concurrent/ConcurrentSkipListSet" since="9">
-		<extends name="java/util/AbstractSet" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Cloneable" />
-		<implements name="java/util/NavigableSet" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/util/Collection;)V" />
-		<method name="&lt;init>(Ljava/util/Comparator;)V" />
-		<method name="&lt;init>(Ljava/util/SortedSet;)V" />
-		<method name="clone()Ljava/util/concurrent/ConcurrentSkipListSet;" />
-		<method name="headSet(Ljava/lang/Object;)Ljava/util/NavigableSet;" />
-		<method name="subSet(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/NavigableSet;" />
-		<method name="tailSet(Ljava/lang/Object;)Ljava/util/NavigableSet;" />
-	</class>
-	<class name="java/util/concurrent/CopyOnWriteArrayList" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Cloneable" />
-		<implements name="java/util/List" />
-		<implements name="java/util/RandomAccess" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/util/Collection;)V" />
-		<method name="&lt;init>([Ljava/lang/Object;)V" />
-		<method name="addAllAbsent(Ljava/util/Collection;)I" />
-		<method name="addIfAbsent(Ljava/lang/Object;)Z" />
-		<method name="indexOf(Ljava/lang/Object;I)I" />
-		<method name="lastIndexOf(Ljava/lang/Object;I)I" />
-	</class>
-	<class name="java/util/concurrent/CopyOnWriteArraySet" since="1">
-		<extends name="java/util/AbstractSet" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/util/Collection;)V" />
-	</class>
-	<class name="java/util/concurrent/CountDownLatch" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(I)V" />
-		<method name="await()V" />
-		<method name="await(JLjava/util/concurrent/TimeUnit;)Z" />
-		<method name="countDown()V" />
-		<method name="getCount()J" />
-	</class>
-	<class name="java/util/concurrent/CyclicBarrier" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(ILjava/lang/Runnable;)V" />
-		<method name="await()I" />
-		<method name="await(JLjava/util/concurrent/TimeUnit;)I" />
-		<method name="getNumberWaiting()I" />
-		<method name="getParties()I" />
-		<method name="isBroken()Z" />
-		<method name="reset()V" />
-	</class>
-	<class name="java/util/concurrent/DelayQueue" since="1">
-		<extends name="java/util/AbstractQueue" />
-		<implements name="java/util/concurrent/BlockingQueue" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/util/Collection;)V" />
-		<method name="add(Ljava/util/concurrent/Delayed;)Z" />
-		<method name="offer(Ljava/util/concurrent/Delayed;)Z" />
-		<method name="offer(Ljava/util/concurrent/Delayed;JLjava/util/concurrent/TimeUnit;)Z" />
-		<method name="peek()Ljava/util/concurrent/Delayed;" />
-		<method name="poll()Ljava/util/concurrent/Delayed;" />
-		<method name="poll(JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/Delayed;" />
-		<method name="put(Ljava/util/concurrent/Delayed;)V" />
-		<method name="take()Ljava/util/concurrent/Delayed;" />
-	</class>
-	<class name="java/util/concurrent/Delayed" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Comparable" />
-		<method name="getDelay(Ljava/util/concurrent/TimeUnit;)J" />
-	</class>
-	<class name="java/util/concurrent/Exchanger" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="exchange(Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="exchange(Ljava/lang/Object;JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;" />
-	</class>
-	<class name="java/util/concurrent/ExecutionException" since="1">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/util/concurrent/Executor" since="1">
-		<extends name="java/lang/Object" />
-		<method name="execute(Ljava/lang/Runnable;)V" />
-	</class>
-	<class name="java/util/concurrent/ExecutorCompletionService" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/concurrent/CompletionService" />
-		<method name="&lt;init>(Ljava/util/concurrent/Executor;)V" />
-		<method name="&lt;init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/BlockingQueue;)V" />
-	</class>
-	<class name="java/util/concurrent/ExecutorService" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/concurrent/Executor" />
-		<method name="awaitTermination(JLjava/util/concurrent/TimeUnit;)Z" />
-		<method name="invokeAll(Ljava/util/Collection;)Ljava/util/List;" />
-		<method name="invokeAll(Ljava/util/Collection;JLjava/util/concurrent/TimeUnit;)Ljava/util/List;" />
-		<method name="invokeAny(Ljava/util/Collection;)Ljava/lang/Object;" />
-		<method name="invokeAny(Ljava/util/Collection;JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;" />
-		<method name="isShutdown()Z" />
-		<method name="isTerminated()Z" />
-		<method name="shutdown()V" />
-		<method name="shutdownNow()Ljava/util/List;" />
-		<method name="submit(Ljava/lang/Runnable;)Ljava/util/concurrent/Future;" />
-		<method name="submit(Ljava/lang/Runnable;Ljava/lang/Object;)Ljava/util/concurrent/Future;" />
-		<method name="submit(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;" />
-	</class>
-	<class name="java/util/concurrent/Executors" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="callable(Ljava/lang/Runnable;)Ljava/util/concurrent/Callable;" />
-		<method name="callable(Ljava/lang/Runnable;Ljava/lang/Object;)Ljava/util/concurrent/Callable;" />
-		<method name="callable(Ljava/security/PrivilegedAction;)Ljava/util/concurrent/Callable;" />
-		<method name="callable(Ljava/security/PrivilegedExceptionAction;)Ljava/util/concurrent/Callable;" />
-		<method name="defaultThreadFactory()Ljava/util/concurrent/ThreadFactory;" />
-		<method name="newCachedThreadPool()Ljava/util/concurrent/ExecutorService;" />
-		<method name="newCachedThreadPool(Ljava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ExecutorService;" />
-		<method name="newFixedThreadPool(I)Ljava/util/concurrent/ExecutorService;" />
-		<method name="newFixedThreadPool(ILjava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ExecutorService;" />
-		<method name="newScheduledThreadPool(I)Ljava/util/concurrent/ScheduledExecutorService;" />
-		<method name="newScheduledThreadPool(ILjava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ScheduledExecutorService;" />
-		<method name="newSingleThreadExecutor()Ljava/util/concurrent/ExecutorService;" />
-		<method name="newSingleThreadExecutor(Ljava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ExecutorService;" />
-		<method name="newSingleThreadScheduledExecutor()Ljava/util/concurrent/ScheduledExecutorService;" />
-		<method name="newSingleThreadScheduledExecutor(Ljava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ScheduledExecutorService;" />
-		<method name="privilegedCallable(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Callable;" />
-		<method name="privilegedCallableUsingCurrentClassLoader(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Callable;" />
-		<method name="privilegedThreadFactory()Ljava/util/concurrent/ThreadFactory;" />
-		<method name="unconfigurableExecutorService(Ljava/util/concurrent/ExecutorService;)Ljava/util/concurrent/ExecutorService;" />
-		<method name="unconfigurableScheduledExecutorService(Ljava/util/concurrent/ScheduledExecutorService;)Ljava/util/concurrent/ScheduledExecutorService;" />
-	</class>
-	<class name="java/util/concurrent/Future" since="1">
-		<extends name="java/lang/Object" />
-		<method name="cancel(Z)Z" />
-		<method name="get()Ljava/lang/Object;" />
-		<method name="get(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;" />
-		<method name="isCancelled()Z" />
-		<method name="isDone()Z" />
-	</class>
-	<class name="java/util/concurrent/FutureTask" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Runnable" />
-		<implements name="java/util/concurrent/Future" />
-		<implements name="java/util/concurrent/RunnableFuture" since="9" />
-		<method name="&lt;init>(Ljava/lang/Runnable;Ljava/lang/Object;)V" />
-		<method name="&lt;init>(Ljava/util/concurrent/Callable;)V" />
-		<method name="done()V" />
-		<method name="runAndReset()Z" />
-		<method name="set(Ljava/lang/Object;)V" />
-		<method name="setException(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/util/concurrent/LinkedBlockingDeque" since="9">
-		<extends name="java/util/AbstractQueue" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/util/concurrent/BlockingDeque" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(Ljava/util/Collection;)V" />
-	</class>
-	<class name="java/util/concurrent/LinkedBlockingQueue" since="1">
-		<extends name="java/util/AbstractQueue" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/util/concurrent/BlockingQueue" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(Ljava/util/Collection;)V" />
-	</class>
-	<class name="java/util/concurrent/PriorityBlockingQueue" since="1">
-		<extends name="java/util/AbstractQueue" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/util/concurrent/BlockingQueue" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(ILjava/util/Comparator;)V" />
-		<method name="&lt;init>(Ljava/util/Collection;)V" />
-		<method name="comparator()Ljava/util/Comparator;" />
-	</class>
-	<class name="java/util/concurrent/RejectedExecutionException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/util/concurrent/RejectedExecutionHandler" since="1">
-		<extends name="java/lang/Object" />
-		<method name="rejectedExecution(Ljava/lang/Runnable;Ljava/util/concurrent/ThreadPoolExecutor;)V" />
-	</class>
-	<class name="java/util/concurrent/RunnableFuture" since="9">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Runnable" />
-		<implements name="java/util/concurrent/Future" />
-	</class>
-	<class name="java/util/concurrent/RunnableScheduledFuture" since="9">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/concurrent/RunnableFuture" />
-		<implements name="java/util/concurrent/ScheduledFuture" />
-		<method name="isPeriodic()Z" />
-	</class>
-	<class name="java/util/concurrent/ScheduledExecutorService" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/concurrent/ExecutorService" />
-		<method name="schedule(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;" />
-		<method name="schedule(Ljava/util/concurrent/Callable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;" />
-		<method name="scheduleAtFixedRate(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;" />
-		<method name="scheduleWithFixedDelay(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;" />
-	</class>
-	<class name="java/util/concurrent/ScheduledFuture" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/concurrent/Delayed" />
-		<implements name="java/util/concurrent/Future" />
-	</class>
-	<class name="java/util/concurrent/ScheduledThreadPoolExecutor" since="1">
-		<extends name="java/util/concurrent/ThreadPoolExecutor" />
-		<implements name="java/util/concurrent/ScheduledExecutorService" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(ILjava/util/concurrent/RejectedExecutionHandler;)V" />
-		<method name="&lt;init>(ILjava/util/concurrent/ThreadFactory;)V" />
-		<method name="&lt;init>(ILjava/util/concurrent/ThreadFactory;Ljava/util/concurrent/RejectedExecutionHandler;)V" />
-		<method name="decorateTask(Ljava/lang/Runnable;Ljava/util/concurrent/RunnableScheduledFuture;)Ljava/util/concurrent/RunnableScheduledFuture;" since="9" />
-		<method name="decorateTask(Ljava/util/concurrent/Callable;Ljava/util/concurrent/RunnableScheduledFuture;)Ljava/util/concurrent/RunnableScheduledFuture;" since="9" />
-		<method name="getContinueExistingPeriodicTasksAfterShutdownPolicy()Z" />
-		<method name="getExecuteExistingDelayedTasksAfterShutdownPolicy()Z" />
-		<method name="setContinueExistingPeriodicTasksAfterShutdownPolicy(Z)V" />
-		<method name="setExecuteExistingDelayedTasksAfterShutdownPolicy(Z)V" />
-	</class>
-	<class name="java/util/concurrent/Semaphore" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(IZ)V" />
-		<method name="acquire()V" />
-		<method name="acquire(I)V" />
-		<method name="acquireUninterruptibly()V" />
-		<method name="acquireUninterruptibly(I)V" />
-		<method name="availablePermits()I" />
-		<method name="drainPermits()I" />
-		<method name="getQueueLength()I" />
-		<method name="getQueuedThreads()Ljava/util/Collection;" />
-		<method name="hasQueuedThreads()Z" />
-		<method name="isFair()Z" />
-		<method name="reducePermits(I)V" />
-		<method name="release()V" />
-		<method name="release(I)V" />
-		<method name="tryAcquire()Z" />
-		<method name="tryAcquire(I)Z" />
-		<method name="tryAcquire(IJLjava/util/concurrent/TimeUnit;)Z" />
-		<method name="tryAcquire(JLjava/util/concurrent/TimeUnit;)Z" />
-	</class>
-	<class name="java/util/concurrent/SynchronousQueue" since="1">
-		<extends name="java/util/AbstractQueue" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/util/concurrent/BlockingQueue" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Z)V" />
-	</class>
-	<class name="java/util/concurrent/ThreadFactory" since="1">
-		<extends name="java/lang/Object" />
-		<method name="newThread(Ljava/lang/Runnable;)Ljava/lang/Thread;" />
-	</class>
-	<class name="java/util/concurrent/ThreadPoolExecutor" since="1">
-		<extends name="java/util/concurrent/AbstractExecutorService" />
-		<method name="&lt;init>(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;)V" />
-		<method name="&lt;init>(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/RejectedExecutionHandler;)V" />
-		<method name="&lt;init>(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;)V" />
-		<method name="&lt;init>(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;Ljava/util/concurrent/RejectedExecutionHandler;)V" />
-		<method name="afterExecute(Ljava/lang/Runnable;Ljava/lang/Throwable;)V" />
-		<method name="allowCoreThreadTimeOut(Z)V" since="9" />
-		<method name="allowsCoreThreadTimeOut()Z" since="9" />
-		<method name="beforeExecute(Ljava/lang/Thread;Ljava/lang/Runnable;)V" />
-		<method name="getActiveCount()I" />
-		<method name="getCompletedTaskCount()J" />
-		<method name="getCorePoolSize()I" />
-		<method name="getKeepAliveTime(Ljava/util/concurrent/TimeUnit;)J" />
-		<method name="getLargestPoolSize()I" />
-		<method name="getMaximumPoolSize()I" />
-		<method name="getPoolSize()I" />
-		<method name="getQueue()Ljava/util/concurrent/BlockingQueue;" />
-		<method name="getRejectedExecutionHandler()Ljava/util/concurrent/RejectedExecutionHandler;" />
-		<method name="getTaskCount()J" />
-		<method name="getThreadFactory()Ljava/util/concurrent/ThreadFactory;" />
-		<method name="isTerminating()Z" />
-		<method name="prestartAllCoreThreads()I" />
-		<method name="prestartCoreThread()Z" />
-		<method name="purge()V" />
-		<method name="remove(Ljava/lang/Runnable;)Z" />
-		<method name="setCorePoolSize(I)V" />
-		<method name="setKeepAliveTime(JLjava/util/concurrent/TimeUnit;)V" />
-		<method name="setMaximumPoolSize(I)V" />
-		<method name="setRejectedExecutionHandler(Ljava/util/concurrent/RejectedExecutionHandler;)V" />
-		<method name="setThreadFactory(Ljava/util/concurrent/ThreadFactory;)V" />
-		<method name="terminated()V" />
-	</class>
-	<class name="java/util/concurrent/ThreadPoolExecutor$AbortPolicy" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/concurrent/RejectedExecutionHandler" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/util/concurrent/ThreadPoolExecutor$CallerRunsPolicy" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/concurrent/RejectedExecutionHandler" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/util/concurrent/ThreadPoolExecutor$DiscardOldestPolicy" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/concurrent/RejectedExecutionHandler" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/util/concurrent/ThreadPoolExecutor$DiscardPolicy" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/concurrent/RejectedExecutionHandler" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/util/concurrent/TimeUnit" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="convert(JLjava/util/concurrent/TimeUnit;)J" />
-		<method name="sleep(J)V" />
-		<method name="timedJoin(Ljava/lang/Thread;J)V" />
-		<method name="timedWait(Ljava/lang/Object;J)V" />
-		<method name="toDays(J)J" since="9" />
-		<method name="toHours(J)J" since="9" />
-		<method name="toMicros(J)J" />
-		<method name="toMillis(J)J" />
-		<method name="toMinutes(J)J" since="9" />
-		<method name="toNanos(J)J" />
-		<method name="toSeconds(J)J" />
-		<method name="valueOf(Ljava/lang/String;)Ljava/util/concurrent/TimeUnit;" />
-		<method name="values()[Ljava/util/concurrent/TimeUnit;" />
-		<field name="DAYS" since="9" />
-		<field name="HOURS" since="9" />
-		<field name="MICROSECONDS" />
-		<field name="MILLISECONDS" />
-		<field name="MINUTES" since="9" />
-		<field name="NANOSECONDS" />
-		<field name="SECONDS" />
-	</class>
-	<class name="java/util/concurrent/TimeoutException" since="1">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/util/concurrent/atomic/AtomicBoolean" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Z)V" />
-		<method name="compareAndSet(ZZ)Z" />
-		<method name="get()Z" />
-		<method name="getAndSet(Z)Z" />
-		<method name="lazySet(Z)V" since="9" />
-		<method name="set(Z)V" />
-		<method name="weakCompareAndSet(ZZ)Z" />
-	</class>
-	<class name="java/util/concurrent/atomic/AtomicInteger" since="1">
-		<extends name="java/lang/Number" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="addAndGet(I)I" />
-		<method name="compareAndSet(II)Z" />
-		<method name="decrementAndGet()I" />
-		<method name="get()I" />
-		<method name="getAndAdd(I)I" />
-		<method name="getAndDecrement()I" />
-		<method name="getAndIncrement()I" />
-		<method name="getAndSet(I)I" />
-		<method name="incrementAndGet()I" />
-		<method name="lazySet(I)V" since="9" />
-		<method name="set(I)V" />
-		<method name="weakCompareAndSet(II)Z" />
-	</class>
-	<class name="java/util/concurrent/atomic/AtomicIntegerArray" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>([I)V" />
-		<method name="addAndGet(II)I" />
-		<method name="compareAndSet(III)Z" />
-		<method name="decrementAndGet(I)I" />
-		<method name="get(I)I" />
-		<method name="getAndAdd(II)I" />
-		<method name="getAndDecrement(I)I" />
-		<method name="getAndIncrement(I)I" />
-		<method name="getAndSet(II)I" />
-		<method name="incrementAndGet(I)I" />
-		<method name="lazySet(II)V" since="9" />
-		<method name="length()I" />
-		<method name="set(II)V" />
-		<method name="weakCompareAndSet(III)Z" />
-	</class>
-	<class name="java/util/concurrent/atomic/AtomicIntegerFieldUpdater" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addAndGet(Ljava/lang/Object;I)I" />
-		<method name="compareAndSet(Ljava/lang/Object;II)Z" />
-		<method name="decrementAndGet(Ljava/lang/Object;)I" />
-		<method name="get(Ljava/lang/Object;)I" />
-		<method name="getAndAdd(Ljava/lang/Object;I)I" />
-		<method name="getAndDecrement(Ljava/lang/Object;)I" />
-		<method name="getAndIncrement(Ljava/lang/Object;)I" />
-		<method name="getAndSet(Ljava/lang/Object;I)I" />
-		<method name="incrementAndGet(Ljava/lang/Object;)I" />
-		<method name="lazySet(Ljava/lang/Object;I)V" since="9" />
-		<method name="newUpdater(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;" />
-		<method name="set(Ljava/lang/Object;I)V" />
-		<method name="weakCompareAndSet(Ljava/lang/Object;II)Z" />
-	</class>
-	<class name="java/util/concurrent/atomic/AtomicLong" since="1">
-		<extends name="java/lang/Number" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(J)V" />
-		<method name="addAndGet(J)J" />
-		<method name="compareAndSet(JJ)Z" />
-		<method name="decrementAndGet()J" />
-		<method name="get()J" />
-		<method name="getAndAdd(J)J" />
-		<method name="getAndDecrement()J" />
-		<method name="getAndIncrement()J" />
-		<method name="getAndSet(J)J" />
-		<method name="incrementAndGet()J" />
-		<method name="lazySet(J)V" since="9" />
-		<method name="set(J)V" />
-		<method name="weakCompareAndSet(JJ)Z" />
-	</class>
-	<class name="java/util/concurrent/atomic/AtomicLongArray" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>([J)V" />
-		<method name="addAndGet(IJ)J" />
-		<method name="compareAndSet(IJJ)Z" />
-		<method name="decrementAndGet(I)J" />
-		<method name="get(I)J" />
-		<method name="getAndAdd(IJ)J" />
-		<method name="getAndDecrement(I)J" />
-		<method name="getAndIncrement(I)J" />
-		<method name="getAndSet(IJ)J" />
-		<method name="incrementAndGet(I)J" />
-		<method name="lazySet(IJ)V" since="9" />
-		<method name="length()I" />
-		<method name="set(IJ)V" />
-		<method name="weakCompareAndSet(IJJ)Z" />
-	</class>
-	<class name="java/util/concurrent/atomic/AtomicLongFieldUpdater" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addAndGet(Ljava/lang/Object;J)J" />
-		<method name="compareAndSet(Ljava/lang/Object;JJ)Z" />
-		<method name="decrementAndGet(Ljava/lang/Object;)J" />
-		<method name="get(Ljava/lang/Object;)J" />
-		<method name="getAndAdd(Ljava/lang/Object;J)J" />
-		<method name="getAndDecrement(Ljava/lang/Object;)J" />
-		<method name="getAndIncrement(Ljava/lang/Object;)J" />
-		<method name="getAndSet(Ljava/lang/Object;J)J" />
-		<method name="incrementAndGet(Ljava/lang/Object;)J" />
-		<method name="lazySet(Ljava/lang/Object;J)V" since="9" />
-		<method name="newUpdater(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;" />
-		<method name="set(Ljava/lang/Object;J)V" />
-		<method name="weakCompareAndSet(Ljava/lang/Object;JJ)Z" />
-	</class>
-	<class name="java/util/concurrent/atomic/AtomicMarkableReference" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/Object;Z)V" />
-		<method name="attemptMark(Ljava/lang/Object;Z)Z" />
-		<method name="compareAndSet(Ljava/lang/Object;Ljava/lang/Object;ZZ)Z" />
-		<method name="get([Z)Ljava/lang/Object;" />
-		<method name="getReference()Ljava/lang/Object;" />
-		<method name="isMarked()Z" />
-		<method name="set(Ljava/lang/Object;Z)V" />
-		<method name="weakCompareAndSet(Ljava/lang/Object;Ljava/lang/Object;ZZ)Z" />
-	</class>
-	<class name="java/util/concurrent/atomic/AtomicReference" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/Object;)V" />
-		<method name="compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z" />
-		<method name="get()Ljava/lang/Object;" />
-		<method name="getAndSet(Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="lazySet(Ljava/lang/Object;)V" since="9" />
-		<method name="set(Ljava/lang/Object;)V" />
-		<method name="weakCompareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z" />
-	</class>
-	<class name="java/util/concurrent/atomic/AtomicReferenceArray" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>([Ljava/lang/Object;)V" />
-		<method name="compareAndSet(ILjava/lang/Object;Ljava/lang/Object;)Z" />
-		<method name="get(I)Ljava/lang/Object;" />
-		<method name="getAndSet(ILjava/lang/Object;)Ljava/lang/Object;" />
-		<method name="lazySet(ILjava/lang/Object;)V" since="9" />
-		<method name="length()I" />
-		<method name="set(ILjava/lang/Object;)V" />
-		<method name="weakCompareAndSet(ILjava/lang/Object;Ljava/lang/Object;)Z" />
-	</class>
-	<class name="java/util/concurrent/atomic/AtomicReferenceFieldUpdater" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="compareAndSet(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z" />
-		<method name="get(Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="getAndSet(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;" />
-		<method name="lazySet(Ljava/lang/Object;Ljava/lang/Object;)V" since="9" />
-		<method name="newUpdater(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;" />
-		<method name="set(Ljava/lang/Object;Ljava/lang/Object;)V" />
-		<method name="weakCompareAndSet(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z" />
-	</class>
-	<class name="java/util/concurrent/atomic/AtomicStampedReference" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/Object;I)V" />
-		<method name="attemptStamp(Ljava/lang/Object;I)Z" />
-		<method name="compareAndSet(Ljava/lang/Object;Ljava/lang/Object;II)Z" />
-		<method name="get([I)Ljava/lang/Object;" />
-		<method name="getReference()Ljava/lang/Object;" />
-		<method name="getStamp()I" />
-		<method name="set(Ljava/lang/Object;I)V" />
-		<method name="weakCompareAndSet(Ljava/lang/Object;Ljava/lang/Object;II)Z" />
-	</class>
-	<class name="java/util/concurrent/locks/AbstractOwnableSynchronizer" since="5">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>()V" />
-		<method name="getExclusiveOwnerThread()Ljava/lang/Thread;" />
-		<method name="setExclusiveOwnerThread(Ljava/lang/Thread;)V" />
-	</class>
-	<class name="java/util/concurrent/locks/AbstractQueuedLongSynchronizer" since="9">
-		<extends name="java/util/concurrent/locks/AbstractOwnableSynchronizer" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>()V" />
-		<method name="acquire(J)V" />
-		<method name="acquireInterruptibly(J)V" />
-		<method name="acquireShared(J)V" />
-		<method name="acquireSharedInterruptibly(J)V" />
-		<method name="compareAndSetState(JJ)Z" />
-		<method name="getExclusiveQueuedThreads()Ljava/util/Collection;" />
-		<method name="getFirstQueuedThread()Ljava/lang/Thread;" />
-		<method name="getQueueLength()I" />
-		<method name="getQueuedThreads()Ljava/util/Collection;" />
-		<method name="getSharedQueuedThreads()Ljava/util/Collection;" />
-		<method name="getState()J" />
-		<method name="getWaitQueueLength(Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject;)I" />
-		<method name="getWaitingThreads(Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject;)Ljava/util/Collection;" />
-		<method name="hasContended()Z" />
-		<method name="hasQueuedThreads()Z" />
-		<method name="hasWaiters(Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject;)Z" />
-		<method name="isHeldExclusively()Z" />
-		<method name="isQueued(Ljava/lang/Thread;)Z" />
-		<method name="owns(Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject;)Z" />
-		<method name="release(J)Z" />
-		<method name="releaseShared(J)Z" />
-		<method name="setState(J)V" />
-		<method name="tryAcquire(J)Z" />
-		<method name="tryAcquireNanos(JJ)Z" />
-		<method name="tryAcquireShared(J)J" />
-		<method name="tryAcquireSharedNanos(JJ)Z" />
-		<method name="tryRelease(J)Z" />
-		<method name="tryReleaseShared(J)Z" />
-	</class>
-	<class name="java/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject" since="9">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/util/concurrent/locks/Condition" />
-		<method name="&lt;init>(Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;)V" />
-		<method name="getWaitQueueLength()I" />
-		<method name="getWaitingThreads()Ljava/util/Collection;" />
-		<method name="hasWaiters()Z" />
-	</class>
-	<class name="java/util/concurrent/locks/AbstractQueuedSynchronizer" since="1">
-		<extends name="java/lang/Object" />
-		<extends name="java/util/concurrent/locks/AbstractOwnableSynchronizer" since="5" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>()V" />
-		<method name="acquire(I)V" />
-		<method name="acquireInterruptibly(I)V" />
-		<method name="acquireShared(I)V" />
-		<method name="acquireSharedInterruptibly(I)V" />
-		<method name="compareAndSetState(II)Z" />
-		<method name="getExclusiveQueuedThreads()Ljava/util/Collection;" />
-		<method name="getFirstQueuedThread()Ljava/lang/Thread;" />
-		<method name="getQueueLength()I" />
-		<method name="getQueuedThreads()Ljava/util/Collection;" />
-		<method name="getSharedQueuedThreads()Ljava/util/Collection;" />
-		<method name="getState()I" />
-		<method name="getWaitQueueLength(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;)I" />
-		<method name="getWaitingThreads(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;)Ljava/util/Collection;" />
-		<method name="hasContended()Z" />
-		<method name="hasQueuedThreads()Z" />
-		<method name="hasWaiters(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;)Z" />
-		<method name="isHeldExclusively()Z" />
-		<method name="isQueued(Ljava/lang/Thread;)Z" />
-		<method name="owns(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;)Z" />
-		<method name="release(I)Z" />
-		<method name="releaseShared(I)Z" />
-		<method name="setState(I)V" />
-		<method name="tryAcquire(I)Z" />
-		<method name="tryAcquireNanos(IJ)Z" />
-		<method name="tryAcquireShared(I)I" />
-		<method name="tryAcquireSharedNanos(IJ)Z" />
-		<method name="tryRelease(I)Z" />
-		<method name="tryReleaseShared(I)Z" />
-	</class>
-	<class name="java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/util/concurrent/locks/Condition" />
-		<method name="&lt;init>(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;)V" />
-		<method name="getWaitQueueLength()I" />
-		<method name="getWaitingThreads()Ljava/util/Collection;" />
-		<method name="hasWaiters()Z" />
-	</class>
-	<class name="java/util/concurrent/locks/Condition" since="1">
-		<extends name="java/lang/Object" />
-		<method name="await()V" />
-		<method name="await(JLjava/util/concurrent/TimeUnit;)Z" />
-		<method name="awaitNanos(J)J" />
-		<method name="awaitUninterruptibly()V" />
-		<method name="awaitUntil(Ljava/util/Date;)Z" />
-		<method name="signal()V" />
-		<method name="signalAll()V" />
-	</class>
-	<class name="java/util/concurrent/locks/Lock" since="1">
-		<extends name="java/lang/Object" />
-		<method name="lock()V" />
-		<method name="lockInterruptibly()V" />
-		<method name="newCondition()Ljava/util/concurrent/locks/Condition;" />
-		<method name="tryLock()Z" />
-		<method name="tryLock(JLjava/util/concurrent/TimeUnit;)Z" />
-		<method name="unlock()V" />
-	</class>
-	<class name="java/util/concurrent/locks/LockSupport" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getBlocker(Ljava/lang/Thread;)Ljava/lang/Object;" since="9" />
-		<method name="park()V" />
-		<method name="park(Ljava/lang/Object;)V" since="9" />
-		<method name="parkNanos(J)V" />
-		<method name="parkNanos(Ljava/lang/Object;J)V" since="9" />
-		<method name="parkUntil(J)V" />
-		<method name="parkUntil(Ljava/lang/Object;J)V" since="9" />
-		<method name="unpark(Ljava/lang/Thread;)V" />
-	</class>
-	<class name="java/util/concurrent/locks/ReadWriteLock" since="1">
-		<extends name="java/lang/Object" />
-		<method name="readLock()Ljava/util/concurrent/locks/Lock;" />
-		<method name="writeLock()Ljava/util/concurrent/locks/Lock;" />
-	</class>
-	<class name="java/util/concurrent/locks/ReentrantLock" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/util/concurrent/locks/Lock" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Z)V" />
-		<method name="getHoldCount()I" />
-		<method name="getOwner()Ljava/lang/Thread;" />
-		<method name="getQueueLength()I" />
-		<method name="getQueuedThreads()Ljava/util/Collection;" />
-		<method name="getWaitQueueLength(Ljava/util/concurrent/locks/Condition;)I" />
-		<method name="getWaitingThreads(Ljava/util/concurrent/locks/Condition;)Ljava/util/Collection;" />
-		<method name="hasQueuedThread(Ljava/lang/Thread;)Z" />
-		<method name="hasQueuedThreads()Z" />
-		<method name="hasWaiters(Ljava/util/concurrent/locks/Condition;)Z" />
-		<method name="isFair()Z" />
-		<method name="isHeldByCurrentThread()Z" />
-		<method name="isLocked()Z" />
-	</class>
-	<class name="java/util/concurrent/locks/ReentrantReadWriteLock" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/util/concurrent/locks/ReadWriteLock" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Z)V" />
-		<method name="getOwner()Ljava/lang/Thread;" />
-		<method name="getQueueLength()I" />
-		<method name="getQueuedReaderThreads()Ljava/util/Collection;" />
-		<method name="getQueuedThreads()Ljava/util/Collection;" />
-		<method name="getQueuedWriterThreads()Ljava/util/Collection;" />
-		<method name="getReadHoldCount()I" since="9" />
-		<method name="getReadLockCount()I" />
-		<method name="getWaitQueueLength(Ljava/util/concurrent/locks/Condition;)I" />
-		<method name="getWaitingThreads(Ljava/util/concurrent/locks/Condition;)Ljava/util/Collection;" />
-		<method name="getWriteHoldCount()I" />
-		<method name="hasQueuedThread(Ljava/lang/Thread;)Z" />
-		<method name="hasQueuedThreads()Z" />
-		<method name="hasWaiters(Ljava/util/concurrent/locks/Condition;)Z" />
-		<method name="isFair()Z" />
-		<method name="isWriteLocked()Z" />
-		<method name="isWriteLockedByCurrentThread()Z" />
-		<method name="readLock()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;" />
-		<method name="writeLock()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;" />
-	</class>
-	<class name="java/util/concurrent/locks/ReentrantReadWriteLock$ReadLock" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/util/concurrent/locks/Lock" />
-		<method name="&lt;init>(Ljava/util/concurrent/locks/ReentrantReadWriteLock;)V" />
-	</class>
-	<class name="java/util/concurrent/locks/ReentrantReadWriteLock$WriteLock" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/util/concurrent/locks/Lock" />
-		<method name="&lt;init>(Ljava/util/concurrent/locks/ReentrantReadWriteLock;)V" />
-		<method name="getHoldCount()I" since="9" />
-		<method name="isHeldByCurrentThread()Z" since="9" />
-	</class>
-	<class name="java/util/jar/Attributes" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-		<implements name="java/util/Map" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(Ljava/util/jar/Attributes;)V" />
-		<method name="getValue(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getValue(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;" />
-		<method name="putValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
-		<field name="map" />
-	</class>
-	<class name="java/util/jar/Attributes$Name" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<field name="CLASS_PATH" />
-		<field name="CONTENT_TYPE" />
-		<field name="EXTENSION_INSTALLATION" />
-		<field name="EXTENSION_LIST" />
-		<field name="EXTENSION_NAME" />
-		<field name="IMPLEMENTATION_TITLE" />
-		<field name="IMPLEMENTATION_URL" />
-		<field name="IMPLEMENTATION_VENDOR" />
-		<field name="IMPLEMENTATION_VENDOR_ID" />
-		<field name="IMPLEMENTATION_VERSION" />
-		<field name="MAIN_CLASS" />
-		<field name="MANIFEST_VERSION" />
-		<field name="SEALED" />
-		<field name="SIGNATURE_VERSION" />
-		<field name="SPECIFICATION_TITLE" />
-		<field name="SPECIFICATION_VENDOR" />
-		<field name="SPECIFICATION_VERSION" />
-	</class>
-	<class name="java/util/jar/JarEntry" since="1">
-		<extends name="java/util/zip/ZipEntry" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/util/jar/JarEntry;)V" />
-		<method name="&lt;init>(Ljava/util/zip/ZipEntry;)V" />
-		<method name="getAttributes()Ljava/util/jar/Attributes;" />
-		<method name="getCertificates()[Ljava/security/cert/Certificate;" />
-		<method name="getCodeSigners()[Ljava/security/CodeSigner;" />
-	</class>
-	<class name="java/util/jar/JarException" since="1">
-		<extends name="java/util/zip/ZipException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/util/jar/JarFile" since="1">
-		<extends name="java/util/zip/ZipFile" />
-		<method name="&lt;init>(Ljava/io/File;)V" />
-		<method name="&lt;init>(Ljava/io/File;Z)V" />
-		<method name="&lt;init>(Ljava/io/File;ZI)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Z)V" />
-		<method name="getJarEntry(Ljava/lang/String;)Ljava/util/jar/JarEntry;" />
-		<method name="getManifest()Ljava/util/jar/Manifest;" />
-		<field name="MANIFEST_NAME" />
-	</class>
-	<class name="java/util/jar/JarInputStream" since="1">
-		<extends name="java/util/zip/ZipInputStream" />
-		<method name="&lt;init>(Ljava/io/InputStream;)V" />
-		<method name="&lt;init>(Ljava/io/InputStream;Z)V" />
-		<method name="getManifest()Ljava/util/jar/Manifest;" />
-		<method name="getNextJarEntry()Ljava/util/jar/JarEntry;" />
-	</class>
-	<class name="java/util/jar/JarOutputStream" since="1">
-		<extends name="java/util/zip/ZipOutputStream" />
-		<method name="&lt;init>(Ljava/io/OutputStream;)V" />
-		<method name="&lt;init>(Ljava/io/OutputStream;Ljava/util/jar/Manifest;)V" />
-	</class>
-	<class name="java/util/jar/Manifest" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/io/InputStream;)V" />
-		<method name="&lt;init>(Ljava/util/jar/Manifest;)V" />
-		<method name="clear()V" />
-		<method name="getAttributes(Ljava/lang/String;)Ljava/util/jar/Attributes;" />
-		<method name="getEntries()Ljava/util/Map;" />
-		<method name="getMainAttributes()Ljava/util/jar/Attributes;" />
-		<method name="read(Ljava/io/InputStream;)V" />
-		<method name="write(Ljava/io/OutputStream;)V" />
-	</class>
-	<class name="java/util/jar/Pack200" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="newPacker()Ljava/util/jar/Pack200$Packer;" />
-		<method name="newUnpacker()Ljava/util/jar/Pack200$Unpacker;" />
-	</class>
-	<class name="java/util/jar/Pack200$Packer" since="1">
-		<extends name="java/lang/Object" />
-		<method name="addPropertyChangeListener(Ljava/beans/PropertyChangeListener;)V" since="3" />
-		<method name="pack(Ljava/util/jar/JarFile;Ljava/io/OutputStream;)V" />
-		<method name="pack(Ljava/util/jar/JarInputStream;Ljava/io/OutputStream;)V" />
-		<method name="properties()Ljava/util/SortedMap;" />
-		<method name="removePropertyChangeListener(Ljava/beans/PropertyChangeListener;)V" since="3" />
-		<field name="CLASS_ATTRIBUTE_PFX" />
-		<field name="CODE_ATTRIBUTE_PFX" />
-		<field name="DEFLATE_HINT" />
-		<field name="EFFORT" />
-		<field name="ERROR" />
-		<field name="FALSE" />
-		<field name="FIELD_ATTRIBUTE_PFX" />
-		<field name="KEEP" />
-		<field name="KEEP_FILE_ORDER" />
-		<field name="LATEST" />
-		<field name="METHOD_ATTRIBUTE_PFX" />
-		<field name="MODIFICATION_TIME" />
-		<field name="PASS" />
-		<field name="PASS_FILE_PFX" />
-		<field name="PROGRESS" />
-		<field name="SEGMENT_LIMIT" />
-		<field name="STRIP" />
-		<field name="TRUE" />
-		<field name="UNKNOWN_ATTRIBUTE" />
-	</class>
-	<class name="java/util/jar/Pack200$Unpacker" since="1">
-		<extends name="java/lang/Object" />
-		<method name="addPropertyChangeListener(Ljava/beans/PropertyChangeListener;)V" since="3" />
-		<method name="properties()Ljava/util/SortedMap;" />
-		<method name="removePropertyChangeListener(Ljava/beans/PropertyChangeListener;)V" since="3" />
-		<method name="unpack(Ljava/io/File;Ljava/util/jar/JarOutputStream;)V" />
-		<method name="unpack(Ljava/io/InputStream;Ljava/util/jar/JarOutputStream;)V" />
-		<field name="DEFLATE_HINT" />
-		<field name="FALSE" />
-		<field name="KEEP" />
-		<field name="PROGRESS" />
-		<field name="TRUE" />
-	</class>
-	<class name="java/util/logging/ConsoleHandler" since="1">
-		<extends name="java/util/logging/StreamHandler" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/util/logging/ErrorManager" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="error(Ljava/lang/String;Ljava/lang/Exception;I)V" />
-		<field name="CLOSE_FAILURE" />
-		<field name="FLUSH_FAILURE" />
-		<field name="FORMAT_FAILURE" />
-		<field name="GENERIC_FAILURE" />
-		<field name="OPEN_FAILURE" />
-		<field name="WRITE_FAILURE" />
-	</class>
-	<class name="java/util/logging/FileHandler" since="1">
-		<extends name="java/util/logging/StreamHandler" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;II)V" />
-		<method name="&lt;init>(Ljava/lang/String;IIZ)V" />
-		<method name="&lt;init>(Ljava/lang/String;Z)V" />
-	</class>
-	<class name="java/util/logging/Filter" since="1">
-		<extends name="java/lang/Object" />
-		<method name="isLoggable(Ljava/util/logging/LogRecord;)Z" />
-	</class>
-	<class name="java/util/logging/Formatter" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="format(Ljava/util/logging/LogRecord;)Ljava/lang/String;" />
-		<method name="formatMessage(Ljava/util/logging/LogRecord;)Ljava/lang/String;" />
-		<method name="getHead(Ljava/util/logging/Handler;)Ljava/lang/String;" />
-		<method name="getTail(Ljava/util/logging/Handler;)Ljava/lang/String;" />
-	</class>
-	<class name="java/util/logging/Handler" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="close()V" />
-		<method name="flush()V" />
-		<method name="getEncoding()Ljava/lang/String;" />
-		<method name="getErrorManager()Ljava/util/logging/ErrorManager;" />
-		<method name="getFilter()Ljava/util/logging/Filter;" />
-		<method name="getFormatter()Ljava/util/logging/Formatter;" />
-		<method name="getLevel()Ljava/util/logging/Level;" />
-		<method name="isLoggable(Ljava/util/logging/LogRecord;)Z" />
-		<method name="publish(Ljava/util/logging/LogRecord;)V" />
-		<method name="reportError(Ljava/lang/String;Ljava/lang/Exception;I)V" />
-		<method name="setEncoding(Ljava/lang/String;)V" />
-		<method name="setErrorManager(Ljava/util/logging/ErrorManager;)V" />
-		<method name="setFilter(Ljava/util/logging/Filter;)V" />
-		<method name="setFormatter(Ljava/util/logging/Formatter;)V" />
-		<method name="setLevel(Ljava/util/logging/Level;)V" />
-	</class>
-	<class name="java/util/logging/Level" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(Ljava/lang/String;I)V" />
-		<method name="&lt;init>(Ljava/lang/String;ILjava/lang/String;)V" />
-		<method name="getLocalizedName()Ljava/lang/String;" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getResourceBundleName()Ljava/lang/String;" />
-		<method name="intValue()I" />
-		<method name="parse(Ljava/lang/String;)Ljava/util/logging/Level;" />
-		<field name="ALL" />
-		<field name="CONFIG" />
-		<field name="FINE" />
-		<field name="FINER" />
-		<field name="FINEST" />
-		<field name="INFO" />
-		<field name="OFF" />
-		<field name="SEVERE" />
-		<field name="WARNING" />
-	</class>
-	<class name="java/util/logging/LogManager" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addLogger(Ljava/util/logging/Logger;)Z" />
-		<method name="addPropertyChangeListener(Ljava/beans/PropertyChangeListener;)V" since="3" />
-		<method name="checkAccess()V" />
-		<method name="getLogManager()Ljava/util/logging/LogManager;" />
-		<method name="getLogger(Ljava/lang/String;)Ljava/util/logging/Logger;" />
-		<method name="getLoggerNames()Ljava/util/Enumeration;" />
-		<method name="getLoggingMXBean()Ljava/util/logging/LoggingMXBean;" since="3" />
-		<method name="getProperty(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="readConfiguration()V" />
-		<method name="readConfiguration(Ljava/io/InputStream;)V" />
-		<method name="removePropertyChangeListener(Ljava/beans/PropertyChangeListener;)V" since="3" />
-		<method name="reset()V" />
-		<field name="LOGGING_MXBEAN_NAME" />
-	</class>
-	<class name="java/util/logging/LogRecord" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(Ljava/util/logging/Level;Ljava/lang/String;)V" />
-		<method name="getLevel()Ljava/util/logging/Level;" />
-		<method name="getLoggerName()Ljava/lang/String;" />
-		<method name="getMessage()Ljava/lang/String;" />
-		<method name="getMillis()J" />
-		<method name="getParameters()[Ljava/lang/Object;" />
-		<method name="getResourceBundle()Ljava/util/ResourceBundle;" />
-		<method name="getResourceBundleName()Ljava/lang/String;" />
-		<method name="getSequenceNumber()J" />
-		<method name="getSourceClassName()Ljava/lang/String;" />
-		<method name="getSourceMethodName()Ljava/lang/String;" />
-		<method name="getThreadID()I" />
-		<method name="getThrown()Ljava/lang/Throwable;" />
-		<method name="setLevel(Ljava/util/logging/Level;)V" />
-		<method name="setLoggerName(Ljava/lang/String;)V" />
-		<method name="setMessage(Ljava/lang/String;)V" />
-		<method name="setMillis(J)V" />
-		<method name="setParameters([Ljava/lang/Object;)V" />
-		<method name="setResourceBundle(Ljava/util/ResourceBundle;)V" />
-		<method name="setResourceBundleName(Ljava/lang/String;)V" />
-		<method name="setSequenceNumber(J)V" />
-		<method name="setSourceClassName(Ljava/lang/String;)V" />
-		<method name="setSourceMethodName(Ljava/lang/String;)V" />
-		<method name="setThreadID(I)V" />
-		<method name="setThrown(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/util/logging/Logger" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="addHandler(Ljava/util/logging/Handler;)V" />
-		<method name="config(Ljava/lang/String;)V" />
-		<method name="entering(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="entering(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V" />
-		<method name="entering(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V" />
-		<method name="exiting(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="exiting(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V" />
-		<method name="fine(Ljava/lang/String;)V" />
-		<method name="finer(Ljava/lang/String;)V" />
-		<method name="finest(Ljava/lang/String;)V" />
-		<method name="getAnonymousLogger()Ljava/util/logging/Logger;" />
-		<method name="getAnonymousLogger(Ljava/lang/String;)Ljava/util/logging/Logger;" />
-		<method name="getFilter()Ljava/util/logging/Filter;" />
-		<method name="getGlobal()Ljava/util/logging/Logger;" since="19" />
-		<method name="getHandlers()[Ljava/util/logging/Handler;" />
-		<method name="getLevel()Ljava/util/logging/Level;" />
-		<method name="getLogger(Ljava/lang/String;)Ljava/util/logging/Logger;" />
-		<method name="getLogger(Ljava/lang/String;Ljava/lang/String;)Ljava/util/logging/Logger;" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getParent()Ljava/util/logging/Logger;" />
-		<method name="getResourceBundle()Ljava/util/ResourceBundle;" />
-		<method name="getResourceBundleName()Ljava/lang/String;" />
-		<method name="getUseParentHandlers()Z" />
-		<method name="info(Ljava/lang/String;)V" />
-		<method name="isLoggable(Ljava/util/logging/Level;)Z" />
-		<method name="log(Ljava/util/logging/Level;Ljava/lang/String;)V" />
-		<method name="log(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V" />
-		<method name="log(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="log(Ljava/util/logging/Level;Ljava/lang/String;[Ljava/lang/Object;)V" />
-		<method name="log(Ljava/util/logging/LogRecord;)V" />
-		<method name="logp(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="logp(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V" />
-		<method name="logp(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="logp(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V" />
-		<method name="logrb(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="logrb(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V" />
-		<method name="logrb(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="logrb(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V" />
-		<method name="removeHandler(Ljava/util/logging/Handler;)V" />
-		<method name="setFilter(Ljava/util/logging/Filter;)V" />
-		<method name="setLevel(Ljava/util/logging/Level;)V" />
-		<method name="setParent(Ljava/util/logging/Logger;)V" />
-		<method name="setUseParentHandlers(Z)V" />
-		<method name="severe(Ljava/lang/String;)V" />
-		<method name="throwing(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="warning(Ljava/lang/String;)V" />
-		<field name="GLOBAL_LOGGER_NAME" since="9" />
-		<field name="global" />
-	</class>
-	<class name="java/util/logging/LoggingMXBean" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getLoggerLevel(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getLoggerNames()Ljava/util/List;" />
-		<method name="getParentLoggerName(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="setLoggerLevel(Ljava/lang/String;Ljava/lang/String;)V" />
-	</class>
-	<class name="java/util/logging/LoggingPermission" since="1">
-		<extends name="java/security/BasicPermission" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/security/Guard" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-	</class>
-	<class name="java/util/logging/MemoryHandler" since="1">
-		<extends name="java/util/logging/Handler" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/util/logging/Handler;ILjava/util/logging/Level;)V" />
-		<method name="getPushLevel()Ljava/util/logging/Level;" />
-		<method name="push()V" />
-		<method name="setPushLevel(Ljava/util/logging/Level;)V" />
-	</class>
-	<class name="java/util/logging/SimpleFormatter" since="1">
-		<extends name="java/util/logging/Formatter" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/util/logging/SocketHandler" since="1">
-		<extends name="java/util/logging/StreamHandler" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;I)V" />
-	</class>
-	<class name="java/util/logging/StreamHandler" since="1">
-		<extends name="java/util/logging/Handler" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/io/OutputStream;Ljava/util/logging/Formatter;)V" />
-		<method name="setOutputStream(Ljava/io/OutputStream;)V" />
-	</class>
-	<class name="java/util/logging/XMLFormatter" since="1">
-		<extends name="java/util/logging/Formatter" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="java/util/prefs/AbstractPreferences" since="1">
-		<extends name="java/util/prefs/Preferences" />
-		<method name="&lt;init>(Ljava/util/prefs/AbstractPreferences;Ljava/lang/String;)V" />
-		<method name="cachedChildren()[Ljava/util/prefs/AbstractPreferences;" />
-		<method name="childSpi(Ljava/lang/String;)Ljava/util/prefs/AbstractPreferences;" />
-		<method name="childrenNamesSpi()[Ljava/lang/String;" />
-		<method name="flushSpi()V" />
-		<method name="getChild(Ljava/lang/String;)Ljava/util/prefs/AbstractPreferences;" />
-		<method name="getSpi(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="isRemoved()Z" />
-		<method name="keysSpi()[Ljava/lang/String;" />
-		<method name="putSpi(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="removeNodeSpi()V" />
-		<method name="removeSpi(Ljava/lang/String;)V" />
-		<method name="syncSpi()V" />
-		<field name="lock" />
-		<field name="newNode" />
-	</class>
-	<class name="java/util/prefs/BackingStoreException" since="1">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/util/prefs/InvalidPreferencesFormatException" since="1">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="java/util/prefs/NodeChangeEvent" since="1">
-		<extends name="java/util/EventObject" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(Ljava/util/prefs/Preferences;Ljava/util/prefs/Preferences;)V" />
-		<method name="getChild()Ljava/util/prefs/Preferences;" />
-		<method name="getParent()Ljava/util/prefs/Preferences;" />
-	</class>
-	<class name="java/util/prefs/NodeChangeListener" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/EventListener" />
-		<method name="childAdded(Ljava/util/prefs/NodeChangeEvent;)V" />
-		<method name="childRemoved(Ljava/util/prefs/NodeChangeEvent;)V" />
-	</class>
-	<class name="java/util/prefs/PreferenceChangeEvent" since="1">
-		<extends name="java/util/EventObject" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(Ljava/util/prefs/Preferences;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="getKey()Ljava/lang/String;" />
-		<method name="getNewValue()Ljava/lang/String;" />
-		<method name="getNode()Ljava/util/prefs/Preferences;" />
-	</class>
-	<class name="java/util/prefs/PreferenceChangeListener" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/EventListener" />
-		<method name="preferenceChange(Ljava/util/prefs/PreferenceChangeEvent;)V" />
-	</class>
-	<class name="java/util/prefs/Preferences" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="absolutePath()Ljava/lang/String;" />
-		<method name="addNodeChangeListener(Ljava/util/prefs/NodeChangeListener;)V" />
-		<method name="addPreferenceChangeListener(Ljava/util/prefs/PreferenceChangeListener;)V" />
-		<method name="childrenNames()[Ljava/lang/String;" />
-		<method name="clear()V" />
-		<method name="exportNode(Ljava/io/OutputStream;)V" />
-		<method name="exportSubtree(Ljava/io/OutputStream;)V" />
-		<method name="flush()V" />
-		<method name="get(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getBoolean(Ljava/lang/String;Z)Z" />
-		<method name="getByteArray(Ljava/lang/String;[B)[B" />
-		<method name="getDouble(Ljava/lang/String;D)D" />
-		<method name="getFloat(Ljava/lang/String;F)F" />
-		<method name="getInt(Ljava/lang/String;I)I" />
-		<method name="getLong(Ljava/lang/String;J)J" />
-		<method name="importPreferences(Ljava/io/InputStream;)V" />
-		<method name="isUserNode()Z" />
-		<method name="keys()[Ljava/lang/String;" />
-		<method name="name()Ljava/lang/String;" />
-		<method name="node(Ljava/lang/String;)Ljava/util/prefs/Preferences;" />
-		<method name="nodeExists(Ljava/lang/String;)Z" />
-		<method name="parent()Ljava/util/prefs/Preferences;" />
-		<method name="put(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="putBoolean(Ljava/lang/String;Z)V" />
-		<method name="putByteArray(Ljava/lang/String;[B)V" />
-		<method name="putDouble(Ljava/lang/String;D)V" />
-		<method name="putFloat(Ljava/lang/String;F)V" />
-		<method name="putInt(Ljava/lang/String;I)V" />
-		<method name="putLong(Ljava/lang/String;J)V" />
-		<method name="remove(Ljava/lang/String;)V" />
-		<method name="removeNode()V" />
-		<method name="removeNodeChangeListener(Ljava/util/prefs/NodeChangeListener;)V" />
-		<method name="removePreferenceChangeListener(Ljava/util/prefs/PreferenceChangeListener;)V" />
-		<method name="sync()V" />
-		<method name="systemNodeForPackage(Ljava/lang/Class;)Ljava/util/prefs/Preferences;" />
-		<method name="systemRoot()Ljava/util/prefs/Preferences;" />
-		<method name="userNodeForPackage(Ljava/lang/Class;)Ljava/util/prefs/Preferences;" />
-		<method name="userRoot()Ljava/util/prefs/Preferences;" />
-		<field name="MAX_KEY_LENGTH" />
-		<field name="MAX_NAME_LENGTH" />
-		<field name="MAX_VALUE_LENGTH" />
-	</class>
-	<class name="java/util/prefs/PreferencesFactory" since="1">
-		<extends name="java/lang/Object" />
-		<method name="systemRoot()Ljava/util/prefs/Preferences;" />
-		<method name="userRoot()Ljava/util/prefs/Preferences;" />
-	</class>
-	<class name="java/util/regex/MatchResult" since="1">
-		<extends name="java/lang/Object" />
-		<method name="end()I" />
-		<method name="end(I)I" />
-		<method name="group()Ljava/lang/String;" />
-		<method name="group(I)Ljava/lang/String;" />
-		<method name="groupCount()I" />
-		<method name="start()I" />
-		<method name="start(I)I" />
-	</class>
-	<class name="java/util/regex/Matcher" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/regex/MatchResult" />
-		<method name="&lt;init>()V" />
-		<method name="appendReplacement(Ljava/lang/StringBuffer;Ljava/lang/String;)Ljava/util/regex/Matcher;" />
-		<method name="appendTail(Ljava/lang/StringBuffer;)Ljava/lang/StringBuffer;" />
-		<method name="find()Z" />
-		<method name="find(I)Z" />
-		<method name="hasAnchoringBounds()Z" />
-		<method name="hasTransparentBounds()Z" />
-		<method name="hitEnd()Z" />
-		<method name="lookingAt()Z" />
-		<method name="matches()Z" />
-		<method name="pattern()Ljava/util/regex/Pattern;" />
-		<method name="quoteReplacement(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="region(II)Ljava/util/regex/Matcher;" />
-		<method name="regionEnd()I" />
-		<method name="regionStart()I" />
-		<method name="replaceAll(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="replaceFirst(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="requireEnd()Z" />
-		<method name="reset()Ljava/util/regex/Matcher;" />
-		<method name="reset(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;" />
-		<method name="toMatchResult()Ljava/util/regex/MatchResult;" />
-		<method name="useAnchoringBounds(Z)Ljava/util/regex/Matcher;" />
-		<method name="usePattern(Ljava/util/regex/Pattern;)Ljava/util/regex/Matcher;" />
-		<method name="useTransparentBounds(Z)Ljava/util/regex/Matcher;" />
-	</class>
-	<class name="java/util/regex/Pattern" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>()V" />
-		<method name="compile(Ljava/lang/String;)Ljava/util/regex/Pattern;" />
-		<method name="compile(Ljava/lang/String;I)Ljava/util/regex/Pattern;" />
-		<method name="flags()I" />
-		<method name="matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;" />
-		<method name="matches(Ljava/lang/String;Ljava/lang/CharSequence;)Z" />
-		<method name="pattern()Ljava/lang/String;" />
-		<method name="quote(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="split(Ljava/lang/CharSequence;)[Ljava/lang/String;" />
-		<method name="split(Ljava/lang/CharSequence;I)[Ljava/lang/String;" />
-		<field name="CANON_EQ" />
-		<field name="CASE_INSENSITIVE" />
-		<field name="COMMENTS" />
-		<field name="DOTALL" />
-		<field name="LITERAL" />
-		<field name="MULTILINE" />
-		<field name="UNICODE_CASE" />
-		<field name="UNIX_LINES" />
-	</class>
-	<class name="java/util/regex/PatternSyntaxException" since="1">
-		<extends name="java/lang/IllegalArgumentException" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I)V" />
-		<method name="getDescription()Ljava/lang/String;" />
-		<method name="getIndex()I" />
-		<method name="getPattern()Ljava/lang/String;" />
-	</class>
-	<class name="java/util/zip/Adler32" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/zip/Checksum" />
-		<method name="&lt;init>()V" />
-		<method name="update([B)V" />
-	</class>
-	<class name="java/util/zip/CRC32" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/zip/Checksum" />
-		<method name="&lt;init>()V" />
-		<method name="update([B)V" />
-	</class>
-	<class name="java/util/zip/CheckedInputStream" since="1">
-		<extends name="java/io/FilterInputStream" />
-		<method name="&lt;init>(Ljava/io/InputStream;Ljava/util/zip/Checksum;)V" />
-		<method name="getChecksum()Ljava/util/zip/Checksum;" />
-	</class>
-	<class name="java/util/zip/CheckedOutputStream" since="1">
-		<extends name="java/io/FilterOutputStream" />
-		<method name="&lt;init>(Ljava/io/OutputStream;Ljava/util/zip/Checksum;)V" />
-		<method name="getChecksum()Ljava/util/zip/Checksum;" />
-	</class>
-	<class name="java/util/zip/Checksum" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getValue()J" />
-		<method name="reset()V" />
-		<method name="update(I)V" />
-		<method name="update([BII)V" />
-	</class>
-	<class name="java/util/zip/DataFormatException" since="1">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/util/zip/Deflater" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(IZ)V" />
-		<method name="deflate([B)I" />
-		<method name="deflate([BII)I" />
-		<method name="deflate([BIII)I" since="19" />
-		<method name="end()V" />
-		<method name="finish()V" />
-		<method name="finished()Z" />
-		<method name="getAdler()I" />
-		<method name="getBytesRead()J" />
-		<method name="getBytesWritten()J" />
-		<method name="getTotalIn()I" />
-		<method name="getTotalOut()I" />
-		<method name="needsInput()Z" />
-		<method name="reset()V" />
-		<method name="setDictionary([B)V" />
-		<method name="setDictionary([BII)V" />
-		<method name="setInput([B)V" />
-		<method name="setInput([BII)V" />
-		<method name="setLevel(I)V" />
-		<method name="setStrategy(I)V" />
-		<field name="BEST_COMPRESSION" />
-		<field name="BEST_SPEED" />
-		<field name="DEFAULT_COMPRESSION" />
-		<field name="DEFAULT_STRATEGY" />
-		<field name="DEFLATED" />
-		<field name="FILTERED" />
-		<field name="FULL_FLUSH" since="19" />
-		<field name="HUFFMAN_ONLY" />
-		<field name="NO_COMPRESSION" />
-		<field name="NO_FLUSH" since="19" />
-		<field name="SYNC_FLUSH" since="19" />
-	</class>
-	<class name="java/util/zip/DeflaterInputStream" since="9">
-		<extends name="java/io/FilterInputStream" />
-		<method name="&lt;init>(Ljava/io/InputStream;)V" />
-		<method name="&lt;init>(Ljava/io/InputStream;Ljava/util/zip/Deflater;)V" />
-		<method name="&lt;init>(Ljava/io/InputStream;Ljava/util/zip/Deflater;I)V" />
-		<field name="buf" />
-		<field name="def" />
-	</class>
-	<class name="java/util/zip/DeflaterOutputStream" since="1">
-		<extends name="java/io/FilterOutputStream" />
-		<method name="&lt;init>(Ljava/io/OutputStream;)V" />
-		<method name="&lt;init>(Ljava/io/OutputStream;Ljava/util/zip/Deflater;)V" />
-		<method name="&lt;init>(Ljava/io/OutputStream;Ljava/util/zip/Deflater;I)V" />
-		<method name="&lt;init>(Ljava/io/OutputStream;Ljava/util/zip/Deflater;IZ)V" since="19" />
-		<method name="&lt;init>(Ljava/io/OutputStream;Ljava/util/zip/Deflater;Z)V" since="19" />
-		<method name="&lt;init>(Ljava/io/OutputStream;Z)V" since="19" />
-		<method name="deflate()V" />
-		<method name="finish()V" />
-		<field name="buf" />
-		<field name="def" />
-	</class>
-	<class name="java/util/zip/GZIPInputStream" since="1">
-		<extends name="java/util/zip/InflaterInputStream" />
-		<method name="&lt;init>(Ljava/io/InputStream;)V" />
-		<method name="&lt;init>(Ljava/io/InputStream;I)V" />
-		<field name="GZIP_MAGIC" />
-		<field name="crc" />
-		<field name="eos" />
-	</class>
-	<class name="java/util/zip/GZIPOutputStream" since="1">
-		<extends name="java/util/zip/DeflaterOutputStream" />
-		<method name="&lt;init>(Ljava/io/OutputStream;)V" />
-		<method name="&lt;init>(Ljava/io/OutputStream;I)V" />
-		<method name="&lt;init>(Ljava/io/OutputStream;IZ)V" since="19" />
-		<method name="&lt;init>(Ljava/io/OutputStream;Z)V" since="19" />
-		<field name="crc" />
-	</class>
-	<class name="java/util/zip/Inflater" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Z)V" />
-		<method name="end()V" />
-		<method name="finished()Z" />
-		<method name="getAdler()I" />
-		<method name="getBytesRead()J" />
-		<method name="getBytesWritten()J" />
-		<method name="getRemaining()I" />
-		<method name="getTotalIn()I" />
-		<method name="getTotalOut()I" />
-		<method name="inflate([B)I" />
-		<method name="inflate([BII)I" />
-		<method name="needsDictionary()Z" />
-		<method name="needsInput()Z" />
-		<method name="reset()V" />
-		<method name="setDictionary([B)V" />
-		<method name="setDictionary([BII)V" />
-		<method name="setInput([B)V" />
-		<method name="setInput([BII)V" />
-	</class>
-	<class name="java/util/zip/InflaterInputStream" since="1">
-		<extends name="java/io/FilterInputStream" />
-		<method name="&lt;init>(Ljava/io/InputStream;)V" />
-		<method name="&lt;init>(Ljava/io/InputStream;Ljava/util/zip/Inflater;)V" />
-		<method name="&lt;init>(Ljava/io/InputStream;Ljava/util/zip/Inflater;I)V" />
-		<method name="fill()V" />
-		<field name="buf" />
-		<field name="inf" />
-		<field name="len" />
-	</class>
-	<class name="java/util/zip/InflaterOutputStream" since="9">
-		<extends name="java/io/FilterOutputStream" />
-		<method name="&lt;init>(Ljava/io/OutputStream;)V" />
-		<method name="&lt;init>(Ljava/io/OutputStream;Ljava/util/zip/Inflater;)V" />
-		<method name="&lt;init>(Ljava/io/OutputStream;Ljava/util/zip/Inflater;I)V" />
-		<method name="finish()V" />
-		<field name="buf" />
-		<field name="inf" />
-	</class>
-	<class name="java/util/zip/ZipEntry" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/util/zip/ZipEntry;)V" />
-		<method name="getComment()Ljava/lang/String;" />
-		<method name="getCompressedSize()J" />
-		<method name="getCrc()J" />
-		<method name="getExtra()[B" />
-		<method name="getMethod()I" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getSize()J" />
-		<method name="getTime()J" />
-		<method name="isDirectory()Z" />
-		<method name="setComment(Ljava/lang/String;)V" />
-		<method name="setCompressedSize(J)V" />
-		<method name="setCrc(J)V" />
-		<method name="setExtra([B)V" />
-		<method name="setMethod(I)V" />
-		<method name="setSize(J)V" />
-		<method name="setTime(J)V" />
-		<field name="CENATT" since="21" />
-		<field name="CENATX" since="21" />
-		<field name="CENCOM" since="21" />
-		<field name="CENCRC" since="21" />
-		<field name="CENDSK" since="21" />
-		<field name="CENEXT" since="21" />
-		<field name="CENFLG" since="21" />
-		<field name="CENHDR" since="21" />
-		<field name="CENHOW" since="21" />
-		<field name="CENLEN" since="21" />
-		<field name="CENNAM" since="21" />
-		<field name="CENOFF" since="21" />
-		<field name="CENSIG" since="21" />
-		<field name="CENSIZ" since="21" />
-		<field name="CENTIM" since="21" />
-		<field name="CENVEM" since="21" />
-		<field name="CENVER" since="21" />
-		<field name="DEFLATED" />
-		<field name="ENDCOM" since="21" />
-		<field name="ENDHDR" since="21" />
-		<field name="ENDOFF" since="21" />
-		<field name="ENDSIG" since="21" />
-		<field name="ENDSIZ" since="21" />
-		<field name="ENDSUB" since="21" />
-		<field name="ENDTOT" since="21" />
-		<field name="EXTCRC" since="21" />
-		<field name="EXTHDR" since="21" />
-		<field name="EXTLEN" since="21" />
-		<field name="EXTSIG" since="21" />
-		<field name="EXTSIZ" since="21" />
-		<field name="LOCCRC" since="21" />
-		<field name="LOCEXT" since="21" />
-		<field name="LOCFLG" since="21" />
-		<field name="LOCHDR" since="21" />
-		<field name="LOCHOW" since="21" />
-		<field name="LOCLEN" since="21" />
-		<field name="LOCNAM" since="21" />
-		<field name="LOCSIG" since="21" />
-		<field name="LOCSIZ" since="21" />
-		<field name="LOCTIM" since="21" />
-		<field name="LOCVER" since="21" />
-		<field name="STORED" />
-	</class>
-	<class name="java/util/zip/ZipError" since="9">
-		<extends name="java/lang/InternalError" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/util/zip/ZipException" since="1">
-		<extends name="java/io/IOException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="java/util/zip/ZipFile" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Closeable" since="19" />
-		<method name="&lt;init>(Ljava/io/File;)V" />
-		<method name="&lt;init>(Ljava/io/File;I)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="close()V" />
-		<method name="entries()Ljava/util/Enumeration;" />
-		<method name="getComment()Ljava/lang/String;" since="19" />
-		<method name="getEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry;" />
-		<method name="getInputStream(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="size()I" />
-		<field name="CENATT" since="21" />
-		<field name="CENATX" since="21" />
-		<field name="CENCOM" since="21" />
-		<field name="CENCRC" since="21" />
-		<field name="CENDSK" since="21" />
-		<field name="CENEXT" since="21" />
-		<field name="CENFLG" since="21" />
-		<field name="CENHDR" since="21" />
-		<field name="CENHOW" since="21" />
-		<field name="CENLEN" since="21" />
-		<field name="CENNAM" since="21" />
-		<field name="CENOFF" since="21" />
-		<field name="CENSIG" since="21" />
-		<field name="CENSIZ" since="21" />
-		<field name="CENTIM" since="21" />
-		<field name="CENVEM" since="21" />
-		<field name="CENVER" since="21" />
-		<field name="ENDCOM" since="21" />
-		<field name="ENDHDR" since="21" />
-		<field name="ENDOFF" since="21" />
-		<field name="ENDSIG" since="21" />
-		<field name="ENDSIZ" since="21" />
-		<field name="ENDSUB" since="21" />
-		<field name="ENDTOT" since="21" />
-		<field name="EXTCRC" since="21" />
-		<field name="EXTHDR" since="21" />
-		<field name="EXTLEN" since="21" />
-		<field name="EXTSIG" since="21" />
-		<field name="EXTSIZ" since="21" />
-		<field name="LOCCRC" since="21" />
-		<field name="LOCEXT" since="21" />
-		<field name="LOCFLG" since="21" />
-		<field name="LOCHDR" since="21" />
-		<field name="LOCHOW" since="21" />
-		<field name="LOCLEN" since="21" />
-		<field name="LOCNAM" since="21" />
-		<field name="LOCSIG" since="21" />
-		<field name="LOCSIZ" since="21" />
-		<field name="LOCTIM" since="21" />
-		<field name="LOCVER" since="21" />
-		<field name="OPEN_DELETE" />
-		<field name="OPEN_READ" />
-	</class>
-	<class name="java/util/zip/ZipInputStream" since="1">
-		<extends name="java/util/zip/InflaterInputStream" />
-		<method name="&lt;init>(Ljava/io/InputStream;)V" />
-		<method name="closeEntry()V" />
-		<method name="createZipEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry;" />
-		<method name="getNextEntry()Ljava/util/zip/ZipEntry;" />
-		<field name="CENATT" since="21" />
-		<field name="CENATX" since="21" />
-		<field name="CENCOM" since="21" />
-		<field name="CENCRC" since="21" />
-		<field name="CENDSK" since="21" />
-		<field name="CENEXT" since="21" />
-		<field name="CENFLG" since="21" />
-		<field name="CENHDR" since="21" />
-		<field name="CENHOW" since="21" />
-		<field name="CENLEN" since="21" />
-		<field name="CENNAM" since="21" />
-		<field name="CENOFF" since="21" />
-		<field name="CENSIG" since="21" />
-		<field name="CENSIZ" since="21" />
-		<field name="CENTIM" since="21" />
-		<field name="CENVEM" since="21" />
-		<field name="CENVER" since="21" />
-		<field name="ENDCOM" since="21" />
-		<field name="ENDHDR" since="21" />
-		<field name="ENDOFF" since="21" />
-		<field name="ENDSIG" since="21" />
-		<field name="ENDSIZ" since="21" />
-		<field name="ENDSUB" since="21" />
-		<field name="ENDTOT" since="21" />
-		<field name="EXTCRC" since="21" />
-		<field name="EXTHDR" since="21" />
-		<field name="EXTLEN" since="21" />
-		<field name="EXTSIG" since="21" />
-		<field name="EXTSIZ" since="21" />
-		<field name="LOCCRC" since="21" />
-		<field name="LOCEXT" since="21" />
-		<field name="LOCFLG" since="21" />
-		<field name="LOCHDR" since="21" />
-		<field name="LOCHOW" since="21" />
-		<field name="LOCLEN" since="21" />
-		<field name="LOCNAM" since="21" />
-		<field name="LOCSIG" since="21" />
-		<field name="LOCSIZ" since="21" />
-		<field name="LOCTIM" since="21" />
-		<field name="LOCVER" since="21" />
-	</class>
-	<class name="java/util/zip/ZipOutputStream" since="1">
-		<extends name="java/util/zip/DeflaterOutputStream" />
-		<method name="&lt;init>(Ljava/io/OutputStream;)V" />
-		<method name="closeEntry()V" />
-		<method name="putNextEntry(Ljava/util/zip/ZipEntry;)V" />
-		<method name="setComment(Ljava/lang/String;)V" />
-		<method name="setLevel(I)V" />
-		<method name="setMethod(I)V" />
-		<field name="CENATT" since="21" />
-		<field name="CENATX" since="21" />
-		<field name="CENCOM" since="21" />
-		<field name="CENCRC" since="21" />
-		<field name="CENDSK" since="21" />
-		<field name="CENEXT" since="21" />
-		<field name="CENFLG" since="21" />
-		<field name="CENHDR" since="21" />
-		<field name="CENHOW" since="21" />
-		<field name="CENLEN" since="21" />
-		<field name="CENNAM" since="21" />
-		<field name="CENOFF" since="21" />
-		<field name="CENSIG" since="21" />
-		<field name="CENSIZ" since="21" />
-		<field name="CENTIM" since="21" />
-		<field name="CENVEM" since="21" />
-		<field name="CENVER" since="21" />
-		<field name="DEFLATED" />
-		<field name="ENDCOM" since="21" />
-		<field name="ENDHDR" since="21" />
-		<field name="ENDOFF" since="21" />
-		<field name="ENDSIG" since="21" />
-		<field name="ENDSIZ" since="21" />
-		<field name="ENDSUB" since="21" />
-		<field name="ENDTOT" since="21" />
-		<field name="EXTCRC" since="21" />
-		<field name="EXTHDR" since="21" />
-		<field name="EXTLEN" since="21" />
-		<field name="EXTSIG" since="21" />
-		<field name="EXTSIZ" since="21" />
-		<field name="LOCCRC" since="21" />
-		<field name="LOCEXT" since="21" />
-		<field name="LOCFLG" since="21" />
-		<field name="LOCHDR" since="21" />
-		<field name="LOCHOW" since="21" />
-		<field name="LOCLEN" since="21" />
-		<field name="LOCNAM" since="21" />
-		<field name="LOCSIG" since="21" />
-		<field name="LOCSIZ" since="21" />
-		<field name="LOCTIM" since="21" />
-		<field name="LOCVER" since="21" />
-		<field name="STORED" />
-	</class>
-	<class name="javax/crypto/AEADBadTagException" since="19">
-		<extends name="javax/crypto/BadPaddingException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="javax/crypto/BadPaddingException" since="1">
-		<extends name="java/security/GeneralSecurityException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="javax/crypto/Cipher" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljavax/crypto/CipherSpi;Ljava/security/Provider;Ljava/lang/String;)V" />
-		<method name="doFinal()[B" />
-		<method name="doFinal(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I" />
-		<method name="doFinal([B)[B" />
-		<method name="doFinal([BI)I" />
-		<method name="doFinal([BII)[B" />
-		<method name="doFinal([BII[B)I" />
-		<method name="doFinal([BII[BI)I" />
-		<method name="getAlgorithm()Ljava/lang/String;" />
-		<method name="getBlockSize()I" />
-		<method name="getExemptionMechanism()Ljavax/crypto/ExemptionMechanism;" />
-		<method name="getIV()[B" />
-		<method name="getInstance(Ljava/lang/String;)Ljavax/crypto/Cipher;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/Cipher;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/Cipher;" />
-		<method name="getMaxAllowedKeyLength(Ljava/lang/String;)I" />
-		<method name="getMaxAllowedParameterSpec(Ljava/lang/String;)Ljava/security/spec/AlgorithmParameterSpec;" />
-		<method name="getOutputSize(I)I" />
-		<method name="getParameters()Ljava/security/AlgorithmParameters;" />
-		<method name="getProvider()Ljava/security/Provider;" />
-		<method name="init(ILjava/security/Key;)V" />
-		<method name="init(ILjava/security/Key;Ljava/security/AlgorithmParameters;)V" />
-		<method name="init(ILjava/security/Key;Ljava/security/AlgorithmParameters;Ljava/security/SecureRandom;)V" />
-		<method name="init(ILjava/security/Key;Ljava/security/SecureRandom;)V" />
-		<method name="init(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V" />
-		<method name="init(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V" />
-		<method name="init(ILjava/security/cert/Certificate;)V" />
-		<method name="init(ILjava/security/cert/Certificate;Ljava/security/SecureRandom;)V" />
-		<method name="unwrap([BLjava/lang/String;I)Ljava/security/Key;" />
-		<method name="update(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I" />
-		<method name="update([B)[B" />
-		<method name="update([BII)[B" />
-		<method name="update([BII[B)I" />
-		<method name="update([BII[BI)I" />
-		<method name="updateAAD(Ljava/nio/ByteBuffer;)V" since="19" />
-		<method name="updateAAD([B)V" since="19" />
-		<method name="updateAAD([BII)V" since="19" />
-		<method name="wrap(Ljava/security/Key;)[B" />
-		<field name="DECRYPT_MODE" />
-		<field name="ENCRYPT_MODE" />
-		<field name="PRIVATE_KEY" />
-		<field name="PUBLIC_KEY" />
-		<field name="SECRET_KEY" />
-		<field name="UNWRAP_MODE" />
-		<field name="WRAP_MODE" />
-	</class>
-	<class name="javax/crypto/CipherInputStream" since="1">
-		<extends name="java/io/FilterInputStream" />
-		<method name="&lt;init>(Ljava/io/InputStream;)V" />
-		<method name="&lt;init>(Ljava/io/InputStream;Ljavax/crypto/Cipher;)V" />
-	</class>
-	<class name="javax/crypto/CipherOutputStream" since="1">
-		<extends name="java/io/FilterOutputStream" />
-		<method name="&lt;init>(Ljava/io/OutputStream;)V" />
-		<method name="&lt;init>(Ljava/io/OutputStream;Ljavax/crypto/Cipher;)V" />
-	</class>
-	<class name="javax/crypto/CipherSpi" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="engineDoFinal(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I" />
-		<method name="engineDoFinal([BII)[B" />
-		<method name="engineDoFinal([BII[BI)I" />
-		<method name="engineGetBlockSize()I" />
-		<method name="engineGetIV()[B" />
-		<method name="engineGetKeySize(Ljava/security/Key;)I" />
-		<method name="engineGetOutputSize(I)I" />
-		<method name="engineGetParameters()Ljava/security/AlgorithmParameters;" />
-		<method name="engineInit(ILjava/security/Key;Ljava/security/AlgorithmParameters;Ljava/security/SecureRandom;)V" />
-		<method name="engineInit(ILjava/security/Key;Ljava/security/SecureRandom;)V" />
-		<method name="engineInit(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V" />
-		<method name="engineSetMode(Ljava/lang/String;)V" />
-		<method name="engineSetPadding(Ljava/lang/String;)V" />
-		<method name="engineUnwrap([BLjava/lang/String;I)Ljava/security/Key;" />
-		<method name="engineUpdate(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I" />
-		<method name="engineUpdate([BII)[B" />
-		<method name="engineUpdate([BII[BI)I" />
-		<method name="engineUpdateAAD(Ljava/nio/ByteBuffer;)V" since="19" />
-		<method name="engineUpdateAAD([BII)V" since="19" />
-		<method name="engineWrap(Ljava/security/Key;)[B" />
-	</class>
-	<class name="javax/crypto/EncryptedPrivateKeyInfo" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;[B)V" />
-		<method name="&lt;init>(Ljava/security/AlgorithmParameters;[B)V" />
-		<method name="&lt;init>([B)V" />
-		<method name="getAlgName()Ljava/lang/String;" />
-		<method name="getAlgParameters()Ljava/security/AlgorithmParameters;" />
-		<method name="getEncoded()[B" />
-		<method name="getEncryptedData()[B" />
-		<method name="getKeySpec(Ljava/security/Key;)Ljava/security/spec/PKCS8EncodedKeySpec;" />
-		<method name="getKeySpec(Ljava/security/Key;Ljava/lang/String;)Ljava/security/spec/PKCS8EncodedKeySpec;" />
-		<method name="getKeySpec(Ljava/security/Key;Ljava/security/Provider;)Ljava/security/spec/PKCS8EncodedKeySpec;" />
-		<method name="getKeySpec(Ljavax/crypto/Cipher;)Ljava/security/spec/PKCS8EncodedKeySpec;" />
-	</class>
-	<class name="javax/crypto/ExemptionMechanism" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljavax/crypto/ExemptionMechanismSpi;Ljava/security/Provider;Ljava/lang/String;)V" />
-		<method name="genExemptionBlob()[B" />
-		<method name="genExemptionBlob([B)I" />
-		<method name="genExemptionBlob([BI)I" />
-		<method name="getInstance(Ljava/lang/String;)Ljavax/crypto/ExemptionMechanism;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/ExemptionMechanism;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/ExemptionMechanism;" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getOutputSize(I)I" />
-		<method name="getProvider()Ljava/security/Provider;" />
-		<method name="init(Ljava/security/Key;)V" />
-		<method name="init(Ljava/security/Key;Ljava/security/AlgorithmParameters;)V" />
-		<method name="init(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V" />
-		<method name="isCryptoAllowed(Ljava/security/Key;)Z" />
-	</class>
-	<class name="javax/crypto/ExemptionMechanismException" since="1">
-		<extends name="java/security/GeneralSecurityException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="javax/crypto/ExemptionMechanismSpi" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="engineGenExemptionBlob()[B" />
-		<method name="engineGenExemptionBlob([BI)I" />
-		<method name="engineGetOutputSize(I)I" />
-		<method name="engineInit(Ljava/security/Key;)V" />
-		<method name="engineInit(Ljava/security/Key;Ljava/security/AlgorithmParameters;)V" />
-		<method name="engineInit(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V" />
-	</class>
-	<class name="javax/crypto/IllegalBlockSizeException" since="1">
-		<extends name="java/security/GeneralSecurityException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="javax/crypto/KeyAgreement" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljavax/crypto/KeyAgreementSpi;Ljava/security/Provider;Ljava/lang/String;)V" />
-		<method name="doPhase(Ljava/security/Key;Z)Ljava/security/Key;" />
-		<method name="generateSecret()[B" />
-		<method name="generateSecret(Ljava/lang/String;)Ljavax/crypto/SecretKey;" />
-		<method name="generateSecret([BI)I" />
-		<method name="getAlgorithm()Ljava/lang/String;" />
-		<method name="getInstance(Ljava/lang/String;)Ljavax/crypto/KeyAgreement;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/KeyAgreement;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/KeyAgreement;" />
-		<method name="getProvider()Ljava/security/Provider;" />
-		<method name="init(Ljava/security/Key;)V" />
-		<method name="init(Ljava/security/Key;Ljava/security/SecureRandom;)V" />
-		<method name="init(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V" />
-		<method name="init(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V" />
-	</class>
-	<class name="javax/crypto/KeyAgreementSpi" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="engineDoPhase(Ljava/security/Key;Z)Ljava/security/Key;" />
-		<method name="engineGenerateSecret()[B" />
-		<method name="engineGenerateSecret(Ljava/lang/String;)Ljavax/crypto/SecretKey;" />
-		<method name="engineGenerateSecret([BI)I" />
-		<method name="engineInit(Ljava/security/Key;Ljava/security/SecureRandom;)V" />
-		<method name="engineInit(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V" />
-	</class>
-	<class name="javax/crypto/KeyGenerator" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljavax/crypto/KeyGeneratorSpi;Ljava/security/Provider;Ljava/lang/String;)V" />
-		<method name="generateKey()Ljavax/crypto/SecretKey;" />
-		<method name="getAlgorithm()Ljava/lang/String;" />
-		<method name="getInstance(Ljava/lang/String;)Ljavax/crypto/KeyGenerator;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/KeyGenerator;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/KeyGenerator;" />
-		<method name="getProvider()Ljava/security/Provider;" />
-		<method name="init(I)V" />
-		<method name="init(ILjava/security/SecureRandom;)V" />
-		<method name="init(Ljava/security/SecureRandom;)V" />
-		<method name="init(Ljava/security/spec/AlgorithmParameterSpec;)V" />
-		<method name="init(Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V" />
-	</class>
-	<class name="javax/crypto/KeyGeneratorSpi" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="engineGenerateKey()Ljavax/crypto/SecretKey;" />
-		<method name="engineInit(ILjava/security/SecureRandom;)V" />
-		<method name="engineInit(Ljava/security/SecureRandom;)V" />
-		<method name="engineInit(Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V" />
-	</class>
-	<class name="javax/crypto/Mac" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-		<method name="&lt;init>(Ljavax/crypto/MacSpi;Ljava/security/Provider;Ljava/lang/String;)V" />
-		<method name="doFinal()[B" />
-		<method name="doFinal([B)[B" />
-		<method name="doFinal([BI)V" />
-		<method name="getAlgorithm()Ljava/lang/String;" />
-		<method name="getInstance(Ljava/lang/String;)Ljavax/crypto/Mac;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/Mac;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/Mac;" />
-		<method name="getMacLength()I" />
-		<method name="getProvider()Ljava/security/Provider;" />
-		<method name="init(Ljava/security/Key;)V" />
-		<method name="init(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V" />
-		<method name="reset()V" />
-		<method name="update(B)V" />
-		<method name="update(Ljava/nio/ByteBuffer;)V" />
-		<method name="update([B)V" />
-		<method name="update([BII)V" />
-	</class>
-	<class name="javax/crypto/MacSpi" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="engineDoFinal()[B" />
-		<method name="engineGetMacLength()I" />
-		<method name="engineInit(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V" />
-		<method name="engineReset()V" />
-		<method name="engineUpdate(B)V" />
-		<method name="engineUpdate(Ljava/nio/ByteBuffer;)V" />
-		<method name="engineUpdate([BII)V" />
-	</class>
-	<class name="javax/crypto/NoSuchPaddingException" since="1">
-		<extends name="java/security/GeneralSecurityException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="javax/crypto/NullCipher" since="1">
-		<extends name="javax/crypto/Cipher" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="javax/crypto/SealedObject" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(Ljava/io/Serializable;Ljavax/crypto/Cipher;)V" />
-		<method name="&lt;init>(Ljavax/crypto/SealedObject;)V" />
-		<method name="getAlgorithm()Ljava/lang/String;" />
-		<method name="getObject(Ljava/security/Key;)Ljava/lang/Object;" />
-		<method name="getObject(Ljava/security/Key;Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="getObject(Ljavax/crypto/Cipher;)Ljava/lang/Object;" />
-		<field name="encodedParams" />
-	</class>
-	<class name="javax/crypto/SecretKey" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/Key" />
-		<field name="serialVersionUID" />
-	</class>
-	<class name="javax/crypto/SecretKeyFactory" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljavax/crypto/SecretKeyFactorySpi;Ljava/security/Provider;Ljava/lang/String;)V" />
-		<method name="generateSecret(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;" />
-		<method name="getAlgorithm()Ljava/lang/String;" />
-		<method name="getInstance(Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/SecretKeyFactory;" />
-		<method name="getKeySpec(Ljavax/crypto/SecretKey;Ljava/lang/Class;)Ljava/security/spec/KeySpec;" />
-		<method name="getProvider()Ljava/security/Provider;" />
-		<method name="translateKey(Ljavax/crypto/SecretKey;)Ljavax/crypto/SecretKey;" />
-	</class>
-	<class name="javax/crypto/SecretKeyFactorySpi" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="engineGenerateSecret(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;" />
-		<method name="engineGetKeySpec(Ljavax/crypto/SecretKey;Ljava/lang/Class;)Ljava/security/spec/KeySpec;" />
-		<method name="engineTranslateKey(Ljavax/crypto/SecretKey;)Ljavax/crypto/SecretKey;" />
-	</class>
-	<class name="javax/crypto/ShortBufferException" since="1">
-		<extends name="java/security/GeneralSecurityException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="javax/crypto/interfaces/DHKey" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getParams()Ljavax/crypto/spec/DHParameterSpec;" />
-	</class>
-	<class name="javax/crypto/interfaces/DHPrivateKey" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/PrivateKey" />
-		<implements name="javax/crypto/interfaces/DHKey" />
-		<method name="getX()Ljava/math/BigInteger;" />
-		<field name="serialVersionUID" />
-	</class>
-	<class name="javax/crypto/interfaces/DHPublicKey" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/PublicKey" />
-		<implements name="javax/crypto/interfaces/DHKey" />
-		<method name="getY()Ljava/math/BigInteger;" />
-		<field name="serialVersionUID" />
-	</class>
-	<class name="javax/crypto/interfaces/PBEKey" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="javax/crypto/SecretKey" />
-		<method name="getIterationCount()I" />
-		<method name="getPassword()[C" />
-		<method name="getSalt()[B" />
-		<field name="serialVersionUID" />
-	</class>
-	<class name="javax/crypto/spec/DESKeySpec" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/spec/KeySpec" />
-		<method name="&lt;init>([B)V" />
-		<method name="&lt;init>([BI)V" />
-		<method name="getKey()[B" />
-		<method name="isParityAdjusted([BI)Z" />
-		<method name="isWeak([BI)Z" />
-		<field name="DES_KEY_LEN" />
-	</class>
-	<class name="javax/crypto/spec/DESedeKeySpec" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/spec/KeySpec" />
-		<method name="&lt;init>([B)V" />
-		<method name="&lt;init>([BI)V" />
-		<method name="getKey()[B" />
-		<method name="isParityAdjusted([BI)Z" />
-		<field name="DES_EDE_KEY_LEN" />
-	</class>
-	<class name="javax/crypto/spec/DHGenParameterSpec" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/spec/AlgorithmParameterSpec" />
-		<method name="&lt;init>(II)V" />
-		<method name="getExponentSize()I" />
-		<method name="getPrimeSize()I" />
-	</class>
-	<class name="javax/crypto/spec/DHParameterSpec" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/spec/AlgorithmParameterSpec" />
-		<method name="&lt;init>(Ljava/math/BigInteger;Ljava/math/BigInteger;)V" />
-		<method name="&lt;init>(Ljava/math/BigInteger;Ljava/math/BigInteger;I)V" />
-		<method name="getG()Ljava/math/BigInteger;" />
-		<method name="getL()I" />
-		<method name="getP()Ljava/math/BigInteger;" />
-	</class>
-	<class name="javax/crypto/spec/DHPrivateKeySpec" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/spec/KeySpec" />
-		<method name="&lt;init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V" />
-		<method name="getG()Ljava/math/BigInteger;" />
-		<method name="getP()Ljava/math/BigInteger;" />
-		<method name="getX()Ljava/math/BigInteger;" />
-	</class>
-	<class name="javax/crypto/spec/DHPublicKeySpec" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/spec/KeySpec" />
-		<method name="&lt;init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V" />
-		<method name="getG()Ljava/math/BigInteger;" />
-		<method name="getP()Ljava/math/BigInteger;" />
-		<method name="getY()Ljava/math/BigInteger;" />
-	</class>
-	<class name="javax/crypto/spec/GCMParameterSpec" since="19">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/spec/AlgorithmParameterSpec" />
-		<method name="&lt;init>(I[B)V" />
-		<method name="&lt;init>(I[BII)V" />
-		<method name="getIV()[B" />
-		<method name="getTLen()I" />
-	</class>
-	<class name="javax/crypto/spec/IvParameterSpec" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/spec/AlgorithmParameterSpec" />
-		<method name="&lt;init>([B)V" />
-		<method name="&lt;init>([BII)V" />
-		<method name="getIV()[B" />
-	</class>
-	<class name="javax/crypto/spec/OAEPParameterSpec" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/spec/AlgorithmParameterSpec" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/security/spec/AlgorithmParameterSpec;Ljavax/crypto/spec/PSource;)V" />
-		<method name="getDigestAlgorithm()Ljava/lang/String;" />
-		<method name="getMGFAlgorithm()Ljava/lang/String;" />
-		<method name="getMGFParameters()Ljava/security/spec/AlgorithmParameterSpec;" />
-		<method name="getPSource()Ljavax/crypto/spec/PSource;" />
-		<field name="DEFAULT" />
-	</class>
-	<class name="javax/crypto/spec/PBEKeySpec" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/spec/KeySpec" />
-		<method name="&lt;init>([C)V" />
-		<method name="&lt;init>([C[BI)V" />
-		<method name="&lt;init>([C[BII)V" />
-		<method name="clearPassword()V" />
-		<method name="getIterationCount()I" />
-		<method name="getKeyLength()I" />
-		<method name="getPassword()[C" />
-		<method name="getSalt()[B" />
-	</class>
-	<class name="javax/crypto/spec/PBEParameterSpec" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/spec/AlgorithmParameterSpec" />
-		<method name="&lt;init>([BI)V" />
-		<method name="getIterationCount()I" />
-		<method name="getSalt()[B" />
-	</class>
-	<class name="javax/crypto/spec/PSource" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="getAlgorithm()Ljava/lang/String;" />
-	</class>
-	<class name="javax/crypto/spec/PSource$PSpecified" since="1">
-		<extends name="javax/crypto/spec/PSource" />
-		<method name="&lt;init>([B)V" />
-		<method name="getValue()[B" />
-		<field name="DEFAULT" />
-	</class>
-	<class name="javax/crypto/spec/RC2ParameterSpec" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/spec/AlgorithmParameterSpec" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(I[B)V" />
-		<method name="&lt;init>(I[BI)V" />
-		<method name="getEffectiveKeyBits()I" />
-		<method name="getIV()[B" />
-	</class>
-	<class name="javax/crypto/spec/RC5ParameterSpec" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/spec/AlgorithmParameterSpec" />
-		<method name="&lt;init>(III)V" />
-		<method name="&lt;init>(III[B)V" />
-		<method name="&lt;init>(III[BI)V" />
-		<method name="getIV()[B" />
-		<method name="getRounds()I" />
-		<method name="getVersion()I" />
-		<method name="getWordSize()I" />
-	</class>
-	<class name="javax/crypto/spec/SecretKeySpec" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/security/spec/KeySpec" />
-		<implements name="javax/crypto/SecretKey" />
-		<method name="&lt;init>([BIILjava/lang/String;)V" />
-		<method name="&lt;init>([BLjava/lang/String;)V" />
-	</class>
-	<class name="javax/microedition/khronos/egl/EGL" since="1">
-		<extends name="java/lang/Object" />
-	</class>
-	<class name="javax/microedition/khronos/egl/EGL10" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="javax/microedition/khronos/egl/EGL" />
-		<method name="eglChooseConfig(Ljavax/microedition/khronos/egl/EGLDisplay;[I[Ljavax/microedition/khronos/egl/EGLConfig;I[I)Z" />
-		<method name="eglCopyBuffers(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLSurface;Ljava/lang/Object;)Z" />
-		<method name="eglCreateContext(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;Ljavax/microedition/khronos/egl/EGLContext;[I)Ljavax/microedition/khronos/egl/EGLContext;" />
-		<method name="eglCreatePbufferSurface(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;[I)Ljavax/microedition/khronos/egl/EGLSurface;" />
-		<method name="eglCreatePixmapSurface(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;Ljava/lang/Object;[I)Ljavax/microedition/khronos/egl/EGLSurface;" />
-		<method name="eglCreateWindowSurface(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;Ljava/lang/Object;[I)Ljavax/microedition/khronos/egl/EGLSurface;" />
-		<method name="eglDestroyContext(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLContext;)Z" />
-		<method name="eglDestroySurface(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLSurface;)Z" />
-		<method name="eglGetConfigAttrib(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;I[I)Z" />
-		<method name="eglGetConfigs(Ljavax/microedition/khronos/egl/EGLDisplay;[Ljavax/microedition/khronos/egl/EGLConfig;I[I)Z" />
-		<method name="eglGetCurrentContext()Ljavax/microedition/khronos/egl/EGLContext;" />
-		<method name="eglGetCurrentDisplay()Ljavax/microedition/khronos/egl/EGLDisplay;" />
-		<method name="eglGetCurrentSurface(I)Ljavax/microedition/khronos/egl/EGLSurface;" />
-		<method name="eglGetDisplay(Ljava/lang/Object;)Ljavax/microedition/khronos/egl/EGLDisplay;" />
-		<method name="eglGetError()I" />
-		<method name="eglInitialize(Ljavax/microedition/khronos/egl/EGLDisplay;[I)Z" />
-		<method name="eglMakeCurrent(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLSurface;Ljavax/microedition/khronos/egl/EGLSurface;Ljavax/microedition/khronos/egl/EGLContext;)Z" />
-		<method name="eglQueryContext(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLContext;I[I)Z" />
-		<method name="eglQueryString(Ljavax/microedition/khronos/egl/EGLDisplay;I)Ljava/lang/String;" />
-		<method name="eglQuerySurface(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLSurface;I[I)Z" />
-		<method name="eglSwapBuffers(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLSurface;)Z" />
-		<method name="eglTerminate(Ljavax/microedition/khronos/egl/EGLDisplay;)Z" />
-		<method name="eglWaitGL()Z" />
-		<method name="eglWaitNative(ILjava/lang/Object;)Z" />
-		<field name="EGL_ALPHA_FORMAT" />
-		<field name="EGL_ALPHA_MASK_SIZE" />
-		<field name="EGL_ALPHA_SIZE" />
-		<field name="EGL_BAD_ACCESS" />
-		<field name="EGL_BAD_ALLOC" />
-		<field name="EGL_BAD_ATTRIBUTE" />
-		<field name="EGL_BAD_CONFIG" />
-		<field name="EGL_BAD_CONTEXT" />
-		<field name="EGL_BAD_CURRENT_SURFACE" />
-		<field name="EGL_BAD_DISPLAY" />
-		<field name="EGL_BAD_MATCH" />
-		<field name="EGL_BAD_NATIVE_PIXMAP" />
-		<field name="EGL_BAD_NATIVE_WINDOW" />
-		<field name="EGL_BAD_PARAMETER" />
-		<field name="EGL_BAD_SURFACE" />
-		<field name="EGL_BLUE_SIZE" />
-		<field name="EGL_BUFFER_SIZE" />
-		<field name="EGL_COLORSPACE" />
-		<field name="EGL_COLOR_BUFFER_TYPE" />
-		<field name="EGL_CONFIG_CAVEAT" />
-		<field name="EGL_CONFIG_ID" />
-		<field name="EGL_CORE_NATIVE_ENGINE" />
-		<field name="EGL_DEFAULT_DISPLAY" />
-		<field name="EGL_DEPTH_SIZE" />
-		<field name="EGL_DONT_CARE" />
-		<field name="EGL_DRAW" />
-		<field name="EGL_EXTENSIONS" />
-		<field name="EGL_GREEN_SIZE" />
-		<field name="EGL_HEIGHT" />
-		<field name="EGL_HORIZONTAL_RESOLUTION" />
-		<field name="EGL_LARGEST_PBUFFER" />
-		<field name="EGL_LEVEL" />
-		<field name="EGL_LUMINANCE_BUFFER" />
-		<field name="EGL_LUMINANCE_SIZE" />
-		<field name="EGL_MAX_PBUFFER_HEIGHT" />
-		<field name="EGL_MAX_PBUFFER_PIXELS" />
-		<field name="EGL_MAX_PBUFFER_WIDTH" />
-		<field name="EGL_NATIVE_RENDERABLE" />
-		<field name="EGL_NATIVE_VISUAL_ID" />
-		<field name="EGL_NATIVE_VISUAL_TYPE" />
-		<field name="EGL_NONE" />
-		<field name="EGL_NON_CONFORMANT_CONFIG" />
-		<field name="EGL_NOT_INITIALIZED" />
-		<field name="EGL_NO_CONTEXT" />
-		<field name="EGL_NO_DISPLAY" />
-		<field name="EGL_NO_SURFACE" />
-		<field name="EGL_PBUFFER_BIT" />
-		<field name="EGL_PIXEL_ASPECT_RATIO" />
-		<field name="EGL_PIXMAP_BIT" />
-		<field name="EGL_READ" />
-		<field name="EGL_RED_SIZE" />
-		<field name="EGL_RENDERABLE_TYPE" />
-		<field name="EGL_RENDER_BUFFER" />
-		<field name="EGL_RGB_BUFFER" />
-		<field name="EGL_SAMPLES" />
-		<field name="EGL_SAMPLE_BUFFERS" />
-		<field name="EGL_SINGLE_BUFFER" />
-		<field name="EGL_SLOW_CONFIG" />
-		<field name="EGL_STENCIL_SIZE" />
-		<field name="EGL_SUCCESS" />
-		<field name="EGL_SURFACE_TYPE" />
-		<field name="EGL_TRANSPARENT_BLUE_VALUE" />
-		<field name="EGL_TRANSPARENT_GREEN_VALUE" />
-		<field name="EGL_TRANSPARENT_RED_VALUE" />
-		<field name="EGL_TRANSPARENT_RGB" />
-		<field name="EGL_TRANSPARENT_TYPE" />
-		<field name="EGL_VENDOR" />
-		<field name="EGL_VERSION" />
-		<field name="EGL_VERTICAL_RESOLUTION" />
-		<field name="EGL_WIDTH" />
-		<field name="EGL_WINDOW_BIT" />
-	</class>
-	<class name="javax/microedition/khronos/egl/EGL11" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="javax/microedition/khronos/egl/EGL10" />
-		<field name="EGL_CONTEXT_LOST" />
-	</class>
-	<class name="javax/microedition/khronos/egl/EGLConfig" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="javax/microedition/khronos/egl/EGLContext" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getEGL()Ljavax/microedition/khronos/egl/EGL;" />
-		<method name="getGL()Ljavax/microedition/khronos/opengles/GL;" />
-	</class>
-	<class name="javax/microedition/khronos/egl/EGLDisplay" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="javax/microedition/khronos/egl/EGLSurface" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="javax/microedition/khronos/opengles/GL" since="1">
-		<extends name="java/lang/Object" />
-	</class>
-	<class name="javax/microedition/khronos/opengles/GL10" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="javax/microedition/khronos/opengles/GL" />
-		<method name="glActiveTexture(I)V" />
-		<method name="glAlphaFunc(IF)V" />
-		<method name="glAlphaFuncx(II)V" />
-		<method name="glBindTexture(II)V" />
-		<method name="glBlendFunc(II)V" />
-		<method name="glClear(I)V" />
-		<method name="glClearColor(FFFF)V" />
-		<method name="glClearColorx(IIII)V" />
-		<method name="glClearDepthf(F)V" />
-		<method name="glClearDepthx(I)V" />
-		<method name="glClearStencil(I)V" />
-		<method name="glClientActiveTexture(I)V" />
-		<method name="glColor4f(FFFF)V" />
-		<method name="glColor4x(IIII)V" />
-		<method name="glColorMask(ZZZZ)V" />
-		<method name="glColorPointer(IIILjava/nio/Buffer;)V" />
-		<method name="glCompressedTexImage2D(IIIIIIILjava/nio/Buffer;)V" />
-		<method name="glCompressedTexSubImage2D(IIIIIIIILjava/nio/Buffer;)V" />
-		<method name="glCopyTexImage2D(IIIIIIII)V" />
-		<method name="glCopyTexSubImage2D(IIIIIIII)V" />
-		<method name="glCullFace(I)V" />
-		<method name="glDeleteTextures(ILjava/nio/IntBuffer;)V" />
-		<method name="glDeleteTextures(I[II)V" />
-		<method name="glDepthFunc(I)V" />
-		<method name="glDepthMask(Z)V" />
-		<method name="glDepthRangef(FF)V" />
-		<method name="glDepthRangex(II)V" />
-		<method name="glDisable(I)V" />
-		<method name="glDisableClientState(I)V" />
-		<method name="glDrawArrays(III)V" />
-		<method name="glDrawElements(IIILjava/nio/Buffer;)V" />
-		<method name="glEnable(I)V" />
-		<method name="glEnableClientState(I)V" />
-		<method name="glFinish()V" />
-		<method name="glFlush()V" />
-		<method name="glFogf(IF)V" />
-		<method name="glFogfv(ILjava/nio/FloatBuffer;)V" />
-		<method name="glFogfv(I[FI)V" />
-		<method name="glFogx(II)V" />
-		<method name="glFogxv(ILjava/nio/IntBuffer;)V" />
-		<method name="glFogxv(I[II)V" />
-		<method name="glFrontFace(I)V" />
-		<method name="glFrustumf(FFFFFF)V" />
-		<method name="glFrustumx(IIIIII)V" />
-		<method name="glGenTextures(ILjava/nio/IntBuffer;)V" />
-		<method name="glGenTextures(I[II)V" />
-		<method name="glGetError()I" />
-		<method name="glGetIntegerv(ILjava/nio/IntBuffer;)V" />
-		<method name="glGetIntegerv(I[II)V" />
-		<method name="glGetString(I)Ljava/lang/String;" />
-		<method name="glHint(II)V" />
-		<method name="glLightModelf(IF)V" />
-		<method name="glLightModelfv(ILjava/nio/FloatBuffer;)V" />
-		<method name="glLightModelfv(I[FI)V" />
-		<method name="glLightModelx(II)V" />
-		<method name="glLightModelxv(ILjava/nio/IntBuffer;)V" />
-		<method name="glLightModelxv(I[II)V" />
-		<method name="glLightf(IIF)V" />
-		<method name="glLightfv(IILjava/nio/FloatBuffer;)V" />
-		<method name="glLightfv(II[FI)V" />
-		<method name="glLightx(III)V" />
-		<method name="glLightxv(IILjava/nio/IntBuffer;)V" />
-		<method name="glLightxv(II[II)V" />
-		<method name="glLineWidth(F)V" />
-		<method name="glLineWidthx(I)V" />
-		<method name="glLoadIdentity()V" />
-		<method name="glLoadMatrixf(Ljava/nio/FloatBuffer;)V" />
-		<method name="glLoadMatrixf([FI)V" />
-		<method name="glLoadMatrixx(Ljava/nio/IntBuffer;)V" />
-		<method name="glLoadMatrixx([II)V" />
-		<method name="glLogicOp(I)V" />
-		<method name="glMaterialf(IIF)V" />
-		<method name="glMaterialfv(IILjava/nio/FloatBuffer;)V" />
-		<method name="glMaterialfv(II[FI)V" />
-		<method name="glMaterialx(III)V" />
-		<method name="glMaterialxv(IILjava/nio/IntBuffer;)V" />
-		<method name="glMaterialxv(II[II)V" />
-		<method name="glMatrixMode(I)V" />
-		<method name="glMultMatrixf(Ljava/nio/FloatBuffer;)V" />
-		<method name="glMultMatrixf([FI)V" />
-		<method name="glMultMatrixx(Ljava/nio/IntBuffer;)V" />
-		<method name="glMultMatrixx([II)V" />
-		<method name="glMultiTexCoord4f(IFFFF)V" />
-		<method name="glMultiTexCoord4x(IIIII)V" />
-		<method name="glNormal3f(FFF)V" />
-		<method name="glNormal3x(III)V" />
-		<method name="glNormalPointer(IILjava/nio/Buffer;)V" />
-		<method name="glOrthof(FFFFFF)V" />
-		<method name="glOrthox(IIIIII)V" />
-		<method name="glPixelStorei(II)V" />
-		<method name="glPointSize(F)V" />
-		<method name="glPointSizex(I)V" />
-		<method name="glPolygonOffset(FF)V" />
-		<method name="glPolygonOffsetx(II)V" />
-		<method name="glPopMatrix()V" />
-		<method name="glPushMatrix()V" />
-		<method name="glReadPixels(IIIIIILjava/nio/Buffer;)V" />
-		<method name="glRotatef(FFFF)V" />
-		<method name="glRotatex(IIII)V" />
-		<method name="glSampleCoverage(FZ)V" />
-		<method name="glSampleCoveragex(IZ)V" />
-		<method name="glScalef(FFF)V" />
-		<method name="glScalex(III)V" />
-		<method name="glScissor(IIII)V" />
-		<method name="glShadeModel(I)V" />
-		<method name="glStencilFunc(III)V" />
-		<method name="glStencilMask(I)V" />
-		<method name="glStencilOp(III)V" />
-		<method name="glTexCoordPointer(IIILjava/nio/Buffer;)V" />
-		<method name="glTexEnvf(IIF)V" />
-		<method name="glTexEnvfv(IILjava/nio/FloatBuffer;)V" />
-		<method name="glTexEnvfv(II[FI)V" />
-		<method name="glTexEnvx(III)V" />
-		<method name="glTexEnvxv(IILjava/nio/IntBuffer;)V" />
-		<method name="glTexEnvxv(II[II)V" />
-		<method name="glTexImage2D(IIIIIIIILjava/nio/Buffer;)V" />
-		<method name="glTexParameterf(IIF)V" />
-		<method name="glTexParameterx(III)V" />
-		<method name="glTexSubImage2D(IIIIIIIILjava/nio/Buffer;)V" />
-		<method name="glTranslatef(FFF)V" />
-		<method name="glTranslatex(III)V" />
-		<method name="glVertexPointer(IIILjava/nio/Buffer;)V" />
-		<method name="glViewport(IIII)V" />
-		<field name="GL_ADD" />
-		<field name="GL_ALIASED_LINE_WIDTH_RANGE" />
-		<field name="GL_ALIASED_POINT_SIZE_RANGE" />
-		<field name="GL_ALPHA" />
-		<field name="GL_ALPHA_BITS" />
-		<field name="GL_ALPHA_TEST" />
-		<field name="GL_ALWAYS" />
-		<field name="GL_AMBIENT" />
-		<field name="GL_AMBIENT_AND_DIFFUSE" />
-		<field name="GL_AND" />
-		<field name="GL_AND_INVERTED" />
-		<field name="GL_AND_REVERSE" />
-		<field name="GL_BACK" />
-		<field name="GL_BLEND" />
-		<field name="GL_BLUE_BITS" />
-		<field name="GL_BYTE" />
-		<field name="GL_CCW" />
-		<field name="GL_CLAMP_TO_EDGE" />
-		<field name="GL_CLEAR" />
-		<field name="GL_COLOR_ARRAY" />
-		<field name="GL_COLOR_BUFFER_BIT" />
-		<field name="GL_COLOR_LOGIC_OP" />
-		<field name="GL_COLOR_MATERIAL" />
-		<field name="GL_COMPRESSED_TEXTURE_FORMATS" />
-		<field name="GL_CONSTANT_ATTENUATION" />
-		<field name="GL_COPY" />
-		<field name="GL_COPY_INVERTED" />
-		<field name="GL_CULL_FACE" />
-		<field name="GL_CW" />
-		<field name="GL_DECAL" />
-		<field name="GL_DECR" />
-		<field name="GL_DEPTH_BITS" />
-		<field name="GL_DEPTH_BUFFER_BIT" />
-		<field name="GL_DEPTH_TEST" />
-		<field name="GL_DIFFUSE" />
-		<field name="GL_DITHER" />
-		<field name="GL_DONT_CARE" />
-		<field name="GL_DST_ALPHA" />
-		<field name="GL_DST_COLOR" />
-		<field name="GL_EMISSION" />
-		<field name="GL_EQUAL" />
-		<field name="GL_EQUIV" />
-		<field name="GL_EXP" />
-		<field name="GL_EXP2" />
-		<field name="GL_EXTENSIONS" />
-		<field name="GL_FALSE" />
-		<field name="GL_FASTEST" />
-		<field name="GL_FIXED" />
-		<field name="GL_FLAT" />
-		<field name="GL_FLOAT" />
-		<field name="GL_FOG" />
-		<field name="GL_FOG_COLOR" />
-		<field name="GL_FOG_DENSITY" />
-		<field name="GL_FOG_END" />
-		<field name="GL_FOG_HINT" />
-		<field name="GL_FOG_MODE" />
-		<field name="GL_FOG_START" />
-		<field name="GL_FRONT" />
-		<field name="GL_FRONT_AND_BACK" />
-		<field name="GL_GEQUAL" />
-		<field name="GL_GREATER" />
-		<field name="GL_GREEN_BITS" />
-		<field name="GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES" />
-		<field name="GL_IMPLEMENTATION_COLOR_READ_TYPE_OES" />
-		<field name="GL_INCR" />
-		<field name="GL_INVALID_ENUM" />
-		<field name="GL_INVALID_OPERATION" />
-		<field name="GL_INVALID_VALUE" />
-		<field name="GL_INVERT" />
-		<field name="GL_KEEP" />
-		<field name="GL_LEQUAL" />
-		<field name="GL_LESS" />
-		<field name="GL_LIGHT0" />
-		<field name="GL_LIGHT1" />
-		<field name="GL_LIGHT2" />
-		<field name="GL_LIGHT3" />
-		<field name="GL_LIGHT4" />
-		<field name="GL_LIGHT5" />
-		<field name="GL_LIGHT6" />
-		<field name="GL_LIGHT7" />
-		<field name="GL_LIGHTING" />
-		<field name="GL_LIGHT_MODEL_AMBIENT" />
-		<field name="GL_LIGHT_MODEL_TWO_SIDE" />
-		<field name="GL_LINEAR" />
-		<field name="GL_LINEAR_ATTENUATION" />
-		<field name="GL_LINEAR_MIPMAP_LINEAR" />
-		<field name="GL_LINEAR_MIPMAP_NEAREST" />
-		<field name="GL_LINES" />
-		<field name="GL_LINE_LOOP" />
-		<field name="GL_LINE_SMOOTH" />
-		<field name="GL_LINE_SMOOTH_HINT" />
-		<field name="GL_LINE_STRIP" />
-		<field name="GL_LUMINANCE" />
-		<field name="GL_LUMINANCE_ALPHA" />
-		<field name="GL_MAX_ELEMENTS_INDICES" />
-		<field name="GL_MAX_ELEMENTS_VERTICES" />
-		<field name="GL_MAX_LIGHTS" />
-		<field name="GL_MAX_MODELVIEW_STACK_DEPTH" />
-		<field name="GL_MAX_PROJECTION_STACK_DEPTH" />
-		<field name="GL_MAX_TEXTURE_SIZE" />
-		<field name="GL_MAX_TEXTURE_STACK_DEPTH" />
-		<field name="GL_MAX_TEXTURE_UNITS" />
-		<field name="GL_MAX_VIEWPORT_DIMS" />
-		<field name="GL_MODELVIEW" />
-		<field name="GL_MODULATE" />
-		<field name="GL_MULTISAMPLE" />
-		<field name="GL_NAND" />
-		<field name="GL_NEAREST" />
-		<field name="GL_NEAREST_MIPMAP_LINEAR" />
-		<field name="GL_NEAREST_MIPMAP_NEAREST" />
-		<field name="GL_NEVER" />
-		<field name="GL_NICEST" />
-		<field name="GL_NOOP" />
-		<field name="GL_NOR" />
-		<field name="GL_NORMALIZE" />
-		<field name="GL_NORMAL_ARRAY" />
-		<field name="GL_NOTEQUAL" />
-		<field name="GL_NO_ERROR" />
-		<field name="GL_NUM_COMPRESSED_TEXTURE_FORMATS" />
-		<field name="GL_ONE" />
-		<field name="GL_ONE_MINUS_DST_ALPHA" />
-		<field name="GL_ONE_MINUS_DST_COLOR" />
-		<field name="GL_ONE_MINUS_SRC_ALPHA" />
-		<field name="GL_ONE_MINUS_SRC_COLOR" />
-		<field name="GL_OR" />
-		<field name="GL_OR_INVERTED" />
-		<field name="GL_OR_REVERSE" />
-		<field name="GL_OUT_OF_MEMORY" />
-		<field name="GL_PACK_ALIGNMENT" />
-		<field name="GL_PALETTE4_R5_G6_B5_OES" />
-		<field name="GL_PALETTE4_RGB5_A1_OES" />
-		<field name="GL_PALETTE4_RGB8_OES" />
-		<field name="GL_PALETTE4_RGBA4_OES" />
-		<field name="GL_PALETTE4_RGBA8_OES" />
-		<field name="GL_PALETTE8_R5_G6_B5_OES" />
-		<field name="GL_PALETTE8_RGB5_A1_OES" />
-		<field name="GL_PALETTE8_RGB8_OES" />
-		<field name="GL_PALETTE8_RGBA4_OES" />
-		<field name="GL_PALETTE8_RGBA8_OES" />
-		<field name="GL_PERSPECTIVE_CORRECTION_HINT" />
-		<field name="GL_POINTS" />
-		<field name="GL_POINT_FADE_THRESHOLD_SIZE" />
-		<field name="GL_POINT_SIZE" />
-		<field name="GL_POINT_SMOOTH" />
-		<field name="GL_POINT_SMOOTH_HINT" />
-		<field name="GL_POLYGON_OFFSET_FILL" />
-		<field name="GL_POLYGON_SMOOTH_HINT" />
-		<field name="GL_POSITION" />
-		<field name="GL_PROJECTION" />
-		<field name="GL_QUADRATIC_ATTENUATION" />
-		<field name="GL_RED_BITS" />
-		<field name="GL_RENDERER" />
-		<field name="GL_REPEAT" />
-		<field name="GL_REPLACE" />
-		<field name="GL_RESCALE_NORMAL" />
-		<field name="GL_RGB" />
-		<field name="GL_RGBA" />
-		<field name="GL_SAMPLE_ALPHA_TO_COVERAGE" />
-		<field name="GL_SAMPLE_ALPHA_TO_ONE" />
-		<field name="GL_SAMPLE_COVERAGE" />
-		<field name="GL_SCISSOR_TEST" />
-		<field name="GL_SET" />
-		<field name="GL_SHININESS" />
-		<field name="GL_SHORT" />
-		<field name="GL_SMOOTH" />
-		<field name="GL_SMOOTH_LINE_WIDTH_RANGE" />
-		<field name="GL_SMOOTH_POINT_SIZE_RANGE" />
-		<field name="GL_SPECULAR" />
-		<field name="GL_SPOT_CUTOFF" />
-		<field name="GL_SPOT_DIRECTION" />
-		<field name="GL_SPOT_EXPONENT" />
-		<field name="GL_SRC_ALPHA" />
-		<field name="GL_SRC_ALPHA_SATURATE" />
-		<field name="GL_SRC_COLOR" />
-		<field name="GL_STACK_OVERFLOW" />
-		<field name="GL_STACK_UNDERFLOW" />
-		<field name="GL_STENCIL_BITS" />
-		<field name="GL_STENCIL_BUFFER_BIT" />
-		<field name="GL_STENCIL_TEST" />
-		<field name="GL_SUBPIXEL_BITS" />
-		<field name="GL_TEXTURE" />
-		<field name="GL_TEXTURE0" />
-		<field name="GL_TEXTURE1" />
-		<field name="GL_TEXTURE10" />
-		<field name="GL_TEXTURE11" />
-		<field name="GL_TEXTURE12" />
-		<field name="GL_TEXTURE13" />
-		<field name="GL_TEXTURE14" />
-		<field name="GL_TEXTURE15" />
-		<field name="GL_TEXTURE16" />
-		<field name="GL_TEXTURE17" />
-		<field name="GL_TEXTURE18" />
-		<field name="GL_TEXTURE19" />
-		<field name="GL_TEXTURE2" />
-		<field name="GL_TEXTURE20" />
-		<field name="GL_TEXTURE21" />
-		<field name="GL_TEXTURE22" />
-		<field name="GL_TEXTURE23" />
-		<field name="GL_TEXTURE24" />
-		<field name="GL_TEXTURE25" />
-		<field name="GL_TEXTURE26" />
-		<field name="GL_TEXTURE27" />
-		<field name="GL_TEXTURE28" />
-		<field name="GL_TEXTURE29" />
-		<field name="GL_TEXTURE3" />
-		<field name="GL_TEXTURE30" />
-		<field name="GL_TEXTURE31" />
-		<field name="GL_TEXTURE4" />
-		<field name="GL_TEXTURE5" />
-		<field name="GL_TEXTURE6" />
-		<field name="GL_TEXTURE7" />
-		<field name="GL_TEXTURE8" />
-		<field name="GL_TEXTURE9" />
-		<field name="GL_TEXTURE_2D" />
-		<field name="GL_TEXTURE_COORD_ARRAY" />
-		<field name="GL_TEXTURE_ENV" />
-		<field name="GL_TEXTURE_ENV_COLOR" />
-		<field name="GL_TEXTURE_ENV_MODE" />
-		<field name="GL_TEXTURE_MAG_FILTER" />
-		<field name="GL_TEXTURE_MIN_FILTER" />
-		<field name="GL_TEXTURE_WRAP_S" />
-		<field name="GL_TEXTURE_WRAP_T" />
-		<field name="GL_TRIANGLES" />
-		<field name="GL_TRIANGLE_FAN" />
-		<field name="GL_TRIANGLE_STRIP" />
-		<field name="GL_TRUE" />
-		<field name="GL_UNPACK_ALIGNMENT" />
-		<field name="GL_UNSIGNED_BYTE" />
-		<field name="GL_UNSIGNED_SHORT" />
-		<field name="GL_UNSIGNED_SHORT_4_4_4_4" />
-		<field name="GL_UNSIGNED_SHORT_5_5_5_1" />
-		<field name="GL_UNSIGNED_SHORT_5_6_5" />
-		<field name="GL_VENDOR" />
-		<field name="GL_VERSION" />
-		<field name="GL_VERTEX_ARRAY" />
-		<field name="GL_XOR" />
-		<field name="GL_ZERO" />
-	</class>
-	<class name="javax/microedition/khronos/opengles/GL10Ext" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="javax/microedition/khronos/opengles/GL" />
-		<method name="glQueryMatrixxOES(Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;)I" />
-		<method name="glQueryMatrixxOES([II[II)I" />
-	</class>
-	<class name="javax/microedition/khronos/opengles/GL11" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="javax/microedition/khronos/opengles/GL10" />
-		<method name="glBindBuffer(II)V" />
-		<method name="glBufferData(IILjava/nio/Buffer;I)V" />
-		<method name="glBufferSubData(IIILjava/nio/Buffer;)V" />
-		<method name="glClipPlanef(ILjava/nio/FloatBuffer;)V" />
-		<method name="glClipPlanef(I[FI)V" />
-		<method name="glClipPlanex(ILjava/nio/IntBuffer;)V" />
-		<method name="glClipPlanex(I[II)V" />
-		<method name="glColor4ub(BBBB)V" />
-		<method name="glColorPointer(IIII)V" />
-		<method name="glDeleteBuffers(ILjava/nio/IntBuffer;)V" />
-		<method name="glDeleteBuffers(I[II)V" />
-		<method name="glDrawElements(IIII)V" />
-		<method name="glGenBuffers(ILjava/nio/IntBuffer;)V" />
-		<method name="glGenBuffers(I[II)V" />
-		<method name="glGetBooleanv(ILjava/nio/IntBuffer;)V" />
-		<method name="glGetBooleanv(I[ZI)V" />
-		<method name="glGetBufferParameteriv(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetBufferParameteriv(II[II)V" />
-		<method name="glGetClipPlanef(ILjava/nio/FloatBuffer;)V" />
-		<method name="glGetClipPlanef(I[FI)V" />
-		<method name="glGetClipPlanex(ILjava/nio/IntBuffer;)V" />
-		<method name="glGetClipPlanex(I[II)V" />
-		<method name="glGetFixedv(ILjava/nio/IntBuffer;)V" />
-		<method name="glGetFixedv(I[II)V" />
-		<method name="glGetFloatv(ILjava/nio/FloatBuffer;)V" />
-		<method name="glGetFloatv(I[FI)V" />
-		<method name="glGetLightfv(IILjava/nio/FloatBuffer;)V" />
-		<method name="glGetLightfv(II[FI)V" />
-		<method name="glGetLightxv(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetLightxv(II[II)V" />
-		<method name="glGetMaterialfv(IILjava/nio/FloatBuffer;)V" />
-		<method name="glGetMaterialfv(II[FI)V" />
-		<method name="glGetMaterialxv(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetMaterialxv(II[II)V" />
-		<method name="glGetPointerv(I[Ljava/nio/Buffer;)V" />
-		<method name="glGetTexEnviv(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetTexEnviv(II[II)V" />
-		<method name="glGetTexEnvxv(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetTexEnvxv(II[II)V" />
-		<method name="glGetTexParameterfv(IILjava/nio/FloatBuffer;)V" />
-		<method name="glGetTexParameterfv(II[FI)V" />
-		<method name="glGetTexParameteriv(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetTexParameteriv(II[II)V" />
-		<method name="glGetTexParameterxv(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetTexParameterxv(II[II)V" />
-		<method name="glIsBuffer(I)Z" />
-		<method name="glIsEnabled(I)Z" />
-		<method name="glIsTexture(I)Z" />
-		<method name="glNormalPointer(III)V" />
-		<method name="glPointParameterf(IF)V" />
-		<method name="glPointParameterfv(ILjava/nio/FloatBuffer;)V" />
-		<method name="glPointParameterfv(I[FI)V" />
-		<method name="glPointParameterx(II)V" />
-		<method name="glPointParameterxv(ILjava/nio/IntBuffer;)V" />
-		<method name="glPointParameterxv(I[II)V" />
-		<method name="glPointSizePointerOES(IILjava/nio/Buffer;)V" />
-		<method name="glTexCoordPointer(IIII)V" />
-		<method name="glTexEnvi(III)V" />
-		<method name="glTexEnviv(IILjava/nio/IntBuffer;)V" />
-		<method name="glTexEnviv(II[II)V" />
-		<method name="glTexParameterfv(IILjava/nio/FloatBuffer;)V" />
-		<method name="glTexParameterfv(II[FI)V" />
-		<method name="glTexParameteri(III)V" />
-		<method name="glTexParameteriv(IILjava/nio/IntBuffer;)V" />
-		<method name="glTexParameteriv(II[II)V" />
-		<method name="glTexParameterxv(IILjava/nio/IntBuffer;)V" />
-		<method name="glTexParameterxv(II[II)V" />
-		<method name="glVertexPointer(IIII)V" />
-		<field name="GL_ACTIVE_TEXTURE" />
-		<field name="GL_ADD_SIGNED" />
-		<field name="GL_ALPHA_SCALE" />
-		<field name="GL_ALPHA_TEST_FUNC" />
-		<field name="GL_ALPHA_TEST_REF" />
-		<field name="GL_ARRAY_BUFFER" />
-		<field name="GL_ARRAY_BUFFER_BINDING" />
-		<field name="GL_BLEND_DST" />
-		<field name="GL_BLEND_SRC" />
-		<field name="GL_BUFFER_ACCESS" />
-		<field name="GL_BUFFER_SIZE" />
-		<field name="GL_BUFFER_USAGE" />
-		<field name="GL_CLIENT_ACTIVE_TEXTURE" />
-		<field name="GL_CLIP_PLANE0" />
-		<field name="GL_CLIP_PLANE1" />
-		<field name="GL_CLIP_PLANE2" />
-		<field name="GL_CLIP_PLANE3" />
-		<field name="GL_CLIP_PLANE4" />
-		<field name="GL_CLIP_PLANE5" />
-		<field name="GL_COLOR_ARRAY_BUFFER_BINDING" />
-		<field name="GL_COLOR_ARRAY_POINTER" />
-		<field name="GL_COLOR_ARRAY_SIZE" />
-		<field name="GL_COLOR_ARRAY_STRIDE" />
-		<field name="GL_COLOR_ARRAY_TYPE" />
-		<field name="GL_COLOR_CLEAR_VALUE" />
-		<field name="GL_COLOR_WRITEMASK" />
-		<field name="GL_COMBINE" />
-		<field name="GL_COMBINE_ALPHA" />
-		<field name="GL_COMBINE_RGB" />
-		<field name="GL_CONSTANT" />
-		<field name="GL_COORD_REPLACE_OES" />
-		<field name="GL_CULL_FACE_MODE" />
-		<field name="GL_CURRENT_COLOR" />
-		<field name="GL_CURRENT_NORMAL" />
-		<field name="GL_CURRENT_TEXTURE_COORDS" />
-		<field name="GL_DEPTH_CLEAR_VALUE" />
-		<field name="GL_DEPTH_FUNC" />
-		<field name="GL_DEPTH_RANGE" />
-		<field name="GL_DEPTH_WRITEMASK" />
-		<field name="GL_DOT3_RGB" />
-		<field name="GL_DOT3_RGBA" />
-		<field name="GL_DYNAMIC_DRAW" />
-		<field name="GL_ELEMENT_ARRAY_BUFFER" />
-		<field name="GL_ELEMENT_ARRAY_BUFFER_BINDING" />
-		<field name="GL_FRONT_FACE" />
-		<field name="GL_GENERATE_MIPMAP" />
-		<field name="GL_GENERATE_MIPMAP_HINT" />
-		<field name="GL_INTERPOLATE" />
-		<field name="GL_LINE_WIDTH" />
-		<field name="GL_LOGIC_OP_MODE" />
-		<field name="GL_MATRIX_MODE" />
-		<field name="GL_MAX_CLIP_PLANES" />
-		<field name="GL_MODELVIEW_MATRIX" />
-		<field name="GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES" />
-		<field name="GL_MODELVIEW_STACK_DEPTH" />
-		<field name="GL_NORMAL_ARRAY_BUFFER_BINDING" />
-		<field name="GL_NORMAL_ARRAY_POINTER" />
-		<field name="GL_NORMAL_ARRAY_STRIDE" />
-		<field name="GL_NORMAL_ARRAY_TYPE" />
-		<field name="GL_OPERAND0_ALPHA" />
-		<field name="GL_OPERAND0_RGB" />
-		<field name="GL_OPERAND1_ALPHA" />
-		<field name="GL_OPERAND1_RGB" />
-		<field name="GL_OPERAND2_ALPHA" />
-		<field name="GL_OPERAND2_RGB" />
-		<field name="GL_POINT_DISTANCE_ATTENUATION" />
-		<field name="GL_POINT_FADE_THRESHOLD_SIZE" />
-		<field name="GL_POINT_SIZE" />
-		<field name="GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES" />
-		<field name="GL_POINT_SIZE_ARRAY_OES" />
-		<field name="GL_POINT_SIZE_ARRAY_POINTER_OES" />
-		<field name="GL_POINT_SIZE_ARRAY_STRIDE_OES" />
-		<field name="GL_POINT_SIZE_ARRAY_TYPE_OES" />
-		<field name="GL_POINT_SIZE_MAX" />
-		<field name="GL_POINT_SIZE_MIN" />
-		<field name="GL_POINT_SPRITE_OES" />
-		<field name="GL_POLYGON_OFFSET_FACTOR" />
-		<field name="GL_POLYGON_OFFSET_UNITS" />
-		<field name="GL_PREVIOUS" />
-		<field name="GL_PRIMARY_COLOR" />
-		<field name="GL_PROJECTION_MATRIX" />
-		<field name="GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES" />
-		<field name="GL_PROJECTION_STACK_DEPTH" />
-		<field name="GL_RGB_SCALE" />
-		<field name="GL_SAMPLES" />
-		<field name="GL_SAMPLE_BUFFERS" />
-		<field name="GL_SAMPLE_COVERAGE_INVERT" />
-		<field name="GL_SAMPLE_COVERAGE_VALUE" />
-		<field name="GL_SCISSOR_BOX" />
-		<field name="GL_SHADE_MODEL" />
-		<field name="GL_SRC0_ALPHA" />
-		<field name="GL_SRC0_RGB" />
-		<field name="GL_SRC1_ALPHA" />
-		<field name="GL_SRC1_RGB" />
-		<field name="GL_SRC2_ALPHA" />
-		<field name="GL_SRC2_RGB" />
-		<field name="GL_STATIC_DRAW" />
-		<field name="GL_STENCIL_CLEAR_VALUE" />
-		<field name="GL_STENCIL_FAIL" />
-		<field name="GL_STENCIL_FUNC" />
-		<field name="GL_STENCIL_PASS_DEPTH_FAIL" />
-		<field name="GL_STENCIL_PASS_DEPTH_PASS" />
-		<field name="GL_STENCIL_REF" />
-		<field name="GL_STENCIL_VALUE_MASK" />
-		<field name="GL_STENCIL_WRITEMASK" />
-		<field name="GL_SUBTRACT" />
-		<field name="GL_TEXTURE_BINDING_2D" />
-		<field name="GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING" />
-		<field name="GL_TEXTURE_COORD_ARRAY_POINTER" />
-		<field name="GL_TEXTURE_COORD_ARRAY_SIZE" />
-		<field name="GL_TEXTURE_COORD_ARRAY_STRIDE" />
-		<field name="GL_TEXTURE_COORD_ARRAY_TYPE" />
-		<field name="GL_TEXTURE_MATRIX" />
-		<field name="GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES" />
-		<field name="GL_TEXTURE_STACK_DEPTH" />
-		<field name="GL_VERTEX_ARRAY_BUFFER_BINDING" />
-		<field name="GL_VERTEX_ARRAY_POINTER" />
-		<field name="GL_VERTEX_ARRAY_SIZE" />
-		<field name="GL_VERTEX_ARRAY_STRIDE" />
-		<field name="GL_VERTEX_ARRAY_TYPE" />
-		<field name="GL_VIEWPORT" />
-		<field name="GL_WRITE_ONLY" />
-	</class>
-	<class name="javax/microedition/khronos/opengles/GL11Ext" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="javax/microedition/khronos/opengles/GL" />
-		<method name="glCurrentPaletteMatrixOES(I)V" />
-		<method name="glDrawTexfOES(FFFFF)V" />
-		<method name="glDrawTexfvOES(Ljava/nio/FloatBuffer;)V" />
-		<method name="glDrawTexfvOES([FI)V" />
-		<method name="glDrawTexiOES(IIIII)V" />
-		<method name="glDrawTexivOES(Ljava/nio/IntBuffer;)V" />
-		<method name="glDrawTexivOES([II)V" />
-		<method name="glDrawTexsOES(SSSSS)V" />
-		<method name="glDrawTexsvOES(Ljava/nio/ShortBuffer;)V" />
-		<method name="glDrawTexsvOES([SI)V" />
-		<method name="glDrawTexxOES(IIIII)V" />
-		<method name="glDrawTexxvOES(Ljava/nio/IntBuffer;)V" />
-		<method name="glDrawTexxvOES([II)V" />
-		<method name="glEnable(I)V" />
-		<method name="glEnableClientState(I)V" />
-		<method name="glLoadPaletteFromModelViewMatrixOES()V" />
-		<method name="glMatrixIndexPointerOES(IIII)V" />
-		<method name="glMatrixIndexPointerOES(IIILjava/nio/Buffer;)V" />
-		<method name="glTexParameterfv(II[FI)V" />
-		<method name="glWeightPointerOES(IIII)V" />
-		<method name="glWeightPointerOES(IIILjava/nio/Buffer;)V" />
-		<field name="GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES" />
-		<field name="GL_MATRIX_INDEX_ARRAY_OES" />
-		<field name="GL_MATRIX_INDEX_ARRAY_POINTER_OES" />
-		<field name="GL_MATRIX_INDEX_ARRAY_SIZE_OES" />
-		<field name="GL_MATRIX_INDEX_ARRAY_STRIDE_OES" />
-		<field name="GL_MATRIX_INDEX_ARRAY_TYPE_OES" />
-		<field name="GL_MATRIX_PALETTE_OES" />
-		<field name="GL_MAX_PALETTE_MATRICES_OES" />
-		<field name="GL_MAX_VERTEX_UNITS_OES" />
-		<field name="GL_TEXTURE_CROP_RECT_OES" />
-		<field name="GL_WEIGHT_ARRAY_BUFFER_BINDING_OES" />
-		<field name="GL_WEIGHT_ARRAY_OES" />
-		<field name="GL_WEIGHT_ARRAY_POINTER_OES" />
-		<field name="GL_WEIGHT_ARRAY_SIZE_OES" />
-		<field name="GL_WEIGHT_ARRAY_STRIDE_OES" />
-		<field name="GL_WEIGHT_ARRAY_TYPE_OES" />
-	</class>
-	<class name="javax/microedition/khronos/opengles/GL11ExtensionPack" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="javax/microedition/khronos/opengles/GL" />
-		<method name="glBindFramebufferOES(II)V" />
-		<method name="glBindRenderbufferOES(II)V" />
-		<method name="glBindTexture(II)V" />
-		<method name="glBlendEquation(I)V" />
-		<method name="glBlendEquationSeparate(II)V" />
-		<method name="glBlendFuncSeparate(IIII)V" />
-		<method name="glCheckFramebufferStatusOES(I)I" />
-		<method name="glCompressedTexImage2D(IIIIIIILjava/nio/Buffer;)V" />
-		<method name="glCopyTexImage2D(IIIIIIII)V" />
-		<method name="glDeleteFramebuffersOES(ILjava/nio/IntBuffer;)V" />
-		<method name="glDeleteFramebuffersOES(I[II)V" />
-		<method name="glDeleteRenderbuffersOES(ILjava/nio/IntBuffer;)V" />
-		<method name="glDeleteRenderbuffersOES(I[II)V" />
-		<method name="glEnable(I)V" />
-		<method name="glFramebufferRenderbufferOES(IIII)V" />
-		<method name="glFramebufferTexture2DOES(IIIII)V" />
-		<method name="glGenFramebuffersOES(ILjava/nio/IntBuffer;)V" />
-		<method name="glGenFramebuffersOES(I[II)V" />
-		<method name="glGenRenderbuffersOES(ILjava/nio/IntBuffer;)V" />
-		<method name="glGenRenderbuffersOES(I[II)V" />
-		<method name="glGenerateMipmapOES(I)V" />
-		<method name="glGetFramebufferAttachmentParameterivOES(IIILjava/nio/IntBuffer;)V" />
-		<method name="glGetFramebufferAttachmentParameterivOES(III[II)V" />
-		<method name="glGetIntegerv(ILjava/nio/IntBuffer;)V" />
-		<method name="glGetIntegerv(I[II)V" />
-		<method name="glGetRenderbufferParameterivOES(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetRenderbufferParameterivOES(II[II)V" />
-		<method name="glGetTexGenfv(IILjava/nio/FloatBuffer;)V" />
-		<method name="glGetTexGenfv(II[FI)V" />
-		<method name="glGetTexGeniv(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetTexGeniv(II[II)V" />
-		<method name="glGetTexGenxv(IILjava/nio/IntBuffer;)V" />
-		<method name="glGetTexGenxv(II[II)V" />
-		<method name="glIsFramebufferOES(I)Z" />
-		<method name="glIsRenderbufferOES(I)Z" />
-		<method name="glRenderbufferStorageOES(IIII)V" />
-		<method name="glStencilOp(III)V" />
-		<method name="glTexEnvf(IIF)V" />
-		<method name="glTexEnvfv(IILjava/nio/FloatBuffer;)V" />
-		<method name="glTexEnvfv(II[FI)V" />
-		<method name="glTexEnvx(III)V" />
-		<method name="glTexEnvxv(IILjava/nio/IntBuffer;)V" />
-		<method name="glTexEnvxv(II[II)V" />
-		<method name="glTexGenf(IIF)V" />
-		<method name="glTexGenfv(IILjava/nio/FloatBuffer;)V" />
-		<method name="glTexGenfv(II[FI)V" />
-		<method name="glTexGeni(III)V" />
-		<method name="glTexGeniv(IILjava/nio/IntBuffer;)V" />
-		<method name="glTexGeniv(II[II)V" />
-		<method name="glTexGenx(III)V" />
-		<method name="glTexGenxv(IILjava/nio/IntBuffer;)V" />
-		<method name="glTexGenxv(II[II)V" />
-		<method name="glTexParameterf(IIF)V" />
-		<field name="GL_BLEND_DST_ALPHA" />
-		<field name="GL_BLEND_DST_RGB" />
-		<field name="GL_BLEND_EQUATION" />
-		<field name="GL_BLEND_EQUATION_ALPHA" />
-		<field name="GL_BLEND_EQUATION_RGB" />
-		<field name="GL_BLEND_SRC_ALPHA" />
-		<field name="GL_BLEND_SRC_RGB" />
-		<field name="GL_COLOR_ATTACHMENT0_OES" />
-		<field name="GL_COLOR_ATTACHMENT10_OES" />
-		<field name="GL_COLOR_ATTACHMENT11_OES" />
-		<field name="GL_COLOR_ATTACHMENT12_OES" />
-		<field name="GL_COLOR_ATTACHMENT13_OES" />
-		<field name="GL_COLOR_ATTACHMENT14_OES" />
-		<field name="GL_COLOR_ATTACHMENT15_OES" />
-		<field name="GL_COLOR_ATTACHMENT1_OES" />
-		<field name="GL_COLOR_ATTACHMENT2_OES" />
-		<field name="GL_COLOR_ATTACHMENT3_OES" />
-		<field name="GL_COLOR_ATTACHMENT4_OES" />
-		<field name="GL_COLOR_ATTACHMENT5_OES" />
-		<field name="GL_COLOR_ATTACHMENT6_OES" />
-		<field name="GL_COLOR_ATTACHMENT7_OES" />
-		<field name="GL_COLOR_ATTACHMENT8_OES" />
-		<field name="GL_COLOR_ATTACHMENT9_OES" />
-		<field name="GL_DECR_WRAP" />
-		<field name="GL_DEPTH_ATTACHMENT_OES" />
-		<field name="GL_DEPTH_COMPONENT" />
-		<field name="GL_DEPTH_COMPONENT16" />
-		<field name="GL_DEPTH_COMPONENT24" />
-		<field name="GL_DEPTH_COMPONENT32" />
-		<field name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES" />
-		<field name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES" />
-		<field name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES" />
-		<field name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES" />
-		<field name="GL_FRAMEBUFFER_BINDING_OES" />
-		<field name="GL_FRAMEBUFFER_COMPLETE_OES" />
-		<field name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES" />
-		<field name="GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES" />
-		<field name="GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES" />
-		<field name="GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES" />
-		<field name="GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES" />
-		<field name="GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES" />
-		<field name="GL_FRAMEBUFFER_OES" />
-		<field name="GL_FRAMEBUFFER_UNSUPPORTED_OES" />
-		<field name="GL_FUNC_ADD" />
-		<field name="GL_FUNC_REVERSE_SUBTRACT" />
-		<field name="GL_FUNC_SUBTRACT" />
-		<field name="GL_INCR_WRAP" />
-		<field name="GL_INVALID_FRAMEBUFFER_OPERATION_OES" />
-		<field name="GL_MAX_COLOR_ATTACHMENTS_OES" />
-		<field name="GL_MAX_CUBE_MAP_TEXTURE_SIZE" />
-		<field name="GL_MAX_RENDERBUFFER_SIZE_OES" />
-		<field name="GL_MIRRORED_REPEAT" />
-		<field name="GL_NORMAL_MAP" />
-		<field name="GL_REFLECTION_MAP" />
-		<field name="GL_RENDERBUFFER_ALPHA_SIZE_OES" />
-		<field name="GL_RENDERBUFFER_BINDING_OES" />
-		<field name="GL_RENDERBUFFER_BLUE_SIZE_OES" />
-		<field name="GL_RENDERBUFFER_DEPTH_SIZE_OES" />
-		<field name="GL_RENDERBUFFER_GREEN_SIZE_OES" />
-		<field name="GL_RENDERBUFFER_HEIGHT_OES" />
-		<field name="GL_RENDERBUFFER_INTERNAL_FORMAT_OES" />
-		<field name="GL_RENDERBUFFER_OES" />
-		<field name="GL_RENDERBUFFER_RED_SIZE_OES" />
-		<field name="GL_RENDERBUFFER_STENCIL_SIZE_OES" />
-		<field name="GL_RENDERBUFFER_WIDTH_OES" />
-		<field name="GL_RGB565_OES" />
-		<field name="GL_RGB5_A1" />
-		<field name="GL_RGB8" />
-		<field name="GL_RGBA4" />
-		<field name="GL_RGBA8" />
-		<field name="GL_STENCIL_ATTACHMENT_OES" />
-		<field name="GL_STENCIL_INDEX" />
-		<field name="GL_STENCIL_INDEX1_OES" />
-		<field name="GL_STENCIL_INDEX4_OES" />
-		<field name="GL_STENCIL_INDEX8_OES" />
-		<field name="GL_STR" />
-		<field name="GL_TEXTURE_BINDING_CUBE_MAP" />
-		<field name="GL_TEXTURE_CUBE_MAP" />
-		<field name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X" />
-		<field name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y" />
-		<field name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z" />
-		<field name="GL_TEXTURE_CUBE_MAP_POSITIVE_X" />
-		<field name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y" />
-		<field name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z" />
-		<field name="GL_TEXTURE_GEN_MODE" />
-		<field name="GL_TEXTURE_GEN_STR" />
-	</class>
-	<class name="javax/net/ServerSocketFactory" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="createServerSocket()Ljava/net/ServerSocket;" />
-		<method name="createServerSocket(I)Ljava/net/ServerSocket;" />
-		<method name="createServerSocket(II)Ljava/net/ServerSocket;" />
-		<method name="createServerSocket(IILjava/net/InetAddress;)Ljava/net/ServerSocket;" />
-		<method name="getDefault()Ljavax/net/ServerSocketFactory;" />
-	</class>
-	<class name="javax/net/SocketFactory" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="createSocket()Ljava/net/Socket;" />
-		<method name="createSocket(Ljava/lang/String;I)Ljava/net/Socket;" />
-		<method name="createSocket(Ljava/lang/String;ILjava/net/InetAddress;I)Ljava/net/Socket;" />
-		<method name="createSocket(Ljava/net/InetAddress;I)Ljava/net/Socket;" />
-		<method name="createSocket(Ljava/net/InetAddress;ILjava/net/InetAddress;I)Ljava/net/Socket;" />
-		<method name="getDefault()Ljavax/net/SocketFactory;" />
-	</class>
-	<class name="javax/net/ssl/CertPathTrustManagerParameters" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="javax/net/ssl/ManagerFactoryParameters" />
-		<method name="&lt;init>(Ljava/security/cert/CertPathParameters;)V" />
-		<method name="getParameters()Ljava/security/cert/CertPathParameters;" />
-	</class>
-	<class name="javax/net/ssl/HandshakeCompletedEvent" since="1">
-		<extends name="java/util/EventObject" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(Ljavax/net/ssl/SSLSocket;Ljavax/net/ssl/SSLSession;)V" />
-		<method name="getCipherSuite()Ljava/lang/String;" />
-		<method name="getLocalCertificates()[Ljava/security/cert/Certificate;" />
-		<method name="getLocalPrincipal()Ljava/security/Principal;" />
-		<method name="getPeerCertificateChain()[Ljavax/security/cert/X509Certificate;" />
-		<method name="getPeerCertificates()[Ljava/security/cert/Certificate;" />
-		<method name="getPeerPrincipal()Ljava/security/Principal;" />
-		<method name="getSession()Ljavax/net/ssl/SSLSession;" />
-		<method name="getSocket()Ljavax/net/ssl/SSLSocket;" />
-	</class>
-	<class name="javax/net/ssl/HandshakeCompletedListener" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/EventListener" />
-		<method name="handshakeCompleted(Ljavax/net/ssl/HandshakeCompletedEvent;)V" />
-	</class>
-	<class name="javax/net/ssl/HostnameVerifier" since="1">
-		<extends name="java/lang/Object" />
-		<method name="verify(Ljava/lang/String;Ljavax/net/ssl/SSLSession;)Z" />
-	</class>
-	<class name="javax/net/ssl/HttpsURLConnection" since="1">
-		<extends name="java/net/HttpURLConnection" />
-		<method name="&lt;init>(Ljava/net/URL;)V" />
-		<method name="getCipherSuite()Ljava/lang/String;" />
-		<method name="getDefaultHostnameVerifier()Ljavax/net/ssl/HostnameVerifier;" />
-		<method name="getDefaultSSLSocketFactory()Ljavax/net/ssl/SSLSocketFactory;" />
-		<method name="getHostnameVerifier()Ljavax/net/ssl/HostnameVerifier;" />
-		<method name="getLocalCertificates()[Ljava/security/cert/Certificate;" />
-		<method name="getLocalPrincipal()Ljava/security/Principal;" />
-		<method name="getPeerPrincipal()Ljava/security/Principal;" />
-		<method name="getSSLSocketFactory()Ljavax/net/ssl/SSLSocketFactory;" />
-		<method name="getServerCertificates()[Ljava/security/cert/Certificate;" />
-		<method name="setDefaultHostnameVerifier(Ljavax/net/ssl/HostnameVerifier;)V" />
-		<method name="setDefaultSSLSocketFactory(Ljavax/net/ssl/SSLSocketFactory;)V" />
-		<method name="setHostnameVerifier(Ljavax/net/ssl/HostnameVerifier;)V" />
-		<method name="setSSLSocketFactory(Ljavax/net/ssl/SSLSocketFactory;)V" />
-		<field name="hostnameVerifier" />
-	</class>
-	<class name="javax/net/ssl/KeyManager" since="1">
-		<extends name="java/lang/Object" />
-	</class>
-	<class name="javax/net/ssl/KeyManagerFactory" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljavax/net/ssl/KeyManagerFactorySpi;Ljava/security/Provider;Ljava/lang/String;)V" />
-		<method name="getAlgorithm()Ljava/lang/String;" />
-		<method name="getDefaultAlgorithm()Ljava/lang/String;" />
-		<method name="getInstance(Ljava/lang/String;)Ljavax/net/ssl/KeyManagerFactory;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljavax/net/ssl/KeyManagerFactory;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljavax/net/ssl/KeyManagerFactory;" />
-		<method name="getKeyManagers()[Ljavax/net/ssl/KeyManager;" />
-		<method name="getProvider()Ljava/security/Provider;" />
-		<method name="init(Ljava/security/KeyStore;[C)V" />
-		<method name="init(Ljavax/net/ssl/ManagerFactoryParameters;)V" />
-	</class>
-	<class name="javax/net/ssl/KeyManagerFactorySpi" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="engineGetKeyManagers()[Ljavax/net/ssl/KeyManager;" />
-		<method name="engineInit(Ljava/security/KeyStore;[C)V" />
-		<method name="engineInit(Ljavax/net/ssl/ManagerFactoryParameters;)V" />
-	</class>
-	<class name="javax/net/ssl/KeyStoreBuilderParameters" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="javax/net/ssl/ManagerFactoryParameters" />
-		<method name="&lt;init>(Ljava/security/KeyStore$Builder;)V" />
-		<method name="&lt;init>(Ljava/util/List;)V" />
-		<method name="getParameters()Ljava/util/List;" />
-	</class>
-	<class name="javax/net/ssl/ManagerFactoryParameters" since="1">
-		<extends name="java/lang/Object" />
-	</class>
-	<class name="javax/net/ssl/SSLContext" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljavax/net/ssl/SSLContextSpi;Ljava/security/Provider;Ljava/lang/String;)V" />
-		<method name="createSSLEngine()Ljavax/net/ssl/SSLEngine;" />
-		<method name="createSSLEngine(Ljava/lang/String;I)Ljavax/net/ssl/SSLEngine;" />
-		<method name="getClientSessionContext()Ljavax/net/ssl/SSLSessionContext;" />
-		<method name="getDefault()Ljavax/net/ssl/SSLContext;" since="9" />
-		<method name="getDefaultSSLParameters()Ljavax/net/ssl/SSLParameters;" since="9" />
-		<method name="getInstance(Ljava/lang/String;)Ljavax/net/ssl/SSLContext;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljavax/net/ssl/SSLContext;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljavax/net/ssl/SSLContext;" />
-		<method name="getProtocol()Ljava/lang/String;" />
-		<method name="getProvider()Ljava/security/Provider;" />
-		<method name="getServerSessionContext()Ljavax/net/ssl/SSLSessionContext;" />
-		<method name="getServerSocketFactory()Ljavax/net/ssl/SSLServerSocketFactory;" />
-		<method name="getSocketFactory()Ljavax/net/ssl/SSLSocketFactory;" />
-		<method name="getSupportedSSLParameters()Ljavax/net/ssl/SSLParameters;" since="9" />
-		<method name="init([Ljavax/net/ssl/KeyManager;[Ljavax/net/ssl/TrustManager;Ljava/security/SecureRandom;)V" />
-		<method name="setDefault(Ljavax/net/ssl/SSLContext;)V" since="9" />
-	</class>
-	<class name="javax/net/ssl/SSLContextSpi" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="engineCreateSSLEngine()Ljavax/net/ssl/SSLEngine;" />
-		<method name="engineCreateSSLEngine(Ljava/lang/String;I)Ljavax/net/ssl/SSLEngine;" />
-		<method name="engineGetClientSessionContext()Ljavax/net/ssl/SSLSessionContext;" />
-		<method name="engineGetDefaultSSLParameters()Ljavax/net/ssl/SSLParameters;" since="9" />
-		<method name="engineGetServerSessionContext()Ljavax/net/ssl/SSLSessionContext;" />
-		<method name="engineGetServerSocketFactory()Ljavax/net/ssl/SSLServerSocketFactory;" />
-		<method name="engineGetSocketFactory()Ljavax/net/ssl/SSLSocketFactory;" />
-		<method name="engineGetSupportedSSLParameters()Ljavax/net/ssl/SSLParameters;" since="9" />
-		<method name="engineInit([Ljavax/net/ssl/KeyManager;[Ljavax/net/ssl/TrustManager;Ljava/security/SecureRandom;)V" />
-	</class>
-	<class name="javax/net/ssl/SSLEngine" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;I)V" />
-		<method name="beginHandshake()V" />
-		<method name="closeInbound()V" />
-		<method name="closeOutbound()V" />
-		<method name="getDelegatedTask()Ljava/lang/Runnable;" />
-		<method name="getEnableSessionCreation()Z" />
-		<method name="getEnabledCipherSuites()[Ljava/lang/String;" />
-		<method name="getEnabledProtocols()[Ljava/lang/String;" />
-		<method name="getHandshakeStatus()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;" />
-		<method name="getNeedClientAuth()Z" />
-		<method name="getPeerHost()Ljava/lang/String;" />
-		<method name="getPeerPort()I" />
-		<method name="getSSLParameters()Ljavax/net/ssl/SSLParameters;" since="9" />
-		<method name="getSession()Ljavax/net/ssl/SSLSession;" />
-		<method name="getSupportedCipherSuites()[Ljava/lang/String;" />
-		<method name="getSupportedProtocols()[Ljava/lang/String;" />
-		<method name="getUseClientMode()Z" />
-		<method name="getWantClientAuth()Z" />
-		<method name="isInboundDone()Z" />
-		<method name="isOutboundDone()Z" />
-		<method name="setEnableSessionCreation(Z)V" />
-		<method name="setEnabledCipherSuites([Ljava/lang/String;)V" />
-		<method name="setEnabledProtocols([Ljava/lang/String;)V" />
-		<method name="setNeedClientAuth(Z)V" />
-		<method name="setSSLParameters(Ljavax/net/ssl/SSLParameters;)V" since="9" />
-		<method name="setUseClientMode(Z)V" />
-		<method name="setWantClientAuth(Z)V" />
-		<method name="unwrap(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;" />
-		<method name="unwrap(Ljava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;" />
-		<method name="unwrap(Ljava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;II)Ljavax/net/ssl/SSLEngineResult;" />
-		<method name="wrap(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;" />
-		<method name="wrap([Ljava/nio/ByteBuffer;IILjava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;" />
-		<method name="wrap([Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;" />
-	</class>
-	<class name="javax/net/ssl/SSLEngineResult" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V" />
-		<method name="bytesConsumed()I" />
-		<method name="bytesProduced()I" />
-		<method name="getHandshakeStatus()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;" />
-		<method name="getStatus()Ljavax/net/ssl/SSLEngineResult$Status;" />
-	</class>
-	<class name="javax/net/ssl/SSLEngineResult$HandshakeStatus" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;" />
-		<method name="values()[Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;" />
-		<field name="FINISHED" />
-		<field name="NEED_TASK" />
-		<field name="NEED_UNWRAP" />
-		<field name="NEED_WRAP" />
-		<field name="NOT_HANDSHAKING" />
-	</class>
-	<class name="javax/net/ssl/SSLEngineResult$Status" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Ljavax/net/ssl/SSLEngineResult$Status;" />
-		<method name="values()[Ljavax/net/ssl/SSLEngineResult$Status;" />
-		<field name="BUFFER_OVERFLOW" />
-		<field name="BUFFER_UNDERFLOW" />
-		<field name="CLOSED" />
-		<field name="OK" />
-	</class>
-	<class name="javax/net/ssl/SSLException" since="1">
-		<extends name="java/io/IOException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="javax/net/ssl/SSLHandshakeException" since="1">
-		<extends name="javax/net/ssl/SSLException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="javax/net/ssl/SSLKeyException" since="1">
-		<extends name="javax/net/ssl/SSLException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="javax/net/ssl/SSLParameters" since="9">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>([Ljava/lang/String;)V" />
-		<method name="&lt;init>([Ljava/lang/String;[Ljava/lang/String;)V" />
-		<method name="getCipherSuites()[Ljava/lang/String;" />
-		<method name="getNeedClientAuth()Z" />
-		<method name="getProtocols()[Ljava/lang/String;" />
-		<method name="getWantClientAuth()Z" />
-		<method name="setCipherSuites([Ljava/lang/String;)V" />
-		<method name="setNeedClientAuth(Z)V" />
-		<method name="setProtocols([Ljava/lang/String;)V" />
-		<method name="setWantClientAuth(Z)V" />
-	</class>
-	<class name="javax/net/ssl/SSLPeerUnverifiedException" since="1">
-		<extends name="javax/net/ssl/SSLException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="javax/net/ssl/SSLPermission" since="1">
-		<extends name="java/security/BasicPermission" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-	</class>
-	<class name="javax/net/ssl/SSLProtocolException" since="1">
-		<extends name="javax/net/ssl/SSLException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="javax/net/ssl/SSLServerSocket" since="1">
-		<extends name="java/net/ServerSocket" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="&lt;init>(II)V" />
-		<method name="&lt;init>(IILjava/net/InetAddress;)V" />
-		<method name="getEnableSessionCreation()Z" />
-		<method name="getEnabledCipherSuites()[Ljava/lang/String;" />
-		<method name="getEnabledProtocols()[Ljava/lang/String;" />
-		<method name="getNeedClientAuth()Z" />
-		<method name="getSupportedCipherSuites()[Ljava/lang/String;" />
-		<method name="getSupportedProtocols()[Ljava/lang/String;" />
-		<method name="getUseClientMode()Z" />
-		<method name="getWantClientAuth()Z" />
-		<method name="setEnableSessionCreation(Z)V" />
-		<method name="setEnabledCipherSuites([Ljava/lang/String;)V" />
-		<method name="setEnabledProtocols([Ljava/lang/String;)V" />
-		<method name="setNeedClientAuth(Z)V" />
-		<method name="setUseClientMode(Z)V" />
-		<method name="setWantClientAuth(Z)V" />
-	</class>
-	<class name="javax/net/ssl/SSLServerSocketFactory" since="1">
-		<extends name="javax/net/ServerSocketFactory" />
-		<method name="&lt;init>()V" />
-		<method name="getDefaultCipherSuites()[Ljava/lang/String;" />
-		<method name="getSupportedCipherSuites()[Ljava/lang/String;" />
-	</class>
-	<class name="javax/net/ssl/SSLSession" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getApplicationBufferSize()I" />
-		<method name="getCipherSuite()Ljava/lang/String;" />
-		<method name="getCreationTime()J" />
-		<method name="getId()[B" />
-		<method name="getLastAccessedTime()J" />
-		<method name="getLocalCertificates()[Ljava/security/cert/Certificate;" />
-		<method name="getLocalPrincipal()Ljava/security/Principal;" />
-		<method name="getPacketBufferSize()I" />
-		<method name="getPeerCertificateChain()[Ljavax/security/cert/X509Certificate;" />
-		<method name="getPeerCertificates()[Ljava/security/cert/Certificate;" />
-		<method name="getPeerHost()Ljava/lang/String;" />
-		<method name="getPeerPort()I" />
-		<method name="getPeerPrincipal()Ljava/security/Principal;" />
-		<method name="getProtocol()Ljava/lang/String;" />
-		<method name="getSessionContext()Ljavax/net/ssl/SSLSessionContext;" />
-		<method name="getValue(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="getValueNames()[Ljava/lang/String;" />
-		<method name="invalidate()V" />
-		<method name="isValid()Z" />
-		<method name="putValue(Ljava/lang/String;Ljava/lang/Object;)V" />
-		<method name="removeValue(Ljava/lang/String;)V" />
-	</class>
-	<class name="javax/net/ssl/SSLSessionBindingEvent" since="1">
-		<extends name="java/util/EventObject" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(Ljavax/net/ssl/SSLSession;Ljava/lang/String;)V" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getSession()Ljavax/net/ssl/SSLSession;" />
-	</class>
-	<class name="javax/net/ssl/SSLSessionBindingListener" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/EventListener" />
-		<method name="valueBound(Ljavax/net/ssl/SSLSessionBindingEvent;)V" />
-		<method name="valueUnbound(Ljavax/net/ssl/SSLSessionBindingEvent;)V" />
-	</class>
-	<class name="javax/net/ssl/SSLSessionContext" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getIds()Ljava/util/Enumeration;" />
-		<method name="getSession([B)Ljavax/net/ssl/SSLSession;" />
-		<method name="getSessionCacheSize()I" />
-		<method name="getSessionTimeout()I" />
-		<method name="setSessionCacheSize(I)V" />
-		<method name="setSessionTimeout(I)V" />
-	</class>
-	<class name="javax/net/ssl/SSLSocket" since="1">
-		<extends name="java/net/Socket" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;I)V" />
-		<method name="&lt;init>(Ljava/lang/String;ILjava/net/InetAddress;I)V" />
-		<method name="&lt;init>(Ljava/net/InetAddress;I)V" />
-		<method name="&lt;init>(Ljava/net/InetAddress;ILjava/net/InetAddress;I)V" />
-		<method name="addHandshakeCompletedListener(Ljavax/net/ssl/HandshakeCompletedListener;)V" />
-		<method name="getEnableSessionCreation()Z" />
-		<method name="getEnabledCipherSuites()[Ljava/lang/String;" />
-		<method name="getEnabledProtocols()[Ljava/lang/String;" />
-		<method name="getNeedClientAuth()Z" />
-		<method name="getSSLParameters()Ljavax/net/ssl/SSLParameters;" since="9" />
-		<method name="getSession()Ljavax/net/ssl/SSLSession;" />
-		<method name="getSupportedCipherSuites()[Ljava/lang/String;" />
-		<method name="getSupportedProtocols()[Ljava/lang/String;" />
-		<method name="getUseClientMode()Z" />
-		<method name="getWantClientAuth()Z" />
-		<method name="removeHandshakeCompletedListener(Ljavax/net/ssl/HandshakeCompletedListener;)V" />
-		<method name="setEnableSessionCreation(Z)V" />
-		<method name="setEnabledCipherSuites([Ljava/lang/String;)V" />
-		<method name="setEnabledProtocols([Ljava/lang/String;)V" />
-		<method name="setNeedClientAuth(Z)V" />
-		<method name="setSSLParameters(Ljavax/net/ssl/SSLParameters;)V" since="9" />
-		<method name="setUseClientMode(Z)V" />
-		<method name="setWantClientAuth(Z)V" />
-		<method name="startHandshake()V" />
-	</class>
-	<class name="javax/net/ssl/SSLSocketFactory" since="1">
-		<extends name="javax/net/SocketFactory" />
-		<method name="&lt;init>()V" />
-		<method name="createSocket(Ljava/net/Socket;Ljava/lang/String;IZ)Ljava/net/Socket;" />
-		<method name="getDefaultCipherSuites()[Ljava/lang/String;" />
-		<method name="getSupportedCipherSuites()[Ljava/lang/String;" />
-	</class>
-	<class name="javax/net/ssl/TrustManager" since="1">
-		<extends name="java/lang/Object" />
-	</class>
-	<class name="javax/net/ssl/TrustManagerFactory" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljavax/net/ssl/TrustManagerFactorySpi;Ljava/security/Provider;Ljava/lang/String;)V" />
-		<method name="getAlgorithm()Ljava/lang/String;" />
-		<method name="getDefaultAlgorithm()Ljava/lang/String;" />
-		<method name="getInstance(Ljava/lang/String;)Ljavax/net/ssl/TrustManagerFactory;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljavax/net/ssl/TrustManagerFactory;" />
-		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljavax/net/ssl/TrustManagerFactory;" />
-		<method name="getProvider()Ljava/security/Provider;" />
-		<method name="getTrustManagers()[Ljavax/net/ssl/TrustManager;" />
-		<method name="init(Ljava/security/KeyStore;)V" />
-		<method name="init(Ljavax/net/ssl/ManagerFactoryParameters;)V" />
-	</class>
-	<class name="javax/net/ssl/TrustManagerFactorySpi" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="engineGetTrustManagers()[Ljavax/net/ssl/TrustManager;" />
-		<method name="engineInit(Ljava/security/KeyStore;)V" />
-		<method name="engineInit(Ljavax/net/ssl/ManagerFactoryParameters;)V" />
-	</class>
-	<class name="javax/net/ssl/X509ExtendedKeyManager" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="javax/net/ssl/X509KeyManager" />
-		<method name="&lt;init>()V" />
-		<method name="chooseEngineClientAlias([Ljava/lang/String;[Ljava/security/Principal;Ljavax/net/ssl/SSLEngine;)Ljava/lang/String;" />
-		<method name="chooseEngineServerAlias(Ljava/lang/String;[Ljava/security/Principal;Ljavax/net/ssl/SSLEngine;)Ljava/lang/String;" />
-	</class>
-	<class name="javax/net/ssl/X509KeyManager" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="javax/net/ssl/KeyManager" />
-		<method name="chooseClientAlias([Ljava/lang/String;[Ljava/security/Principal;Ljava/net/Socket;)Ljava/lang/String;" />
-		<method name="chooseServerAlias(Ljava/lang/String;[Ljava/security/Principal;Ljava/net/Socket;)Ljava/lang/String;" />
-		<method name="getCertificateChain(Ljava/lang/String;)[Ljava/security/cert/X509Certificate;" />
-		<method name="getClientAliases(Ljava/lang/String;[Ljava/security/Principal;)[Ljava/lang/String;" />
-		<method name="getPrivateKey(Ljava/lang/String;)Ljava/security/PrivateKey;" />
-		<method name="getServerAliases(Ljava/lang/String;[Ljava/security/Principal;)[Ljava/lang/String;" />
-	</class>
-	<class name="javax/net/ssl/X509TrustManager" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="javax/net/ssl/TrustManager" />
-		<method name="checkClientTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;)V" />
-		<method name="checkServerTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;)V" />
-		<method name="getAcceptedIssuers()[Ljava/security/cert/X509Certificate;" />
-	</class>
-	<class name="javax/security/auth/AuthPermission" since="1">
-		<extends name="java/security/BasicPermission" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-	</class>
-	<class name="javax/security/auth/DestroyFailedException" since="1">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="javax/security/auth/Destroyable" since="1">
-		<extends name="java/lang/Object" />
-		<method name="destroy()V" />
-		<method name="isDestroyed()Z" />
-	</class>
-	<class name="javax/security/auth/PrivateCredentialPermission" since="1">
-		<extends name="java/security/Permission" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="getCredentialClass()Ljava/lang/String;" />
-		<method name="getPrincipals()[[Ljava/lang/String;" />
-	</class>
-	<class name="javax/security/auth/Subject" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(ZLjava/util/Set;Ljava/util/Set;Ljava/util/Set;)V" />
-		<method name="doAs(Ljavax/security/auth/Subject;Ljava/security/PrivilegedAction;)Ljava/lang/Object;" />
-		<method name="doAs(Ljavax/security/auth/Subject;Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;" />
-		<method name="doAsPrivileged(Ljavax/security/auth/Subject;Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;" />
-		<method name="doAsPrivileged(Ljavax/security/auth/Subject;Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;" />
-		<method name="getPrincipals()Ljava/util/Set;" />
-		<method name="getPrincipals(Ljava/lang/Class;)Ljava/util/Set;" />
-		<method name="getPrivateCredentials()Ljava/util/Set;" />
-		<method name="getPrivateCredentials(Ljava/lang/Class;)Ljava/util/Set;" />
-		<method name="getPublicCredentials()Ljava/util/Set;" />
-		<method name="getPublicCredentials(Ljava/lang/Class;)Ljava/util/Set;" />
-		<method name="getSubject(Ljava/security/AccessControlContext;)Ljavax/security/auth/Subject;" />
-		<method name="isReadOnly()Z" />
-		<method name="setReadOnly()V" />
-	</class>
-	<class name="javax/security/auth/SubjectDomainCombiner" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/DomainCombiner" />
-		<method name="&lt;init>(Ljavax/security/auth/Subject;)V" />
-		<method name="getSubject()Ljavax/security/auth/Subject;" />
-	</class>
-	<class name="javax/security/auth/callback/Callback" since="1">
-		<extends name="java/lang/Object" />
-	</class>
-	<class name="javax/security/auth/callback/CallbackHandler" since="1">
-		<extends name="java/lang/Object" />
-		<method name="handle([Ljavax/security/auth/callback/Callback;)V" />
-	</class>
-	<class name="javax/security/auth/callback/PasswordCallback" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<implements name="javax/security/auth/callback/Callback" />
-		<method name="&lt;init>(Ljava/lang/String;Z)V" />
-		<method name="clearPassword()V" />
-		<method name="getPassword()[C" />
-		<method name="getPrompt()Ljava/lang/String;" />
-		<method name="isEchoOn()Z" />
-		<method name="setPassword([C)V" />
-	</class>
-	<class name="javax/security/auth/callback/UnsupportedCallbackException" since="1">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>(Ljavax/security/auth/callback/Callback;)V" />
-		<method name="&lt;init>(Ljavax/security/auth/callback/Callback;Ljava/lang/String;)V" />
-		<method name="getCallback()Ljavax/security/auth/callback/Callback;" />
-	</class>
-	<class name="javax/security/auth/login/LoginException" since="1">
-		<extends name="java/security/GeneralSecurityException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="javax/security/auth/x500/X500Principal" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/security/Principal" />
-		<method name="&lt;init>(Ljava/io/InputStream;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/util/Map;)V" since="9" />
-		<method name="&lt;init>([B)V" />
-		<method name="getEncoded()[B" />
-		<method name="getName(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getName(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;" since="9" />
-		<field name="CANONICAL" />
-		<field name="RFC1779" />
-		<field name="RFC2253" />
-	</class>
-	<class name="javax/security/cert/Certificate" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getEncoded()[B" />
-		<method name="getPublicKey()Ljava/security/PublicKey;" />
-		<method name="verify(Ljava/security/PublicKey;)V" />
-		<method name="verify(Ljava/security/PublicKey;Ljava/lang/String;)V" />
-	</class>
-	<class name="javax/security/cert/CertificateEncodingException" since="1">
-		<extends name="javax/security/cert/CertificateException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="javax/security/cert/CertificateException" since="1">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="javax/security/cert/CertificateExpiredException" since="1">
-		<extends name="javax/security/cert/CertificateException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="javax/security/cert/CertificateNotYetValidException" since="1">
-		<extends name="javax/security/cert/CertificateException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="javax/security/cert/CertificateParsingException" since="1">
-		<extends name="javax/security/cert/CertificateException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="javax/security/cert/X509Certificate" since="1">
-		<extends name="javax/security/cert/Certificate" />
-		<method name="&lt;init>()V" />
-		<method name="checkValidity()V" />
-		<method name="checkValidity(Ljava/util/Date;)V" />
-		<method name="getInstance(Ljava/io/InputStream;)Ljavax/security/cert/X509Certificate;" />
-		<method name="getInstance([B)Ljavax/security/cert/X509Certificate;" />
-		<method name="getIssuerDN()Ljava/security/Principal;" />
-		<method name="getNotAfter()Ljava/util/Date;" />
-		<method name="getNotBefore()Ljava/util/Date;" />
-		<method name="getSerialNumber()Ljava/math/BigInteger;" />
-		<method name="getSigAlgName()Ljava/lang/String;" />
-		<method name="getSigAlgOID()Ljava/lang/String;" />
-		<method name="getSigAlgParams()[B" />
-		<method name="getSubjectDN()Ljava/security/Principal;" />
-		<method name="getVersion()I" />
-	</class>
-	<class name="javax/sql/CommonDataSource" since="9">
-		<extends name="java/lang/Object" />
-		<method name="getLogWriter()Ljava/io/PrintWriter;" />
-		<method name="getLoginTimeout()I" />
-		<method name="setLogWriter(Ljava/io/PrintWriter;)V" />
-		<method name="setLoginTimeout(I)V" />
-	</class>
-	<class name="javax/sql/ConnectionEvent" since="1">
-		<extends name="java/util/EventObject" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(Ljavax/sql/PooledConnection;)V" />
-		<method name="&lt;init>(Ljavax/sql/PooledConnection;Ljava/sql/SQLException;)V" />
-		<method name="getSQLException()Ljava/sql/SQLException;" />
-	</class>
-	<class name="javax/sql/ConnectionEventListener" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/EventListener" />
-		<method name="connectionClosed(Ljavax/sql/ConnectionEvent;)V" />
-		<method name="connectionErrorOccurred(Ljavax/sql/ConnectionEvent;)V" />
-	</class>
-	<class name="javax/sql/ConnectionPoolDataSource" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="javax/sql/CommonDataSource" since="9" />
-		<method name="getLogWriter()Ljava/io/PrintWriter;" />
-		<method name="getLoginTimeout()I" />
-		<method name="getPooledConnection()Ljavax/sql/PooledConnection;" />
-		<method name="getPooledConnection(Ljava/lang/String;Ljava/lang/String;)Ljavax/sql/PooledConnection;" />
-		<method name="setLogWriter(Ljava/io/PrintWriter;)V" />
-		<method name="setLoginTimeout(I)V" />
-	</class>
-	<class name="javax/sql/DataSource" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/sql/Wrapper" since="9" />
-		<implements name="javax/sql/CommonDataSource" since="9" />
-		<method name="getConnection()Ljava/sql/Connection;" />
-		<method name="getConnection(Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection;" />
-		<method name="getLogWriter()Ljava/io/PrintWriter;" />
-		<method name="getLoginTimeout()I" />
-		<method name="setLogWriter(Ljava/io/PrintWriter;)V" />
-		<method name="setLoginTimeout(I)V" />
-	</class>
-	<class name="javax/sql/PooledConnection" since="1">
-		<extends name="java/lang/Object" />
-		<method name="addConnectionEventListener(Ljavax/sql/ConnectionEventListener;)V" />
-		<method name="addStatementEventListener(Ljavax/sql/StatementEventListener;)V" since="9" />
-		<method name="close()V" />
-		<method name="getConnection()Ljava/sql/Connection;" />
-		<method name="removeConnectionEventListener(Ljavax/sql/ConnectionEventListener;)V" />
-		<method name="removeStatementEventListener(Ljavax/sql/StatementEventListener;)V" since="9" />
-	</class>
-	<class name="javax/sql/RowSet" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/sql/ResultSet" />
-		<method name="addRowSetListener(Ljavax/sql/RowSetListener;)V" />
-		<method name="clearParameters()V" />
-		<method name="execute()V" />
-		<method name="getCommand()Ljava/lang/String;" />
-		<method name="getDataSourceName()Ljava/lang/String;" />
-		<method name="getEscapeProcessing()Z" />
-		<method name="getMaxFieldSize()I" />
-		<method name="getMaxRows()I" />
-		<method name="getPassword()Ljava/lang/String;" />
-		<method name="getQueryTimeout()I" />
-		<method name="getTransactionIsolation()I" />
-		<method name="getTypeMap()Ljava/util/Map;" />
-		<method name="getUrl()Ljava/lang/String;" />
-		<method name="getUsername()Ljava/lang/String;" />
-		<method name="isReadOnly()Z" />
-		<method name="removeRowSetListener(Ljavax/sql/RowSetListener;)V" />
-		<method name="setArray(ILjava/sql/Array;)V" />
-		<method name="setAsciiStream(ILjava/io/InputStream;)V" since="9" />
-		<method name="setAsciiStream(ILjava/io/InputStream;I)V" />
-		<method name="setAsciiStream(Ljava/lang/String;Ljava/io/InputStream;)V" since="9" />
-		<method name="setAsciiStream(Ljava/lang/String;Ljava/io/InputStream;I)V" since="9" />
-		<method name="setBigDecimal(ILjava/math/BigDecimal;)V" />
-		<method name="setBigDecimal(Ljava/lang/String;Ljava/math/BigDecimal;)V" since="9" />
-		<method name="setBinaryStream(ILjava/io/InputStream;)V" since="9" />
-		<method name="setBinaryStream(ILjava/io/InputStream;I)V" />
-		<method name="setBinaryStream(Ljava/lang/String;Ljava/io/InputStream;)V" since="9" />
-		<method name="setBinaryStream(Ljava/lang/String;Ljava/io/InputStream;I)V" since="9" />
-		<method name="setBlob(ILjava/io/InputStream;)V" since="9" />
-		<method name="setBlob(ILjava/io/InputStream;J)V" since="9" />
-		<method name="setBlob(ILjava/sql/Blob;)V" />
-		<method name="setBlob(Ljava/lang/String;Ljava/io/InputStream;)V" since="9" />
-		<method name="setBlob(Ljava/lang/String;Ljava/io/InputStream;J)V" since="9" />
-		<method name="setBlob(Ljava/lang/String;Ljava/sql/Blob;)V" since="9" />
-		<method name="setBoolean(IZ)V" />
-		<method name="setBoolean(Ljava/lang/String;Z)V" since="9" />
-		<method name="setByte(IB)V" />
-		<method name="setByte(Ljava/lang/String;B)V" since="9" />
-		<method name="setBytes(I[B)V" />
-		<method name="setBytes(Ljava/lang/String;[B)V" since="9" />
-		<method name="setCharacterStream(ILjava/io/Reader;)V" since="9" />
-		<method name="setCharacterStream(ILjava/io/Reader;I)V" />
-		<method name="setCharacterStream(Ljava/lang/String;Ljava/io/Reader;)V" since="9" />
-		<method name="setCharacterStream(Ljava/lang/String;Ljava/io/Reader;I)V" since="9" />
-		<method name="setClob(ILjava/io/Reader;)V" since="9" />
-		<method name="setClob(ILjava/io/Reader;J)V" since="9" />
-		<method name="setClob(ILjava/sql/Clob;)V" />
-		<method name="setClob(Ljava/lang/String;Ljava/io/Reader;)V" since="9" />
-		<method name="setClob(Ljava/lang/String;Ljava/io/Reader;J)V" since="9" />
-		<method name="setClob(Ljava/lang/String;Ljava/sql/Clob;)V" since="9" />
-		<method name="setCommand(Ljava/lang/String;)V" />
-		<method name="setConcurrency(I)V" />
-		<method name="setDataSourceName(Ljava/lang/String;)V" />
-		<method name="setDate(ILjava/sql/Date;)V" />
-		<method name="setDate(ILjava/sql/Date;Ljava/util/Calendar;)V" />
-		<method name="setDate(Ljava/lang/String;Ljava/sql/Date;)V" since="9" />
-		<method name="setDate(Ljava/lang/String;Ljava/sql/Date;Ljava/util/Calendar;)V" since="9" />
-		<method name="setDouble(ID)V" />
-		<method name="setDouble(Ljava/lang/String;D)V" since="9" />
-		<method name="setEscapeProcessing(Z)V" />
-		<method name="setFloat(IF)V" />
-		<method name="setFloat(Ljava/lang/String;F)V" since="9" />
-		<method name="setInt(II)V" />
-		<method name="setInt(Ljava/lang/String;I)V" since="9" />
-		<method name="setLong(IJ)V" />
-		<method name="setLong(Ljava/lang/String;J)V" since="9" />
-		<method name="setMaxFieldSize(I)V" />
-		<method name="setMaxRows(I)V" />
-		<method name="setNCharacterStream(ILjava/io/Reader;)V" since="9" />
-		<method name="setNCharacterStream(ILjava/io/Reader;J)V" since="9" />
-		<method name="setNCharacterStream(Ljava/lang/String;Ljava/io/Reader;)V" since="9" />
-		<method name="setNCharacterStream(Ljava/lang/String;Ljava/io/Reader;J)V" since="9" />
-		<method name="setNClob(ILjava/io/Reader;)V" since="9" />
-		<method name="setNClob(ILjava/io/Reader;J)V" since="9" />
-		<method name="setNClob(ILjava/sql/NClob;)V" since="9" />
-		<method name="setNClob(Ljava/lang/String;Ljava/io/Reader;)V" since="9" />
-		<method name="setNClob(Ljava/lang/String;Ljava/io/Reader;J)V" since="9" />
-		<method name="setNClob(Ljava/lang/String;Ljava/sql/NClob;)V" since="9" />
-		<method name="setNString(ILjava/lang/String;)V" since="9" />
-		<method name="setNString(Ljava/lang/String;Ljava/lang/String;)V" since="9" />
-		<method name="setNull(II)V" />
-		<method name="setNull(IILjava/lang/String;)V" />
-		<method name="setNull(Ljava/lang/String;I)V" since="9" />
-		<method name="setNull(Ljava/lang/String;ILjava/lang/String;)V" since="9" />
-		<method name="setObject(ILjava/lang/Object;)V" />
-		<method name="setObject(ILjava/lang/Object;I)V" />
-		<method name="setObject(ILjava/lang/Object;II)V" />
-		<method name="setObject(Ljava/lang/String;Ljava/lang/Object;)V" since="9" />
-		<method name="setObject(Ljava/lang/String;Ljava/lang/Object;I)V" since="9" />
-		<method name="setObject(Ljava/lang/String;Ljava/lang/Object;II)V" since="9" />
-		<method name="setPassword(Ljava/lang/String;)V" />
-		<method name="setQueryTimeout(I)V" />
-		<method name="setReadOnly(Z)V" />
-		<method name="setRef(ILjava/sql/Ref;)V" />
-		<method name="setRowId(ILjava/sql/RowId;)V" since="9" />
-		<method name="setRowId(Ljava/lang/String;Ljava/sql/RowId;)V" since="9" />
-		<method name="setSQLXML(ILjava/sql/SQLXML;)V" since="9" />
-		<method name="setSQLXML(Ljava/lang/String;Ljava/sql/SQLXML;)V" since="9" />
-		<method name="setShort(IS)V" />
-		<method name="setShort(Ljava/lang/String;S)V" since="9" />
-		<method name="setString(ILjava/lang/String;)V" />
-		<method name="setString(Ljava/lang/String;Ljava/lang/String;)V" since="9" />
-		<method name="setTime(ILjava/sql/Time;)V" />
-		<method name="setTime(ILjava/sql/Time;Ljava/util/Calendar;)V" />
-		<method name="setTime(Ljava/lang/String;Ljava/sql/Time;)V" since="9" />
-		<method name="setTime(Ljava/lang/String;Ljava/sql/Time;Ljava/util/Calendar;)V" since="9" />
-		<method name="setTimestamp(ILjava/sql/Timestamp;)V" />
-		<method name="setTimestamp(ILjava/sql/Timestamp;Ljava/util/Calendar;)V" />
-		<method name="setTimestamp(Ljava/lang/String;Ljava/sql/Timestamp;)V" since="9" />
-		<method name="setTimestamp(Ljava/lang/String;Ljava/sql/Timestamp;Ljava/util/Calendar;)V" since="9" />
-		<method name="setTransactionIsolation(I)V" />
-		<method name="setType(I)V" />
-		<method name="setTypeMap(Ljava/util/Map;)V" />
-		<method name="setURL(ILjava/net/URL;)V" since="9" />
-		<method name="setUrl(Ljava/lang/String;)V" />
-		<method name="setUsername(Ljava/lang/String;)V" />
-	</class>
-	<class name="javax/sql/RowSetEvent" since="1">
-		<extends name="java/util/EventObject" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(Ljavax/sql/RowSet;)V" />
-	</class>
-	<class name="javax/sql/RowSetInternal" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getConnection()Ljava/sql/Connection;" />
-		<method name="getOriginal()Ljava/sql/ResultSet;" />
-		<method name="getOriginalRow()Ljava/sql/ResultSet;" />
-		<method name="getParams()[Ljava/lang/Object;" />
-		<method name="setMetaData(Ljavax/sql/RowSetMetaData;)V" />
-	</class>
-	<class name="javax/sql/RowSetListener" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/EventListener" />
-		<method name="cursorMoved(Ljavax/sql/RowSetEvent;)V" />
-		<method name="rowChanged(Ljavax/sql/RowSetEvent;)V" />
-		<method name="rowSetChanged(Ljavax/sql/RowSetEvent;)V" />
-	</class>
-	<class name="javax/sql/RowSetMetaData" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/sql/ResultSetMetaData" />
-		<method name="setAutoIncrement(IZ)V" />
-		<method name="setCaseSensitive(IZ)V" />
-		<method name="setCatalogName(ILjava/lang/String;)V" />
-		<method name="setColumnCount(I)V" />
-		<method name="setColumnDisplaySize(II)V" />
-		<method name="setColumnLabel(ILjava/lang/String;)V" />
-		<method name="setColumnName(ILjava/lang/String;)V" />
-		<method name="setColumnType(II)V" />
-		<method name="setColumnTypeName(ILjava/lang/String;)V" />
-		<method name="setCurrency(IZ)V" />
-		<method name="setNullable(II)V" />
-		<method name="setPrecision(II)V" />
-		<method name="setScale(II)V" />
-		<method name="setSchemaName(ILjava/lang/String;)V" />
-		<method name="setSearchable(IZ)V" />
-		<method name="setSigned(IZ)V" />
-		<method name="setTableName(ILjava/lang/String;)V" />
-	</class>
-	<class name="javax/sql/RowSetReader" since="1">
-		<extends name="java/lang/Object" />
-		<method name="readData(Ljavax/sql/RowSetInternal;)V" />
-	</class>
-	<class name="javax/sql/RowSetWriter" since="1">
-		<extends name="java/lang/Object" />
-		<method name="writeData(Ljavax/sql/RowSetInternal;)Z" />
-	</class>
-	<class name="javax/sql/StatementEvent" since="9">
-		<extends name="java/util/EventObject" />
-		<method name="&lt;init>(Ljavax/sql/PooledConnection;Ljava/sql/PreparedStatement;)V" />
-		<method name="&lt;init>(Ljavax/sql/PooledConnection;Ljava/sql/PreparedStatement;Ljava/sql/SQLException;)V" />
-		<method name="getSQLException()Ljava/sql/SQLException;" />
-		<method name="getStatement()Ljava/sql/PreparedStatement;" />
-	</class>
-	<class name="javax/sql/StatementEventListener" since="9">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/EventListener" />
-		<method name="statementClosed(Ljavax/sql/StatementEvent;)V" />
-		<method name="statementErrorOccurred(Ljavax/sql/StatementEvent;)V" />
-	</class>
-	<class name="javax/xml/XMLConstants" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="DEFAULT_NS_PREFIX" />
-		<field name="FEATURE_SECURE_PROCESSING" />
-		<field name="NULL_NS_URI" />
-		<field name="RELAXNG_NS_URI" />
-		<field name="W3C_XML_SCHEMA_INSTANCE_NS_URI" />
-		<field name="W3C_XML_SCHEMA_NS_URI" />
-		<field name="W3C_XPATH_DATATYPE_NS_URI" />
-		<field name="XMLNS_ATTRIBUTE" />
-		<field name="XMLNS_ATTRIBUTE_NS_URI" />
-		<field name="XML_DTD_NS_URI" />
-		<field name="XML_NS_PREFIX" />
-		<field name="XML_NS_URI" />
-	</class>
-	<class name="javax/xml/datatype/DatatypeConfigurationException" since="8">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="javax/xml/datatype/DatatypeConstants" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="APRIL" />
-		<field name="AUGUST" />
-		<field name="DATE" />
-		<field name="DATETIME" />
-		<field name="DAYS" />
-		<field name="DECEMBER" />
-		<field name="DURATION" />
-		<field name="DURATION_DAYTIME" />
-		<field name="DURATION_YEARMONTH" />
-		<field name="EQUAL" />
-		<field name="FEBRUARY" />
-		<field name="FIELD_UNDEFINED" />
-		<field name="GDAY" />
-		<field name="GMONTH" />
-		<field name="GMONTHDAY" />
-		<field name="GREATER" />
-		<field name="GYEAR" />
-		<field name="GYEARMONTH" />
-		<field name="HOURS" />
-		<field name="INDETERMINATE" />
-		<field name="JANUARY" />
-		<field name="JULY" />
-		<field name="JUNE" />
-		<field name="LESSER" />
-		<field name="MARCH" />
-		<field name="MAX_TIMEZONE_OFFSET" />
-		<field name="MAY" />
-		<field name="MINUTES" />
-		<field name="MIN_TIMEZONE_OFFSET" />
-		<field name="MONTHS" />
-		<field name="NOVEMBER" />
-		<field name="OCTOBER" />
-		<field name="SECONDS" />
-		<field name="SEPTEMBER" />
-		<field name="TIME" />
-		<field name="YEARS" />
-	</class>
-	<class name="javax/xml/datatype/DatatypeConstants$Field" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getId()I" />
-	</class>
-	<class name="javax/xml/datatype/DatatypeFactory" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="newDuration(J)Ljavax/xml/datatype/Duration;" />
-		<method name="newDuration(Ljava/lang/String;)Ljavax/xml/datatype/Duration;" />
-		<method name="newDuration(ZIIIIII)Ljavax/xml/datatype/Duration;" />
-		<method name="newDuration(ZLjava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigDecimal;)Ljavax/xml/datatype/Duration;" />
-		<method name="newDurationDayTime(J)Ljavax/xml/datatype/Duration;" />
-		<method name="newDurationDayTime(Ljava/lang/String;)Ljavax/xml/datatype/Duration;" />
-		<method name="newDurationDayTime(ZIIII)Ljavax/xml/datatype/Duration;" />
-		<method name="newDurationDayTime(ZLjava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljavax/xml/datatype/Duration;" />
-		<method name="newDurationYearMonth(J)Ljavax/xml/datatype/Duration;" />
-		<method name="newDurationYearMonth(Ljava/lang/String;)Ljavax/xml/datatype/Duration;" />
-		<method name="newDurationYearMonth(ZII)Ljavax/xml/datatype/Duration;" />
-		<method name="newDurationYearMonth(ZLjava/math/BigInteger;Ljava/math/BigInteger;)Ljavax/xml/datatype/Duration;" />
-		<method name="newInstance()Ljavax/xml/datatype/DatatypeFactory;" />
-		<method name="newInstance(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/datatype/DatatypeFactory;" since="9" />
-		<method name="newXMLGregorianCalendar()Ljavax/xml/datatype/XMLGregorianCalendar;" />
-		<method name="newXMLGregorianCalendar(IIIIIIII)Ljavax/xml/datatype/XMLGregorianCalendar;" />
-		<method name="newXMLGregorianCalendar(Ljava/lang/String;)Ljavax/xml/datatype/XMLGregorianCalendar;" />
-		<method name="newXMLGregorianCalendar(Ljava/math/BigInteger;IIIIILjava/math/BigDecimal;I)Ljavax/xml/datatype/XMLGregorianCalendar;" />
-		<method name="newXMLGregorianCalendar(Ljava/util/GregorianCalendar;)Ljavax/xml/datatype/XMLGregorianCalendar;" />
-		<method name="newXMLGregorianCalendarDate(IIII)Ljavax/xml/datatype/XMLGregorianCalendar;" />
-		<method name="newXMLGregorianCalendarTime(IIII)Ljavax/xml/datatype/XMLGregorianCalendar;" />
-		<method name="newXMLGregorianCalendarTime(IIIII)Ljavax/xml/datatype/XMLGregorianCalendar;" />
-		<method name="newXMLGregorianCalendarTime(IIILjava/math/BigDecimal;I)Ljavax/xml/datatype/XMLGregorianCalendar;" />
-		<field name="DATATYPEFACTORY_IMPLEMENTATION_CLASS" />
-		<field name="DATATYPEFACTORY_PROPERTY" />
-	</class>
-	<class name="javax/xml/datatype/Duration" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="add(Ljavax/xml/datatype/Duration;)Ljavax/xml/datatype/Duration;" />
-		<method name="addTo(Ljava/util/Calendar;)V" />
-		<method name="addTo(Ljava/util/Date;)V" />
-		<method name="compare(Ljavax/xml/datatype/Duration;)I" />
-		<method name="getDays()I" />
-		<method name="getField(Ljavax/xml/datatype/DatatypeConstants$Field;)Ljava/lang/Number;" />
-		<method name="getHours()I" />
-		<method name="getMinutes()I" />
-		<method name="getMonths()I" />
-		<method name="getSeconds()I" />
-		<method name="getSign()I" />
-		<method name="getTimeInMillis(Ljava/util/Calendar;)J" />
-		<method name="getTimeInMillis(Ljava/util/Date;)J" />
-		<method name="getXMLSchemaType()Ljavax/xml/namespace/QName;" />
-		<method name="getYears()I" />
-		<method name="isLongerThan(Ljavax/xml/datatype/Duration;)Z" />
-		<method name="isSet(Ljavax/xml/datatype/DatatypeConstants$Field;)Z" />
-		<method name="isShorterThan(Ljavax/xml/datatype/Duration;)Z" />
-		<method name="multiply(I)Ljavax/xml/datatype/Duration;" />
-		<method name="multiply(Ljava/math/BigDecimal;)Ljavax/xml/datatype/Duration;" />
-		<method name="negate()Ljavax/xml/datatype/Duration;" />
-		<method name="normalizeWith(Ljava/util/Calendar;)Ljavax/xml/datatype/Duration;" />
-		<method name="subtract(Ljavax/xml/datatype/Duration;)Ljavax/xml/datatype/Duration;" />
-	</class>
-	<class name="javax/xml/datatype/XMLGregorianCalendar" since="8">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-		<method name="&lt;init>()V" />
-		<method name="add(Ljavax/xml/datatype/Duration;)V" />
-		<method name="clear()V" />
-		<method name="compare(Ljavax/xml/datatype/XMLGregorianCalendar;)I" />
-		<method name="getDay()I" />
-		<method name="getEon()Ljava/math/BigInteger;" />
-		<method name="getEonAndYear()Ljava/math/BigInteger;" />
-		<method name="getFractionalSecond()Ljava/math/BigDecimal;" />
-		<method name="getHour()I" />
-		<method name="getMillisecond()I" />
-		<method name="getMinute()I" />
-		<method name="getMonth()I" />
-		<method name="getSecond()I" />
-		<method name="getTimeZone(I)Ljava/util/TimeZone;" />
-		<method name="getTimezone()I" />
-		<method name="getXMLSchemaType()Ljavax/xml/namespace/QName;" />
-		<method name="getYear()I" />
-		<method name="isValid()Z" />
-		<method name="normalize()Ljavax/xml/datatype/XMLGregorianCalendar;" />
-		<method name="reset()V" />
-		<method name="setDay(I)V" />
-		<method name="setFractionalSecond(Ljava/math/BigDecimal;)V" />
-		<method name="setHour(I)V" />
-		<method name="setMillisecond(I)V" />
-		<method name="setMinute(I)V" />
-		<method name="setMonth(I)V" />
-		<method name="setSecond(I)V" />
-		<method name="setTime(III)V" />
-		<method name="setTime(IIII)V" />
-		<method name="setTime(IIILjava/math/BigDecimal;)V" />
-		<method name="setTimezone(I)V" />
-		<method name="setYear(I)V" />
-		<method name="setYear(Ljava/math/BigInteger;)V" />
-		<method name="toGregorianCalendar()Ljava/util/GregorianCalendar;" />
-		<method name="toGregorianCalendar(Ljava/util/TimeZone;Ljava/util/Locale;Ljavax/xml/datatype/XMLGregorianCalendar;)Ljava/util/GregorianCalendar;" />
-		<method name="toXMLFormat()Ljava/lang/String;" />
-	</class>
-	<class name="javax/xml/namespace/NamespaceContext" since="8">
-		<extends name="java/lang/Object" />
-		<method name="getNamespaceURI(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getPrefix(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getPrefixes(Ljava/lang/String;)Ljava/util/Iterator;" />
-	</class>
-	<class name="javax/xml/namespace/QName" since="8">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="getLocalPart()Ljava/lang/String;" />
-		<method name="getNamespaceURI()Ljava/lang/String;" />
-		<method name="getPrefix()Ljava/lang/String;" />
-		<method name="valueOf(Ljava/lang/String;)Ljavax/xml/namespace/QName;" />
-	</class>
-	<class name="javax/xml/parsers/DocumentBuilder" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getDOMImplementation()Lorg/w3c/dom/DOMImplementation;" />
-		<method name="getSchema()Ljavax/xml/validation/Schema;" since="8" />
-		<method name="isNamespaceAware()Z" />
-		<method name="isValidating()Z" />
-		<method name="isXIncludeAware()Z" />
-		<method name="newDocument()Lorg/w3c/dom/Document;" />
-		<method name="parse(Ljava/io/File;)Lorg/w3c/dom/Document;" />
-		<method name="parse(Ljava/io/InputStream;)Lorg/w3c/dom/Document;" />
-		<method name="parse(Ljava/io/InputStream;Ljava/lang/String;)Lorg/w3c/dom/Document;" />
-		<method name="parse(Ljava/lang/String;)Lorg/w3c/dom/Document;" />
-		<method name="parse(Lorg/xml/sax/InputSource;)Lorg/w3c/dom/Document;" />
-		<method name="reset()V" />
-		<method name="setEntityResolver(Lorg/xml/sax/EntityResolver;)V" />
-		<method name="setErrorHandler(Lorg/xml/sax/ErrorHandler;)V" />
-	</class>
-	<class name="javax/xml/parsers/DocumentBuilderFactory" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getAttribute(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="getFeature(Ljava/lang/String;)Z" />
-		<method name="getSchema()Ljavax/xml/validation/Schema;" since="8" />
-		<method name="isCoalescing()Z" />
-		<method name="isExpandEntityReferences()Z" />
-		<method name="isIgnoringComments()Z" />
-		<method name="isIgnoringElementContentWhitespace()Z" />
-		<method name="isNamespaceAware()Z" />
-		<method name="isValidating()Z" />
-		<method name="isXIncludeAware()Z" />
-		<method name="newDocumentBuilder()Ljavax/xml/parsers/DocumentBuilder;" />
-		<method name="newInstance()Ljavax/xml/parsers/DocumentBuilderFactory;" />
-		<method name="newInstance(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/parsers/DocumentBuilderFactory;" since="9" />
-		<method name="setAttribute(Ljava/lang/String;Ljava/lang/Object;)V" />
-		<method name="setCoalescing(Z)V" />
-		<method name="setExpandEntityReferences(Z)V" />
-		<method name="setFeature(Ljava/lang/String;Z)V" />
-		<method name="setIgnoringComments(Z)V" />
-		<method name="setIgnoringElementContentWhitespace(Z)V" />
-		<method name="setNamespaceAware(Z)V" />
-		<method name="setSchema(Ljavax/xml/validation/Schema;)V" since="8" />
-		<method name="setValidating(Z)V" />
-		<method name="setXIncludeAware(Z)V" />
-	</class>
-	<class name="javax/xml/parsers/FactoryConfigurationError" since="1">
-		<extends name="java/lang/Error" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/Exception;)V" />
-		<method name="&lt;init>(Ljava/lang/Exception;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="getException()Ljava/lang/Exception;" />
-	</class>
-	<class name="javax/xml/parsers/ParserConfigurationException" since="1">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="javax/xml/parsers/SAXParser" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getParser()Lorg/xml/sax/Parser;" />
-		<method name="getProperty(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="getSchema()Ljavax/xml/validation/Schema;" since="8" />
-		<method name="getXMLReader()Lorg/xml/sax/XMLReader;" />
-		<method name="isNamespaceAware()Z" />
-		<method name="isValidating()Z" />
-		<method name="isXIncludeAware()Z" />
-		<method name="parse(Ljava/io/File;Lorg/xml/sax/HandlerBase;)V" />
-		<method name="parse(Ljava/io/File;Lorg/xml/sax/helpers/DefaultHandler;)V" />
-		<method name="parse(Ljava/io/InputStream;Lorg/xml/sax/HandlerBase;)V" />
-		<method name="parse(Ljava/io/InputStream;Lorg/xml/sax/HandlerBase;Ljava/lang/String;)V" />
-		<method name="parse(Ljava/io/InputStream;Lorg/xml/sax/helpers/DefaultHandler;)V" />
-		<method name="parse(Ljava/io/InputStream;Lorg/xml/sax/helpers/DefaultHandler;Ljava/lang/String;)V" />
-		<method name="parse(Ljava/lang/String;Lorg/xml/sax/HandlerBase;)V" />
-		<method name="parse(Ljava/lang/String;Lorg/xml/sax/helpers/DefaultHandler;)V" />
-		<method name="parse(Lorg/xml/sax/InputSource;Lorg/xml/sax/HandlerBase;)V" />
-		<method name="parse(Lorg/xml/sax/InputSource;Lorg/xml/sax/helpers/DefaultHandler;)V" />
-		<method name="reset()V" />
-		<method name="setProperty(Ljava/lang/String;Ljava/lang/Object;)V" />
-	</class>
-	<class name="javax/xml/parsers/SAXParserFactory" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getFeature(Ljava/lang/String;)Z" />
-		<method name="getSchema()Ljavax/xml/validation/Schema;" since="8" />
-		<method name="isNamespaceAware()Z" />
-		<method name="isValidating()Z" />
-		<method name="isXIncludeAware()Z" />
-		<method name="newInstance()Ljavax/xml/parsers/SAXParserFactory;" />
-		<method name="newInstance(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/parsers/SAXParserFactory;" since="9" />
-		<method name="newSAXParser()Ljavax/xml/parsers/SAXParser;" />
-		<method name="setFeature(Ljava/lang/String;Z)V" />
-		<method name="setNamespaceAware(Z)V" />
-		<method name="setSchema(Ljavax/xml/validation/Schema;)V" since="8" />
-		<method name="setValidating(Z)V" />
-		<method name="setXIncludeAware(Z)V" />
-	</class>
-	<class name="javax/xml/transform/ErrorListener" since="8">
-		<extends name="java/lang/Object" />
-		<method name="error(Ljavax/xml/transform/TransformerException;)V" />
-		<method name="fatalError(Ljavax/xml/transform/TransformerException;)V" />
-		<method name="warning(Ljavax/xml/transform/TransformerException;)V" />
-	</class>
-	<class name="javax/xml/transform/OutputKeys" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="CDATA_SECTION_ELEMENTS" />
-		<field name="DOCTYPE_PUBLIC" />
-		<field name="DOCTYPE_SYSTEM" />
-		<field name="ENCODING" />
-		<field name="INDENT" />
-		<field name="MEDIA_TYPE" />
-		<field name="METHOD" />
-		<field name="OMIT_XML_DECLARATION" />
-		<field name="STANDALONE" />
-		<field name="VERSION" />
-	</class>
-	<class name="javax/xml/transform/Result" since="8">
-		<extends name="java/lang/Object" />
-		<method name="getSystemId()Ljava/lang/String;" />
-		<method name="setSystemId(Ljava/lang/String;)V" />
-		<field name="PI_DISABLE_OUTPUT_ESCAPING" />
-		<field name="PI_ENABLE_OUTPUT_ESCAPING" />
-	</class>
-	<class name="javax/xml/transform/Source" since="8">
-		<extends name="java/lang/Object" />
-		<method name="getSystemId()Ljava/lang/String;" />
-		<method name="setSystemId(Ljava/lang/String;)V" />
-	</class>
-	<class name="javax/xml/transform/SourceLocator" since="8">
-		<extends name="java/lang/Object" />
-		<method name="getColumnNumber()I" />
-		<method name="getLineNumber()I" />
-		<method name="getPublicId()Ljava/lang/String;" />
-		<method name="getSystemId()Ljava/lang/String;" />
-	</class>
-	<class name="javax/xml/transform/Templates" since="8">
-		<extends name="java/lang/Object" />
-		<method name="getOutputProperties()Ljava/util/Properties;" />
-		<method name="newTransformer()Ljavax/xml/transform/Transformer;" />
-	</class>
-	<class name="javax/xml/transform/Transformer" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="clearParameters()V" />
-		<method name="getErrorListener()Ljavax/xml/transform/ErrorListener;" />
-		<method name="getOutputProperties()Ljava/util/Properties;" />
-		<method name="getOutputProperty(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getParameter(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="getURIResolver()Ljavax/xml/transform/URIResolver;" />
-		<method name="reset()V" />
-		<method name="setErrorListener(Ljavax/xml/transform/ErrorListener;)V" />
-		<method name="setOutputProperties(Ljava/util/Properties;)V" />
-		<method name="setOutputProperty(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="setParameter(Ljava/lang/String;Ljava/lang/Object;)V" />
-		<method name="setURIResolver(Ljavax/xml/transform/URIResolver;)V" />
-		<method name="transform(Ljavax/xml/transform/Source;Ljavax/xml/transform/Result;)V" />
-	</class>
-	<class name="javax/xml/transform/TransformerConfigurationException" since="8">
-		<extends name="javax/xml/transform/TransformerException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljavax/xml/transform/SourceLocator;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljavax/xml/transform/SourceLocator;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="javax/xml/transform/TransformerException" since="8">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljavax/xml/transform/SourceLocator;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljavax/xml/transform/SourceLocator;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-		<method name="getException()Ljava/lang/Throwable;" />
-		<method name="getLocationAsString()Ljava/lang/String;" />
-		<method name="getLocator()Ljavax/xml/transform/SourceLocator;" />
-		<method name="getMessageAndLocation()Ljava/lang/String;" />
-		<method name="setLocator(Ljavax/xml/transform/SourceLocator;)V" />
-	</class>
-	<class name="javax/xml/transform/TransformerFactory" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getAssociatedStylesheet(Ljavax/xml/transform/Source;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljavax/xml/transform/Source;" />
-		<method name="getAttribute(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="getErrorListener()Ljavax/xml/transform/ErrorListener;" />
-		<method name="getFeature(Ljava/lang/String;)Z" />
-		<method name="getURIResolver()Ljavax/xml/transform/URIResolver;" />
-		<method name="newInstance()Ljavax/xml/transform/TransformerFactory;" />
-		<method name="newInstance(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/transform/TransformerFactory;" since="9" />
-		<method name="newTemplates(Ljavax/xml/transform/Source;)Ljavax/xml/transform/Templates;" />
-		<method name="newTransformer()Ljavax/xml/transform/Transformer;" />
-		<method name="newTransformer(Ljavax/xml/transform/Source;)Ljavax/xml/transform/Transformer;" />
-		<method name="setAttribute(Ljava/lang/String;Ljava/lang/Object;)V" />
-		<method name="setErrorListener(Ljavax/xml/transform/ErrorListener;)V" />
-		<method name="setFeature(Ljava/lang/String;Z)V" />
-		<method name="setURIResolver(Ljavax/xml/transform/URIResolver;)V" />
-	</class>
-	<class name="javax/xml/transform/TransformerFactoryConfigurationError" since="8">
-		<extends name="java/lang/Error" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/Exception;)V" />
-		<method name="&lt;init>(Ljava/lang/Exception;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="getException()Ljava/lang/Exception;" />
-	</class>
-	<class name="javax/xml/transform/URIResolver" since="8">
-		<extends name="java/lang/Object" />
-		<method name="resolve(Ljava/lang/String;Ljava/lang/String;)Ljavax/xml/transform/Source;" />
-	</class>
-	<class name="javax/xml/transform/dom/DOMLocator" since="8">
-		<extends name="java/lang/Object" />
-		<implements name="javax/xml/transform/SourceLocator" />
-		<method name="getOriginatingNode()Lorg/w3c/dom/Node;" />
-	</class>
-	<class name="javax/xml/transform/dom/DOMResult" since="8">
-		<extends name="java/lang/Object" />
-		<implements name="javax/xml/transform/Result" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Lorg/w3c/dom/Node;)V" />
-		<method name="&lt;init>(Lorg/w3c/dom/Node;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Lorg/w3c/dom/Node;Lorg/w3c/dom/Node;)V" />
-		<method name="&lt;init>(Lorg/w3c/dom/Node;Lorg/w3c/dom/Node;Ljava/lang/String;)V" />
-		<method name="getNextSibling()Lorg/w3c/dom/Node;" />
-		<method name="getNode()Lorg/w3c/dom/Node;" />
-		<method name="setNextSibling(Lorg/w3c/dom/Node;)V" />
-		<method name="setNode(Lorg/w3c/dom/Node;)V" />
-		<field name="FEATURE" />
-	</class>
-	<class name="javax/xml/transform/dom/DOMSource" since="8">
-		<extends name="java/lang/Object" />
-		<implements name="javax/xml/transform/Source" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Lorg/w3c/dom/Node;)V" />
-		<method name="&lt;init>(Lorg/w3c/dom/Node;Ljava/lang/String;)V" />
-		<method name="getNode()Lorg/w3c/dom/Node;" />
-		<method name="setNode(Lorg/w3c/dom/Node;)V" />
-		<field name="FEATURE" />
-	</class>
-	<class name="javax/xml/transform/sax/SAXResult" since="8">
-		<extends name="java/lang/Object" />
-		<implements name="javax/xml/transform/Result" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Lorg/xml/sax/ContentHandler;)V" />
-		<method name="getHandler()Lorg/xml/sax/ContentHandler;" />
-		<method name="getLexicalHandler()Lorg/xml/sax/ext/LexicalHandler;" />
-		<method name="setHandler(Lorg/xml/sax/ContentHandler;)V" />
-		<method name="setLexicalHandler(Lorg/xml/sax/ext/LexicalHandler;)V" />
-		<field name="FEATURE" />
-	</class>
-	<class name="javax/xml/transform/sax/SAXSource" since="8">
-		<extends name="java/lang/Object" />
-		<implements name="javax/xml/transform/Source" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Lorg/xml/sax/InputSource;)V" />
-		<method name="&lt;init>(Lorg/xml/sax/XMLReader;Lorg/xml/sax/InputSource;)V" />
-		<method name="getInputSource()Lorg/xml/sax/InputSource;" />
-		<method name="getXMLReader()Lorg/xml/sax/XMLReader;" />
-		<method name="setInputSource(Lorg/xml/sax/InputSource;)V" />
-		<method name="setXMLReader(Lorg/xml/sax/XMLReader;)V" />
-		<method name="sourceToInputSource(Ljavax/xml/transform/Source;)Lorg/xml/sax/InputSource;" />
-		<field name="FEATURE" />
-	</class>
-	<class name="javax/xml/transform/sax/SAXTransformerFactory" since="8">
-		<extends name="javax/xml/transform/TransformerFactory" />
-		<method name="&lt;init>()V" />
-		<method name="newTemplatesHandler()Ljavax/xml/transform/sax/TemplatesHandler;" />
-		<method name="newTransformerHandler()Ljavax/xml/transform/sax/TransformerHandler;" />
-		<method name="newTransformerHandler(Ljavax/xml/transform/Source;)Ljavax/xml/transform/sax/TransformerHandler;" />
-		<method name="newTransformerHandler(Ljavax/xml/transform/Templates;)Ljavax/xml/transform/sax/TransformerHandler;" />
-		<method name="newXMLFilter(Ljavax/xml/transform/Source;)Lorg/xml/sax/XMLFilter;" />
-		<method name="newXMLFilter(Ljavax/xml/transform/Templates;)Lorg/xml/sax/XMLFilter;" />
-		<field name="FEATURE" />
-		<field name="FEATURE_XMLFILTER" />
-	</class>
-	<class name="javax/xml/transform/sax/TemplatesHandler" since="8">
-		<extends name="java/lang/Object" />
-		<implements name="org/xml/sax/ContentHandler" />
-		<method name="getSystemId()Ljava/lang/String;" />
-		<method name="getTemplates()Ljavax/xml/transform/Templates;" />
-		<method name="setSystemId(Ljava/lang/String;)V" />
-	</class>
-	<class name="javax/xml/transform/sax/TransformerHandler" since="8">
-		<extends name="java/lang/Object" />
-		<implements name="org/xml/sax/ContentHandler" />
-		<implements name="org/xml/sax/DTDHandler" />
-		<implements name="org/xml/sax/ext/LexicalHandler" />
-		<method name="getSystemId()Ljava/lang/String;" />
-		<method name="getTransformer()Ljavax/xml/transform/Transformer;" />
-		<method name="setResult(Ljavax/xml/transform/Result;)V" />
-		<method name="setSystemId(Ljava/lang/String;)V" />
-	</class>
-	<class name="javax/xml/transform/stream/StreamResult" since="8">
-		<extends name="java/lang/Object" />
-		<implements name="javax/xml/transform/Result" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/io/File;)V" />
-		<method name="&lt;init>(Ljava/io/OutputStream;)V" />
-		<method name="&lt;init>(Ljava/io/Writer;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="getOutputStream()Ljava/io/OutputStream;" />
-		<method name="getWriter()Ljava/io/Writer;" />
-		<method name="setOutputStream(Ljava/io/OutputStream;)V" />
-		<method name="setSystemId(Ljava/io/File;)V" />
-		<method name="setWriter(Ljava/io/Writer;)V" />
-		<field name="FEATURE" />
-	</class>
-	<class name="javax/xml/transform/stream/StreamSource" since="8">
-		<extends name="java/lang/Object" />
-		<implements name="javax/xml/transform/Source" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/io/File;)V" />
-		<method name="&lt;init>(Ljava/io/InputStream;)V" />
-		<method name="&lt;init>(Ljava/io/InputStream;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/io/Reader;)V" />
-		<method name="&lt;init>(Ljava/io/Reader;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="getInputStream()Ljava/io/InputStream;" />
-		<method name="getPublicId()Ljava/lang/String;" />
-		<method name="getReader()Ljava/io/Reader;" />
-		<method name="setInputStream(Ljava/io/InputStream;)V" />
-		<method name="setPublicId(Ljava/lang/String;)V" />
-		<method name="setReader(Ljava/io/Reader;)V" />
-		<method name="setSystemId(Ljava/io/File;)V" />
-		<field name="FEATURE" />
-	</class>
-	<class name="javax/xml/validation/Schema" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="newValidator()Ljavax/xml/validation/Validator;" />
-		<method name="newValidatorHandler()Ljavax/xml/validation/ValidatorHandler;" />
-	</class>
-	<class name="javax/xml/validation/SchemaFactory" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getErrorHandler()Lorg/xml/sax/ErrorHandler;" />
-		<method name="getFeature(Ljava/lang/String;)Z" />
-		<method name="getProperty(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="getResourceResolver()Lorg/w3c/dom/ls/LSResourceResolver;" />
-		<method name="isSchemaLanguageSupported(Ljava/lang/String;)Z" />
-		<method name="newInstance(Ljava/lang/String;)Ljavax/xml/validation/SchemaFactory;" />
-		<method name="newInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/validation/SchemaFactory;" since="9" />
-		<method name="newSchema()Ljavax/xml/validation/Schema;" />
-		<method name="newSchema(Ljava/io/File;)Ljavax/xml/validation/Schema;" />
-		<method name="newSchema(Ljava/net/URL;)Ljavax/xml/validation/Schema;" />
-		<method name="newSchema(Ljavax/xml/transform/Source;)Ljavax/xml/validation/Schema;" />
-		<method name="newSchema([Ljavax/xml/transform/Source;)Ljavax/xml/validation/Schema;" />
-		<method name="setErrorHandler(Lorg/xml/sax/ErrorHandler;)V" />
-		<method name="setFeature(Ljava/lang/String;Z)V" />
-		<method name="setProperty(Ljava/lang/String;Ljava/lang/Object;)V" />
-		<method name="setResourceResolver(Lorg/w3c/dom/ls/LSResourceResolver;)V" />
-	</class>
-	<class name="javax/xml/validation/SchemaFactoryLoader" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="newFactory(Ljava/lang/String;)Ljavax/xml/validation/SchemaFactory;" />
-	</class>
-	<class name="javax/xml/validation/TypeInfoProvider" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getAttributeTypeInfo(I)Lorg/w3c/dom/TypeInfo;" />
-		<method name="getElementTypeInfo()Lorg/w3c/dom/TypeInfo;" />
-		<method name="isIdAttribute(I)Z" />
-		<method name="isSpecified(I)Z" />
-	</class>
-	<class name="javax/xml/validation/Validator" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getErrorHandler()Lorg/xml/sax/ErrorHandler;" />
-		<method name="getFeature(Ljava/lang/String;)Z" />
-		<method name="getProperty(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="getResourceResolver()Lorg/w3c/dom/ls/LSResourceResolver;" />
-		<method name="reset()V" />
-		<method name="setErrorHandler(Lorg/xml/sax/ErrorHandler;)V" />
-		<method name="setFeature(Ljava/lang/String;Z)V" />
-		<method name="setProperty(Ljava/lang/String;Ljava/lang/Object;)V" />
-		<method name="setResourceResolver(Lorg/w3c/dom/ls/LSResourceResolver;)V" />
-		<method name="validate(Ljavax/xml/transform/Source;)V" />
-		<method name="validate(Ljavax/xml/transform/Source;Ljavax/xml/transform/Result;)V" />
-	</class>
-	<class name="javax/xml/validation/ValidatorHandler" since="8">
-		<extends name="java/lang/Object" />
-		<implements name="org/xml/sax/ContentHandler" />
-		<method name="&lt;init>()V" />
-		<method name="getContentHandler()Lorg/xml/sax/ContentHandler;" />
-		<method name="getErrorHandler()Lorg/xml/sax/ErrorHandler;" />
-		<method name="getFeature(Ljava/lang/String;)Z" />
-		<method name="getProperty(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="getResourceResolver()Lorg/w3c/dom/ls/LSResourceResolver;" />
-		<method name="getTypeInfoProvider()Ljavax/xml/validation/TypeInfoProvider;" />
-		<method name="setContentHandler(Lorg/xml/sax/ContentHandler;)V" />
-		<method name="setErrorHandler(Lorg/xml/sax/ErrorHandler;)V" />
-		<method name="setFeature(Ljava/lang/String;Z)V" />
-		<method name="setProperty(Ljava/lang/String;Ljava/lang/Object;)V" />
-		<method name="setResourceResolver(Lorg/w3c/dom/ls/LSResourceResolver;)V" />
-	</class>
-	<class name="javax/xml/xpath/XPath" since="8">
-		<extends name="java/lang/Object" />
-		<method name="compile(Ljava/lang/String;)Ljavax/xml/xpath/XPathExpression;" />
-		<method name="evaluate(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/String;" />
-		<method name="evaluate(Ljava/lang/String;Ljava/lang/Object;Ljavax/xml/namespace/QName;)Ljava/lang/Object;" />
-		<method name="evaluate(Ljava/lang/String;Lorg/xml/sax/InputSource;)Ljava/lang/String;" />
-		<method name="evaluate(Ljava/lang/String;Lorg/xml/sax/InputSource;Ljavax/xml/namespace/QName;)Ljava/lang/Object;" />
-		<method name="getNamespaceContext()Ljavax/xml/namespace/NamespaceContext;" />
-		<method name="getXPathFunctionResolver()Ljavax/xml/xpath/XPathFunctionResolver;" />
-		<method name="getXPathVariableResolver()Ljavax/xml/xpath/XPathVariableResolver;" />
-		<method name="reset()V" />
-		<method name="setNamespaceContext(Ljavax/xml/namespace/NamespaceContext;)V" />
-		<method name="setXPathFunctionResolver(Ljavax/xml/xpath/XPathFunctionResolver;)V" />
-		<method name="setXPathVariableResolver(Ljavax/xml/xpath/XPathVariableResolver;)V" />
-	</class>
-	<class name="javax/xml/xpath/XPathConstants" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="BOOLEAN" />
-		<field name="DOM_OBJECT_MODEL" />
-		<field name="NODE" />
-		<field name="NODESET" />
-		<field name="NUMBER" />
-		<field name="STRING" />
-	</class>
-	<class name="javax/xml/xpath/XPathException" since="8">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="javax/xml/xpath/XPathExpression" since="8">
-		<extends name="java/lang/Object" />
-		<method name="evaluate(Ljava/lang/Object;)Ljava/lang/String;" />
-		<method name="evaluate(Ljava/lang/Object;Ljavax/xml/namespace/QName;)Ljava/lang/Object;" />
-		<method name="evaluate(Lorg/xml/sax/InputSource;)Ljava/lang/String;" />
-		<method name="evaluate(Lorg/xml/sax/InputSource;Ljavax/xml/namespace/QName;)Ljava/lang/Object;" />
-	</class>
-	<class name="javax/xml/xpath/XPathExpressionException" since="8">
-		<extends name="javax/xml/xpath/XPathException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="javax/xml/xpath/XPathFactory" since="8">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getFeature(Ljava/lang/String;)Z" />
-		<method name="isObjectModelSupported(Ljava/lang/String;)Z" />
-		<method name="newInstance()Ljavax/xml/xpath/XPathFactory;" />
-		<method name="newInstance(Ljava/lang/String;)Ljavax/xml/xpath/XPathFactory;" />
-		<method name="newInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/xpath/XPathFactory;" />
-		<method name="newXPath()Ljavax/xml/xpath/XPath;" />
-		<method name="setFeature(Ljava/lang/String;Z)V" />
-		<method name="setXPathFunctionResolver(Ljavax/xml/xpath/XPathFunctionResolver;)V" />
-		<method name="setXPathVariableResolver(Ljavax/xml/xpath/XPathVariableResolver;)V" />
-		<field name="DEFAULT_OBJECT_MODEL_URI" />
-		<field name="DEFAULT_PROPERTY_NAME" />
-	</class>
-	<class name="javax/xml/xpath/XPathFactoryConfigurationException" since="8">
-		<extends name="javax/xml/xpath/XPathException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="javax/xml/xpath/XPathFunction" since="8">
-		<extends name="java/lang/Object" />
-		<method name="evaluate(Ljava/util/List;)Ljava/lang/Object;" />
-	</class>
-	<class name="javax/xml/xpath/XPathFunctionException" since="8">
-		<extends name="javax/xml/xpath/XPathExpressionException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="javax/xml/xpath/XPathFunctionResolver" since="8">
-		<extends name="java/lang/Object" />
-		<method name="resolveFunction(Ljavax/xml/namespace/QName;I)Ljavax/xml/xpath/XPathFunction;" />
-	</class>
-	<class name="javax/xml/xpath/XPathVariableResolver" since="8">
-		<extends name="java/lang/Object" />
-		<method name="resolveVariable(Ljavax/xml/namespace/QName;)Ljava/lang/Object;" />
-	</class>
-	<class name="junit/framework/Assert" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="assertEquals(BB)V" />
-		<method name="assertEquals(CC)V" />
-		<method name="assertEquals(DDD)V" />
-		<method name="assertEquals(FFF)V" />
-		<method name="assertEquals(II)V" />
-		<method name="assertEquals(JJ)V" />
-		<method name="assertEquals(Ljava/lang/Object;Ljava/lang/Object;)V" />
-		<method name="assertEquals(Ljava/lang/String;BB)V" />
-		<method name="assertEquals(Ljava/lang/String;CC)V" />
-		<method name="assertEquals(Ljava/lang/String;DDD)V" />
-		<method name="assertEquals(Ljava/lang/String;FFF)V" />
-		<method name="assertEquals(Ljava/lang/String;II)V" />
-		<method name="assertEquals(Ljava/lang/String;JJ)V" />
-		<method name="assertEquals(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V" />
-		<method name="assertEquals(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="assertEquals(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="assertEquals(Ljava/lang/String;SS)V" />
-		<method name="assertEquals(Ljava/lang/String;ZZ)V" />
-		<method name="assertEquals(SS)V" />
-		<method name="assertEquals(ZZ)V" />
-		<method name="assertFalse(Ljava/lang/String;Z)V" />
-		<method name="assertFalse(Z)V" />
-		<method name="assertNotNull(Ljava/lang/Object;)V" />
-		<method name="assertNotNull(Ljava/lang/String;Ljava/lang/Object;)V" />
-		<method name="assertNotSame(Ljava/lang/Object;Ljava/lang/Object;)V" />
-		<method name="assertNotSame(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V" />
-		<method name="assertNull(Ljava/lang/Object;)V" />
-		<method name="assertNull(Ljava/lang/String;Ljava/lang/Object;)V" />
-		<method name="assertSame(Ljava/lang/Object;Ljava/lang/Object;)V" />
-		<method name="assertSame(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V" />
-		<method name="assertTrue(Ljava/lang/String;Z)V" />
-		<method name="assertTrue(Z)V" />
-		<method name="fail()V" />
-		<method name="fail(Ljava/lang/String;)V" />
-		<method name="failNotEquals(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V" since="16" />
-		<method name="failNotSame(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V" since="16" />
-		<method name="failSame(Ljava/lang/String;)V" since="16" />
-		<method name="format(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/String;" since="16" />
-	</class>
-	<class name="junit/framework/AssertionFailedError" since="1">
-		<extends name="java/lang/AssertionError" since="16" />
-		<extends name="java/lang/Error" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="junit/framework/ComparisonFailure" since="1">
-		<extends name="junit/framework/AssertionFailedError" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="getActual()Ljava/lang/String;" since="16" />
-		<method name="getExpected()Ljava/lang/String;" since="16" />
-	</class>
-	<class name="junit/framework/Protectable" since="1">
-		<extends name="java/lang/Object" />
-		<method name="protect()V" />
-	</class>
-	<class name="junit/framework/Test" since="1">
-		<extends name="java/lang/Object" />
-		<method name="countTestCases()I" />
-		<method name="run(Ljunit/framework/TestResult;)V" />
-	</class>
-	<class name="junit/framework/TestCase" since="1">
-		<extends name="junit/framework/Assert" />
-		<implements name="junit/framework/Test" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="createResult()Ljunit/framework/TestResult;" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="run()Ljunit/framework/TestResult;" />
-		<method name="runBare()V" />
-		<method name="runTest()V" />
-		<method name="setName(Ljava/lang/String;)V" />
-		<method name="setUp()V" />
-		<method name="tearDown()V" />
-	</class>
-	<class name="junit/framework/TestFailure" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljunit/framework/Test;Ljava/lang/Throwable;)V" />
-		<method name="exceptionMessage()Ljava/lang/String;" />
-		<method name="failedTest()Ljunit/framework/Test;" />
-		<method name="isFailure()Z" />
-		<method name="thrownException()Ljava/lang/Throwable;" />
-		<method name="trace()Ljava/lang/String;" />
-		<field name="fFailedTest" />
-		<field name="fThrownException" />
-	</class>
-	<class name="junit/framework/TestListener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="addError(Ljunit/framework/Test;Ljava/lang/Throwable;)V" />
-		<method name="addFailure(Ljunit/framework/Test;Ljunit/framework/AssertionFailedError;)V" />
-		<method name="endTest(Ljunit/framework/Test;)V" />
-		<method name="startTest(Ljunit/framework/Test;)V" />
-	</class>
-	<class name="junit/framework/TestResult" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="addError(Ljunit/framework/Test;Ljava/lang/Throwable;)V" />
-		<method name="addFailure(Ljunit/framework/Test;Ljunit/framework/AssertionFailedError;)V" />
-		<method name="addListener(Ljunit/framework/TestListener;)V" />
-		<method name="endTest(Ljunit/framework/Test;)V" />
-		<method name="errorCount()I" />
-		<method name="errors()Ljava/util/Enumeration;" />
-		<method name="failureCount()I" />
-		<method name="failures()Ljava/util/Enumeration;" />
-		<method name="removeListener(Ljunit/framework/TestListener;)V" />
-		<method name="run(Ljunit/framework/TestCase;)V" />
-		<method name="runCount()I" />
-		<method name="runProtected(Ljunit/framework/Test;Ljunit/framework/Protectable;)V" />
-		<method name="shouldStop()Z" />
-		<method name="startTest(Ljunit/framework/Test;)V" />
-		<method name="stop()V" />
-		<method name="wasSuccessful()Z" />
-		<field name="fErrors" />
-		<field name="fFailures" />
-		<field name="fListeners" />
-		<field name="fRunTests" />
-	</class>
-	<class name="junit/framework/TestSuite" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="junit/framework/Test" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/Class;)V" />
-		<method name="&lt;init>(Ljava/lang/Class;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>([Ljava/lang/Class;)V" since="16" />
-		<method name="&lt;init>([Ljava/lang/Class;Ljava/lang/String;)V" since="16" />
-		<method name="addTest(Ljunit/framework/Test;)V" />
-		<method name="addTestSuite(Ljava/lang/Class;)V" />
-		<method name="createTest(Ljava/lang/Class;Ljava/lang/String;)Ljunit/framework/Test;" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getTestConstructor(Ljava/lang/Class;)Ljava/lang/reflect/Constructor;" />
-		<method name="runTest(Ljunit/framework/Test;Ljunit/framework/TestResult;)V" />
-		<method name="setName(Ljava/lang/String;)V" />
-		<method name="testAt(I)Ljunit/framework/Test;" />
-		<method name="testCount()I" />
-		<method name="tests()Ljava/util/Enumeration;" />
-		<method name="warning(Ljava/lang/String;)Ljunit/framework/Test;" since="16" />
-	</class>
-	<class name="junit/runner/BaseTestRunner" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="junit/framework/TestListener" />
-		<method name="&lt;init>()V" />
-		<method name="clearStatus()V" />
-		<method name="elapsedTimeAsString(J)Ljava/lang/String;" />
-		<method name="extractClassName(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getFilteredTrace(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getFilteredTrace(Ljava/lang/Throwable;)Ljava/lang/String;" />
-		<method name="getLoader()Ljunit/runner/TestSuiteLoader;" />
-		<method name="getPreference(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getPreference(Ljava/lang/String;I)I" />
-		<method name="getPreferences()Ljava/util/Properties;" />
-		<method name="getTest(Ljava/lang/String;)Ljunit/framework/Test;" />
-		<method name="inVAJava()Z" />
-		<method name="loadSuiteClass(Ljava/lang/String;)Ljava/lang/Class;" />
-		<method name="processArguments([Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="runFailed(Ljava/lang/String;)V" />
-		<method name="savePreferences()V" />
-		<method name="setLoading(Z)V" />
-		<method name="setPreference(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="setPreferences(Ljava/util/Properties;)V" />
-		<method name="showStackRaw()Z" />
-		<method name="testEnded(Ljava/lang/String;)V" />
-		<method name="testFailed(ILjunit/framework/Test;Ljava/lang/Throwable;)V" />
-		<method name="testStarted(Ljava/lang/String;)V" />
-		<method name="truncate(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="useReloadingTestSuiteLoader()Z" />
-		<field name="SUITE_METHODNAME" />
-	</class>
-	<class name="junit/runner/TestSuiteLoader" since="1">
-		<extends name="java/lang/Object" />
-		<method name="load(Ljava/lang/String;)Ljava/lang/Class;" />
-		<method name="reload(Ljava/lang/Class;)Ljava/lang/Class;" />
-	</class>
-	<class name="junit/runner/Version" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="id()Ljava/lang/String;" />
-	</class>
-	<class name="org/apache/commons/logging/Log" since="1">
-		<extends name="java/lang/Object" />
-		<method name="debug(Ljava/lang/Object;)V" />
-		<method name="debug(Ljava/lang/Object;Ljava/lang/Throwable;)V" />
-		<method name="error(Ljava/lang/Object;)V" />
-		<method name="error(Ljava/lang/Object;Ljava/lang/Throwable;)V" />
-		<method name="fatal(Ljava/lang/Object;)V" />
-		<method name="fatal(Ljava/lang/Object;Ljava/lang/Throwable;)V" />
-		<method name="info(Ljava/lang/Object;)V" />
-		<method name="info(Ljava/lang/Object;Ljava/lang/Throwable;)V" />
-		<method name="isDebugEnabled()Z" />
-		<method name="isErrorEnabled()Z" />
-		<method name="isFatalEnabled()Z" />
-		<method name="isInfoEnabled()Z" />
-		<method name="isTraceEnabled()Z" />
-		<method name="isWarnEnabled()Z" />
-		<method name="trace(Ljava/lang/Object;)V" />
-		<method name="trace(Ljava/lang/Object;Ljava/lang/Throwable;)V" />
-		<method name="warn(Ljava/lang/Object;)V" />
-		<method name="warn(Ljava/lang/Object;Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="org/apache/http/ConnectionClosedException" since="1">
-		<extends name="java/io/IOException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="org/apache/http/ConnectionReuseStrategy" since="1">
-		<extends name="java/lang/Object" />
-		<method name="keepAlive(Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)Z" />
-	</class>
-	<class name="org/apache/http/FormattedHeader" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/Header" />
-		<method name="getBuffer()Lorg/apache/http/util/CharArrayBuffer;" />
-		<method name="getValuePos()I" />
-	</class>
-	<class name="org/apache/http/Header" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getElements()[Lorg/apache/http/HeaderElement;" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getValue()Ljava/lang/String;" />
-	</class>
-	<class name="org/apache/http/HeaderElement" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getParameter(I)Lorg/apache/http/NameValuePair;" />
-		<method name="getParameterByName(Ljava/lang/String;)Lorg/apache/http/NameValuePair;" />
-		<method name="getParameterCount()I" />
-		<method name="getParameters()[Lorg/apache/http/NameValuePair;" />
-		<method name="getValue()Ljava/lang/String;" />
-	</class>
-	<class name="org/apache/http/HeaderElementIterator" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/Iterator" />
-		<method name="nextElement()Lorg/apache/http/HeaderElement;" />
-	</class>
-	<class name="org/apache/http/HeaderIterator" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/Iterator" />
-		<method name="nextHeader()Lorg/apache/http/Header;" />
-	</class>
-	<class name="org/apache/http/HttpClientConnection" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HttpConnection" />
-		<method name="flush()V" />
-		<method name="isResponseAvailable(I)Z" />
-		<method name="receiveResponseEntity(Lorg/apache/http/HttpResponse;)V" />
-		<method name="receiveResponseHeader()Lorg/apache/http/HttpResponse;" />
-		<method name="sendRequestEntity(Lorg/apache/http/HttpEntityEnclosingRequest;)V" />
-		<method name="sendRequestHeader(Lorg/apache/http/HttpRequest;)V" />
-	</class>
-	<class name="org/apache/http/HttpConnection" since="1">
-		<extends name="java/lang/Object" />
-		<method name="close()V" />
-		<method name="getMetrics()Lorg/apache/http/HttpConnectionMetrics;" />
-		<method name="getSocketTimeout()I" />
-		<method name="isOpen()Z" />
-		<method name="isStale()Z" />
-		<method name="setSocketTimeout(I)V" />
-		<method name="shutdown()V" />
-	</class>
-	<class name="org/apache/http/HttpConnectionMetrics" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getMetric(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="getReceivedBytesCount()J" />
-		<method name="getRequestCount()J" />
-		<method name="getResponseCount()J" />
-		<method name="getSentBytesCount()J" />
-		<method name="reset()V" />
-	</class>
-	<class name="org/apache/http/HttpEntity" since="1">
-		<extends name="java/lang/Object" />
-		<method name="consumeContent()V" />
-		<method name="getContent()Ljava/io/InputStream;" />
-		<method name="getContentEncoding()Lorg/apache/http/Header;" />
-		<method name="getContentLength()J" />
-		<method name="getContentType()Lorg/apache/http/Header;" />
-		<method name="isChunked()Z" />
-		<method name="isRepeatable()Z" />
-		<method name="isStreaming()Z" />
-		<method name="writeTo(Ljava/io/OutputStream;)V" />
-	</class>
-	<class name="org/apache/http/HttpEntityEnclosingRequest" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HttpRequest" />
-		<method name="expectContinue()Z" />
-		<method name="getEntity()Lorg/apache/http/HttpEntity;" />
-		<method name="setEntity(Lorg/apache/http/HttpEntity;)V" />
-	</class>
-	<class name="org/apache/http/HttpException" since="1">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="org/apache/http/HttpHost" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;I)V" />
-		<method name="&lt;init>(Ljava/lang/String;ILjava/lang/String;)V" />
-		<method name="&lt;init>(Lorg/apache/http/HttpHost;)V" />
-		<method name="getHostName()Ljava/lang/String;" />
-		<method name="getPort()I" />
-		<method name="getSchemeName()Ljava/lang/String;" />
-		<method name="toHostString()Ljava/lang/String;" />
-		<method name="toURI()Ljava/lang/String;" />
-		<field name="DEFAULT_SCHEME_NAME" />
-		<field name="hostname" />
-		<field name="lcHostname" />
-		<field name="port" />
-		<field name="schemeName" />
-	</class>
-	<class name="org/apache/http/HttpInetConnection" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HttpConnection" />
-		<method name="getLocalAddress()Ljava/net/InetAddress;" />
-		<method name="getLocalPort()I" />
-		<method name="getRemoteAddress()Ljava/net/InetAddress;" />
-		<method name="getRemotePort()I" />
-	</class>
-	<class name="org/apache/http/HttpMessage" since="1">
-		<extends name="java/lang/Object" />
-		<method name="addHeader(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="addHeader(Lorg/apache/http/Header;)V" />
-		<method name="containsHeader(Ljava/lang/String;)Z" />
-		<method name="getAllHeaders()[Lorg/apache/http/Header;" />
-		<method name="getFirstHeader(Ljava/lang/String;)Lorg/apache/http/Header;" />
-		<method name="getHeaders(Ljava/lang/String;)[Lorg/apache/http/Header;" />
-		<method name="getLastHeader(Ljava/lang/String;)Lorg/apache/http/Header;" />
-		<method name="getParams()Lorg/apache/http/params/HttpParams;" />
-		<method name="getProtocolVersion()Lorg/apache/http/ProtocolVersion;" />
-		<method name="headerIterator()Lorg/apache/http/HeaderIterator;" />
-		<method name="headerIterator(Ljava/lang/String;)Lorg/apache/http/HeaderIterator;" />
-		<method name="removeHeader(Lorg/apache/http/Header;)V" />
-		<method name="removeHeaders(Ljava/lang/String;)V" />
-		<method name="setHeader(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="setHeader(Lorg/apache/http/Header;)V" />
-		<method name="setHeaders([Lorg/apache/http/Header;)V" />
-		<method name="setParams(Lorg/apache/http/params/HttpParams;)V" />
-	</class>
-	<class name="org/apache/http/HttpRequest" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HttpMessage" />
-		<method name="getRequestLine()Lorg/apache/http/RequestLine;" />
-	</class>
-	<class name="org/apache/http/HttpRequestFactory" since="1">
-		<extends name="java/lang/Object" />
-		<method name="newHttpRequest(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/http/HttpRequest;" />
-		<method name="newHttpRequest(Lorg/apache/http/RequestLine;)Lorg/apache/http/HttpRequest;" />
-	</class>
-	<class name="org/apache/http/HttpRequestInterceptor" since="1">
-		<extends name="java/lang/Object" />
-		<method name="process(Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)V" />
-	</class>
-	<class name="org/apache/http/HttpResponse" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HttpMessage" />
-		<method name="getEntity()Lorg/apache/http/HttpEntity;" />
-		<method name="getLocale()Ljava/util/Locale;" />
-		<method name="getStatusLine()Lorg/apache/http/StatusLine;" />
-		<method name="setEntity(Lorg/apache/http/HttpEntity;)V" />
-		<method name="setLocale(Ljava/util/Locale;)V" />
-		<method name="setReasonPhrase(Ljava/lang/String;)V" />
-		<method name="setStatusCode(I)V" />
-		<method name="setStatusLine(Lorg/apache/http/ProtocolVersion;I)V" />
-		<method name="setStatusLine(Lorg/apache/http/ProtocolVersion;ILjava/lang/String;)V" />
-		<method name="setStatusLine(Lorg/apache/http/StatusLine;)V" />
-	</class>
-	<class name="org/apache/http/HttpResponseFactory" since="1">
-		<extends name="java/lang/Object" />
-		<method name="newHttpResponse(Lorg/apache/http/ProtocolVersion;ILorg/apache/http/protocol/HttpContext;)Lorg/apache/http/HttpResponse;" />
-		<method name="newHttpResponse(Lorg/apache/http/StatusLine;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/HttpResponse;" />
-	</class>
-	<class name="org/apache/http/HttpResponseInterceptor" since="1">
-		<extends name="java/lang/Object" />
-		<method name="process(Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)V" />
-	</class>
-	<class name="org/apache/http/HttpServerConnection" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HttpConnection" />
-		<method name="flush()V" />
-		<method name="receiveRequestEntity(Lorg/apache/http/HttpEntityEnclosingRequest;)V" />
-		<method name="receiveRequestHeader()Lorg/apache/http/HttpRequest;" />
-		<method name="sendResponseEntity(Lorg/apache/http/HttpResponse;)V" />
-		<method name="sendResponseHeader(Lorg/apache/http/HttpResponse;)V" />
-	</class>
-	<class name="org/apache/http/HttpStatus" since="1">
-		<extends name="java/lang/Object" />
-		<field name="SC_ACCEPTED" />
-		<field name="SC_BAD_GATEWAY" />
-		<field name="SC_BAD_REQUEST" />
-		<field name="SC_CONFLICT" />
-		<field name="SC_CONTINUE" />
-		<field name="SC_CREATED" />
-		<field name="SC_EXPECTATION_FAILED" />
-		<field name="SC_FAILED_DEPENDENCY" />
-		<field name="SC_FORBIDDEN" />
-		<field name="SC_GATEWAY_TIMEOUT" />
-		<field name="SC_GONE" />
-		<field name="SC_HTTP_VERSION_NOT_SUPPORTED" />
-		<field name="SC_INSUFFICIENT_SPACE_ON_RESOURCE" />
-		<field name="SC_INSUFFICIENT_STORAGE" />
-		<field name="SC_INTERNAL_SERVER_ERROR" />
-		<field name="SC_LENGTH_REQUIRED" />
-		<field name="SC_LOCKED" />
-		<field name="SC_METHOD_FAILURE" />
-		<field name="SC_METHOD_NOT_ALLOWED" />
-		<field name="SC_MOVED_PERMANENTLY" />
-		<field name="SC_MOVED_TEMPORARILY" />
-		<field name="SC_MULTIPLE_CHOICES" />
-		<field name="SC_MULTI_STATUS" />
-		<field name="SC_NON_AUTHORITATIVE_INFORMATION" />
-		<field name="SC_NOT_ACCEPTABLE" />
-		<field name="SC_NOT_FOUND" />
-		<field name="SC_NOT_IMPLEMENTED" />
-		<field name="SC_NOT_MODIFIED" />
-		<field name="SC_NO_CONTENT" />
-		<field name="SC_OK" />
-		<field name="SC_PARTIAL_CONTENT" />
-		<field name="SC_PAYMENT_REQUIRED" />
-		<field name="SC_PRECONDITION_FAILED" />
-		<field name="SC_PROCESSING" />
-		<field name="SC_PROXY_AUTHENTICATION_REQUIRED" />
-		<field name="SC_REQUESTED_RANGE_NOT_SATISFIABLE" />
-		<field name="SC_REQUEST_TIMEOUT" />
-		<field name="SC_REQUEST_TOO_LONG" />
-		<field name="SC_REQUEST_URI_TOO_LONG" />
-		<field name="SC_RESET_CONTENT" />
-		<field name="SC_SEE_OTHER" />
-		<field name="SC_SERVICE_UNAVAILABLE" />
-		<field name="SC_SWITCHING_PROTOCOLS" />
-		<field name="SC_TEMPORARY_REDIRECT" />
-		<field name="SC_UNAUTHORIZED" />
-		<field name="SC_UNPROCESSABLE_ENTITY" />
-		<field name="SC_UNSUPPORTED_MEDIA_TYPE" />
-		<field name="SC_USE_PROXY" />
-	</class>
-	<class name="org/apache/http/HttpVersion" since="1">
-		<extends name="org/apache/http/ProtocolVersion" />
-		<implements name="java/io/Serializable" />
-		<method name="&lt;init>(II)V" />
-		<field name="HTTP" />
-		<field name="HTTP_0_9" />
-		<field name="HTTP_1_0" />
-		<field name="HTTP_1_1" />
-	</class>
-	<class name="org/apache/http/MalformedChunkCodingException" since="1">
-		<extends name="java/io/IOException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="org/apache/http/MethodNotSupportedException" since="1">
-		<extends name="org/apache/http/HttpException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="org/apache/http/NameValuePair" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getValue()Ljava/lang/String;" />
-	</class>
-	<class name="org/apache/http/NoHttpResponseException" since="1">
-		<extends name="java/io/IOException" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="org/apache/http/ParseException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="org/apache/http/ProtocolException" since="1">
-		<extends name="org/apache/http/HttpException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="org/apache/http/ProtocolVersion" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Cloneable" />
-		<method name="&lt;init>(Ljava/lang/String;II)V" />
-		<method name="compareToVersion(Lorg/apache/http/ProtocolVersion;)I" />
-		<method name="forVersion(II)Lorg/apache/http/ProtocolVersion;" />
-		<method name="getMajor()I" />
-		<method name="getMinor()I" />
-		<method name="getProtocol()Ljava/lang/String;" />
-		<method name="greaterEquals(Lorg/apache/http/ProtocolVersion;)Z" />
-		<method name="isComparable(Lorg/apache/http/ProtocolVersion;)Z" />
-		<method name="lessEquals(Lorg/apache/http/ProtocolVersion;)Z" />
-		<field name="major" />
-		<field name="minor" />
-		<field name="protocol" />
-	</class>
-	<class name="org/apache/http/ReasonPhraseCatalog" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getReason(ILjava/util/Locale;)Ljava/lang/String;" />
-	</class>
-	<class name="org/apache/http/RequestLine" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getMethod()Ljava/lang/String;" />
-		<method name="getProtocolVersion()Lorg/apache/http/ProtocolVersion;" />
-		<method name="getUri()Ljava/lang/String;" />
-	</class>
-	<class name="org/apache/http/StatusLine" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getProtocolVersion()Lorg/apache/http/ProtocolVersion;" />
-		<method name="getReasonPhrase()Ljava/lang/String;" />
-		<method name="getStatusCode()I" />
-	</class>
-	<class name="org/apache/http/TokenIterator" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/util/Iterator" />
-		<method name="nextToken()Ljava/lang/String;" />
-	</class>
-	<class name="org/apache/http/UnsupportedHttpVersionException" since="1">
-		<extends name="org/apache/http/ProtocolException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="org/apache/http/auth/AUTH" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="PROXY_AUTH" />
-		<field name="PROXY_AUTH_RESP" />
-		<field name="WWW_AUTH" />
-		<field name="WWW_AUTH_RESP" />
-	</class>
-	<class name="org/apache/http/auth/AuthScheme" since="1">
-		<extends name="java/lang/Object" />
-		<method name="authenticate(Lorg/apache/http/auth/Credentials;Lorg/apache/http/HttpRequest;)Lorg/apache/http/Header;" />
-		<method name="getParameter(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getRealm()Ljava/lang/String;" />
-		<method name="getSchemeName()Ljava/lang/String;" />
-		<method name="isComplete()Z" />
-		<method name="isConnectionBased()Z" />
-		<method name="processChallenge(Lorg/apache/http/Header;)V" />
-	</class>
-	<class name="org/apache/http/auth/AuthSchemeFactory" since="1">
-		<extends name="java/lang/Object" />
-		<method name="newInstance(Lorg/apache/http/params/HttpParams;)Lorg/apache/http/auth/AuthScheme;" />
-	</class>
-	<class name="org/apache/http/auth/AuthSchemeRegistry" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getAuthScheme(Ljava/lang/String;Lorg/apache/http/params/HttpParams;)Lorg/apache/http/auth/AuthScheme;" />
-		<method name="getSchemeNames()Ljava/util/List;" />
-		<method name="register(Ljava/lang/String;Lorg/apache/http/auth/AuthSchemeFactory;)V" />
-		<method name="setItems(Ljava/util/Map;)V" />
-		<method name="unregister(Ljava/lang/String;)V" />
-	</class>
-	<class name="org/apache/http/auth/AuthScope" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;I)V" />
-		<method name="&lt;init>(Ljava/lang/String;ILjava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Lorg/apache/http/auth/AuthScope;)V" />
-		<method name="getHost()Ljava/lang/String;" />
-		<method name="getPort()I" />
-		<method name="getRealm()Ljava/lang/String;" />
-		<method name="getScheme()Ljava/lang/String;" />
-		<method name="match(Lorg/apache/http/auth/AuthScope;)I" />
-		<field name="ANY" />
-		<field name="ANY_HOST" />
-		<field name="ANY_PORT" />
-		<field name="ANY_REALM" />
-		<field name="ANY_SCHEME" />
-	</class>
-	<class name="org/apache/http/auth/AuthState" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getAuthScheme()Lorg/apache/http/auth/AuthScheme;" />
-		<method name="getAuthScope()Lorg/apache/http/auth/AuthScope;" />
-		<method name="getCredentials()Lorg/apache/http/auth/Credentials;" />
-		<method name="invalidate()V" />
-		<method name="isValid()Z" />
-		<method name="setAuthScheme(Lorg/apache/http/auth/AuthScheme;)V" />
-		<method name="setAuthScope(Lorg/apache/http/auth/AuthScope;)V" />
-		<method name="setCredentials(Lorg/apache/http/auth/Credentials;)V" />
-	</class>
-	<class name="org/apache/http/auth/AuthenticationException" since="1">
-		<extends name="org/apache/http/ProtocolException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="org/apache/http/auth/BasicUserPrincipal" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/Principal" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="org/apache/http/auth/Credentials" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getPassword()Ljava/lang/String;" />
-		<method name="getUserPrincipal()Ljava/security/Principal;" />
-	</class>
-	<class name="org/apache/http/auth/InvalidCredentialsException" since="1">
-		<extends name="org/apache/http/auth/AuthenticationException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="org/apache/http/auth/MalformedChallengeException" since="1">
-		<extends name="org/apache/http/ProtocolException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="org/apache/http/auth/NTCredentials" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/auth/Credentials" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="getDomain()Ljava/lang/String;" />
-		<method name="getUserName()Ljava/lang/String;" />
-		<method name="getWorkstation()Ljava/lang/String;" />
-	</class>
-	<class name="org/apache/http/auth/NTUserPrincipal" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/security/Principal" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="getDomain()Ljava/lang/String;" />
-		<method name="getUsername()Ljava/lang/String;" />
-	</class>
-	<class name="org/apache/http/auth/UsernamePasswordCredentials" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/auth/Credentials" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="getUserName()Ljava/lang/String;" />
-	</class>
-	<class name="org/apache/http/auth/params/AuthPNames" since="1">
-		<extends name="java/lang/Object" />
-		<field name="CREDENTIAL_CHARSET" />
-	</class>
-	<class name="org/apache/http/auth/params/AuthParamBean" since="1">
-		<extends name="org/apache/http/params/HttpAbstractParamBean" />
-		<method name="&lt;init>(Lorg/apache/http/params/HttpParams;)V" />
-		<method name="setCredentialCharset(Ljava/lang/String;)V" />
-	</class>
-	<class name="org/apache/http/auth/params/AuthParams" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getCredentialCharset(Lorg/apache/http/params/HttpParams;)Ljava/lang/String;" />
-		<method name="setCredentialCharset(Lorg/apache/http/params/HttpParams;Ljava/lang/String;)V" />
-	</class>
-	<class name="org/apache/http/client/AuthenticationHandler" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getChallenges(Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)Ljava/util/Map;" />
-		<method name="isAuthenticationRequested(Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)Z" />
-		<method name="selectScheme(Ljava/util/Map;Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/auth/AuthScheme;" />
-	</class>
-	<class name="org/apache/http/client/CircularRedirectException" since="1">
-		<extends name="org/apache/http/client/RedirectException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="org/apache/http/client/ClientProtocolException" since="1">
-		<extends name="java/io/IOException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="org/apache/http/client/CookieStore" since="1">
-		<extends name="java/lang/Object" />
-		<method name="addCookie(Lorg/apache/http/cookie/Cookie;)V" />
-		<method name="clear()V" />
-		<method name="clearExpired(Ljava/util/Date;)Z" />
-		<method name="getCookies()Ljava/util/List;" />
-	</class>
-	<class name="org/apache/http/client/CredentialsProvider" since="1">
-		<extends name="java/lang/Object" />
-		<method name="clear()V" />
-		<method name="getCredentials(Lorg/apache/http/auth/AuthScope;)Lorg/apache/http/auth/Credentials;" />
-		<method name="setCredentials(Lorg/apache/http/auth/AuthScope;Lorg/apache/http/auth/Credentials;)V" />
-	</class>
-	<class name="org/apache/http/client/HttpClient" since="1">
-		<extends name="java/lang/Object" />
-		<method name="execute(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;)Lorg/apache/http/HttpResponse;" />
-		<method name="execute(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/client/ResponseHandler;)Ljava/lang/Object;" />
-		<method name="execute(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/client/ResponseHandler;Lorg/apache/http/protocol/HttpContext;)Ljava/lang/Object;" />
-		<method name="execute(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/HttpResponse;" />
-		<method name="execute(Lorg/apache/http/client/methods/HttpUriRequest;)Lorg/apache/http/HttpResponse;" />
-		<method name="execute(Lorg/apache/http/client/methods/HttpUriRequest;Lorg/apache/http/client/ResponseHandler;)Ljava/lang/Object;" />
-		<method name="execute(Lorg/apache/http/client/methods/HttpUriRequest;Lorg/apache/http/client/ResponseHandler;Lorg/apache/http/protocol/HttpContext;)Ljava/lang/Object;" />
-		<method name="execute(Lorg/apache/http/client/methods/HttpUriRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/HttpResponse;" />
-		<method name="getConnectionManager()Lorg/apache/http/conn/ClientConnectionManager;" />
-		<method name="getParams()Lorg/apache/http/params/HttpParams;" />
-	</class>
-	<class name="org/apache/http/client/HttpRequestRetryHandler" since="1">
-		<extends name="java/lang/Object" />
-		<method name="retryRequest(Ljava/io/IOException;ILorg/apache/http/protocol/HttpContext;)Z" />
-	</class>
-	<class name="org/apache/http/client/HttpResponseException" since="1">
-		<extends name="org/apache/http/client/ClientProtocolException" />
-		<method name="&lt;init>(ILjava/lang/String;)V" />
-		<method name="getStatusCode()I" />
-	</class>
-	<class name="org/apache/http/client/NonRepeatableRequestException" since="1">
-		<extends name="org/apache/http/ProtocolException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="org/apache/http/client/RedirectException" since="1">
-		<extends name="org/apache/http/ProtocolException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="org/apache/http/client/RedirectHandler" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getLocationURI(Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)Ljava/net/URI;" />
-		<method name="isRedirectRequested(Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)Z" />
-	</class>
-	<class name="org/apache/http/client/RequestDirector" since="1">
-		<extends name="java/lang/Object" />
-		<method name="execute(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/HttpResponse;" />
-	</class>
-	<class name="org/apache/http/client/ResponseHandler" since="1">
-		<extends name="java/lang/Object" />
-		<method name="handleResponse(Lorg/apache/http/HttpResponse;)Ljava/lang/Object;" />
-	</class>
-	<class name="org/apache/http/client/UserTokenHandler" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getUserToken(Lorg/apache/http/protocol/HttpContext;)Ljava/lang/Object;" />
-	</class>
-	<class name="org/apache/http/client/entity/UrlEncodedFormEntity" since="1">
-		<extends name="org/apache/http/entity/StringEntity" />
-		<method name="&lt;init>(Ljava/util/List;)V" />
-		<method name="&lt;init>(Ljava/util/List;Ljava/lang/String;)V" />
-	</class>
-	<class name="org/apache/http/client/methods/AbortableHttpRequest" since="1">
-		<extends name="java/lang/Object" />
-		<method name="abort()V" />
-		<method name="setConnectionRequest(Lorg/apache/http/conn/ClientConnectionRequest;)V" />
-		<method name="setReleaseTrigger(Lorg/apache/http/conn/ConnectionReleaseTrigger;)V" />
-	</class>
-	<class name="org/apache/http/client/methods/HttpDelete" since="1">
-		<extends name="org/apache/http/client/methods/HttpRequestBase" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/net/URI;)V" />
-		<field name="METHOD_NAME" />
-	</class>
-	<class name="org/apache/http/client/methods/HttpEntityEnclosingRequestBase" since="1">
-		<extends name="org/apache/http/client/methods/HttpRequestBase" />
-		<implements name="org/apache/http/HttpEntityEnclosingRequest" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/client/methods/HttpGet" since="1">
-		<extends name="org/apache/http/client/methods/HttpRequestBase" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/net/URI;)V" />
-		<field name="METHOD_NAME" />
-	</class>
-	<class name="org/apache/http/client/methods/HttpHead" since="1">
-		<extends name="org/apache/http/client/methods/HttpRequestBase" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/net/URI;)V" />
-		<field name="METHOD_NAME" />
-	</class>
-	<class name="org/apache/http/client/methods/HttpOptions" since="1">
-		<extends name="org/apache/http/client/methods/HttpRequestBase" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/net/URI;)V" />
-		<method name="getAllowedMethods(Lorg/apache/http/HttpResponse;)Ljava/util/Set;" />
-		<field name="METHOD_NAME" />
-	</class>
-	<class name="org/apache/http/client/methods/HttpPost" since="1">
-		<extends name="org/apache/http/client/methods/HttpEntityEnclosingRequestBase" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/net/URI;)V" />
-		<field name="METHOD_NAME" />
-	</class>
-	<class name="org/apache/http/client/methods/HttpPut" since="1">
-		<extends name="org/apache/http/client/methods/HttpEntityEnclosingRequestBase" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/net/URI;)V" />
-		<field name="METHOD_NAME" />
-	</class>
-	<class name="org/apache/http/client/methods/HttpRequestBase" since="1">
-		<extends name="org/apache/http/message/AbstractHttpMessage" />
-		<implements name="java/lang/Cloneable" />
-		<implements name="org/apache/http/client/methods/AbortableHttpRequest" />
-		<implements name="org/apache/http/client/methods/HttpUriRequest" />
-		<method name="&lt;init>()V" />
-		<method name="setURI(Ljava/net/URI;)V" />
-	</class>
-	<class name="org/apache/http/client/methods/HttpTrace" since="1">
-		<extends name="org/apache/http/client/methods/HttpRequestBase" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/net/URI;)V" />
-		<field name="METHOD_NAME" />
-	</class>
-	<class name="org/apache/http/client/methods/HttpUriRequest" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HttpRequest" />
-		<method name="abort()V" />
-		<method name="getMethod()Ljava/lang/String;" />
-		<method name="getURI()Ljava/net/URI;" />
-		<method name="isAborted()Z" />
-	</class>
-	<class name="org/apache/http/client/params/AllClientPNames" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/auth/params/AuthPNames" />
-		<implements name="org/apache/http/client/params/ClientPNames" />
-		<implements name="org/apache/http/conn/params/ConnConnectionPNames" />
-		<implements name="org/apache/http/conn/params/ConnManagerPNames" />
-		<implements name="org/apache/http/conn/params/ConnRoutePNames" />
-		<implements name="org/apache/http/cookie/params/CookieSpecPNames" />
-		<implements name="org/apache/http/params/CoreConnectionPNames" />
-		<implements name="org/apache/http/params/CoreProtocolPNames" />
-	</class>
-	<class name="org/apache/http/client/params/AuthPolicy" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="BASIC" />
-		<field name="DIGEST" />
-		<field name="NTLM" />
-	</class>
-	<class name="org/apache/http/client/params/ClientPNames" since="1">
-		<extends name="java/lang/Object" />
-		<field name="ALLOW_CIRCULAR_REDIRECTS" />
-		<field name="CONNECTION_MANAGER_FACTORY" />
-		<field name="CONNECTION_MANAGER_FACTORY_CLASS_NAME" />
-		<field name="COOKIE_POLICY" />
-		<field name="DEFAULT_HEADERS" />
-		<field name="DEFAULT_HOST" />
-		<field name="HANDLE_AUTHENTICATION" />
-		<field name="HANDLE_REDIRECTS" />
-		<field name="MAX_REDIRECTS" />
-		<field name="REJECT_RELATIVE_REDIRECT" />
-		<field name="VIRTUAL_HOST" />
-	</class>
-	<class name="org/apache/http/client/params/ClientParamBean" since="1">
-		<extends name="org/apache/http/params/HttpAbstractParamBean" />
-		<method name="&lt;init>(Lorg/apache/http/params/HttpParams;)V" />
-		<method name="setAllowCircularRedirects(Z)V" />
-		<method name="setConnectionManagerFactory(Lorg/apache/http/conn/ClientConnectionManagerFactory;)V" />
-		<method name="setConnectionManagerFactoryClassName(Ljava/lang/String;)V" />
-		<method name="setCookiePolicy(Ljava/lang/String;)V" />
-		<method name="setDefaultHeaders(Ljava/util/Collection;)V" />
-		<method name="setDefaultHost(Lorg/apache/http/HttpHost;)V" />
-		<method name="setHandleAuthentication(Z)V" />
-		<method name="setHandleRedirects(Z)V" />
-		<method name="setMaxRedirects(I)V" />
-		<method name="setRejectRelativeRedirect(Z)V" />
-		<method name="setVirtualHost(Lorg/apache/http/HttpHost;)V" />
-	</class>
-	<class name="org/apache/http/client/params/CookiePolicy" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<field name="BEST_MATCH" />
-		<field name="BROWSER_COMPATIBILITY" />
-		<field name="NETSCAPE" />
-		<field name="RFC_2109" />
-		<field name="RFC_2965" />
-	</class>
-	<class name="org/apache/http/client/params/HttpClientParams" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getCookiePolicy(Lorg/apache/http/params/HttpParams;)Ljava/lang/String;" />
-		<method name="isAuthenticating(Lorg/apache/http/params/HttpParams;)Z" />
-		<method name="isRedirecting(Lorg/apache/http/params/HttpParams;)Z" />
-		<method name="setAuthenticating(Lorg/apache/http/params/HttpParams;Z)V" />
-		<method name="setCookiePolicy(Lorg/apache/http/params/HttpParams;Ljava/lang/String;)V" />
-		<method name="setRedirecting(Lorg/apache/http/params/HttpParams;Z)V" />
-	</class>
-	<class name="org/apache/http/client/protocol/ClientContext" since="1">
-		<extends name="java/lang/Object" />
-		<field name="AUTHSCHEME_REGISTRY" />
-		<field name="AUTH_SCHEME_PREF" />
-		<field name="COOKIESPEC_REGISTRY" />
-		<field name="COOKIE_ORIGIN" />
-		<field name="COOKIE_SPEC" />
-		<field name="COOKIE_STORE" />
-		<field name="CREDS_PROVIDER" />
-		<field name="PROXY_AUTH_STATE" />
-		<field name="TARGET_AUTH_STATE" />
-		<field name="USER_TOKEN" />
-	</class>
-	<class name="org/apache/http/client/protocol/ClientContextConfigurer" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/client/protocol/ClientContext" />
-		<method name="&lt;init>(Lorg/apache/http/protocol/HttpContext;)V" />
-		<method name="setAuthSchemePref(Ljava/util/List;)V" />
-		<method name="setAuthSchemeRegistry(Lorg/apache/http/auth/AuthSchemeRegistry;)V" />
-		<method name="setCookieSpecRegistry(Lorg/apache/http/cookie/CookieSpecRegistry;)V" />
-		<method name="setCookieStore(Lorg/apache/http/client/CookieStore;)V" />
-		<method name="setCredentialsProvider(Lorg/apache/http/client/CredentialsProvider;)V" />
-	</class>
-	<class name="org/apache/http/client/protocol/RequestAddCookies" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HttpRequestInterceptor" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/client/protocol/RequestDefaultHeaders" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HttpRequestInterceptor" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/client/protocol/RequestProxyAuthentication" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HttpRequestInterceptor" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/client/protocol/RequestTargetAuthentication" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HttpRequestInterceptor" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/client/protocol/ResponseProcessCookies" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HttpResponseInterceptor" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/client/utils/CloneUtils" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="clone(Ljava/lang/Object;)Ljava/lang/Object;" />
-	</class>
-	<class name="org/apache/http/client/utils/URIUtils" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="createURI(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/net/URI;" />
-		<method name="resolve(Ljava/net/URI;Ljava/lang/String;)Ljava/net/URI;" />
-		<method name="resolve(Ljava/net/URI;Ljava/net/URI;)Ljava/net/URI;" />
-		<method name="rewriteURI(Ljava/net/URI;Lorg/apache/http/HttpHost;)Ljava/net/URI;" />
-		<method name="rewriteURI(Ljava/net/URI;Lorg/apache/http/HttpHost;Z)Ljava/net/URI;" />
-	</class>
-	<class name="org/apache/http/client/utils/URLEncodedUtils" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="format(Ljava/util/List;Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="isEncoded(Lorg/apache/http/HttpEntity;)Z" />
-		<method name="parse(Ljava/net/URI;Ljava/lang/String;)Ljava/util/List;" />
-		<method name="parse(Ljava/util/List;Ljava/util/Scanner;Ljava/lang/String;)V" />
-		<method name="parse(Lorg/apache/http/HttpEntity;)Ljava/util/List;" />
-		<field name="CONTENT_TYPE" />
-	</class>
-	<class name="org/apache/http/conn/BasicEofSensorWatcher" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/conn/EofSensorWatcher" />
-		<method name="&lt;init>(Lorg/apache/http/conn/ManagedClientConnection;Z)V" />
-		<field name="attemptReuse" />
-		<field name="managedConn" />
-	</class>
-	<class name="org/apache/http/conn/BasicManagedEntity" since="1">
-		<extends name="org/apache/http/entity/HttpEntityWrapper" />
-		<implements name="org/apache/http/conn/ConnectionReleaseTrigger" />
-		<implements name="org/apache/http/conn/EofSensorWatcher" />
-		<method name="&lt;init>(Lorg/apache/http/HttpEntity;Lorg/apache/http/conn/ManagedClientConnection;Z)V" />
-		<method name="releaseManagedConnection()V" />
-		<field name="attemptReuse" />
-		<field name="managedConn" />
-	</class>
-	<class name="org/apache/http/conn/ClientConnectionManager" since="1">
-		<extends name="java/lang/Object" />
-		<method name="closeExpiredConnections()V" />
-		<method name="closeIdleConnections(JLjava/util/concurrent/TimeUnit;)V" />
-		<method name="getSchemeRegistry()Lorg/apache/http/conn/scheme/SchemeRegistry;" />
-		<method name="releaseConnection(Lorg/apache/http/conn/ManagedClientConnection;JLjava/util/concurrent/TimeUnit;)V" />
-		<method name="requestConnection(Lorg/apache/http/conn/routing/HttpRoute;Ljava/lang/Object;)Lorg/apache/http/conn/ClientConnectionRequest;" />
-		<method name="shutdown()V" />
-	</class>
-	<class name="org/apache/http/conn/ClientConnectionManagerFactory" since="1">
-		<extends name="java/lang/Object" />
-		<method name="newInstance(Lorg/apache/http/params/HttpParams;Lorg/apache/http/conn/scheme/SchemeRegistry;)Lorg/apache/http/conn/ClientConnectionManager;" />
-	</class>
-	<class name="org/apache/http/conn/ClientConnectionOperator" since="1">
-		<extends name="java/lang/Object" />
-		<method name="createConnection()Lorg/apache/http/conn/OperatedClientConnection;" />
-		<method name="openConnection(Lorg/apache/http/conn/OperatedClientConnection;Lorg/apache/http/HttpHost;Ljava/net/InetAddress;Lorg/apache/http/protocol/HttpContext;Lorg/apache/http/params/HttpParams;)V" />
-		<method name="updateSecureConnection(Lorg/apache/http/conn/OperatedClientConnection;Lorg/apache/http/HttpHost;Lorg/apache/http/protocol/HttpContext;Lorg/apache/http/params/HttpParams;)V" />
-	</class>
-	<class name="org/apache/http/conn/ClientConnectionRequest" since="1">
-		<extends name="java/lang/Object" />
-		<method name="abortRequest()V" />
-		<method name="getConnection(JLjava/util/concurrent/TimeUnit;)Lorg/apache/http/conn/ManagedClientConnection;" />
-	</class>
-	<class name="org/apache/http/conn/ConnectTimeoutException" since="1">
-		<extends name="java/io/InterruptedIOException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="org/apache/http/conn/ConnectionKeepAliveStrategy" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getKeepAliveDuration(Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)J" />
-	</class>
-	<class name="org/apache/http/conn/ConnectionPoolTimeoutException" since="1">
-		<extends name="org/apache/http/conn/ConnectTimeoutException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="org/apache/http/conn/ConnectionReleaseTrigger" since="1">
-		<extends name="java/lang/Object" />
-		<method name="abortConnection()V" />
-		<method name="releaseConnection()V" />
-	</class>
-	<class name="org/apache/http/conn/EofSensorInputStream" since="1">
-		<extends name="java/io/InputStream" />
-		<implements name="org/apache/http/conn/ConnectionReleaseTrigger" />
-		<method name="&lt;init>(Ljava/io/InputStream;Lorg/apache/http/conn/EofSensorWatcher;)V" />
-		<method name="checkAbort()V" />
-		<method name="checkClose()V" />
-		<method name="checkEOF(I)V" />
-		<method name="isReadAllowed()Z" />
-		<field name="wrappedStream" />
-	</class>
-	<class name="org/apache/http/conn/EofSensorWatcher" since="1">
-		<extends name="java/lang/Object" />
-		<method name="eofDetected(Ljava/io/InputStream;)Z" />
-		<method name="streamAbort(Ljava/io/InputStream;)Z" />
-		<method name="streamClosed(Ljava/io/InputStream;)Z" />
-	</class>
-	<class name="org/apache/http/conn/HttpHostConnectException" since="1">
-		<extends name="java/net/ConnectException" />
-		<method name="&lt;init>(Lorg/apache/http/HttpHost;Ljava/net/ConnectException;)V" />
-		<method name="getHost()Lorg/apache/http/HttpHost;" />
-	</class>
-	<class name="org/apache/http/conn/ManagedClientConnection" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HttpClientConnection" />
-		<implements name="org/apache/http/HttpInetConnection" />
-		<implements name="org/apache/http/conn/ConnectionReleaseTrigger" />
-		<method name="getRoute()Lorg/apache/http/conn/routing/HttpRoute;" />
-		<method name="getSSLSession()Ljavax/net/ssl/SSLSession;" />
-		<method name="getState()Ljava/lang/Object;" />
-		<method name="isMarkedReusable()Z" />
-		<method name="isSecure()Z" />
-		<method name="layerProtocol(Lorg/apache/http/protocol/HttpContext;Lorg/apache/http/params/HttpParams;)V" />
-		<method name="markReusable()V" />
-		<method name="open(Lorg/apache/http/conn/routing/HttpRoute;Lorg/apache/http/protocol/HttpContext;Lorg/apache/http/params/HttpParams;)V" />
-		<method name="setIdleDuration(JLjava/util/concurrent/TimeUnit;)V" />
-		<method name="setState(Ljava/lang/Object;)V" />
-		<method name="tunnelProxy(Lorg/apache/http/HttpHost;ZLorg/apache/http/params/HttpParams;)V" />
-		<method name="tunnelTarget(ZLorg/apache/http/params/HttpParams;)V" />
-		<method name="unmarkReusable()V" />
-	</class>
-	<class name="org/apache/http/conn/MultihomePlainSocketFactory" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/conn/scheme/SocketFactory" />
-		<method name="&lt;init>()V" />
-		<method name="getSocketFactory()Lorg/apache/http/conn/MultihomePlainSocketFactory;" />
-	</class>
-	<class name="org/apache/http/conn/OperatedClientConnection" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HttpClientConnection" />
-		<implements name="org/apache/http/HttpInetConnection" />
-		<method name="getSocket()Ljava/net/Socket;" />
-		<method name="getTargetHost()Lorg/apache/http/HttpHost;" />
-		<method name="isSecure()Z" />
-		<method name="openCompleted(ZLorg/apache/http/params/HttpParams;)V" />
-		<method name="opening(Ljava/net/Socket;Lorg/apache/http/HttpHost;)V" />
-		<method name="update(Ljava/net/Socket;Lorg/apache/http/HttpHost;ZLorg/apache/http/params/HttpParams;)V" />
-	</class>
-	<class name="org/apache/http/conn/params/ConnConnectionPNames" since="1">
-		<extends name="java/lang/Object" />
-		<field name="MAX_STATUS_LINE_GARBAGE" />
-	</class>
-	<class name="org/apache/http/conn/params/ConnConnectionParamBean" since="1">
-		<extends name="org/apache/http/params/HttpAbstractParamBean" />
-		<method name="&lt;init>(Lorg/apache/http/params/HttpParams;)V" />
-		<method name="setMaxStatusLineGarbage(I)V" />
-	</class>
-	<class name="org/apache/http/conn/params/ConnManagerPNames" since="1">
-		<extends name="java/lang/Object" />
-		<field name="MAX_CONNECTIONS_PER_ROUTE" />
-		<field name="MAX_TOTAL_CONNECTIONS" />
-		<field name="TIMEOUT" />
-	</class>
-	<class name="org/apache/http/conn/params/ConnManagerParamBean" since="1">
-		<extends name="org/apache/http/params/HttpAbstractParamBean" />
-		<method name="&lt;init>(Lorg/apache/http/params/HttpParams;)V" />
-		<method name="setConnectionsPerRoute(Lorg/apache/http/conn/params/ConnPerRouteBean;)V" />
-		<method name="setMaxTotalConnections(I)V" />
-		<method name="setTimeout(J)V" />
-	</class>
-	<class name="org/apache/http/conn/params/ConnManagerParams" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/conn/params/ConnManagerPNames" />
-		<method name="&lt;init>()V" />
-		<method name="getMaxConnectionsPerRoute(Lorg/apache/http/params/HttpParams;)Lorg/apache/http/conn/params/ConnPerRoute;" />
-		<method name="getMaxTotalConnections(Lorg/apache/http/params/HttpParams;)I" />
-		<method name="getTimeout(Lorg/apache/http/params/HttpParams;)J" />
-		<method name="setMaxConnectionsPerRoute(Lorg/apache/http/params/HttpParams;Lorg/apache/http/conn/params/ConnPerRoute;)V" />
-		<method name="setMaxTotalConnections(Lorg/apache/http/params/HttpParams;I)V" />
-		<method name="setTimeout(Lorg/apache/http/params/HttpParams;J)V" />
-		<field name="DEFAULT_MAX_TOTAL_CONNECTIONS" />
-	</class>
-	<class name="org/apache/http/conn/params/ConnPerRoute" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getMaxForRoute(Lorg/apache/http/conn/routing/HttpRoute;)I" />
-	</class>
-	<class name="org/apache/http/conn/params/ConnPerRouteBean" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/conn/params/ConnPerRoute" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(I)V" />
-		<method name="getDefaultMax()I" />
-		<method name="setDefaultMaxPerRoute(I)V" />
-		<method name="setMaxForRoute(Lorg/apache/http/conn/routing/HttpRoute;I)V" />
-		<method name="setMaxForRoutes(Ljava/util/Map;)V" />
-		<field name="DEFAULT_MAX_CONNECTIONS_PER_ROUTE" />
-	</class>
-	<class name="org/apache/http/conn/params/ConnRoutePNames" since="1">
-		<extends name="java/lang/Object" />
-		<field name="DEFAULT_PROXY" />
-		<field name="FORCED_ROUTE" />
-		<field name="LOCAL_ADDRESS" />
-	</class>
-	<class name="org/apache/http/conn/params/ConnRouteParamBean" since="1">
-		<extends name="org/apache/http/params/HttpAbstractParamBean" />
-		<method name="&lt;init>(Lorg/apache/http/params/HttpParams;)V" />
-		<method name="setDefaultProxy(Lorg/apache/http/HttpHost;)V" />
-		<method name="setForcedRoute(Lorg/apache/http/conn/routing/HttpRoute;)V" />
-		<method name="setLocalAddress(Ljava/net/InetAddress;)V" />
-	</class>
-	<class name="org/apache/http/conn/params/ConnRouteParams" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/conn/params/ConnRoutePNames" />
-		<method name="&lt;init>()V" />
-		<method name="getDefaultProxy(Lorg/apache/http/params/HttpParams;)Lorg/apache/http/HttpHost;" />
-		<method name="getForcedRoute(Lorg/apache/http/params/HttpParams;)Lorg/apache/http/conn/routing/HttpRoute;" />
-		<method name="getLocalAddress(Lorg/apache/http/params/HttpParams;)Ljava/net/InetAddress;" />
-		<method name="setDefaultProxy(Lorg/apache/http/params/HttpParams;Lorg/apache/http/HttpHost;)V" />
-		<method name="setForcedRoute(Lorg/apache/http/params/HttpParams;Lorg/apache/http/conn/routing/HttpRoute;)V" />
-		<method name="setLocalAddress(Lorg/apache/http/params/HttpParams;Ljava/net/InetAddress;)V" />
-		<field name="NO_HOST" />
-		<field name="NO_ROUTE" />
-	</class>
-	<class name="org/apache/http/conn/routing/BasicRouteDirector" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/conn/routing/HttpRouteDirector" />
-		<method name="&lt;init>()V" />
-		<method name="directStep(Lorg/apache/http/conn/routing/RouteInfo;Lorg/apache/http/conn/routing/RouteInfo;)I" />
-		<method name="firstStep(Lorg/apache/http/conn/routing/RouteInfo;)I" />
-		<method name="proxiedStep(Lorg/apache/http/conn/routing/RouteInfo;Lorg/apache/http/conn/routing/RouteInfo;)I" />
-	</class>
-	<class name="org/apache/http/conn/routing/HttpRoute" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-		<implements name="org/apache/http/conn/routing/RouteInfo" />
-		<method name="&lt;init>(Lorg/apache/http/HttpHost;)V" />
-		<method name="&lt;init>(Lorg/apache/http/HttpHost;Ljava/net/InetAddress;Lorg/apache/http/HttpHost;Z)V" />
-		<method name="&lt;init>(Lorg/apache/http/HttpHost;Ljava/net/InetAddress;Lorg/apache/http/HttpHost;ZLorg/apache/http/conn/routing/RouteInfo$TunnelType;Lorg/apache/http/conn/routing/RouteInfo$LayerType;)V" />
-		<method name="&lt;init>(Lorg/apache/http/HttpHost;Ljava/net/InetAddress;Z)V" />
-		<method name="&lt;init>(Lorg/apache/http/HttpHost;Ljava/net/InetAddress;[Lorg/apache/http/HttpHost;ZLorg/apache/http/conn/routing/RouteInfo$TunnelType;Lorg/apache/http/conn/routing/RouteInfo$LayerType;)V" />
-	</class>
-	<class name="org/apache/http/conn/routing/HttpRouteDirector" since="1">
-		<extends name="java/lang/Object" />
-		<method name="nextStep(Lorg/apache/http/conn/routing/RouteInfo;Lorg/apache/http/conn/routing/RouteInfo;)I" />
-		<field name="COMPLETE" />
-		<field name="CONNECT_PROXY" />
-		<field name="CONNECT_TARGET" />
-		<field name="LAYER_PROTOCOL" />
-		<field name="TUNNEL_PROXY" />
-		<field name="TUNNEL_TARGET" />
-		<field name="UNREACHABLE" />
-	</class>
-	<class name="org/apache/http/conn/routing/HttpRoutePlanner" since="1">
-		<extends name="java/lang/Object" />
-		<method name="determineRoute(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/conn/routing/HttpRoute;" />
-	</class>
-	<class name="org/apache/http/conn/routing/RouteInfo" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getHopCount()I" />
-		<method name="getHopTarget(I)Lorg/apache/http/HttpHost;" />
-		<method name="getLayerType()Lorg/apache/http/conn/routing/RouteInfo$LayerType;" />
-		<method name="getLocalAddress()Ljava/net/InetAddress;" />
-		<method name="getProxyHost()Lorg/apache/http/HttpHost;" />
-		<method name="getTargetHost()Lorg/apache/http/HttpHost;" />
-		<method name="getTunnelType()Lorg/apache/http/conn/routing/RouteInfo$TunnelType;" />
-		<method name="isLayered()Z" />
-		<method name="isSecure()Z" />
-		<method name="isTunnelled()Z" />
-	</class>
-	<class name="org/apache/http/conn/routing/RouteInfo$LayerType" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Lorg/apache/http/conn/routing/RouteInfo$LayerType;" />
-		<method name="values()[Lorg/apache/http/conn/routing/RouteInfo$LayerType;" />
-		<field name="LAYERED" />
-		<field name="PLAIN" />
-	</class>
-	<class name="org/apache/http/conn/routing/RouteInfo$TunnelType" since="1">
-		<extends name="java/lang/Enum" />
-		<method name="valueOf(Ljava/lang/String;)Lorg/apache/http/conn/routing/RouteInfo$TunnelType;" />
-		<method name="values()[Lorg/apache/http/conn/routing/RouteInfo$TunnelType;" />
-		<field name="PLAIN" />
-		<field name="TUNNELLED" />
-	</class>
-	<class name="org/apache/http/conn/routing/RouteTracker" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-		<implements name="org/apache/http/conn/routing/RouteInfo" />
-		<method name="&lt;init>(Lorg/apache/http/HttpHost;Ljava/net/InetAddress;)V" />
-		<method name="&lt;init>(Lorg/apache/http/conn/routing/HttpRoute;)V" />
-		<method name="connectProxy(Lorg/apache/http/HttpHost;Z)V" />
-		<method name="connectTarget(Z)V" />
-		<method name="isConnected()Z" />
-		<method name="layerProtocol(Z)V" />
-		<method name="toRoute()Lorg/apache/http/conn/routing/HttpRoute;" />
-		<method name="tunnelProxy(Lorg/apache/http/HttpHost;Z)V" />
-		<method name="tunnelTarget(Z)V" />
-	</class>
-	<class name="org/apache/http/conn/scheme/HostNameResolver" since="1">
-		<extends name="java/lang/Object" />
-		<method name="resolve(Ljava/lang/String;)Ljava/net/InetAddress;" />
-	</class>
-	<class name="org/apache/http/conn/scheme/LayeredSocketFactory" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/conn/scheme/SocketFactory" />
-		<method name="createSocket(Ljava/net/Socket;Ljava/lang/String;IZ)Ljava/net/Socket;" />
-	</class>
-	<class name="org/apache/http/conn/scheme/PlainSocketFactory" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/conn/scheme/SocketFactory" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Lorg/apache/http/conn/scheme/HostNameResolver;)V" />
-		<method name="getSocketFactory()Lorg/apache/http/conn/scheme/PlainSocketFactory;" />
-	</class>
-	<class name="org/apache/http/conn/scheme/Scheme" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;Lorg/apache/http/conn/scheme/SocketFactory;I)V" />
-		<method name="getDefaultPort()I" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getSocketFactory()Lorg/apache/http/conn/scheme/SocketFactory;" />
-		<method name="isLayered()Z" />
-		<method name="resolvePort(I)I" />
-	</class>
-	<class name="org/apache/http/conn/scheme/SchemeRegistry" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="get(Ljava/lang/String;)Lorg/apache/http/conn/scheme/Scheme;" />
-		<method name="getScheme(Ljava/lang/String;)Lorg/apache/http/conn/scheme/Scheme;" />
-		<method name="getScheme(Lorg/apache/http/HttpHost;)Lorg/apache/http/conn/scheme/Scheme;" />
-		<method name="getSchemeNames()Ljava/util/List;" />
-		<method name="register(Lorg/apache/http/conn/scheme/Scheme;)Lorg/apache/http/conn/scheme/Scheme;" />
-		<method name="setItems(Ljava/util/Map;)V" />
-		<method name="unregister(Ljava/lang/String;)Lorg/apache/http/conn/scheme/Scheme;" />
-	</class>
-	<class name="org/apache/http/conn/scheme/SocketFactory" since="1">
-		<extends name="java/lang/Object" />
-		<method name="connectSocket(Ljava/net/Socket;Ljava/lang/String;ILjava/net/InetAddress;ILorg/apache/http/params/HttpParams;)Ljava/net/Socket;" />
-		<method name="createSocket()Ljava/net/Socket;" />
-		<method name="isSecure(Ljava/net/Socket;)Z" />
-	</class>
-	<class name="org/apache/http/conn/ssl/AbstractVerifier" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/conn/ssl/X509HostnameVerifier" />
-		<method name="&lt;init>()V" />
-		<method name="acceptableCountryWildcard(Ljava/lang/String;)Z" />
-		<method name="countDots(Ljava/lang/String;)I" />
-		<method name="getCNs(Ljava/security/cert/X509Certificate;)[Ljava/lang/String;" />
-		<method name="getDNSSubjectAlts(Ljava/security/cert/X509Certificate;)[Ljava/lang/String;" />
-		<method name="verify(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;Z)V" />
-	</class>
-	<class name="org/apache/http/conn/ssl/AllowAllHostnameVerifier" since="1">
-		<extends name="org/apache/http/conn/ssl/AbstractVerifier" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/conn/ssl/BrowserCompatHostnameVerifier" since="1">
-		<extends name="org/apache/http/conn/ssl/AbstractVerifier" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/conn/ssl/SSLSocketFactory" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/conn/scheme/LayeredSocketFactory" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/security/KeyStore;Ljava/lang/String;Ljava/security/KeyStore;Ljava/security/SecureRandom;Lorg/apache/http/conn/scheme/HostNameResolver;)V" />
-		<method name="&lt;init>(Ljava/security/KeyStore;)V" />
-		<method name="&lt;init>(Ljava/security/KeyStore;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/security/KeyStore;Ljava/lang/String;Ljava/security/KeyStore;)V" />
-		<method name="getHostnameVerifier()Lorg/apache/http/conn/ssl/X509HostnameVerifier;" />
-		<method name="getSocketFactory()Lorg/apache/http/conn/ssl/SSLSocketFactory;" />
-		<method name="setHostnameVerifier(Lorg/apache/http/conn/ssl/X509HostnameVerifier;)V" />
-		<field name="ALLOW_ALL_HOSTNAME_VERIFIER" />
-		<field name="BROWSER_COMPATIBLE_HOSTNAME_VERIFIER" />
-		<field name="SSL" />
-		<field name="SSLV2" />
-		<field name="STRICT_HOSTNAME_VERIFIER" />
-		<field name="TLS" />
-	</class>
-	<class name="org/apache/http/conn/ssl/StrictHostnameVerifier" since="1">
-		<extends name="org/apache/http/conn/ssl/AbstractVerifier" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/conn/ssl/X509HostnameVerifier" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="javax/net/ssl/HostnameVerifier" />
-		<method name="verify(Ljava/lang/String;Ljava/security/cert/X509Certificate;)V" />
-		<method name="verify(Ljava/lang/String;Ljavax/net/ssl/SSLSocket;)V" />
-		<method name="verify(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)V" />
-	</class>
-	<class name="org/apache/http/conn/util/InetAddressUtils" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="isIPv4Address(Ljava/lang/String;)Z" />
-		<method name="isIPv6Address(Ljava/lang/String;)Z" />
-		<method name="isIPv6HexCompressedAddress(Ljava/lang/String;)Z" />
-		<method name="isIPv6StdAddress(Ljava/lang/String;)Z" />
-	</class>
-	<class name="org/apache/http/cookie/ClientCookie" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/cookie/Cookie" />
-		<method name="containsAttribute(Ljava/lang/String;)Z" />
-		<method name="getAttribute(Ljava/lang/String;)Ljava/lang/String;" />
-		<field name="COMMENTURL_ATTR" />
-		<field name="COMMENT_ATTR" />
-		<field name="DISCARD_ATTR" />
-		<field name="DOMAIN_ATTR" />
-		<field name="EXPIRES_ATTR" />
-		<field name="MAX_AGE_ATTR" />
-		<field name="PATH_ATTR" />
-		<field name="PORT_ATTR" />
-		<field name="SECURE_ATTR" />
-		<field name="VERSION_ATTR" />
-	</class>
-	<class name="org/apache/http/cookie/Cookie" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getComment()Ljava/lang/String;" />
-		<method name="getCommentURL()Ljava/lang/String;" />
-		<method name="getDomain()Ljava/lang/String;" />
-		<method name="getExpiryDate()Ljava/util/Date;" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getPath()Ljava/lang/String;" />
-		<method name="getPorts()[I" />
-		<method name="getValue()Ljava/lang/String;" />
-		<method name="getVersion()I" />
-		<method name="isExpired(Ljava/util/Date;)Z" />
-		<method name="isPersistent()Z" />
-		<method name="isSecure()Z" />
-	</class>
-	<class name="org/apache/http/cookie/CookieAttributeHandler" since="1">
-		<extends name="java/lang/Object" />
-		<method name="match(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/CookieOrigin;)Z" />
-		<method name="parse(Lorg/apache/http/cookie/SetCookie;Ljava/lang/String;)V" />
-		<method name="validate(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/CookieOrigin;)V" />
-	</class>
-	<class name="org/apache/http/cookie/CookieIdentityComparator" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/util/Comparator" />
-		<method name="&lt;init>()V" />
-		<method name="compare(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/Cookie;)I" />
-	</class>
-	<class name="org/apache/http/cookie/CookieOrigin" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;ILjava/lang/String;Z)V" />
-		<method name="getHost()Ljava/lang/String;" />
-		<method name="getPath()Ljava/lang/String;" />
-		<method name="getPort()I" />
-		<method name="isSecure()Z" />
-	</class>
-	<class name="org/apache/http/cookie/CookiePathComparator" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/util/Comparator" />
-		<method name="&lt;init>()V" />
-		<method name="compare(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/Cookie;)I" />
-	</class>
-	<class name="org/apache/http/cookie/CookieSpec" since="1">
-		<extends name="java/lang/Object" />
-		<method name="formatCookies(Ljava/util/List;)Ljava/util/List;" />
-		<method name="getVersion()I" />
-		<method name="getVersionHeader()Lorg/apache/http/Header;" />
-		<method name="match(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/CookieOrigin;)Z" />
-		<method name="parse(Lorg/apache/http/Header;Lorg/apache/http/cookie/CookieOrigin;)Ljava/util/List;" />
-		<method name="validate(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/CookieOrigin;)V" />
-	</class>
-	<class name="org/apache/http/cookie/CookieSpecFactory" since="1">
-		<extends name="java/lang/Object" />
-		<method name="newInstance(Lorg/apache/http/params/HttpParams;)Lorg/apache/http/cookie/CookieSpec;" />
-	</class>
-	<class name="org/apache/http/cookie/CookieSpecRegistry" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getCookieSpec(Ljava/lang/String;)Lorg/apache/http/cookie/CookieSpec;" />
-		<method name="getCookieSpec(Ljava/lang/String;Lorg/apache/http/params/HttpParams;)Lorg/apache/http/cookie/CookieSpec;" />
-		<method name="getSpecNames()Ljava/util/List;" />
-		<method name="register(Ljava/lang/String;Lorg/apache/http/cookie/CookieSpecFactory;)V" />
-		<method name="setItems(Ljava/util/Map;)V" />
-		<method name="unregister(Ljava/lang/String;)V" />
-	</class>
-	<class name="org/apache/http/cookie/MalformedCookieException" since="1">
-		<extends name="org/apache/http/ProtocolException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="org/apache/http/cookie/SM" since="1">
-		<extends name="java/lang/Object" />
-		<field name="COOKIE" />
-		<field name="COOKIE2" />
-		<field name="SET_COOKIE" />
-		<field name="SET_COOKIE2" />
-	</class>
-	<class name="org/apache/http/cookie/SetCookie" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/cookie/Cookie" />
-		<method name="setComment(Ljava/lang/String;)V" />
-		<method name="setDomain(Ljava/lang/String;)V" />
-		<method name="setExpiryDate(Ljava/util/Date;)V" />
-		<method name="setPath(Ljava/lang/String;)V" />
-		<method name="setSecure(Z)V" />
-		<method name="setValue(Ljava/lang/String;)V" />
-		<method name="setVersion(I)V" />
-	</class>
-	<class name="org/apache/http/cookie/SetCookie2" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/cookie/SetCookie" />
-		<method name="setCommentURL(Ljava/lang/String;)V" />
-		<method name="setDiscard(Z)V" />
-		<method name="setPorts([I)V" />
-	</class>
-	<class name="org/apache/http/cookie/params/CookieSpecPNames" since="1">
-		<extends name="java/lang/Object" />
-		<field name="DATE_PATTERNS" />
-		<field name="SINGLE_COOKIE_HEADER" />
-	</class>
-	<class name="org/apache/http/cookie/params/CookieSpecParamBean" since="1">
-		<extends name="org/apache/http/params/HttpAbstractParamBean" />
-		<method name="&lt;init>(Lorg/apache/http/params/HttpParams;)V" />
-		<method name="setDatePatterns(Ljava/util/Collection;)V" />
-		<method name="setSingleHeader(Z)V" />
-	</class>
-	<class name="org/apache/http/entity/AbstractHttpEntity" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HttpEntity" />
-		<method name="&lt;init>()V" />
-		<method name="setChunked(Z)V" />
-		<method name="setContentEncoding(Ljava/lang/String;)V" />
-		<method name="setContentEncoding(Lorg/apache/http/Header;)V" />
-		<method name="setContentType(Ljava/lang/String;)V" />
-		<method name="setContentType(Lorg/apache/http/Header;)V" />
-		<field name="chunked" />
-		<field name="contentEncoding" />
-		<field name="contentType" />
-	</class>
-	<class name="org/apache/http/entity/BasicHttpEntity" since="1">
-		<extends name="org/apache/http/entity/AbstractHttpEntity" />
-		<method name="&lt;init>()V" />
-		<method name="setContent(Ljava/io/InputStream;)V" />
-		<method name="setContentLength(J)V" />
-	</class>
-	<class name="org/apache/http/entity/BufferedHttpEntity" since="1">
-		<extends name="org/apache/http/entity/HttpEntityWrapper" />
-		<method name="&lt;init>(Lorg/apache/http/HttpEntity;)V" />
-	</class>
-	<class name="org/apache/http/entity/ByteArrayEntity" since="1">
-		<extends name="org/apache/http/entity/AbstractHttpEntity" />
-		<implements name="java/lang/Cloneable" />
-		<method name="&lt;init>([B)V" />
-		<field name="content" />
-	</class>
-	<class name="org/apache/http/entity/ContentLengthStrategy" since="1">
-		<extends name="java/lang/Object" />
-		<method name="determineLength(Lorg/apache/http/HttpMessage;)J" />
-		<field name="CHUNKED" />
-		<field name="IDENTITY" />
-	</class>
-	<class name="org/apache/http/entity/ContentProducer" since="1">
-		<extends name="java/lang/Object" />
-		<method name="writeTo(Ljava/io/OutputStream;)V" />
-	</class>
-	<class name="org/apache/http/entity/EntityTemplate" since="1">
-		<extends name="org/apache/http/entity/AbstractHttpEntity" />
-		<method name="&lt;init>(Lorg/apache/http/entity/ContentProducer;)V" />
-	</class>
-	<class name="org/apache/http/entity/FileEntity" since="1">
-		<extends name="org/apache/http/entity/AbstractHttpEntity" />
-		<implements name="java/lang/Cloneable" />
-		<method name="&lt;init>(Ljava/io/File;Ljava/lang/String;)V" />
-		<field name="file" />
-	</class>
-	<class name="org/apache/http/entity/HttpEntityWrapper" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HttpEntity" />
-		<method name="&lt;init>(Lorg/apache/http/HttpEntity;)V" />
-		<field name="wrappedEntity" />
-	</class>
-	<class name="org/apache/http/entity/InputStreamEntity" since="1">
-		<extends name="org/apache/http/entity/AbstractHttpEntity" />
-		<method name="&lt;init>(Ljava/io/InputStream;J)V" />
-	</class>
-	<class name="org/apache/http/entity/SerializableEntity" since="1">
-		<extends name="org/apache/http/entity/AbstractHttpEntity" />
-		<method name="&lt;init>(Ljava/io/Serializable;Z)V" />
-	</class>
-	<class name="org/apache/http/entity/StringEntity" since="1">
-		<extends name="org/apache/http/entity/AbstractHttpEntity" />
-		<implements name="java/lang/Cloneable" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<field name="content" />
-	</class>
-	<class name="org/apache/http/impl/AbstractHttpClientConnection" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HttpClientConnection" />
-		<method name="&lt;init>()V" />
-		<method name="assertOpen()V" />
-		<method name="createEntityDeserializer()Lorg/apache/http/impl/entity/EntityDeserializer;" />
-		<method name="createEntitySerializer()Lorg/apache/http/impl/entity/EntitySerializer;" />
-		<method name="createHttpResponseFactory()Lorg/apache/http/HttpResponseFactory;" />
-		<method name="createRequestWriter(Lorg/apache/http/io/SessionOutputBuffer;Lorg/apache/http/params/HttpParams;)Lorg/apache/http/io/HttpMessageWriter;" />
-		<method name="createResponseParser(Lorg/apache/http/io/SessionInputBuffer;Lorg/apache/http/HttpResponseFactory;Lorg/apache/http/params/HttpParams;)Lorg/apache/http/io/HttpMessageParser;" />
-		<method name="doFlush()V" />
-		<method name="init(Lorg/apache/http/io/SessionInputBuffer;Lorg/apache/http/io/SessionOutputBuffer;Lorg/apache/http/params/HttpParams;)V" />
-	</class>
-	<class name="org/apache/http/impl/AbstractHttpServerConnection" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HttpServerConnection" />
-		<method name="&lt;init>()V" />
-		<method name="assertOpen()V" />
-		<method name="createEntityDeserializer()Lorg/apache/http/impl/entity/EntityDeserializer;" />
-		<method name="createEntitySerializer()Lorg/apache/http/impl/entity/EntitySerializer;" />
-		<method name="createHttpRequestFactory()Lorg/apache/http/HttpRequestFactory;" />
-		<method name="createRequestParser(Lorg/apache/http/io/SessionInputBuffer;Lorg/apache/http/HttpRequestFactory;Lorg/apache/http/params/HttpParams;)Lorg/apache/http/io/HttpMessageParser;" />
-		<method name="createResponseWriter(Lorg/apache/http/io/SessionOutputBuffer;Lorg/apache/http/params/HttpParams;)Lorg/apache/http/io/HttpMessageWriter;" />
-		<method name="doFlush()V" />
-		<method name="init(Lorg/apache/http/io/SessionInputBuffer;Lorg/apache/http/io/SessionOutputBuffer;Lorg/apache/http/params/HttpParams;)V" />
-	</class>
-	<class name="org/apache/http/impl/DefaultConnectionReuseStrategy" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/ConnectionReuseStrategy" />
-		<method name="&lt;init>()V" />
-		<method name="createTokenIterator(Lorg/apache/http/HeaderIterator;)Lorg/apache/http/TokenIterator;" />
-	</class>
-	<class name="org/apache/http/impl/DefaultHttpClientConnection" since="1">
-		<extends name="org/apache/http/impl/SocketHttpClientConnection" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/impl/DefaultHttpRequestFactory" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HttpRequestFactory" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/impl/DefaultHttpResponseFactory" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HttpResponseFactory" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Lorg/apache/http/ReasonPhraseCatalog;)V" />
-		<method name="determineLocale(Lorg/apache/http/protocol/HttpContext;)Ljava/util/Locale;" />
-		<field name="reasonCatalog" />
-	</class>
-	<class name="org/apache/http/impl/DefaultHttpServerConnection" since="1">
-		<extends name="org/apache/http/impl/SocketHttpServerConnection" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/impl/EnglishReasonPhraseCatalog" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/ReasonPhraseCatalog" />
-		<method name="&lt;init>()V" />
-		<field name="INSTANCE" />
-	</class>
-	<class name="org/apache/http/impl/HttpConnectionMetricsImpl" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HttpConnectionMetrics" />
-		<method name="&lt;init>(Lorg/apache/http/io/HttpTransportMetrics;Lorg/apache/http/io/HttpTransportMetrics;)V" />
-		<method name="incrementRequestCount()V" />
-		<method name="incrementResponseCount()V" />
-		<method name="setMetric(Ljava/lang/String;Ljava/lang/Object;)V" />
-		<field name="RECEIVED_BYTES_COUNT" />
-		<field name="REQUEST_COUNT" />
-		<field name="RESPONSE_COUNT" />
-		<field name="SENT_BYTES_COUNT" />
-	</class>
-	<class name="org/apache/http/impl/NoConnectionReuseStrategy" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/ConnectionReuseStrategy" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/impl/SocketHttpClientConnection" since="1">
-		<extends name="org/apache/http/impl/AbstractHttpClientConnection" />
-		<implements name="org/apache/http/HttpInetConnection" />
-		<method name="&lt;init>()V" />
-		<method name="assertNotOpen()V" />
-		<method name="bind(Ljava/net/Socket;Lorg/apache/http/params/HttpParams;)V" />
-		<method name="createSessionInputBuffer(Ljava/net/Socket;ILorg/apache/http/params/HttpParams;)Lorg/apache/http/io/SessionInputBuffer;" />
-		<method name="createSessionOutputBuffer(Ljava/net/Socket;ILorg/apache/http/params/HttpParams;)Lorg/apache/http/io/SessionOutputBuffer;" />
-		<method name="getSocket()Ljava/net/Socket;" />
-	</class>
-	<class name="org/apache/http/impl/SocketHttpServerConnection" since="1">
-		<extends name="org/apache/http/impl/AbstractHttpServerConnection" />
-		<implements name="org/apache/http/HttpInetConnection" />
-		<method name="&lt;init>()V" />
-		<method name="assertNotOpen()V" />
-		<method name="bind(Ljava/net/Socket;Lorg/apache/http/params/HttpParams;)V" />
-		<method name="createHttpDataReceiver(Ljava/net/Socket;ILorg/apache/http/params/HttpParams;)Lorg/apache/http/io/SessionInputBuffer;" />
-		<method name="createHttpDataTransmitter(Ljava/net/Socket;ILorg/apache/http/params/HttpParams;)Lorg/apache/http/io/SessionOutputBuffer;" />
-		<method name="getSocket()Ljava/net/Socket;" />
-	</class>
-	<class name="org/apache/http/impl/auth/AuthSchemeBase" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/auth/AuthScheme" />
-		<method name="&lt;init>()V" />
-		<method name="isProxy()Z" />
-		<method name="parseChallenge(Lorg/apache/http/util/CharArrayBuffer;II)V" />
-	</class>
-	<class name="org/apache/http/impl/auth/BasicScheme" since="1">
-		<extends name="org/apache/http/impl/auth/RFC2617Scheme" />
-		<method name="&lt;init>()V" />
-		<method name="authenticate(Lorg/apache/http/auth/Credentials;Ljava/lang/String;Z)Lorg/apache/http/Header;" />
-	</class>
-	<class name="org/apache/http/impl/auth/BasicSchemeFactory" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/auth/AuthSchemeFactory" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/impl/auth/DigestScheme" since="1">
-		<extends name="org/apache/http/impl/auth/RFC2617Scheme" />
-		<method name="&lt;init>()V" />
-		<method name="createCnonce()Ljava/lang/String;" />
-		<method name="overrideParamter(Ljava/lang/String;Ljava/lang/String;)V" />
-	</class>
-	<class name="org/apache/http/impl/auth/DigestSchemeFactory" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/auth/AuthSchemeFactory" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/impl/auth/NTLMEngine" since="1">
-		<extends name="java/lang/Object" />
-		<method name="generateType1Msg(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="generateType3Msg(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
-	</class>
-	<class name="org/apache/http/impl/auth/NTLMEngineException" since="1">
-		<extends name="org/apache/http/auth/AuthenticationException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="org/apache/http/impl/auth/NTLMScheme" since="1">
-		<extends name="org/apache/http/impl/auth/AuthSchemeBase" />
-		<method name="&lt;init>(Lorg/apache/http/impl/auth/NTLMEngine;)V" />
-	</class>
-	<class name="org/apache/http/impl/auth/RFC2617Scheme" since="1">
-		<extends name="org/apache/http/impl/auth/AuthSchemeBase" />
-		<method name="&lt;init>()V" />
-		<method name="getParameters()Ljava/util/Map;" />
-	</class>
-	<class name="org/apache/http/impl/auth/UnsupportedDigestAlgorithmException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="org/apache/http/impl/client/AbstractAuthenticationHandler" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/client/AuthenticationHandler" />
-		<method name="&lt;init>()V" />
-		<method name="getAuthPreferences()Ljava/util/List;" />
-		<method name="parseChallenges([Lorg/apache/http/Header;)Ljava/util/Map;" />
-	</class>
-	<class name="org/apache/http/impl/client/AbstractHttpClient" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/client/HttpClient" />
-		<method name="&lt;init>(Lorg/apache/http/conn/ClientConnectionManager;Lorg/apache/http/params/HttpParams;)V" />
-		<method name="addRequestInterceptor(Lorg/apache/http/HttpRequestInterceptor;)V" />
-		<method name="addRequestInterceptor(Lorg/apache/http/HttpRequestInterceptor;I)V" />
-		<method name="addResponseInterceptor(Lorg/apache/http/HttpResponseInterceptor;)V" />
-		<method name="addResponseInterceptor(Lorg/apache/http/HttpResponseInterceptor;I)V" />
-		<method name="clearRequestInterceptors()V" />
-		<method name="clearResponseInterceptors()V" />
-		<method name="createAuthSchemeRegistry()Lorg/apache/http/auth/AuthSchemeRegistry;" />
-		<method name="createClientConnectionManager()Lorg/apache/http/conn/ClientConnectionManager;" />
-		<method name="createClientRequestDirector(Lorg/apache/http/protocol/HttpRequestExecutor;Lorg/apache/http/conn/ClientConnectionManager;Lorg/apache/http/ConnectionReuseStrategy;Lorg/apache/http/conn/ConnectionKeepAliveStrategy;Lorg/apache/http/conn/routing/HttpRoutePlanner;Lorg/apache/http/protocol/HttpProcessor;Lorg/apache/http/client/HttpRequestRetryHandler;Lorg/apache/http/client/RedirectHandler;Lorg/apache/http/client/AuthenticationHandler;Lorg/apache/http/client/AuthenticationHandler;Lorg/apache/http/client/UserTokenHandler;Lorg/apache/http/params/HttpParams;)Lorg/apache/http/client/RequestDirector;" />
-		<method name="createConnectionKeepAliveStrategy()Lorg/apache/http/conn/ConnectionKeepAliveStrategy;" />
-		<method name="createConnectionReuseStrategy()Lorg/apache/http/ConnectionReuseStrategy;" />
-		<method name="createCookieSpecRegistry()Lorg/apache/http/cookie/CookieSpecRegistry;" />
-		<method name="createCookieStore()Lorg/apache/http/client/CookieStore;" />
-		<method name="createCredentialsProvider()Lorg/apache/http/client/CredentialsProvider;" />
-		<method name="createHttpContext()Lorg/apache/http/protocol/HttpContext;" />
-		<method name="createHttpParams()Lorg/apache/http/params/HttpParams;" />
-		<method name="createHttpProcessor()Lorg/apache/http/protocol/BasicHttpProcessor;" />
-		<method name="createHttpRequestRetryHandler()Lorg/apache/http/client/HttpRequestRetryHandler;" />
-		<method name="createHttpRoutePlanner()Lorg/apache/http/conn/routing/HttpRoutePlanner;" />
-		<method name="createProxyAuthenticationHandler()Lorg/apache/http/client/AuthenticationHandler;" />
-		<method name="createRedirectHandler()Lorg/apache/http/client/RedirectHandler;" />
-		<method name="createRequestExecutor()Lorg/apache/http/protocol/HttpRequestExecutor;" />
-		<method name="createTargetAuthenticationHandler()Lorg/apache/http/client/AuthenticationHandler;" />
-		<method name="createUserTokenHandler()Lorg/apache/http/client/UserTokenHandler;" />
-		<method name="determineParams(Lorg/apache/http/HttpRequest;)Lorg/apache/http/params/HttpParams;" />
-		<method name="getAuthSchemes()Lorg/apache/http/auth/AuthSchemeRegistry;" />
-		<method name="getConnectionKeepAliveStrategy()Lorg/apache/http/conn/ConnectionKeepAliveStrategy;" />
-		<method name="getConnectionReuseStrategy()Lorg/apache/http/ConnectionReuseStrategy;" />
-		<method name="getCookieSpecs()Lorg/apache/http/cookie/CookieSpecRegistry;" />
-		<method name="getCookieStore()Lorg/apache/http/client/CookieStore;" />
-		<method name="getCredentialsProvider()Lorg/apache/http/client/CredentialsProvider;" />
-		<method name="getHttpProcessor()Lorg/apache/http/protocol/BasicHttpProcessor;" />
-		<method name="getHttpRequestRetryHandler()Lorg/apache/http/client/HttpRequestRetryHandler;" />
-		<method name="getProxyAuthenticationHandler()Lorg/apache/http/client/AuthenticationHandler;" />
-		<method name="getRedirectHandler()Lorg/apache/http/client/RedirectHandler;" />
-		<method name="getRequestExecutor()Lorg/apache/http/protocol/HttpRequestExecutor;" />
-		<method name="getRequestInterceptor(I)Lorg/apache/http/HttpRequestInterceptor;" />
-		<method name="getRequestInterceptorCount()I" />
-		<method name="getResponseInterceptor(I)Lorg/apache/http/HttpResponseInterceptor;" />
-		<method name="getResponseInterceptorCount()I" />
-		<method name="getRoutePlanner()Lorg/apache/http/conn/routing/HttpRoutePlanner;" />
-		<method name="getTargetAuthenticationHandler()Lorg/apache/http/client/AuthenticationHandler;" />
-		<method name="getUserTokenHandler()Lorg/apache/http/client/UserTokenHandler;" />
-		<method name="removeRequestInterceptorByClass(Ljava/lang/Class;)V" />
-		<method name="removeResponseInterceptorByClass(Ljava/lang/Class;)V" />
-		<method name="setAuthSchemes(Lorg/apache/http/auth/AuthSchemeRegistry;)V" />
-		<method name="setCookieSpecs(Lorg/apache/http/cookie/CookieSpecRegistry;)V" />
-		<method name="setCookieStore(Lorg/apache/http/client/CookieStore;)V" />
-		<method name="setCredentialsProvider(Lorg/apache/http/client/CredentialsProvider;)V" />
-		<method name="setHttpRequestRetryHandler(Lorg/apache/http/client/HttpRequestRetryHandler;)V" />
-		<method name="setKeepAliveStrategy(Lorg/apache/http/conn/ConnectionKeepAliveStrategy;)V" />
-		<method name="setParams(Lorg/apache/http/params/HttpParams;)V" />
-		<method name="setProxyAuthenticationHandler(Lorg/apache/http/client/AuthenticationHandler;)V" />
-		<method name="setRedirectHandler(Lorg/apache/http/client/RedirectHandler;)V" />
-		<method name="setReuseStrategy(Lorg/apache/http/ConnectionReuseStrategy;)V" />
-		<method name="setRoutePlanner(Lorg/apache/http/conn/routing/HttpRoutePlanner;)V" />
-		<method name="setTargetAuthenticationHandler(Lorg/apache/http/client/AuthenticationHandler;)V" />
-		<method name="setUserTokenHandler(Lorg/apache/http/client/UserTokenHandler;)V" />
-	</class>
-	<class name="org/apache/http/impl/client/BasicCookieStore" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/client/CookieStore" />
-		<method name="&lt;init>()V" />
-		<method name="addCookies([Lorg/apache/http/cookie/Cookie;)V" />
-	</class>
-	<class name="org/apache/http/impl/client/BasicCredentialsProvider" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/client/CredentialsProvider" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/impl/client/BasicResponseHandler" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/client/ResponseHandler" />
-		<method name="&lt;init>()V" />
-		<method name="handleResponse(Lorg/apache/http/HttpResponse;)Ljava/lang/String;" />
-	</class>
-	<class name="org/apache/http/impl/client/ClientParamsStack" since="1">
-		<extends name="org/apache/http/params/AbstractHttpParams" />
-		<method name="&lt;init>(Lorg/apache/http/impl/client/ClientParamsStack;)V" />
-		<method name="&lt;init>(Lorg/apache/http/impl/client/ClientParamsStack;Lorg/apache/http/params/HttpParams;Lorg/apache/http/params/HttpParams;Lorg/apache/http/params/HttpParams;Lorg/apache/http/params/HttpParams;)V" />
-		<method name="&lt;init>(Lorg/apache/http/params/HttpParams;Lorg/apache/http/params/HttpParams;Lorg/apache/http/params/HttpParams;Lorg/apache/http/params/HttpParams;)V" />
-		<method name="getApplicationParams()Lorg/apache/http/params/HttpParams;" />
-		<method name="getClientParams()Lorg/apache/http/params/HttpParams;" />
-		<method name="getOverrideParams()Lorg/apache/http/params/HttpParams;" />
-		<method name="getRequestParams()Lorg/apache/http/params/HttpParams;" />
-		<field name="applicationParams" />
-		<field name="clientParams" />
-		<field name="overrideParams" />
-		<field name="requestParams" />
-	</class>
-	<class name="org/apache/http/impl/client/DefaultConnectionKeepAliveStrategy" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/conn/ConnectionKeepAliveStrategy" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/impl/client/DefaultHttpClient" since="1">
-		<extends name="org/apache/http/impl/client/AbstractHttpClient" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Lorg/apache/http/conn/ClientConnectionManager;Lorg/apache/http/params/HttpParams;)V" />
-		<method name="&lt;init>(Lorg/apache/http/params/HttpParams;)V" />
-	</class>
-	<class name="org/apache/http/impl/client/DefaultHttpRequestRetryHandler" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/client/HttpRequestRetryHandler" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(IZ)V" />
-		<method name="getRetryCount()I" />
-		<method name="isRequestSentRetryEnabled()Z" />
-	</class>
-	<class name="org/apache/http/impl/client/DefaultProxyAuthenticationHandler" since="1">
-		<extends name="org/apache/http/impl/client/AbstractAuthenticationHandler" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/impl/client/DefaultRedirectHandler" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/client/RedirectHandler" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/impl/client/DefaultRequestDirector" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/client/RequestDirector" />
-		<method name="&lt;init>(Lorg/apache/http/protocol/HttpRequestExecutor;Lorg/apache/http/conn/ClientConnectionManager;Lorg/apache/http/ConnectionReuseStrategy;Lorg/apache/http/conn/ConnectionKeepAliveStrategy;Lorg/apache/http/conn/routing/HttpRoutePlanner;Lorg/apache/http/protocol/HttpProcessor;Lorg/apache/http/client/HttpRequestRetryHandler;Lorg/apache/http/client/RedirectHandler;Lorg/apache/http/client/AuthenticationHandler;Lorg/apache/http/client/AuthenticationHandler;Lorg/apache/http/client/UserTokenHandler;Lorg/apache/http/params/HttpParams;)V" />
-		<method name="createConnectRequest(Lorg/apache/http/conn/routing/HttpRoute;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/HttpRequest;" />
-		<method name="createTunnelToProxy(Lorg/apache/http/conn/routing/HttpRoute;ILorg/apache/http/protocol/HttpContext;)Z" />
-		<method name="createTunnelToTarget(Lorg/apache/http/conn/routing/HttpRoute;Lorg/apache/http/protocol/HttpContext;)Z" />
-		<method name="determineRoute(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/conn/routing/HttpRoute;" />
-		<method name="establishRoute(Lorg/apache/http/conn/routing/HttpRoute;Lorg/apache/http/protocol/HttpContext;)V" />
-		<method name="handleResponse(Lorg/apache/http/impl/client/RoutedRequest;Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/impl/client/RoutedRequest;" />
-		<method name="releaseConnection()V" />
-		<method name="rewriteRequestURI(Lorg/apache/http/impl/client/RequestWrapper;Lorg/apache/http/conn/routing/HttpRoute;)V" />
-		<field name="connManager" />
-		<field name="httpProcessor" />
-		<field name="keepAliveStrategy" />
-		<field name="managedConn" />
-		<field name="params" />
-		<field name="redirectHandler" />
-		<field name="requestExec" />
-		<field name="retryHandler" />
-		<field name="reuseStrategy" />
-		<field name="routePlanner" />
-	</class>
-	<class name="org/apache/http/impl/client/DefaultTargetAuthenticationHandler" since="1">
-		<extends name="org/apache/http/impl/client/AbstractAuthenticationHandler" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/impl/client/DefaultUserTokenHandler" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/client/UserTokenHandler" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/impl/client/EntityEnclosingRequestWrapper" since="1">
-		<extends name="org/apache/http/impl/client/RequestWrapper" />
-		<implements name="org/apache/http/HttpEntityEnclosingRequest" />
-		<method name="&lt;init>(Lorg/apache/http/HttpEntityEnclosingRequest;)V" />
-	</class>
-	<class name="org/apache/http/impl/client/RedirectLocations" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="add(Ljava/net/URI;)V" />
-		<method name="contains(Ljava/net/URI;)Z" />
-		<method name="remove(Ljava/net/URI;)Z" />
-	</class>
-	<class name="org/apache/http/impl/client/RequestWrapper" since="1">
-		<extends name="org/apache/http/message/AbstractHttpMessage" />
-		<implements name="org/apache/http/client/methods/HttpUriRequest" />
-		<method name="&lt;init>(Lorg/apache/http/HttpRequest;)V" />
-		<method name="getExecCount()I" />
-		<method name="getOriginal()Lorg/apache/http/HttpRequest;" />
-		<method name="incrementExecCount()V" />
-		<method name="isRepeatable()Z" />
-		<method name="resetHeaders()V" />
-		<method name="setMethod(Ljava/lang/String;)V" />
-		<method name="setProtocolVersion(Lorg/apache/http/ProtocolVersion;)V" />
-		<method name="setURI(Ljava/net/URI;)V" />
-	</class>
-	<class name="org/apache/http/impl/client/RoutedRequest" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Lorg/apache/http/impl/client/RequestWrapper;Lorg/apache/http/conn/routing/HttpRoute;)V" />
-		<method name="getRequest()Lorg/apache/http/impl/client/RequestWrapper;" />
-		<method name="getRoute()Lorg/apache/http/conn/routing/HttpRoute;" />
-		<field name="request" />
-		<field name="route" />
-	</class>
-	<class name="org/apache/http/impl/client/TunnelRefusedException" since="1">
-		<extends name="org/apache/http/HttpException" />
-		<method name="&lt;init>(Ljava/lang/String;Lorg/apache/http/HttpResponse;)V" />
-		<method name="getResponse()Lorg/apache/http/HttpResponse;" />
-	</class>
-	<class name="org/apache/http/impl/conn/AbstractClientConnAdapter" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/conn/ManagedClientConnection" />
-		<method name="&lt;init>(Lorg/apache/http/conn/ClientConnectionManager;Lorg/apache/http/conn/OperatedClientConnection;)V" />
-		<method name="assertNotAborted()V" />
-		<method name="assertValid(Lorg/apache/http/conn/OperatedClientConnection;)V" />
-		<method name="detach()V" />
-		<method name="getManager()Lorg/apache/http/conn/ClientConnectionManager;" />
-		<method name="getWrappedConnection()Lorg/apache/http/conn/OperatedClientConnection;" />
-	</class>
-	<class name="org/apache/http/impl/conn/AbstractPoolEntry" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Lorg/apache/http/conn/ClientConnectionOperator;Lorg/apache/http/conn/routing/HttpRoute;)V" />
-		<method name="getState()Ljava/lang/Object;" />
-		<method name="layerProtocol(Lorg/apache/http/protocol/HttpContext;Lorg/apache/http/params/HttpParams;)V" />
-		<method name="open(Lorg/apache/http/conn/routing/HttpRoute;Lorg/apache/http/protocol/HttpContext;Lorg/apache/http/params/HttpParams;)V" />
-		<method name="setState(Ljava/lang/Object;)V" />
-		<method name="shutdownEntry()V" />
-		<method name="tunnelProxy(Lorg/apache/http/HttpHost;ZLorg/apache/http/params/HttpParams;)V" />
-		<method name="tunnelTarget(ZLorg/apache/http/params/HttpParams;)V" />
-		<field name="connOperator" />
-		<field name="connection" />
-		<field name="route" />
-		<field name="state" />
-		<field name="tracker" />
-	</class>
-	<class name="org/apache/http/impl/conn/AbstractPooledConnAdapter" since="1">
-		<extends name="org/apache/http/impl/conn/AbstractClientConnAdapter" />
-		<method name="&lt;init>(Lorg/apache/http/conn/ClientConnectionManager;Lorg/apache/http/impl/conn/AbstractPoolEntry;)V" />
-		<method name="assertAttached()V" />
-		<field name="poolEntry" />
-	</class>
-	<class name="org/apache/http/impl/conn/DefaultClientConnection" since="1">
-		<extends name="org/apache/http/impl/SocketHttpClientConnection" />
-		<implements name="org/apache/http/conn/OperatedClientConnection" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/impl/conn/DefaultClientConnectionOperator" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/conn/ClientConnectionOperator" />
-		<method name="&lt;init>(Lorg/apache/http/conn/scheme/SchemeRegistry;)V" />
-		<method name="prepareSocket(Ljava/net/Socket;Lorg/apache/http/protocol/HttpContext;Lorg/apache/http/params/HttpParams;)V" />
-		<field name="schemeRegistry" />
-	</class>
-	<class name="org/apache/http/impl/conn/DefaultHttpRoutePlanner" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/conn/routing/HttpRoutePlanner" />
-		<method name="&lt;init>(Lorg/apache/http/conn/scheme/SchemeRegistry;)V" />
-		<field name="schemeRegistry" />
-	</class>
-	<class name="org/apache/http/impl/conn/DefaultResponseParser" since="1">
-		<extends name="org/apache/http/impl/io/AbstractMessageParser" />
-		<method name="&lt;init>(Lorg/apache/http/io/SessionInputBuffer;Lorg/apache/http/message/LineParser;Lorg/apache/http/HttpResponseFactory;Lorg/apache/http/params/HttpParams;)V" />
-	</class>
-	<class name="org/apache/http/impl/conn/IdleConnectionHandler" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="add(Lorg/apache/http/HttpConnection;JLjava/util/concurrent/TimeUnit;)V" />
-		<method name="closeExpiredConnections()V" />
-		<method name="closeIdleConnections(J)V" />
-		<method name="remove(Lorg/apache/http/HttpConnection;)Z" />
-		<method name="removeAll()V" />
-	</class>
-	<class name="org/apache/http/impl/conn/LoggingSessionInputBuffer" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/io/SessionInputBuffer" />
-		<method name="&lt;init>(Lorg/apache/http/io/SessionInputBuffer;Lorg/apache/http/impl/conn/Wire;)V" />
-	</class>
-	<class name="org/apache/http/impl/conn/LoggingSessionOutputBuffer" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/io/SessionOutputBuffer" />
-		<method name="&lt;init>(Lorg/apache/http/io/SessionOutputBuffer;Lorg/apache/http/impl/conn/Wire;)V" />
-	</class>
-	<class name="org/apache/http/impl/conn/ProxySelectorRoutePlanner" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/conn/routing/HttpRoutePlanner" />
-		<method name="&lt;init>(Lorg/apache/http/conn/scheme/SchemeRegistry;Ljava/net/ProxySelector;)V" />
-		<method name="chooseProxy(Ljava/util/List;Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Ljava/net/Proxy;" />
-		<method name="determineProxy(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/HttpHost;" />
-		<method name="getHost(Ljava/net/InetSocketAddress;)Ljava/lang/String;" />
-		<method name="getProxySelector()Ljava/net/ProxySelector;" />
-		<method name="setProxySelector(Ljava/net/ProxySelector;)V" />
-		<field name="proxySelector" />
-		<field name="schemeRegistry" />
-	</class>
-	<class name="org/apache/http/impl/conn/SingleClientConnManager" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/conn/ClientConnectionManager" />
-		<method name="&lt;init>(Lorg/apache/http/params/HttpParams;Lorg/apache/http/conn/scheme/SchemeRegistry;)V" />
-		<method name="assertStillUp()V" />
-		<method name="createConnectionOperator(Lorg/apache/http/conn/scheme/SchemeRegistry;)Lorg/apache/http/conn/ClientConnectionOperator;" />
-		<method name="getConnection(Lorg/apache/http/conn/routing/HttpRoute;Ljava/lang/Object;)Lorg/apache/http/conn/ManagedClientConnection;" />
-		<method name="revokeConnection()V" />
-		<field name="MISUSE_MESSAGE" />
-		<field name="alwaysShutDown" />
-		<field name="connOperator" />
-		<field name="connectionExpiresTime" />
-		<field name="isShutDown" />
-		<field name="lastReleaseTime" />
-		<field name="managedConn" />
-		<field name="schemeRegistry" />
-		<field name="uniquePoolEntry" />
-	</class>
-	<class name="org/apache/http/impl/conn/SingleClientConnManager$ConnAdapter" since="1">
-		<extends name="org/apache/http/impl/conn/AbstractPooledConnAdapter" />
-		<method name="&lt;init>(Lorg/apache/http/impl/conn/SingleClientConnManager;Lorg/apache/http/impl/conn/SingleClientConnManager$PoolEntry;Lorg/apache/http/conn/routing/HttpRoute;)V" />
-	</class>
-	<class name="org/apache/http/impl/conn/SingleClientConnManager$PoolEntry" since="1">
-		<extends name="org/apache/http/impl/conn/AbstractPoolEntry" />
-		<method name="&lt;init>(Lorg/apache/http/impl/conn/SingleClientConnManager;)V" />
-		<method name="close()V" />
-		<method name="shutdown()V" />
-	</class>
-	<class name="org/apache/http/impl/conn/Wire" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Lorg/apache/commons/logging/Log;)V" />
-		<method name="enabled()Z" />
-		<method name="input(I)V" />
-		<method name="input(Ljava/io/InputStream;)V" />
-		<method name="input(Ljava/lang/String;)V" />
-		<method name="input([B)V" />
-		<method name="input([BII)V" />
-		<method name="output(I)V" />
-		<method name="output(Ljava/io/InputStream;)V" />
-		<method name="output(Ljava/lang/String;)V" />
-		<method name="output([B)V" />
-		<method name="output([BII)V" />
-	</class>
-	<class name="org/apache/http/impl/conn/tsccm/AbstractConnPool" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/impl/conn/tsccm/RefQueueHandler" />
-		<method name="&lt;init>()V" />
-		<method name="closeConnection(Lorg/apache/http/conn/OperatedClientConnection;)V" />
-		<method name="closeExpiredConnections()V" />
-		<method name="closeIdleConnections(JLjava/util/concurrent/TimeUnit;)V" />
-		<method name="deleteClosedConnections()V" />
-		<method name="enableConnectionGC()V" />
-		<method name="freeEntry(Lorg/apache/http/impl/conn/tsccm/BasicPoolEntry;ZJLjava/util/concurrent/TimeUnit;)V" />
-		<method name="getEntry(Lorg/apache/http/conn/routing/HttpRoute;Ljava/lang/Object;JLjava/util/concurrent/TimeUnit;)Lorg/apache/http/impl/conn/tsccm/BasicPoolEntry;" />
-		<method name="handleLostEntry(Lorg/apache/http/conn/routing/HttpRoute;)V" />
-		<method name="requestPoolEntry(Lorg/apache/http/conn/routing/HttpRoute;Ljava/lang/Object;)Lorg/apache/http/impl/conn/tsccm/PoolEntryRequest;" />
-		<method name="shutdown()V" />
-		<field name="idleConnHandler" />
-		<field name="isShutDown" />
-		<field name="issuedConnections" />
-		<field name="numConnections" />
-		<field name="poolLock" />
-		<field name="refQueue" />
-	</class>
-	<class name="org/apache/http/impl/conn/tsccm/BasicPoolEntry" since="1">
-		<extends name="org/apache/http/impl/conn/AbstractPoolEntry" />
-		<method name="&lt;init>(Lorg/apache/http/conn/ClientConnectionOperator;Lorg/apache/http/conn/routing/HttpRoute;Ljava/lang/ref/ReferenceQueue;)V" />
-		<method name="getConnection()Lorg/apache/http/conn/OperatedClientConnection;" />
-		<method name="getPlannedRoute()Lorg/apache/http/conn/routing/HttpRoute;" />
-		<method name="getWeakRef()Lorg/apache/http/impl/conn/tsccm/BasicPoolEntryRef;" />
-	</class>
-	<class name="org/apache/http/impl/conn/tsccm/BasicPoolEntryRef" since="1">
-		<extends name="java/lang/ref/WeakReference" />
-		<method name="&lt;init>(Lorg/apache/http/impl/conn/tsccm/BasicPoolEntry;Ljava/lang/ref/ReferenceQueue;)V" />
-		<method name="getRoute()Lorg/apache/http/conn/routing/HttpRoute;" />
-	</class>
-	<class name="org/apache/http/impl/conn/tsccm/BasicPooledConnAdapter" since="1">
-		<extends name="org/apache/http/impl/conn/AbstractPooledConnAdapter" />
-		<method name="&lt;init>(Lorg/apache/http/impl/conn/tsccm/ThreadSafeClientConnManager;Lorg/apache/http/impl/conn/AbstractPoolEntry;)V" />
-		<method name="getPoolEntry()Lorg/apache/http/impl/conn/AbstractPoolEntry;" />
-	</class>
-	<class name="org/apache/http/impl/conn/tsccm/ConnPoolByRoute" since="1">
-		<extends name="org/apache/http/impl/conn/tsccm/AbstractConnPool" />
-		<method name="&lt;init>(Lorg/apache/http/conn/ClientConnectionOperator;Lorg/apache/http/params/HttpParams;)V" />
-		<method name="createEntry(Lorg/apache/http/impl/conn/tsccm/RouteSpecificPool;Lorg/apache/http/conn/ClientConnectionOperator;)Lorg/apache/http/impl/conn/tsccm/BasicPoolEntry;" />
-		<method name="createFreeConnQueue()Ljava/util/Queue;" />
-		<method name="createRouteToPoolMap()Ljava/util/Map;" />
-		<method name="createWaitingThreadQueue()Ljava/util/Queue;" />
-		<method name="deleteEntry(Lorg/apache/http/impl/conn/tsccm/BasicPoolEntry;)V" />
-		<method name="deleteLeastUsedEntry()V" />
-		<method name="getConnectionsInPool(Lorg/apache/http/conn/routing/HttpRoute;)I" />
-		<method name="getEntryBlocking(Lorg/apache/http/conn/routing/HttpRoute;Ljava/lang/Object;JLjava/util/concurrent/TimeUnit;Lorg/apache/http/impl/conn/tsccm/WaitingThreadAborter;)Lorg/apache/http/impl/conn/tsccm/BasicPoolEntry;" />
-		<method name="getFreeEntry(Lorg/apache/http/impl/conn/tsccm/RouteSpecificPool;Ljava/lang/Object;)Lorg/apache/http/impl/conn/tsccm/BasicPoolEntry;" />
-		<method name="getRoutePool(Lorg/apache/http/conn/routing/HttpRoute;Z)Lorg/apache/http/impl/conn/tsccm/RouteSpecificPool;" />
-		<method name="newRouteSpecificPool(Lorg/apache/http/conn/routing/HttpRoute;)Lorg/apache/http/impl/conn/tsccm/RouteSpecificPool;" />
-		<method name="newWaitingThread(Ljava/util/concurrent/locks/Condition;Lorg/apache/http/impl/conn/tsccm/RouteSpecificPool;)Lorg/apache/http/impl/conn/tsccm/WaitingThread;" />
-		<method name="notifyWaitingThread(Lorg/apache/http/impl/conn/tsccm/RouteSpecificPool;)V" />
-		<field name="freeConnections" />
-		<field name="maxTotalConnections" />
-		<field name="operator" />
-		<field name="routeToPool" />
-		<field name="waitingThreads" />
-	</class>
-	<class name="org/apache/http/impl/conn/tsccm/PoolEntryRequest" since="1">
-		<extends name="java/lang/Object" />
-		<method name="abortRequest()V" />
-		<method name="getPoolEntry(JLjava/util/concurrent/TimeUnit;)Lorg/apache/http/impl/conn/tsccm/BasicPoolEntry;" />
-	</class>
-	<class name="org/apache/http/impl/conn/tsccm/RefQueueHandler" since="1">
-		<extends name="java/lang/Object" />
-		<method name="handleReference(Ljava/lang/ref/Reference;)V" />
-	</class>
-	<class name="org/apache/http/impl/conn/tsccm/RefQueueWorker" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Runnable" />
-		<method name="&lt;init>(Ljava/lang/ref/ReferenceQueue;Lorg/apache/http/impl/conn/tsccm/RefQueueHandler;)V" />
-		<method name="shutdown()V" />
-		<field name="refHandler" />
-		<field name="refQueue" />
-		<field name="workerThread" />
-	</class>
-	<class name="org/apache/http/impl/conn/tsccm/RouteSpecificPool" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Lorg/apache/http/conn/routing/HttpRoute;I)V" />
-		<method name="allocEntry(Ljava/lang/Object;)Lorg/apache/http/impl/conn/tsccm/BasicPoolEntry;" />
-		<method name="createdEntry(Lorg/apache/http/impl/conn/tsccm/BasicPoolEntry;)V" />
-		<method name="deleteEntry(Lorg/apache/http/impl/conn/tsccm/BasicPoolEntry;)Z" />
-		<method name="dropEntry()V" />
-		<method name="freeEntry(Lorg/apache/http/impl/conn/tsccm/BasicPoolEntry;)V" />
-		<method name="getCapacity()I" />
-		<method name="getEntryCount()I" />
-		<method name="getMaxEntries()I" />
-		<method name="getRoute()Lorg/apache/http/conn/routing/HttpRoute;" />
-		<method name="hasThread()Z" />
-		<method name="isUnused()Z" />
-		<method name="nextThread()Lorg/apache/http/impl/conn/tsccm/WaitingThread;" />
-		<method name="queueThread(Lorg/apache/http/impl/conn/tsccm/WaitingThread;)V" />
-		<method name="removeThread(Lorg/apache/http/impl/conn/tsccm/WaitingThread;)V" />
-		<field name="freeEntries" />
-		<field name="maxEntries" />
-		<field name="numEntries" />
-		<field name="route" />
-		<field name="waitingThreads" />
-	</class>
-	<class name="org/apache/http/impl/conn/tsccm/ThreadSafeClientConnManager" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/conn/ClientConnectionManager" />
-		<method name="&lt;init>(Lorg/apache/http/params/HttpParams;Lorg/apache/http/conn/scheme/SchemeRegistry;)V" />
-		<method name="createConnectionOperator(Lorg/apache/http/conn/scheme/SchemeRegistry;)Lorg/apache/http/conn/ClientConnectionOperator;" />
-		<method name="createConnectionPool(Lorg/apache/http/params/HttpParams;)Lorg/apache/http/impl/conn/tsccm/AbstractConnPool;" />
-		<method name="getConnectionsInPool()I" />
-		<method name="getConnectionsInPool(Lorg/apache/http/conn/routing/HttpRoute;)I" />
-		<field name="connOperator" />
-		<field name="connectionPool" />
-		<field name="schemeRegistry" />
-	</class>
-	<class name="org/apache/http/impl/conn/tsccm/WaitingThread" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/util/concurrent/locks/Condition;Lorg/apache/http/impl/conn/tsccm/RouteSpecificPool;)V" />
-		<method name="await(Ljava/util/Date;)Z" />
-		<method name="getCondition()Ljava/util/concurrent/locks/Condition;" />
-		<method name="getPool()Lorg/apache/http/impl/conn/tsccm/RouteSpecificPool;" />
-		<method name="getThread()Ljava/lang/Thread;" />
-		<method name="interrupt()V" />
-		<method name="wakeup()V" />
-	</class>
-	<class name="org/apache/http/impl/conn/tsccm/WaitingThreadAborter" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="abort()V" />
-		<method name="setWaitingThread(Lorg/apache/http/impl/conn/tsccm/WaitingThread;)V" />
-	</class>
-	<class name="org/apache/http/impl/cookie/AbstractCookieAttributeHandler" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/cookie/CookieAttributeHandler" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/impl/cookie/AbstractCookieSpec" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/cookie/CookieSpec" />
-		<method name="&lt;init>()V" />
-		<method name="findAttribHandler(Ljava/lang/String;)Lorg/apache/http/cookie/CookieAttributeHandler;" />
-		<method name="getAttribHandler(Ljava/lang/String;)Lorg/apache/http/cookie/CookieAttributeHandler;" />
-		<method name="getAttribHandlers()Ljava/util/Collection;" />
-		<method name="registerAttribHandler(Ljava/lang/String;Lorg/apache/http/cookie/CookieAttributeHandler;)V" />
-	</class>
-	<class name="org/apache/http/impl/cookie/BasicClientCookie" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-		<implements name="org/apache/http/cookie/ClientCookie" />
-		<implements name="org/apache/http/cookie/SetCookie" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="setAttribute(Ljava/lang/String;Ljava/lang/String;)V" />
-	</class>
-	<class name="org/apache/http/impl/cookie/BasicClientCookie2" since="1">
-		<extends name="org/apache/http/impl/cookie/BasicClientCookie" />
-		<implements name="org/apache/http/cookie/SetCookie2" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-	</class>
-	<class name="org/apache/http/impl/cookie/BasicCommentHandler" since="1">
-		<extends name="org/apache/http/impl/cookie/AbstractCookieAttributeHandler" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/impl/cookie/BasicDomainHandler" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/cookie/CookieAttributeHandler" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/impl/cookie/BasicExpiresHandler" since="1">
-		<extends name="org/apache/http/impl/cookie/AbstractCookieAttributeHandler" />
-		<method name="&lt;init>([Ljava/lang/String;)V" />
-	</class>
-	<class name="org/apache/http/impl/cookie/BasicMaxAgeHandler" since="1">
-		<extends name="org/apache/http/impl/cookie/AbstractCookieAttributeHandler" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/impl/cookie/BasicPathHandler" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/cookie/CookieAttributeHandler" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/impl/cookie/BasicSecureHandler" since="1">
-		<extends name="org/apache/http/impl/cookie/AbstractCookieAttributeHandler" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/impl/cookie/BestMatchSpec" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/cookie/CookieSpec" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>([Ljava/lang/String;Z)V" />
-	</class>
-	<class name="org/apache/http/impl/cookie/BestMatchSpecFactory" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/cookie/CookieSpecFactory" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/impl/cookie/BrowserCompatSpec" since="1">
-		<extends name="org/apache/http/impl/cookie/CookieSpecBase" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>([Ljava/lang/String;)V" />
-		<field name="DATE_PATTERNS" />
-	</class>
-	<class name="org/apache/http/impl/cookie/BrowserCompatSpecFactory" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/cookie/CookieSpecFactory" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/impl/cookie/CookieSpecBase" since="1">
-		<extends name="org/apache/http/impl/cookie/AbstractCookieSpec" />
-		<method name="&lt;init>()V" />
-		<method name="getDefaultDomain(Lorg/apache/http/cookie/CookieOrigin;)Ljava/lang/String;" />
-		<method name="getDefaultPath(Lorg/apache/http/cookie/CookieOrigin;)Ljava/lang/String;" />
-		<method name="parse([Lorg/apache/http/HeaderElement;Lorg/apache/http/cookie/CookieOrigin;)Ljava/util/List;" />
-	</class>
-	<class name="org/apache/http/impl/cookie/DateParseException" since="1">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="org/apache/http/impl/cookie/DateUtils" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="formatDate(Ljava/util/Date;)Ljava/lang/String;" />
-		<method name="formatDate(Ljava/util/Date;Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="parseDate(Ljava/lang/String;)Ljava/util/Date;" />
-		<method name="parseDate(Ljava/lang/String;[Ljava/lang/String;)Ljava/util/Date;" />
-		<method name="parseDate(Ljava/lang/String;[Ljava/lang/String;Ljava/util/Date;)Ljava/util/Date;" />
-		<field name="GMT" />
-		<field name="PATTERN_ASCTIME" />
-		<field name="PATTERN_RFC1036" />
-		<field name="PATTERN_RFC1123" />
-	</class>
-	<class name="org/apache/http/impl/cookie/NetscapeDomainHandler" since="1">
-		<extends name="org/apache/http/impl/cookie/BasicDomainHandler" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/impl/cookie/NetscapeDraftHeaderParser" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="parseHeader(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;)Lorg/apache/http/HeaderElement;" />
-		<field name="DEFAULT" />
-	</class>
-	<class name="org/apache/http/impl/cookie/NetscapeDraftSpec" since="1">
-		<extends name="org/apache/http/impl/cookie/CookieSpecBase" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>([Ljava/lang/String;)V" />
-		<field name="EXPIRES_PATTERN" />
-	</class>
-	<class name="org/apache/http/impl/cookie/NetscapeDraftSpecFactory" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/cookie/CookieSpecFactory" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/impl/cookie/RFC2109DomainHandler" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/cookie/CookieAttributeHandler" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/impl/cookie/RFC2109Spec" since="1">
-		<extends name="org/apache/http/impl/cookie/CookieSpecBase" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>([Ljava/lang/String;Z)V" />
-		<method name="formatCookieAsVer(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/cookie/Cookie;I)V" />
-		<method name="formatParamAsVer(Lorg/apache/http/util/CharArrayBuffer;Ljava/lang/String;Ljava/lang/String;I)V" />
-	</class>
-	<class name="org/apache/http/impl/cookie/RFC2109SpecFactory" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/cookie/CookieSpecFactory" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/impl/cookie/RFC2109VersionHandler" since="1">
-		<extends name="org/apache/http/impl/cookie/AbstractCookieAttributeHandler" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/impl/cookie/RFC2965CommentUrlAttributeHandler" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/cookie/CookieAttributeHandler" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/impl/cookie/RFC2965DiscardAttributeHandler" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/cookie/CookieAttributeHandler" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/impl/cookie/RFC2965DomainAttributeHandler" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/cookie/CookieAttributeHandler" />
-		<method name="&lt;init>()V" />
-		<method name="domainMatch(Ljava/lang/String;Ljava/lang/String;)Z" />
-	</class>
-	<class name="org/apache/http/impl/cookie/RFC2965PortAttributeHandler" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/cookie/CookieAttributeHandler" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/impl/cookie/RFC2965Spec" since="1">
-		<extends name="org/apache/http/impl/cookie/RFC2109Spec" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>([Ljava/lang/String;Z)V" />
-	</class>
-	<class name="org/apache/http/impl/cookie/RFC2965SpecFactory" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/cookie/CookieSpecFactory" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/impl/cookie/RFC2965VersionAttributeHandler" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/cookie/CookieAttributeHandler" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/impl/entity/EntityDeserializer" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Lorg/apache/http/entity/ContentLengthStrategy;)V" />
-		<method name="deserialize(Lorg/apache/http/io/SessionInputBuffer;Lorg/apache/http/HttpMessage;)Lorg/apache/http/HttpEntity;" />
-		<method name="doDeserialize(Lorg/apache/http/io/SessionInputBuffer;Lorg/apache/http/HttpMessage;)Lorg/apache/http/entity/BasicHttpEntity;" />
-	</class>
-	<class name="org/apache/http/impl/entity/EntitySerializer" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Lorg/apache/http/entity/ContentLengthStrategy;)V" />
-		<method name="doSerialize(Lorg/apache/http/io/SessionOutputBuffer;Lorg/apache/http/HttpMessage;)Ljava/io/OutputStream;" />
-		<method name="serialize(Lorg/apache/http/io/SessionOutputBuffer;Lorg/apache/http/HttpMessage;Lorg/apache/http/HttpEntity;)V" />
-	</class>
-	<class name="org/apache/http/impl/entity/LaxContentLengthStrategy" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/entity/ContentLengthStrategy" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/impl/entity/StrictContentLengthStrategy" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/entity/ContentLengthStrategy" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/impl/io/AbstractMessageParser" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/io/HttpMessageParser" />
-		<method name="&lt;init>(Lorg/apache/http/io/SessionInputBuffer;Lorg/apache/http/message/LineParser;Lorg/apache/http/params/HttpParams;)V" />
-		<method name="parseHead(Lorg/apache/http/io/SessionInputBuffer;)Lorg/apache/http/HttpMessage;" />
-		<method name="parseHeaders(Lorg/apache/http/io/SessionInputBuffer;IILorg/apache/http/message/LineParser;)[Lorg/apache/http/Header;" />
-		<field name="lineParser" />
-	</class>
-	<class name="org/apache/http/impl/io/AbstractMessageWriter" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/io/HttpMessageWriter" />
-		<method name="&lt;init>(Lorg/apache/http/io/SessionOutputBuffer;Lorg/apache/http/message/LineFormatter;Lorg/apache/http/params/HttpParams;)V" />
-		<method name="writeHeadLine(Lorg/apache/http/HttpMessage;)V" />
-		<field name="lineBuf" />
-		<field name="lineFormatter" />
-		<field name="sessionBuffer" />
-	</class>
-	<class name="org/apache/http/impl/io/AbstractSessionInputBuffer" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/io/SessionInputBuffer" />
-		<method name="&lt;init>()V" />
-		<method name="fillBuffer()I" />
-		<method name="hasBufferedData()Z" />
-		<method name="init(Ljava/io/InputStream;ILorg/apache/http/params/HttpParams;)V" />
-	</class>
-	<class name="org/apache/http/impl/io/AbstractSessionOutputBuffer" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/io/SessionOutputBuffer" />
-		<method name="&lt;init>()V" />
-		<method name="flushBuffer()V" />
-		<method name="init(Ljava/io/OutputStream;ILorg/apache/http/params/HttpParams;)V" />
-	</class>
-	<class name="org/apache/http/impl/io/ChunkedInputStream" since="1">
-		<extends name="java/io/InputStream" />
-		<method name="&lt;init>(Lorg/apache/http/io/SessionInputBuffer;)V" />
-		<method name="getFooters()[Lorg/apache/http/Header;" />
-	</class>
-	<class name="org/apache/http/impl/io/ChunkedOutputStream" since="1">
-		<extends name="java/io/OutputStream" />
-		<method name="&lt;init>(Lorg/apache/http/io/SessionOutputBuffer;)V" />
-		<method name="&lt;init>(Lorg/apache/http/io/SessionOutputBuffer;I)V" />
-		<method name="finish()V" />
-		<method name="flushCache()V" />
-		<method name="flushCacheWithAppend([BII)V" />
-		<method name="writeClosingChunk()V" />
-	</class>
-	<class name="org/apache/http/impl/io/ContentLengthInputStream" since="1">
-		<extends name="java/io/InputStream" />
-		<method name="&lt;init>(Lorg/apache/http/io/SessionInputBuffer;J)V" />
-	</class>
-	<class name="org/apache/http/impl/io/ContentLengthOutputStream" since="1">
-		<extends name="java/io/OutputStream" />
-		<method name="&lt;init>(Lorg/apache/http/io/SessionOutputBuffer;J)V" />
-	</class>
-	<class name="org/apache/http/impl/io/HttpRequestParser" since="1">
-		<extends name="org/apache/http/impl/io/AbstractMessageParser" />
-		<method name="&lt;init>(Lorg/apache/http/io/SessionInputBuffer;Lorg/apache/http/message/LineParser;Lorg/apache/http/HttpRequestFactory;Lorg/apache/http/params/HttpParams;)V" />
-	</class>
-	<class name="org/apache/http/impl/io/HttpRequestWriter" since="1">
-		<extends name="org/apache/http/impl/io/AbstractMessageWriter" />
-		<method name="&lt;init>(Lorg/apache/http/io/SessionOutputBuffer;Lorg/apache/http/message/LineFormatter;Lorg/apache/http/params/HttpParams;)V" />
-	</class>
-	<class name="org/apache/http/impl/io/HttpResponseParser" since="1">
-		<extends name="org/apache/http/impl/io/AbstractMessageParser" />
-		<method name="&lt;init>(Lorg/apache/http/io/SessionInputBuffer;Lorg/apache/http/message/LineParser;Lorg/apache/http/HttpResponseFactory;Lorg/apache/http/params/HttpParams;)V" />
-	</class>
-	<class name="org/apache/http/impl/io/HttpResponseWriter" since="1">
-		<extends name="org/apache/http/impl/io/AbstractMessageWriter" />
-		<method name="&lt;init>(Lorg/apache/http/io/SessionOutputBuffer;Lorg/apache/http/message/LineFormatter;Lorg/apache/http/params/HttpParams;)V" />
-	</class>
-	<class name="org/apache/http/impl/io/HttpTransportMetricsImpl" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/io/HttpTransportMetrics" />
-		<method name="&lt;init>()V" />
-		<method name="incrementBytesTransferred(J)V" />
-		<method name="setBytesTransferred(J)V" />
-	</class>
-	<class name="org/apache/http/impl/io/IdentityInputStream" since="1">
-		<extends name="java/io/InputStream" />
-		<method name="&lt;init>(Lorg/apache/http/io/SessionInputBuffer;)V" />
-	</class>
-	<class name="org/apache/http/impl/io/IdentityOutputStream" since="1">
-		<extends name="java/io/OutputStream" />
-		<method name="&lt;init>(Lorg/apache/http/io/SessionOutputBuffer;)V" />
-	</class>
-	<class name="org/apache/http/impl/io/SocketInputBuffer" since="1">
-		<extends name="org/apache/http/impl/io/AbstractSessionInputBuffer" />
-		<method name="&lt;init>(Ljava/net/Socket;ILorg/apache/http/params/HttpParams;)V" />
-	</class>
-	<class name="org/apache/http/impl/io/SocketOutputBuffer" since="1">
-		<extends name="org/apache/http/impl/io/AbstractSessionOutputBuffer" />
-		<method name="&lt;init>(Ljava/net/Socket;ILorg/apache/http/params/HttpParams;)V" />
-	</class>
-	<class name="org/apache/http/io/HttpMessageParser" since="1">
-		<extends name="java/lang/Object" />
-		<method name="parse()Lorg/apache/http/HttpMessage;" />
-	</class>
-	<class name="org/apache/http/io/HttpMessageWriter" since="1">
-		<extends name="java/lang/Object" />
-		<method name="write(Lorg/apache/http/HttpMessage;)V" />
-	</class>
-	<class name="org/apache/http/io/HttpTransportMetrics" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getBytesTransferred()J" />
-		<method name="reset()V" />
-	</class>
-	<class name="org/apache/http/io/SessionInputBuffer" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getMetrics()Lorg/apache/http/io/HttpTransportMetrics;" />
-		<method name="isDataAvailable(I)Z" />
-		<method name="read()I" />
-		<method name="read([B)I" />
-		<method name="read([BII)I" />
-		<method name="readLine()Ljava/lang/String;" />
-		<method name="readLine(Lorg/apache/http/util/CharArrayBuffer;)I" />
-	</class>
-	<class name="org/apache/http/io/SessionOutputBuffer" since="1">
-		<extends name="java/lang/Object" />
-		<method name="flush()V" />
-		<method name="getMetrics()Lorg/apache/http/io/HttpTransportMetrics;" />
-		<method name="write(I)V" />
-		<method name="write([B)V" />
-		<method name="write([BII)V" />
-		<method name="writeLine(Ljava/lang/String;)V" />
-		<method name="writeLine(Lorg/apache/http/util/CharArrayBuffer;)V" />
-	</class>
-	<class name="org/apache/http/message/AbstractHttpMessage" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HttpMessage" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Lorg/apache/http/params/HttpParams;)V" />
-		<field name="headergroup" />
-		<field name="params" />
-	</class>
-	<class name="org/apache/http/message/BasicHeader" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-		<implements name="org/apache/http/Header" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-	</class>
-	<class name="org/apache/http/message/BasicHeaderElement" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-		<implements name="org/apache/http/HeaderElement" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;[Lorg/apache/http/NameValuePair;)V" />
-	</class>
-	<class name="org/apache/http/message/BasicHeaderElementIterator" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HeaderElementIterator" />
-		<method name="&lt;init>(Lorg/apache/http/HeaderIterator;)V" />
-		<method name="&lt;init>(Lorg/apache/http/HeaderIterator;Lorg/apache/http/message/HeaderValueParser;)V" />
-	</class>
-	<class name="org/apache/http/message/BasicHeaderIterator" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HeaderIterator" />
-		<method name="&lt;init>([Lorg/apache/http/Header;Ljava/lang/String;)V" />
-		<method name="filterHeader(I)Z" />
-		<method name="findNext(I)I" />
-		<field name="allHeaders" />
-		<field name="currentIndex" />
-		<field name="headerName" />
-	</class>
-	<class name="org/apache/http/message/BasicHeaderValueFormatter" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/message/HeaderValueFormatter" />
-		<method name="&lt;init>()V" />
-		<method name="doFormatValue(Lorg/apache/http/util/CharArrayBuffer;Ljava/lang/String;Z)V" />
-		<method name="estimateElementsLen([Lorg/apache/http/HeaderElement;)I" />
-		<method name="estimateHeaderElementLen(Lorg/apache/http/HeaderElement;)I" />
-		<method name="estimateNameValuePairLen(Lorg/apache/http/NameValuePair;)I" />
-		<method name="estimateParametersLen([Lorg/apache/http/NameValuePair;)I" />
-		<method name="formatElements([Lorg/apache/http/HeaderElement;ZLorg/apache/http/message/HeaderValueFormatter;)Ljava/lang/String;" />
-		<method name="formatHeaderElement(Lorg/apache/http/HeaderElement;ZLorg/apache/http/message/HeaderValueFormatter;)Ljava/lang/String;" />
-		<method name="formatNameValuePair(Lorg/apache/http/NameValuePair;ZLorg/apache/http/message/HeaderValueFormatter;)Ljava/lang/String;" />
-		<method name="formatParameters([Lorg/apache/http/NameValuePair;ZLorg/apache/http/message/HeaderValueFormatter;)Ljava/lang/String;" />
-		<method name="isSeparator(C)Z" />
-		<method name="isUnsafe(C)Z" />
-		<field name="DEFAULT" />
-		<field name="SEPARATORS" />
-		<field name="UNSAFE_CHARS" />
-	</class>
-	<class name="org/apache/http/message/BasicHeaderValueParser" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/message/HeaderValueParser" />
-		<method name="&lt;init>()V" />
-		<method name="createHeaderElement(Ljava/lang/String;Ljava/lang/String;[Lorg/apache/http/NameValuePair;)Lorg/apache/http/HeaderElement;" />
-		<method name="createNameValuePair(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/http/NameValuePair;" />
-		<method name="parseElements(Ljava/lang/String;Lorg/apache/http/message/HeaderValueParser;)[Lorg/apache/http/HeaderElement;" />
-		<method name="parseHeaderElement(Ljava/lang/String;Lorg/apache/http/message/HeaderValueParser;)Lorg/apache/http/HeaderElement;" />
-		<method name="parseNameValuePair(Ljava/lang/String;Lorg/apache/http/message/HeaderValueParser;)Lorg/apache/http/NameValuePair;" />
-		<method name="parseNameValuePair(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;[C)Lorg/apache/http/NameValuePair;" />
-		<method name="parseParameters(Ljava/lang/String;Lorg/apache/http/message/HeaderValueParser;)[Lorg/apache/http/NameValuePair;" />
-		<field name="DEFAULT" />
-	</class>
-	<class name="org/apache/http/message/BasicHttpEntityEnclosingRequest" since="1">
-		<extends name="org/apache/http/message/BasicHttpRequest" />
-		<implements name="org/apache/http/HttpEntityEnclosingRequest" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Lorg/apache/http/ProtocolVersion;)V" />
-		<method name="&lt;init>(Lorg/apache/http/RequestLine;)V" />
-	</class>
-	<class name="org/apache/http/message/BasicHttpRequest" since="1">
-		<extends name="org/apache/http/message/AbstractHttpMessage" />
-		<implements name="org/apache/http/HttpRequest" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Lorg/apache/http/ProtocolVersion;)V" />
-		<method name="&lt;init>(Lorg/apache/http/RequestLine;)V" />
-	</class>
-	<class name="org/apache/http/message/BasicHttpResponse" since="1">
-		<extends name="org/apache/http/message/AbstractHttpMessage" />
-		<implements name="org/apache/http/HttpResponse" />
-		<method name="&lt;init>(Lorg/apache/http/ProtocolVersion;ILjava/lang/String;)V" />
-		<method name="&lt;init>(Lorg/apache/http/StatusLine;)V" />
-		<method name="&lt;init>(Lorg/apache/http/StatusLine;Lorg/apache/http/ReasonPhraseCatalog;Ljava/util/Locale;)V" />
-		<method name="getReason(I)Ljava/lang/String;" />
-	</class>
-	<class name="org/apache/http/message/BasicLineFormatter" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/message/LineFormatter" />
-		<method name="&lt;init>()V" />
-		<method name="doFormatHeader(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/Header;)V" />
-		<method name="doFormatRequestLine(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/RequestLine;)V" />
-		<method name="doFormatStatusLine(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/StatusLine;)V" />
-		<method name="estimateProtocolVersionLen(Lorg/apache/http/ProtocolVersion;)I" />
-		<method name="formatHeader(Lorg/apache/http/Header;Lorg/apache/http/message/LineFormatter;)Ljava/lang/String;" />
-		<method name="formatProtocolVersion(Lorg/apache/http/ProtocolVersion;Lorg/apache/http/message/LineFormatter;)Ljava/lang/String;" />
-		<method name="formatRequestLine(Lorg/apache/http/RequestLine;Lorg/apache/http/message/LineFormatter;)Ljava/lang/String;" />
-		<method name="formatStatusLine(Lorg/apache/http/StatusLine;Lorg/apache/http/message/LineFormatter;)Ljava/lang/String;" />
-		<method name="initBuffer(Lorg/apache/http/util/CharArrayBuffer;)Lorg/apache/http/util/CharArrayBuffer;" />
-		<field name="DEFAULT" />
-	</class>
-	<class name="org/apache/http/message/BasicLineParser" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/message/LineParser" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Lorg/apache/http/ProtocolVersion;)V" />
-		<method name="createProtocolVersion(II)Lorg/apache/http/ProtocolVersion;" />
-		<method name="createRequestLine(Ljava/lang/String;Ljava/lang/String;Lorg/apache/http/ProtocolVersion;)Lorg/apache/http/RequestLine;" />
-		<method name="createStatusLine(Lorg/apache/http/ProtocolVersion;ILjava/lang/String;)Lorg/apache/http/StatusLine;" />
-		<method name="parseHeader(Ljava/lang/String;Lorg/apache/http/message/LineParser;)Lorg/apache/http/Header;" />
-		<method name="parseProtocolVersion(Ljava/lang/String;Lorg/apache/http/message/LineParser;)Lorg/apache/http/ProtocolVersion;" />
-		<method name="parseRequestLine(Ljava/lang/String;Lorg/apache/http/message/LineParser;)Lorg/apache/http/RequestLine;" />
-		<method name="parseStatusLine(Ljava/lang/String;Lorg/apache/http/message/LineParser;)Lorg/apache/http/StatusLine;" />
-		<method name="skipWhitespace(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;)V" />
-		<field name="DEFAULT" />
-		<field name="protocol" />
-	</class>
-	<class name="org/apache/http/message/BasicListHeaderIterator" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HeaderIterator" />
-		<method name="&lt;init>(Ljava/util/List;Ljava/lang/String;)V" />
-		<method name="filterHeader(I)Z" />
-		<method name="findNext(I)I" />
-		<field name="allHeaders" />
-		<field name="currentIndex" />
-		<field name="headerName" />
-		<field name="lastIndex" />
-	</class>
-	<class name="org/apache/http/message/BasicNameValuePair" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-		<implements name="org/apache/http/NameValuePair" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
-	</class>
-	<class name="org/apache/http/message/BasicRequestLine" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-		<implements name="org/apache/http/RequestLine" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Lorg/apache/http/ProtocolVersion;)V" />
-	</class>
-	<class name="org/apache/http/message/BasicStatusLine" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-		<implements name="org/apache/http/StatusLine" />
-		<method name="&lt;init>(Lorg/apache/http/ProtocolVersion;ILjava/lang/String;)V" />
-	</class>
-	<class name="org/apache/http/message/BasicTokenIterator" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/TokenIterator" />
-		<method name="&lt;init>(Lorg/apache/http/HeaderIterator;)V" />
-		<method name="createToken(Ljava/lang/String;II)Ljava/lang/String;" />
-		<method name="findNext(I)I" />
-		<method name="findTokenEnd(I)I" />
-		<method name="findTokenSeparator(I)I" />
-		<method name="findTokenStart(I)I" />
-		<method name="isHttpSeparator(C)Z" />
-		<method name="isTokenChar(C)Z" />
-		<method name="isTokenSeparator(C)Z" />
-		<method name="isWhitespace(C)Z" />
-		<field name="HTTP_SEPARATORS" />
-		<field name="currentHeader" />
-		<field name="currentToken" />
-		<field name="headerIt" />
-		<field name="searchPos" />
-	</class>
-	<class name="org/apache/http/message/BufferedHeader" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-		<implements name="org/apache/http/FormattedHeader" />
-		<method name="&lt;init>(Lorg/apache/http/util/CharArrayBuffer;)V" />
-	</class>
-	<class name="org/apache/http/message/HeaderGroup" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-		<method name="&lt;init>()V" />
-		<method name="addHeader(Lorg/apache/http/Header;)V" />
-		<method name="clear()V" />
-		<method name="containsHeader(Ljava/lang/String;)Z" />
-		<method name="copy()Lorg/apache/http/message/HeaderGroup;" />
-		<method name="getAllHeaders()[Lorg/apache/http/Header;" />
-		<method name="getCondensedHeader(Ljava/lang/String;)Lorg/apache/http/Header;" />
-		<method name="getFirstHeader(Ljava/lang/String;)Lorg/apache/http/Header;" />
-		<method name="getHeaders(Ljava/lang/String;)[Lorg/apache/http/Header;" />
-		<method name="getLastHeader(Ljava/lang/String;)Lorg/apache/http/Header;" />
-		<method name="iterator()Lorg/apache/http/HeaderIterator;" />
-		<method name="iterator(Ljava/lang/String;)Lorg/apache/http/HeaderIterator;" />
-		<method name="removeHeader(Lorg/apache/http/Header;)V" />
-		<method name="setHeaders([Lorg/apache/http/Header;)V" />
-		<method name="updateHeader(Lorg/apache/http/Header;)V" />
-	</class>
-	<class name="org/apache/http/message/HeaderValueFormatter" since="1">
-		<extends name="java/lang/Object" />
-		<method name="formatElements(Lorg/apache/http/util/CharArrayBuffer;[Lorg/apache/http/HeaderElement;Z)Lorg/apache/http/util/CharArrayBuffer;" />
-		<method name="formatHeaderElement(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/HeaderElement;Z)Lorg/apache/http/util/CharArrayBuffer;" />
-		<method name="formatNameValuePair(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/NameValuePair;Z)Lorg/apache/http/util/CharArrayBuffer;" />
-		<method name="formatParameters(Lorg/apache/http/util/CharArrayBuffer;[Lorg/apache/http/NameValuePair;Z)Lorg/apache/http/util/CharArrayBuffer;" />
-	</class>
-	<class name="org/apache/http/message/HeaderValueParser" since="1">
-		<extends name="java/lang/Object" />
-		<method name="parseElements(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;)[Lorg/apache/http/HeaderElement;" />
-		<method name="parseHeaderElement(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;)Lorg/apache/http/HeaderElement;" />
-		<method name="parseNameValuePair(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;)Lorg/apache/http/NameValuePair;" />
-		<method name="parseParameters(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;)[Lorg/apache/http/NameValuePair;" />
-	</class>
-	<class name="org/apache/http/message/LineFormatter" since="1">
-		<extends name="java/lang/Object" />
-		<method name="appendProtocolVersion(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/ProtocolVersion;)Lorg/apache/http/util/CharArrayBuffer;" />
-		<method name="formatHeader(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/Header;)Lorg/apache/http/util/CharArrayBuffer;" />
-		<method name="formatRequestLine(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/RequestLine;)Lorg/apache/http/util/CharArrayBuffer;" />
-		<method name="formatStatusLine(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/StatusLine;)Lorg/apache/http/util/CharArrayBuffer;" />
-	</class>
-	<class name="org/apache/http/message/LineParser" since="1">
-		<extends name="java/lang/Object" />
-		<method name="hasProtocolVersion(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;)Z" />
-		<method name="parseHeader(Lorg/apache/http/util/CharArrayBuffer;)Lorg/apache/http/Header;" />
-		<method name="parseProtocolVersion(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;)Lorg/apache/http/ProtocolVersion;" />
-		<method name="parseRequestLine(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;)Lorg/apache/http/RequestLine;" />
-		<method name="parseStatusLine(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;)Lorg/apache/http/StatusLine;" />
-	</class>
-	<class name="org/apache/http/message/ParserCursor" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(II)V" />
-		<method name="atEnd()Z" />
-		<method name="getLowerBound()I" />
-		<method name="getPos()I" />
-		<method name="getUpperBound()I" />
-		<method name="updatePos(I)V" />
-	</class>
-	<class name="org/apache/http/params/AbstractHttpParams" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/params/HttpParams" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/params/BasicHttpParams" since="1">
-		<extends name="org/apache/http/params/AbstractHttpParams" />
-		<implements name="java/io/Serializable" />
-		<implements name="java/lang/Cloneable" />
-		<method name="&lt;init>()V" />
-		<method name="clear()V" />
-		<method name="copyParams(Lorg/apache/http/params/HttpParams;)V" />
-		<method name="isParameterSet(Ljava/lang/String;)Z" />
-		<method name="isParameterSetLocally(Ljava/lang/String;)Z" />
-		<method name="setParameters([Ljava/lang/String;Ljava/lang/Object;)V" />
-	</class>
-	<class name="org/apache/http/params/CoreConnectionPNames" since="1">
-		<extends name="java/lang/Object" />
-		<field name="CONNECTION_TIMEOUT" />
-		<field name="MAX_HEADER_COUNT" />
-		<field name="MAX_LINE_LENGTH" />
-		<field name="SOCKET_BUFFER_SIZE" />
-		<field name="SO_LINGER" />
-		<field name="SO_TIMEOUT" />
-		<field name="STALE_CONNECTION_CHECK" />
-		<field name="TCP_NODELAY" />
-	</class>
-	<class name="org/apache/http/params/CoreProtocolPNames" since="1">
-		<extends name="java/lang/Object" />
-		<field name="HTTP_CONTENT_CHARSET" />
-		<field name="HTTP_ELEMENT_CHARSET" />
-		<field name="ORIGIN_SERVER" />
-		<field name="PROTOCOL_VERSION" />
-		<field name="STRICT_TRANSFER_ENCODING" />
-		<field name="USER_AGENT" />
-		<field name="USE_EXPECT_CONTINUE" />
-		<field name="WAIT_FOR_CONTINUE" />
-	</class>
-	<class name="org/apache/http/params/DefaultedHttpParams" since="1">
-		<extends name="org/apache/http/params/AbstractHttpParams" />
-		<method name="&lt;init>(Lorg/apache/http/params/HttpParams;Lorg/apache/http/params/HttpParams;)V" />
-		<method name="getDefaults()Lorg/apache/http/params/HttpParams;" />
-	</class>
-	<class name="org/apache/http/params/HttpAbstractParamBean" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Lorg/apache/http/params/HttpParams;)V" />
-		<field name="params" />
-	</class>
-	<class name="org/apache/http/params/HttpConnectionParamBean" since="1">
-		<extends name="org/apache/http/params/HttpAbstractParamBean" />
-		<method name="&lt;init>(Lorg/apache/http/params/HttpParams;)V" />
-		<method name="setConnectionTimeout(I)V" />
-		<method name="setLinger(I)V" />
-		<method name="setSoTimeout(I)V" />
-		<method name="setSocketBufferSize(I)V" />
-		<method name="setStaleCheckingEnabled(Z)V" />
-		<method name="setTcpNoDelay(Z)V" />
-	</class>
-	<class name="org/apache/http/params/HttpConnectionParams" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/params/CoreConnectionPNames" />
-		<method name="&lt;init>()V" />
-		<method name="getConnectionTimeout(Lorg/apache/http/params/HttpParams;)I" />
-		<method name="getLinger(Lorg/apache/http/params/HttpParams;)I" />
-		<method name="getSoTimeout(Lorg/apache/http/params/HttpParams;)I" />
-		<method name="getSocketBufferSize(Lorg/apache/http/params/HttpParams;)I" />
-		<method name="getTcpNoDelay(Lorg/apache/http/params/HttpParams;)Z" />
-		<method name="isStaleCheckingEnabled(Lorg/apache/http/params/HttpParams;)Z" />
-		<method name="setConnectionTimeout(Lorg/apache/http/params/HttpParams;I)V" />
-		<method name="setLinger(Lorg/apache/http/params/HttpParams;I)V" />
-		<method name="setSoTimeout(Lorg/apache/http/params/HttpParams;I)V" />
-		<method name="setSocketBufferSize(Lorg/apache/http/params/HttpParams;I)V" />
-		<method name="setStaleCheckingEnabled(Lorg/apache/http/params/HttpParams;Z)V" />
-		<method name="setTcpNoDelay(Lorg/apache/http/params/HttpParams;Z)V" />
-	</class>
-	<class name="org/apache/http/params/HttpParams" since="1">
-		<extends name="java/lang/Object" />
-		<method name="copy()Lorg/apache/http/params/HttpParams;" />
-		<method name="getBooleanParameter(Ljava/lang/String;Z)Z" />
-		<method name="getDoubleParameter(Ljava/lang/String;D)D" />
-		<method name="getIntParameter(Ljava/lang/String;I)I" />
-		<method name="getLongParameter(Ljava/lang/String;J)J" />
-		<method name="getParameter(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="isParameterFalse(Ljava/lang/String;)Z" />
-		<method name="isParameterTrue(Ljava/lang/String;)Z" />
-		<method name="removeParameter(Ljava/lang/String;)Z" />
-		<method name="setBooleanParameter(Ljava/lang/String;Z)Lorg/apache/http/params/HttpParams;" />
-		<method name="setDoubleParameter(Ljava/lang/String;D)Lorg/apache/http/params/HttpParams;" />
-		<method name="setIntParameter(Ljava/lang/String;I)Lorg/apache/http/params/HttpParams;" />
-		<method name="setLongParameter(Ljava/lang/String;J)Lorg/apache/http/params/HttpParams;" />
-		<method name="setParameter(Ljava/lang/String;Ljava/lang/Object;)Lorg/apache/http/params/HttpParams;" />
-	</class>
-	<class name="org/apache/http/params/HttpProtocolParamBean" since="1">
-		<extends name="org/apache/http/params/HttpAbstractParamBean" />
-		<method name="&lt;init>(Lorg/apache/http/params/HttpParams;)V" />
-		<method name="setContentCharset(Ljava/lang/String;)V" />
-		<method name="setHttpElementCharset(Ljava/lang/String;)V" />
-		<method name="setUseExpectContinue(Z)V" />
-		<method name="setUserAgent(Ljava/lang/String;)V" />
-		<method name="setVersion(Lorg/apache/http/HttpVersion;)V" />
-	</class>
-	<class name="org/apache/http/params/HttpProtocolParams" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/params/CoreProtocolPNames" />
-		<method name="&lt;init>()V" />
-		<method name="getContentCharset(Lorg/apache/http/params/HttpParams;)Ljava/lang/String;" />
-		<method name="getHttpElementCharset(Lorg/apache/http/params/HttpParams;)Ljava/lang/String;" />
-		<method name="getUserAgent(Lorg/apache/http/params/HttpParams;)Ljava/lang/String;" />
-		<method name="getVersion(Lorg/apache/http/params/HttpParams;)Lorg/apache/http/ProtocolVersion;" />
-		<method name="setContentCharset(Lorg/apache/http/params/HttpParams;Ljava/lang/String;)V" />
-		<method name="setHttpElementCharset(Lorg/apache/http/params/HttpParams;Ljava/lang/String;)V" />
-		<method name="setUseExpectContinue(Lorg/apache/http/params/HttpParams;Z)V" />
-		<method name="setUserAgent(Lorg/apache/http/params/HttpParams;Ljava/lang/String;)V" />
-		<method name="setVersion(Lorg/apache/http/params/HttpParams;Lorg/apache/http/ProtocolVersion;)V" />
-		<method name="useExpectContinue(Lorg/apache/http/params/HttpParams;)Z" />
-	</class>
-	<class name="org/apache/http/protocol/BasicHttpContext" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/protocol/HttpContext" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Lorg/apache/http/protocol/HttpContext;)V" />
-	</class>
-	<class name="org/apache/http/protocol/BasicHttpProcessor" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="java/lang/Cloneable" />
-		<implements name="org/apache/http/protocol/HttpProcessor" />
-		<implements name="org/apache/http/protocol/HttpRequestInterceptorList" />
-		<implements name="org/apache/http/protocol/HttpResponseInterceptorList" />
-		<method name="&lt;init>()V" />
-		<method name="addInterceptor(Lorg/apache/http/HttpRequestInterceptor;)V" />
-		<method name="addInterceptor(Lorg/apache/http/HttpRequestInterceptor;I)V" />
-		<method name="addInterceptor(Lorg/apache/http/HttpResponseInterceptor;)V" />
-		<method name="addInterceptor(Lorg/apache/http/HttpResponseInterceptor;I)V" />
-		<method name="clearInterceptors()V" />
-		<method name="copy()Lorg/apache/http/protocol/BasicHttpProcessor;" />
-		<method name="copyInterceptors(Lorg/apache/http/protocol/BasicHttpProcessor;)V" />
-		<field name="requestInterceptors" />
-		<field name="responseInterceptors" />
-	</class>
-	<class name="org/apache/http/protocol/DefaultedHttpContext" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/protocol/HttpContext" />
-		<method name="&lt;init>(Lorg/apache/http/protocol/HttpContext;Lorg/apache/http/protocol/HttpContext;)V" />
-		<method name="getDefaults()Lorg/apache/http/protocol/HttpContext;" />
-	</class>
-	<class name="org/apache/http/protocol/ExecutionContext" since="1">
-		<extends name="java/lang/Object" />
-		<field name="HTTP_CONNECTION" />
-		<field name="HTTP_PROXY_HOST" />
-		<field name="HTTP_REQUEST" />
-		<field name="HTTP_REQ_SENT" />
-		<field name="HTTP_RESPONSE" />
-		<field name="HTTP_TARGET_HOST" />
-	</class>
-	<class name="org/apache/http/protocol/HTTP" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="isWhitespace(C)Z" />
-		<field name="ASCII" />
-		<field name="CHARSET_PARAM" />
-		<field name="CHUNK_CODING" />
-		<field name="CONN_CLOSE" />
-		<field name="CONN_DIRECTIVE" />
-		<field name="CONN_KEEP_ALIVE" />
-		<field name="CONTENT_ENCODING" />
-		<field name="CONTENT_LEN" />
-		<field name="CONTENT_TYPE" />
-		<field name="CR" />
-		<field name="DATE_HEADER" />
-		<field name="DEFAULT_CONTENT_CHARSET" />
-		<field name="DEFAULT_CONTENT_TYPE" />
-		<field name="DEFAULT_PROTOCOL_CHARSET" />
-		<field name="EXPECT_CONTINUE" />
-		<field name="EXPECT_DIRECTIVE" />
-		<field name="HT" />
-		<field name="IDENTITY_CODING" />
-		<field name="ISO_8859_1" />
-		<field name="LF" />
-		<field name="OCTET_STREAM_TYPE" />
-		<field name="PLAIN_TEXT_TYPE" />
-		<field name="SERVER_HEADER" />
-		<field name="SP" />
-		<field name="TARGET_HOST" />
-		<field name="TRANSFER_ENCODING" />
-		<field name="USER_AGENT" />
-		<field name="US_ASCII" />
-		<field name="UTF_16" />
-		<field name="UTF_8" />
-	</class>
-	<class name="org/apache/http/protocol/HttpContext" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getAttribute(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="removeAttribute(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="setAttribute(Ljava/lang/String;Ljava/lang/Object;)V" />
-		<field name="RESERVED_PREFIX" />
-	</class>
-	<class name="org/apache/http/protocol/HttpDateGenerator" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getCurrentDate()Ljava/lang/String;" />
-		<field name="GMT" />
-		<field name="PATTERN_RFC1123" />
-	</class>
-	<class name="org/apache/http/protocol/HttpExpectationVerifier" since="1">
-		<extends name="java/lang/Object" />
-		<method name="verify(Lorg/apache/http/HttpRequest;Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)V" />
-	</class>
-	<class name="org/apache/http/protocol/HttpProcessor" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HttpRequestInterceptor" />
-		<implements name="org/apache/http/HttpResponseInterceptor" />
-	</class>
-	<class name="org/apache/http/protocol/HttpRequestExecutor" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="canResponseHaveBody(Lorg/apache/http/HttpRequest;Lorg/apache/http/HttpResponse;)Z" />
-		<method name="doReceiveResponse(Lorg/apache/http/HttpRequest;Lorg/apache/http/HttpClientConnection;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/HttpResponse;" />
-		<method name="doSendRequest(Lorg/apache/http/HttpRequest;Lorg/apache/http/HttpClientConnection;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/HttpResponse;" />
-		<method name="execute(Lorg/apache/http/HttpRequest;Lorg/apache/http/HttpClientConnection;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/HttpResponse;" />
-		<method name="postProcess(Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpProcessor;Lorg/apache/http/protocol/HttpContext;)V" />
-		<method name="preProcess(Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpProcessor;Lorg/apache/http/protocol/HttpContext;)V" />
-	</class>
-	<class name="org/apache/http/protocol/HttpRequestHandler" since="1">
-		<extends name="java/lang/Object" />
-		<method name="handle(Lorg/apache/http/HttpRequest;Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)V" />
-	</class>
-	<class name="org/apache/http/protocol/HttpRequestHandlerRegistry" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/protocol/HttpRequestHandlerResolver" />
-		<method name="&lt;init>()V" />
-		<method name="matchUriRequestPattern(Ljava/lang/String;Ljava/lang/String;)Z" />
-		<method name="register(Ljava/lang/String;Lorg/apache/http/protocol/HttpRequestHandler;)V" />
-		<method name="setHandlers(Ljava/util/Map;)V" />
-		<method name="unregister(Ljava/lang/String;)V" />
-	</class>
-	<class name="org/apache/http/protocol/HttpRequestHandlerResolver" since="1">
-		<extends name="java/lang/Object" />
-		<method name="lookup(Ljava/lang/String;)Lorg/apache/http/protocol/HttpRequestHandler;" />
-	</class>
-	<class name="org/apache/http/protocol/HttpRequestInterceptorList" since="1">
-		<extends name="java/lang/Object" />
-		<method name="addRequestInterceptor(Lorg/apache/http/HttpRequestInterceptor;)V" />
-		<method name="addRequestInterceptor(Lorg/apache/http/HttpRequestInterceptor;I)V" />
-		<method name="clearRequestInterceptors()V" />
-		<method name="getRequestInterceptor(I)Lorg/apache/http/HttpRequestInterceptor;" />
-		<method name="getRequestInterceptorCount()I" />
-		<method name="removeRequestInterceptorByClass(Ljava/lang/Class;)V" />
-		<method name="setInterceptors(Ljava/util/List;)V" />
-	</class>
-	<class name="org/apache/http/protocol/HttpResponseInterceptorList" since="1">
-		<extends name="java/lang/Object" />
-		<method name="addResponseInterceptor(Lorg/apache/http/HttpResponseInterceptor;)V" />
-		<method name="addResponseInterceptor(Lorg/apache/http/HttpResponseInterceptor;I)V" />
-		<method name="clearResponseInterceptors()V" />
-		<method name="getResponseInterceptor(I)Lorg/apache/http/HttpResponseInterceptor;" />
-		<method name="getResponseInterceptorCount()I" />
-		<method name="removeResponseInterceptorByClass(Ljava/lang/Class;)V" />
-		<method name="setInterceptors(Ljava/util/List;)V" />
-	</class>
-	<class name="org/apache/http/protocol/HttpService" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Lorg/apache/http/protocol/HttpProcessor;Lorg/apache/http/ConnectionReuseStrategy;Lorg/apache/http/HttpResponseFactory;)V" />
-		<method name="doService(Lorg/apache/http/HttpRequest;Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)V" />
-		<method name="getParams()Lorg/apache/http/params/HttpParams;" />
-		<method name="handleException(Lorg/apache/http/HttpException;Lorg/apache/http/HttpResponse;)V" />
-		<method name="handleRequest(Lorg/apache/http/HttpServerConnection;Lorg/apache/http/protocol/HttpContext;)V" />
-		<method name="setConnReuseStrategy(Lorg/apache/http/ConnectionReuseStrategy;)V" />
-		<method name="setExpectationVerifier(Lorg/apache/http/protocol/HttpExpectationVerifier;)V" />
-		<method name="setHandlerResolver(Lorg/apache/http/protocol/HttpRequestHandlerResolver;)V" />
-		<method name="setHttpProcessor(Lorg/apache/http/protocol/HttpProcessor;)V" />
-		<method name="setParams(Lorg/apache/http/params/HttpParams;)V" />
-		<method name="setResponseFactory(Lorg/apache/http/HttpResponseFactory;)V" />
-	</class>
-	<class name="org/apache/http/protocol/RequestConnControl" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HttpRequestInterceptor" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/protocol/RequestContent" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HttpRequestInterceptor" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/protocol/RequestDate" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HttpRequestInterceptor" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/protocol/RequestExpectContinue" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HttpRequestInterceptor" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/protocol/RequestTargetHost" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HttpRequestInterceptor" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/protocol/RequestUserAgent" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HttpRequestInterceptor" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/protocol/ResponseConnControl" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HttpResponseInterceptor" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/protocol/ResponseContent" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HttpResponseInterceptor" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/protocol/ResponseDate" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HttpResponseInterceptor" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/protocol/ResponseServer" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/apache/http/HttpResponseInterceptor" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/apache/http/protocol/SyncBasicHttpContext" since="1">
-		<extends name="org/apache/http/protocol/BasicHttpContext" />
-		<method name="&lt;init>(Lorg/apache/http/protocol/HttpContext;)V" />
-	</class>
-	<class name="org/apache/http/protocol/UriPatternMatcher" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="lookup(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="matchUriRequestPattern(Ljava/lang/String;Ljava/lang/String;)Z" />
-		<method name="register(Ljava/lang/String;Ljava/lang/Object;)V" />
-		<method name="setHandlers(Ljava/util/Map;)V" />
-		<method name="unregister(Ljava/lang/String;)V" />
-	</class>
-	<class name="org/apache/http/util/ByteArrayBuffer" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(I)V" />
-		<method name="append(I)V" />
-		<method name="append(Lorg/apache/http/util/CharArrayBuffer;II)V" />
-		<method name="append([BII)V" />
-		<method name="append([CII)V" />
-		<method name="buffer()[B" />
-		<method name="byteAt(I)I" />
-		<method name="capacity()I" />
-		<method name="clear()V" />
-		<method name="isEmpty()Z" />
-		<method name="isFull()Z" />
-		<method name="length()I" />
-		<method name="setLength(I)V" />
-		<method name="toByteArray()[B" />
-	</class>
-	<class name="org/apache/http/util/CharArrayBuffer" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(I)V" />
-		<method name="append(C)V" />
-		<method name="append(Ljava/lang/Object;)V" />
-		<method name="append(Ljava/lang/String;)V" />
-		<method name="append(Lorg/apache/http/util/ByteArrayBuffer;II)V" />
-		<method name="append(Lorg/apache/http/util/CharArrayBuffer;)V" />
-		<method name="append(Lorg/apache/http/util/CharArrayBuffer;II)V" />
-		<method name="append([BII)V" />
-		<method name="append([CII)V" />
-		<method name="buffer()[C" />
-		<method name="capacity()I" />
-		<method name="charAt(I)C" />
-		<method name="clear()V" />
-		<method name="ensureCapacity(I)V" />
-		<method name="indexOf(I)I" />
-		<method name="indexOf(III)I" />
-		<method name="isEmpty()Z" />
-		<method name="isFull()Z" />
-		<method name="length()I" />
-		<method name="setLength(I)V" />
-		<method name="substring(II)Ljava/lang/String;" />
-		<method name="substringTrimmed(II)Ljava/lang/String;" />
-		<method name="toCharArray()[C" />
-	</class>
-	<class name="org/apache/http/util/EncodingUtils" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getAsciiBytes(Ljava/lang/String;)[B" />
-		<method name="getAsciiString([B)Ljava/lang/String;" />
-		<method name="getAsciiString([BII)Ljava/lang/String;" />
-		<method name="getBytes(Ljava/lang/String;Ljava/lang/String;)[B" />
-		<method name="getString([BIILjava/lang/String;)Ljava/lang/String;" />
-		<method name="getString([BLjava/lang/String;)Ljava/lang/String;" />
-	</class>
-	<class name="org/apache/http/util/EntityUtils" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getContentCharSet(Lorg/apache/http/HttpEntity;)Ljava/lang/String;" />
-		<method name="toByteArray(Lorg/apache/http/HttpEntity;)[B" />
-		<method name="toString(Lorg/apache/http/HttpEntity;)Ljava/lang/String;" />
-		<method name="toString(Lorg/apache/http/HttpEntity;Ljava/lang/String;)Ljava/lang/String;" />
-	</class>
-	<class name="org/apache/http/util/ExceptionUtils" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="initCause(Ljava/lang/Throwable;Ljava/lang/Throwable;)V" />
-	</class>
-	<class name="org/apache/http/util/LangUtils" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="equals(Ljava/lang/Object;Ljava/lang/Object;)Z" />
-		<method name="equals([Ljava/lang/Object;[Ljava/lang/Object;)Z" />
-		<method name="hashCode(II)I" />
-		<method name="hashCode(ILjava/lang/Object;)I" />
-		<method name="hashCode(IZ)I" />
-		<field name="HASH_OFFSET" />
-		<field name="HASH_SEED" />
-	</class>
-	<class name="org/apache/http/util/VersionInfo" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="fromMap(Ljava/lang/String;Ljava/util/Map;Ljava/lang/ClassLoader;)Lorg/apache/http/util/VersionInfo;" />
-		<method name="getClassloader()Ljava/lang/String;" />
-		<method name="getModule()Ljava/lang/String;" />
-		<method name="getPackage()Ljava/lang/String;" />
-		<method name="getRelease()Ljava/lang/String;" />
-		<method name="getTimestamp()Ljava/lang/String;" />
-		<method name="loadVersionInfo(Ljava/lang/String;Ljava/lang/ClassLoader;)Lorg/apache/http/util/VersionInfo;" />
-		<method name="loadVersionInfo([Ljava/lang/String;Ljava/lang/ClassLoader;)[Lorg/apache/http/util/VersionInfo;" />
-		<field name="PROPERTY_MODULE" />
-		<field name="PROPERTY_RELEASE" />
-		<field name="PROPERTY_TIMESTAMP" />
-		<field name="UNAVAILABLE" />
-		<field name="VERSION_PROPERTY_FILE" />
-	</class>
-	<class name="org/json/JSONArray" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/Object;)V" since="19" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/util/Collection;)V" />
-		<method name="&lt;init>(Lorg/json/JSONTokener;)V" />
-		<method name="get(I)Ljava/lang/Object;" />
-		<method name="getBoolean(I)Z" />
-		<method name="getDouble(I)D" />
-		<method name="getInt(I)I" />
-		<method name="getJSONArray(I)Lorg/json/JSONArray;" />
-		<method name="getJSONObject(I)Lorg/json/JSONObject;" />
-		<method name="getLong(I)J" />
-		<method name="getString(I)Ljava/lang/String;" />
-		<method name="isNull(I)Z" />
-		<method name="join(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="length()I" />
-		<method name="opt(I)Ljava/lang/Object;" />
-		<method name="optBoolean(I)Z" />
-		<method name="optBoolean(IZ)Z" />
-		<method name="optDouble(I)D" />
-		<method name="optDouble(ID)D" />
-		<method name="optInt(I)I" />
-		<method name="optInt(II)I" />
-		<method name="optJSONArray(I)Lorg/json/JSONArray;" />
-		<method name="optJSONObject(I)Lorg/json/JSONObject;" />
-		<method name="optLong(I)J" />
-		<method name="optLong(IJ)J" />
-		<method name="optString(I)Ljava/lang/String;" />
-		<method name="optString(ILjava/lang/String;)Ljava/lang/String;" />
-		<method name="put(D)Lorg/json/JSONArray;" />
-		<method name="put(I)Lorg/json/JSONArray;" />
-		<method name="put(ID)Lorg/json/JSONArray;" />
-		<method name="put(II)Lorg/json/JSONArray;" />
-		<method name="put(IJ)Lorg/json/JSONArray;" />
-		<method name="put(ILjava/lang/Object;)Lorg/json/JSONArray;" />
-		<method name="put(IZ)Lorg/json/JSONArray;" />
-		<method name="put(J)Lorg/json/JSONArray;" />
-		<method name="put(Ljava/lang/Object;)Lorg/json/JSONArray;" />
-		<method name="put(Z)Lorg/json/JSONArray;" />
-		<method name="remove(I)Ljava/lang/Object;" since="19" />
-		<method name="toJSONObject(Lorg/json/JSONArray;)Lorg/json/JSONObject;" />
-		<method name="toString(I)Ljava/lang/String;" />
-	</class>
-	<class name="org/json/JSONException" since="1">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="org/json/JSONObject" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/util/Map;)V" />
-		<method name="&lt;init>(Lorg/json/JSONObject;[Ljava/lang/String;)V" />
-		<method name="&lt;init>(Lorg/json/JSONTokener;)V" />
-		<method name="accumulate(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;" />
-		<method name="get(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="getBoolean(Ljava/lang/String;)Z" />
-		<method name="getDouble(Ljava/lang/String;)D" />
-		<method name="getInt(Ljava/lang/String;)I" />
-		<method name="getJSONArray(Ljava/lang/String;)Lorg/json/JSONArray;" />
-		<method name="getJSONObject(Ljava/lang/String;)Lorg/json/JSONObject;" />
-		<method name="getLong(Ljava/lang/String;)J" />
-		<method name="getString(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="has(Ljava/lang/String;)Z" />
-		<method name="isNull(Ljava/lang/String;)Z" />
-		<method name="keys()Ljava/util/Iterator;" />
-		<method name="length()I" />
-		<method name="names()Lorg/json/JSONArray;" />
-		<method name="numberToString(Ljava/lang/Number;)Ljava/lang/String;" />
-		<method name="opt(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="optBoolean(Ljava/lang/String;)Z" />
-		<method name="optBoolean(Ljava/lang/String;Z)Z" />
-		<method name="optDouble(Ljava/lang/String;)D" />
-		<method name="optDouble(Ljava/lang/String;D)D" />
-		<method name="optInt(Ljava/lang/String;)I" />
-		<method name="optInt(Ljava/lang/String;I)I" />
-		<method name="optJSONArray(Ljava/lang/String;)Lorg/json/JSONArray;" />
-		<method name="optJSONObject(Ljava/lang/String;)Lorg/json/JSONObject;" />
-		<method name="optLong(Ljava/lang/String;)J" />
-		<method name="optLong(Ljava/lang/String;J)J" />
-		<method name="optString(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="optString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="put(Ljava/lang/String;D)Lorg/json/JSONObject;" />
-		<method name="put(Ljava/lang/String;I)Lorg/json/JSONObject;" />
-		<method name="put(Ljava/lang/String;J)Lorg/json/JSONObject;" />
-		<method name="put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;" />
-		<method name="put(Ljava/lang/String;Z)Lorg/json/JSONObject;" />
-		<method name="putOpt(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;" />
-		<method name="quote(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="remove(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="toJSONArray(Lorg/json/JSONArray;)Lorg/json/JSONArray;" />
-		<method name="toString(I)Ljava/lang/String;" />
-		<method name="wrap(Ljava/lang/Object;)Ljava/lang/Object;" since="19" />
-		<field name="NULL" />
-	</class>
-	<class name="org/json/JSONStringer" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="array()Lorg/json/JSONStringer;" />
-		<method name="endArray()Lorg/json/JSONStringer;" />
-		<method name="endObject()Lorg/json/JSONStringer;" />
-		<method name="key(Ljava/lang/String;)Lorg/json/JSONStringer;" />
-		<method name="object()Lorg/json/JSONStringer;" />
-		<method name="value(D)Lorg/json/JSONStringer;" />
-		<method name="value(J)Lorg/json/JSONStringer;" />
-		<method name="value(Ljava/lang/Object;)Lorg/json/JSONStringer;" />
-		<method name="value(Z)Lorg/json/JSONStringer;" />
-	</class>
-	<class name="org/json/JSONTokener" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="back()V" />
-		<method name="dehexchar(C)I" />
-		<method name="more()Z" />
-		<method name="next()C" />
-		<method name="next(C)C" />
-		<method name="next(I)Ljava/lang/String;" />
-		<method name="nextClean()C" />
-		<method name="nextString(C)Ljava/lang/String;" />
-		<method name="nextTo(C)Ljava/lang/String;" />
-		<method name="nextTo(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="nextValue()Ljava/lang/Object;" />
-		<method name="skipPast(Ljava/lang/String;)V" />
-		<method name="skipTo(C)C" />
-		<method name="syntaxError(Ljava/lang/String;)Lorg/json/JSONException;" />
-	</class>
-	<class name="org/w3c/dom/Attr" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/w3c/dom/Node" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getOwnerElement()Lorg/w3c/dom/Element;" />
-		<method name="getSchemaTypeInfo()Lorg/w3c/dom/TypeInfo;" since="8" />
-		<method name="getSpecified()Z" />
-		<method name="getValue()Ljava/lang/String;" />
-		<method name="isId()Z" since="8" />
-		<method name="setValue(Ljava/lang/String;)V" />
-	</class>
-	<class name="org/w3c/dom/CDATASection" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/w3c/dom/Text" />
-	</class>
-	<class name="org/w3c/dom/CharacterData" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/w3c/dom/Node" />
-		<method name="appendData(Ljava/lang/String;)V" />
-		<method name="deleteData(II)V" />
-		<method name="getData()Ljava/lang/String;" />
-		<method name="getLength()I" />
-		<method name="insertData(ILjava/lang/String;)V" />
-		<method name="replaceData(IILjava/lang/String;)V" />
-		<method name="setData(Ljava/lang/String;)V" />
-		<method name="substringData(II)Ljava/lang/String;" />
-	</class>
-	<class name="org/w3c/dom/Comment" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/w3c/dom/CharacterData" />
-	</class>
-	<class name="org/w3c/dom/DOMConfiguration" since="8">
-		<extends name="java/lang/Object" />
-		<method name="canSetParameter(Ljava/lang/String;Ljava/lang/Object;)Z" />
-		<method name="getParameter(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="getParameterNames()Lorg/w3c/dom/DOMStringList;" />
-		<method name="setParameter(Ljava/lang/String;Ljava/lang/Object;)V" />
-	</class>
-	<class name="org/w3c/dom/DOMError" since="8">
-		<extends name="java/lang/Object" />
-		<method name="getLocation()Lorg/w3c/dom/DOMLocator;" />
-		<method name="getMessage()Ljava/lang/String;" />
-		<method name="getRelatedData()Ljava/lang/Object;" />
-		<method name="getRelatedException()Ljava/lang/Object;" />
-		<method name="getSeverity()S" />
-		<method name="getType()Ljava/lang/String;" />
-		<field name="SEVERITY_ERROR" />
-		<field name="SEVERITY_FATAL_ERROR" />
-		<field name="SEVERITY_WARNING" />
-	</class>
-	<class name="org/w3c/dom/DOMErrorHandler" since="8">
-		<extends name="java/lang/Object" />
-		<method name="handleError(Lorg/w3c/dom/DOMError;)Z" />
-	</class>
-	<class name="org/w3c/dom/DOMException" since="1">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>(SLjava/lang/String;)V" />
-		<field name="DOMSTRING_SIZE_ERR" />
-		<field name="HIERARCHY_REQUEST_ERR" />
-		<field name="INDEX_SIZE_ERR" />
-		<field name="INUSE_ATTRIBUTE_ERR" />
-		<field name="INVALID_ACCESS_ERR" />
-		<field name="INVALID_CHARACTER_ERR" />
-		<field name="INVALID_MODIFICATION_ERR" />
-		<field name="INVALID_STATE_ERR" />
-		<field name="NAMESPACE_ERR" />
-		<field name="NOT_FOUND_ERR" />
-		<field name="NOT_SUPPORTED_ERR" />
-		<field name="NO_DATA_ALLOWED_ERR" />
-		<field name="NO_MODIFICATION_ALLOWED_ERR" />
-		<field name="SYNTAX_ERR" />
-		<field name="TYPE_MISMATCH_ERR" since="8" />
-		<field name="VALIDATION_ERR" since="8" />
-		<field name="WRONG_DOCUMENT_ERR" />
-		<field name="code" />
-	</class>
-	<class name="org/w3c/dom/DOMImplementation" since="1">
-		<extends name="java/lang/Object" />
-		<method name="createDocument(Ljava/lang/String;Ljava/lang/String;Lorg/w3c/dom/DocumentType;)Lorg/w3c/dom/Document;" />
-		<method name="createDocumentType(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/DocumentType;" />
-		<method name="getFeature(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;" since="8" />
-		<method name="hasFeature(Ljava/lang/String;Ljava/lang/String;)Z" />
-	</class>
-	<class name="org/w3c/dom/DOMImplementationList" since="8">
-		<extends name="java/lang/Object" />
-		<method name="getLength()I" />
-		<method name="item(I)Lorg/w3c/dom/DOMImplementation;" />
-	</class>
-	<class name="org/w3c/dom/DOMImplementationSource" since="8">
-		<extends name="java/lang/Object" />
-		<method name="getDOMImplementation(Ljava/lang/String;)Lorg/w3c/dom/DOMImplementation;" />
-		<method name="getDOMImplementationList(Ljava/lang/String;)Lorg/w3c/dom/DOMImplementationList;" />
-	</class>
-	<class name="org/w3c/dom/DOMLocator" since="8">
-		<extends name="java/lang/Object" />
-		<method name="getByteOffset()I" />
-		<method name="getColumnNumber()I" />
-		<method name="getLineNumber()I" />
-		<method name="getRelatedNode()Lorg/w3c/dom/Node;" />
-		<method name="getUri()Ljava/lang/String;" />
-		<method name="getUtf16Offset()I" />
-	</class>
-	<class name="org/w3c/dom/DOMStringList" since="8">
-		<extends name="java/lang/Object" />
-		<method name="contains(Ljava/lang/String;)Z" />
-		<method name="getLength()I" />
-		<method name="item(I)Ljava/lang/String;" />
-	</class>
-	<class name="org/w3c/dom/Document" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/w3c/dom/Node" />
-		<method name="adoptNode(Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node;" since="8" />
-		<method name="createAttribute(Ljava/lang/String;)Lorg/w3c/dom/Attr;" />
-		<method name="createAttributeNS(Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Attr;" />
-		<method name="createCDATASection(Ljava/lang/String;)Lorg/w3c/dom/CDATASection;" />
-		<method name="createComment(Ljava/lang/String;)Lorg/w3c/dom/Comment;" />
-		<method name="createDocumentFragment()Lorg/w3c/dom/DocumentFragment;" />
-		<method name="createElement(Ljava/lang/String;)Lorg/w3c/dom/Element;" />
-		<method name="createElementNS(Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Element;" />
-		<method name="createEntityReference(Ljava/lang/String;)Lorg/w3c/dom/EntityReference;" />
-		<method name="createProcessingInstruction(Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/ProcessingInstruction;" />
-		<method name="createTextNode(Ljava/lang/String;)Lorg/w3c/dom/Text;" />
-		<method name="getDoctype()Lorg/w3c/dom/DocumentType;" />
-		<method name="getDocumentElement()Lorg/w3c/dom/Element;" />
-		<method name="getDocumentURI()Ljava/lang/String;" since="8" />
-		<method name="getDomConfig()Lorg/w3c/dom/DOMConfiguration;" since="8" />
-		<method name="getElementById(Ljava/lang/String;)Lorg/w3c/dom/Element;" />
-		<method name="getElementsByTagName(Ljava/lang/String;)Lorg/w3c/dom/NodeList;" />
-		<method name="getElementsByTagNameNS(Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/NodeList;" />
-		<method name="getImplementation()Lorg/w3c/dom/DOMImplementation;" />
-		<method name="getInputEncoding()Ljava/lang/String;" since="8" />
-		<method name="getStrictErrorChecking()Z" since="8" />
-		<method name="getXmlEncoding()Ljava/lang/String;" since="8" />
-		<method name="getXmlStandalone()Z" since="8" />
-		<method name="getXmlVersion()Ljava/lang/String;" since="8" />
-		<method name="importNode(Lorg/w3c/dom/Node;Z)Lorg/w3c/dom/Node;" />
-		<method name="normalizeDocument()V" since="8" />
-		<method name="renameNode(Lorg/w3c/dom/Node;Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Node;" since="8" />
-		<method name="setDocumentURI(Ljava/lang/String;)V" since="8" />
-		<method name="setStrictErrorChecking(Z)V" since="8" />
-		<method name="setXmlStandalone(Z)V" since="8" />
-		<method name="setXmlVersion(Ljava/lang/String;)V" since="8" />
-	</class>
-	<class name="org/w3c/dom/DocumentFragment" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/w3c/dom/Node" />
-	</class>
-	<class name="org/w3c/dom/DocumentType" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/w3c/dom/Node" />
-		<method name="getEntities()Lorg/w3c/dom/NamedNodeMap;" />
-		<method name="getInternalSubset()Ljava/lang/String;" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getNotations()Lorg/w3c/dom/NamedNodeMap;" />
-		<method name="getPublicId()Ljava/lang/String;" />
-		<method name="getSystemId()Ljava/lang/String;" />
-	</class>
-	<class name="org/w3c/dom/Element" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/w3c/dom/Node" />
-		<method name="getAttribute(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getAttributeNS(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getAttributeNode(Ljava/lang/String;)Lorg/w3c/dom/Attr;" />
-		<method name="getAttributeNodeNS(Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Attr;" />
-		<method name="getElementsByTagName(Ljava/lang/String;)Lorg/w3c/dom/NodeList;" />
-		<method name="getElementsByTagNameNS(Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/NodeList;" />
-		<method name="getSchemaTypeInfo()Lorg/w3c/dom/TypeInfo;" since="8" />
-		<method name="getTagName()Ljava/lang/String;" />
-		<method name="hasAttribute(Ljava/lang/String;)Z" />
-		<method name="hasAttributeNS(Ljava/lang/String;Ljava/lang/String;)Z" />
-		<method name="removeAttribute(Ljava/lang/String;)V" />
-		<method name="removeAttributeNS(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="removeAttributeNode(Lorg/w3c/dom/Attr;)Lorg/w3c/dom/Attr;" />
-		<method name="setAttribute(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="setAttributeNS(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="setAttributeNode(Lorg/w3c/dom/Attr;)Lorg/w3c/dom/Attr;" />
-		<method name="setAttributeNodeNS(Lorg/w3c/dom/Attr;)Lorg/w3c/dom/Attr;" />
-		<method name="setIdAttribute(Ljava/lang/String;Z)V" since="8" />
-		<method name="setIdAttributeNS(Ljava/lang/String;Ljava/lang/String;Z)V" since="8" />
-		<method name="setIdAttributeNode(Lorg/w3c/dom/Attr;Z)V" since="8" />
-	</class>
-	<class name="org/w3c/dom/Entity" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/w3c/dom/Node" />
-		<method name="getInputEncoding()Ljava/lang/String;" since="8" />
-		<method name="getNotationName()Ljava/lang/String;" />
-		<method name="getPublicId()Ljava/lang/String;" />
-		<method name="getSystemId()Ljava/lang/String;" />
-		<method name="getXmlEncoding()Ljava/lang/String;" since="8" />
-		<method name="getXmlVersion()Ljava/lang/String;" since="8" />
-	</class>
-	<class name="org/w3c/dom/EntityReference" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/w3c/dom/Node" />
-	</class>
-	<class name="org/w3c/dom/NameList" since="8">
-		<extends name="java/lang/Object" />
-		<method name="contains(Ljava/lang/String;)Z" />
-		<method name="containsNS(Ljava/lang/String;Ljava/lang/String;)Z" />
-		<method name="getLength()I" />
-		<method name="getName(I)Ljava/lang/String;" />
-		<method name="getNamespaceURI(I)Ljava/lang/String;" />
-	</class>
-	<class name="org/w3c/dom/NamedNodeMap" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getLength()I" />
-		<method name="getNamedItem(Ljava/lang/String;)Lorg/w3c/dom/Node;" />
-		<method name="getNamedItemNS(Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Node;" />
-		<method name="item(I)Lorg/w3c/dom/Node;" />
-		<method name="removeNamedItem(Ljava/lang/String;)Lorg/w3c/dom/Node;" />
-		<method name="removeNamedItemNS(Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Node;" />
-		<method name="setNamedItem(Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node;" />
-		<method name="setNamedItemNS(Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node;" />
-	</class>
-	<class name="org/w3c/dom/Node" since="1">
-		<extends name="java/lang/Object" />
-		<method name="appendChild(Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node;" />
-		<method name="cloneNode(Z)Lorg/w3c/dom/Node;" />
-		<method name="compareDocumentPosition(Lorg/w3c/dom/Node;)S" since="8" />
-		<method name="getAttributes()Lorg/w3c/dom/NamedNodeMap;" />
-		<method name="getBaseURI()Ljava/lang/String;" since="8" />
-		<method name="getChildNodes()Lorg/w3c/dom/NodeList;" />
-		<method name="getFeature(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;" since="8" />
-		<method name="getFirstChild()Lorg/w3c/dom/Node;" />
-		<method name="getLastChild()Lorg/w3c/dom/Node;" />
-		<method name="getLocalName()Ljava/lang/String;" />
-		<method name="getNamespaceURI()Ljava/lang/String;" />
-		<method name="getNextSibling()Lorg/w3c/dom/Node;" />
-		<method name="getNodeName()Ljava/lang/String;" />
-		<method name="getNodeType()S" />
-		<method name="getNodeValue()Ljava/lang/String;" />
-		<method name="getOwnerDocument()Lorg/w3c/dom/Document;" />
-		<method name="getParentNode()Lorg/w3c/dom/Node;" />
-		<method name="getPrefix()Ljava/lang/String;" />
-		<method name="getPreviousSibling()Lorg/w3c/dom/Node;" />
-		<method name="getTextContent()Ljava/lang/String;" since="8" />
-		<method name="getUserData(Ljava/lang/String;)Ljava/lang/Object;" since="8" />
-		<method name="hasAttributes()Z" />
-		<method name="hasChildNodes()Z" />
-		<method name="insertBefore(Lorg/w3c/dom/Node;Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node;" />
-		<method name="isDefaultNamespace(Ljava/lang/String;)Z" since="8" />
-		<method name="isEqualNode(Lorg/w3c/dom/Node;)Z" since="8" />
-		<method name="isSameNode(Lorg/w3c/dom/Node;)Z" since="8" />
-		<method name="isSupported(Ljava/lang/String;Ljava/lang/String;)Z" />
-		<method name="lookupNamespaceURI(Ljava/lang/String;)Ljava/lang/String;" since="8" />
-		<method name="lookupPrefix(Ljava/lang/String;)Ljava/lang/String;" since="8" />
-		<method name="normalize()V" />
-		<method name="removeChild(Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node;" />
-		<method name="replaceChild(Lorg/w3c/dom/Node;Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node;" />
-		<method name="setNodeValue(Ljava/lang/String;)V" />
-		<method name="setPrefix(Ljava/lang/String;)V" />
-		<method name="setTextContent(Ljava/lang/String;)V" since="8" />
-		<method name="setUserData(Ljava/lang/String;Ljava/lang/Object;Lorg/w3c/dom/UserDataHandler;)Ljava/lang/Object;" since="8" />
-		<field name="ATTRIBUTE_NODE" />
-		<field name="CDATA_SECTION_NODE" />
-		<field name="COMMENT_NODE" />
-		<field name="DOCUMENT_FRAGMENT_NODE" />
-		<field name="DOCUMENT_NODE" />
-		<field name="DOCUMENT_POSITION_CONTAINED_BY" since="8" />
-		<field name="DOCUMENT_POSITION_CONTAINS" since="8" />
-		<field name="DOCUMENT_POSITION_DISCONNECTED" since="8" />
-		<field name="DOCUMENT_POSITION_FOLLOWING" since="8" />
-		<field name="DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC" since="8" />
-		<field name="DOCUMENT_POSITION_PRECEDING" since="8" />
-		<field name="DOCUMENT_TYPE_NODE" />
-		<field name="ELEMENT_NODE" />
-		<field name="ENTITY_NODE" />
-		<field name="ENTITY_REFERENCE_NODE" />
-		<field name="NOTATION_NODE" />
-		<field name="PROCESSING_INSTRUCTION_NODE" />
-		<field name="TEXT_NODE" />
-	</class>
-	<class name="org/w3c/dom/NodeList" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getLength()I" />
-		<method name="item(I)Lorg/w3c/dom/Node;" />
-	</class>
-	<class name="org/w3c/dom/Notation" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/w3c/dom/Node" />
-		<method name="getPublicId()Ljava/lang/String;" />
-		<method name="getSystemId()Ljava/lang/String;" />
-	</class>
-	<class name="org/w3c/dom/ProcessingInstruction" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/w3c/dom/Node" />
-		<method name="getData()Ljava/lang/String;" />
-		<method name="getTarget()Ljava/lang/String;" />
-		<method name="setData(Ljava/lang/String;)V" />
-	</class>
-	<class name="org/w3c/dom/Text" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/w3c/dom/CharacterData" />
-		<method name="getWholeText()Ljava/lang/String;" since="8" />
-		<method name="isElementContentWhitespace()Z" since="8" />
-		<method name="replaceWholeText(Ljava/lang/String;)Lorg/w3c/dom/Text;" since="8" />
-		<method name="splitText(I)Lorg/w3c/dom/Text;" />
-	</class>
-	<class name="org/w3c/dom/TypeInfo" since="8">
-		<extends name="java/lang/Object" />
-		<method name="getTypeName()Ljava/lang/String;" />
-		<method name="getTypeNamespace()Ljava/lang/String;" />
-		<method name="isDerivedFrom(Ljava/lang/String;Ljava/lang/String;I)Z" />
-		<field name="DERIVATION_EXTENSION" />
-		<field name="DERIVATION_LIST" />
-		<field name="DERIVATION_RESTRICTION" />
-		<field name="DERIVATION_UNION" />
-	</class>
-	<class name="org/w3c/dom/UserDataHandler" since="8">
-		<extends name="java/lang/Object" />
-		<method name="handle(SLjava/lang/String;Ljava/lang/Object;Lorg/w3c/dom/Node;Lorg/w3c/dom/Node;)V" />
-		<field name="NODE_ADOPTED" />
-		<field name="NODE_CLONED" />
-		<field name="NODE_DELETED" />
-		<field name="NODE_IMPORTED" />
-		<field name="NODE_RENAMED" />
-	</class>
-	<class name="org/w3c/dom/ls/DOMImplementationLS" since="8">
-		<extends name="java/lang/Object" />
-		<method name="createLSInput()Lorg/w3c/dom/ls/LSInput;" />
-		<method name="createLSOutput()Lorg/w3c/dom/ls/LSOutput;" />
-		<method name="createLSParser(SLjava/lang/String;)Lorg/w3c/dom/ls/LSParser;" />
-		<method name="createLSSerializer()Lorg/w3c/dom/ls/LSSerializer;" />
-		<field name="MODE_ASYNCHRONOUS" />
-		<field name="MODE_SYNCHRONOUS" />
-	</class>
-	<class name="org/w3c/dom/ls/LSException" since="8">
-		<extends name="java/lang/RuntimeException" />
-		<method name="&lt;init>(SLjava/lang/String;)V" />
-		<field name="PARSE_ERR" />
-		<field name="SERIALIZE_ERR" />
-		<field name="code" />
-	</class>
-	<class name="org/w3c/dom/ls/LSInput" since="8">
-		<extends name="java/lang/Object" />
-		<method name="getBaseURI()Ljava/lang/String;" />
-		<method name="getByteStream()Ljava/io/InputStream;" />
-		<method name="getCertifiedText()Z" />
-		<method name="getCharacterStream()Ljava/io/Reader;" />
-		<method name="getEncoding()Ljava/lang/String;" />
-		<method name="getPublicId()Ljava/lang/String;" />
-		<method name="getStringData()Ljava/lang/String;" />
-		<method name="getSystemId()Ljava/lang/String;" />
-		<method name="setBaseURI(Ljava/lang/String;)V" />
-		<method name="setByteStream(Ljava/io/InputStream;)V" />
-		<method name="setCertifiedText(Z)V" />
-		<method name="setCharacterStream(Ljava/io/Reader;)V" />
-		<method name="setEncoding(Ljava/lang/String;)V" />
-		<method name="setPublicId(Ljava/lang/String;)V" />
-		<method name="setStringData(Ljava/lang/String;)V" />
-		<method name="setSystemId(Ljava/lang/String;)V" />
-	</class>
-	<class name="org/w3c/dom/ls/LSOutput" since="8">
-		<extends name="java/lang/Object" />
-		<method name="getByteStream()Ljava/io/OutputStream;" />
-		<method name="getCharacterStream()Ljava/io/Writer;" />
-		<method name="getEncoding()Ljava/lang/String;" />
-		<method name="getSystemId()Ljava/lang/String;" />
-		<method name="setByteStream(Ljava/io/OutputStream;)V" />
-		<method name="setCharacterStream(Ljava/io/Writer;)V" />
-		<method name="setEncoding(Ljava/lang/String;)V" />
-		<method name="setSystemId(Ljava/lang/String;)V" />
-	</class>
-	<class name="org/w3c/dom/ls/LSParser" since="8">
-		<extends name="java/lang/Object" />
-		<method name="abort()V" />
-		<method name="getAsync()Z" />
-		<method name="getBusy()Z" />
-		<method name="getDomConfig()Lorg/w3c/dom/DOMConfiguration;" />
-		<method name="getFilter()Lorg/w3c/dom/ls/LSParserFilter;" />
-		<method name="parse(Lorg/w3c/dom/ls/LSInput;)Lorg/w3c/dom/Document;" />
-		<method name="parseURI(Ljava/lang/String;)Lorg/w3c/dom/Document;" />
-		<method name="parseWithContext(Lorg/w3c/dom/ls/LSInput;Lorg/w3c/dom/Node;S)Lorg/w3c/dom/Node;" />
-		<method name="setFilter(Lorg/w3c/dom/ls/LSParserFilter;)V" />
-		<field name="ACTION_APPEND_AS_CHILDREN" />
-		<field name="ACTION_INSERT_AFTER" />
-		<field name="ACTION_INSERT_BEFORE" />
-		<field name="ACTION_REPLACE" />
-		<field name="ACTION_REPLACE_CHILDREN" />
-	</class>
-	<class name="org/w3c/dom/ls/LSParserFilter" since="8">
-		<extends name="java/lang/Object" />
-		<method name="acceptNode(Lorg/w3c/dom/Node;)S" />
-		<method name="getWhatToShow()I" />
-		<method name="startElement(Lorg/w3c/dom/Element;)S" />
-		<field name="FILTER_ACCEPT" />
-		<field name="FILTER_INTERRUPT" />
-		<field name="FILTER_REJECT" />
-		<field name="FILTER_SKIP" />
-	</class>
-	<class name="org/w3c/dom/ls/LSResourceResolver" since="8">
-		<extends name="java/lang/Object" />
-		<method name="resolveResource(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/ls/LSInput;" />
-	</class>
-	<class name="org/w3c/dom/ls/LSSerializer" since="8">
-		<extends name="java/lang/Object" />
-		<method name="getDomConfig()Lorg/w3c/dom/DOMConfiguration;" />
-		<method name="getNewLine()Ljava/lang/String;" />
-		<method name="setNewLine(Ljava/lang/String;)V" />
-		<method name="write(Lorg/w3c/dom/Node;Lorg/w3c/dom/ls/LSOutput;)Z" />
-		<method name="writeToString(Lorg/w3c/dom/Node;)Ljava/lang/String;" />
-		<method name="writeToURI(Lorg/w3c/dom/Node;Ljava/lang/String;)Z" />
-	</class>
-	<class name="org/xml/sax/AttributeList" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getLength()I" />
-		<method name="getName(I)Ljava/lang/String;" />
-		<method name="getType(I)Ljava/lang/String;" />
-		<method name="getType(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getValue(I)Ljava/lang/String;" />
-		<method name="getValue(Ljava/lang/String;)Ljava/lang/String;" />
-	</class>
-	<class name="org/xml/sax/Attributes" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getIndex(Ljava/lang/String;)I" />
-		<method name="getIndex(Ljava/lang/String;Ljava/lang/String;)I" />
-		<method name="getLength()I" />
-		<method name="getLocalName(I)Ljava/lang/String;" />
-		<method name="getQName(I)Ljava/lang/String;" />
-		<method name="getType(I)Ljava/lang/String;" />
-		<method name="getType(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getType(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getURI(I)Ljava/lang/String;" />
-		<method name="getValue(I)Ljava/lang/String;" />
-		<method name="getValue(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
-	</class>
-	<class name="org/xml/sax/ContentHandler" since="1">
-		<extends name="java/lang/Object" />
-		<method name="characters([CII)V" />
-		<method name="endDocument()V" />
-		<method name="endElement(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="endPrefixMapping(Ljava/lang/String;)V" />
-		<method name="ignorableWhitespace([CII)V" />
-		<method name="processingInstruction(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="setDocumentLocator(Lorg/xml/sax/Locator;)V" />
-		<method name="skippedEntity(Ljava/lang/String;)V" />
-		<method name="startDocument()V" />
-		<method name="startElement(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/xml/sax/Attributes;)V" />
-		<method name="startPrefixMapping(Ljava/lang/String;Ljava/lang/String;)V" />
-	</class>
-	<class name="org/xml/sax/DTDHandler" since="1">
-		<extends name="java/lang/Object" />
-		<method name="notationDecl(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="unparsedEntityDecl(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-	</class>
-	<class name="org/xml/sax/DocumentHandler" since="1">
-		<extends name="java/lang/Object" />
-		<method name="characters([CII)V" />
-		<method name="endDocument()V" />
-		<method name="endElement(Ljava/lang/String;)V" />
-		<method name="ignorableWhitespace([CII)V" />
-		<method name="processingInstruction(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="setDocumentLocator(Lorg/xml/sax/Locator;)V" />
-		<method name="startDocument()V" />
-		<method name="startElement(Ljava/lang/String;Lorg/xml/sax/AttributeList;)V" />
-	</class>
-	<class name="org/xml/sax/EntityResolver" since="1">
-		<extends name="java/lang/Object" />
-		<method name="resolveEntity(Ljava/lang/String;Ljava/lang/String;)Lorg/xml/sax/InputSource;" />
-	</class>
-	<class name="org/xml/sax/ErrorHandler" since="1">
-		<extends name="java/lang/Object" />
-		<method name="error(Lorg/xml/sax/SAXParseException;)V" />
-		<method name="fatalError(Lorg/xml/sax/SAXParseException;)V" />
-		<method name="warning(Lorg/xml/sax/SAXParseException;)V" />
-	</class>
-	<class name="org/xml/sax/HandlerBase" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/xml/sax/DTDHandler" />
-		<implements name="org/xml/sax/DocumentHandler" />
-		<implements name="org/xml/sax/EntityResolver" />
-		<implements name="org/xml/sax/ErrorHandler" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/xml/sax/InputSource" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/io/InputStream;)V" />
-		<method name="&lt;init>(Ljava/io/Reader;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="getByteStream()Ljava/io/InputStream;" />
-		<method name="getCharacterStream()Ljava/io/Reader;" />
-		<method name="getEncoding()Ljava/lang/String;" />
-		<method name="getPublicId()Ljava/lang/String;" />
-		<method name="getSystemId()Ljava/lang/String;" />
-		<method name="setByteStream(Ljava/io/InputStream;)V" />
-		<method name="setCharacterStream(Ljava/io/Reader;)V" />
-		<method name="setEncoding(Ljava/lang/String;)V" />
-		<method name="setPublicId(Ljava/lang/String;)V" />
-		<method name="setSystemId(Ljava/lang/String;)V" />
-	</class>
-	<class name="org/xml/sax/Locator" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getColumnNumber()I" />
-		<method name="getLineNumber()I" />
-		<method name="getPublicId()Ljava/lang/String;" />
-		<method name="getSystemId()Ljava/lang/String;" />
-	</class>
-	<class name="org/xml/sax/Parser" since="1">
-		<extends name="java/lang/Object" />
-		<method name="parse(Ljava/lang/String;)V" />
-		<method name="parse(Lorg/xml/sax/InputSource;)V" />
-		<method name="setDTDHandler(Lorg/xml/sax/DTDHandler;)V" />
-		<method name="setDocumentHandler(Lorg/xml/sax/DocumentHandler;)V" />
-		<method name="setEntityResolver(Lorg/xml/sax/EntityResolver;)V" />
-		<method name="setErrorHandler(Lorg/xml/sax/ErrorHandler;)V" />
-		<method name="setLocale(Ljava/util/Locale;)V" />
-	</class>
-	<class name="org/xml/sax/SAXException" since="1">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/Exception;)V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Exception;)V" />
-		<method name="getException()Ljava/lang/Exception;" />
-	</class>
-	<class name="org/xml/sax/SAXNotRecognizedException" since="1">
-		<extends name="org/xml/sax/SAXException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="org/xml/sax/SAXNotSupportedException" since="1">
-		<extends name="org/xml/sax/SAXException" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-	</class>
-	<class name="org/xml/sax/SAXParseException" since="1">
-		<extends name="org/xml/sax/SAXException" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V" />
-		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IILjava/lang/Exception;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Lorg/xml/sax/Locator;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Lorg/xml/sax/Locator;Ljava/lang/Exception;)V" />
-		<method name="getColumnNumber()I" />
-		<method name="getLineNumber()I" />
-		<method name="getPublicId()Ljava/lang/String;" />
-		<method name="getSystemId()Ljava/lang/String;" />
-	</class>
-	<class name="org/xml/sax/XMLFilter" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/xml/sax/XMLReader" />
-		<method name="getParent()Lorg/xml/sax/XMLReader;" />
-		<method name="setParent(Lorg/xml/sax/XMLReader;)V" />
-	</class>
-	<class name="org/xml/sax/XMLReader" since="1">
-		<extends name="java/lang/Object" />
-		<method name="getContentHandler()Lorg/xml/sax/ContentHandler;" />
-		<method name="getDTDHandler()Lorg/xml/sax/DTDHandler;" />
-		<method name="getEntityResolver()Lorg/xml/sax/EntityResolver;" />
-		<method name="getErrorHandler()Lorg/xml/sax/ErrorHandler;" />
-		<method name="getFeature(Ljava/lang/String;)Z" />
-		<method name="getProperty(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="parse(Ljava/lang/String;)V" />
-		<method name="parse(Lorg/xml/sax/InputSource;)V" />
-		<method name="setContentHandler(Lorg/xml/sax/ContentHandler;)V" />
-		<method name="setDTDHandler(Lorg/xml/sax/DTDHandler;)V" />
-		<method name="setEntityResolver(Lorg/xml/sax/EntityResolver;)V" />
-		<method name="setErrorHandler(Lorg/xml/sax/ErrorHandler;)V" />
-		<method name="setFeature(Ljava/lang/String;Z)V" />
-		<method name="setProperty(Ljava/lang/String;Ljava/lang/Object;)V" />
-	</class>
-	<class name="org/xml/sax/ext/Attributes2" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/xml/sax/Attributes" />
-		<method name="isDeclared(I)Z" />
-		<method name="isDeclared(Ljava/lang/String;)Z" />
-		<method name="isDeclared(Ljava/lang/String;Ljava/lang/String;)Z" />
-		<method name="isSpecified(I)Z" />
-		<method name="isSpecified(Ljava/lang/String;)Z" />
-		<method name="isSpecified(Ljava/lang/String;Ljava/lang/String;)Z" />
-	</class>
-	<class name="org/xml/sax/ext/Attributes2Impl" since="1">
-		<extends name="org/xml/sax/helpers/AttributesImpl" />
-		<implements name="org/xml/sax/ext/Attributes2" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Lorg/xml/sax/Attributes;)V" />
-		<method name="setDeclared(IZ)V" />
-		<method name="setSpecified(IZ)V" />
-	</class>
-	<class name="org/xml/sax/ext/DeclHandler" since="1">
-		<extends name="java/lang/Object" />
-		<method name="attributeDecl(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="elementDecl(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="externalEntityDecl(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="internalEntityDecl(Ljava/lang/String;Ljava/lang/String;)V" />
-	</class>
-	<class name="org/xml/sax/ext/DefaultHandler2" since="1">
-		<extends name="org/xml/sax/helpers/DefaultHandler" />
-		<implements name="org/xml/sax/ext/DeclHandler" />
-		<implements name="org/xml/sax/ext/EntityResolver2" />
-		<implements name="org/xml/sax/ext/LexicalHandler" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/xml/sax/ext/EntityResolver2" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/xml/sax/EntityResolver" />
-		<method name="getExternalSubset(Ljava/lang/String;Ljava/lang/String;)Lorg/xml/sax/InputSource;" />
-		<method name="resolveEntity(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/xml/sax/InputSource;" />
-	</class>
-	<class name="org/xml/sax/ext/LexicalHandler" since="1">
-		<extends name="java/lang/Object" />
-		<method name="comment([CII)V" />
-		<method name="endCDATA()V" />
-		<method name="endDTD()V" />
-		<method name="endEntity(Ljava/lang/String;)V" />
-		<method name="startCDATA()V" />
-		<method name="startDTD(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="startEntity(Ljava/lang/String;)V" />
-	</class>
-	<class name="org/xml/sax/ext/Locator2" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/xml/sax/Locator" />
-		<method name="getEncoding()Ljava/lang/String;" />
-		<method name="getXMLVersion()Ljava/lang/String;" />
-	</class>
-	<class name="org/xml/sax/ext/Locator2Impl" since="1">
-		<extends name="org/xml/sax/helpers/LocatorImpl" />
-		<implements name="org/xml/sax/ext/Locator2" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Lorg/xml/sax/Locator;)V" />
-		<method name="setEncoding(Ljava/lang/String;)V" />
-		<method name="setXMLVersion(Ljava/lang/String;)V" />
-	</class>
-	<class name="org/xml/sax/helpers/AttributeListImpl" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/xml/sax/AttributeList" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Lorg/xml/sax/AttributeList;)V" />
-		<method name="addAttribute(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="clear()V" />
-		<method name="removeAttribute(Ljava/lang/String;)V" />
-		<method name="setAttributeList(Lorg/xml/sax/AttributeList;)V" />
-	</class>
-	<class name="org/xml/sax/helpers/AttributesImpl" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/xml/sax/Attributes" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Lorg/xml/sax/Attributes;)V" />
-		<method name="addAttribute(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="clear()V" />
-		<method name="removeAttribute(I)V" />
-		<method name="setAttribute(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="setAttributes(Lorg/xml/sax/Attributes;)V" />
-		<method name="setLocalName(ILjava/lang/String;)V" />
-		<method name="setQName(ILjava/lang/String;)V" />
-		<method name="setType(ILjava/lang/String;)V" />
-		<method name="setURI(ILjava/lang/String;)V" />
-		<method name="setValue(ILjava/lang/String;)V" />
-	</class>
-	<class name="org/xml/sax/helpers/DefaultHandler" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/xml/sax/ContentHandler" />
-		<implements name="org/xml/sax/DTDHandler" />
-		<implements name="org/xml/sax/EntityResolver" />
-		<implements name="org/xml/sax/ErrorHandler" />
-		<method name="&lt;init>()V" />
-	</class>
-	<class name="org/xml/sax/helpers/LocatorImpl" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/xml/sax/Locator" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Lorg/xml/sax/Locator;)V" />
-		<method name="setColumnNumber(I)V" />
-		<method name="setLineNumber(I)V" />
-		<method name="setPublicId(Ljava/lang/String;)V" />
-		<method name="setSystemId(Ljava/lang/String;)V" />
-	</class>
-	<class name="org/xml/sax/helpers/NamespaceSupport" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="declarePrefix(Ljava/lang/String;Ljava/lang/String;)Z" />
-		<method name="getDeclaredPrefixes()Ljava/util/Enumeration;" />
-		<method name="getPrefix(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getPrefixes()Ljava/util/Enumeration;" />
-		<method name="getPrefixes(Ljava/lang/String;)Ljava/util/Enumeration;" />
-		<method name="getURI(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="isNamespaceDeclUris()Z" />
-		<method name="popContext()V" />
-		<method name="processName(Ljava/lang/String;[Ljava/lang/String;Z)[Ljava/lang/String;" />
-		<method name="pushContext()V" />
-		<method name="reset()V" />
-		<method name="setNamespaceDeclUris(Z)V" />
-		<field name="NSDECL" />
-		<field name="XMLNS" />
-	</class>
-	<class name="org/xml/sax/helpers/ParserAdapter" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/xml/sax/DocumentHandler" />
-		<implements name="org/xml/sax/XMLReader" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Lorg/xml/sax/Parser;)V" />
-	</class>
-	<class name="org/xml/sax/helpers/ParserFactory" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="makeParser()Lorg/xml/sax/Parser;" />
-		<method name="makeParser(Ljava/lang/String;)Lorg/xml/sax/Parser;" />
-	</class>
-	<class name="org/xml/sax/helpers/XMLFilterImpl" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/xml/sax/ContentHandler" />
-		<implements name="org/xml/sax/DTDHandler" />
-		<implements name="org/xml/sax/EntityResolver" />
-		<implements name="org/xml/sax/ErrorHandler" />
-		<implements name="org/xml/sax/XMLFilter" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Lorg/xml/sax/XMLReader;)V" />
-	</class>
-	<class name="org/xml/sax/helpers/XMLReaderAdapter" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/xml/sax/ContentHandler" />
-		<implements name="org/xml/sax/Parser" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Lorg/xml/sax/XMLReader;)V" />
-	</class>
-	<class name="org/xml/sax/helpers/XMLReaderFactory" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="createXMLReader()Lorg/xml/sax/XMLReader;" />
-		<method name="createXMLReader(Ljava/lang/String;)Lorg/xml/sax/XMLReader;" />
-	</class>
-	<class name="org/xmlpull/v1/XmlPullParser" since="1">
-		<extends name="java/lang/Object" />
-		<method name="defineEntityReplacementText(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="getAttributeCount()I" />
-		<method name="getAttributeName(I)Ljava/lang/String;" />
-		<method name="getAttributeNamespace(I)Ljava/lang/String;" />
-		<method name="getAttributePrefix(I)Ljava/lang/String;" />
-		<method name="getAttributeType(I)Ljava/lang/String;" />
-		<method name="getAttributeValue(I)Ljava/lang/String;" />
-		<method name="getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getColumnNumber()I" />
-		<method name="getDepth()I" />
-		<method name="getEventType()I" />
-		<method name="getFeature(Ljava/lang/String;)Z" />
-		<method name="getInputEncoding()Ljava/lang/String;" />
-		<method name="getLineNumber()I" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getNamespace()Ljava/lang/String;" />
-		<method name="getNamespace(Ljava/lang/String;)Ljava/lang/String;" />
-		<method name="getNamespaceCount(I)I" />
-		<method name="getNamespacePrefix(I)Ljava/lang/String;" />
-		<method name="getNamespaceUri(I)Ljava/lang/String;" />
-		<method name="getPositionDescription()Ljava/lang/String;" />
-		<method name="getPrefix()Ljava/lang/String;" />
-		<method name="getProperty(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="getText()Ljava/lang/String;" />
-		<method name="getTextCharacters([I)[C" />
-		<method name="isAttributeDefault(I)Z" />
-		<method name="isEmptyElementTag()Z" />
-		<method name="isWhitespace()Z" />
-		<method name="next()I" />
-		<method name="nextTag()I" />
-		<method name="nextText()Ljava/lang/String;" />
-		<method name="nextToken()I" />
-		<method name="require(ILjava/lang/String;Ljava/lang/String;)V" />
-		<method name="setFeature(Ljava/lang/String;Z)V" />
-		<method name="setInput(Ljava/io/InputStream;Ljava/lang/String;)V" />
-		<method name="setInput(Ljava/io/Reader;)V" />
-		<method name="setProperty(Ljava/lang/String;Ljava/lang/Object;)V" />
-		<field name="CDSECT" />
-		<field name="COMMENT" />
-		<field name="DOCDECL" />
-		<field name="END_DOCUMENT" />
-		<field name="END_TAG" />
-		<field name="ENTITY_REF" />
-		<field name="FEATURE_PROCESS_DOCDECL" />
-		<field name="FEATURE_PROCESS_NAMESPACES" />
-		<field name="FEATURE_REPORT_NAMESPACE_ATTRIBUTES" />
-		<field name="FEATURE_VALIDATION" />
-		<field name="IGNORABLE_WHITESPACE" />
-		<field name="NO_NAMESPACE" />
-		<field name="PROCESSING_INSTRUCTION" />
-		<field name="START_DOCUMENT" />
-		<field name="START_TAG" />
-		<field name="TEXT" />
-		<field name="TYPES" />
-	</class>
-	<class name="org/xmlpull/v1/XmlPullParserException" since="1">
-		<extends name="java/lang/Exception" />
-		<method name="&lt;init>(Ljava/lang/String;)V" />
-		<method name="&lt;init>(Ljava/lang/String;Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/Throwable;)V" />
-		<method name="getColumnNumber()I" />
-		<method name="getDetail()Ljava/lang/Throwable;" />
-		<method name="getLineNumber()I" />
-		<field name="column" />
-		<field name="detail" />
-		<field name="row" />
-	</class>
-	<class name="org/xmlpull/v1/XmlPullParserFactory" since="1">
-		<extends name="java/lang/Object" />
-		<method name="&lt;init>()V" />
-		<method name="getFeature(Ljava/lang/String;)Z" />
-		<method name="isNamespaceAware()Z" />
-		<method name="isValidating()Z" />
-		<method name="newInstance()Lorg/xmlpull/v1/XmlPullParserFactory;" />
-		<method name="newInstance(Ljava/lang/String;Ljava/lang/Class;)Lorg/xmlpull/v1/XmlPullParserFactory;" />
-		<method name="newPullParser()Lorg/xmlpull/v1/XmlPullParser;" />
-		<method name="newSerializer()Lorg/xmlpull/v1/XmlSerializer;" />
-		<method name="setFeature(Ljava/lang/String;Z)V" />
-		<method name="setNamespaceAware(Z)V" />
-		<method name="setValidating(Z)V" />
-		<field name="PROPERTY_NAME" />
-		<field name="classNamesLocation" />
-		<field name="features" />
-		<field name="parserClasses" />
-		<field name="serializerClasses" />
-	</class>
-	<class name="org/xmlpull/v1/XmlSerializer" since="1">
-		<extends name="java/lang/Object" />
-		<method name="attribute(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;" />
-		<method name="cdsect(Ljava/lang/String;)V" />
-		<method name="comment(Ljava/lang/String;)V" />
-		<method name="docdecl(Ljava/lang/String;)V" />
-		<method name="endDocument()V" />
-		<method name="endTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;" />
-		<method name="entityRef(Ljava/lang/String;)V" />
-		<method name="flush()V" />
-		<method name="getDepth()I" />
-		<method name="getFeature(Ljava/lang/String;)Z" />
-		<method name="getName()Ljava/lang/String;" />
-		<method name="getNamespace()Ljava/lang/String;" />
-		<method name="getPrefix(Ljava/lang/String;Z)Ljava/lang/String;" />
-		<method name="getProperty(Ljava/lang/String;)Ljava/lang/Object;" />
-		<method name="ignorableWhitespace(Ljava/lang/String;)V" />
-		<method name="processingInstruction(Ljava/lang/String;)V" />
-		<method name="setFeature(Ljava/lang/String;Z)V" />
-		<method name="setOutput(Ljava/io/OutputStream;Ljava/lang/String;)V" />
-		<method name="setOutput(Ljava/io/Writer;)V" />
-		<method name="setPrefix(Ljava/lang/String;Ljava/lang/String;)V" />
-		<method name="setProperty(Ljava/lang/String;Ljava/lang/Object;)V" />
-		<method name="startDocument(Ljava/lang/String;Ljava/lang/Boolean;)V" />
-		<method name="startTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;" />
-		<method name="text(Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;" />
-		<method name="text([CII)Lorg/xmlpull/v1/XmlSerializer;" />
-	</class>
-	<class name="org/xmlpull/v1/sax2/Driver" since="1">
-		<extends name="java/lang/Object" />
-		<implements name="org/xml/sax/Attributes" />
-		<implements name="org/xml/sax/Locator" />
-		<implements name="org/xml/sax/XMLReader" />
-		<method name="&lt;init>()V" />
-		<method name="&lt;init>(Lorg/xmlpull/v1/XmlPullParser;)V" />
-		<method name="parseSubTree(Lorg/xmlpull/v1/XmlPullParser;)V" />
-		<method name="startElement(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
-		<field name="APACHE_DYNAMIC_VALIDATION_FEATURE" />
-		<field name="APACHE_SCHEMA_VALIDATION_FEATURE" />
-		<field name="DECLARATION_HANDLER_PROPERTY" />
-		<field name="LEXICAL_HANDLER_PROPERTY" />
-		<field name="NAMESPACES_FEATURE" />
-		<field name="NAMESPACE_PREFIXES_FEATURE" />
-		<field name="VALIDATION_FEATURE" />
-		<field name="contentHandler" />
-		<field name="errorHandler" />
-		<field name="pp" />
-		<field name="systemId" />
-	</class>
-</api>
diff --git a/sdk/build_tools_runtime.properties b/sdk/build_tools_runtime.properties
new file mode 100644
index 0000000..f2fbb40
--- /dev/null
+++ b/sdk/build_tools_runtime.properties
@@ -0,0 +1,2 @@
+Runtime.Jvm=1.6
+
diff --git a/sdk/platform_source.prop_template b/sdk/platform_source.prop_template
index 09a2d81..7ecb1e2 100644
--- a/sdk/platform_source.prop_template
+++ b/sdk/platform_source.prop_template
@@ -2,7 +2,7 @@
 Pkg.UserSrc=false
 Platform.Version=${PLATFORM_VERSION}
 Platform.CodeName=KitKat
-Pkg.Revision=2
+Pkg.Revision=1
 AndroidVersion.ApiLevel=${PLATFORM_SDK_VERSION}
 AndroidVersion.CodeName=${PLATFORM_VERSION_CODENAME}
 Layoutlib.Api=10
diff --git a/sdk/usbdriver_source.properties b/sdk/usbdriver_source.properties
index 5a0875c..d68d7c2 100755
--- a/sdk/usbdriver_source.properties
+++ b/sdk/usbdriver_source.properties
@@ -1,3 +1,3 @@
-Pkg.Revision=9
+Pkg.Revision=10
 Archive.HostOs=WINDOWS
 Extra.Path=usb_driver
diff --git a/tools/elftree/Android.mk b/tools/elftree/Android.mk
index b1c1eb7..5f2849d 100644
--- a/tools/elftree/Android.mk
+++ b/tools/elftree/Android.mk
@@ -14,8 +14,8 @@
 
 LOCAL_PATH := $(call my-dir)
 
-supported_platforms := linux-x86
-cur_platform := $(filter $(HOST_OS)-$(HOST_ARCH),$(supported_platforms))
+supported_platforms := linux
+cur_platform := $(filter $(HOST_OS),$(supported_platforms))
 
 ifdef cur_platform
 
diff --git a/tools/idegen/intellij-gen.sh b/tools/idegen/intellij-gen.sh
index 860bd3c..3c4efc5 100755
--- a/tools/idegen/intellij-gen.sh
+++ b/tools/idegen/intellij-gen.sh
@@ -54,7 +54,11 @@
 idegenjar=$script_dir/idegen.jar
 if [ ! -e $idegenjar ]; then
   # See if the jar is in the build directory.
-  idegenjar=$root_dir/out/host/linux-x86/framework/idegen.jar
+  platform="linux"
+  if [ "Darwin" = "$(uname)" ]; then
+    platform="darwin"
+  fi
+  idegenjar="$root_dir/out/host/$platform-x86/framework/idegen.jar"
 fi
 
 if [ ! -e "$index_file" ]; then
